--- a/Parser.st Mon Jul 19 13:57:41 2004 +0200
+++ b/Parser.st Tue Jul 20 19:28:38 2004 +0200
@@ -5380,8 +5380,8 @@
].
(tokenType == #HashLeftParen) ifTrue:[
+ self nextToken.
self inArrayLiteral:true.
- self nextToken.
ParseErrorSignal handle:[:ex |
self inArrayLiteral:false.
^ #Error
@@ -5476,17 +5476,41 @@
^ self primary_simpleLiteral.
].
+ allowSqueakExtensions == true ifTrue:[
+ ((tokenType == #BinaryOperator) and:[token = '#']) ifTrue:[
+ self nextToken.
+ (tokenType == $( ) ifFalse:[
+ self parseError:'''('' expected after #.' position:pos to:tokenPosition.
+ ^ self.
+ ].
+ self nextToken.
+ self inArrayLiteral:true.
+ ParseErrorSignal handle:[:ex |
+ self inArrayLiteral:false.
+ ^ #Error
+ ] do:[
+ val := self array.
+ ].
+ self inArrayLiteral:false.
+ self nextToken.
+ (self noAssignmentAllowed:'assignment to a constant' at:pos) ifFalse:[
+ ^ #Error
+ ].
+ ^ ConstantNode type:#Array value:val
+ ].
+ ].
+
((tokenType == #BinaryOperator) and:[token = '-']) ifTrue:[
- allowSqueakExtensions == true ifFalse:[
- self parseError:'non-Standard Squeak extension: space between sign and number. Enable in settings.' position:pos to:tokenPosition.
- errorFlag := false.
- ].
self nextToken.
((tokenType == #Integer)
or:[(tokenType == #Float)]) ifFalse:[
self parseError:'number expected after sign.' position:pos to:tokenPosition.
^ self.
].
+ allowSqueakExtensions == true ifFalse:[
+ self parseError:'non-Standard Squeak extension: space between sign and number. Enable in settings.' position:pos to:tokenPosition.
+ errorFlag := false.
+ ].
node := self primary_simpleLiteral.
node isConstant ifFalse:[
@@ -7642,7 +7666,7 @@
!Parser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.435 2004-07-19 11:57:41 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.436 2004-07-20 17:28:38 cg Exp $'
! !
Parser initialize!