Updated to latest version from Moose repository.
Name: PetitParser-JanKurs.250
Author: JanKurs
Time: 01-10-2014, 04:44:04 AM
UUID: c46eea20-51a0-4deb-8fd5-8cb99810a8b4
Repository: http://smalltalkhub.com/mc/Moose/PetitParser/main
Name: PetitTests-JanKurs.60
Author: JanKurs
Time: 29-09-2014, 11:48:10 AM
UUID: 28fd2e65-c287-4f73-b71e-5b6bb25bebaa
Repository: http://smalltalkhub.com/mc/Moose/PetitParser/main
"{ Package: 'stx:goodies/petitparser/gui' }"
ExtractMethodRefactoring subclass:#PPExtractProdcutionRefactoring
instanceVariableNames:'targetProduction'
classVariableNames:''
poolDictionaries:''
category:'PetitGui-Refactoring'
!
!PPExtractProdcutionRefactoring class methodsFor:'instance creation'!
onClass: aClass production: aSelector interval: anInterval to: aTargetSelector
^ (self extract: anInterval from: aSelector in: aClass)
setTargetProduction: aTargetSelector;
yourself
! !
!PPExtractProdcutionRefactoring methodsFor:'initialization'!
setTargetProduction: aSymbol
targetProduction := aSymbol
! !
!PPExtractProdcutionRefactoring methodsFor:'preconditions'!
preconditions
^ (self checkCompositeParser: class)
& super preconditions
& (RBCondition definesSelector: targetProduction asSymbol in: class) not
& (RBCondition definesInstanceVariable: targetProduction asString in: class) not
! !
!PPExtractProdcutionRefactoring methodsFor:'requests'!
shouldExtractAssignmentTo: aString
^ false
! !
!PPExtractProdcutionRefactoring methodsFor:'transforming'!
existingSelector
^ nil
!
getNewMethodName
parameters isEmpty
ifFalse: [ self refactoringError: 'Cannot extract production since it contains references.' ].
targetProduction asSymbol isUnary
ifFalse: [ self refactoringError: 'Invalid production name.' ].
^ targetProduction asSymbol
!
nameNewMethod: aSymbol
class addInstanceVariable: aSymbol asString.
extractedParseTree renameSelector: aSymbol andArguments: #().
modifiedParseTree := ParseTreeRewriter
replace: self methodDelimiter
with: aSymbol asString
in: modifiedParseTree
! !
!PPExtractProdcutionRefactoring class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/goodies/petitparser/gui/PPExtractProdcutionRefactoring.st,v 1.2 2014-03-04 23:34:06 cg Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/goodies/petitparser/gui/PPExtractProdcutionRefactoring.st,v 1.2 2014-03-04 23:34:06 cg Exp $'
! !