9 bool parser_do(parser_t *parser)
14 bool parser_compile(const char *filename)
18 parser = (parser_t*)mem_a(sizeof(parser_t));
22 parser->lex = lex_open(filename);
25 printf("failed to open file \"%s\"\n", filename);
29 for (parser->tok = lex_do(parser->lex);
30 parser->tok != TOKEN_EOF && parser->tok < TOKEN_ERROR;
31 parser->tok = lex_do(parser->lex))
33 if (!parser_do(parser)) {
34 printf("parse error\n");
35 lex_close(parser->lex);
41 lex_close(parser->lex);