for VisualWorks 7.6 with Jun770
| sourceCodeString scanTokens |
sourceCodeString := '
| aaa bbb ccc ddd |
aaa := 10.
bbb := 20.
ccc := 30.
ddd := aaa + (bbb * ccc).
^ddd
'.
scanTokens := Scanner new scanTokens: sourceCodeString.
Transcript clear.
scanTokens
do: [:scanToken | Transcript show: scanToken printString]
separatedBy: [Transcript space].
^scanTokens
|
| sourceCodeString methodNodeHolder parseTree |
sourceCodeString := '
| aaa bbb ccc ddd |
aaa := 10.
bbb := 20.
ccc := 30.
ddd := aaa + (bbb * ccc).
^ddd
'.
methodNodeHolder := Compiler new
parseNoPattern: sourceCodeString readStream
in: Object
notifying: nil.
parseTree := JunParseTree
node: methodNodeHolder node
class: Object
code: sourceCodeString.
parseTree show.
^parseTree
| sourceCodeString methodNodeHolder compiledMethod byteCodes |
sourceCodeString := '
| aaa bbb ccc ddd |
aaa := 10.
bbb := 20.
ccc := 30.
ddd := aaa + (bbb * ccc).
^ddd
'.
methodNodeHolder := Compiler new
parseNoPattern: sourceCodeString readStream
in: Object
notifying: nil.
compiledMethod := methodNodeHolder generate.
byteCodes := compiledMethod bytes.
Transcript clear.
byteCodes
do: [:byteCode |
| aString |
aString := byteCode printStringRadix: 16.
[aString size < 2] whileTrue: [aString := '0' , aString].
Transcript show: aString]
separatedBy: [Transcript space].
^byteCodes
|
| sourceCodeString methodNodeHolder compiledMethod symbolicCodes |
sourceCodeString := '
| aaa bbb ccc ddd |
aaa := 10.
bbb := 20.
ccc := 30.
ddd := aaa + (bbb * ccc).
^ddd
'.
methodNodeHolder := Compiler new
parseNoPattern: sourceCodeString readStream
in: Object
notifying: nil.
compiledMethod := methodNodeHolder generate.
symbolicCodes := compiledMethod symbolic.
Transcript clear.
Transcript show: symbolicCodes.
^symbolicCodes
|
| sourceCodeString methodNodeHolder compiledMethod symbolicCodes |
sourceCodeString := '
^10 + (20 * 30)
'.
methodNodeHolder := Compiler new
parseNoPattern: sourceCodeString readStream
in: Object
notifying: nil.
compiledMethod := methodNodeHolder generate.
symbolicCodes := compiledMethod symbolic.
Transcript clear.
Transcript show: symbolicCodes.
^symbolicCodes
|
for VisualWorks 7.6 with Jun770