01: package fri.patterns.interpreter.parsergenerator.examples;
02:
03: import fri.patterns.interpreter.parsergenerator.Parser;
04: import fri.patterns.interpreter.parsergenerator.Token;
05: import fri.patterns.interpreter.parsergenerator.parsertables.SLRParserTables;
06: import fri.patterns.interpreter.parsergenerator.builder.SerializedParser;
07: import fri.patterns.interpreter.parsergenerator.semantics.PrintSemantic;
08:
09: /**
10: "Hello World" example 2. Checks if "Hello" is followed by "World", arbitrary whitespaces.
11: Shows how to use the serialization parser builder (quick loading for big syntaxes).
12:
13: @author Fritz Ritzberger
14: */
15:
16: public class HelloWorldParser2 {
17: private static final String[][] syntax = {
18: { "Start", "\"Hello\"", "\"World\"" },
19: { Token.IGNORED, "`whitespaces`" }, };
20:
21: public static void main(String[] args) throws Exception {
22: Parser parser = new SerializedParser().get(
23: SLRParserTables.class, syntax, "HelloWorld2"); // generates "$HOME/.friware/parsers/HelloWorld2Parser.ser"
24: parser.setInput("\tHello \r\n\tWorld\n"); // give the lexer some very complex input :-)
25: parser.parse(new PrintSemantic()); // start parsing with a print-semantic
26: }
27:
28: }
|