Skip to content
This repository was archived by the owner on Jun 15, 2023. It is now read-only.

Commit a682fbe

Browse files
committed
Separate out if expression body
1 parent 8b85058 commit a682fbe

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/napkin_core.ml

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3014,11 +3014,7 @@ and parseElseBranch p =
30143014
Parser.expect Rbrace p;
30153015
blockExpr;
30163016

3017-
and parseIfExpression p =
3018-
Parser.beginRegion p;
3019-
Parser.leaveBreadcrumb p Grammar.ExprIf;
3020-
let startPos = p.Parser.startPos in
3021-
Parser.expect If p;
3017+
and parseIfBody startPos p =
30223018
let conditionExpr = parseIfCondition p in
30233019
let thenExpr = parseIfBranch p in
30243020
let elseExpr = match p.Parser.token with
@@ -3029,7 +3025,8 @@ and parseIfExpression p =
30293025
Parser.beginRegion p;
30303026
let elseExpr = match p.token with
30313027
| If ->
3032-
parseIfExpression p
3028+
Parser.next p;
3029+
parseIfBody startPos p
30333030
| _ ->
30343031
parseElseBranch p
30353032
in
@@ -3041,9 +3038,17 @@ and parseIfExpression p =
30413038
None
30423039
in
30433040
let loc = mkLoc startPos p.prevEndPos in
3044-
Parser.eatBreadcrumb p;
30453041
Ast_helper.Exp.ifthenelse ~loc conditionExpr thenExpr elseExpr
30463042

3043+
and parseIfExpression p =
3044+
Parser.beginRegion p;
3045+
Parser.leaveBreadcrumb p Grammar.ExprIf;
3046+
let startPos = p.Parser.startPos in
3047+
Parser.expect If p;
3048+
let ifBody = parseIfBody startPos p in
3049+
Parser.eatBreadcrumb p;
3050+
ifBody;
3051+
30473052
and parseForRest hasOpeningParen pattern startPos p =
30483053
Parser.expect In p;
30493054
let e1 = parseExpr p in

0 commit comments

Comments
 (0)