[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