/* ********************************************** * Duale Hochschule Baden-Württemberg Karlsruhe * Prof. Dr. Jörn Eisenbiegler * * Vorlesung Übersetzerbau * Praxis ANTLR-Parser für X * - Grammatik für Scanner und Parser * * ********************************************** */ grammar X; options { language = Java; output = AST; ASTLabelType = CommonTree; backtrack = true; } // AST-Tokens tokens { ID; INTCONST; FLOATCONST; WS; } @parser::header {package de.dhbw.compiler.antlrxparser;} @lexer::header {package de.dhbw.compiler.antlrxparser;} // Anmerkung: Es müssen Lexer- UND Parser-Regeln stehen, da sonst das Generieren nicht funktionieren // Lexer stuff ID: ('a'..'z' | 'A'..'Z') (options { greedy = true; // Lese alle möglichen Zeichen ein -> Zahlen in ID -> bleibt weiterhin ID }: 'a'..'z' | 'A'..'Z' | '0'..'9')*; INTCONST: ('0'..'9')+; FLOATCONST: INTCONST '.' INTCONST; WS: ('\t' | ' ' | '\r' | '\n' | '\f')+ { skip(); }; // Parser stuff program: 'TODO';