Cleanup
This commit is contained in:
@@ -106,7 +106,7 @@ function Token *
|
||||
token_expect(Token_Kind kind){
|
||||
Token *token = token_get();
|
||||
if(token->kind == kind) return token_next();
|
||||
parsing_error(token, "Expected token of kind: [%s], got instead token of kind: [%s]", token_kind_string(kind).str, token_kind_string(token->kind).str);
|
||||
parsing_error(token, "Expected token of kind: [%s], got instead token of kind: [%s]", name(kind), name(token->kind));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -257,7 +257,7 @@ parse_block(){
|
||||
}
|
||||
|
||||
if(result) stmts.add(result);
|
||||
else parsing_error(token, "Unexpected token [%s] while parsing statement", token_kind_string(token->kind).str);
|
||||
else parsing_error(token, "Unexpected token [%s] while parsing statement", name(token->kind));
|
||||
|
||||
}
|
||||
} while(token_match(SAME_SCOPE));
|
||||
@@ -409,7 +409,7 @@ parse_expr(S64 min_bp){
|
||||
token_expect(TK_CloseParen);
|
||||
}
|
||||
}break;
|
||||
default: parsing_error(token, "Unexpected token of kind: [%s] in expression", token_kind_string(token->kind).str); return 0;
|
||||
default: parsing_error(token, "Unexpected token of kind: [%s] in expression", name(token->kind)); return 0;
|
||||
}
|
||||
|
||||
for(;;){
|
||||
@@ -525,38 +525,38 @@ parse_named(B32 is_global){
|
||||
}
|
||||
}
|
||||
|
||||
Token *name = token_get();
|
||||
Token *tname = token_get();
|
||||
if(token_match(TK_Identifier, TK_DoubleColon)){
|
||||
// @note parse struct binding
|
||||
Token *struct_pos = token_get();
|
||||
if(token_match_keyword(keyword_struct)){
|
||||
Ast_Struct *struct_val = parse_struct(struct_pos);
|
||||
result = ast_const(name, name->intern_val, (Ast_Expr *)struct_val);
|
||||
result = ast_const(tname, tname->intern_val, (Ast_Expr *)struct_val);
|
||||
}
|
||||
|
||||
else if(token_match_keyword(keyword_enum)){
|
||||
Ast_Enum *enum_val = parse_enum(struct_pos);
|
||||
result = ast_const(name, name->intern_val, (Ast_Expr *)enum_val);
|
||||
result = ast_const(tname, tname->intern_val, (Ast_Expr *)enum_val);
|
||||
}
|
||||
|
||||
// @note parse constant expression
|
||||
else{
|
||||
Ast_Expr *expr = parse_expr();
|
||||
result = ast_const(name, name->intern_val, expr);
|
||||
result = ast_const(tname, tname->intern_val, expr);
|
||||
}
|
||||
}
|
||||
else if(token_match(TK_Identifier, TK_Colon)){
|
||||
Ast_Expr *typespec = typespec = parse_expr();
|
||||
Ast_Expr *expr = parse_assign_expr();
|
||||
result = ast_var(name, typespec, name->intern_val, expr);
|
||||
result = ast_var(tname, typespec, tname->intern_val, expr);
|
||||
}
|
||||
|
||||
else if(token_match(TK_Identifier, TK_ColonAssign)){
|
||||
Ast_Expr *expr = parse_expr();
|
||||
result = ast_var(name, 0, name->intern_val, expr);
|
||||
result = ast_var(tname, 0, tname->intern_val, expr);
|
||||
}
|
||||
else if(is_global && name->kind != TK_End){
|
||||
parsing_error(name, "Unexpected token: [%s] when parsing a declaration", token_kind_string(name->kind).str);
|
||||
else if(is_global && tname->kind != TK_End){
|
||||
parsing_error(tname, "Unexpected token: [%s] when parsing a declaration", name(tname->kind));
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user