diff options
author | Tai Chi Minh Ralph Eastwood <caffe@disroot.org> | 2024-02-03 15:59:14 +0100 |
---|---|---|
committer | Tai Chi Minh Ralph Eastwood <caffe@disroot.org> | 2024-02-03 16:01:48 +0100 |
commit | b2e16dc0bf2eddbc62f0834f7ee460c24447a4cb (patch) | |
tree | e482976026bc4ccad9b70a234cb5a502c113e5a5 | |
parent | eac3ad039240dd16fb55d7b017c9dcefbca210b3 (diff) |
Fix parsing of negative numbers
Fixes #10
-rw-r--r-- | src/parser.lisp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/parser.lisp b/src/parser.lisp index 3ef960b..3412fbf 100644 --- a/src/parser.lisp +++ b/src/parser.lisp @@ -94,10 +94,10 @@ (:lambda (digits) (text digits))) -(defrule integer (and (or octal hex dec) (? integer-suffix)) - (:destructure (num suff &bounds start-pos) +(defrule integer (and (? sign) (or octal hex dec) (? integer-suffix)) + (:destructure (sign num suff &bounds start-pos) (declare (ignore suff)) - (make-instance '<integer> :text num :line (line start-pos)))) + (make-instance '<integer> :text (text sign num) :line (line start-pos)))) (defrule sign (or #\+ #\-)) |