609 self assert: parser parse: ''. |
611 self assert: parser parse: ''. |
610 |
612 |
611 self assert: parser parse: 'zorg' end: 0. |
613 self assert: parser parse: 'zorg' end: 0. |
612 ! |
614 ! |
613 |
615 |
614 testGuard1 |
|
615 | charSet | |
|
616 charSet := PPCCompiler new guardCharSet: $a asParser. |
|
617 self assert: (charSet equals: (PPCharSetPredicate on: [ :char | char = $a ])). |
|
618 ! |
|
619 |
|
620 testGuard2 |
|
621 | charSet | |
|
622 charSet := PPCCompiler new guardCharSet: #letter asParser. |
|
623 self assert: (charSet equals: (PPCharSetPredicate on: [ :char | char isLetter ])). |
|
624 ! |
|
625 |
|
626 testGuard3 |
|
627 | charSet | |
|
628 charSet := PPCCompiler new guardCharSet: #letter asParser not. |
|
629 self assert: (charSet equals: (PPCharSetPredicate on: [ :char | char isLetter not ])). |
|
630 ! |
|
631 |
|
632 testGuard4 |
|
633 | charSet | |
|
634 charSet := PPCCompiler new guardCharSet: (#letter asParser, #word asParser star). |
|
635 self assert: (charSet equals: (PPCharSetPredicate on: [ :char | char isLetter ])). |
|
636 ! |
|
637 |
|
638 testGuard5 |
|
639 | charSet | |
|
640 charSet := PPCCompiler new guardCharSet: 'foo' asParser. |
|
641 self assert: (charSet equals: (PPCharSetPredicate on: [ :char | char = $f ])). |
|
642 ! |
|
643 |
|
644 testGuard6 |
|
645 | charSet | |
|
646 charSet := PPCCompiler new guardCharSet: ('foo' asParser trimmingToken asCompilerTree optimizeTree). |
|
647 self assert: (charSet equals: (PPCharSetPredicate on: [ :char | (char = $f) ])) |
|
648 ! |
|
649 |
|
650 testGuard7 |
|
651 | charSet | |
|
652 charSet := PPCCompiler new guardCharSet: ('foo' asParser trimmingToken / 'bar' asParser trimmingToken) asCompilerTree optimizeTree. |
|
653 self assert: (charSet equals: (PPCharSetPredicate on: [ :char | (char = $f) or: [ char = $b ]] )). |
|
654 ! |
|
655 |
|
656 testGuardSmalltlakToken |
616 testGuardSmalltlakToken |
657 parser := (#letter asParser, #word asParser star) smalltalkToken compileWithParameters: { #profile -> true }. |
617 parser := (#letter asParser, #word asParser star) smalltalkToken compileWithParameters: { #profile -> true }. |
658 self assert: parser parse: 'bar'. |
618 self assert: parser parse: 'bar'. |
659 self assert: (context invocations anySatisfy: [ :e | e beginsWith: 'seq' ]). |
619 self assert: (context invocations anySatisfy: [ :e | e beginsWith: 'seq' ]). |
660 |
620 |
676 |
636 |
677 self assert: parser parse: 'ab'. |
637 self assert: parser parse: 'ab'. |
678 self assert: parser parse: ' ab'. |
638 self assert: parser parse: ' ab'. |
679 ! ! |
639 ! ! |
680 |
640 |
681 !PPCCompilerTest methodsFor:'tests - verification'! |
|
682 |
|
683 testClass |
|
684 | compiledParser normalParser source | |
|
685 normalParser := PPSmalltalkGrammar new. |
|
686 compiledParser := normalParser compile. |
|
687 |
|
688 Class methodsDo: [ :m | |
|
689 source := m sourceCode. |
|
690 self assert: (normalParser parse: source) |
|
691 equals: (compiledParser parse: source withContext: self context). |
|
692 ]. |
|
693 |
|
694 "Modified: / 05-11-2014 / 23:18:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
695 ! |
|
696 |
|
697 testObject |
|
698 | compiledParser normalParser source | |
|
699 normalParser := PPSmalltalkGrammar new. |
|
700 compiledParser := normalParser compile. |
|
701 |
|
702 Object methodsDo: [ :m | |
|
703 source := m sourceCode. |
|
704 self assert: (normalParser parse: source) |
|
705 equals: (compiledParser parse: source withContext: self context). |
|
706 ]. |
|
707 |
|
708 "Modified: / 30-10-2014 / 23:22:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
709 ! |
|
710 |
|
711 testWhitespace |
|
712 | compiledParser normalParser source | |
|
713 normalParser := PPSmalltalkGrammar new. |
|
714 compiledParser := normalParser compile. |
|
715 |
|
716 source := ' foo ^ 1'. |
|
717 self assert: (normalParser parse: source) |
|
718 equals: (compiledParser parse: source withContext: self context). |
|
719 ! ! |
|
720 |
|
721 !PPCCompilerTest class methodsFor:'documentation'! |
641 !PPCCompilerTest class methodsFor:'documentation'! |
722 |
642 |
723 version_HG |
643 version_HG |
724 |
644 |
725 ^ '$Changeset: <not expanded> $' |
645 ^ '$Changeset: <not expanded> $' |