[honu] always keep parsing a unary operator
This commit is contained in:
parent
4799d08022
commit
40a3161570
|
@ -418,24 +418,25 @@
|
||||||
|
|
||||||
#f)])
|
#f)])
|
||||||
(do-parse unparsed precedence left parsed))
|
(do-parse unparsed precedence left parsed))
|
||||||
|
;; if we have a unary transformer then we have to keep parsing
|
||||||
#;
|
(if unary-transformer
|
||||||
(do-parse #'(rest ...) new-precedence
|
(if current
|
||||||
(lambda (stuff)
|
(values (left current) stream)
|
||||||
(if current
|
(do-parse #'(rest ...) new-precedence
|
||||||
(if binary-transformer
|
(lambda (stuff)
|
||||||
(left (binary-transformer current stuff))
|
(define right (parse-all stuff))
|
||||||
(error '#'head "cannot be used as a binary operator"))
|
(define output (unary-transformer right))
|
||||||
(if unary-transformer
|
;; apply the left function because
|
||||||
(left (unary-transformer stuff))
|
;; we just went ahead with parsing without
|
||||||
(error '#'head "cannot be used as a unary operator"))))
|
;; caring about precedence
|
||||||
#f)
|
(with-syntax ([out (left (parse-all output))])
|
||||||
(values (left current) stream)
|
#'out))
|
||||||
#;
|
#f))
|
||||||
(do-parse #'(head rest ...)
|
;; otherwise we have a binary transformer (or no transformer..??)
|
||||||
0
|
;; so we must have made a recursive call to parse, just return the
|
||||||
(lambda (x) x)
|
;; left hand
|
||||||
(left final)))]
|
(values (left current) stream))
|
||||||
|
)]
|
||||||
|
|
||||||
#;
|
#;
|
||||||
[(stopper? #'head)
|
[(stopper? #'head)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user