From e3d8e031c6f20c68f2227028ee8b3e73cd9b8161 Mon Sep 17 00:00:00 2001 From: Johnny Richard Date: Mon, 1 May 2023 01:57:22 +0200 Subject: parser: Implement variable assignment This commit introduces variable assignment making it possible to change a variable value. Example: myvar: i32 = 1; myvar = 2; Signed-off-by: Johnny Richard Co-authored-by: Carlos Maniero --- test/parser_test.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/parser_test.c b/test/parser_test.c index 5d615ec..8f75e07 100644 --- a/test/parser_test.c +++ b/test/parser_test.c @@ -220,9 +220,10 @@ test_parse_basic_syntax_errors(const MunitParameter params[], void *user_data_or assert_parser_error("main(): i32 { return 42;", "expected '}' but got end of file"); assert_parser_error("main(): beff { return 42; }", "type 'beff' is not defined"); assert_parser_error("main(): i32 { return b; }", "identifier 'b' not defined"); + assert_parser_error("main(): i32 { b = 1; return b; }", "trying to assign 'b' before defining it."); // FIXME: once function calls are implemented, this error should inform that // neither a variable or function call was found. - assert_parser_error("main(): i32 { oxi 42; }", "expected ':' but got 'TOKEN_NUMBER'"); + assert_parser_error("main(): i32 { oxi 42; }", "expected 'TOKEN_NAME' but got 'TOKEN_NUMBER'"); return MUNIT_OK; } -- cgit v1.2.3