aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-07 20:09:18 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-07 20:09:18 +0100
commite4790b25e567aeaef20f29d1a6174413bc8ea0f0 (patch)
treeb5bd25ee79a42f7e76070bab6a489f92ceb086a2 /src/main/java
parentc7d528851c816f59740b83fa93d99ee857695d59 (diff)
Parse body of functions
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/parser/Parser.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/parser/Parser.java b/src/main/java/org/shedlang/compiler/parser/Parser.java
index 1972163a..384cd694 100644
--- a/src/main/java/org/shedlang/compiler/parser/Parser.java
+++ b/src/main/java/org/shedlang/compiler/parser/Parser.java
@@ -102,7 +102,11 @@ public class Parser {
var returnType = parseTopLevelTypeLevelExpression(tokens);
tokens.skip(TokenType.SYMBOL_BRACE_OPEN);
- var body = List.<UntypedFunctionStatementNode>of();
+ var body = parseMany(
+ () -> tokens.isNext(TokenType.SYMBOL_BRACE_CLOSE),
+ () -> parseFunctionStatement(tokens),
+ () -> true
+ );
tokens.skip(TokenType.SYMBOL_BRACE_CLOSE);
var end = tokens.position();