Fix the parser to support expressions wholly in parentheses

This commit is contained in:
Mikko Ahlroth 2024-05-19 15:38:42 +03:00
parent 4298176d72
commit d276d106ff

View file

@ -37,7 +37,7 @@ fn expr_parser() {
one_of: [
fn(_) { int_parser() },
fn(_) { n_parser() },
fn(c) { paren_parser(c) },
fn(_) { paren_parser() },
],
and_then: [
pratt.infix_left(200, nibble.token(tokenizer.And), fn(l, r) {
@ -74,9 +74,9 @@ fn expr_parser() {
)
}
fn paren_parser(c) {
fn paren_parser() {
use _ <- nibble.do(lparen_parser())
use expr <- nibble.do(pratt.sub_expression(c, 0))
use expr <- nibble.do(plurals_parser())
use _ <- nibble.do(rparen_parser())
nibble.return(ast.Paren(expr))