From 35eae1f6626f6a18ae352a8a6adb9da747969c57 Mon Sep 17 00:00:00 2001 From: Shagun Agrawal Date: Wed, 31 Jul 2024 21:34:19 +0530 Subject: Fix parser bug for unary operations --- src/cljcc/parser.clj | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cljcc/parser.clj b/src/cljcc/parser.clj index a4d7492..77482f1 100644 --- a/src/cljcc/parser.clj +++ b/src/cljcc/parser.clj @@ -12,7 +12,7 @@ function = #'int\\b' identifier <'('> #'void\\b' <')'> <'{'> statement <'}'> statement = #'return\\b' exp <';'> exp = constant | unop exp | <'('> exp <')'> - unop = #'-\\b' | #'~\\b' + unop = #'-' | #'~' identifier = #'[a-zA-Z_]\\w*\\b' constant = #'[0-9]+\\b' keyword = #'int\\b' | #'return\\b' | #'void\\b'" @@ -26,4 +26,9 @@ (comment (parse "int main(void) {return 2;}") + + (parse "int main(void) { +return -(((((10))))); +}") + ,) -- cgit v1.2.3