[squeak-dev] Decompilation problem

Yoshiki Ohshima Yoshiki.Ohshima at acm.org
Thu Apr 12 22:09:29 UTC 2012


I noticed that when I debug grammar written in OMeta2/Squeak, there is
a problem with some particular methods.  For example, I load
OMeta2-preload and -postload, and do:

	       (OMeta2 compiledMethodAt: #token) decompileWithTemps

I get something like:
------------------------------------
 token
	| t |
	^ true
		ifTrue: [_r1 := self apply: #anything.
			self apply: #spaces.
			self apply: #seq withArgs: {_r1}]
------------------------------------
Debugger uses this to obtain the source code and then it trys to parse
it to get the source map. But "_r1" is not a valid variable name so
this process fails.

It appears that the underscore is originated from the method:
------------------------------------
codeRemoteTemp: index remoteTemps: tempVector

	^(RemoteTempVectorNode new
		name: '_r', index printString
		index: index
		type: LdTempType
		scope: 0)
			remoteTemps: tempVector;
			yourself
------------------------------------
But I cannot tell why it is "leaking out" to the final result.  Does
anybody know what is going on?

-- Yoshiki


More information about the Squeak-dev mailing list