squeak allows whiteSpace between sign and number
authorClaus Gittinger <cg@exept.de>
Mon, 19 Jul 2004 13:57:41 +0200
changeset 1537 de5fc45c2f10
parent 1536 f04f567c99a7
child 1538 c55990043eb6
squeak allows whiteSpace between sign and number
Parser.st
--- a/Parser.st	Mon Jul 19 13:56:25 2004 +0200
+++ b/Parser.st	Mon Jul 19 13:57:41 2004 +0200
@@ -5476,6 +5476,27 @@
         ^ self primary_simpleLiteral.
     ].
 
+    ((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.
+        ].
+
+        node := self primary_simpleLiteral.
+        node isConstant ifFalse:[
+            self parseError:'number expected after sign.' position:pos to:tokenPosition.
+            ^ self.
+        ].
+        node value:(node value negated).
+        ^ node
+    ].
+
     (tokenType == #Error) ifTrue:[^ #Error].
     tokenType isCharacter ifTrue:[
         self syntaxError:('error in primary; ' 
@@ -7621,7 +7642,7 @@
 !Parser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.434 2004-07-14 20:33:14 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.435 2004-07-19 11:57:41 cg Exp $'
 ! !
 
 Parser initialize!