From 4cdf4ddb24fb6f7d46d65dc55f44af1ff50119b5 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 3 May 2025 13:59:06 +0900 Subject: parenthesized expression --- main.c | 5 +++++ tests/004.sh | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 tests/004.sh diff --git a/main.c b/main.c index b177901..e346738 100644 --- a/main.c +++ b/main.c @@ -285,6 +285,11 @@ AST* parse_primitive_expr(PARSER* p) { buf[t->len] = 0; e->int_value = atoi(buf); return e; + } else if (t->kind == TK_PAREN_L) { + next_token(p); + AST* e = parse_expr(p); + expect(p, TK_PAREN_R); + return e; } else { fatal_error("parse_expr"); } diff --git a/tests/004.sh b/tests/004.sh new file mode 100644 index 0000000..b5ceb16 --- /dev/null +++ b/tests/004.sh @@ -0,0 +1,7 @@ +set -e + +bash ../../test_exit_code.sh 197 <<'EOF' +int main() { + return (((3+5)/2) + (5*(9-6)) * (5+6*7)) % 256; +} +EOF -- cgit v1.2.3-70-g09d2