blob: 2bb6e7ddf2ecac7fc8fe5948de6bc267568c1f1d [file] [log] [blame]
/**
* <copyright>
*
* Copyright (c) 2009 Thales Corporate Services S.A.S.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Thales Corporate Services S.A.S - initial API and implementation
*
* </copyright>
*/
package parsejet.test2;
import java.util.List;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.ClassInstanceCreation;
/**
* @author Matthieu Helleboid
*
*/
public class PrintVisitor extends ASTVisitor {
private final CodegenJetParser codegenJetParser;
PrintVisitor(CodegenJetParser codegenJetParser) {
this.codegenJetParser = codegenJetParser;
}
private StringBuilder builder = new StringBuilder();
@Override
public boolean visit(ClassInstanceCreation node) {
Mark mark = codegenJetParser.getMark(node);
if (mark == null)
return true;
List<String> arguments = codegenJetParser.getArguments(node);
String file = null;
int index = -1;
switch (mark) {
case EGFMarkChars:
index = Integer.valueOf(arguments.get(0)).intValue();
builder.append(codegenJetParser.charsList.get(index));
break;
case EGFMarkExpression:
index = Integer.valueOf(arguments.get(0)).intValue();
builder.append("<%");
builder.append(codegenJetParser.charsList.get(index));
builder.append("%>");
case EGFMarkInclude:
file = arguments.get(0);
break;
case EGFMarkIncludeSilent:
file = arguments.get(0);
break;
}
return true;
}
@Override
public String toString() {
return builder.toString();
}
}