aboutsummaryrefslogtreecommitdiff
path: root/runtime/ObjC/Framework/examples/treerewrite/main.m
blob: cd8f9e18167a11811086317091fee99ba54726d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#import <Cocoa/Cocoa.h>
#import "antlr3.h"
#import "TreeRewriteLexer.h"
#import "TreeRewriteParser.h"
//#import "stdio.h"
//#include <unistd.h>

int main() {
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

	ANTLRStringStream *stream = [ANTLRStringStream newANTLRStringStream:@"23 42"];
	TreeRewriteLexer *lexer = [TreeRewriteLexer newTreeRewriteLexerWithCharStream:stream];
	
//    id<ANTLRToken> currentToken;
//    while ((currentToken = [lexer nextToken]) && [currentToken type] != ANTLRTokenTypeEOF) {
//        NSLog(@"%@", currentToken);
//    }
	
	ANTLRCommonTokenStream *tokenStream = [ANTLRCommonTokenStream newANTLRCommonTokenStreamWithTokenSource:lexer];
	TreeRewriteParser *parser = [[TreeRewriteParser alloc] initWithTokenStream:tokenStream];
	ANTLRCommonTree *rule_tree = [[parser rule] getTree];
	NSLog(@"tree: %@", [rule_tree treeDescription]);
//	ANTLRCommonTreeNodeStream *treeStream = [[ANTLRCommonTreeNodeStream alloc] initWithTree:program_tree];
//	SimpleCTP *walker = [[SimpleCTP alloc] initWithTreeNodeStream:treeStream];
//	[walker program];

	[lexer release];
	[stream release];
	[tokenStream release];
	[parser release];
//	[treeStream release];
//	[walker release];

	[pool release];
    // sleep for objectalloc
    // while(1) sleep(60);
	return 0;
}