aboutsummaryrefslogtreecommitdiff
path: root/src/cljcc/parser.clj
diff options
context:
space:
mode:
authorShagun Agrawal <agrawalshagun07@gmail.com>2024-07-26 00:03:57 +0530
committerShagun Agrawal <agrawalshagun07@gmail.com>2024-07-26 00:03:57 +0530
commitb6de8db464151fa1300c5a47e508e9e792d034d0 (patch)
treefcff2e637d27de228d869f884f9aa33d8cbabbb4 /src/cljcc/parser.clj
parent264c71e3a7666bc234a5dd62b1bcc36c89d1949d (diff)
Add cli options for pasing and codegen
Add cli options specific for only parsing and codegen add logger for help in debugging
Diffstat (limited to 'src/cljcc/parser.clj')
-rw-r--r--src/cljcc/parser.clj3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cljcc/parser.clj b/src/cljcc/parser.clj
index 860fcd5..a4d7492 100644
--- a/src/cljcc/parser.clj
+++ b/src/cljcc/parser.clj
@@ -11,7 +11,8 @@
"<program> = function+
function = #'int\\b' identifier <'('> #'void\\b' <')'> <'{'> statement <'}'>
statement = #'return\\b' exp <';'>
- exp = constant
+ exp = constant | unop exp | <'('> exp <')'>
+ unop = #'-\\b' | #'~\\b'
identifier = #'[a-zA-Z_]\\w*\\b'
constant = #'[0-9]+\\b'
keyword = #'int\\b' | #'return\\b' | #'void\\b'"