summaryrefslogtreecommitdiff
path: root/src/parser
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser')
-rw-r--r--src/parser/grammar.pegjs2
-rw-r--r--src/parser/parser.ts9
2 files changed, 8 insertions, 3 deletions
diff --git a/src/parser/grammar.pegjs b/src/parser/grammar.pegjs
index e237af9..f586dcc 100644
--- a/src/parser/grammar.pegjs
+++ b/src/parser/grammar.pegjs
@@ -86,7 +86,7 @@ SwitchExpression
RPAREN { return { switch: { switchIndex, continuations } }; }
ApplicationExpression
- = APP _? LPAREN _? fn:Value _? COMMA _? args:ValueList _? RPAREN {
+ = APP _? LPAREN _? fn:(LabelStatement / VarStatement) _? COMMA _? args:ValueList _? RPAREN {
return { application: { fn, args } };
}
diff --git a/src/parser/parser.ts b/src/parser/parser.ts
index 500a763..b196866 100644
--- a/src/parser/parser.ts
+++ b/src/parser/parser.ts
@@ -1716,7 +1716,12 @@ peg$parseApplicationExpression() {
s4 = null;
}
// @ts-ignore
- s5 = peg$parseValue();
+ s5 = peg$parseLabelStatement();
+// @ts-ignore
+ if (s5 === peg$FAILED) {
+// @ts-ignore
+ s5 = peg$parseVarStatement();
+ }
// @ts-ignore
if (s5 !== peg$FAILED) {
// @ts-ignore
@@ -5337,7 +5342,7 @@ export type SwitchExpression = {
switch: { switchIndex: Value; continuations: ContinuationList };
};
export type ApplicationExpression = {
- application: { fn: Value; args: ValueList };
+ application: { fn: LabelStatement | VarStatement; args: ValueList };
};
export type FixBinding = [
LPAREN,