The Trunk: Compiler-ul.330.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Compiler-ul.330.mcz

commits-2
Levente Uzonyi uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-ul.330.mcz

==================== Summary ====================

Name: Compiler-ul.330
Author: ul
Time: 27 February 2017, 2:43:16.813851 am
UUID: 8312df2d-c576-43eb-b847-bfcc53fb4c82
Ancestors: Compiler-ul.329

- fixed the first catch of the new #& and #| type checks

=============== Diff against Compiler-ul.329 ===============

Item was changed:
  ----- Method: Parser>>removeEmptyTempDeclarationsFrom: (in category 'error correction') -----
  removeEmptyTempDeclarationsFrom: methodNode
 
  | sourceCode madeChanges tempsMarkHolder |
  sourceCode := cue requestor text asString.
  tempsMarkHolder := self collectTemporaryDeclarationsFrom: methodNode.
  madeChanges := false.
  tempsMarkHolder do: [ :currentBlock | | tempsMarkChar0 tempsMarkChar1 tempsMarkChar2 end start |
  tempsMarkChar0 := (sourceCode at: currentBlock tempsMark).
  tempsMarkChar1 := (sourceCode at: currentBlock tempsMark - 1).
  tempsMarkChar2 := (sourceCode at: currentBlock tempsMark - 2).
+ (tempsMarkChar0 == $| and: [ tempsMarkChar1 == $| ])
- tempsMarkChar0 = $| & tempsMarkChar1 = $|
  ifTrue:
  [ end := currentBlock tempsMark.
  start := end - 1].
+ (tempsMarkChar0 == $| and: [ tempsMarkChar1 == $  and: [ tempsMarkChar2 == $| ] ])
- tempsMarkChar0 = $| & tempsMarkChar1 = $  & tempsMarkChar2 = $|
  ifTrue:
  [ end := currentBlock tempsMark.
  start := end - 2].
 
+ (start notNil and: [ end notNil ]) ifTrue: [
- start notNil & end notNil ifTrue: [
  | lineStart lineEnd |
  lineStart := 1 + (sourceCode
  lastIndexOf: Character cr
  startingAt: start - 1).
  lineEnd := sourceCode
  indexOf: Character cr
  startingAt: end + 1
  ifAbsent: [ sourceCode size ].
  ((sourceCode indexOfAnyOf: CharacterSet nonSeparators startingAt: lineStart) >= start
  and: [ (sourceCode indexOfAnyOf: CharacterSet nonSeparators startingAt: end + 1) > lineEnd ]) ifTrue: [
  start := lineStart.
  end := lineEnd ].
  cue requestor correctFrom: start to: end with: ''.
  madeChanges := true.
  currentBlock tempsMark: nil ] ].
  madeChanges ifTrue: [ReparseAfterSourceEditing signal]!