mirror of
https://github.com/azur1s/bobbylisp.git
synced 2024-10-16 02:37:40 -05:00
use nested_parser instead
This commit is contained in:
parent
6f11fa8ccc
commit
a07a4ab021
2
a.hlm
2
a.hlm
|
@ -1,4 +1,4 @@
|
||||||
func add (x: num) num = x + 1;
|
func add (x: num) num = (\a: num -> a + 1)(x);
|
||||||
|
|
||||||
println(
|
println(
|
||||||
{
|
{
|
||||||
|
|
|
@ -445,14 +445,17 @@ pub fn exprs_parser() -> impl P<Vec<Spanned<PExpr>>> {
|
||||||
pub fn stmt_parser() -> impl P<Spanned<PStmt>> {
|
pub fn stmt_parser() -> impl P<Spanned<PStmt>> {
|
||||||
let func = just(Token::Func)
|
let func = just(Token::Func)
|
||||||
.ignore_then(symbol_parser())
|
.ignore_then(symbol_parser())
|
||||||
.then_ignore(just(Token::Open(Delim::Paren)))
|
|
||||||
.then(
|
.then(
|
||||||
symbol_parser()
|
nested_parser(
|
||||||
.then_ignore(just(Token::Colon))
|
symbol_parser()
|
||||||
.then(type_parser())
|
.then_ignore(just(Token::Colon))
|
||||||
.separated_by(just(Token::Comma))
|
.then(type_parser())
|
||||||
|
.separated_by(just(Token::Comma))
|
||||||
|
.allow_trailing(),
|
||||||
|
Delim::Paren,
|
||||||
|
|_| Vec::new(),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
.then_ignore(just(Token::Close(Delim::Paren)))
|
|
||||||
.then(type_parser())
|
.then(type_parser())
|
||||||
.then_ignore(just(Token::Assign))
|
.then_ignore(just(Token::Assign))
|
||||||
.then(expr_parser().map(Box::new))
|
.then(expr_parser().map(Box::new))
|
||||||
|
|
Loading…
Reference in a new issue