@@ -290,20 +290,20 @@ func (p *parser) parsePrimaryExpression() Node {
290
290
case Number :
291
291
p .next ()
292
292
value := strings .Replace (token .Value , "_" , "" , - 1 )
293
- if strings .ContainsAny (value , ".eE " ) {
294
- number , err := strconv .ParseFloat (value , 64 )
293
+ if strings .Contains (value , "x " ) {
294
+ number , err := strconv .ParseInt (value , 0 , 64 )
295
295
if err != nil {
296
- p .error ("invalid float literal: %v" , err )
296
+ p .error ("invalid hex literal: %v" , err )
297
297
}
298
- node := & FloatNode {Value : number }
298
+ node := & IntegerNode {Value : int ( number ) }
299
299
node .SetLocation (token .Location )
300
300
return node
301
- } else if strings .Contains (value , "x " ) {
302
- number , err := strconv .ParseInt (value , 0 , 64 )
301
+ } else if strings .ContainsAny (value , ".eE " ) {
302
+ number , err := strconv .ParseFloat (value , 64 )
303
303
if err != nil {
304
- p .error ("invalid hex literal: %v" , err )
304
+ p .error ("invalid float literal: %v" , err )
305
305
}
306
- node := & IntegerNode {Value : int ( number ) }
306
+ node := & FloatNode {Value : number }
307
307
node .SetLocation (token .Location )
308
308
return node
309
309
} else {
0 commit comments