mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-15 15:41:26 -07:00
Change procedure group syntax from proc[] to proc{}; deprecate proc[] (raises warning currently)
This commit is contained in:
+2
-2
@@ -6543,12 +6543,12 @@ gbString write_expr_to_string(gbString str, Ast *node) {
|
||||
case_end;
|
||||
|
||||
case_ast_node(pg, ProcGroup, node);
|
||||
str = gb_string_appendc(str, "proc[");
|
||||
str = gb_string_appendc(str, "proc{");
|
||||
for_array(i, pg->args) {
|
||||
if (i > 0) str = gb_string_appendc(str, ", ");
|
||||
str = write_expr_to_string(str, pg->args[i]);
|
||||
}
|
||||
str = gb_string_append_rune(str, ']');
|
||||
str = gb_string_append_rune(str, '}');
|
||||
case_end;
|
||||
|
||||
case_ast_node(pl, ProcLit, node);
|
||||
|
||||
+24
-1
@@ -1742,8 +1742,31 @@ Ast *parse_operand(AstFile *f, bool lhs) {
|
||||
case Token_proc: {
|
||||
Token token = expect_token(f, Token_proc);
|
||||
|
||||
if (f->curr_token.kind == Token_OpenBracket) { // ProcGroup
|
||||
if (f->curr_token.kind == Token_OpenBrace) { // ProcGroup
|
||||
Token open = expect_token(f, Token_OpenBrace);
|
||||
|
||||
auto args = array_make<Ast *>(heap_allocator());
|
||||
|
||||
while (f->curr_token.kind != Token_CloseBrace &&
|
||||
f->curr_token.kind != Token_EOF) {
|
||||
Ast *elem = parse_expr(f, false);
|
||||
array_add(&args, elem);
|
||||
|
||||
if (!allow_token(f, Token_Comma)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Token close = expect_token(f, Token_CloseBrace);
|
||||
|
||||
if (args.count == 0) {
|
||||
syntax_error(token, "Expected a least 1 argument in a procedure group");
|
||||
}
|
||||
|
||||
return ast_proc_group(f, token, open, close, args);
|
||||
} else if (f->curr_token.kind == Token_OpenBracket) { // ProcGroup
|
||||
Token open = expect_token(f, Token_OpenBracket);
|
||||
warning(open, "Procedure groups using [] are now deprecated, please use {} instead");
|
||||
|
||||
auto args = array_make<Ast *>(heap_allocator());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user