Skip to content

Commit

Permalink
Issue #465: was just parsing the selector ... need to parse the whole…
Browse files Browse the repository at this point in the history
… message pattern ... as is
  • Loading branch information
dalehenrich committed Jul 23, 2019
1 parent cf9fd89 commit 032c594
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 5 deletions.
8 changes: 7 additions & 1 deletion rowan/src/AST-Core/RBParser.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -723,7 +723,13 @@ RBParser >> parseStatements: pragmaBoolean [
{ #category : 'private-parsing' }
RBParser >> parseTonelMessagePattern [

^ self parseMessagePattern
| methodNode selectorWithArgs start end |
start := self scanner stream position.
methodNode := self parseMessagePattern.
end := self scanner stream position - 4.
selectorWithArgs := self scanner stream contents copyFrom: start to: end.
self halt.
^ { methodNode . selectorWithArgs }
]

{ #category : 'private-parsing' }
Expand Down
9 changes: 7 additions & 2 deletions rowan/src/Rowan-Components/NewTonelParser.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,18 @@ Class {

{ #category : 'parsing' }
NewTonelParser >> method [
| type start end currentPosition selector count |
| type start end currentPosition selector count ar |

type := self untilIncluding: '>>'.
methodParser := RBParser new.
methodParser
scanner: (methodParser scannerClass on: stream
errorBlock: [:errorMessage :errorPosition |self halt]).
self halt.
ar := methodParser parseTonelMessagePattern.
currentMethodNode := ar at: 1.
methodBodyStart := methodParser scanner previousStepPosition - 2.
self halt.
start := methodParser scanner previousStepPosition.
currentMethodNode := methodParser b.
end := methodParser scanner previousStepPosition.
Expand All @@ -32,7 +37,7 @@ selector := String new: count.
type size = 1 ifTrue: [ type := type copyWith: nil ].
^ {
type.
selector.
ar at: 2.
}
]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ RwRepositoryComponentProjectTonelReaderVisitor >> readClassExtensionFile: file i
| definitions stream |
stream := ZnBufferedReadStream on: fileStream. "wrap with buffered stream to bypass https://github.com/GemTalk/FileSystemGs/issues/9"
stream sizeBuffer: fileReference size. "part of workaround for GemTalk/FileSystemGs#9"
definitions := (NewTonelParser on: stream forReader: self) start.
definitions := (TonelParser on: stream forReader: self) start.
((definitions at: 2) at: 1) do: [:mDef |
currentClassExtension addClassMethodDefinition: mDef ].
((definitions at: 2) at: 2) do: [:mDef |
Expand All @@ -150,7 +150,7 @@ RwRepositoryComponentProjectTonelReaderVisitor >> readClassFile: file inPackage:
| definitions stream |
stream := ZnBufferedReadStream on: fileStream. "wrap with buffered stream to bypass https://github.com/GemTalk/FileSystemGs/issues/9"
stream sizeBuffer: fileReference size. "part of workaround for GemTalk/FileSystemGs#9"
definitions := (NewTonelParser on: stream forReader: self) start.
definitions := (TonelParser on: stream forReader: self) start.
self validateClassCategory: currentClassDefinition forPackageNamed: packageName.
((definitions at: 2) at: 1) do: [:mDef |
currentClassDefinition addClassMethodDefinition: mDef ].
Expand Down

0 comments on commit 032c594

Please sign in to comment.