mescc: Tinycc support: ignore [ULL], UL, LL, L.
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 21 Jul 2017 19:43:18 +0000 (21:43 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 26 Jul 2017 09:36:08 +0000 (11:36 +0200)
* module/language/c99/compiler.mes (cstring->number): Drop suffix.

module/language/c99/compiler.mes

index 99cba7d9a773966c7395b6e03f466e0d2abfed67..68dfa585929ec757c8dabab5eb2689421b06f91a 100644 (file)
       (_ ((jump i386:jump-z (wrap-as (i386:accu-zero?))) o)))))
 
 (define (cstring->number s)
-  (cond ((string-prefix? "0x" s) (string->number (string-drop s 2) 16))
-        ((string-prefix? "0b" s) (string->number (string-drop s 2) 2))
-        ((string-prefix? "0" s) (string->number s 8))
-        (else (string->number s))))
+  (let ((s (cond ((string-suffix? "ULL" s) (string-drop-right s 3))
+                 ((string-suffix? "UL" s) (string-drop-right s 2))
+                 ((string-suffix? "LL" s) (string-drop-right s 2))
+                 ((string-suffix? "L" s) (string-drop-right s 1))
+                 (else s))))
+    (cond ((string-prefix? "0x" s) (string->number (string-drop s 2) 16))
+          ((string-prefix? "0b" s) (string->number (string-drop s 2) 2))
+          ((string-prefix? "0" s) (string->number s 8))
+          (else (string->number s)))))
 
 (define (struct-field info)
   (lambda (o)