altos/lisp: Add 'big' ints -- 24 bits wide
[fw/altos] / src / lisp / ao_lisp_read.c
index bcd23ce14b726bb4cf8bb06ee293aa718f020249..5115f46e28af8b989c3ca199f852298c4ae70cb6 100644 (file)
@@ -245,7 +245,7 @@ lex_quoted(void)
 #define AO_LISP_TOKEN_MAX      32
 
 static char    token_string[AO_LISP_TOKEN_MAX];
-static int     token_int;
+static int32_t token_int;
 static int     token_len;
 
 static inline void add_token(int c) {
@@ -497,7 +497,7 @@ ao_lisp_read(void)
                                v = AO_LISP_NIL;
                        break;
                case NUM:
-                       v = ao_lisp_int_poly(token_int);
+                       v = ao_lisp_integer_poly(token_int);
                        break;
                case BOOL:
                        if (token_string[0] == 't')
@@ -516,7 +516,7 @@ ao_lisp_read(void)
                        if (!push_read_stack(cons, read_state))
                                return AO_LISP_NIL;
                        cons++;
-                       read_state |= READ_IN_QUOTE;
+                       read_state = READ_IN_QUOTE;
                        v = _ao_lisp_atom_quote;
                        break;
                case CLOSE: