fix: parsing diverts within content
This commit is contained in:
parent
2ee43514b4
commit
066369cc13
4 changed files with 45 additions and 6 deletions
|
|
@ -785,6 +785,9 @@ fn parseIdentifierExpr(p: *Parse) Error!*Ast.Node {
|
|||
}
|
||||
|
||||
fn parseDivertExpr(p: *Parse) Error!*Ast.Node {
|
||||
try p.pushGrammar(.expression);
|
||||
defer p.popGrammar();
|
||||
|
||||
const main_token = p.nextToken();
|
||||
const node = try parseIdentifierExpr(p);
|
||||
return .createBinary(p.arena, .divert_expr, .{
|
||||
|
|
@ -794,9 +797,6 @@ fn parseDivertExpr(p: *Parse) Error!*Ast.Node {
|
|||
}
|
||||
|
||||
fn parseDivertStmt(p: *Parse) Error!*Ast.Node {
|
||||
try p.pushGrammar(.expression);
|
||||
defer p.popGrammar();
|
||||
|
||||
const main_token = p.token;
|
||||
const node = try parseDivertExpr(p);
|
||||
_ = try p.expectNewline();
|
||||
|
|
@ -980,7 +980,7 @@ fn parseContent(p: *Parse, options: ContentOptions) Error!?*Ast.Node {
|
|||
const node: ?*Ast.Node = switch (p.token.tag) {
|
||||
.eof, .newline, .left_arrow, .right_brace => break,
|
||||
.left_brace => try parseLbraceExpr(p),
|
||||
.right_arrow => try parseDivertStmt(p),
|
||||
.right_arrow => try parseDivertExpr(p),
|
||||
.glue => blk: {
|
||||
while (true) {
|
||||
_ = p.nextToken();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue