diff --git a/grammar.js b/grammar.js index c02d93d..193ca2c 100644 --- a/grammar.js +++ b/grammar.js @@ -743,7 +743,10 @@ module.exports = grammar({ )), pipe_expression: $ => prec.left(seq( - $.primary_expression, + choice( + $.primary_expression, + $.block, + ), choice('->', '|>'), choice( $.value_identifier, diff --git a/test/corpus/expressions.txt b/test/corpus/expressions.txt index c32a342..0e27045 100644 --- a/test/corpus/expressions.txt +++ b/test/corpus/expressions.txt @@ -196,6 +196,8 @@ foo->{ baz } +{foo}->print() + --- (source_file @@ -243,7 +245,13 @@ foo->{ (value_identifier) (block (open_statement (module_identifier)) - (expression_statement (value_identifier)))))) + (expression_statement (value_identifier))))) + (expression_statement + (call_expression + (pipe_expression + (block (expression_statement (value_identifier))) + (value_identifier)) + (arguments)))) =========================================== Record