Compatibility fixes:
* do not use 'class methods size', use 'class methodDictionary size'
* do not use 'class methods do:', use 'class methodDo:'
--- a/compiler/PPCCompiler.st Wed Nov 05 23:05:19 2014 +0000
+++ b/compiler/PPCCompiler.st Thu Nov 06 01:41:10 2014 +0000
@@ -272,18 +272,18 @@
!
compileTree: compilerTree as: name parser: parser params: params
- | |
- params do: [ :p |
- (p key = #guards) ifTrue: [ self guards: p value ].
- ].
+ | |
+ params do: [ :p |
+ (p key = #guards) ifTrue: [ self guards: p value ].
+ ].
- ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[
- | rPackageOrganizer |
- rPackageOrganizer := Smalltalk at: #RPackageOrganizer.
- rPackageOrganizer notNil ifTrue:[
- rPackageOrganizer default registerPackageNamed: 'PetitCompiler-Generated'.
- ].
+ ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[
+ | rPackageOrganizer |
+ rPackageOrganizer := Smalltalk at: #RPackageOrganizer.
+ rPackageOrganizer notNil ifTrue:[
+ rPackageOrganizer default registerPackageNamed: 'PetitCompiler-Generated'.
+ ].
compiledParser := (Smalltalk at: name ifAbsent: [ nil ]).
compiledParser ifNil: [
@@ -295,30 +295,32 @@
compiledParser := Smalltalk at: name.
] ifNotNil: [
self clean: compiledParser
- ].
- ] ifFalse: [
- RPackageOrganizer default registerPackageNamed: 'PetitCompiler-Generated'.
- compiledParser := (Smalltalk at: name ifAbsent: [ nil ]).
- compiledParser ifNil: [
- PPCompiledParser subclass: name.
- compiledParser := Smalltalk at: name.
- compiledParser category: 'PetitCompiler-Generated'
- ] ifNotNil: [
- self clean: compiledParser
- ].
- ].
- compiledParser constants removeAll.
-
+ ].
+ ] ifFalse: [
+ RPackageOrganizer default registerPackageNamed: 'PetitCompiler-Generated'.
+ compiledParser := (Smalltalk at: name ifAbsent: [ nil ]).
+ compiledParser ifNil: [
+ PPCompiledParser subclass: name.
+ compiledParser := Smalltalk at: name.
+ compiledParser category: 'PetitCompiler-Generated'
+ ] ifNotNil: [
+ self clean: compiledParser
+ ].
+ ].
+ compiledParser constants removeAll.
+
- self startMethod: #start.
- self add: '^ '.
- self callOnLine: (compilerTree compileWith: self).
- self stopMethod.
+ self startMethod: #start.
+ self add: '^ '.
+ self callOnLine: (compilerTree compileWith: self).
+ self stopMethod.
- self installMethodsAndVariables: compiledParser.
+ self installVariablesAndMethods.
- compiledParser referringParser: parser.
- ^ compiledParser
+ compiledParser referringParser: parser.
+ ^ compiledParser
+
+ "Modified: / 05-11-2014 / 23:17:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
copy: parser
@@ -332,9 +334,11 @@
!
installVariables: class
- | string |
- string := class constants keys inject: '' into: [:r :e | r, ' ', e ].
- PPCompiledParser subclass: class name instanceVariableNames: string classVariableNames: '' category: 'PetitCompiler-Generated'.
+ | string |
+ string := class constants keys inject: '' into: [:r :e | r, ' ', e ].
+ PPCompiledParser subclass: class name instanceVariableNames: string classVariableNames: '' poolDictionaries:'' category: 'PetitCompiler-Generated'.
+
+ "Modified: / 26-10-2014 / 22:01:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
installVariablesAndMethods
--- a/compiler/PPCInlinePluggableNode.st Wed Nov 05 23:05:19 2014 +0000
+++ b/compiler/PPCInlinePluggableNode.st Thu Nov 06 01:41:10 2014 +0000
@@ -14,8 +14,10 @@
!
compileWith: compiler effect: effect id: id
- compiler startInline: id.
- compiler add: block asString, ' value: context.'.
- ^ compiler stopInline.
+ compiler startInline: id.
+ compiler add: block asString, ' value: context.'.
+ ^ compiler stopInline.
+
+ "Modified (format): / 06-11-2014 / 01:13:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
--- a/compiler/compiler.rc Wed Nov 05 23:05:19 2014 +0000
+++ b/compiler/compiler.rc Thu Nov 06 01:41:10 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", "Wed, 05 Nov 2014 22:51:08 GMT\0"
+ VALUE "ProductDate", "Thu, 06 Nov 2014 01:40:03 GMT\0"
END
END
--- a/compiler/tests/PPCCompilerTest.st Wed Nov 05 23:05:19 2014 +0000
+++ b/compiler/tests/PPCCompilerTest.st Thu Nov 06 01:41:10 2014 +0000
@@ -195,28 +195,30 @@
!
testCompileNotLiteral
- parser := 'foo' asParser not compile.
- self assert: parser class methods size = 2.
+ parser := 'foo' asParser not compile.
+ self assert: parser class methodDictionary size = 2.
- self assert: parser parse: 'bar' to: nil end: 0.
-
- self assert: parser fail: 'foo'.
- self assert: parser parse: '' to: nil end: 0.
+ self assert: parser parse: 'bar' to: nil end: 0.
+
+ self assert: parser fail: 'foo'.
+ self assert: parser parse: '' to: nil end: 0.
- parser := '''' asParser not compile.
- self assert: parser class methods size = 2.
+ parser := '''' asParser not compile.
+ self assert: parser class methodDictionary size = 2.
- self assert: parser parse: 'a' to: nil end: 0.
- self assert: parser fail: ''''.
- self assert: parser parse: '' to: nil end: 0.
+ self assert: parser parse: 'a' to: nil end: 0.
+ self assert: parser fail: ''''.
+ self assert: parser parse: '' to: nil end: 0.
- parser := ('foo' asParser, 'bar' asParser not) compile.
- self assert: parser parse: 'foofoo' to: { 'foo'. nil } end: 3.
-
- parser := ('foo' asParser, 'foo' asParser not, #any asParser star) compile.
- self assert: parser parse: 'foobar' to: { 'foo'. nil . #($b $a $r) } end: 6.
- self assert: parser fail: 'foofoo'.
+ parser := ('foo' asParser, 'bar' asParser not) compile.
+ self assert: parser parse: 'foofoo' to: { 'foo'. nil } end: 3.
+
+ parser := ('foo' asParser, 'foo' asParser not, #any asParser star) compile.
+ self assert: parser parse: 'foobar' to: { 'foo'. nil . #($b $a $r) } end: 6.
+ self assert: parser fail: 'foofoo'.
+
+ "Modified: / 05-11-2014 / 23:18:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testCompileOptional
@@ -387,15 +389,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: / 05-11-2014 / 23:17:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testSmalltalkToken2
@@ -424,44 +428,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: / 05-11-2014 / 23:17:40 / 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 class methodDictionary size = 6.
- self assert: parser parse: 'foo'.
- self assert: result inputValue = 'foo'.
+ 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: / 06-11-2014 / 00:46:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPCCompilerTest methodsFor:'tests - first set'!
@@ -617,15 +625,17 @@
!PPCCompilerTest methodsFor:'tests - verification'!
testClass
- | compiledParser normalParser source |
- normalParser := PPSmalltalkGrammar new.
- compiledParser := normalParser compile.
-
- Class 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.
+
+ Class methodsDo: [ :m |
+ source := m sourceCode.
+ self assert: (normalParser parse: source)
+ equals: (compiledParser parse: source withContext: self context).
+ ].
+
+ "Modified: / 05-11-2014 / 23:18:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testObject
--- a/compiler/tests/PPCGuardTest.st Wed Nov 05 23:05:19 2014 +0000
+++ b/compiler/tests/PPCGuardTest.st Thu Nov 06 01:41:10 2014 +0000
@@ -34,21 +34,25 @@
!
testCompiling3
- guard := PPCGuard new initializeFor: ($a asParser, (#letter asParser / #digit asParser)) asCompilerTree.
- guard id: #foo.
- guard compileGuard: compiler.
-
- self assert: compiler lines size = 1.
- self assert: compiler lines first = ('(context peek = ', $a printString ,')').
+ guard := PPCGuard new initializeFor: ($a asParser, (#letter asParser / #digit asParser)) asCompilerTree.
+ guard id: #foo.
+ guard compileGuard: compiler.
+
+ self assert: compiler lines size = 1.
+ self assert: compiler lines first = ('(context peek = ', $a storeString ,')').
+
+ "Modified: / 06-11-2014 / 00:47:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testCompiling4
- guard := PPCGuard new initializeFor: ('foo' asParser / 'foobar' asParser) asCompilerTree.
- guard id: #foo.
- guard compileGuard: compiler.
-
- self assert: compiler lines size = 1.
- self assert: compiler lines first = ('(context peek = ', $f printString ,')').
+ guard := PPCGuard new initializeFor: ('foo' asParser / 'foobar' asParser) asCompilerTree.
+ guard id: #foo.
+ guard compileGuard: compiler.
+
+ self assert: compiler lines size = 1.
+ self assert: compiler lines first = ('(context peek = ', $f storeString ,')').
+
+ "Modified: / 06-11-2014 / 00:47:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testMakesSense
--- a/compiler/tests/PPCNodeCompilingTest.st Wed Nov 05 23:05:19 2014 +0000
+++ b/compiler/tests/PPCNodeCompilingTest.st Thu Nov 06 01:41:10 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: / 06-11-2014 / 00: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: / 06-11-2014 / 00:48:35 / 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: / 06-11-2014 / 00:48:43 / 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: / 06-11-2014 / 00:48:46 / 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: / 06-11-2014 / 00:48:49 / 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: / 06-11-2014 / 00:48:55 / 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: / 06-11-2014 / 00:48:58 / 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: / 06-11-2014 / 00:49:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPCNodeCompilingTest methodsFor:'tests - guard'!
@@ -408,77 +422,91 @@
!PPCNodeCompilingTest methodsFor:'tests - inlining'!
testInlineAny
- tree := PPCSequenceNode new
- children: { PPCInlineAnyNode new. $a asParser asCompilerNode }.
-
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 3.
- self assert: parser parse: '.a' to: #($. $a).
+ tree := PPCSequenceNode new
+ children: { PPCInlineAnyNode new. $a asParser asCompilerNode }.
+
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 3.
+ self assert: parser parse: '.a' to: #($. $a).
+
+ "Modified: / 06-11-2014 / 01:12:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testInlineCharSetPredicate
- tree := PPCPlusNode new
- child: (PPCInlineCharSetPredicateNode new
- predicate: (PPCharSetPredicate on: [ :e | e = $a ]);
- yourself);
- yourself.
-
- parser := self compileTree: tree.
+ tree := PPCPlusNode new
+ child: (PPCInlineCharSetPredicateNode new
+ predicate: (PPCharSetPredicate on: [ :e | e = $a ]);
+ yourself);
+ yourself.
+
+ parser := self compileTree: tree.
- self assert: parser class methods size = 2.
- self assert: parser parse: 'a' to: #($a).
- self assert: parser fail: 'b'.
+ self assert: parser class methodDictionary size = 2.
+ self assert: parser parse: 'a' to: #($a).
+ self assert: parser fail: 'b'.
+
+ "Modified: / 06-11-2014 / 01:12:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testInlineCharacter
- tree := PPCSequenceNode new
- children: { PPCInlineCharacterNode new character: $b . $a asParser asCompilerNode }.
-
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 3.
- self assert: parser parse: 'ba' to: #($b $a).
+ tree := PPCSequenceNode new
+ children: { PPCInlineCharacterNode new character: $b . $a asParser asCompilerNode }.
+
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 3.
+ self assert: parser parse: 'ba' to: #($b $a).
+
+ "Modified: / 06-11-2014 / 01:12:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testInlineLiteral
- tree := PPCSequenceNode new
- children: { PPCInlineLiteralNode new literal: 'foo'. $a asParser asCompilerNode }.
-
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 3.
- self assert: parser parse: 'fooa' to: #('foo' $a).
+ tree := PPCSequenceNode new
+ children: { PPCInlineLiteralNode new literal: 'foo'. $a asParser asCompilerNode }.
+
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 3.
+ self assert: parser parse: 'fooa' to: #('foo' $a).
+
+ "Modified: / 06-11-2014 / 01:12:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testInlineNil
- tree := PPCSequenceNode new
- children: { PPCInlineNilNode new . $a asParser asCompilerNode }.
-
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 3.
- self assert: parser parse: 'a' to: #(nil $a).
+ tree := PPCSequenceNode new
+ children: { PPCInlineNilNode new . $a asParser asCompilerNode }.
+
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 3.
+ self assert: parser parse: 'a' to: #(nil $a).
+
+ "Modified: / 06-11-2014 / 01:12:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testInlineNotLiteral
- tree := PPCSequenceNode new
- children: { PPCInlineNotLiteralNode new literal: 'foo'. $a asParser asCompilerNode }.
-
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 3.
- self assert: parser parse: 'a' to: #(nil $a).
+ tree := PPCSequenceNode new
+ children: { PPCInlineNotLiteralNode new literal: 'foo'. $a asParser asCompilerNode }.
+
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 3.
+ self assert: parser parse: 'a' to: #(nil $a).
+
+ "Modified: / 06-11-2014 / 01:12:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testInlinePluggable
- tree := PPCSequenceNode new
- children: { PPCInlinePluggableNode new block: [ :ctx | ctx next ]. $a asParser asCompilerNode }.
-
- parser := self compileTree: tree.
-
- self assert: parser class methods size = 3.
- self assert: parser parse: 'ba' to: #($b $a).
+ tree := PPCSequenceNode new
+ children: { PPCInlinePluggableNode new block: [ :ctx | tree. ctx next ]. $a asParser asCompilerNode }.
+
+ parser := self compileTree: tree.
+
+ self assert: parser class methodDictionary size = 3.
+ self assert: parser parse: 'ba' to: #($b $a).
+
+ "Modified: / 06-11-2014 / 01:20:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPCNodeCompilingTest class methodsFor:'documentation'!
--- a/compiler/tests/tests.rc Wed Nov 05 23:05:19 2014 +0000
+++ b/compiler/tests/tests.rc Thu Nov 06 01:41:10 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", "Wed, 05 Nov 2014 22:51:10 GMT\0"
+ VALUE "ProductDate", "Thu, 06 Nov 2014 01:40:05 GMT\0"
END
END