Rearrange # flags, Add Windows.kl
This commit is contained in:
12
parsing.cpp
12
parsing.cpp
@@ -562,6 +562,7 @@ function Ast_Decl *
|
||||
parse_enum(Token *pos){
|
||||
Scratch scratch;
|
||||
Ast_Expr *typespec = parse_optional_type();
|
||||
Token *flag = token_match_pound(intern_flag);
|
||||
|
||||
token_match(OPEN_SCOPE);
|
||||
Ast_Scope *scope = begin_decl_scope(scratch, token_get());
|
||||
@@ -577,6 +578,7 @@ parse_enum(Token *pos){
|
||||
token_expect(CLOSE_SCOPE);
|
||||
|
||||
Ast_Decl *result = ast_enum(pos, typespec, scope);
|
||||
if(flag) set_flag(result->flags, AST_FLAG);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -595,13 +597,11 @@ parse_decl(B32 is_global){
|
||||
}
|
||||
}
|
||||
|
||||
Ast_Flag flags = 0;
|
||||
Token *tname = token_get();
|
||||
if(token_match(TK_Identifier, TK_DoubleColon)){
|
||||
|
||||
if(token_match_pound(intern_strict)){
|
||||
set_flag(flags, AST_STRICT);
|
||||
} else if(token_match_pound(intern_foreign)){
|
||||
Ast_Flag flags = 0;
|
||||
if(token_match_pound(intern_foreign)){
|
||||
set_flag(flags, AST_FOREIGN);
|
||||
}
|
||||
|
||||
@@ -620,7 +620,8 @@ parse_decl(B32 is_global){
|
||||
|
||||
if(expr->kind == AST_LAMBDA_EXPR){
|
||||
auto a = (Ast_Lambda *)expr;
|
||||
if(a->scope){
|
||||
if(a->scope || is_flag_set(flags, AST_FOREIGN)){
|
||||
set_flag(result->flags, flags);
|
||||
result->kind = AST_LAMBDA;
|
||||
}
|
||||
}
|
||||
@@ -643,7 +644,6 @@ parse_decl(B32 is_global){
|
||||
|
||||
if(result){
|
||||
result->name = tname->intern_val;
|
||||
set_flag(result->flags, flags);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user