[squeak-dev] The Inbox: OMeta2-Preload-yo.16.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Aug 18 10:38:00 UTC 2014
A new version of OMeta2-Preload was added to project The Inbox:
http://source.squeak.org/inbox/OMeta2-Preload-yo.16.mcz
==================== Summary ====================
Name: OMeta2-Preload-yo.16
Author: yo
Time: 18 August 2014, 11:36:30.173 am
UUID: e30e720f-ef1b-4b61-8809-8f6ba222dc22
Ancestors: OMeta2-Preload-yo.15
Remove methodNode, and also handle the error correctly in the requestor.
=============== Diff against OMeta2-Preload-yo.15 ===============
Item was removed:
- ----- Method: CompiledMethod>>methodNode (in category '*OMeta2-Preload') -----
- methodNode
- "Return the parse tree that represents self. If parsing fails, decompile the method."
- | aClass source |
- aClass := self methodClass.
- source := self
- getSourceFor: (self selector ifNil: [self defaultSelector])
- in: aClass.
- ^[(aClass parserClass new
- encoderClass: (self isBlueBookCompiled
- ifTrue: [EncoderForV3]
- ifFalse: [EncoderForV3PlusClosures]);
- parse: source class: aClass)
- sourceText: source;
- yourself]
- on: SyntaxErrorNotification
- do: [:ex | ex return: self decompile].!
Item was changed:
----- Method: OMeta2Compiler>>compile:in:notifying:ifFail: (in category 'as yet unclassified') -----
compile: origCode in: cls notifying: notify ifFail: failBlock
+ | origCodeStream parseTree structuredCode translatedCode c |
- | origCodeStream parseTree structuredCode translatedCode |
origCodeStream := origCode asString readStream.
[
parseTree := OMeta2RuleParser matchStream: origCodeStream with: #rule withArgs: #() withPlaybackDebugging: false.
parseTree := OMeta2Optimizer match: parseTree with: #optimizeRule.
structuredCode := OMeta2RuleTranslator match: parseTree with: #translate withArgs: {cls}.
translatedCode := OMeta2Flattener match: structuredCode with: #flatten
] on: OM2Fail do: [
+ c := CompilationCue
+ source: translatedCode
+ class: cls
+ requestor: notify.
+ parser setCue: c.
+ parser notify: '<-- parse error around here -->' at: origCodeStream position.
- self notify: '<-- parse error around here -->' at: origCodeStream position.
^ failBlock value
].
^ super compile: translatedCode in: cls notifying: notify ifFail: failBlock.
!
More information about the Squeak-dev
mailing list
|