1 package fri.patterns.interpreter.parsergenerator.examples; 2 3 import fri.patterns.interpreter.parsergenerator.Token; 4 import fri.patterns.interpreter.parsergenerator.Lexer; 5 import fri.patterns.interpreter.parsergenerator.Parser; 6 import fri.patterns.interpreter.parsergenerator.ParserTables; 7 import fri.patterns.interpreter.parsergenerator.syntax.Syntax; 8 import fri.patterns.interpreter.parsergenerator.syntax.builder.SyntaxSeparation; 9 import fri.patterns.interpreter.parsergenerator.lexer.LexerBuilder; 10 import fri.patterns.interpreter.parsergenerator.parsertables.SLRParserTables; 11 import fri.patterns.interpreter.parsergenerator.semantics.PrintSemantic; 12 13 19 20 public class HelloWorldParser 21 { 22 private static final String [][] syntax = { 23 { "Start", "\"Hello\"", "\"World\"" }, 24 { Token.IGNORED, "`whitespaces`" }, 25 }; 26 27 public static void main(String [] args) 28 throws Exception 29 { 30 SyntaxSeparation separation = new SyntaxSeparation(new Syntax(syntax)); LexerBuilder builder = new LexerBuilder(separation.getLexerSyntax(), separation.getIgnoredSymbols()); Lexer lexer = builder.getLexer(); 33 lexer.setInput("\tHello \r\n\tWorld\n"); ParserTables parserTables = new SLRParserTables(separation.getParserSyntax()); 35 Parser parser = new Parser(parserTables); 36 parser.parse(lexer, new PrintSemantic()); } 38 39 } 40 | Popular Tags |