equal
deleted
inserted
replaced
7 classVariableNames:'' |
7 classVariableNames:'' |
8 poolDictionaries:'' |
8 poolDictionaries:'' |
9 category:'PetitCompiler-Tests-Nodes' |
9 category:'PetitCompiler-Tests-Nodes' |
10 ! |
10 ! |
11 |
11 |
|
12 PPCNodeFirstFollowNextTests class instanceVariableNames:'first' |
|
13 |
|
14 " |
|
15 The following class instance variables are inherited by this class: |
|
16 |
|
17 TestCase - lastOutcomes |
|
18 TestAsserter - |
|
19 Object - |
|
20 " |
|
21 ! |
|
22 |
12 !PPCNodeFirstFollowNextTests methodsFor:'setup'! |
23 !PPCNodeFirstFollowNextTests methodsFor:'setup'! |
13 |
24 |
14 setUp |
25 setUp |
15 configuration := PPCConfiguration default. |
26 configuration := PPCConfiguration default. |
16 configuration arguments generate: false. |
27 configuration arguments generate: false. |
17 "The First/Follow is not allowed after this phase:" |
|
18 configuration arguments specialize: false. |
|
19 ! ! |
28 ! ! |
20 |
29 |
21 !PPCNodeFirstFollowNextTests methodsFor:'support'! |
30 !PPCNodeFirstFollowNextTests methodsFor:'support'! |
22 |
31 |
23 assert: set anyMatchesType: whatever |
32 assert: set anyMatchesType: whatever |
334 tree := self treeFrom: #space asParser star. |
343 tree := self treeFrom: #space asParser star. |
335 |
344 |
336 first := self first: tree. |
345 first := self first: tree. |
337 |
346 |
338 self assert: first size: 2. |
347 self assert: first size: 2. |
339 self assert: first anyMatchesType: PPCPredicateNode. |
348 self assert: first anyMatchesType: PPCMessagePredicateNode. |
340 self assert: first anyMatchesType: PPCSentinelNode. |
349 self assert: first anyMatchesType: PPCSentinelNode. |
341 ! |
350 ! |
342 |
351 |
343 testFirstStarMessagePredicate2 |
352 testFirstStarMessagePredicate2 |
344 configuration arguments specialize: true. |
353 configuration arguments specialize: true. |
345 tree := self treeFrom: #space asParser star. |
354 tree := self treeFrom: #space asParser star. |
346 |
355 |
347 self should: [ self first: tree ] raise: Exception. |
356 first := self first: tree. |
|
357 |
|
358 self assert: first size: 2. |
|
359 self assert: first anyMatchesType: PPCMessagePredicateNode. |
|
360 self assert: first anyMatchesType: PPCSentinelNode. |
348 |
361 |
349 |
362 |
350 ! |
363 ! |
351 |
364 |
352 testFirstTerminal |
365 testFirstTerminal |
415 |
428 |
416 first := tree firstSetWithProductions. |
429 first := tree firstSetWithProductions. |
417 |
430 |
418 self assert: first size = 1. |
431 self assert: first size = 1. |
419 self assert: first anyOne name = 'foo'. |
432 self assert: first anyOne name = 'foo'. |
|
433 ! ! |
|
434 |
|
435 !PPCNodeFirstFollowNextTests methodsFor:'testing - first tokens'! |
|
436 |
|
437 testFirstTokenStar |
|
438 | token | |
|
439 token := '.' asParser token. |
|
440 |
|
441 tree := self treeFrom: token star. |
|
442 |
|
443 first := tree firstSetWithTokens. |
|
444 self assert: first size = 2. |
|
445 self assert: first anySatisfy: [ :e | e isTokenNode ]. |
|
446 self assert: first anySatisfy: [ :e | e = PPCSentinelNode instance ]. |
420 ! ! |
447 ! ! |
421 |
448 |
422 !PPCNodeFirstFollowNextTests methodsFor:'testing - follow'! |
449 !PPCNodeFirstFollowNextTests methodsFor:'testing - follow'! |
423 |
450 |
424 testFollowSet1 |
451 testFollowSet1 |