diff options
Diffstat (limited to 'src/cljcc/token.clj')
| -rw-r--r-- | src/cljcc/token.clj | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/src/cljcc/token.clj b/src/cljcc/token.clj index 429e593..9136631 100644 --- a/src/cljcc/token.clj +++ b/src/cljcc/token.clj @@ -11,18 +11,26 @@ :right-paren ;; operators - :plus - :minus + :bitwise-not + :multiply :divide :remainder - :negate - :assignemnt + + :plus + :minus + + :bitwise-left-shift + :bitwise-right-shift + :ampersand - :bitwise-not - :bitwise-or + :bitwise-xor - :bitwise-left + + :bitwise-or + + :negate + :assignemnt :increment :decrement @@ -39,11 +47,16 @@ (def bin-ops "Binary operanrs and their precedence." - {:plus 40 - :hyphen 40 - :multiply 50 - :divide 50 - :remainder 50}) + {:multiply 100 + :divide 100 + :remainder 100 + :plus 90 + :hyphen 90 + :bitwise-left-shift 80 + :bitwise-right-shift 80 + :ampersand 70 + :bitwise-xor 60 + :bitwise-or 50}) (def chrs-kind-map {\( :left-paren @@ -53,6 +66,11 @@ \= :assignment "--" :decrement "++" :increment + "<<" :bitwise-left-shift + ">>" :bitwise-right-shift + \^ :bitwise-xor + \| :bitwise-or + \& :ampersand \; :semicolon \+ :plus \- :hyphen |
