treebuilderexample.java
来自「java 词法分析器,用于一般的C,C++,VB,PS/SQL 语句的翻译」· Java 代码 · 共 38 行
JAVA
38 行
package fri.patterns.interpreter.parsergenerator.semantics.examples;import java.io.*;import fri.patterns.interpreter.parsergenerator.*;import fri.patterns.interpreter.parsergenerator.lexer.*;import fri.patterns.interpreter.parsergenerator.syntax.Syntax;import fri.patterns.interpreter.parsergenerator.syntax.builder.*;import fri.patterns.interpreter.parsergenerator.semantics.TreeBuilderSemantic;/** TreeBuilderSemantic example that shows the instance tree of the EBNF file <i>syntax/builder/examples/SyntaxBuilder.syntax</i<.*/public class TreeBuilderExample{ /** Test output of SyntaxBuilder syntax tree. */ public static void main(String [] args) { try { Reader input = new InputStreamReader(Parser.class.getResourceAsStream("syntax/builder/examples/SyntaxBuilder.syntax")); Syntax syntax = new Syntax(StandardLexerRules.lexerSyntax); SyntaxSeparation separation = new SyntaxSeparation(syntax); LexerBuilder builder = new LexerBuilder(separation.getLexerSyntax(), separation.getIgnoredSymbols()); Lexer lexer = builder.getLexer(input); Parser p = new Parser(new SyntaxBuilderParserTables()); if (p.parse(lexer, new TreeBuilderSemantic())) { TreeBuilderSemantic.Node n = (TreeBuilderSemantic.Node)p.getResult(); System.err.println("got result: "+n); System.out.println(n.toString(0)); } } catch (Exception e) { e.printStackTrace(); } } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?