summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTai Chi Minh Ralph Eastwood <caffe@disroot.org>2024-02-03 15:59:14 +0100
committerTai Chi Minh Ralph Eastwood <caffe@disroot.org>2024-02-03 16:01:48 +0100
commitb2e16dc0bf2eddbc62f0834f7ee460c24447a4cb (patch)
treee482976026bc4ccad9b70a234cb5a502c113e5a5
parenteac3ad039240dd16fb55d7b017c9dcefbca210b3 (diff)
Fix parsing of negative numbers
Fixes #10
-rw-r--r--src/parser.lisp6
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 #\+ #\-))