errdefer and try/defer fix
This commit is contained in:
@@ -278,7 +278,17 @@ module.exports = grammar({
|
||||
break_statement: $ => seq('break', optional(seq(':', field('label', $.identifier)))),
|
||||
continue_statement: $ => seq('continue', optional(seq(':', field('label', $.identifier)))),
|
||||
|
||||
defer_statement: $ => seq('defer', repeat($._newline), field('body', $.statement)),
|
||||
defer_statement: $ => choice(
|
||||
seq('defer', repeat($._newline), field('body', $.statement)),
|
||||
seq(
|
||||
'errdefer',
|
||||
repeat($._newline),
|
||||
optional(seq(field('capture', $.error_capture), repeat($._newline))),
|
||||
field('body', $.statement),
|
||||
),
|
||||
),
|
||||
|
||||
error_capture: $ => seq('|', choice($.identifier, $.sink), '|'),
|
||||
|
||||
labeled_block: $ => seq(
|
||||
field('label', $.identifier),
|
||||
|
||||
Reference in New Issue
Block a user