forked from itod/parsekit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEBNFParserTest.m
43 lines (35 loc) · 1.5 KB
/
EBNFParserTest.m
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
39
40
41
42
43
// Copyright 2010 Todd Ditchendorf
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#import "EBNFParserTest.h"
#import "EBNFParser.h"
@implementation EBNFParserTest
- (void)test {
//NSString *s = @"foo (bar|baz)*;";
NSString *s = @"$baz = bar; ($baz|foo)*;";
//NSString *s = @"foo;";
EBNFParser *p = [[[EBNFParser alloc] init] autorelease];
// PKAssembly *a = [p bestMatchFor:[PKTokenAssembly assemblyWithString:s]];
// NSLog(@"a: %@", a);
// NSLog(@"a.target: %@", a.target);
PKParser *res = [p parse:s];
// NSLog(@"res: %@", res);
// NSLog(@"res: %@", res.string);
// NSLog(@"res.subparsers: %@", res.subparsers);
// NSLog(@"res.subparsers 0: %@", [[res.subparsers objectAtIndex:0] string]);
// NSLog(@"res.subparsers 1: %@", [[res.subparsers objectAtIndex:1] string]);
s = @"bar foo bar foo";
PKAssembly *a = [res completeMatchFor:[PKTokenAssembly assemblyWithString:s]];
NSLog(@"\n\na: %@\n\n", a);
}
@end