mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Improve -strict-style for foreign import
This commit is contained in:
+7
-4
@@ -2112,6 +2112,7 @@ Ast *parse_operand(AstFile *f, bool lhs) {
|
|||||||
|
|
||||||
case Token_OpenParen: {
|
case Token_OpenParen: {
|
||||||
bool allow_newline;
|
bool allow_newline;
|
||||||
|
isize prev_expr_level;
|
||||||
Token open, close;
|
Token open, close;
|
||||||
// NOTE(bill): Skip the Paren Expression
|
// NOTE(bill): Skip the Paren Expression
|
||||||
open = expect_token(f, Token_OpenParen);
|
open = expect_token(f, Token_OpenParen);
|
||||||
@@ -2121,16 +2122,18 @@ Ast *parse_operand(AstFile *f, bool lhs) {
|
|||||||
return ast_bad_expr(f, open, close);
|
return ast_bad_expr(f, open, close);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prev_expr_level = f->expr_level;
|
||||||
allow_newline = f->allow_newline;
|
allow_newline = f->allow_newline;
|
||||||
if (f->expr_level < 0) {
|
if (f->expr_level < 0) {
|
||||||
f->allow_newline = false;
|
f->allow_newline = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
f->expr_level++;
|
// NOTE(bill): enforce it to >0
|
||||||
|
f->expr_level = gb_max(f->expr_level, 0)+1;
|
||||||
operand = parse_expr(f, false);
|
operand = parse_expr(f, false);
|
||||||
f->expr_level--;
|
|
||||||
|
|
||||||
f->allow_newline = allow_newline;
|
f->allow_newline = allow_newline;
|
||||||
|
f->expr_level = prev_expr_level;
|
||||||
|
|
||||||
close = expect_token(f, Token_CloseParen);
|
close = expect_token(f, Token_CloseParen);
|
||||||
return ast_paren_expr(f, operand, open, close);
|
return ast_paren_expr(f, operand, open, close);
|
||||||
@@ -4010,7 +4013,7 @@ Ast *parse_body(AstFile *f) {
|
|||||||
|
|
||||||
// NOTE(bill): The body may be within an expression so reset to zero
|
// NOTE(bill): The body may be within an expression so reset to zero
|
||||||
f->expr_level = 0;
|
f->expr_level = 0;
|
||||||
f->allow_newline = false;
|
// f->allow_newline = false;
|
||||||
open = expect_token(f, Token_OpenBrace);
|
open = expect_token(f, Token_OpenBrace);
|
||||||
stmts = parse_stmt_list(f);
|
stmts = parse_stmt_list(f);
|
||||||
close = expect_token(f, Token_CloseBrace);
|
close = expect_token(f, Token_CloseBrace);
|
||||||
@@ -4468,7 +4471,7 @@ Ast *parse_foreign_decl(AstFile *f) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
expect_token(f, Token_CloseBrace);
|
expect_closing_brace_of_field_list(f);
|
||||||
} else {
|
} else {
|
||||||
filepaths = array_make<Token>(heap_allocator(), 0, 1);
|
filepaths = array_make<Token>(heap_allocator(), 0, 1);
|
||||||
Token path = expect_token(f, Token_String);
|
Token path = expect_token(f, Token_String);
|
||||||
|
|||||||
Reference in New Issue
Block a user