equal
deleted
inserted
replaced
79 p := (keywordToken, idToken) star, idToken, assignmentToken, idToken. |
79 p := (keywordToken, idToken) star, idToken, assignmentToken, idToken. |
80 self compile: p. |
80 self compile: p. |
81 |
81 |
82 self assert: parser parse: 'foo: bar |
82 self assert: parser parse: 'foo: bar |
83 id:=another'. |
83 id:=another'. |
84 self assert: result first size = 1.. |
84 self assert: result first size = 1. |
85 self assert: result second inputValue = 'id'. |
85 self assert: result second inputValue = 'id'. |
86 self assert: result third inputValue = ':='. |
86 self assert: result third inputValue = ':='. |
87 self assert: result last inputValue = 'another'. |
87 self assert: result last inputValue = 'another'. |
88 |
88 |
|
89 true ifTrue: [ ^ self ]. |
|
90 "skip for simple tokenizer" |
89 self assert: context tokenReadCount == 2 description: 'too many token reads?'. |
91 self assert: context tokenReadCount == 2 description: 'too many token reads?'. |
90 ! |
92 ! |
91 |
93 |
92 testOverlappingToken |
94 testOverlappingToken |
93 p := (unaryToken ==> [ :e | #unary ]) / (keywordToken ==> [:e | #kw ]). |
95 p := (unaryToken ==> [ :e | #unary ]) / (keywordToken ==> [:e | #kw ]). |
130 self assert: result first = #foo. |
132 self assert: result first = #foo. |
131 self assert: result second = #id. |
133 self assert: result second = #id. |
132 self assert: result third = #foo. |
134 self assert: result third = #foo. |
133 self assert: result last = #id. |
135 self assert: result last = #id. |
134 |
136 |
|
137 true ifTrue: [ ^ self ]. |
|
138 "skip for simple tokenizer" |
135 self assert: context tokenReadCount == 1 description: 'too many token reads?'. |
139 self assert: context tokenReadCount == 1 description: 'too many token reads?'. |
136 ! |
140 ! |
137 |
141 |
138 testOverlappingTokenStar2 |
142 testOverlappingTokenStar2 |
139 p := (fooToken / idToken). |
143 p := (fooToken / idToken). |
143 self assert: result first inputValue = 'foo'. |
147 self assert: result first inputValue = 'foo'. |
144 self assert: result second inputValue = 'bar'. |
148 self assert: result second inputValue = 'bar'. |
145 self assert: result third inputValue = 'foo'. |
149 self assert: result third inputValue = 'foo'. |
146 self assert: result last inputValue = 'bar'. |
150 self assert: result last inputValue = 'bar'. |
147 |
151 |
|
152 true ifTrue: [ ^ self ]. |
|
153 "skip for simple tokenizer" |
148 self assert: context tokenReadCount == 1 description: 'too many token reads?'. |
154 self assert: context tokenReadCount == 1 description: 'too many token reads?'. |
149 ! |
155 ! |
150 |
156 |
151 testSanityAsignment |
157 testSanityAsignment |
152 self compile: assignmentToken. |
158 self compile: assignmentToken. |