# HG changeset patch # User Jan Vrany # Date 1434386858 -3600 # Node ID 0dd7eb52b5a1abf89ed194919a45f7b9c5fa9638 # Parent d86e2db09346efd6236b2b2ef251026ebb65da80 Renamed #codeStoreValueOf:intoVariable: to #codeAssignParsedValueOf:to: to use same naming as #codeAssign:to: diff -r d86e2db09346 -r 0dd7eb52b5a1 compiler/PPCCodeGenerator.st --- a/compiler/PPCCodeGenerator.st Mon Jun 15 17:12:54 2015 +0100 +++ b/compiler/PPCCodeGenerator.st Mon Jun 15 17:47:38 2015 +0100 @@ -113,7 +113,9 @@ compileTokenWhitespace: node compiler add: 'context atWs ifFalse: ['. compiler indent. - compiler codeStoreValueOf: [ self visit: node whitespace ] intoVariable: #whatever. + compiler + codeAssignParsedValueOf:[ self visit:node whitespace ] + to:#whatever. compiler add: 'context setWs.'. compiler dedent. compiler add: '].'. @@ -234,7 +236,9 @@ ]. ]. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: self retvalVar. + compiler + codeAssignParsedValueOf:[ self visit:node child ] + to:self retvalVar. compiler codeIf: 'error' then: [ compiler codeReturn: 'failure'. ] else: [ @@ -250,7 +254,9 @@ mementoVar := compiler allocateTemporaryVariableNamed: 'memento'. compiler smartRemember: node child to: mementoVar. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: self retvalVar. + compiler + codeAssignParsedValueOf:[ self visit:node child ] + to:self retvalVar. compiler smartRestore: node child from: mementoVar. compiler codeReturn. @@ -329,7 +335,9 @@ [ :children :index | self addGuard: (children at: index) ifTrue: [ compiler add: 'self clearError.'. - compiler codeStoreValueOf: [self visit: (children at: index)] intoVariable: elementVar. + compiler + codeAssignParsedValueOf:[ self visit:(children at:index) ] + to:elementVar. compiler add: 'error ifFalse: [ '. compiler codeReturn: elementVar. compiler add: ' ].'. @@ -349,7 +357,9 @@ [ :children :index | index <= children size ifTrue:[ compiler add: 'self clearError.'. - compiler codeStoreValueOf: [self visit: (children at: index)] intoVariable: elementVar. + compiler + codeAssignParsedValueOf:[ self visit:(children at:index) ] + to:elementVar. compiler add: 'error ifFalse: [ '. compiler codeReturn: elementVar. compiler add: ' ].'. @@ -371,7 +381,9 @@ visitEndOfInputNode: node - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: self retvalVar. + compiler + codeAssignParsedValueOf:[ self visit:node child ] + to:self retvalVar. compiler add: 'context atEnd ifTrue: ['. compiler codeReturn. compiler add: '] ifFalse: ['. @@ -383,7 +395,9 @@ visitForwardNode: node - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: self retvalVar. + compiler + codeAssignParsedValueOf:[ self visit:node child ] + to:self retvalVar. compiler codeReturn. ! @@ -429,7 +443,9 @@ node child returnParsedObjectsAsCollection: false. ]. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: self retvalVar. + compiler + codeAssignParsedValueOf:[ self visit:node child ] + to:self retvalVar. compiler codeIf: 'error' then: [ compiler codeReturn: 'failure'. ] else: [ @@ -534,7 +550,7 @@ mementoVar := compiler allocateTemporaryVariableNamed: 'memento'. compiler smartRemember: node child to: mementoVar. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: #whatever. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:#whatever. compiler smartRestore: node child from: mementoVar. compiler add: '^ error ifFalse: [ self error ] ifTrue: [ self clearError. nil ]'. @@ -543,7 +559,9 @@ ! visitOptionalNode: node - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: self retvalVar. + compiler + codeAssignParsedValueOf:[ self visit:node child ] + to:self retvalVar. compiler add: 'error ifTrue: [ '. compiler indent. compiler add: 'self clearError. '. @@ -571,7 +589,7 @@ ]. " compiler codeAssign: 'OrderedCollection new.' to: self retvalVar. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: elementVar. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:elementVar. compiler add: 'error ifTrue: ['. compiler codeError: 'at least one occurence expected'. @@ -580,13 +598,13 @@ (self retvalVar ~~ #whatever) ifTrue:[ compiler add: self retvalVar , ' add: ',elementVar , '.'. ]. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: elementVar. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:elementVar. compiler add: '[ error ] whileFalse: ['. compiler indent. (self retvalVar ~~ #whatever) ifTrue:[ compiler add: self retvalVar , ' add: ',elementVar , '.'. ]. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: elementVar. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:elementVar. compiler dedent. compiler add: '].'. compiler add: 'self clearError.'. @@ -626,12 +644,14 @@ compiler smartRemember: node to: mementoVar. ]. - compiler codeStoreValueOf: [ self visit: (node children at: 1) ] intoVariable: #whatever. + compiler + codeAssignParsedValueOf:[ self visit:(node children at:1) ] + to:#whatever. compiler add: 'error ifTrue: [ ^ failure ].'. 2 to: (node children size) do: [ :idx | |child| child := node children at: idx. - compiler codeStoreValueOf: [ self visit: child ] intoVariable: #whatever. + compiler codeAssignParsedValueOf:[ self visit:child ] to:#whatever. child acceptsEpsilon ifFalse: [ compiler add: 'error ifTrue: [ '. @@ -668,14 +688,18 @@ compiler codeAssign: 'Array new: ', node children size asString, '.' to: self retvalVar. ]. - compiler codeStoreValueOf: [ self visit: (node children at: 1)] intoVariable: (elementVars at: 1). + compiler + codeAssignParsedValueOf:[ self visit:(node children at:1) ] + to:(elementVars at:1). compiler add: 'error ifTrue: [ ^ failure ].'. node returnParsedObjectsAsCollection ifTrue:[ compiler add: self retvalVar , ' at: 1 put: ', (elementVars at: 1), '.'. ]. 2 to: (node children size) do: [ :idx | |child| child := node children at: idx. - compiler codeStoreValueOf: [ self visit: child ] intoVariable: (elementVars at: idx). + compiler + codeAssignParsedValueOf:[ self visit:child ] + to:(elementVars at:idx). child acceptsEpsilon ifFalse: [ compiler add: 'error ifTrue: [ '. @@ -745,11 +769,11 @@ self addGuard: node child ifTrue: nil ifFalse: [ compiler codeReturn: '#()' ]. compiler codeAssign: 'OrderedCollection new.' to: self retvalVar. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: elementVar. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:elementVar. compiler add: '[ error ] whileFalse: ['. compiler indent. compiler add: self retvalVar, ' add: ', elementVar, '.'. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: elementVar. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:elementVar. compiler dedent. compiler add: '].'. compiler codeClearError. @@ -760,7 +784,7 @@ | elementVar | elementVar := compiler allocateTemporaryVariableNamed: 'element'. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: elementVar. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:elementVar. compiler add: 'error ifFalse: [ '. compiler codeReturn: elementVar, ' ', node block asString, '.'. compiler add: '] ifTrue: ['. @@ -787,7 +811,7 @@ compiler profileTokenRead: (compiler idFor: node). compiler codeAssign: 'context position + 1.' to: startVar. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: #whatever. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:#whatever. compiler add: 'error ifFalse: [ '. compiler indent. compiler codeAssign: 'context position.' to: endVar. @@ -816,7 +840,7 @@ ! visitTokenWhitespaceNode: node - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: #whatever. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:#whatever. compiler codeReturn. ! @@ -829,7 +853,9 @@ compiler smartRemember: node child to: mementoVar. compiler add: 'context skipSeparators.'. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: self retvalVar. + compiler + codeAssignParsedValueOf:[ self visit:node child ] + to:self retvalVar. compiler add: 'error ifTrue: [ '. compiler indent. @@ -869,7 +895,7 @@ ]. compiler codeAssign: 'context position + 1.' to: startVar. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: #whatever. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:#whatever. (arguments guards and: [(guard := PPCGuard on: node) makesSense]) ifTrue: [ compiler dedent. diff -r d86e2db09346 -r 0dd7eb52b5a1 compiler/PPCCompiler.st --- a/compiler/PPCCompiler.st Mon Jun 15 17:12:54 2015 +0100 +++ b/compiler/PPCCompiler.st Mon Jun 15 17:47:38 2015 +0100 @@ -189,6 +189,25 @@ ] ! +codeAssignParsedValueOf:aBlock to:aString + | tmpVarirable method | + + self assert:aBlock isBlock. + self assert:aString isNil not. + tmpVarirable := returnVariable. + returnVariable := aString. + method := [ + aBlock value + ] ensure:[ returnVariable := tmpVarirable ]. + method isInline ifTrue:[ + self callOnLine:method + ] ifFalse:[ + self codeEvaluateAndAssign:(method call) to:aString. + ] + + "Created: / 23-04-2015 / 18:21:51 / Jan Vrany " +! + codeBlock: contents currentMethod codeBlock: contents @@ -319,28 +338,6 @@ "Modified: / 01-06-2015 / 21:48:51 / Jan Vrany " ! -codeStoreValueOf: aBlock intoVariable: aString - | tmpVarirable method | - self assert: aBlock isBlock. - self assert: aString isNil not. - - tmpVarirable := returnVariable. - returnVariable := aString. - method := [ - aBlock value - ] ensure: [ - returnVariable := tmpVarirable - ]. - - method isInline ifTrue: [ - self callOnLine: method - ] ifFalse: [ - self codeEvaluateAndAssign: (method call) to: aString. - ] - - "Created: / 23-04-2015 / 18:21:51 / Jan Vrany " -! - codeTokenGuard: node ifFalse: codeBlock | guard id | guard := PPCTokenGuard on: node. diff -r d86e2db09346 -r 0dd7eb52b5a1 compiler/PPCLiteralNode.st --- a/compiler/PPCLiteralNode.st Mon Jun 15 17:12:54 2015 +0100 +++ b/compiler/PPCLiteralNode.st Mon Jun 15 17:47:38 2015 +0100 @@ -9,6 +9,7 @@ category:'PetitCompiler-Nodes' ! + !PPCLiteralNode methodsFor:'comparing'! recognizedSentencesPrim @@ -28,3 +29,10 @@ ^ visitor visitLiteralNode: self ! ! +!PPCLiteralNode class methodsFor:'documentation'! + +version_HG + + ^ '$Changeset: $' +! ! + diff -r d86e2db09346 -r 0dd7eb52b5a1 compiler/PPCTokenCodeGenerator.st --- a/compiler/PPCTokenCodeGenerator.st Mon Jun 15 17:12:54 2015 +0100 +++ b/compiler/PPCTokenCodeGenerator.st Mon Jun 15 17:47:38 2015 +0100 @@ -32,7 +32,9 @@ !PPCTokenCodeGenerator methodsFor:'visiting'! visitOptionalNode: node - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: self retvalVar. + compiler + codeAssignParsedValueOf:[ self visit:node child ] + to:self retvalVar. compiler codeAssign: 'false.' to: 'error'. compiler codeReturn. ! @@ -61,7 +63,7 @@ compiler codeAssign: 'context position + 1.' to: startVar. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: #whatever. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:#whatever. compiler add: 'error ifTrue: [ ^ error := false ].'. compiler codeAssign: 'context position.' to: endVar. @@ -110,7 +112,9 @@ to: 'currentTokenValue := ', self retvalVar. compiler addComment: 'Consume Whitespace:'. - compiler codeStoreValueOf: [ self visit: node whitespace ] intoVariable: #whatever. + compiler + codeAssignParsedValueOf:[ self visit:node whitespace ] + to:#whatever. compiler nl. compiler add: '^ true'. @@ -142,14 +146,16 @@ ]. compiler codeAssign: 'context position + 1.' to: startVar. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: #whatever. + compiler codeAssignParsedValueOf:[ self visit:node child ] to:#whatever. compiler add: 'error ifTrue: [ ^ error := false ].'. compiler codeAssign: 'context position.' to: endVar. compiler addComment: 'Consume Whitespace:'. - compiler codeStoreValueOf: [ self visit: node whitespace ] intoVariable: #whatever. + compiler + codeAssignParsedValueOf:[ self visit:node whitespace ] + to:#whatever. compiler nl. diff -r d86e2db09346 -r 0dd7eb52b5a1 compiler/PPCTokenizingCodeGenerator.st --- a/compiler/PPCTokenizingCodeGenerator.st Mon Jun 15 17:12:54 2015 +0100 +++ b/compiler/PPCTokenizingCodeGenerator.st Mon Jun 15 17:47:38 2015 +0100 @@ -74,7 +74,9 @@ compiler smartRemember: node child to: mementoVar. compiler codeAssign: '{ currentTokenValue . currentTokenType }.' to: currentTokenVar. - compiler codeStoreValueOf: [ self visit: node child ] intoVariable: self retvalVar. + compiler + codeAssignParsedValueOf:[ self visit:node child ] + to:self retvalVar. compiler smartRestore: node child from: mementoVar. compiler codeAssign: '(', currentTokenVar, ' at: 1).' to: 'currentTokenValue'. @@ -93,7 +95,7 @@ child acceptsEpsilon ifTrue: [ possibleError := false. - compiler codeStoreValueOf: [ self visit: child ] intoVariable: self retvalVar. + compiler codeAssignParsedValueOf:[ self visit:child ] to:self retvalVar. compiler codeReturn ] ifFalse: [ child firstSetWithTokens do: [ :first | @@ -103,7 +105,7 @@ compiler add: '(self ', tokenMethodName asString, ')'. compiler addOnLine: ' ifTrue: ['. compiler indent. - compiler codeStoreValueOf: [ self visit: child ] intoVariable: self retvalVar. + compiler codeAssignParsedValueOf:[ self visit:child ] to:self retvalVar. compiler add: 'error ifFalse: ['. compiler indent. compiler codeReturn: self retvalVar. @@ -146,7 +148,7 @@ compiler add: '(self ', tokenMethodName asString, ')'. compiler addOnLine: ' ifTrue: ['. compiler indent. - compiler codeStoreValueOf: [ self visit: child ] intoVariable: self retvalVar. + compiler codeAssignParsedValueOf:[ self visit:child ] to:self retvalVar. compiler codeReturn: self retvalVar. compiler dedent. compiler add: '] ifFalse:[' @@ -202,7 +204,9 @@ self visit: node whitespace. compiler codeHaltIfShiftPressed. - compiler codeStoreValueOf: [ self visit: node parser ] intoVariable: self retvalVar. + compiler + codeAssignParsedValueOf:[ self visit:node parser ] + to:self retvalVar. compiler codeReturn. !