From 2c54f8f40b216afc4cf5684aa1c214dfdd3aeaa6 Mon Sep 17 00:00:00 2001 From: Ben Sherman Date: Wed, 24 Jul 2024 01:32:12 -0500 Subject: [PATCH] Remove closure with statement labels Signed-off-by: Ben Sherman --- src/main/antlr/ScriptParser.g4 | 14 ----------- .../script/v2/ScriptAstBuilder.groovy | 25 ------------------- 2 files changed, 39 deletions(-) diff --git a/src/main/antlr/ScriptParser.g4 b/src/main/antlr/ScriptParser.g4 index 2201ceb5..09145ecc 100644 --- a/src/main/antlr/ScriptParser.g4 +++ b/src/main/antlr/ScriptParser.g4 @@ -457,7 +457,6 @@ pathElement // method call expression (with closure) | closure #closurePathExprAlt - | closureWithLabels #closureWithLabelsPathExprAlt // method call expression | arguments #argumentsPathExprAlt @@ -561,19 +560,6 @@ formalParameter : DEF? type? ELLIPSIS? identifier (nls ASSIGN nls expression)? ; -closureWithLabels - : LBRACE (nls (formalParameterList nls)? ARROW)? nls blockStatementsWithLabels RBRACE - ; - -blockStatementsWithLabels - : statementOrLabeled (sep statementOrLabeled)* sep? - ; - -statementOrLabeled - : identifier COLON nls statement - | statement - ; - // -- list expression list : LBRACK nls expressionList? COMMA? nls RBRACK diff --git a/src/main/groovy/nextflow/script/v2/ScriptAstBuilder.groovy b/src/main/groovy/nextflow/script/v2/ScriptAstBuilder.groovy index 79803733..2b19ea51 100644 --- a/src/main/groovy/nextflow/script/v2/ScriptAstBuilder.groovy +++ b/src/main/groovy/nextflow/script/v2/ScriptAstBuilder.groovy @@ -832,11 +832,6 @@ class ScriptAstBuilder { return ast( pathClosureElement(expression, closure), expression, ctx ) } - if( ctx instanceof ClosureWithLabelsPathExprAltContext ) { - final closure = closureWithLabels(ctx.closureWithLabels()) - return ast( pathClosureElement(expression, closure), expression, ctx ) - } - if( ctx instanceof ArgumentsPathExprAltContext ) return ast( pathArgumentsElement(expression, ctx.arguments()), expression, ctx ) @@ -1137,26 +1132,6 @@ class ScriptAstBuilder { ast( closureX(params, code), ctx ) } - private Expression closureWithLabels(ClosureWithLabelsContext ctx) { - final params = parameters(ctx.formalParameterList()) - final code = blockStatementsWithLabels(ctx.blockStatementsWithLabels()) - ast( closureX(params, code), ctx ) - } - - private BlockStatement blockStatementsWithLabels(BlockStatementsWithLabelsContext ctx) { - final statements = ctx.statementOrLabeled().collect( this.&statementOrLabeled ) - ast( block(new VariableScope(), statements), ctx ) - } - - private Statement statementOrLabeled(StatementOrLabeledContext ctx) { - final result = statement(ctx.statement()) - if( ctx.identifier() ) { - final label = identifier(ctx.identifier()) - result.addStatementLabel(label) - } - return result - } - private Expression list(ListContext ctx) { if( ctx.COMMA() && !ctx.expressionList() ) throw createParsingFailedException("Empty list literal should not contain any comma(,)", ctx.COMMA())