# HG changeset patch # User Jan Vrany # Date 1414713167 0 # Node ID 538267cab6ecb4bd527b980796b9f72c496e066d # Parent 49dc52d760c8a4eb2355a25cda6c1f1653cc57ea 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` diff -r 49dc52d760c8 -r 538267cab6ec compiler/tests/PPCGuardTest.st --- 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: $' +! ! + diff -r 49dc52d760c8 -r 538267cab6ec compiler/tests/PPCNodeCompilingTest.st --- 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 " ! 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 " ! 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 " ! 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 " ! 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 " ! 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 " ! 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 " ! 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 " ! ! !PPCNodeCompilingTest methodsFor:'tests - guard'! diff -r 49dc52d760c8 -r 538267cab6ec compiler/tests/PetitCompilerTest.st --- 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 " ! 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 " ! 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 " ! ! !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 " ! testWhitespace diff -r 49dc52d760c8 -r 538267cab6ec compiler/tests/tests.rc --- 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