--- a/Parser.st Sat Apr 20 20:08:54 1996 +0200
+++ b/Parser.st Sat Apr 20 20:12:08 1996 +0200
@@ -778,16 +778,18 @@
aString isNil ifTrue:[^ nil].
parser := self for:(ReadStream on:aString) in:aClass.
noErrors ifTrue:[
- parser ignoreErrors
+ parser ignoreErrors
].
noWarnings ifTrue:[
- parser ignoreWarnings
+ parser ignoreWarnings
].
- parser nextToken.
+"/ parser nextToken.
(parser parseMethodSpec == #Error) ifTrue:[^ nil].
(parser parseMethodBodyOrEmpty "parseMethodBodyVarSpec" == #Error) ifTrue:[^ nil].
parser errorFlag ifTrue:[^ nil].
^ parser
+
+ "Modified: 20.4.1996 / 20:09:42 / cg"
!
parseMethodArgAndVarSpecificationSilent:aString
@@ -877,15 +879,17 @@
aString isNil ifTrue:[^ nil].
parser := self for:(ReadStream on:aString) in:aClass.
noErrors ifTrue:[
- parser ignoreErrors
+ parser ignoreErrors
].
noWarnings ifTrue:[
- parser ignoreWarnings
+ parser ignoreWarnings
].
- parser nextToken.
+"/ parser nextToken.
tree := parser parseMethodSpec.
(parser errorFlag or:[tree == #Error]) ifTrue:[^ #Error].
^ parser
+
+ "Modified: 20.4.1996 / 20:09:48 / cg"
!
parseMethodSpecificationSilent:aString
@@ -1018,7 +1022,7 @@
ignoreWarnings ifTrue:[parser ignoreWarnings].
token := parser nextToken.
(token == $^) ifTrue:[
- parser nextToken.
+ parser nextToken.
].
tree := parser expression.
(parser errorFlag or:[tree == #Error]) ifTrue:[^ #Error].
@@ -2312,13 +2316,15 @@
|parseTree|
- self nextToken.
+"/ self nextToken.
(self parseMethodSpec == #Error) ifTrue:[^ #Error].
parseTree := self parseMethodBody.
(parseTree == #Error) ifFalse:[
- self tree:parseTree
+ self tree:parseTree
].
^ parseTree
+
+ "Modified: 20.4.1996 / 20:09:26 / cg"
!
parseMethodBody
@@ -2450,57 +2456,63 @@
Return the receiver or #Error.
methodSpec ::= { KEYWORD IDENTIFIER }
- | binaryOperator IDENTIFIER
- | IDENTIFIER
+ | binaryOperator IDENTIFIER
+ | IDENTIFIER
"
|var|
+ tokenType isNil ifTrue:[
+ self nextToken.
+ ].
+
(tokenType == #Keyword) ifTrue:[
- selector := ''.
- [tokenType == #Keyword] whileTrue:[
- selector := selector , tokenName.
- self nextToken.
- (tokenType ~~ #Identifier) ifTrue:[^ #Error].
- var := Variable name:tokenName.
- methodArgs isNil ifTrue:[
- methodArgs := Array with:var.
- methodArgNames := Array with:tokenName
- ] ifFalse:[
- (methodArgNames includes:tokenName) ifTrue:[
- self syntaxError:'redefinition of ''' , tokenName , ''' in argument list.'
- position:tokenPosition
- to:(tokenPosition + tokenName size - 1)
- ].
- methodArgs := methodArgs copyWith:var.
- methodArgNames := methodArgNames copyWith:tokenName
- ].
- self nextToken
- ].
- selector := selector asSymbol.
- ^ self
+ selector := ''.
+ [tokenType == #Keyword] whileTrue:[
+ selector := selector , tokenName.
+ self nextToken.
+ (tokenType ~~ #Identifier) ifTrue:[^ #Error].
+ var := Variable name:tokenName.
+ methodArgs isNil ifTrue:[
+ methodArgs := Array with:var.
+ methodArgNames := Array with:tokenName
+ ] ifFalse:[
+ (methodArgNames includes:tokenName) ifTrue:[
+ self syntaxError:'redefinition of ''' , tokenName , ''' in argument list.'
+ position:tokenPosition
+ to:(tokenPosition + tokenName size - 1)
+ ].
+ methodArgs := methodArgs copyWith:var.
+ methodArgNames := methodArgNames copyWith:tokenName
+ ].
+ self nextToken
+ ].
+ selector := selector asSymbol.
+ ^ self
].
(tokenType == #Identifier) ifTrue:[
- selector := tokenName asSymbol.
- self nextToken.
- ^ self
+ selector := tokenName asSymbol.
+ self nextToken.
+ ^ self
].
(tokenType == #BinaryOperator) ifTrue:[
- selector := tokenName asSymbol.
- self nextToken.
- (tokenType ~~ #Identifier) ifTrue:[^ #Error].
- var := Variable name:tokenName.
+ selector := tokenName asSymbol.
+ self nextToken.
+ (tokenType ~~ #Identifier) ifTrue:[^ #Error].
+ var := Variable name:tokenName.
"/ methodArgs isNil ifTrue:[
- methodArgs := Array with:var.
- methodArgNames := Array with:tokenName.
+ methodArgs := Array with:var.
+ methodArgNames := Array with:tokenName.
"/ ] ifFalse:[
"/ methodArgs := methodArgs copyWith:var.
"/ methodArgNames := methodArgNames copyWith:tokenName
"/ ].
- self nextToken.
- ^ self
+ self nextToken.
+ ^ self
].
^ #Error
+
+ "Modified: 20.4.1996 / 20:05:52 / cg"
!
parseST80Primitive
@@ -3370,6 +3382,6 @@
!Parser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.72 1996-03-21 15:16:10 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.73 1996-04-20 18:12:08 cg Exp $'
! !
Parser initialize!