diff options
Diffstat (limited to 'runtime/ObjC/Framework/examples/treeparser/main.m')
-rw-r--r-- | runtime/ObjC/Framework/examples/treeparser/main.m | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/runtime/ObjC/Framework/examples/treeparser/main.m b/runtime/ObjC/Framework/examples/treeparser/main.m new file mode 100644 index 0000000..d1eeaf1 --- /dev/null +++ b/runtime/ObjC/Framework/examples/treeparser/main.m @@ -0,0 +1,55 @@ +#import <Cocoa/Cocoa.h> +#import "antlr3.h" +#import "LangLexer.h" +#import "LangParser.h" +#import "LangDumpDecl.h" +#import "stdio.h" +#include <unistd.h> + +/* +import org.antlr.runtime.*; +import org.antlr.runtime.tree.*; + +public class Main { + public static void main(String[] args) throws Exception { + CharStream input = new ANTLRFileStream(args[0]); + LangLexer lex = new LangLexer(input); + CommonTokenStream tokens = new CommonTokenStream(lex); + LangParser parser = new LangParser(tokens); + //LangParser.decl_return r = parser.decl(); + LangParser.start_return r = parser.start(); + System.out.println("tree: "+((Tree)r.tree).toStringTree()); + CommonTree r0 = ((CommonTree)r.tree); + + CommonTreeNodeStream nodes = new CommonTreeNodeStream(r0); + nodes.setTokenStream(tokens); + LangDumpDecl walker = new LangDumpDecl(nodes); + walker.decl(); + } +} +*/ + +int main(int argc, const char * argv[]) +{ + NSError *error; + NSLog(@"starting treeparser\n"); + NSString *dir = @"/Users/acondit/source/antlr3/acondit_localhost/code/antlr/main/runtime/ObjC/Framework/examples/treeparser/input"; + NSString *string = [NSString stringWithContentsOfFile:dir encoding:NSASCIIStringEncoding error:&error]; + NSLog(@"input = %@", string); + ANTLRStringStream *stream = [ANTLRStringStream newANTLRStringStream:string]; + LangLexer *lex = [LangLexer newLangLexerWithCharStream:stream]; + ANTLRCommonTokenStream *tokens = [ANTLRCommonTokenStream newANTLRCommonTokenStreamWithTokenSource:lex]; + LangParser *parser = [LangParser newLangParser:tokens]; +// LangParser_decl_return *r = [parser decl]; + LangParser_start_return *r = [parser start]; + NSLog( @"tree: %@", [r.tree toStringTree]); + ANTLRCommonTree *r0 = [r getTree]; + + ANTLRCommonTreeNodeStream *nodes = [ANTLRCommonTreeNodeStream newANTLRCommonTreeNodeStream:r0]; + [nodes setTokenStream:tokens]; + LangDumpDecl *walker = [LangDumpDecl newLangDumpDecl:nodes]; + [walker decl]; + + NSLog(@"exiting treeparser\n"); + return 0; +}
\ No newline at end of file |