Core: New unique_name scheme, more human friendly
This commit is contained in:
16
core_ast.cpp
16
core_ast.cpp
@@ -116,7 +116,7 @@ ast_lambda(Token *pos, Array<Ast_Decl *> params, Array<Ast_Expr *> ret, Ast_Scop
|
||||
result->args = params.tight_copy(pctx->perm);
|
||||
result->ret = ret.tight_copy(pctx->perm);
|
||||
result->scope = scope;
|
||||
scope->parent_ast = result;
|
||||
if (scope) scope->parent_ast = result;
|
||||
|
||||
For(params) {
|
||||
if (is_flag_set(it->flags, AST_POLYMORPH)) {
|
||||
@@ -158,6 +158,12 @@ ast_break(Token *pos) {
|
||||
return result;
|
||||
}
|
||||
|
||||
CORE_Static Ast_Break *
|
||||
ast_compiler_breakpoint(Token *pos) {
|
||||
AST_NEW(Break, COMPILER_BREAKPOINT, pos, AST_STMT);
|
||||
return result;
|
||||
}
|
||||
|
||||
CORE_Static Ast_Pass *
|
||||
ast_continue(Token *pos) {
|
||||
AST_NEW(Pass, CONTINUE, pos, AST_STMT);
|
||||
@@ -259,6 +265,7 @@ CORE_Static Ast_Decl *
|
||||
ast_var(Token *pos, Ast_Expr *typespec, Intern_String name, Ast_Expr *expr) {
|
||||
AST_NEW(Decl, VAR, pos, AST_DECL);
|
||||
result->name = name;
|
||||
result->unique_name = name;
|
||||
result->typespec = typespec;
|
||||
set_flag_typespec(typespec);
|
||||
result->expr = expr;
|
||||
@@ -270,6 +277,7 @@ ast_const(Token *pos, Intern_String name, Value value) {
|
||||
AST_NEW(Decl, CONST, pos, AST_DECL);
|
||||
result->value = value;
|
||||
result->name = name;
|
||||
result->unique_name = name;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -278,6 +286,7 @@ ast_const(Token *pos, Intern_String name, Ast_Expr *expr) {
|
||||
AST_NEW(Decl, CONST, pos, AST_DECL);
|
||||
result->expr = expr;
|
||||
result->name = name;
|
||||
result->unique_name = name;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -287,6 +296,7 @@ ast_type(Token *pos, Intern_String name, Ast_Type *type) {
|
||||
result->type = pctx->type_type;
|
||||
result->type_val = type;
|
||||
result->name = name;
|
||||
result->unique_name = name;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -305,6 +315,7 @@ ast_namespace(Token *pos, Ast_Scope *module, Intern_String name) {
|
||||
AST_NEW(Decl, NAMESPACE, pos, AST_DECL);
|
||||
result->scope = module;
|
||||
result->name = name;
|
||||
result->unique_name = name;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -554,7 +565,8 @@ void next(Ast_Iter *iter) {
|
||||
|
||||
case AST_BREAK:
|
||||
case AST_PASS:
|
||||
case AST_CONTINUE: {
|
||||
case AST_CONTINUE:
|
||||
case AST_COMPILER_BREAKPOINT: {
|
||||
Ast *node = (Ast *)ast;
|
||||
} break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user