c = lex_unget_c;
lex_unget_c = 0;
} else {
-#if AO_LISP_ALTOS
- static uint8_t at_eol;
-
- if (at_eol) {
- ao_cmd_readline();
- at_eol = 0;
- }
- c = ao_cmd_lex();
- if (c == '\n')
- at_eol = 1;
-#else
- c = getchar();
-#endif
+ c = ao_lisp_getc();
}
return c;
}
int count;
c = lex_get();
-// if (jumping)
-// return nil;
if (c == EOF)
return EOF;
c &= 0x7f;
count = 1;
while (count <= 3) {
c = lex_get();
-// if (jumping)
-// return nil;
if (c == EOF)
return EOF;
c &= 0x7f;
if (lex_class & ENDOFFILE)
return AO_LISP_NIL;
-// if (jumping)
-// return nil;
if (lex_class & WHITE)
continue;
+ if (lex_class & COMMENT) {
+ while ((c = lexc()) != '\n') {
+ if (lex_class & ENDOFFILE)
+ return AO_LISP_NIL;
+ }
+ continue;
+ }
+
if (lex_class & (BRA|KET|QUOTEC)) {
add_token(c);
end_token();
if (lex_class & STRINGC) {
for (;;) {
c = lexc();
-// if (jumping)
-// return nil;
if (lex_class & (STRINGC|ENDOFFILE)) {
end_token();
return STRING;
}
add_token (c);
c = lexc ();
-// if (jumping)
-// return nil;
if (lex_class & (NOTNAME)) {
// if (lex_class & ENDOFFILE)
// clearerr (f);
read_cons_tail && read_cons_tail->cdr;
read_cons_tail = ao_lisp_poly_cons(read_cons_tail->cdr))
;
+ } else {
+ read_cons = 0;
+ read_cons_tail = 0;
+ read_stack = 0;
}
return in_quote;
}
ao_lisp_root_add(&ao_lisp_cons_type, &read_cons);
ao_lisp_root_add(&ao_lisp_cons_type, &read_cons_tail);
ao_lisp_root_add(&ao_lisp_cons_type, &read_stack);
+ been_here = 1;
}
parse_token = lex();