Work in progress. Mostly bug fixing.
[sod] / src / parser / parser-test.lisp
index f25961e..6718d5c 100644 (file)
                                       (seq (#\&) and)
                                       (seq (#\|) or)))
                            (token (or (seq (#\() lp)
+                                      (seq (#\[) lb)
                                       (seq (#\-) neg)
                                       (seq (#\!) not)))
                            (token (or (seq (#\!) fact)
-                                      (when nestedp (seq (#\)) rp))))))
+                                      (when nestedp
+                                        (or (seq (#\)) rp)
+                                            (seq (#\]) rb)))))))
                   (next (or :any (t :eof))))
               (cons value next))))))
 
   (assert-expr-parse "1 ** 2 ** 3" '((** 1 (** 2 3)) . :eof) t t)
   (assert-expr-parse "1 + 2) * 3" '((+ 1 2) . #\)) t t)
   (assert-expr-parse "1 + 2 * 3" '((+ 1 (* 2 3)) . :eof) t t)
-
   (assert-expr-parse "! 1 + 2 = 3 | 6 - 3 /= 12/6"
                     '((or (not (= (+ 1 2) 3))
                           (/= (- 6 3) (/ 12 6)))