+ int handle_hex ()\r
+ {\r
+ int d;\r
+ ulong ul;\r
+ \r
+ getChar ();\r
+ while ((d = peekChar ()) != -1){\r
+ if (is_hex (d)){\r
+ if (number_pos == 16){\r
+ Report.Error (1021, Location, "Integral constant too large");\r
+ return Token.ERROR;\r
+ }\r
+ number_builder [number_pos++] = (char) d;\r
+ getChar ();\r
+ } else\r
+ break;\r
+ }\r
+ \r
+ string s = new String (number_builder, 0, number_pos);\r
+ if (number_pos <= 8)\r
+ ul = System.UInt32.Parse (s, NumberStyles.HexNumber);\r
+ else\r
+ ul = System.UInt64.Parse (s, NumberStyles.HexNumber);\r
+ return integer_type_suffix (ul, peekChar ());\r
+ }\r
+\r