@@ -29,18 +29,30 @@ class GrammarTest : TestCase() {
2929 * Execute SUT & Verification
3030 */
3131 assertEquals(semValid.length, regexTerminal.SemanticMatch (semValid, 0 ).matchResult)
32+ assertEquals(listOf (" 1K" ), regexTerminal.SemanticMatch (semValid, 0 ).tokens)
33+
3234 assertEquals(semValid.length, regexTerminal.SyntacticMatch (semValid, 0 ).matchResult)
35+ assertEquals(listOf (" 1K" ), regexTerminal.SyntacticMatch (semValid, 0 ).tokens)
36+
3337 assertEquals(NoMatch , regexTerminal.SemanticMatch (synValid, 0 ))
38+
3439 assertEquals(synValid.length, regexTerminal.SyntacticMatch (synValid, 0 ).matchResult)
40+ assertEquals(listOf (" -2Z" ), regexTerminal.SyntacticMatch (synValid, 0 ).tokens)
41+
3542 assertEquals(NoMatch , regexTerminal.SemanticMatch (invalid, 0 ))
3643 assertEquals(NoMatch , regexTerminal.SyntacticMatch (invalid, 0 ))
3744
3845 assertEquals(semValidFromOffset.length, regexTerminal.SemanticMatch (semValidFromOffset, garbage.length).matchResult)
46+ assertEquals(listOf (" 1K" ), regexTerminal.SemanticMatch (semValidFromOffset, garbage.length).tokens)
47+
3948 assertEquals(semValidFromOffset.length, regexTerminal.SyntacticMatch (semValidFromOffset, garbage.length).matchResult)
49+ assertEquals(listOf (" 1K" ), regexTerminal.SyntacticMatch (semValidFromOffset, garbage.length).tokens)
4050
4151 assertEquals(synValidFromOffset.length, regexTerminal.SyntacticMatch (synValidFromOffset, garbage.length).matchResult)
42- assertEquals(NoMatch , regexTerminal.SemanticMatch (synValidFromOffset, garbage.length))
52+ assertEquals(listOf (" -2Z" ), regexTerminal.SyntacticMatch (synValidFromOffset, garbage.length).tokens)
53+
4354
55+ assertEquals(NoMatch , regexTerminal.SemanticMatch (synValidFromOffset, garbage.length))
4456 assertEquals(NoMatch , regexTerminal.SyntacticMatch (invalidFromOffset, garbage.length))
4557 assertEquals(NoMatch , regexTerminal.SemanticMatch (invalidFromOffset, garbage.length))
4658
@@ -70,13 +82,19 @@ class GrammarTest : TestCase() {
7082 * Execute SUT & Verification
7183 */
7284 assertEquals(semValid.length, literalChoiceTerminal.SemanticMatch (semValid, 0 ).matchResult)
85+ assertEquals(listOf (" foo" ), literalChoiceTerminal.SemanticMatch (semValid, 0 ).tokens)
86+
7387 assertEquals(semValid.length, literalChoiceTerminal.SyntacticMatch (semValid, 0 ).matchResult)
88+ assertEquals(listOf (" foo" ), literalChoiceTerminal.SyntacticMatch (semValid, 0 ).tokens)
7489
7590 assertEquals(NoMatch , literalChoiceTerminal.SemanticMatch (invalid, 0 ))
7691 assertEquals(NoMatch , literalChoiceTerminal.SyntacticMatch (invalid, 0 ))
7792
7893 assertEquals(semValidFromOffset.length, literalChoiceTerminal.SemanticMatch (semValidFromOffset, garbage.length).matchResult)
94+ assertEquals(listOf (" foo" ), literalChoiceTerminal.SemanticMatch (semValidFromOffset, garbage.length).tokens)
95+
7996 assertEquals(semValidFromOffset.length, literalChoiceTerminal.SyntacticMatch (semValidFromOffset, garbage.length).matchResult)
97+ assertEquals(listOf (" foo" ), literalChoiceTerminal.SyntacticMatch (semValidFromOffset, garbage.length).tokens)
8098
8199 assertEquals(NoMatch , literalChoiceTerminal.SemanticMatch (invalidFromOffset, garbage.length))
82100 assertEquals(NoMatch , literalChoiceTerminal.SyntacticMatch (invalidFromOffset, garbage.length))
@@ -115,12 +133,16 @@ class GrammarTest : TestCase() {
115133 * Execute SUT & Verification
116134 */
117135 assertEquals(semValid.length, sequenceCombinator.SyntacticMatch (semValid, 0 ).matchResult)
136+ assertEquals(listOf (" 1" , " K" ), sequenceCombinator.SyntacticMatch (semValid, 0 ).tokens)
137+
118138 assertEquals(semValid.length, sequenceCombinator.SemanticMatch (semValid, 0 ).matchResult)
139+ assertEquals(listOf (" 1" , " K" ), sequenceCombinator.SemanticMatch (semValid, 0 ).tokens)
119140
120141
121142 assertEquals(synValid.length, sequenceCombinator.SyntacticMatch (synValid, 0 ).matchResult)
122- assertEquals(NoMatch , sequenceCombinator.SemanticMatch (synValid, 0 ))
143+ assertEquals(listOf ( " -0 " , " B " ), sequenceCombinator.SyntacticMatch (synValid, 0 ).tokens )
123144
145+ assertEquals(NoMatch , sequenceCombinator.SemanticMatch (synValid, 0 ))
124146
125147 assertEquals(NoMatch , sequenceCombinator.SyntacticMatch (semPrefix, 0 ))
126148 assertEquals(NoMatch , sequenceCombinator.SemanticMatch (semPrefix, 0 ))
@@ -132,14 +154,17 @@ class GrammarTest : TestCase() {
132154 assertEquals(NoMatch , sequenceCombinator.SemanticMatch (invalid, 0 ))
133155
134156 assertEquals(semValidFromOffset.length, sequenceCombinator.SemanticMatch (semValidFromOffset, garbage.length).matchResult)
157+ assertEquals(listOf (" 1" , " K" ), sequenceCombinator.SemanticMatch (semValidFromOffset, garbage.length).tokens)
158+
135159 assertEquals(semValidFromOffset.length, sequenceCombinator.SyntacticMatch (semValidFromOffset, garbage.length).matchResult)
160+ assertEquals(listOf (" 1" , " K" ), sequenceCombinator.SyntacticMatch (semValidFromOffset, garbage.length).tokens)
136161
137162 assertEquals(synValidFromOffset.length, sequenceCombinator.SyntacticMatch (synValidFromOffset, garbage.length).matchResult)
138- assertEquals(NoMatch , sequenceCombinator.SemanticMatch (synValidFromOffset, garbage.length))
163+ assertEquals(listOf ( " -0 " , " B " ), sequenceCombinator.SyntacticMatch (synValidFromOffset, garbage.length).tokens )
139164
165+ assertEquals(NoMatch , sequenceCombinator.SemanticMatch (synValidFromOffset, garbage.length))
140166 assertEquals(NoMatch , sequenceCombinator.SemanticMatch (semPrefixFromOffset, garbage.length))
141167 assertEquals(NoMatch , sequenceCombinator.SyntacticMatch (semPrefixFromOffset, garbage.length))
142-
143168 assertEquals(NoMatch , sequenceCombinator.SemanticMatch (synPrefixFromOffset, garbage.length))
144169 assertEquals(NoMatch , sequenceCombinator.SyntacticMatch (synPrefixFromOffset, garbage.length))
145170
@@ -174,19 +199,31 @@ class GrammarTest : TestCase() {
174199 * Execute SUT & Verification
175200 */
176201 assertEquals(semValid.length, alternativeCombinator.SyntacticMatch (semValid, 0 ).matchResult)
202+ assertEquals(listOf (" on" ), alternativeCombinator.SyntacticMatch (semValid, 0 ).tokens)
203+
177204 assertEquals(semValid.length, alternativeCombinator.SemanticMatch (semValid, 0 ).matchResult)
205+ assertEquals(listOf (" on" ), alternativeCombinator.SemanticMatch (semValid, 0 ).tokens)
178206
179207 assertEquals(semValid2.length, alternativeCombinator.SyntacticMatch (semValid2, 0 ).matchResult)
208+ assertEquals(listOf (" off" ), alternativeCombinator.SyntacticMatch (semValid2, 0 ).tokens)
209+
180210 assertEquals(semValid2.length, alternativeCombinator.SemanticMatch (semValid2, 0 ).matchResult)
211+ assertEquals(listOf (" off" ), alternativeCombinator.SemanticMatch (semValid2, 0 ).tokens)
181212
182213 assertEquals(NoMatch , alternativeCombinator.SyntacticMatch (invalid, 0 ))
183214 assertEquals(NoMatch , alternativeCombinator.SemanticMatch (invalid, 0 ))
184215
185216 assertEquals(semValidFromOffset.length, alternativeCombinator.SemanticMatch (semValidFromOffset, garbage.length).matchResult)
217+ assertEquals(listOf (" on" ), alternativeCombinator.SemanticMatch (semValidFromOffset, garbage.length).tokens)
218+
186219 assertEquals(semValidFromOffset.length, alternativeCombinator.SyntacticMatch (semValidFromOffset, garbage.length).matchResult)
220+ assertEquals(listOf (" on" ), alternativeCombinator.SyntacticMatch (semValidFromOffset, garbage.length).tokens)
187221
188222 assertEquals(semValid2FromOffset.length, alternativeCombinator.SemanticMatch (semValid2FromOffset, garbage.length).matchResult)
223+ assertEquals(listOf (" off" ), alternativeCombinator.SemanticMatch (semValid2FromOffset, garbage.length).tokens)
224+
189225 assertEquals(semValid2FromOffset.length, alternativeCombinator.SyntacticMatch (semValid2FromOffset, garbage.length).matchResult)
226+ assertEquals(listOf (" off" ), alternativeCombinator.SyntacticMatch (semValid2FromOffset, garbage.length).tokens)
190227
191228 assertEquals(NoMatch , alternativeCombinator.SemanticMatch (invalidFromOffset, garbage.length))
192229 assertEquals(NoMatch , alternativeCombinator.SyntacticMatch (invalidFromOffset, garbage.length))
@@ -215,19 +252,28 @@ class GrammarTest : TestCase() {
215252 * Execute SUT & Verification
216253 */
217254 assertEquals(semValid.length, oneOrMoreCombinator.SyntacticMatch (semValid, 0 ).matchResult)
255+ assertEquals(listOf (" fizz" , " buzz" , " fizz" ), oneOrMoreCombinator.SyntacticMatch (semValid, 0 ).tokens)
256+
218257 assertEquals(semValid.length, oneOrMoreCombinator.SemanticMatch (semValid, 0 ).matchResult)
258+ assertEquals(listOf (" fizz" , " buzz" , " fizz" ), oneOrMoreCombinator.SemanticMatch (semValid, 0 ).tokens)
219259
220260 assertEquals(synValid.length, oneOrMoreCombinator.SyntacticMatch (synValid, 0 ).matchResult)
261+ assertEquals(listOf (" bleh" , " bleh" , " bleh" ), oneOrMoreCombinator.SyntacticMatch (synValid, 0 ).tokens)
262+
221263 assertEquals(NoMatch , oneOrMoreCombinator.SemanticMatch (synValid, 0 ))
222264
223265 assertEquals(NoMatch , oneOrMoreCombinator.SyntacticMatch (invalid, 0 ))
224266 assertEquals(NoMatch , oneOrMoreCombinator.SemanticMatch (invalid, 0 ))
225267
226268 assertEquals(semValidFromOffset.length, oneOrMoreCombinator.SyntacticMatch (semValidFromOffset, garbage.length).matchResult)
227- assertEquals(semValidFromOffset.length, oneOrMoreCombinator.SemanticMatch (semValidFromOffset, garbage.length).matchResult )
269+ assertEquals(listOf ( " fizz " , " buzz " , " fizz " ), oneOrMoreCombinator.SyntacticMatch (semValidFromOffset, garbage.length).tokens )
228270
271+ assertEquals(semValidFromOffset.length, oneOrMoreCombinator.SemanticMatch (semValidFromOffset, garbage.length).matchResult)
272+ assertEquals(listOf (" fizz" , " buzz" , " fizz" ), oneOrMoreCombinator.SemanticMatch (semValidFromOffset, garbage.length).tokens)
229273
230274 assertEquals(synValidFromOffset.length, oneOrMoreCombinator.SyntacticMatch (synValidFromOffset, garbage.length).matchResult)
275+ assertEquals(listOf (" bleh" , " bleh" , " bleh" ), oneOrMoreCombinator.SyntacticMatch (synValidFromOffset, garbage.length).tokens)
276+
231277 assertEquals(NoMatch , oneOrMoreCombinator.SemanticMatch (synValidFromOffset, garbage.length))
232278
233279 assertEquals(NoMatch , oneOrMoreCombinator.SyntacticMatch (invalidFromOffset, garbage.length))
@@ -260,29 +306,53 @@ class GrammarTest : TestCase() {
260306 * Execute SUT & Verification
261307 */
262308 assertEquals(semValid.length, zeroOrMoreCombinator.SyntacticMatch (semValid, 0 ).matchResult)
309+ assertEquals(listOf (" fizz" , " buzz" , " fizz" ), zeroOrMoreCombinator.SyntacticMatch (semValid, 0 ).tokens)
310+
263311 assertEquals(semValid.length, zeroOrMoreCombinator.SemanticMatch (semValid, 0 ).matchResult)
312+ assertEquals(listOf (" fizz" , " buzz" , " fizz" ), zeroOrMoreCombinator.SemanticMatch (semValid, 0 ).tokens)
264313
265314 assertEquals(synValid.length, zeroOrMoreCombinator.SyntacticMatch (synValid, 0 ).matchResult)
315+ assertEquals(listOf (" bleh" , " bleh" , " bleh" ), zeroOrMoreCombinator.SyntacticMatch (synValid, 0 ).tokens)
316+
266317 assertEquals(0 , zeroOrMoreCombinator.SemanticMatch (synValid, 0 ).matchResult)
318+ assertEquals(listOf<String >(), zeroOrMoreCombinator.SemanticMatch (synValid, 0 ).tokens)
267319
268320 assertEquals(semValidEmpty.length, zeroOrMoreCombinator.SyntacticMatch (semValidEmpty, 0 ).matchResult)
321+ assertEquals(listOf<String >(), zeroOrMoreCombinator.SyntacticMatch (semValidEmpty, 0 ).tokens)
322+
269323 assertEquals(semValidEmpty.length, zeroOrMoreCombinator.SemanticMatch (semValidEmpty, 0 ).matchResult)
324+ assertEquals(listOf<String >(), zeroOrMoreCombinator.SemanticMatch (semValidEmpty, 0 ).tokens)
325+
270326
271327 assertEquals(0 , zeroOrMoreCombinator.SyntacticMatch (invalid, 0 ).matchResult)
328+ assertEquals(listOf<String >(), zeroOrMoreCombinator.SyntacticMatch (invalid, 0 ).tokens)
329+
272330 assertEquals(0 , zeroOrMoreCombinator.SemanticMatch (invalid, 0 ).matchResult)
331+ assertEquals(listOf<String >(), zeroOrMoreCombinator.SemanticMatch (invalid, 0 ).tokens)
273332
274333 assertEquals(semValidFromOffset.length, zeroOrMoreCombinator.SyntacticMatch (semValidFromOffset, garbage.length).matchResult)
334+ assertEquals(listOf (" fizz" , " buzz" , " fizz" ), zeroOrMoreCombinator.SyntacticMatch (semValidFromOffset, garbage.length).tokens)
335+
275336 assertEquals(semValidFromOffset.length, zeroOrMoreCombinator.SemanticMatch (semValidFromOffset, garbage.length).matchResult)
337+ assertEquals(listOf (" fizz" , " buzz" , " fizz" ), zeroOrMoreCombinator.SemanticMatch (semValidFromOffset, garbage.length).tokens)
276338
277339 assertEquals(synValidFromOffset.length, zeroOrMoreCombinator.SyntacticMatch (synValidFromOffset, garbage.length).matchResult)
340+ assertEquals(listOf (" bleh" , " bleh" , " bleh" ), zeroOrMoreCombinator.SyntacticMatch (synValidFromOffset, garbage.length).tokens)
341+
278342 assertEquals(garbage.length, zeroOrMoreCombinator.SemanticMatch (synValidFromOffset, garbage.length).matchResult)
343+ assertEquals(listOf<String >(), zeroOrMoreCombinator.SemanticMatch (synValidFromOffset, garbage.length).tokens)
279344
280345 assertEquals(garbage.length, zeroOrMoreCombinator.SyntacticMatch (semValidEmptyFromOffset, garbage.length).matchResult)
346+ assertEquals(listOf<String >(), zeroOrMoreCombinator.SyntacticMatch (semValidEmptyFromOffset, garbage.length).tokens)
347+
281348 assertEquals(garbage.length, zeroOrMoreCombinator.SemanticMatch (semValidEmptyFromOffset, garbage.length).matchResult)
349+ assertEquals(listOf<String >(), zeroOrMoreCombinator.SemanticMatch (semValidEmptyFromOffset, garbage.length).tokens)
282350
283351 assertEquals(garbage.length, zeroOrMoreCombinator.SyntacticMatch (invalidFromOffset, garbage.length).matchResult)
284- assertEquals(garbage.length , zeroOrMoreCombinator.SemanticMatch (invalidFromOffset, garbage.length).matchResult )
352+ assertEquals(listOf< String >() , zeroOrMoreCombinator.SyntacticMatch (invalidFromOffset, garbage.length).tokens )
285353
354+ assertEquals(garbage.length, zeroOrMoreCombinator.SemanticMatch (invalidFromOffset, garbage.length).matchResult)
355+ assertEquals(listOf<String >(), zeroOrMoreCombinator.SemanticMatch (invalidFromOffset, garbage.length).tokens)
286356 }
287357
288358 fun testEOFCombinatorMatches () {
@@ -305,17 +375,22 @@ class GrammarTest : TestCase() {
305375 * Execute SUT & Verification
306376 */
307377 assertEquals(semValid.length, eof.SyntacticMatch (semValid, 0 ).matchResult)
378+ assertEquals(listOf<String >(), eof.SyntacticMatch (semValid, 0 ).tokens)
379+
308380 assertEquals(semValid.length, eof.SemanticMatch (semValid, 0 ).matchResult)
381+ assertEquals(listOf<String >(), eof.SemanticMatch (semValid, 0 ).tokens)
309382
310383 assertEquals(NoMatch , eof.SyntacticMatch (invalid, 0 ))
311384 assertEquals(NoMatch , eof.SyntacticMatch (invalid, 0 ))
312385
313386 assertEquals(semValidFromOffset.length, eof.SyntacticMatch (semValidFromOffset, garbage.length).matchResult)
387+ assertEquals(listOf<String >(), eof.SyntacticMatch (semValidFromOffset, garbage.length).tokens)
388+
314389 assertEquals(semValidFromOffset.length, eof.SemanticMatch (semValidFromOffset, garbage.length).matchResult)
390+ assertEquals(listOf<String >(), eof.SemanticMatch (semValidFromOffset, garbage.length).tokens)
315391
316392 assertEquals(NoMatch , eof.SyntacticMatch (invalidFromOffset, garbage.length))
317393 assertEquals(NoMatch , eof.SemanticMatch (invalidFromOffset, garbage.length))
318-
319394 }
320395
321396}
0 commit comments