Gramer
Örnek
Şöyle yaparız.
Gramerden Lexer (MyLexer.java), Parser (MyParser.java) ve Listener (MyBaseListener.java, MyListener.java, ) kodlaru üretilir..
Lexer Sınıfı
constructor
Şöyle yaparız.
constructor
Şöyle yaparız.
Şöyle yaparız.
translationUnit metodu
Şöyle yaparız.
walk metodu
Şöyle yaparız.
Örnek
Şöyle yaparız.
grammar Demo;
program: command
IDENTIFIER
;
command:
'add'
| 'remove'
;
IDENTIFIER: [a-zA-Z][a-zA-Z0-9]* ;
WHITESPACE: [ \t\n\r]+ -> skip;
Kod ÜretimiGramerden Lexer (MyLexer.java), Parser (MyParser.java) ve Listener (MyBaseListener.java, MyListener.java, ) kodlaru üretilir..
Lexer Sınıfı
constructor
Şöyle yaparız.
String str = ...;
// Get our lexer
MyLexer lexer = new MyLexer(new ANTLRInputStream(str));
Parser Sınıfıconstructor
Şöyle yaparız.
// Get a list of matched tokens
CommonTokenStream tokens = new CommonTokenStream(lexer);
// Pass the tokens to the parser
MyParser parser = new MyParser(tokens);
compilationUnit metoduŞöyle yaparız.
import org.antlr.runtime.CommonTokenStream;
import org.antlr.runtime.ANTLRFileStream;
import org.antlr.runtime.tree.CommonTree;
import org.antlr.runtime.tree.DOTTreeGenerator;
import org.antlr.stringtemplate.StringTemplate;
parseFile("/home/Test.java");
public static void parseFile(String f)throws Exception {
JavaLexer lexer = new JavaLexer(new ANTLRFileStream(f));
CommonTokenStream tokens = new CommonTokenStream(lexer);
JavaParser parser = new JavaParser(tokens);
CommonTree tree = (CommonTree)parser.compilationUnit().getTree();
DOTTreeGenerator gen = new DOTTreeGenerator();
StringTemplate st = gen.toDOT(tree);
System.out.println(st);
}
translationUnit metodu
Şöyle yaparız.
ParseTree entryPoint = parser.translationunit();
ParseTreeWalker Sınıfıwalk metodu
Şöyle yaparız.
/ Walk it and attach our listener
ParseTreeWalker walker = new ParseTreeWalker();
// Specify our entry point
ParseTree entryPoint = parser.translationunit();
walker.walk(new MyBaseListener(), entryPoint);
Hiç yorum yok:
Yorum Gönder