long long, long long int etc. types
--- a/Parser.st Wed Nov 04 17:49:50 2009 +0100
+++ b/Parser.st Thu Nov 05 11:29:49 2009 +0100
@@ -9393,14 +9393,46 @@
]
].
+ (tokenType == #Identifier and:[tokenName = 'long']) ifTrue:[
+ "/ long long
+ (type = 'long') ifTrue:[
+ "/ long long
+ typeName := 'longLong'.
+ self nextToken.
+ ].
+ "/ unsigned long
+ (type = 'unsigned') ifTrue:[
+ "/ unsigned long
+ typeName := 'ulong'.
+ self nextToken.
+ ].
+ ].
+ (tokenType == #Identifier and:[tokenName = 'int']) ifTrue:[
+ "/ long long int
+ "/ unsigned int
+ "/ long int
+ ( #('longLong' 'unsigned' 'long') includes: typeName) ifTrue:[
+ self nextToken.
+ ].
+ ].
+ (tokenType == #Identifier and:[tokenName = 'unsigned']) ifTrue:[
+ "/ long long unsigned
+ "/ int unsigned
+ "/ long unsigned
+ ( #('longLong' 'int' 'long') includes: typeName) ifTrue:[
+ typeName := 'u',typeName.
+ self nextToken.
+ ].
+ ].
+
type := self typeMappingFor:typeName.
- [(tokenType = $*)
- or:[((tokenType == #BinaryOperator) and:[tokenName = '*'])
- or:[((tokenType == #BinaryOperator) and:[tokenName = '**'])
- or:[((tokenType == #BinaryOperator) and:[tokenName = '***'])]]]
+
+ [
+ (tokenType = $*)
+ or:[((tokenType == #BinaryOperator) and:[tokenName conform:[:ch | ch = '*']])]
] whileTrue:[
- type := self pointerTypeMappingFor:type.
- tokenName = '**' ifTrue:[
+ "/ that many indirections added
+ tokenName size timesRepeat:[
type := self pointerTypeMappingFor:type.
].
self nextToken.
@@ -9542,8 +9574,11 @@
(uint8 uint8Pointer )
(uint16 uint16Pointer )
(uint32 uint32Pointer )
+ (uint64 uint64Pointer )
+ (int8 int8Pointer )
(int16 int16Pointer )
(int32 int32Pointer )
+ (int64 int64Pointer )
(int intPointer )
(short shortPointer )
(ushort ushortPointer )
@@ -9676,11 +9711,11 @@
!Parser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.617 2009-11-04 16:49:50 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.618 2009-11-05 10:29:49 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.617 2009-11-04 16:49:50 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.618 2009-11-05 10:29:49 cg Exp $'
! !
Parser initialize!