1
1
Fork 0
mirror of https://github.com/azur1s/bobbylisp.git synced 2024-10-16 02:37:40 -05:00

Compare commits

..

2 commits

Author SHA1 Message Date
azur a07a4ab021 use nested_parser instead 2023-03-04 19:57:35 +07:00
azur 6f11fa8ccc change func syntax 2023-03-04 19:46:25 +07:00
2 changed files with 10 additions and 6 deletions

2
a.hlm
View file

@ -1,4 +1,4 @@
func add x: num -> num = x + 1; func add (x: num) num = (\a: num -> a + 1)(x);
println( println(
{ {

View file

@ -446,12 +446,16 @@ 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( .then(
nested_parser(
symbol_parser() symbol_parser()
.then_ignore(just(Token::Colon)) .then_ignore(just(Token::Colon))
.then(type_parser()) .then(type_parser())
.separated_by(just(Token::Comma)) .separated_by(just(Token::Comma))
.allow_trailing(),
Delim::Paren,
|_| Vec::new(),
)
) )
.then_ignore(just(Token::Arrow))
.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))