equal
deleted
inserted
replaced
12 !FooScannerTest methodsFor:'as yet unclassified'! |
12 !FooScannerTest methodsFor:'as yet unclassified'! |
13 |
13 |
14 fail: stream rule: rule |
14 fail: stream rule: rule |
15 scanner initialize. |
15 scanner initialize. |
16 scanner stream: stream asPetitStream. |
16 scanner stream: stream asPetitStream. |
17 result := scanner perform: rule. |
17 scanner perform: rule. |
|
18 result := scanner polyResult. |
18 |
19 |
19 self assert: result isEmpty |
20 self assert: result isEmpty |
20 ! |
21 ! |
21 |
22 |
22 fail: stream token: token rule: rule |
23 fail: stream token: token rule: rule |
24 ! |
25 ! |
25 |
26 |
26 fail: stream token: token rule: rule position: position |
27 fail: stream token: token rule: rule position: position |
27 scanner initialize. |
28 scanner initialize. |
28 scanner stream: stream asPetitStream. |
29 scanner stream: stream asPetitStream. |
29 result := scanner perform: rule. |
30 scanner perform: rule. |
30 |
31 |
|
32 result := scanner polyResult. |
31 self assert: (result at: token ifAbsent: [nil]) isNil. |
33 self assert: (result at: token ifAbsent: [nil]) isNil. |
32 ! |
34 ! |
33 |
35 |
34 parse: stream token: token rule: rule |
36 parse: stream token: token rule: rule |
35 self parse: stream token: token rule: rule position: stream size. |
37 self parse: stream token: token rule: rule position: stream size. |
36 ! |
38 ! |
37 |
39 |
38 parse: stream token: token rule: rule position: position |
40 parse: stream token: token rule: rule position: position |
39 scanner initialize. |
41 scanner initialize. |
40 scanner stream: stream asPetitStream. |
42 scanner stream: stream asPetitStream. |
41 result := scanner perform: rule. |
43 scanner perform: rule. |
|
44 result := scanner polyResult. |
42 |
45 |
43 self assert: (result includesKey: token). |
46 self assert: (result includesKey: token). |
44 self assert: (result at: token) = position. |
47 self assert: (result at: token) = position. |
45 ! |
48 ! |
46 |
49 |
83 self fail: 'aa' rule: #nextTokenAAstarA. |
86 self fail: 'aa' rule: #nextTokenAAstarA. |
84 self fail: 'aaaa' rule: #nextTokenAAstarA. |
87 self fail: 'aaaa' rule: #nextTokenAAstarA. |
85 ! |
88 ! |
86 |
89 |
87 testAB |
90 testAB |
88 self parse: 'ab' token: #b rule: #nextTokenAB position: 2. |
91 self parse: 'ab' token: #B rule: #nextTokenAB position: 2. |
89 ! |
92 ! |
90 |
93 |
91 testABorBC |
94 testABorBC |
92 self parse: 'ab' token: #ab rule: #nextTokenABorBC position: 2. |
95 self parse: 'ab' token: #ab rule: #nextTokenABorBC position: 2. |
93 self parse: 'bc' token: #bc rule: #nextTokenABorBC position: 2. |
96 self parse: 'bc' token: #bc rule: #nextTokenABorBC position: 2. |
149 self parse: 'ab' token: #AstarB rule: #nextTokenAstarB. |
152 self parse: 'ab' token: #AstarB rule: #nextTokenAstarB. |
150 self parse: 'b' token: #AstarB rule: #nextTokenAstarB. |
153 self parse: 'b' token: #AstarB rule: #nextTokenAstarB. |
151 self parse: 'aaab' token: #AstarB rule: #nextTokenAstarB. |
154 self parse: 'aaab' token: #AstarB rule: #nextTokenAstarB. |
152 |
155 |
153 self fail: 'c' rule: #nextTokenAstarB. |
156 self fail: 'c' rule: #nextTokenAstarB. |
|
157 ! ! |
|
158 |
|
159 !FooScannerTest methodsFor:'multivalues'! |
|
160 |
|
161 testAuorA |
|
162 self parse: 'a' token: #A1 rule: #nextTokenAuorA. |
|
163 self parse: 'a' token: #A2 rule: #nextTokenAuorA. |
|
164 |
|
165 self fail: 'b' rule: #nextTokenAuorA. |
154 ! |
166 ! |
155 |
167 |
156 testAuorA |
168 testMultiA |
157 self parse: 'a' token: #a1 rule: #nextTokenAuorA. |
169 self parse: 'a' token: #A1 rule: #nextMultiTokenA position: 1. |
158 self parse: 'a' token: #a2 rule: #nextTokenAuorA. |
170 self parse: 'a' token: #A2 rule: #nextMultiTokenA position: 1. |
159 |
171 |
160 self fail: 'b' rule: #nextTokenAuorA. |
172 self fail: 'b' rule: #nextMultiTokenA. |
161 ! ! |
173 ! ! |
162 |
174 |