} AST;
// Globals
+static FILE* File;
static int CurrChar = ' ';
static int CurrTok = UNKNOWN;
static intptr_t Token_Buffer[1024];
static void whitespace(void)
{
- while (isspace(current()))
- discard();
+ while(isspace(current()) || ('#' == current())) {
+ if ('#' == current()) {
+ discard();
+ while (('\n' != current()) && (EOF != current()))
+ discard();
+ discard();
+ } else {
+ discard();
+ }
+ }
}
static int symbol(void)
static void append(void)
{
- CurrChar = getchar();
+ CurrChar = fgetc(File);
}
static void discard(void)
{
- CurrChar = getchar();
+ CurrChar = fgetc(File);
}
static void expect_ch(int ch)
lex_error();
}
-
/* Tree Routines
*****************************************************************************/
AST* Tree(int type, int num_children)
*****************************************************************************/
int main(int argc, char** argv) {
extern void world_init(void);
+ File = stdin;
world_init();
printf(":> ");
while(true) {