Portability fix: do not use Behaviour>>methods.
On Smalltalk/X it returns a category reader (in order to be able to read Dolphin fileouts):
* use`class methodsDo:` instead of `class methods do:`
* use `class methodDictionary size` instead of `class methods size`
--- a/compiler/tests/PPCGuardTest.st Thu Oct 30 23:20:35 2014 +0000
+++ b/compiler/tests/PPCGuardTest.st Thu Oct 30 23:52:47 2014 +0000
@@ -7,6 +7,7 @@
category:'PetitCompiler-Tests-Core'
!
+
!PPCGuardTest methodsFor:'as yet unclassified'!
setUp
@@ -123,3 +124,10 @@
self assert: guard testSingleCharacter.
! !
+!PPCGuardTest class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- a/compiler/tests/PPCNodeCompilingTest.st Thu Oct 30 23:20:35 2014 +0000
+++ b/compiler/tests/PPCNodeCompilingTest.st Thu Oct 30 23:52:47 2014 +0000
@@ -92,29 +92,33 @@
!
testCompileChoice
- tree := PPCChoiceNode new
- children: { #digit asParser asCompilerNode. #letter asParser asCompilerNode };
- yourself.
-
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 4.
-
- self assert: parser parse: '1' to: $1.
- self assert: parser parse: 'a' to: $a.
- self assert: parser fail: '_'.
+ tree := PPCChoiceNode new
+ children: { #digit asParser asCompilerNode. #letter asParser asCompilerNode };
+ yourself.
+
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 4.
+
+ self assert: parser parse: '1' to: $1.
+ self assert: parser parse: 'a' to: $a.
+ self assert: parser fail: '_'.
+
+ "Modified: / 30-10-2014 / 23:48:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testCompileLiteral
- tree := PPCLiteralNode new
- literal: 'foo';
- yourself.
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 2.
- self assert: parser parse: 'foo' to: 'foo'.
- self assert: parser parse: 'foobar' to: 'foo' end: 3.
- self assert: parser fail: 'boo'.
+ tree := PPCLiteralNode new
+ literal: 'foo';
+ yourself.
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 2.
+ self assert: parser parse: 'foo' to: 'foo'.
+ self assert: parser parse: 'foobar' to: 'foo' end: 3.
+ self assert: parser fail: 'boo'.
+
+ "Modified: / 30-10-2014 / 23:48:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testCompileLiteral2
@@ -149,45 +153,51 @@
!
testCompileNotCharSetPredicate
- tree := PPCNotCharSetPredicateNode new
- predicate: (PPCharSetPredicate on: [ :e | e = $a ]);
- yourself.
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 2.
- self assert: parser parse: 'b' to: nil end: 0.
- self assert: context invocationCount = 2.
-
- self assert: parser fail: 'a'.
- self assert: parser parse: '' to: nil end: 0.
+ tree := PPCNotCharSetPredicateNode new
+ predicate: (PPCharSetPredicate on: [ :e | e = $a ]);
+ yourself.
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 2.
+ self assert: parser parse: 'b' to: nil end: 0.
+ self assert: context invocationCount = 2.
+
+ self assert: parser fail: 'a'.
+ self assert: parser parse: '' to: nil end: 0.
+
+ "Modified: / 30-10-2014 / 23:49:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testCompileNotLiteral
- tree := PPCNotLiteralNode new
- literal: 'foo';
- yourself.
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 2.
- self assert: parser parse: 'bar' to: nil end: 0.
- self assert: context invocationCount = 2.
-
- self assert: parser fail: 'foo'.
- self assert: parser parse: '' to: nil end: 0.
+ tree := PPCNotLiteralNode new
+ literal: 'foo';
+ yourself.
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 2.
+ self assert: parser parse: 'bar' to: nil end: 0.
+ self assert: context invocationCount = 2.
+
+ self assert: parser fail: 'foo'.
+ self assert: parser parse: '' to: nil end: 0.
+
+ "Modified: / 30-10-2014 / 23:50:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testCompileNotMessagePredicate
- tree := PPCNotMessagePredicateNode new
- message: #isDigit;
- yourself.
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 2.
- self assert: parser parse: 'a' to: nil end: 0.
- self assert: context invocationCount = 2.
-
- self assert: parser fail: '1'.
- self assert: parser parse: '' to: nil end: 0.
+ tree := PPCNotMessagePredicateNode new
+ message: #isDigit;
+ yourself.
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 2.
+ self assert: parser parse: 'a' to: nil end: 0.
+ self assert: context invocationCount = 2.
+
+ self assert: parser fail: '1'.
+ self assert: parser parse: '' to: nil end: 0.
+
+ "Modified: / 30-10-2014 / 23:50:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testCompileOptional
@@ -255,32 +265,34 @@
!
testCompileStarCharSetPredicate
- tree := PPCStarCharSetPredicateNode new
- predicate: (PPCharSetPredicate on: [:e | e = $a ]);
- yourself.
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 2.
- self assert: parser parse: 'aaa1' to: #( $a $a $a) end: 3.
- self assert: context invocationCount = 2.
- self assert: parser parse: 'bba' to: #() end: 0.
- self assert: context invocationCount = 2.
-
+ tree := PPCStarCharSetPredicateNode new
+ predicate: (PPCharSetPredicate on: [:e | e = $a ]);
+ yourself.
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 2.
+ self assert: parser parse: 'aaa1' to: #( $a $a $a) end: 3.
+ self assert: context invocationCount = 2.
+ self assert: parser parse: 'bba' to: #() end: 0.
+ self assert: context invocationCount = 2.
+
+ "Modified: / 30-10-2014 / 23:50:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testCompileStarMessagePredicate
- tree := PPCStarMessagePredicateNode new
- message: #isLetter;
- yourself.
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 2.
- self assert: parser parse: 'abc1' to: #( $a $b $c) end: 3.
- self assert: context invocationCount = 2.
-
- self assert: parser parse: '123a' to: #() end: 0.
- self assert: context invocationCount = 2.
-
+ tree := PPCStarMessagePredicateNode new
+ message: #isLetter;
+ yourself.
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 2.
+ self assert: parser parse: 'abc1' to: #( $a $b $c) end: 3.
+ self assert: context invocationCount = 2.
+
+ self assert: parser parse: '123a' to: #() end: 0.
+ self assert: context invocationCount = 2.
+
+ "Modified: / 30-10-2014 / 23:50:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testCompileSymbolAction
@@ -341,19 +353,21 @@
!
testCompileTokenStarMessagePredicate
-
- tree := PPCTokenStarMessagePredicateNode new message: #isLetter.
- parser := self compileTree: tree params: {#guards -> false}.
-
- self assert: parser class methods size = 2.
-
- self assert: parser parse: 'foo' to: parser.
- self assert: context invocationCount = 2.
- self assert: context lwRememberCount = 0.
- self assert: context lwRestoreCount = 0.
- self assert: context rememberCount = 0.
-
- self assert: parser parse: 'foo123' to: parser end: 3.
+
+ tree := PPCTokenStarMessagePredicateNode new message: #isLetter.
+ parser := self compileTree: tree params: {#guards -> false}.
+
+ self assert: parser class methodDictionary size = 2.
+
+ self assert: parser parse: 'foo' to: parser.
+ self assert: context invocationCount = 2.
+ self assert: context lwRememberCount = 0.
+ self assert: context lwRestoreCount = 0.
+ self assert: context rememberCount = 0.
+
+ self assert: parser parse: 'foo123' to: parser end: 3.
+
+ "Modified: / 30-10-2014 / 23:50:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPCNodeCompilingTest methodsFor:'tests - guard'!
--- a/compiler/tests/PetitCompilerTest.st Thu Oct 30 23:20:35 2014 +0000
+++ b/compiler/tests/PetitCompilerTest.st Thu Oct 30 23:52:47 2014 +0000
@@ -380,15 +380,17 @@
!
testSmalltalkToken
- parser := (#letter asParser, (#digit asParser / #letter asParser) star) smalltalkToken compileWithParameters: {#profile -> true}.
-
- self assert: parser class methods size = 6.
- self assert: parser parse: 'foo'.
- self assert: result inputValue = 'foo'.
- self assert: context invocationCount = 9.
- self assert: context rememberCount = 0.
- self assert: context lwRememberCount = 1.
- self assert: context lwRestoreCount = 0.
+ parser := (#letter asParser, (#digit asParser / #letter asParser) star) smalltalkToken compileWithParameters: {#profile -> true}.
+
+ self assert: parser class methodDictionary size = 6.
+ self assert: parser parse: 'foo'.
+ self assert: result inputValue = 'foo'.
+ self assert: context invocationCount = 9.
+ self assert: context rememberCount = 0.
+ self assert: context lwRememberCount = 1.
+ self assert: context lwRestoreCount = 0.
+
+ "Modified: / 30-10-2014 / 23:20:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testSmalltalkToken2
@@ -417,44 +419,48 @@
!
testToken2
- parser := (#letter asParser, (#digit asParser / #letter asParser) star) token compileWithParameters: {#profile -> true}.
-
- self assert: parser class methods size = 5.
- self assert: parser parse: 'foo'.
- self assert: result inputValue = 'foo'.
- self assert: context invocationCount = 7.
- self assert: context rememberCount = 0.
- self assert: context lwRememberCount = 1.
- self assert: context lwRestoreCount = 0.
+ parser := (#letter asParser, (#digit asParser / #letter asParser) star) token compileWithParameters: {#profile -> true}.
+
+ self assert: parser class methodDictionary size = 5.
+ self assert: parser parse: 'foo'.
+ self assert: result inputValue = 'foo'.
+ self assert: context invocationCount = 7.
+ self assert: context rememberCount = 0.
+ self assert: context lwRememberCount = 1.
+ self assert: context lwRestoreCount = 0.
+
+ "Modified: / 30-10-2014 / 23:21:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testTrimmingToken
- parser := (#letter asParser, (#digit asParser / #letter asParser) star) trimmingToken compileWithParameters: { #profile -> true }.
+ parser := (#letter asParser, (#digit asParser / #letter asParser) star) trimmingToken compileWithParameters: { #profile -> true }.
- self assert: parser class methods size = 6.
-
- self assert: parser parse: 'foo'.
- self assert: result inputValue = 'foo'.
+ self assert: parser class methodDictionary size = 6.
+
+ self assert: parser parse: 'foo'.
+ self assert: result inputValue = 'foo'.
- self assert: context invocationCount = 9.
- self assert: context rememberCount = 0.
- self assert: context lwRememberCount = 1.
- self assert: context lwRestoreCount = 0.
+ self assert: context invocationCount = 9.
+ self assert: context rememberCount = 0.
+ self assert: context lwRememberCount = 1.
+ self assert: context lwRestoreCount = 0.
- self assert: parser parse: ' foo '.
- self assert: result inputValue = 'foo'.
+ self assert: parser parse: ' foo '.
+ self assert: result inputValue = 'foo'.
- self assert: parser fail: '123'.
+ self assert: parser fail: '123'.
- self assert: context invocationCount = 3.
- self assert: context rememberCount = 0.
- self assert: context lwRememberCount = 0.
- self assert: context lwRestoreCount = 0.
+ self assert: context invocationCount = 3.
+ self assert: context rememberCount = 0.
+ self assert: context lwRememberCount = 0.
+ self assert: context lwRestoreCount = 0.
- self assert: parser fail: ''.
+ self assert: parser fail: ''.
+
+ "Modified: / 30-10-2014 / 23:21:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PetitCompilerTest methodsFor:'tests - first set'!
@@ -622,15 +628,17 @@
!
testObject
- | compiledParser normalParser source |
- normalParser := PPSmalltalkGrammar new.
- compiledParser := normalParser compile.
-
- Object methods do: [ :m |
- source := m sourceCode.
- self assert: (normalParser parse: source)
- equals: (compiledParser parse: source withContext: self context).
- ].
+ | compiledParser normalParser source |
+ normalParser := PPSmalltalkGrammar new.
+ compiledParser := normalParser compile.
+
+ Object methodsDo: [ :m |
+ source := m sourceCode.
+ self assert: (normalParser parse: source)
+ equals: (compiledParser parse: source withContext: self context).
+ ].
+
+ "Modified: / 30-10-2014 / 23:22:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testWhitespace
--- a/compiler/tests/tests.rc Thu Oct 30 23:20:35 2014 +0000
+++ b/compiler/tests/tests.rc Thu Oct 30 23:52:47 2014 +0000
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Sun, 26 Oct 2014 22:46:25 GMT\0"
+ VALUE "ProductDate", "Thu, 30 Oct 2014 23:34:44 GMT\0"
END
END