tree_t* child = get_child(p_tree, 0);
if ((NULL != child) && (child->tag == ATOM)) {
lex_tok_t* token = child->ptr.tok;
- if ((token->type == T_VAR) &&
+ if ((token->type == T_ID) &&
(0 == strcmp(val, (char*)token->value))) {
ret = true;
}
case T_INT: fprintf(file, "__int(%ld)", *((long int*)tok->value)); break;
case T_FLOAT: fprintf(file, "__float(%f)", *((double*)tok->value)); break;
case T_BOOL: fprintf(file, "__bool(%s)", ((intptr_t)tok->value)?"true":"false"); break;
- case T_VAR: fprintf(file, "%s", ((char*)tok->value)); break;
+ case T_ID: fprintf(file, "%s", ((char*)tok->value)); break;
default: break;
}
} else if (is_formtype(p_tree, "if")) {
{
tree_t* p_tree = NULL;
try {
- if (parser_accept_str(p_parser, T_VAR, "require"))
+ if (parser_accept_str(p_parser, T_ID, "require"))
grammar_require(p_parser);
- else if (parser_accept_str(p_parser, T_VAR, "def"))
+ else if (parser_accept_str(p_parser, T_ID, "def"))
grammar_definition(p_parser);
else
grammar_expression(p_parser);
void grammar_definition(parser_t* p_parser)
{
size_t mark = parser_mark(p_parser);
- parser_expect(p_parser,T_VAR);
+ parser_expect(p_parser,T_ID);
if (parser_peek(p_parser)->type == T_LPAR) {
- parser_insert(p_parser, T_VAR, lexer_dup("fn"));
+ parser_insert(p_parser, T_ID, lexer_dup("fn"));
grammar_fn_stmnt(p_parser);
} else {
grammar_expression(p_parser);
grammar_expression(p_parser);
parser_expect(p_parser, T_RPAR);
parser_reduce(p_parser, mark);
- } else if (parser_accept_str(p_parser, T_VAR, "if")) {
+ } else if (parser_accept_str(p_parser, T_ID, "if")) {
grammar_if_stmnt(p_parser);
- } else if (parser_accept_str(p_parser, T_VAR, "fn")) {
+ } else if (parser_accept_str(p_parser, T_ID, "fn")) {
grammar_fn_stmnt(p_parser);
- } else if (parser_peek(p_parser)->type == T_VAR) {
- parser_expect(p_parser, T_VAR);
+ } else if (parser_peek(p_parser)->type == T_ID) {
+ parser_expect(p_parser, T_ID);
if (parser_peek(p_parser)->type == T_LPAR) {
grammar_arglist(p_parser);
}
size_t mark = parser_mark(p_parser);
grammar_expression(p_parser);
grammar_expression(p_parser);
- if (parser_accept_str(p_parser, T_VAR, "else")) {
+ if (parser_accept_str(p_parser, T_ID, "else")) {
grammar_expression(p_parser);
}
parser_expect(p_parser,T_END);
parser_expect(p_parser, T_LPAR);
size_t mark2 = parser_mark(p_parser);
while(parser_peek(p_parser)->type != T_RPAR) {
- parser_expect(p_parser, T_VAR);
+ parser_expect(p_parser, T_ID);
if(parser_peek(p_parser)->type != T_RPAR)
parser_expect(p_parser, T_COMMA);
}
} lexer_t;
typedef enum {
- T_VAR, T_CHAR, T_INT, T_FLOAT, T_BOOL, T_STRING, T_LBRACE, T_RBRACE, T_LBRACK,
+ T_ID, T_CHAR, T_INT, T_FLOAT, T_BOOL, T_STRING, T_LBRACE, T_RBRACE, T_LBRACK,
T_RBRACK, T_LPAR, T_RPAR, T_COMMA, T_SQUOTE, T_DQUOTE, T_END, T_END_FILE
} lex_tok_type_t;
case T_LPAR: return "T_LPAR";
case T_RPAR: return "T_RPAR";
case T_COMMA: return "T_COMMA";
- case T_VAR: return "T_VAR";
+ case T_ID: return "T_ID";
case T_END: return "T_END";
case T_SQUOTE: return "T_SQUOTE";
case T_DQUOTE: return "T_DQUOTE";
case T_INT: fprintf(file, "%ld", *((long int*)value)); break;
case T_FLOAT: fprintf(file, "%f", *((double*)value)); break;
case T_BOOL: fprintf(file, "%s", ((intptr_t)value)?"true":"false"); break;
- case T_VAR: fprintf(file, "%s", ((char*)value)); break;
+ case T_ID: fprintf(file, "%s", ((char*)value)); break;
default: fprintf(file, "???"); break;
}
}