grammar P; prog returns [int n] : d1=D op='+' d2=D { n=Integer.parseInt($d1.text) + Integer.parseInt($d2.text); } ; D: '0' .. '9'; WS: (' '|'\r'|'\n') {$channel=HIDDEN;};
import java.io.FileInputStream; import java.io.StringReader; import org.antlr.runtime.*; public class PMain { public static void main(String[] args) throws Exception { ANTLRStringStream input = new ANTLRStringStream("2+3"); PLexer lexer = new PLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); PParser parser = new PParser(tokens); int n=parser.prog(); System.out.println("result: "+n); } }
2+3
result: 5