[BUG]Parser(Object)>>doesNotUnderstand: #bindTemp:in: ([closed]
on Mantis 1419)
Larry Trutter
ltrutter at onemain.com
Thu Jul 7 03:19:58 UTC 2005
Thank you for your report. I have transferred your report to Squeak's
Mantis Database and you can followup on the issue if desired by going to
http://bugs.impara.de/view.php?id=1419
In the future please report new issues on Squeak's Mantis Database at
http://bugs.impara.de/ .
thanks,
Larry Trutter
Damien Cassou wrote:
>I'm trying to extract temp variables from a method. I've found
>Parser>>parseArgsAndTemps:notifying: but it does not work.
>
>| aMethod sourceString |
>aMethod := String methodDict at: #alike: .
>sourceString := aMethod getSourceFromFile.
>Parser new parseArgsAndTemps: sourceString notifying: nil.
>
>The report follows.
>
>Thank you
>
>
>
>6 July 2005 11:55:09 am
>
>VM: Mac OS - a SmalltalkImage
>Image: Squeak3.8 [latest update: #6665]
>
>SecurityManager state:
>Restricted: false
>FileAccess: true
>SocketAccess: true
>Working Dir OSX:Users:damien:Desktop:Squeak:Squeak3.8-6665-basic
>Trusted Dir OSX:Users:damien:Desktop:Squeak:Squeak3.8-6665-basic
>Untrusted Dir foobar:tooBar:forSqueak:bogus
>
>Parser(Object)>>doesNotUnderstand: #bindTemp:in:
> Receiver: a Parser
> Arguments and temporary variables:
> aMessage: bindTemp: 'temp1' in: #complicatedFunction:param2:param3:
> Receiver's instance variables:
> source: a ReadStream 'complicatedFunction: aParam1 param2: aParam2 param3: aPar...etc...
> mark: 77
> hereChar: $|
> aheadChar: $
>
> token: 'temp3'
> tokenType: #word
> currentComment: nil
> buffer: a WriteStream 'temp3'
> typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary #xBinary #xB...etc...
> here: 'temp2'
> hereType: #word
> hereMark: 71
> hereEnd: 75
> prevMark: 65
> prevEnd: 69
> encoder: a Parser
> requestor: nil
> parseNode: nil
> failBlock: [] in Parser>>initPattern:notifying:return: {[^ nil]}
> requestorOffset: 0
> tempsMark: nil
> doitFlag: false
>
>Parser>>temporariesIn:
> Receiver: a Parser
> Arguments and temporary variables:
> methodSelector: #complicatedFunction:param2:param3:
> vars: an OrderedCollection()
> theActualText: nil
> Receiver's instance variables:
> source: a ReadStream 'complicatedFunction: aParam1 param2: aParam2 param3: aPar...etc...
> mark: 77
> hereChar: $|
> aheadChar: $
>
> token: 'temp3'
> tokenType: #word
> currentComment: nil
> buffer: a WriteStream 'temp3'
> typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary #xBinary #xB...etc...
> here: 'temp2'
> hereType: #word
> hereMark: 71
> hereEnd: 75
> prevMark: 65
> prevEnd: 69
> encoder: a Parser
> requestor: nil
> parseNode: nil
> failBlock: [] in Parser>>initPattern:notifying:return: {[^ nil]}
> requestorOffset: 0
> tempsMark: nil
> doitFlag: false
>
>[] in Parser>>parseArgsAndTemps:notifying: {[:pattern | (pattern at: 2) , (self temporariesIn: (pattern at: 1))]}
> Arguments and temporary variables:
> aString: a Text for 'complicatedFunction: aParam1 param2: aParam2 param3: aPara...etc...
> req: nil
> pattern: #(#complicatedFunction:param2:param3: an OrderedCollection('aParam1' '...etc...
>
>Parser>>initPattern:notifying:return:
> Receiver: a Parser
> Arguments and temporary variables:
> aString: a Text for 'complicatedFunction: aParam1 param2: aParam2 param3: aPara...etc...
> req: nil
> aBlock: [] in Parser>>parseArgsAndTemps:notifying: {[:pattern | (pattern at: 2)...etc...
> result: nil
> Receiver's instance variables:
> source: a ReadStream 'complicatedFunction: aParam1 param2: aParam2 param3: aPar...etc...
> mark: 77
> hereChar: $|
> aheadChar: $
>
> token: 'temp3'
> tokenType: #word
> currentComment: nil
> buffer: a WriteStream 'temp3'
> typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary #xBinary #xB...etc...
> here: 'temp2'
> hereType: #word
> hereMark: 71
> hereEnd: 75
> prevMark: 65
> prevEnd: 69
> encoder: a Parser
> requestor: nil
> parseNode: nil
> failBlock: [] in Parser>>initPattern:notifying:return: {[^ nil]}
> requestorOffset: 0
> tempsMark: nil
> doitFlag: false
>
>
>--- The full stack ---
>Parser(Object)>>doesNotUnderstand: #bindTemp:in:
>Parser>>temporariesIn:
>[] in Parser>>parseArgsAndTemps:notifying: {[:pattern | (pattern at: 2) , (self temporariesIn: (pattern at: 1))]}
>Parser>>initPattern:notifying:return:
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>Parser>>parseArgsAndTemps:notifying:
>UndefinedObject>>DoIt
>Compiler>>evaluate:in:to:notifying:ifFail:logged:
>[] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection {[rcvr class evaluatorClass new evaluate: self selectionAsStream in: ctxt...]}
>BlockContext>>on:do:
>TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
>TextMorphForShoutEditor(ParagraphEditor)>>doIt
>[] in TextMorphForShoutEditor(ParagraphEditor)>>doIt: {[self doIt]}
>TextMorphForShoutEditor(Controller)>>terminateAndInitializeAround:
>TextMorphForShoutEditor(ParagraphEditor)>>doIt:
>TextMorphForShoutEditor(ParagraphEditor)>>dispatchOnCharacter:with:
>TextMorphForShoutEditor(TextMorphEditor)>>dispatchOnCharacter:with:
>TextMorphForShoutEditor(ParagraphEditor)>>readKeyboard
>...etc...
>
>
>
More information about the Squeak-dev
mailing list
|