private void parse(
SQLParserListener sqlParserListener,
ErrorListener errorListener,
ParserRuleContext entryPoint) {
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(sqlParserListener, entryPoint);
// if the parser call raised any exceptions then lets throw
errorListener
.getException()
.ifPresent(
ex -> {
throw ex;
});
}
java类org.antlr.v4.runtime.tree.ParseTreeWalker的实例源码
BaseParser.java 文件源码
项目:dragoman
阅读 29
收藏 0
点赞 0
评论 0
SQLParser.java 文件源码
项目:SQLParser
阅读 26
收藏 0
点赞 0
评论 0
public PlanNode callSql(String sqlstring, ArrayList list) throws FileNotFoundException, IOException {
for (int i=0; i< list.size() ; i++) {
sqlstring = sqlstring.replaceFirst("\\?", (String) list.get(i));
}
ANTLRInputStream input = new ANTLRInputStream( new ByteArrayInputStream(sqlstring.getBytes()));
PLSQLLexer lexer = new PLSQLLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
PLSQLParser parser = new PLSQLParser(tokens);
parser.setBuildParseTree(true);
ParseTree tree = parser.sql_statement();
ParseTreeWalker walker = new ParseTreeWalker();
SQLModel model = new SQLModel();
walker.walk(new MyListener(model), tree);
return model.current;
}
GraphParser.java 文件源码
项目:digraph-parser
阅读 17
收藏 0
点赞 0
评论 0
public GraphParser(InputStream is) throws GraphParserException {
DOTLexer lexer = null;
DOTParser parser = null;
try {
lexer = new DOTLexer(new ANTLRInputStream(is));
lexer.addErrorListener(new ErrorListener());
parser = new DOTParser(new CommonTokenStream(lexer));
parser.setErrorHandler(new ExceptionErrorStrategy());
parser.addErrorListener(new ErrorListener());
ParseTree tree = parser.graph();
ParseTreeWalker.DEFAULT.walk(new NodeListener(), tree);
ParseTreeWalker.DEFAULT.walk(new EdgeListener(), tree);
}
catch (Throwable t) {
if (mErrMsg != null) throw new GraphParserException(mErrMsg, t);
if (lexer != null) {
mErrMsg = "at line " + lexer.getLine() + ":" + lexer.getCharPositionInLine();
throw new GraphParserException(mErrMsg, t);
}
throw new GraphParserException(t);
}
if (mErrMsg != null) throw new GraphParserException(mErrMsg);
}
AntlrParser.java 文件源码
项目:pgcodekeeper
阅读 24
收藏 0
点赞 0
评论 0
public static void parseSqlStream(InputStream inputStream, String charsetName,
String parsedObjectName, List<AntlrError> errors,IProgressMonitor mon, int monitoringLevel,
Collection<SQLParserBaseListener> listeners) throws IOException, InterruptedException {
SQLParser parser = makeBasicParser(SQLParser.class, inputStream, charsetName, parsedObjectName, errors);
parser.addParseListener(new CustomParseTreeListener(
monitoringLevel, mon == null ? new NullProgressMonitor() : mon));
try {
SqlContext ctx = parser.sql();
for (SQLParserBaseListener listener : listeners) {
ParseTreeWalker.DEFAULT.walk(listener, ctx);
}
} catch (MonitorCancelledRuntimeException mcre){
throw new InterruptedException();
} catch (UnresolvedReferenceException ex) {
errors.add(CustomSQLParserListener.handleUnresolvedReference(ex));
}
}
Function.java 文件源码
项目:gmstruct
阅读 24
收藏 0
点赞 0
评论 0
public Script getScript() {
Script script = new Script(struct.getGMLName() + "_" + name, "");
List<String> args = new ArrayList<>();
if (context.idList() != null) {
for (IdContext id : context.idList().id()) {
args.add(id.getText());
script.addParameter(id.getText(), "");
}
}
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(new StaticAnalyzer(), context.block());
//walker.walk(new ScriptWriter(script), context.block());
return script;
}
QueryListenerImpl.java 文件源码
项目:CacheStore
阅读 17
收藏 0
点赞 0
评论 0
public void walkTree() {
try {
init();
QueryLexer lexer = new QueryLexer(new ANTLRInputStream(new StringReader(queryStr)));
CommonTokenStream token = new CommonTokenStream(lexer);
QueryParser parser = new QueryParser(token);
parser.setBuildParseTree(true);
QueryParser.ScriptContext tree = parser.script(); // parse
ParseTreeWalker parseTreeWalker = new ParseTreeWalker();
parseTreeWalker.walk( this, tree);
//check for key# if size = 1
checkPredicateStack();
} catch (Exception ex) {
logger.error(ex.getMessage());
throw new QueryException( ex.getMessage(), ex );
}
}
TestQueryObject.java 文件源码
项目:CacheStore
阅读 14
收藏 0
点赞 0
评论 0
public static void main(String[] args) throws Exception {
String[] opts = new String[] {"-query"};
String[] defaults = new String[] {"replace Order set name = \"test\", campaign.id = 10 , booking.no =20.2 where not record# = 1 ; insert Campaign set cid=20, cname=\"go\""};
String[] paras = Utils.getOpts(args, opts, defaults);
//String query = paras[0] ;
String query = "select id, name, bookings from order where id = 10";
//CharStream input = new UnbufferedTokenStream(new ANTLRInputStream( new StringReader(query)));
ObjectQueryLexer lexer = new ObjectQueryLexer( new ANTLRInputStream( new StringReader(query)));
CommonTokenStream token = new CommonTokenStream( lexer);
ObjectQueryParser objectQueryParser = new ObjectQueryParser( token);
objectQueryParser.setBuildParseTree( true);
ParserRuleContext tree = objectQueryParser.script();
ParseTreeWalker walker = new ParseTreeWalker();
System.out.println(walker.getClass().getName()+ " simple "+ walker.getClass().getSimpleName());
System.out.println( tree.toString()) ;
}
Interpreter.java 文件源码
项目:MatrixC
阅读 22
收藏 0
点赞 0
评论 0
public void interpret() {
ProgramContext parseTree = matrixParser.program();
ParseTreeWalker.DEFAULT.walk(semanticListener, parseTree);
List<SemanticError> errorList = semanticListener.getSemanticErrors();
if (matrixParser.getNumberOfSyntaxErrors() > 0) {
System.err.println("Aborting...");
} else if (!errorList.isEmpty()) {
System.err.println("------------------- ERRORS ---------------------");
errorList.forEach(System.err::println);
} else {
CodeExecutor codeExecutor = new CodeExecutor(semanticListener.getSymbolTable(), parseTree);
try {
codeExecutor.execute();
} catch (RuntimeError e) {
System.err.println("[" + e.getClass().getSimpleName() + "]: " + e.getMessage());
System.err.println("Aborting...");
}
}
}
AppImpala.java 文件源码
项目:TriAL-QL-Engine
阅读 14
收藏 0
点赞 0
评论 0
/**
* Special case: STORE operator.
*
* @param queryArray
* @param i
* @param file
* @return
* @throws Exception
*/
public static ResultSet storeOperator(String[] queryArray, int i, boolean file) throws Exception {
ParseTree tree = TriALQLParseQuery.parse(queryArray[i] + ";", file);
TriALQLClassListener extractor = new TriALQLClassListener();
ParseTreeWalker.DEFAULT.walk(extractor, tree);
theLastQuery = true;
if (QueryStruct.oldTableName.get(i).equals(QueryStruct.newTableName.get(i))) {
// results = ImpalaDaemon.main(QueryStruct.baseQuery.get(i - 1));
notToDrop = QueryStruct.newTableName.get(i);
} else {
parseTree = false;
queryExecutor(queryArray[i] + ";", file, theLastQuery, parseTree);
results = ImpalaDaemon.main(QueryStruct.baseQuery.get(i));
}
return results;
}
Assembler.java 文件源码
项目:Simulizer
阅读 27
收藏 0
点赞 0
评论 0
/**
* Performs the first stage of assembling a program. But stops once it
* determines whether the program is valid or not. This is useful when only
* the validity of the program needs to be known.
* @param input the program string to assemble
* @return any problems with the program (empty list if program valid)
*/
public static List<Problem> checkForProblems(String input) {
StoreProblemLogger log = new StoreProblemLogger();
input += '\n'; // to parse correctly, must end with a newline
SimpLexer lexer = new SimpLexer(new ANTLRInputStream(input));
SimpParser parser = new SimpParser(new CommonTokenStream(lexer));
// prevent outputting to the console
lexer.removeErrorListeners();
parser.removeErrorListeners();
// try to parse a program from the input
SimpParser.ProgramContext tree = parser.program();
ProgramExtractor extractor = new ProgramExtractor(log);
ParseTreeWalker.DEFAULT.walk(extractor, tree);
return log.getProblems();
}
Interpreter.java 文件源码
项目:Reo
阅读 21
收藏 0
点赞 0
评论 0
/**
* Parses a source file using ANTLR4, and walks over the parse tree to
* interpret this source file as a Java object.
*
* @param c
* input character stream
* @param path
* location of the file
* @return an interpreted source file, or null in case of an error.
*/
@Nullable
private ReoFile<T> parse(CharStream c, String path) {
ReoLexer lexer = new ReoLexer(c);
CommonTokenStream tokens = new CommonTokenStream(lexer);
ReoParser parser = new ReoParser(tokens);
ErrorListener errListener = new ErrorListener(m);
parser.removeErrorListeners();
parser.addErrorListener(errListener);
ParseTree tree = parser.file();
if (errListener.hasError)
return null;
ParseTreeWalker walker = new ParseTreeWalker();
listener.setFileName(path);
walker.walk(listener, tree);
return listener.getMain();
}
ClarpseGoCompiler.java 文件源码
项目:clarpse
阅读 47
收藏 0
点赞 0
评论 0
private void compileFiles(List<RawFile> files, OOPSourceCodeModel srcModel, List<String> projectFileTypes) {
for (RawFile file : files) {
try {
CharStream charStream = new ANTLRInputStream(file.content());
GolangLexer lexer = new GolangLexer(charStream);
TokenStream tokens = new CommonTokenStream(lexer);
GolangParser parser = new GolangParser(tokens);
SourceFileContext sourceFileContext = parser.sourceFile();
parser.setErrorHandler(new BailErrorStrategy());
parser.getInterpreter().setPredictionMode(PredictionMode.SLL);
ParseTreeWalker walker = new ParseTreeWalker();
GolangBaseListener listener = new GoLangTreeListener(srcModel, projectFileTypes, file);
walker.walk(listener, sourceFileContext);
} catch (Exception e) {
e.printStackTrace();
}
}
}
DefaultQueryCompiler.java 文件源码
项目:georocket
阅读 18
收藏 0
点赞 0
评论 0
/**
* <p>Create an Elasticsearch query for the given search string but does
* not apply the {@link ElasticsearchQueryOptimizer} to it.</p>
* @param search the search string
* @return the Elasticsearch query (may be null)
*/
protected JsonObject compileQueryNoOptimize(String search) {
if (search == null || search.isEmpty()) {
// match everything by default
return matchAllQuery();
}
// parse query
QueryLexer lexer = new QueryLexer(new ANTLRInputStream(search.trim()));
CommonTokenStream tokens = new CommonTokenStream(lexer);
QueryParser parser = new QueryParser(tokens);
QueryContext ctx = parser.query();
// compile query to QueryBuilder
QueryCompilerListener listener = new QueryCompilerListener();
ParseTreeWalker.DEFAULT.walk(listener, ctx);
if (listener.result.isEmpty()) {
return matchAllQuery();
}
return listener.result.pop();
}
ThriftParser.java 文件源码
项目:thrifty
阅读 17
收藏 0
点赞 0
评论 0
/**
* Parse the given Thrift {@code text}, using the given {@code location}
* to anchor parsed elements withing the file.
* @param location the {@link Location} of the data being parsed.
* @param text the text to be parsed.
* @param reporter an {@link ErrorReporter} to collect warnings.
* @return a representation of the parsed Thrift data.
*/
public static ThriftFileElement parse(Location location, String text, ErrorReporter reporter) {
ANTLRInputStream charStream = new ANTLRInputStream(text);
AntlrThriftLexer lexer = new AntlrThriftLexer(charStream);
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
AntlrThriftParser antlrParser = new AntlrThriftParser(tokenStream);
ThriftListener thriftListener = new ThriftListener(tokenStream, reporter, location);
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(thriftListener, antlrParser.document());
if (reporter.hasError()) {
String errorReports = Joiner.on('\n').join(reporter.formattedReports());
String message = String.format(Locale.US, "Syntax errors in %s:\n%s", location, errorReports);
throw new IllegalStateException(message);
}
return thriftListener.buildFileElement();
}
ParseUtils.java 文件源码
项目:mdetect
阅读 25
收藏 0
点赞 0
评论 0
public static Document processFile(String filePath) {
Pair<Parser, Lexer> pl = parsePHP(filePath);
PHPParser parser = (PHPParser) pl.a;
parser.setBuildParseTree(true);
/*
* htmlDocument is the start rule (the top-level rule)
* for the PHP grammar
*/
ParserRuleContext tree = parser.htmlDocument();
List<String> ruleNames = Arrays.asList(parser.getRuleNames());
Map<Integer, String> invTokenMap = getInvTokenMap(parser);
TokenStream tokenStream = parser.getTokenStream();
ParseTreeDOMSerializer ptSerializer = new ParseTreeDOMSerializer(ruleNames, invTokenMap, tokenStream);
ParseTreeWalker.DEFAULT.walk(ptSerializer, tree);
Document result= ptSerializer.getDOMDocument();
return result;
}
TPKB.java 文件源码
项目:TPKB
阅读 18
收藏 0
点赞 0
评论 0
/**
* @param args
* @throws IOException
* @throws SQLException
*/
public static void main(String[] args) throws IOException, SQLException {
TPKBLexer lexer = new TPKBLexer(new ANTLRFileStream("test.kb"));
TPKBParser parser = new TPKBParser(new CommonTokenStream(lexer));
TPKBClassListener listener = new TPKBClassListener();
ParseTree tree = parser.tpkb();
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(listener, tree);
MySQLEngine engine = new MySQLEngine();
engine.processTSubRaw();
engine.processTIsRaw();
double Z = engine.computeZ();
System.out.println("Z = "+Z);
Z = engine.computeZWithEvidence();
System.out.println("Z(E) = "+Z);
}
AutoCompletion.java 文件源码
项目:MPL
阅读 51
收藏 0
点赞 0
评论 0
public static @Nullable AutoCompletionContext getContext(int index, String text) {
ANTLRInputStream input = new ANTLRInputStream(text);
MplLexer lexer = new MplLexer(input);
lexer.removeErrorListeners();
TokenStream tokens = new CommonTokenStream(lexer);
MplParser parser = new MplParser(tokens);
parser.removeErrorListeners();
FileContext ctx = parser.file();
AutoCompletionListener listener = new AutoCompletionListener(index);
try {
new ParseTreeWalker().walk(listener, ctx);
} catch (ResultException earlyExit) {
return earlyExit.getResult();
}
return null;
}
GDLHandler.java 文件源码
项目:gdl
阅读 21
收藏 0
点赞 0
评论 0
/**
* Checks valid input and creates GDL Handler.
*
* @param antlrInputStream ANTLR input stream
* @return GDL handler
*/
private GDLHandler build(ANTLRInputStream antlrInputStream) {
if (graphLabel == null) {
throw new IllegalArgumentException("Graph label must not be null.");
}
if (vertexLabel == null) {
throw new IllegalArgumentException("Vertex label must not be null.");
}
if (edgeLabel == null) {
throw new IllegalArgumentException("Edge label must not be null.");
}
if (errorStrategy == null) {
throw new IllegalArgumentException("Error handler must not be null.");
}
GDLLexer lexer = new GDLLexer(antlrInputStream);
GDLParser parser = new GDLParser(new CommonTokenStream(lexer));
parser.setErrorHandler(errorStrategy);
GDLLoader loader = new GDLLoader(graphLabel, vertexLabel, edgeLabel,
useDefaultGraphLabel, useDefaultVertexLabel, useDefaultEdgeLabel);
new ParseTreeWalker().walk(loader, parser.database());
return new GDLHandler(loader);
}
SQLToKuduPredicatesTranslator.java 文件源码
项目:apex-malhar
阅读 14
收藏 0
点赞 0
评论 0
public void parseKuduExpression() throws Exception
{
KuduSQLExpressionLexer lexer = new KuduSQLExpressionLexer(CharStreams.fromString(sqlExpresssion));
CommonTokenStream tokens = new CommonTokenStream( lexer );
parser = new KuduSQLParser( tokens );
errorListener = parser.getKuduSQLExpressionErrorListener();
ParseTree parserTree = parser.kudusqlexpression();
if (!errorListener.isSyntaxError()) {
ParseTreeWalker parseTreeWalker = new ParseTreeWalker();
kuduSQLParseTreeListener = new KuduSQLParseTreeListener();
kuduSQLParseTreeListener.setColumnSchemaList(allColumnsForThisTable);
try {
parseTreeWalker.walk(kuduSQLParseTreeListener, parserTree);
} catch (Exception ex) {
LOG.error(" The supplied SQL expression could not be parsed because " + ex.getMessage(),ex);
errorListener.setSyntaxError(true);
}
} else {
LOG.error(" Syntax error present in the Kudu SQL expression. Hence not processing");
List<String> allRegisteredSyntaxErrors = errorListener.getListOfErrorMessages();
for (String syntaxErrorMessage : allRegisteredSyntaxErrors) {
LOG.error(" Error : " + syntaxErrorMessage + " in SQL expression \"" + sqlExpresssion + " \"");
}
}
}
IdlListener.java 文件源码
项目:JsInteropGenerator
阅读 19
收藏 0
点赞 0
评论 0
@Override
public void enterCallbackRest(CallbackRestContext ctx) {
String interfaceName = ctx.Identifier().toString();
if(interfaces.containsKey(interfaceName)){
current = interfaces.get(interfaceName);
}else{
current = new IdlInterface();
current.setName(interfaceName);
interfaces.put(interfaceName, current);
}
IdlOperation runOperation = new IdlOperation();
runOperation.setName("run");
IdlArgumentListener argList = new IdlArgumentListener(typeDef);
if(ctx.argumentList() != null){
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(argList, ctx.argumentList());
}
runOperation.setArguments(argList.getArguments());
runOperation.setType(ParserUtils.getType(ctx.returntype(),typeDef));
current.getOperations().add(runOperation);
}
Interpreter.java 文件源码
项目:Health
阅读 25
收藏 0
点赞 0
评论 0
/**
* Interprets the given script.
*
* @param script
* the script to interpret.
* @param context
* the script context.
* @param interpreter
* a statement listener for interpreting the statements in the
* script.
* @throws IOException
* if any I/O-exceptions occur.
*/
public static void interpret(final String script, final Context context, final StatementListener interpreter)
throws IOException {
Objects.requireNonNull(script);
Objects.requireNonNull(context);
// Converts the script to an input stream for the lexer
InputStream is = new ByteArrayInputStream(script.getBytes("UTF-8"));
ANTLRInputStream input = new ANTLRInputStream(is);
// Creates a lexer and parser to parse the script
MyScriptLexer lexer = new MyScriptLexer(input);
MyScriptParser parser = new MyScriptParser(new CommonTokenStream(lexer));
parser.setBuildParseTree(true);
ParseTree tree = parser.parse();
// Create a walker to walk the parse tree for interpreting
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(interpreter, tree);
}
TypeBuilder.java 文件源码
项目:viskell
阅读 19
收藏 0
点赞 0
评论 0
/**
* Parse a Haskell type declaration into a TypeT instance.
*
* @param hs The Haskell type declaration
* @return Type
*/
public Type build(final String hs) {
TypeLexer lexer = new TypeLexer(new ANTLRInputStream(hs));
CommonTokenStream tokens = new CommonTokenStream(lexer);
TypeParser parser = new TypeParser(tokens);
ParserRuleContext tree = parser.type();
ParseTreeWalker walker = new ParseTreeWalker();
TypeBuilderListener extractor;
extractor = new TypeBuilderListener(this.typeClasses);
walker.walk(extractor, tree);
return extractor.result();
}
FileDescriptorLoaderImpl.java 文件源码
项目:protostuff-compiler
阅读 26
收藏 0
点赞 0
评论 0
private ProtoContext parse(String filename, CharStream stream) {
ProtoLexer lexer = new ProtoLexer(stream);
lexer.removeErrorListeners();
lexer.addErrorListener(errorListener);
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
ProtoParser parser = new ProtoParser(tokenStream);
parser.removeErrorListeners();
parser.addErrorListener(errorListener);
ProtoParser.ProtoContext tree = parser.proto();
int numberOfSyntaxErrors = parser.getNumberOfSyntaxErrors();
if (numberOfSyntaxErrors > 0) {
String format = "Could not parse %s: %d syntax errors found";
throw new ParserException(format, filename, numberOfSyntaxErrors);
}
ProtoContext context = new ProtoContext(filename);
ProtoParserListener composite = CompositeParseTreeListener.create(ProtoParserListener.class,
new ProtoParseListener(tokenStream, context),
new MessageParseListener(tokenStream, context),
new EnumParseListener(tokenStream, context),
new OptionParseListener(tokenStream, context),
new ServiceParseListener(tokenStream, context)
);
ParseTreeWalker.DEFAULT.walk(composite, tree);
return context;
}
OTLDListener.java 文件源码
项目:transportlanguage
阅读 18
收藏 0
点赞 0
评论 0
/**
* Parses the supplied input using the OTLDListener and returns it after walking it
* @param reader input to parse
* @return walked OTLDListener
* @throws IOException
*/
public static OTLDListener parseFile(InputStream reader) throws IOException {
OTLDErrorListener errorListener = new OTLDErrorListener();
ANTLRInputStream stream = new ANTLRInputStream(reader);
Lexer lexer = new otldLexer(stream);
lexer.removeErrorListeners();
lexer.addErrorListener(errorListener);
TokenStream tokens = new CommonTokenStream(lexer);
otldParser parser = new otldParser(tokens);
parser.removeErrorListeners();
parser.addErrorListener(errorListener);
ParseTree tree = parser.program();
OTLDListener railroad = new OTLDListener();
if (errorListener.getErrors().isEmpty()) {
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(railroad, tree);
} else {
railroad.errors.addAll(errorListener.getErrors());
}
return railroad;
}
ECMAScriptParser.java 文件源码
项目:monto-javascript-services
阅读 13
收藏 0
点赞 0
评论 0
@Override
public ProductMessage onVersionMessage(List<Message> messages) throws IOException {
VersionMessage version = Messages.getVersionMessage(messages);
if (!version.getLanguage().equals(JAVASCRIPT)) {
throw new IllegalArgumentException("wrong language in version message");
}
lexer.setInputStream(new ANTLRInputStream(version.getContent().getReader()));
CommonTokenStream tokens = new CommonTokenStream(lexer);
parser.setTokenStream(tokens);
ParserRuleContext root = parser.program();
ParseTreeWalker walker = new ParseTreeWalker();
Converter converter = new Converter();
walker.walk(converter, root);
return new ProductMessage(
version.getVersionId(),
new LongKey(1),
version.getSource(),
AST,
JAVASCRIPT,
ASTs.encode(converter.getRoot()));
}
Test.java 文件源码
项目:cs652
阅读 25
收藏 0
点赞 0
评论 0
public static void main(String[] args) {
String prop = "id=\"parrt\"\n";
ANTLRInputStream input = new ANTLRInputStream(prop);
PropertyFileLexer lexer = new PropertyFileLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
PropertyFileParser parser = new PropertyFileParser(tokens);
ParseTree tree = parser.file();
System.out.println(tree.toStringTree(parser));
// Trees.inspect(tree, parser);
ParseTreeWalker walker = new ParseTreeWalker();
PropertyFileLoader loader = new PropertyFileLoader();
walker.walk(loader, tree);
System.out.println(loader.props);
}
Load.java 文件源码
项目:cs652
阅读 26
收藏 0
点赞 0
评论 0
public static void main(String[] args) throws IOException {
ANTLRInputStream input = new ANTLRFileStream("colleges.csv");
CSVLexer lexer = new CSVLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
CSVParser parser = new CSVParser(tokens);
ParseTree tree = parser.file();
System.out.println(tree.toStringTree(parser));
ParseTreeWalker walker = new ParseTreeWalker();
CSVLoader loader = new CSVLoader();
walker.walk(loader, tree);
for (List<String> row : loader.data) {
System.out.println(row);
}
}
Trans.java 文件源码
项目:cs652
阅读 13
收藏 0
点赞 0
评论 0
public static void main(String[] args) {
String code =
"int x;\n" +
"A b;\n";
ANTLRInputStream input = new ANTLRInputStream(code);
LangLexer lexer = new LangLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
LangParser parser = new LangParser(tokens);
ParseTree tree = parser.file(); // start up
System.out.println(tree.toStringTree(parser));
ParseTreeWalker walker = new ParseTreeWalker();
Gen listener = new Gen();
walker.walk(listener, tree);
ST output = listener.file.getTemplate();
System.out.println(output.render());
}
Trans.java 文件源码
项目:cs652
阅读 14
收藏 0
点赞 0
评论 0
public static void main(String[] args) {
String code =
"int x;\n" +
"A b;\n";
ANTLRInputStream input = new ANTLRInputStream(code);
LangLexer lexer = new LangLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
LangParser parser = new LangParser(tokens);
ParseTree tree = parser.file(); // start up
System.out.println(tree.toStringTree(parser));
ParseTreeWalker walker = new ParseTreeWalker();
Gen listener = new Gen();
walker.walk(listener, tree);
for (String decl : listener.decls) {
System.out.println(decl);
}
}
Trans.java 文件源码
项目:cs652
阅读 15
收藏 0
点赞 0
评论 0
public static void main(String[] args) {
String code =
"int x;\n" +
"A b;\n";
ANTLRInputStream input = new ANTLRInputStream(code);
LangLexer lexer = new LangLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
LangParser parser = new LangParser(tokens);
ParseTree tree = parser.file(); // start up
System.out.println(tree.toStringTree(parser));
ParseTreeWalker walker = new ParseTreeWalker();
Gen listener = new Gen();
walker.walk(listener, tree);
ST output = listener.file.getTemplate();
System.out.println(output.render());
}