...
To use a grammar T.g
:
Code Block |
---|
package {
import flash.display.Sprite;
import org.antlr.runtime.*;
public class AntlrActionScriptTest extends Sprite {
public function AntlrActionScriptTest ( ):void {
var lexer:TLexer = new TLexer ( new ANTLRStringStream ( input ) );
var tokens:CommonTokenStream = CommonTokenStream ( lexer );
var parser:TParser = TParser ( tokens );
parser.entry_rule ( );
}
}
}
|
...
For grammars T.g
(parser and lexer) and TWalker.g
(the tree parser):
Code Block |
---|
package {
import flash.display.Sprite;
import org.antlr.runtime.*;
public class AntlrActionScriptTreeWalkerTest extends Sprite {
public function AntlrActionScriptTest ( ):void {
var lexer:TLexer = new TLexer ( new ANTLRStringStream ( input ) );
var tokens:CommonTokenStream = CommonTokenStream ( lexer );
var parser:TParser = TParser ( tokens );
var r:ParserRuleReturnScope = parser.entry_rule ( );
// This is the root of the AST.
var root:Tree = r.tree;
var nodes:CommonTreeNodeStream = CommonTreeNodeStream ( root );
nodes.setTokenStream ( tokens );
var walker:TWalker = new TWalker ( nodes );
walker.entry_rule ( );
}
}
}
|
Code Block |
---|
import antlr3 import antlr3.tree from TLexer import TLexer from TParser import TParser from TWalker import TWalker char_stream = antlr3.ANTLRStringStream(...) lexer = TLexer(char_stream) tokens = antlr3.CommonTokenStream(lexer) parser = TParser(tokens) r = parser.entry_rule() # this is the root of the AST root = r.tree nodes = antlr3.tree.CommonTreeNodeStream(root) nodes.setTokenStream(tokens) walker = TWalker(nodes) walker.entry_rule() |
...