From 76cbd9e23d6100542295f00f4951a0794948993e Mon Sep 17 00:00:00 2001 From: Scott Frazer Date: Fri, 18 Sep 2015 12:06:33 -0400 Subject: [PATCH] Regenerate parsers for Java --- java/generate.sh | 4 +- java/java7/WdlParser.java | 4921 ++++++++++++++++++++++----------------------- java/java8/WdlParser.java | 4671 +++++++++++++++++++++--------------------- 3 files changed, 4765 insertions(+), 4831 deletions(-) diff --git a/java/generate.sh b/java/generate.sh index e4d8349..b4a6119 100644 --- a/java/generate.sh +++ b/java/generate.sh @@ -1,4 +1,4 @@ #!/bin/bash -hermes generate ../grammar.hgr --name=wdl --directory=java7 --language=java --java-use-apache-commons -hermes generate ../grammar.hgr --name=wdl --directory=java8 --language=java +hermes generate ../grammar.hgr --name=wdl --directory=java7 --language=java --java-use-apache-commons --java-imports=org.apache.commons.lang3.StringEscapeUtils +hermes generate ../grammar.hgr --name=wdl --directory=java8 --language=java --java-imports=org.apache.commons.lang3.StringEscapeUtils diff --git a/java/java7/WdlParser.java b/java/java7/WdlParser.java index da54283..eecd1b7 100644 --- a/java/java7/WdlParser.java +++ b/java/java7/WdlParser.java @@ -9,6 +9,7 @@ import java.nio.channels.FileChannel; import java.nio.charset.Charset; import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang3.StringEscapeUtils; import java.util.regex.Pattern; import java.util.regex.Matcher; import java.lang.reflect.Method; @@ -491,62 +492,62 @@ public String invalidTerminal(String method, Terminal invalid) { public String string(); } public enum WdlTerminalIdentifier implements TerminalIdentifier { - TERMINAL_RAW_CMD_END(0, "raw_cmd_end"), - TERMINAL_WHILE(1, "while"), - TERMINAL_INTEGER(2, "integer"), - TERMINAL_E(3, "e"), - TERMINAL_PERCENT(4, "percent"), - TERMINAL_FLOAT(5, "float"), - TERMINAL_EQUAL(6, "equal"), - TERMINAL_LPAREN(7, "lparen"), - TERMINAL_LT(8, "lt"), - TERMINAL_CMD_PARAM_END(9, "cmd_param_end"), - TERMINAL_DOUBLE_EQUAL(10, "double_equal"), - TERMINAL_DASH(11, "dash"), + TERMINAL_DASH(0, "dash"), + TERMINAL_IDENTIFIER(1, "identifier"), + TERMINAL_AS(2, "as"), + TERMINAL_SCATTER(3, "scatter"), + TERMINAL_E(4, "e"), + TERMINAL_PARAMETER_META(5, "parameter_meta"), + TERMINAL_IN(6, "in"), + TERMINAL_QMARK(7, "qmark"), + TERMINAL_RSQUARE(8, "rsquare"), + TERMINAL_LT(9, "lt"), + TERMINAL_GTEQ(10, "gteq"), + TERMINAL_WORKFLOW(11, "workflow"), TERMINAL_RPAREN(12, "rparen"), - TERMINAL_DOUBLE_AMPERSAND(13, "double_ampersand"), - TERMINAL_CMD_ATTR_HINT(14, "cmd_attr_hint"), - TERMINAL_RBRACE(15, "rbrace"), - TERMINAL_OBJECT(16, "object"), - TERMINAL_STRING(17, "string"), - TERMINAL_WORKFLOW(18, "workflow"), - TERMINAL_AS(19, "as"), - TERMINAL_FQN(20, "fqn"), - TERMINAL_CMD_PARAM_START(21, "cmd_param_start"), - TERMINAL_LSQUARE(22, "lsquare"), - TERMINAL_GT(23, "gt"), - TERMINAL_DOUBLE_PIPE(24, "double_pipe"), - TERMINAL_QMARK(25, "qmark"), - TERMINAL_RAW_CMD_START(26, "raw_cmd_start"), - TERMINAL_SLASH(27, "slash"), - TERMINAL_BOOLEAN(28, "boolean"), - TERMINAL_IMPORT(29, "import"), - TERMINAL_GTEQ(30, "gteq"), - TERMINAL_RSQUARE(31, "rsquare"), - TERMINAL_LBRACE(32, "lbrace"), - TERMINAL_PARAMETER_META(33, "parameter_meta"), - TERMINAL_TYPE_E(34, "type_e"), - TERMINAL_IF(35, "if"), - TERMINAL_NOT(36, "not"), - TERMINAL_INPUT(37, "input"), - TERMINAL_CMD_PART(38, "cmd_part"), - TERMINAL_DOT(39, "dot"), - TERMINAL_META(40, "meta"), - TERMINAL_RAW_COMMAND(41, "raw_command"), - TERMINAL_RUNTIME(42, "runtime"), - TERMINAL_COMMA(43, "comma"), - TERMINAL_OUTPUT(44, "output"), - TERMINAL_SCATTER(45, "scatter"), - TERMINAL_TASK(46, "task"), - TERMINAL_CALL(47, "call"), - TERMINAL_ASTERISK(48, "asterisk"), - TERMINAL_IDENTIFIER(49, "identifier"), - TERMINAL_IN(50, "in"), - TERMINAL_LTEQ(51, "lteq"), - TERMINAL_TYPE(52, "type"), - TERMINAL_COLON(53, "colon"), - TERMINAL_NOT_EQUAL(54, "not_equal"), - TERMINAL_PLUS(55, "plus"), + TERMINAL_INTEGER(13, "integer"), + TERMINAL_LSQUARE(14, "lsquare"), + TERMINAL_NOT(15, "not"), + TERMINAL_TASK(16, "task"), + TERMINAL_OBJECT(17, "object"), + TERMINAL_LBRACE(18, "lbrace"), + TERMINAL_RAW_COMMAND(19, "raw_command"), + TERMINAL_TYPE(20, "type"), + TERMINAL_NOT_EQUAL(21, "not_equal"), + TERMINAL_RUNTIME(22, "runtime"), + TERMINAL_CMD_PARAM_END(23, "cmd_param_end"), + TERMINAL_CMD_PART(24, "cmd_part"), + TERMINAL_CALL(25, "call"), + TERMINAL_DOT(26, "dot"), + TERMINAL_RBRACE(27, "rbrace"), + TERMINAL_IMPORT(28, "import"), + TERMINAL_STRING(29, "string"), + TERMINAL_COMMA(30, "comma"), + TERMINAL_EQUAL(31, "equal"), + TERMINAL_LPAREN(32, "lparen"), + TERMINAL_CMD_ATTR_HINT(33, "cmd_attr_hint"), + TERMINAL_DOUBLE_PIPE(34, "double_pipe"), + TERMINAL_PLUS(35, "plus"), + TERMINAL_DOUBLE_AMPERSAND(36, "double_ampersand"), + TERMINAL_SLASH(37, "slash"), + TERMINAL_FQN(38, "fqn"), + TERMINAL_WHILE(39, "while"), + TERMINAL_TYPE_E(40, "type_e"), + TERMINAL_COLON(41, "colon"), + TERMINAL_RAW_CMD_END(42, "raw_cmd_end"), + TERMINAL_INPUT(43, "input"), + TERMINAL_GT(44, "gt"), + TERMINAL_IF(45, "if"), + TERMINAL_META(46, "meta"), + TERMINAL_LTEQ(47, "lteq"), + TERMINAL_DOUBLE_EQUAL(48, "double_equal"), + TERMINAL_PERCENT(49, "percent"), + TERMINAL_CMD_PARAM_START(50, "cmd_param_start"), + TERMINAL_ASTERISK(51, "asterisk"), + TERMINAL_BOOLEAN(52, "boolean"), + TERMINAL_RAW_CMD_START(53, "raw_cmd_start"), + TERMINAL_FLOAT(54, "float"), + TERMINAL_OUTPUT(55, "output"), END_SENTINAL(-3, "END_SENTINAL"); private final int id; private final String string; @@ -559,896 +560,896 @@ public String invalidTerminal(String method, Terminal invalid) { } /* table[nonterminal][terminal] = rule */ private static final int[][] table = { - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 15, -1, -1, 18, -1, -1, 18, 18, 18, -1, 18, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, -1, -1 }, - { -1, -1, 39, 39, -1, 39, -1, 39, -1, -1, -1, 39, -1, -1, 36, -1, 39, 39, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, 39, -1, -1, -1, 39, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, 39 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64 }, - { -1, -1, 129, 129, -1, 129, -1, 129, -1, -1, -1, 129, 132, -1, -1, -1, 129, 129, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 129, -1, -1, 132, 129, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 129 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, 74, -1, -1, -1, -1, -1, -1, -1, -1, 76, 75, -1, 71, -1, -1, -1, -1, 72, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, 60, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 60, 60, -1, 60, -1, -1, 60, 60, 60, -1, 60, 60, -1, 60, -1, -1, -1, -1, 60, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, 57 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, -1, 78, 78, -1, -1, -1, -1, -1, -1, -1, -1, 78, 78, -1, 78, -1, -1, -1, -1, 78, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 16, -1, -1, 17, -1, -1, 17, 17, 17, -1, 17, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, 65, 65, -1, 65, -1, 65, -1, -1, -1, 65, -1, -1, -1, -1, 65, 65, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 65, -1, -1, -1, 65, -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 65 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 66, -1, -1, -1, -1, -1, -1, -1, -1, 66, 66, -1, 66, -1, -1, -1, -1, 66, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 142, 142, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, 142, 142, 142, -1, 142, 142, -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, 142, -1, -1, 142, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 142, -1, 142, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, 60, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 60, -1, 60, -1, -1, 60, -1, 60, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, 60, 60, -1, -1, 60, -1, 60, 60, -1, -1, -1, -1, -1, -1, -1, -1, 60 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 38, 38, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, 38, 38, 38, -1, 38, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, 38, 37, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 38, -1 }, + { -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 15, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, 18, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, 18 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 16, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, 17, -1, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, 17 }, + { -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, -1, 80, -1, -1, -1, -1, 80, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 80, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80 }, + { -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 67, -1, -1, -1, -1, -1, -1, -1, -1, 67, 67, -1, 67, -1, -1, -1, -1, 67, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, 28, 24, 26, -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1 }, - { -1, -1, 38, 38, -1, 38, -1, 38, -1, -1, -1, 38, -1, -1, 37, -1, 38, 38, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, 38, -1, -1, -1, 38, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, 38 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, 20, 20, 20, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1 }, - { -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 46 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 67, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 67, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67 }, + { -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, 19, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, 19 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, 58, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 39, 39, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 39, 39, 39, -1, 39, 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, 39, 36, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, 39, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, 100, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 129, 129, -1, -1, 129, -1, -1, -1, 132, -1, -1, -1, 132, 129, 129, 129, -1, 129, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, 129, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, 129, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 65, 65, -1, -1, 65, -1, -1, -1, -1, -1, -1, -1, -1, 65, 65, 65, -1, 65, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, 65, -1, -1, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, 65, -1 }, + { -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, 25 }, + { -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, 66, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 66, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, 142, 142, -1, 142, -1, 142, -1, -1, -1, 142, -1, -1, -1, 145, 142, 142, -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, 142, -1, -1, -1, 142, -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, 142 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, -1 }, - { -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, -1, 80, 80, -1, -1, -1, -1, -1, -1, -1, -1, 80, 80, -1, 80, -1, -1, -1, -1, 80, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 51, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, 19, 19, 19, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, 72, -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 76 }, + { -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, 20, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, 20 }, + { -1, -1, 77, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, -1, 78, -1, -1, -1, -1, 78, -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, 78, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, }; static { Map> map = new HashMap>(); map.put(56, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(57, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(58, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(59, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IMPORT, })); map.put(60, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_EQUAL, })); map.put(61, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(62, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(63, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_QMARK, + WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, })); map.put(64, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_TYPE_E, })); map.put(65, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, })); map.put(66, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_TYPE_E, })); map.put(67, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_EQUAL, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(68, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(69, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_EQUAL, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(70, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_CALL, })); map.put(71, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_QMARK, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(72, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(73, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_AS, + WdlTerminalIdentifier.TERMINAL_SCATTER, })); map.put(74, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(75, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_CMD_PART, })); map.put(76, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_TYPE_E, })); map.put(77, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(78, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_IF, })); map.put(79, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(80, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_DOT, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(81, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_TYPE_E, })); map.put(82, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_QMARK, })); map.put(83, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - })); - map.put(84, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); - map.put(85, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, + map.put(84, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_OUTPUT, })); + map.put(85, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_AS, + })); map.put(86, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(87, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_AS, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_CMD_PART, })); map.put(88, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, })); map.put(89, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PART, - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(90, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(91, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, })); map.put(92, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, - WdlTerminalIdentifier.TERMINAL_CMD_PART, + WdlTerminalIdentifier.TERMINAL_WHILE, })); map.put(93, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(94, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_FQN, })); map.put(95, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_IMPORT, })); map.put(96, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_AS, })); map.put(97, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_QMARK, })); map.put(98, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(99, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - })); - map.put(100, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_TYPE_E, })); - map.put(101, Arrays.asList(new TerminalIdentifier[] { + map.put(100, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, })); + map.put(101, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_EQUAL, + })); map.put(102, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(103, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_DOT, })); map.put(104, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(105, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, - WdlTerminalIdentifier.TERMINAL_CMD_PART, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(106, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(107, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(108, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(109, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - })); - map.put(110, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); - map.put(111, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, + map.put(110, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, })); - map.put(112, Arrays.asList(new TerminalIdentifier[] { + map.put(111, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_TYPE_E, })); + map.put(112, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + })); map.put(113, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_CMD_PART, })); map.put(114, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_TYPE_E, })); map.put(115, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_DOT, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(116, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(117, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_DOT, })); map.put(118, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_IMPORT, })); map.put(119, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_RUNTIME, })); map.put(120, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_FQN, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(121, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_AS, })); map.put(122, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - })); - map.put(123, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_TYPE_E, })); + map.put(123, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + })); map.put(124, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_IMPORT, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_META, })); map.put(125, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(126, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(127, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(128, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_AS, })); map.put(129, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_AS, + WdlTerminalIdentifier.TERMINAL_FQN, })); map.put(130, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_FQN, + WdlTerminalIdentifier.TERMINAL_COMMA, })); nonterminal_first = Collections.unmodifiableMap(map); } static { Map> map = new HashMap>(); map.put(56, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_INPUT, - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(57, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(58, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(59, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(60, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_INPUT, WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, })); map.put(61, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(62, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_RBRACE, + })); + map.put(63, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, - })); - map.put(63, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(64, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RSQUARE, - WdlTerminalIdentifier.TERMINAL_RPAREN, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(65, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(66, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_TYPE, - })); - map.put(67, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_INPUT, WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_INPUT, WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_CALL, + })); + map.put(67, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(68, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(69, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_RBRACE, + })); + map.put(70, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_INPUT, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); - map.put(70, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + map.put(71, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, WdlTerminalIdentifier.TERMINAL_INPUT, })); - map.put(71, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - })); map.put(72, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(73, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(74, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, - })); - map.put(75, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_GTEQ, + WdlTerminalIdentifier.TERMINAL_LT, WdlTerminalIdentifier.TERMINAL_RSQUARE, WdlTerminalIdentifier.TERMINAL_RPAREN, - })); - map.put(76, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_NOT_EQUAL, WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_INPUT, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - })); - map.put(77, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_END, + WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - })); - map.put(78, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_COMMA, - WdlTerminalIdentifier.TERMINAL_RBRACE, - })); - map.put(79, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, - })); - map.put(80, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, - WdlTerminalIdentifier.TERMINAL_RBRACE, - })); - map.put(81, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_DOUBLE_PIPE, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_DOUBLE_AMPERSAND, + WdlTerminalIdentifier.TERMINAL_SLASH, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_COLON, + WdlTerminalIdentifier.TERMINAL_GT, + WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_LTEQ, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_DOUBLE_EQUAL, + WdlTerminalIdentifier.TERMINAL_PERCENT, + WdlTerminalIdentifier.TERMINAL_ASTERISK, WdlTerminalIdentifier.TERMINAL_BOOLEAN, - WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_FLOAT, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); - map.put(82, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_IMPORT, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + map.put(75, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, + WdlTerminalIdentifier.TERMINAL_CMD_PART, })); - map.put(83, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + map.put(76, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + })); + map.put(77, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_OUTPUT, })); - map.put(84, Arrays.asList(new TerminalIdentifier[] { - })); - map.put(85, Arrays.asList(new TerminalIdentifier[] { + map.put(78, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); - map.put(86, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + map.put(79, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RPAREN, + WdlTerminalIdentifier.TERMINAL_RSQUARE, + })); + map.put(80, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RUNTIME, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_OUTPUT, })); - map.put(87, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, + map.put(81, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RBRACE, + })); + map.put(82, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + })); + map.put(83, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + })); + map.put(84, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, + })); + map.put(85, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_RBRACE, WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_OUTPUT, })); - map.put(88, Arrays.asList(new TerminalIdentifier[] { + map.put(86, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, })); - map.put(89, Arrays.asList(new TerminalIdentifier[] { + map.put(87, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, - WdlTerminalIdentifier.TERMINAL_CMD_PART, })); - map.put(90, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + map.put(88, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RUNTIME, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_OUTPUT, })); + map.put(89, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RBRACE, + })); + map.put(90, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RBRACE, + })); map.put(91, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, + WdlTerminalIdentifier.TERMINAL_CMD_PART, + })); + map.put(92, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_PERCENT, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_LT, - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_END, - WdlTerminalIdentifier.TERMINAL_DOUBLE_EQUAL, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_RPAREN, - WdlTerminalIdentifier.TERMINAL_DOUBLE_AMPERSAND, - WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_GT, - WdlTerminalIdentifier.TERMINAL_DOUBLE_PIPE, - WdlTerminalIdentifier.TERMINAL_SLASH, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, - WdlTerminalIdentifier.TERMINAL_GTEQ, - WdlTerminalIdentifier.TERMINAL_RSQUARE, - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_INPUT, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_COMMA, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_ASTERISK, - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LTEQ, WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_NOT_EQUAL, - WdlTerminalIdentifier.TERMINAL_COLON, - WdlTerminalIdentifier.TERMINAL_PLUS, - })); - map.put(92, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(93, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(94, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(95, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_TASK, WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(96, Arrays.asList(new TerminalIdentifier[] { - })); - map.put(97, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_IMPORT, WdlTerminalIdentifier.TERMINAL_TASK, WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); + map.put(97, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + })); map.put(98, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_RBRACE, - })); - map.put(99, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_RUNTIME, + })); + map.put(99, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(100, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, + })); + map.put(101, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RUNTIME, WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_OUTPUT, })); - map.put(101, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, - })); map.put(102, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(103, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(104, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(105, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, + WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_RPAREN, })); map.put(106, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(107, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(108, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(109, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_RBRACE, WdlTerminalIdentifier.TERMINAL_COMMA, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_QMARK, })); map.put(110, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, - })); - map.put(111, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + })); + map.put(111, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RSQUARE, })); map.put(112, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(113, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, })); map.put(114, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_INPUT, WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, })); map.put(115, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(116, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, - WdlTerminalIdentifier.TERMINAL_CMD_PART, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(117, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(118, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(119, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RUNTIME, WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(120, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(121, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(122, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_QMARK, })); map.put(123, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(124, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(125, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_TASK, WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(126, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(127, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(128, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_IMPORT, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(129, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_IMPORT, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(130, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RSQUARE, })); nonterminal_follow = Collections.unmodifiableMap(map); } @@ -1477,8 +1478,8 @@ public String invalidTerminal(String method, Terminal invalid) { map.put(7, Arrays.asList(new TerminalIdentifier[] { })); map.put(8, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_TASK, WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(9, Arrays.asList(new TerminalIdentifier[] { @@ -1511,18 +1512,18 @@ public String invalidTerminal(String method, Terminal invalid) { map.put(18, Arrays.asList(new TerminalIdentifier[] { })); map.put(19, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_RUNTIME, WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(20, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_RUNTIME, WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(21, Arrays.asList(new TerminalIdentifier[] { })); @@ -1547,12 +1548,12 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_META, })); map.put(29, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PART, WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_CMD_PART, })); map.put(30, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PART, WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_CMD_PART, })); map.put(31, Arrays.asList(new TerminalIdentifier[] { })); @@ -1652,37 +1653,37 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_PLUS, })); map.put(65, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(66, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(67, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(68, Arrays.asList(new TerminalIdentifier[] { })); @@ -1809,199 +1810,199 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(113, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(114, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(115, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(116, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(117, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(118, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(119, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, - })); - map.put(120, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, + })); + map.put(120, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(121, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(122, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(123, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(124, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(125, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(126, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_NOT, @@ -2013,19 +2014,19 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_DASH, })); map.put(129, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(130, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_COMMA, @@ -2060,19 +2061,19 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_LSQUARE, })); map.put(142, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_OBJECT, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_FLOAT, WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_FLOAT, })); map.put(143, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_COMMA, @@ -2182,158 +2183,158 @@ public String invalidTerminal(String method, Terminal invalid) { map.put(129, new ArrayList()); map.put(130, new ArrayList()); map.get(95).add("$_gen0 = $import $_gen1"); - map.get(68).add("$_gen1 = $import $_gen1"); - map.get(68).add("$_gen1 = :_empty"); + map.get(118).add("$_gen1 = $import $_gen1"); + map.get(118).add("$_gen1 = :_empty"); map.get(95).add("$_gen0 = :_empty"); - map.get(96).add("$_gen2 = $workflow_or_task $_gen3"); - map.get(84).add("$_gen3 = $workflow_or_task $_gen3"); - map.get(84).add("$_gen3 = :_empty"); - map.get(96).add("$_gen2 = :_empty"); - map.get(124).add("$document = $_gen0 $_gen2 -> Document( imports=$0, definitions=$1 )"); - map.get(125).add("$workflow_or_task = $workflow"); - map.get(125).add("$workflow_or_task = $task"); - map.get(129).add("$_gen4 = $import_namespace"); - map.get(129).add("$_gen4 = :_empty"); - map.get(82).add("$import = :import :string $_gen4 -> Import( uri=$1, namespace=$2 )"); - map.get(128).add("$import_namespace = :as :identifier -> $1"); - map.get(56).add("$_gen5 = $declaration $_gen6"); - map.get(76).add("$_gen6 = $declaration $_gen6"); - map.get(76).add("$_gen6 = :_empty"); - map.get(56).add("$_gen5 = :_empty"); - map.get(122).add("$_gen7 = $sections $_gen8"); - map.get(104).add("$_gen8 = $sections $_gen8"); - map.get(104).add("$_gen8 = :_empty"); - map.get(122).add("$_gen7 = :_empty"); - map.get(127).add("$task = :task :identifier :lbrace $_gen5 $_gen7 :rbrace -> Task( name=$1, declarations=$3, sections=$4 )"); - map.get(99).add("$sections = $command"); - map.get(99).add("$sections = $outputs"); - map.get(99).add("$sections = $runtime"); - map.get(99).add("$sections = $parameter_meta"); - map.get(99).add("$sections = $meta"); - map.get(92).add("$_gen9 = $command_part $_gen10"); - map.get(105).add("$_gen10 = $command_part $_gen10"); - map.get(105).add("$_gen10 = :_empty"); - map.get(92).add("$_gen9 = :_empty"); - map.get(83).add("$command = :raw_command :raw_cmd_start $_gen9 :raw_cmd_end -> RawCommand( parts=$2 )"); - map.get(89).add("$command_part = :cmd_part"); - map.get(89).add("$command_part = $cmd_param"); - map.get(62).add("$_gen11 = $cmd_param_kv $_gen12"); - map.get(101).add("$_gen12 = $cmd_param_kv $_gen12"); - map.get(101).add("$_gen12 = :_empty"); - map.get(62).add("$_gen11 = :_empty"); - map.get(116).add("$cmd_param = :cmd_param_start $_gen11 $e :cmd_param_end -> CommandParameter( attributes=$1, expr=$2 )"); - map.get(81).add("$cmd_param_kv = :cmd_attr_hint :identifier :equal $e -> CommandParameterAttr( key=$1, value=$3 )"); - map.get(123).add("$_gen13 = $output_kv $_gen14"); - map.get(112).add("$_gen14 = $output_kv $_gen14"); - map.get(112).add("$_gen14 = :_empty"); - map.get(123).add("$_gen13 = :_empty"); - map.get(102).add("$outputs = :output :lbrace $_gen13 :rbrace -> Outputs( attributes=$2 )"); - map.get(106).add("$output_kv = $type_e :identifier :equal $e -> Output( type=$0, var=$1, expression=$3 )"); - map.get(86).add("$runtime = :runtime $map -> Runtime( map=$1 )"); - map.get(72).add("$parameter_meta = :parameter_meta $map -> ParameterMeta( map=$1 )"); - map.get(90).add("$meta = :meta $map -> Meta( map=$1 )"); - map.get(117).add("$_gen15 = $kv $_gen16"); - map.get(79).add("$_gen16 = $kv $_gen16"); - map.get(79).add("$_gen16 = :_empty"); - map.get(117).add("$_gen15 = :_empty"); - map.get(77).add("$map = :lbrace $_gen15 :rbrace -> $1"); - map.get(113).add("$kv = :identifier :colon $e -> RuntimeAttribute( key=$0, value=$2 )"); - map.get(71).add("$_gen17 = $postfix_quantifier"); - map.get(71).add("$_gen17 = :_empty"); - map.get(69).add("$_gen18 = $setter"); - map.get(69).add("$_gen18 = :_empty"); - map.get(100).add("$declaration = $type_e $_gen17 :identifier $_gen18 -> Declaration( type=$0, postfix=$1, name=$2, expression=$3 )"); - map.get(67).add("$setter = :equal $e -> $1"); - map.get(63).add("$postfix_quantifier = :qmark"); - map.get(63).add("$postfix_quantifier = :plus"); - map.get(78).add("$map_kv = $e :colon $e -> MapLiteralKv( key=$0, value=$2 )"); - map.get(85).add("$_gen19 = $wf_body_element $_gen20"); - map.get(93).add("$_gen20 = $wf_body_element $_gen20"); - map.get(93).add("$_gen20 = :_empty"); - map.get(85).add("$_gen19 = :_empty"); - map.get(97).add("$workflow = :workflow :identifier :lbrace $_gen19 :rbrace -> Workflow( name=$1, body=$3 )"); - map.get(66).add("$wf_body_element = $call"); - map.get(66).add("$wf_body_element = $declaration"); - map.get(66).add("$wf_body_element = $while_loop"); - map.get(66).add("$wf_body_element = $if_stmt"); - map.get(66).add("$wf_body_element = $scatter"); - map.get(66).add("$wf_body_element = $wf_outputs"); - map.get(73).add("$_gen21 = $alias"); - map.get(73).add("$_gen21 = :_empty"); - map.get(114).add("$_gen22 = $call_body"); - map.get(114).add("$_gen22 = :_empty"); - map.get(57).add("$call = :call :fqn $_gen21 $_gen22 -> Call( task=$1, alias=$2, body=$3 )"); - map.get(119).add("$_gen23 = $call_input $_gen24"); - map.get(74).add("$_gen24 = $call_input $_gen24"); - map.get(74).add("$_gen24 = :_empty"); - map.get(119).add("$_gen23 = :_empty"); - map.get(60).add("$call_body = :lbrace $_gen5 $_gen23 :rbrace -> CallBody( declarations=$1, io=$2 )"); - map.get(126).add("$_gen25 = $mapping $_gen26"); - map.get(108).add("$_gen26 = :comma $mapping $_gen26"); - map.get(108).add("$_gen26 = :_empty"); - map.get(126).add("$_gen25 = :_empty"); - map.get(65).add("$call_input = :input :colon $_gen25 -> Inputs( map=$2 )"); - map.get(70).add("$mapping = :identifier :equal $e -> IOMapping( key=$0, value=$2 )"); - map.get(87).add("$alias = :as :identifier -> $1"); - map.get(120).add("$_gen27 = $wf_output $_gen28"); - map.get(98).add("$_gen28 = :comma $wf_output $_gen28"); - map.get(98).add("$_gen28 = :_empty"); - map.get(120).add("$_gen27 = :_empty"); - map.get(59).add("$wf_outputs = :output :lbrace $_gen27 :rbrace -> WorkflowOutputs( outputs=$2 )"); - map.get(80).add("$_gen29 = $wf_output_wildcard"); - map.get(80).add("$_gen29 = :_empty"); - map.get(130).add("$wf_output = :fqn $_gen29 -> WorkflowOutput( fqn=$0, wildcard=$1 )"); - map.get(115).add("$wf_output_wildcard = :dot :asterisk -> $1"); - map.get(107).add("$while_loop = :while :lparen $e :rparen :lbrace $_gen19 :rbrace -> WhileLoop( expression=$2, body=$5 )"); - map.get(58).add("$if_stmt = :if :lparen $e :rparen :lbrace $_gen19 :rbrace -> If( expression=$2, body=$5 )"); - map.get(111).add("$scatter = :scatter :lparen :identifier :in $e :rparen :lbrace $_gen19 :rbrace -> Scatter( item=$2, collection=$4, body=$7 )"); - map.get(118).add("$object_kv = :identifier :colon $e -> ObjectKV( key=$0, value=$2 )"); - map.get(103).add("$_gen30 = $type_e $_gen31"); - map.get(121).add("$_gen31 = :comma $type_e $_gen31"); - map.get(121).add("$_gen31 = :_empty"); - map.get(103).add("$_gen30 = :_empty"); - map.get(109).add("$type_e = :type <=> :lsquare $_gen30 :rsquare -> Type( name=$0, subtype=$2 )"); - map.get(109).add("$type_e = :type"); - map.get(91).add("$e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :plus $e -> Add( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :slash $e -> Divide( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = :not $e -> LogicalNot( expression=$1 )"); - map.get(91).add("$e = :plus $e -> UnaryPlus( expression=$1 )"); - map.get(91).add("$e = :dash $e -> UnaryNegation( expression=$1 )"); - map.get(64).add("$_gen32 = $e $_gen33"); - map.get(75).add("$_gen33 = :comma $e $_gen33"); - map.get(75).add("$_gen33 = :_empty"); - map.get(64).add("$_gen32 = :_empty"); - map.get(91).add("$e = :identifier <=> :lparen $_gen32 :rparen -> FunctionCall( name=$0, params=$2 )"); - map.get(91).add("$e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 )"); - map.get(91).add("$e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 )"); - map.get(61).add("$_gen34 = $object_kv $_gen35"); - map.get(88).add("$_gen35 = :comma $object_kv $_gen35"); - map.get(88).add("$_gen35 = :_empty"); - map.get(61).add("$_gen34 = :_empty"); - map.get(91).add("$e = :object :lbrace $_gen34 :rbrace -> ObjectLiteral( map=$2 )"); - map.get(91).add("$e = :lsquare $_gen32 :rsquare -> ArrayLiteral( values=$1 )"); - map.get(110).add("$_gen36 = $map_kv $_gen37"); - map.get(94).add("$_gen37 = :comma $map_kv $_gen37"); - map.get(94).add("$_gen37 = :_empty"); - map.get(110).add("$_gen36 = :_empty"); - map.get(91).add("$e = :lbrace $_gen36 :rbrace -> MapLiteral( map=$1 )"); - map.get(91).add("$e = :lparen $e :rparen -> $1"); - map.get(91).add("$e = :string"); - map.get(91).add("$e = :identifier"); - map.get(91).add("$e = :boolean"); - map.get(91).add("$e = :integer"); - map.get(91).add("$e = :float"); + map.get(112).add("$_gen2 = $workflow_or_task $_gen3"); + map.get(58).add("$_gen3 = $workflow_or_task $_gen3"); + map.get(58).add("$_gen3 = :_empty"); + map.get(112).add("$_gen2 = :_empty"); + map.get(107).add("$document = $_gen0 $_gen2 -> Document( imports=$0, definitions=$1 )"); + map.get(93).add("$workflow_or_task = $workflow"); + map.get(93).add("$workflow_or_task = $task"); + map.get(121).add("$_gen4 = $import_namespace"); + map.get(121).add("$_gen4 = :_empty"); + map.get(59).add("$import = :import :string $_gen4 -> Import( uri=$1, namespace=$2 )"); + map.get(96).add("$import_namespace = :as :identifier -> $1"); + map.get(64).add("$_gen5 = $declaration $_gen6"); + map.get(66).add("$_gen6 = $declaration $_gen6"); + map.get(66).add("$_gen6 = :_empty"); + map.get(64).add("$_gen5 = :_empty"); + map.get(89).add("$_gen7 = $sections $_gen8"); + map.get(127).add("$_gen8 = $sections $_gen8"); + map.get(127).add("$_gen8 = :_empty"); + map.get(89).add("$_gen7 = :_empty"); + map.get(83).add("$task = :task :identifier :lbrace $_gen5 $_gen7 :rbrace -> Task( name=$1, declarations=$3, sections=$4 )"); + map.get(110).add("$sections = $command"); + map.get(110).add("$sections = $outputs"); + map.get(110).add("$sections = $runtime"); + map.get(110).add("$sections = $parameter_meta"); + map.get(110).add("$sections = $meta"); + map.get(87).add("$_gen9 = $command_part $_gen10"); + map.get(113).add("$_gen10 = $command_part $_gen10"); + map.get(113).add("$_gen10 = :_empty"); + map.get(87).add("$_gen9 = :_empty"); + map.get(77).add("$command = :raw_command :raw_cmd_start $_gen9 :raw_cmd_end -> RawCommand( parts=$2 )"); + map.get(75).add("$command_part = :cmd_part"); + map.get(75).add("$command_part = $cmd_param"); + map.get(100).add("$_gen11 = $cmd_param_kv $_gen12"); + map.get(63).add("$_gen12 = $cmd_param_kv $_gen12"); + map.get(63).add("$_gen12 = :_empty"); + map.get(100).add("$_gen11 = :_empty"); + map.get(91).add("$cmd_param = :cmd_param_start $_gen11 $e :cmd_param_end -> CommandParameter( attributes=$1, expr=$2 )"); + map.get(65).add("$cmd_param_kv = :cmd_attr_hint :identifier :equal $e -> CommandParameterAttr( key=$1, value=$3 )"); + map.get(81).add("$_gen13 = $output_kv $_gen14"); + map.get(99).add("$_gen14 = $output_kv $_gen14"); + map.get(99).add("$_gen14 = :_empty"); + map.get(81).add("$_gen13 = :_empty"); + map.get(80).add("$outputs = :output :lbrace $_gen13 :rbrace -> Outputs( attributes=$2 )"); + map.get(76).add("$output_kv = $type_e :identifier :equal $e -> Output( type=$0, var=$1, expression=$3 )"); + map.get(119).add("$runtime = :runtime $map -> Runtime( map=$1 )"); + map.get(88).add("$parameter_meta = :parameter_meta $map -> ParameterMeta( map=$1 )"); + map.get(124).add("$meta = :meta $map -> Meta( map=$1 )"); + map.get(67).add("$_gen15 = $kv $_gen16"); + map.get(123).add("$_gen16 = $kv $_gen16"); + map.get(123).add("$_gen16 = :_empty"); + map.get(67).add("$_gen15 = :_empty"); + map.get(98).add("$map = :lbrace $_gen15 :rbrace -> $1"); + map.get(108).add("$kv = :identifier :colon $e -> RuntimeAttribute( key=$0, value=$2 )"); + map.get(97).add("$_gen17 = $postfix_quantifier"); + map.get(97).add("$_gen17 = :_empty"); + map.get(60).add("$_gen18 = $setter"); + map.get(60).add("$_gen18 = :_empty"); + map.get(114).add("$declaration = $type_e $_gen17 :identifier $_gen18 -> Declaration( type=$0, postfix=$1, name=$2, expression=$3 )"); + map.get(101).add("$setter = :equal $e -> $1"); + map.get(82).add("$postfix_quantifier = :qmark"); + map.get(82).add("$postfix_quantifier = :plus"); + map.get(109).add("$map_kv = $e :colon $e -> MapLiteralKv( key=$0, value=$2 )"); + map.get(115).add("$_gen19 = $wf_body_element $_gen20"); + map.get(84).add("$_gen20 = $wf_body_element $_gen20"); + map.get(84).add("$_gen20 = :_empty"); + map.get(115).add("$_gen19 = :_empty"); + map.get(125).add("$workflow = :workflow :identifier :lbrace $_gen19 :rbrace -> Workflow( name=$1, body=$3 )"); + map.get(126).add("$wf_body_element = $call"); + map.get(126).add("$wf_body_element = $declaration"); + map.get(126).add("$wf_body_element = $while_loop"); + map.get(126).add("$wf_body_element = $if_stmt"); + map.get(126).add("$wf_body_element = $scatter"); + map.get(126).add("$wf_body_element = $wf_outputs"); + map.get(128).add("$_gen21 = $alias"); + map.get(128).add("$_gen21 = :_empty"); + map.get(72).add("$_gen22 = $call_body"); + map.get(72).add("$_gen22 = :_empty"); + map.get(70).add("$call = :call :fqn $_gen21 $_gen22 -> Call( task=$1, alias=$2, body=$3 )"); + map.get(61).add("$_gen23 = $call_input $_gen24"); + map.get(86).add("$_gen24 = $call_input $_gen24"); + map.get(86).add("$_gen24 = :_empty"); + map.get(61).add("$_gen23 = :_empty"); + map.get(57).add("$call_body = :lbrace $_gen5 $_gen23 :rbrace -> CallBody( declarations=$1, io=$2 )"); + map.get(71).add("$_gen25 = $mapping $_gen26"); + map.get(68).add("$_gen26 = :comma $mapping $_gen26"); + map.get(68).add("$_gen26 = :_empty"); + map.get(71).add("$_gen25 = :_empty"); + map.get(106).add("$call_input = :input :colon $_gen25 -> Inputs( map=$2 )"); + map.get(102).add("$mapping = :identifier :equal $e -> IOMapping( key=$0, value=$2 )"); + map.get(85).add("$alias = :as :identifier -> $1"); + map.get(129).add("$_gen27 = $wf_output $_gen28"); + map.get(62).add("$_gen28 = :comma $wf_output $_gen28"); + map.get(62).add("$_gen28 = :_empty"); + map.get(129).add("$_gen27 = :_empty"); + map.get(116).add("$wf_outputs = :output :lbrace $_gen27 :rbrace -> WorkflowOutputs( outputs=$2 )"); + map.get(103).add("$_gen29 = $wf_output_wildcard"); + map.get(103).add("$_gen29 = :_empty"); + map.get(94).add("$wf_output = :fqn $_gen29 -> WorkflowOutput( fqn=$0, wildcard=$1 )"); + map.get(117).add("$wf_output_wildcard = :dot :asterisk -> $1"); + map.get(92).add("$while_loop = :while :lparen $e :rparen :lbrace $_gen19 :rbrace -> WhileLoop( expression=$2, body=$5 )"); + map.get(78).add("$if_stmt = :if :lparen $e :rparen :lbrace $_gen19 :rbrace -> If( expression=$2, body=$5 )"); + map.get(73).add("$scatter = :scatter :lparen :identifier :in $e :rparen :lbrace $_gen19 :rbrace -> Scatter( item=$2, collection=$4, body=$7 )"); + map.get(120).add("$object_kv = :identifier :colon $e -> ObjectKV( key=$0, value=$2 )"); + map.get(111).add("$_gen30 = $type_e $_gen31"); + map.get(130).add("$_gen31 = :comma $type_e $_gen31"); + map.get(130).add("$_gen31 = :_empty"); + map.get(111).add("$_gen30 = :_empty"); + map.get(122).add("$type_e = :type <=> :lsquare $_gen30 :rsquare -> Type( name=$0, subtype=$2 )"); + map.get(122).add("$type_e = :type"); + map.get(74).add("$e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :plus $e -> Add( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :slash $e -> Divide( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = :not $e -> LogicalNot( expression=$1 )"); + map.get(74).add("$e = :plus $e -> UnaryPlus( expression=$1 )"); + map.get(74).add("$e = :dash $e -> UnaryNegation( expression=$1 )"); + map.get(105).add("$_gen32 = $e $_gen33"); + map.get(79).add("$_gen33 = :comma $e $_gen33"); + map.get(79).add("$_gen33 = :_empty"); + map.get(105).add("$_gen32 = :_empty"); + map.get(74).add("$e = :identifier <=> :lparen $_gen32 :rparen -> FunctionCall( name=$0, params=$2 )"); + map.get(74).add("$e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 )"); + map.get(74).add("$e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 )"); + map.get(104).add("$_gen34 = $object_kv $_gen35"); + map.get(69).add("$_gen35 = :comma $object_kv $_gen35"); + map.get(69).add("$_gen35 = :_empty"); + map.get(104).add("$_gen34 = :_empty"); + map.get(74).add("$e = :object :lbrace $_gen34 :rbrace -> ObjectLiteral( map=$2 )"); + map.get(74).add("$e = :lsquare $_gen32 :rsquare -> ArrayLiteral( values=$1 )"); + map.get(56).add("$_gen36 = $map_kv $_gen37"); + map.get(90).add("$_gen37 = :comma $map_kv $_gen37"); + map.get(90).add("$_gen37 = :_empty"); + map.get(56).add("$_gen36 = :_empty"); + map.get(74).add("$e = :lbrace $_gen36 :rbrace -> MapLiteral( map=$1 )"); + map.get(74).add("$e = :lparen $e :rparen -> $1"); + map.get(74).add("$e = :string"); + map.get(74).add("$e = :identifier"); + map.get(74).add("$e = :boolean"); + map.get(74).add("$e = :integer"); + map.get(74).add("$e = :float"); nonterminal_rules = Collections.unmodifiableMap(map); } static { @@ -2534,29 +2535,29 @@ private static Terminal expect(ParserContext ctx, TerminalIdentifier expecting) private static Map prefix_binding_power_e; static { Map map = new HashMap(); - map.put(24, 2000); /* $e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 ) */ - map.put(13, 3000); /* $e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 ) */ - map.put(10, 4000); /* $e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 ) */ - map.put(54, 4000); /* $e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 ) */ - map.put(8, 5000); /* $e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 ) */ - map.put(51, 5000); /* $e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 ) */ - map.put(23, 5000); /* $e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 ) */ - map.put(30, 5000); /* $e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 ) */ - map.put(55, 6000); /* $e = $e :plus $e -> Add( lhs=$0, rhs=$2 ) */ - map.put(11, 6000); /* $e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 ) */ - map.put(48, 7000); /* $e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 ) */ - map.put(27, 7000); /* $e = $e :slash $e -> Divide( lhs=$0, rhs=$2 ) */ - map.put(4, 7000); /* $e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 ) */ - map.put(7, 9000); /* $e = :identifier <=> :lparen list(nt=$e, sep=:comma, min=0, sep_terminates=False) :rparen -> FunctionCall( name=$0, params=$2 ) */ - map.put(22, 10000); /* $e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 ) */ - map.put(39, 11000); /* $e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 ) */ + map.put(34, 2000); /* $e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 ) */ + map.put(36, 3000); /* $e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 ) */ + map.put(48, 4000); /* $e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 ) */ + map.put(21, 4000); /* $e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 ) */ + map.put(9, 5000); /* $e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 ) */ + map.put(47, 5000); /* $e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 ) */ + map.put(44, 5000); /* $e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 ) */ + map.put(10, 5000); /* $e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 ) */ + map.put(35, 6000); /* $e = $e :plus $e -> Add( lhs=$0, rhs=$2 ) */ + map.put(0, 6000); /* $e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 ) */ + map.put(51, 7000); /* $e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 ) */ + map.put(37, 7000); /* $e = $e :slash $e -> Divide( lhs=$0, rhs=$2 ) */ + map.put(49, 7000); /* $e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 ) */ + map.put(32, 9000); /* $e = :identifier <=> :lparen list(nt=$e, sep=:comma, min=0, sep_terminates=False) :rparen -> FunctionCall( name=$0, params=$2 ) */ + map.put(14, 10000); /* $e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 ) */ + map.put(26, 11000); /* $e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 ) */ infix_binding_power_e = Collections.unmodifiableMap(map); } static { Map map = new HashMap(); - map.put(36, 8000); /* $e = :not $e -> LogicalNot( expression=$1 ) */ - map.put(55, 8000); /* $e = :plus $e -> UnaryPlus( expression=$1 ) */ - map.put(11, 8000); /* $e = :dash $e -> UnaryNegation( expression=$1 ) */ + map.put(15, 8000); /* $e = :not $e -> LogicalNot( expression=$1 ) */ + map.put(35, 8000); /* $e = :plus $e -> UnaryPlus( expression=$1 ) */ + map.put(0, 8000); /* $e = :dash $e -> UnaryNegation( expression=$1 ) */ prefix_binding_power_e = Collections.unmodifiableMap(map); } static int get_infix_binding_power_e(int terminal_id) { @@ -2593,7 +2594,7 @@ public static ParseTree parse_e_internal(ParserContext ctx, int rbp) throws Synt return left; } private static ParseTree nud_e(ParserContext ctx) throws SyntaxError { - ParseTree tree = new ParseTree( new NonTerminal(91, "e") ); + ParseTree tree = new ParseTree( new NonTerminal(74, "e") ); Terminal current = ctx.tokens.current(); ctx.nonterminal = "e"; if (current == null) { @@ -2607,7 +2608,7 @@ else if (rule_first.get(126).contains(terminal_map.get(current.getId()))) { tree.setAstTransformation(new AstTransformNodeCreator("LogicalNot", parameters)); tree.setNudMorphemeCount(2); tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_NOT)); - tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(36))); + tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(15))); tree.setPrefix(true); } else if (rule_first.get(127).contains(terminal_map.get(current.getId()))) { @@ -2618,7 +2619,7 @@ else if (rule_first.get(127).contains(terminal_map.get(current.getId()))) { tree.setAstTransformation(new AstTransformNodeCreator("UnaryPlus", parameters)); tree.setNudMorphemeCount(2); tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_PLUS)); - tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(55))); + tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(35))); tree.setPrefix(true); } else if (rule_first.get(128).contains(terminal_map.get(current.getId()))) { @@ -2629,7 +2630,7 @@ else if (rule_first.get(128).contains(terminal_map.get(current.getId()))) { tree.setAstTransformation(new AstTransformNodeCreator("UnaryNegation", parameters)); tree.setNudMorphemeCount(2); tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_DASH)); - tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(11))); + tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(0))); tree.setPrefix(true); } else if (rule_first.get(133).contains(terminal_map.get(current.getId()))) { @@ -2734,11 +2735,11 @@ else if (rule_first.get(152).contains(terminal_map.get(current.getId()))) { return tree; } private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxError { - ParseTree tree = new ParseTree( new NonTerminal(91, "e") ); + ParseTree tree = new ParseTree( new NonTerminal(74, "e") ); Terminal current = ctx.tokens.current(); ctx.nonterminal = "e"; int modifier; - if (current.getId() == 24) { + if (current.getId() == 34) { /* $e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(113); LinkedHashMap parameters = new LinkedHashMap(); @@ -2750,10 +2751,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_DOUBLE_PIPE)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(24) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(34) - modifier)); return tree; } - if (current.getId() == 13) { + if (current.getId() == 36) { /* $e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(114); LinkedHashMap parameters = new LinkedHashMap(); @@ -2765,10 +2766,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_DOUBLE_AMPERSAND)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(13) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(36) - modifier)); return tree; } - if (current.getId() == 10) { + if (current.getId() == 48) { /* $e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(115); LinkedHashMap parameters = new LinkedHashMap(); @@ -2780,10 +2781,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_DOUBLE_EQUAL)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(10) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(48) - modifier)); return tree; } - if (current.getId() == 54) { + if (current.getId() == 21) { /* $e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(116); LinkedHashMap parameters = new LinkedHashMap(); @@ -2795,10 +2796,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_NOT_EQUAL)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(54) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(21) - modifier)); return tree; } - if (current.getId() == 8) { + if (current.getId() == 9) { /* $e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(117); LinkedHashMap parameters = new LinkedHashMap(); @@ -2810,10 +2811,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_LT)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(8) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(9) - modifier)); return tree; } - if (current.getId() == 51) { + if (current.getId() == 47) { /* $e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(118); LinkedHashMap parameters = new LinkedHashMap(); @@ -2825,10 +2826,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_LTEQ)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(51) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(47) - modifier)); return tree; } - if (current.getId() == 23) { + if (current.getId() == 44) { /* $e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(119); LinkedHashMap parameters = new LinkedHashMap(); @@ -2840,10 +2841,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_GT)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(23) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(44) - modifier)); return tree; } - if (current.getId() == 30) { + if (current.getId() == 10) { /* $e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(120); LinkedHashMap parameters = new LinkedHashMap(); @@ -2855,10 +2856,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_GTEQ)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(30) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(10) - modifier)); return tree; } - if (current.getId() == 55) { + if (current.getId() == 35) { /* $e = $e :plus $e -> Add( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(121); LinkedHashMap parameters = new LinkedHashMap(); @@ -2870,10 +2871,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_PLUS)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(55) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(35) - modifier)); return tree; } - if (current.getId() == 11) { + if (current.getId() == 0) { /* $e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(122); LinkedHashMap parameters = new LinkedHashMap(); @@ -2885,10 +2886,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_DASH)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(11) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(0) - modifier)); return tree; } - if (current.getId() == 48) { + if (current.getId() == 51) { /* $e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(123); LinkedHashMap parameters = new LinkedHashMap(); @@ -2900,10 +2901,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_ASTERISK)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(48) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(51) - modifier)); return tree; } - if (current.getId() == 27) { + if (current.getId() == 37) { /* $e = $e :slash $e -> Divide( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(124); LinkedHashMap parameters = new LinkedHashMap(); @@ -2915,10 +2916,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_SLASH)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(27) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(37) - modifier)); return tree; } - if (current.getId() == 4) { + if (current.getId() == 49) { /* $e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(125); LinkedHashMap parameters = new LinkedHashMap(); @@ -2930,10 +2931,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_PERCENT)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(4) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(49) - modifier)); return tree; } - if (current.getId() == 7) { + if (current.getId() == 32) { /* $e = :identifier <=> :lparen $_gen32 :rparen -> FunctionCall( name=$0, params=$2 ) */ ctx.rule = rules.get(133); LinkedHashMap parameters = new LinkedHashMap(); @@ -2946,7 +2947,7 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN)); return tree; } - if (current.getId() == 22) { + if (current.getId() == 14) { /* $e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(134); LinkedHashMap parameters = new LinkedHashMap(); @@ -2956,11 +2957,11 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(left); tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_LSQUARE)); modifier = 0; - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(22) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(14) - modifier)); tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_RSQUARE)); return tree; } - if (current.getId() == 39) { + if (current.getId() == 26) { /* $e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(135); LinkedHashMap parameters = new LinkedHashMap(); @@ -2978,7 +2979,7 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE private static Map prefix_binding_power_type_e; static { Map map = new HashMap(); - map.put(22, 1000); /* $type_e = :type <=> :lsquare list(nt=$type_e, sep=:comma, min=0, sep_terminates=False) :rsquare -> Type( name=$0, subtype=$2 ) */ + map.put(14, 1000); /* $type_e = :type <=> :lsquare list(nt=$type_e, sep=:comma, min=0, sep_terminates=False) :rsquare -> Type( name=$0, subtype=$2 ) */ infix_binding_power_type_e = Collections.unmodifiableMap(map); } static { @@ -3019,7 +3020,7 @@ public static ParseTree parse_type_e_internal(ParserContext ctx, int rbp) throws return left; } private static ParseTree nud_type_e(ParserContext ctx) throws SyntaxError { - ParseTree tree = new ParseTree( new NonTerminal(109, "type_e") ); + ParseTree tree = new ParseTree( new NonTerminal(122, "type_e") ); Terminal current = ctx.tokens.current(); ctx.nonterminal = "type_e"; if (current == null) { @@ -3042,11 +3043,11 @@ else if (rule_first.get(112).contains(terminal_map.get(current.getId()))) { return tree; } private static ParseTree led_type_e(ParseTree left, ParserContext ctx) throws SyntaxError { - ParseTree tree = new ParseTree( new NonTerminal(109, "type_e") ); + ParseTree tree = new ParseTree( new NonTerminal(122, "type_e") ); Terminal current = ctx.tokens.current(); ctx.nonterminal = "type_e"; int modifier; - if (current.getId() == 22) { + if (current.getId() == 14) { /* $type_e = :type <=> :lsquare $_gen30 :rsquare -> Type( name=$0, subtype=$2 ) */ ctx.rule = rules.get(111); LinkedHashMap parameters = new LinkedHashMap(); @@ -3061,17 +3062,17 @@ private static ParseTree led_type_e(ParseTree left, ParserContext ctx) throws Sy } return tree; } - public ParseTree parse__gen5(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen36(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen5(ctx); + return parse__gen36(ctx); } - private static ParseTree parse__gen5(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen36(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[0][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(56, "_gen5")); - ctx.nonterminal = "_gen5"; + ParseTree tree = new ParseTree( new NonTerminal(56, "_gen36")); + ctx.nonterminal = "_gen36"; tree.setList(true); if ( current != null && !nonterminal_first.get(56).contains(terminal_map.get(current.getId())) && @@ -3081,207 +3082,175 @@ private static ParseTree parse__gen5(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 15) { - /* $_gen5 = $declaration $_gen6 */ - ctx.rule = rules.get(15); + if (rule == 142) { + /* $_gen36 = $map_kv $_gen37 */ + ctx.rule = rules.get(142); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_declaration(ctx); + subtree = parse_map_kv(ctx); tree.add(subtree); - subtree = parse__gen6(ctx); + subtree = parse__gen37(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_call(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_call_body(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_call(ctx); + return parse_call_body(ctx); } - private static ParseTree parse_call(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_call_body(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[1][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(57, "call")); - ctx.nonterminal = "call"; + ParseTree tree = new ParseTree( new NonTerminal(57, "call_body")); + ctx.nonterminal = "call_body"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "call", + "call_body", nonterminal_first.get(57), nonterminal_rules.get(57) )); } - if (rule == 81) { - /* $call = :call :fqn $_gen21 $_gen22 -> Call( task=$1, alias=$2, body=$3 ) */ - ctx.rule = rules.get(81); + if (rule == 86) { + /* $call_body = :lbrace $_gen5 $_gen23 :rbrace -> CallBody( declarations=$1, io=$2 ) */ + ctx.rule = rules.get(86); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("task", 1); - parameters.put("alias", 2); - parameters.put("body", 3); - tree.setAstTransformation(new AstTransformNodeCreator("Call", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CALL); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_FQN); + parameters.put("declarations", 1); + parameters.put("io", 2); + tree.setAstTransformation(new AstTransformNodeCreator("CallBody", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); tree.add(next); - subtree = parse__gen21(ctx); + subtree = parse__gen5(ctx); tree.add(subtree); - subtree = parse__gen22(ctx); + subtree = parse__gen23(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "call", + "call_body", current, nonterminal_first.get(57), - rules.get(81) + rules.get(86) )); } - public ParseTree parse_if_stmt(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen3(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_if_stmt(ctx); + return parse__gen3(ctx); } - private static ParseTree parse_if_stmt(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen3(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[2][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(58, "if_stmt")); - ctx.nonterminal = "if_stmt"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(58, "_gen3")); + ctx.nonterminal = "_gen3"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(58).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(58).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "if_stmt", - nonterminal_first.get(58), - nonterminal_rules.get(58) - )); + return tree; } - if (rule == 104) { - /* $if_stmt = :if :lparen $e :rparen :lbrace $_gen19 :rbrace -> If( expression=$2, body=$5 ) */ - ctx.rule = rules.get(104); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("expression", 2); - parameters.put("body", 5); - tree.setAstTransformation(new AstTransformNodeCreator("If", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IF); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); - tree.add(next); - subtree = parse_e(ctx); + if (rule == 5) { + /* $_gen3 = $workflow_or_task $_gen3 */ + ctx.rule = rules.get(5); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_workflow_or_task(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); - tree.add(next); - subtree = parse__gen19(ctx); + subtree = parse__gen3(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "if_stmt", - current, - nonterminal_first.get(58), - rules.get(104) - )); + return tree; } - public ParseTree parse_wf_outputs(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_import(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_wf_outputs(ctx); + return parse_import(ctx); } - private static ParseTree parse_wf_outputs(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_import(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[3][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(59, "wf_outputs")); - ctx.nonterminal = "wf_outputs"; + ParseTree tree = new ParseTree( new NonTerminal(59, "import")); + ctx.nonterminal = "import"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "wf_outputs", + "import", nonterminal_first.get(59), nonterminal_rules.get(59) )); - } - if (rule == 98) { - /* $wf_outputs = :output :lbrace $_gen27 :rbrace -> WorkflowOutputs( outputs=$2 ) */ - ctx.rule = rules.get(98); + } + if (rule == 13) { + /* $import = :import :string $_gen4 -> Import( uri=$1, namespace=$2 ) */ + ctx.rule = rules.get(13); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("outputs", 2); - tree.setAstTransformation(new AstTransformNodeCreator("WorkflowOutputs", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_OUTPUT); + parameters.put("uri", 1); + parameters.put("namespace", 2); + tree.setAstTransformation(new AstTransformNodeCreator("Import", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IMPORT); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_STRING); tree.add(next); - subtree = parse__gen27(ctx); + subtree = parse__gen4(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "wf_outputs", + "import", current, nonterminal_first.get(59), - rules.get(98) + rules.get(13) )); } - public ParseTree parse_call_body(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen18(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_call_body(ctx); + return parse__gen18(ctx); } - private static ParseTree parse_call_body(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen18(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[4][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(60, "call_body")); - ctx.nonterminal = "call_body"; + ParseTree tree = new ParseTree( new NonTerminal(60, "_gen18")); + ctx.nonterminal = "_gen18"; tree.setList(false); + if ( current != null && + !nonterminal_first.get(60).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(60).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "call_body", - nonterminal_first.get(60), - nonterminal_rules.get(60) - )); + return tree; } - if (rule == 86) { - /* $call_body = :lbrace $_gen5 $_gen23 :rbrace -> CallBody( declarations=$1, io=$2 ) */ - ctx.rule = rules.get(86); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("declarations", 1); - parameters.put("io", 2); - tree.setAstTransformation(new AstTransformNodeCreator("CallBody", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); - tree.add(next); - subtree = parse__gen5(ctx); - tree.add(subtree); - subtree = parse__gen23(ctx); + if (rule == 59) { + /* $_gen18 = $setter */ + ctx.rule = rules.get(59); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_setter(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "call_body", - current, - nonterminal_first.get(60), - rules.get(86) - )); + return tree; } - public ParseTree parse__gen34(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen23(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen34(ctx); + return parse__gen23(ctx); } - private static ParseTree parse__gen34(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen23(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[5][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(61, "_gen34")); - ctx.nonterminal = "_gen34"; + ParseTree tree = new ParseTree( new NonTerminal(61, "_gen23")); + ctx.nonterminal = "_gen23"; tree.setList(true); if ( current != null && !nonterminal_first.get(61).contains(terminal_map.get(current.getId())) && @@ -3291,29 +3260,29 @@ private static ParseTree parse__gen34(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 136) { - /* $_gen34 = $object_kv $_gen35 */ - ctx.rule = rules.get(136); + if (rule == 82) { + /* $_gen23 = $call_input $_gen24 */ + ctx.rule = rules.get(82); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_object_kv(ctx); + subtree = parse_call_input(ctx); tree.add(subtree); - subtree = parse__gen35(ctx); + subtree = parse__gen24(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen11(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen28(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen11(ctx); + return parse__gen28(ctx); } - private static ParseTree parse__gen11(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen28(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[6][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(62, "_gen11")); - ctx.nonterminal = "_gen11"; + ParseTree tree = new ParseTree( new NonTerminal(62, "_gen28")); + ctx.nonterminal = "_gen28"; tree.setList(true); if ( current != null && !nonterminal_first.get(62).contains(terminal_map.get(current.getId())) && @@ -3323,71 +3292,64 @@ private static ParseTree parse__gen11(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 36) { - /* $_gen11 = $cmd_param_kv $_gen12 */ - ctx.rule = rules.get(36); + if (rule == 95) { + /* $_gen28 = :comma $wf_output $_gen28 */ + ctx.rule = rules.get(95); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_cmd_param_kv(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + tree.add(next); + tree.setListSeparator(next); + subtree = parse_wf_output(ctx); tree.add(subtree); - subtree = parse__gen12(ctx); + subtree = parse__gen28(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_postfix_quantifier(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen12(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_postfix_quantifier(ctx); + return parse__gen12(ctx); } - private static ParseTree parse_postfix_quantifier(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen12(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[7][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(63, "postfix_quantifier")); - ctx.nonterminal = "postfix_quantifier"; - tree.setList(false); - if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "postfix_quantifier", - nonterminal_first.get(63), - nonterminal_rules.get(63) - )); + ParseTree tree = new ParseTree( new NonTerminal(63, "_gen12")); + ctx.nonterminal = "_gen12"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(63).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(63).contains(terminal_map.get(current.getId())) ) { + return tree; } - if (rule == 63) { - /* $postfix_quantifier = :qmark */ - ctx.rule = rules.get(63); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_QMARK); - tree.add(next); + if (current == null) { return tree; } - else if (rule == 64) { - /* $postfix_quantifier = :plus */ - ctx.rule = rules.get(64); + if (rule == 37) { + /* $_gen12 = $cmd_param_kv $_gen12 */ + ctx.rule = rules.get(37); tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_PLUS); - tree.add(next); + subtree = parse_cmd_param_kv(ctx); + tree.add(subtree); + subtree = parse__gen12(ctx); + tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "postfix_quantifier", - current, - nonterminal_first.get(63), - rules.get(64) - )); + return tree; } - public ParseTree parse__gen32(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen5(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen32(ctx); + return parse__gen5(ctx); } - private static ParseTree parse__gen32(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen5(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[8][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(64, "_gen32")); - ctx.nonterminal = "_gen32"; + ParseTree tree = new ParseTree( new NonTerminal(64, "_gen5")); + ctx.nonterminal = "_gen5"; tree.setList(true); if ( current != null && !nonterminal_first.get(64).contains(terminal_map.get(current.getId())) && @@ -3397,400 +3359,531 @@ private static ParseTree parse__gen32(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 129) { - /* $_gen32 = $e $_gen33 */ - ctx.rule = rules.get(129); + if (rule == 15) { + /* $_gen5 = $declaration $_gen6 */ + ctx.rule = rules.get(15); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_e(ctx); + subtree = parse_declaration(ctx); tree.add(subtree); - subtree = parse__gen33(ctx); + subtree = parse__gen6(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_call_input(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_cmd_param_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_call_input(ctx); + return parse_cmd_param_kv(ctx); } - private static ParseTree parse_call_input(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_cmd_param_kv(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[9][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(65, "call_input")); - ctx.nonterminal = "call_input"; + ParseTree tree = new ParseTree( new NonTerminal(65, "cmd_param_kv")); + ctx.nonterminal = "cmd_param_kv"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "call_input", + "cmd_param_kv", nonterminal_first.get(65), nonterminal_rules.get(65) )); } - if (rule == 91) { - /* $call_input = :input :colon $_gen25 -> Inputs( map=$2 ) */ - ctx.rule = rules.get(91); + if (rule == 41) { + /* $cmd_param_kv = :cmd_attr_hint :identifier :equal $e -> CommandParameterAttr( key=$1, value=$3 ) */ + ctx.rule = rules.get(41); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("map", 2); - tree.setAstTransformation(new AstTransformNodeCreator("Inputs", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_INPUT); + parameters.put("key", 1); + parameters.put("value", 3); + tree.setAstTransformation(new AstTransformNodeCreator("CommandParameterAttr", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); tree.add(next); - subtree = parse__gen25(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); + tree.add(next); + subtree = parse_e(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "call_input", + "cmd_param_kv", current, nonterminal_first.get(65), - rules.get(91) + rules.get(41) )); } - public ParseTree parse_wf_body_element(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen6(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_wf_body_element(ctx); + return parse__gen6(ctx); } - private static ParseTree parse_wf_body_element(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen6(ParserContext ctx) throws SyntaxError { + Terminal current = ctx.tokens.current(); + Terminal next; + ParseTree subtree; + int rule = (current != null) ? table[10][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(66, "_gen6")); + ctx.nonterminal = "_gen6"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(66).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(66).contains(terminal_map.get(current.getId())) ) { + return tree; + } + if (current == null) { + return tree; + } + if (rule == 16) { + /* $_gen6 = $declaration $_gen6 */ + ctx.rule = rules.get(16); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_declaration(ctx); + tree.add(subtree); + subtree = parse__gen6(ctx); + tree.add(subtree); + return tree; + } + return tree; + } + public ParseTree parse__gen15(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); + return parse__gen15(ctx); + } + private static ParseTree parse__gen15(ParserContext ctx) throws SyntaxError { + Terminal current = ctx.tokens.current(); + Terminal next; + ParseTree subtree; + int rule = (current != null) ? table[11][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(67, "_gen15")); + ctx.nonterminal = "_gen15"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(67).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(67).contains(terminal_map.get(current.getId())) ) { + return tree; + } + if (current == null) { + return tree; + } + if (rule == 51) { + /* $_gen15 = $kv $_gen16 */ + ctx.rule = rules.get(51); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_kv(ctx); + tree.add(subtree); + subtree = parse__gen16(ctx); + tree.add(subtree); + return tree; + } + return tree; + } + public ParseTree parse__gen26(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); + return parse__gen26(ctx); + } + private static ParseTree parse__gen26(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[10][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(66, "wf_body_element")); - ctx.nonterminal = "wf_body_element"; - tree.setList(false); - if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "wf_body_element", - nonterminal_first.get(66), - nonterminal_rules.get(66) - )); - } - if (rule == 71) { - /* $wf_body_element = $call */ - ctx.rule = rules.get(71); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_call(ctx); - tree.add(subtree); + int rule = (current != null) ? table[12][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(68, "_gen26")); + ctx.nonterminal = "_gen26"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(68).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(68).contains(terminal_map.get(current.getId())) ) { return tree; } - else if (rule == 72) { - /* $wf_body_element = $declaration */ - ctx.rule = rules.get(72); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_declaration(ctx); - tree.add(subtree); + if (current == null) { return tree; } - else if (rule == 73) { - /* $wf_body_element = $while_loop */ - ctx.rule = rules.get(73); + if (rule == 88) { + /* $_gen26 = :comma $mapping $_gen26 */ + ctx.rule = rules.get(88); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_while_loop(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + tree.add(next); + tree.setListSeparator(next); + subtree = parse_mapping(ctx); + tree.add(subtree); + subtree = parse__gen26(ctx); tree.add(subtree); return tree; } - else if (rule == 74) { - /* $wf_body_element = $if_stmt */ - ctx.rule = rules.get(74); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_if_stmt(ctx); - tree.add(subtree); + return tree; + } + public ParseTree parse__gen35(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); + return parse__gen35(ctx); + } + private static ParseTree parse__gen35(ParserContext ctx) throws SyntaxError { + Terminal current = ctx.tokens.current(); + Terminal next; + ParseTree subtree; + int rule = (current != null) ? table[13][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(69, "_gen35")); + ctx.nonterminal = "_gen35"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(69).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(69).contains(terminal_map.get(current.getId())) ) { return tree; } - else if (rule == 75) { - /* $wf_body_element = $scatter */ - ctx.rule = rules.get(75); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_scatter(ctx); - tree.add(subtree); + if (current == null) { return tree; } - else if (rule == 76) { - /* $wf_body_element = $wf_outputs */ - ctx.rule = rules.get(76); + if (rule == 137) { + /* $_gen35 = :comma $object_kv $_gen35 */ + ctx.rule = rules.get(137); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_wf_outputs(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + tree.add(next); + tree.setListSeparator(next); + subtree = parse_object_kv(ctx); + tree.add(subtree); + subtree = parse__gen35(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "wf_body_element", - current, - nonterminal_first.get(66), - rules.get(76) - )); + return tree; } - public ParseTree parse_setter(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_call(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_setter(ctx); + return parse_call(ctx); } - private static ParseTree parse_setter(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_call(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[11][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(67, "setter")); - ctx.nonterminal = "setter"; + int rule = (current != null) ? table[14][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(70, "call")); + ctx.nonterminal = "call"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "setter", - nonterminal_first.get(67), - nonterminal_rules.get(67) + "call", + nonterminal_first.get(70), + nonterminal_rules.get(70) )); } - if (rule == 62) { - /* $setter = :equal $e -> $1 */ - ctx.rule = rules.get(62); - tree.setAstTransformation(new AstTransformSubstitution(1)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); + if (rule == 81) { + /* $call = :call :fqn $_gen21 $_gen22 -> Call( task=$1, alias=$2, body=$3 ) */ + ctx.rule = rules.get(81); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("task", 1); + parameters.put("alias", 2); + parameters.put("body", 3); + tree.setAstTransformation(new AstTransformNodeCreator("Call", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CALL); tree.add(next); - subtree = parse_e(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_FQN); + tree.add(next); + subtree = parse__gen21(ctx); + tree.add(subtree); + subtree = parse__gen22(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "setter", + "call", current, - nonterminal_first.get(67), - rules.get(62) + nonterminal_first.get(70), + rules.get(81) )); } - public ParseTree parse__gen1(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen25(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen1(ctx); + return parse__gen25(ctx); } - private static ParseTree parse__gen1(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen25(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[12][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(68, "_gen1")); - ctx.nonterminal = "_gen1"; + int rule = (current != null) ? table[15][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(71, "_gen25")); + ctx.nonterminal = "_gen25"; tree.setList(true); if ( current != null && - !nonterminal_first.get(68).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(68).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(71).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(71).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 1) { - /* $_gen1 = $import $_gen1 */ - ctx.rule = rules.get(1); + if (rule == 87) { + /* $_gen25 = $mapping $_gen26 */ + ctx.rule = rules.get(87); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_import(ctx); + subtree = parse_mapping(ctx); tree.add(subtree); - subtree = parse__gen1(ctx); + subtree = parse__gen26(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen18(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen22(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen18(ctx); + return parse__gen22(ctx); } - private static ParseTree parse__gen18(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen22(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[13][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(69, "_gen18")); - ctx.nonterminal = "_gen18"; + int rule = (current != null) ? table[16][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(72, "_gen22")); + ctx.nonterminal = "_gen22"; tree.setList(false); if ( current != null && - !nonterminal_first.get(69).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(69).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(72).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(72).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 59) { - /* $_gen18 = $setter */ - ctx.rule = rules.get(59); + if (rule == 79) { + /* $_gen22 = $call_body */ + ctx.rule = rules.get(79); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_setter(ctx); + subtree = parse_call_body(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_mapping(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_scatter(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_mapping(ctx); + return parse_scatter(ctx); } - private static ParseTree parse_mapping(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_scatter(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[14][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(70, "mapping")); - ctx.nonterminal = "mapping"; + int rule = (current != null) ? table[17][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(73, "scatter")); + ctx.nonterminal = "scatter"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "mapping", - nonterminal_first.get(70), - nonterminal_rules.get(70) + "scatter", + nonterminal_first.get(73), + nonterminal_rules.get(73) )); } - if (rule == 92) { - /* $mapping = :identifier :equal $e -> IOMapping( key=$0, value=$2 ) */ - ctx.rule = rules.get(92); + if (rule == 105) { + /* $scatter = :scatter :lparen :identifier :in $e :rparen :lbrace $_gen19 :rbrace -> Scatter( item=$2, collection=$4, body=$7 ) */ + ctx.rule = rules.get(105); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("key", 0); - parameters.put("value", 2); - tree.setAstTransformation(new AstTransformNodeCreator("IOMapping", parameters)); + parameters.put("item", 2); + parameters.put("collection", 4); + parameters.put("body", 7); + tree.setAstTransformation(new AstTransformNodeCreator("Scatter", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_SCATTER); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); + tree.add(next); next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IN); tree.add(next); subtree = parse_e(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen19(ctx); + tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "mapping", + "scatter", current, - nonterminal_first.get(70), - rules.get(92) + nonterminal_first.get(73), + rules.get(105) )); } - public ParseTree parse__gen17(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_command_part(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen17(ctx); + return parse_command_part(ctx); } - private static ParseTree parse__gen17(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_command_part(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[15][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(71, "_gen17")); - ctx.nonterminal = "_gen17"; + int rule = (current != null) ? table[19][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(75, "command_part")); + ctx.nonterminal = "command_part"; tree.setList(false); - if ( current != null && - !nonterminal_first.get(71).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(71).contains(terminal_map.get(current.getId())) ) { - return tree; - } if (current == null) { + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "command_part", + nonterminal_first.get(75), + nonterminal_rules.get(75) + )); + } + if (rule == 34) { + /* $command_part = :cmd_part */ + ctx.rule = rules.get(34); + tree.setAstTransformation(new AstTransformSubstitution(0)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PART); + tree.add(next); return tree; } - if (rule == 57) { - /* $_gen17 = $postfix_quantifier */ - ctx.rule = rules.get(57); + else if (rule == 35) { + /* $command_part = $cmd_param */ + ctx.rule = rules.get(35); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_postfix_quantifier(ctx); + subtree = parse_cmd_param(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "command_part", + current, + nonterminal_first.get(75), + rules.get(35) + )); } - public ParseTree parse_parameter_meta(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_output_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_parameter_meta(ctx); + return parse_output_kv(ctx); } - private static ParseTree parse_parameter_meta(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_output_kv(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[16][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(72, "parameter_meta")); - ctx.nonterminal = "parameter_meta"; + int rule = (current != null) ? table[20][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(76, "output_kv")); + ctx.nonterminal = "output_kv"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "parameter_meta", - nonterminal_first.get(72), - nonterminal_rules.get(72) + "output_kv", + nonterminal_first.get(76), + nonterminal_rules.get(76) )); } - if (rule == 49) { - /* $parameter_meta = :parameter_meta $map -> ParameterMeta( map=$1 ) */ - ctx.rule = rules.get(49); + if (rule == 47) { + /* $output_kv = $type_e :identifier :equal $e -> Output( type=$0, var=$1, expression=$3 ) */ + ctx.rule = rules.get(47); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("map", 1); - tree.setAstTransformation(new AstTransformNodeCreator("ParameterMeta", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_PARAMETER_META); + parameters.put("type", 0); + parameters.put("var", 1); + parameters.put("expression", 3); + tree.setAstTransformation(new AstTransformNodeCreator("Output", parameters)); + subtree = parse_type_e(ctx); + tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); tree.add(next); - subtree = parse_map(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); + tree.add(next); + subtree = parse_e(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "parameter_meta", + "output_kv", current, - nonterminal_first.get(72), - rules.get(49) + nonterminal_first.get(76), + rules.get(47) )); } - public ParseTree parse__gen21(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_command(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen21(ctx); + return parse_command(ctx); } - private static ParseTree parse__gen21(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_command(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[17][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(73, "_gen21")); - ctx.nonterminal = "_gen21"; + int rule = (current != null) ? table[21][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(77, "command")); + ctx.nonterminal = "command"; tree.setList(false); - if ( current != null && - !nonterminal_first.get(73).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(73).contains(terminal_map.get(current.getId())) ) { - return tree; - } if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "command", + nonterminal_first.get(77), + nonterminal_rules.get(77) + )); } - if (rule == 77) { - /* $_gen21 = $alias */ - ctx.rule = rules.get(77); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_alias(ctx); + if (rule == 33) { + /* $command = :raw_command :raw_cmd_start $_gen9 :raw_cmd_end -> RawCommand( parts=$2 ) */ + ctx.rule = rules.get(33); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("parts", 2); + tree.setAstTransformation(new AstTransformNodeCreator("RawCommand", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_CMD_START); + tree.add(next); + subtree = parse__gen9(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_CMD_END); + tree.add(next); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "command", + current, + nonterminal_first.get(77), + rules.get(33) + )); } - public ParseTree parse__gen24(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_if_stmt(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen24(ctx); + return parse_if_stmt(ctx); } - private static ParseTree parse__gen24(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_if_stmt(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[18][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(74, "_gen24")); - ctx.nonterminal = "_gen24"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(74).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(74).contains(terminal_map.get(current.getId())) ) { - return tree; - } + int rule = (current != null) ? table[22][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(78, "if_stmt")); + ctx.nonterminal = "if_stmt"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "if_stmt", + nonterminal_first.get(78), + nonterminal_rules.get(78) + )); } - if (rule == 83) { - /* $_gen24 = $call_input $_gen24 */ - ctx.rule = rules.get(83); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_call_input(ctx); + if (rule == 104) { + /* $if_stmt = :if :lparen $e :rparen :lbrace $_gen19 :rbrace -> If( expression=$2, body=$5 ) */ + ctx.rule = rules.get(104); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("expression", 2); + parameters.put("body", 5); + tree.setAstTransformation(new AstTransformNodeCreator("If", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IF); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); + tree.add(next); + subtree = parse_e(ctx); tree.add(subtree); - subtree = parse__gen24(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen19(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "if_stmt", + current, + nonterminal_first.get(78), + rules.get(104) + )); } public ParseTree parse__gen33(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); @@ -3800,13 +3893,13 @@ private static ParseTree parse__gen33(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[19][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(75, "_gen33")); + int rule = (current != null) ? table[23][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(79, "_gen33")); ctx.nonterminal = "_gen33"; tree.setList(true); if ( current != null && - !nonterminal_first.get(75).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(75).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(79).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(79).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { @@ -3827,1398 +3920,1388 @@ private static ParseTree parse__gen33(ParserContext ctx) throws SyntaxError { } return tree; } - public ParseTree parse__gen6(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_outputs(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen6(ctx); + return parse_outputs(ctx); } - private static ParseTree parse__gen6(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_outputs(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[20][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(76, "_gen6")); - ctx.nonterminal = "_gen6"; + int rule = (current != null) ? table[24][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(80, "outputs")); + ctx.nonterminal = "outputs"; + tree.setList(false); + if (current == null) { + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "outputs", + nonterminal_first.get(80), + nonterminal_rules.get(80) + )); + } + if (rule == 46) { + /* $outputs = :output :lbrace $_gen13 :rbrace -> Outputs( attributes=$2 ) */ + ctx.rule = rules.get(46); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("attributes", 2); + tree.setAstTransformation(new AstTransformNodeCreator("Outputs", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_OUTPUT); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen13(ctx); + tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); + return tree; + } + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "outputs", + current, + nonterminal_first.get(80), + rules.get(46) + )); + } + public ParseTree parse__gen13(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); + return parse__gen13(ctx); + } + private static ParseTree parse__gen13(ParserContext ctx) throws SyntaxError { + Terminal current = ctx.tokens.current(); + Terminal next; + ParseTree subtree; + int rule = (current != null) ? table[25][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(81, "_gen13")); + ctx.nonterminal = "_gen13"; tree.setList(true); if ( current != null && - !nonterminal_first.get(76).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(76).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(81).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(81).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 16) { - /* $_gen6 = $declaration $_gen6 */ - ctx.rule = rules.get(16); + if (rule == 42) { + /* $_gen13 = $output_kv $_gen14 */ + ctx.rule = rules.get(42); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_declaration(ctx); + subtree = parse_output_kv(ctx); tree.add(subtree); - subtree = parse__gen6(ctx); + subtree = parse__gen14(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_map(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_postfix_quantifier(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_map(ctx); + return parse_postfix_quantifier(ctx); } - private static ParseTree parse_map(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_postfix_quantifier(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[21][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(77, "map")); - ctx.nonterminal = "map"; + int rule = (current != null) ? table[26][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(82, "postfix_quantifier")); + ctx.nonterminal = "postfix_quantifier"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "map", - nonterminal_first.get(77), - nonterminal_rules.get(77) + "postfix_quantifier", + nonterminal_first.get(82), + nonterminal_rules.get(82) )); } - if (rule == 55) { - /* $map = :lbrace $_gen15 :rbrace -> $1 */ - ctx.rule = rules.get(55); - tree.setAstTransformation(new AstTransformSubstitution(1)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + if (rule == 63) { + /* $postfix_quantifier = :qmark */ + ctx.rule = rules.get(63); + tree.setAstTransformation(new AstTransformSubstitution(0)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_QMARK); tree.add(next); - subtree = parse__gen15(ctx); - tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + return tree; + } + else if (rule == 64) { + /* $postfix_quantifier = :plus */ + ctx.rule = rules.get(64); + tree.setAstTransformation(new AstTransformSubstitution(0)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_PLUS); tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "map", + "postfix_quantifier", current, - nonterminal_first.get(77), - rules.get(55) + nonterminal_first.get(82), + rules.get(64) )); } - public ParseTree parse_map_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_task(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_map_kv(ctx); + return parse_task(ctx); } - private static ParseTree parse_map_kv(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_task(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[22][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(78, "map_kv")); - ctx.nonterminal = "map_kv"; + int rule = (current != null) ? table[27][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(83, "task")); + ctx.nonterminal = "task"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "map_kv", - nonterminal_first.get(78), - nonterminal_rules.get(78) + "task", + nonterminal_first.get(83), + nonterminal_rules.get(83) )); } - if (rule == 65) { - /* $map_kv = $e :colon $e -> MapLiteralKv( key=$0, value=$2 ) */ - ctx.rule = rules.get(65); + if (rule == 23) { + /* $task = :task :identifier :lbrace $_gen5 $_gen7 :rbrace -> Task( name=$1, declarations=$3, sections=$4 ) */ + ctx.rule = rules.get(23); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("key", 0); - parameters.put("value", 2); - tree.setAstTransformation(new AstTransformNodeCreator("MapLiteralKv", parameters)); - subtree = parse_e(ctx); - tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); + parameters.put("name", 1); + parameters.put("declarations", 3); + parameters.put("sections", 4); + tree.setAstTransformation(new AstTransformNodeCreator("Task", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_TASK); tree.add(next); - subtree = parse_e(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen5(ctx); + tree.add(subtree); + subtree = parse__gen7(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "map_kv", + "task", current, - nonterminal_first.get(78), - rules.get(65) + nonterminal_first.get(83), + rules.get(23) )); } - public ParseTree parse__gen16(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen20(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen16(ctx); + return parse__gen20(ctx); } - private static ParseTree parse__gen16(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen20(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[23][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(79, "_gen16")); - ctx.nonterminal = "_gen16"; + int rule = (current != null) ? table[28][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(84, "_gen20")); + ctx.nonterminal = "_gen20"; tree.setList(true); if ( current != null && - !nonterminal_first.get(79).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(79).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(84).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(84).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 52) { - /* $_gen16 = $kv $_gen16 */ - ctx.rule = rules.get(52); + if (rule == 67) { + /* $_gen20 = $wf_body_element $_gen20 */ + ctx.rule = rules.get(67); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_kv(ctx); + subtree = parse_wf_body_element(ctx); tree.add(subtree); - subtree = parse__gen16(ctx); + subtree = parse__gen20(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen29(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_alias(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen29(ctx); + return parse_alias(ctx); } - private static ParseTree parse__gen29(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_alias(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[24][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(80, "_gen29")); - ctx.nonterminal = "_gen29"; + int rule = (current != null) ? table[29][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(85, "alias")); + ctx.nonterminal = "alias"; tree.setList(false); - if ( current != null && - !nonterminal_first.get(80).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(80).contains(terminal_map.get(current.getId())) ) { - return tree; - } if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "alias", + nonterminal_first.get(85), + nonterminal_rules.get(85) + )); } - if (rule == 99) { - /* $_gen29 = $wf_output_wildcard */ - ctx.rule = rules.get(99); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_wf_output_wildcard(ctx); - tree.add(subtree); + if (rule == 93) { + /* $alias = :as :identifier -> $1 */ + ctx.rule = rules.get(93); + tree.setAstTransformation(new AstTransformSubstitution(1)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_AS); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "alias", + current, + nonterminal_first.get(85), + rules.get(93) + )); } - public ParseTree parse_cmd_param_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen24(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_cmd_param_kv(ctx); + return parse__gen24(ctx); } - private static ParseTree parse_cmd_param_kv(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen24(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[25][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(81, "cmd_param_kv")); - ctx.nonterminal = "cmd_param_kv"; - tree.setList(false); + int rule = (current != null) ? table[30][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(86, "_gen24")); + ctx.nonterminal = "_gen24"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(86).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(86).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "cmd_param_kv", - nonterminal_first.get(81), - nonterminal_rules.get(81) - )); + return tree; } - if (rule == 41) { - /* $cmd_param_kv = :cmd_attr_hint :identifier :equal $e -> CommandParameterAttr( key=$1, value=$3 ) */ - ctx.rule = rules.get(41); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("key", 1); - parameters.put("value", 3); - tree.setAstTransformation(new AstTransformNodeCreator("CommandParameterAttr", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); - tree.add(next); - subtree = parse_e(ctx); + if (rule == 83) { + /* $_gen24 = $call_input $_gen24 */ + ctx.rule = rules.get(83); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_call_input(ctx); + tree.add(subtree); + subtree = parse__gen24(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "cmd_param_kv", - current, - nonterminal_first.get(81), - rules.get(41) - )); + return tree; } - public ParseTree parse_import(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen9(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_import(ctx); + return parse__gen9(ctx); } - private static ParseTree parse_import(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen9(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[26][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(82, "import")); - ctx.nonterminal = "import"; - tree.setList(false); + int rule = (current != null) ? table[31][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(87, "_gen9")); + ctx.nonterminal = "_gen9"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(87).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(87).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "import", - nonterminal_first.get(82), - nonterminal_rules.get(82) - )); + return tree; } - if (rule == 13) { - /* $import = :import :string $_gen4 -> Import( uri=$1, namespace=$2 ) */ - ctx.rule = rules.get(13); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("uri", 1); - parameters.put("namespace", 2); - tree.setAstTransformation(new AstTransformNodeCreator("Import", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IMPORT); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_STRING); - tree.add(next); - subtree = parse__gen4(ctx); + if (rule == 29) { + /* $_gen9 = $command_part $_gen10 */ + ctx.rule = rules.get(29); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_command_part(ctx); + tree.add(subtree); + subtree = parse__gen10(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "import", - current, - nonterminal_first.get(82), - rules.get(13) - )); + return tree; } - public ParseTree parse_command(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_parameter_meta(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_command(ctx); + return parse_parameter_meta(ctx); } - private static ParseTree parse_command(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_parameter_meta(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[27][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(83, "command")); - ctx.nonterminal = "command"; + int rule = (current != null) ? table[32][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(88, "parameter_meta")); + ctx.nonterminal = "parameter_meta"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "command", - nonterminal_first.get(83), - nonterminal_rules.get(83) + "parameter_meta", + nonterminal_first.get(88), + nonterminal_rules.get(88) )); } - if (rule == 33) { - /* $command = :raw_command :raw_cmd_start $_gen9 :raw_cmd_end -> RawCommand( parts=$2 ) */ - ctx.rule = rules.get(33); + if (rule == 49) { + /* $parameter_meta = :parameter_meta $map -> ParameterMeta( map=$1 ) */ + ctx.rule = rules.get(49); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("parts", 2); - tree.setAstTransformation(new AstTransformNodeCreator("RawCommand", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_CMD_START); + parameters.put("map", 1); + tree.setAstTransformation(new AstTransformNodeCreator("ParameterMeta", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_PARAMETER_META); tree.add(next); - subtree = parse__gen9(ctx); + subtree = parse_map(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_CMD_END); - tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "command", + "parameter_meta", current, - nonterminal_first.get(83), - rules.get(33) + nonterminal_first.get(88), + rules.get(49) )); } - public ParseTree parse__gen3(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen7(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen3(ctx); + return parse__gen7(ctx); } - private static ParseTree parse__gen3(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen7(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[28][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(84, "_gen3")); - ctx.nonterminal = "_gen3"; + int rule = (current != null) ? table[33][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(89, "_gen7")); + ctx.nonterminal = "_gen7"; tree.setList(true); if ( current != null && - !nonterminal_first.get(84).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(84).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(89).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(89).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 5) { - /* $_gen3 = $workflow_or_task $_gen3 */ - ctx.rule = rules.get(5); + if (rule == 19) { + /* $_gen7 = $sections $_gen8 */ + ctx.rule = rules.get(19); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_workflow_or_task(ctx); + subtree = parse_sections(ctx); tree.add(subtree); - subtree = parse__gen3(ctx); + subtree = parse__gen8(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen19(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen37(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen19(ctx); + return parse__gen37(ctx); } - private static ParseTree parse__gen19(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen37(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[29][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(85, "_gen19")); - ctx.nonterminal = "_gen19"; + int rule = (current != null) ? table[34][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(90, "_gen37")); + ctx.nonterminal = "_gen37"; tree.setList(true); if ( current != null && - !nonterminal_first.get(85).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(85).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(90).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(90).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; - } - if (rule == 66) { - /* $_gen19 = $wf_body_element $_gen20 */ - ctx.rule = rules.get(66); + } + if (rule == 143) { + /* $_gen37 = :comma $map_kv $_gen37 */ + ctx.rule = rules.get(143); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_wf_body_element(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + tree.add(next); + tree.setListSeparator(next); + subtree = parse_map_kv(ctx); tree.add(subtree); - subtree = parse__gen20(ctx); + subtree = parse__gen37(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_runtime(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_cmd_param(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_runtime(ctx); + return parse_cmd_param(ctx); } - private static ParseTree parse_runtime(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_cmd_param(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[30][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(86, "runtime")); - ctx.nonterminal = "runtime"; + int rule = (current != null) ? table[35][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(91, "cmd_param")); + ctx.nonterminal = "cmd_param"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "runtime", - nonterminal_first.get(86), - nonterminal_rules.get(86) + "cmd_param", + nonterminal_first.get(91), + nonterminal_rules.get(91) )); } - if (rule == 48) { - /* $runtime = :runtime $map -> Runtime( map=$1 ) */ - ctx.rule = rules.get(48); + if (rule == 40) { + /* $cmd_param = :cmd_param_start $_gen11 $e :cmd_param_end -> CommandParameter( attributes=$1, expr=$2 ) */ + ctx.rule = rules.get(40); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("map", 1); - tree.setAstTransformation(new AstTransformNodeCreator("Runtime", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RUNTIME); + parameters.put("attributes", 1); + parameters.put("expr", 2); + tree.setAstTransformation(new AstTransformNodeCreator("CommandParameter", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START); tree.add(next); - subtree = parse_map(ctx); + subtree = parse__gen11(ctx); + tree.add(subtree); + subtree = parse_e(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PARAM_END); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "runtime", + "cmd_param", current, - nonterminal_first.get(86), - rules.get(48) + nonterminal_first.get(91), + rules.get(40) )); } - public ParseTree parse_alias(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_while_loop(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_alias(ctx); + return parse_while_loop(ctx); } - private static ParseTree parse_alias(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_while_loop(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[31][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(87, "alias")); - ctx.nonterminal = "alias"; + int rule = (current != null) ? table[36][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(92, "while_loop")); + ctx.nonterminal = "while_loop"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "alias", - nonterminal_first.get(87), - nonterminal_rules.get(87) + "while_loop", + nonterminal_first.get(92), + nonterminal_rules.get(92) )); } - if (rule == 93) { - /* $alias = :as :identifier -> $1 */ - ctx.rule = rules.get(93); - tree.setAstTransformation(new AstTransformSubstitution(1)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_AS); + if (rule == 103) { + /* $while_loop = :while :lparen $e :rparen :lbrace $_gen19 :rbrace -> WhileLoop( expression=$2, body=$5 ) */ + ctx.rule = rules.get(103); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("expression", 2); + parameters.put("body", 5); + tree.setAstTransformation(new AstTransformNodeCreator("WhileLoop", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_WHILE); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); + tree.add(next); + subtree = parse_e(ctx); + tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen19(ctx); + tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "alias", + "while_loop", current, - nonterminal_first.get(87), - rules.get(93) + nonterminal_first.get(92), + rules.get(103) )); } - public ParseTree parse__gen35(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { - ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen35(ctx); - } - private static ParseTree parse__gen35(ParserContext ctx) throws SyntaxError { - Terminal current = ctx.tokens.current(); - Terminal next; - ParseTree subtree; - int rule = (current != null) ? table[32][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(88, "_gen35")); - ctx.nonterminal = "_gen35"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(88).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(88).contains(terminal_map.get(current.getId())) ) { - return tree; - } - if (current == null) { - return tree; - } - if (rule == 137) { - /* $_gen35 = :comma $object_kv $_gen35 */ - ctx.rule = rules.get(137); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); - tree.add(next); - tree.setListSeparator(next); - subtree = parse_object_kv(ctx); - tree.add(subtree); - subtree = parse__gen35(ctx); - tree.add(subtree); - return tree; - } - return tree; - } - public ParseTree parse_command_part(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_workflow_or_task(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_command_part(ctx); + return parse_workflow_or_task(ctx); } - private static ParseTree parse_command_part(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_workflow_or_task(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[33][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(89, "command_part")); - ctx.nonterminal = "command_part"; + int rule = (current != null) ? table[37][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(93, "workflow_or_task")); + ctx.nonterminal = "workflow_or_task"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "command_part", - nonterminal_first.get(89), - nonterminal_rules.get(89) + "workflow_or_task", + nonterminal_first.get(93), + nonterminal_rules.get(93) )); } - if (rule == 34) { - /* $command_part = :cmd_part */ - ctx.rule = rules.get(34); + if (rule == 9) { + /* $workflow_or_task = $workflow */ + ctx.rule = rules.get(9); tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PART); - tree.add(next); + subtree = parse_workflow(ctx); + tree.add(subtree); return tree; } - else if (rule == 35) { - /* $command_part = $cmd_param */ - ctx.rule = rules.get(35); + else if (rule == 10) { + /* $workflow_or_task = $task */ + ctx.rule = rules.get(10); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_cmd_param(ctx); + subtree = parse_task(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "command_part", + "workflow_or_task", current, - nonterminal_first.get(89), - rules.get(35) + nonterminal_first.get(93), + rules.get(10) )); } - public ParseTree parse_meta(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_wf_output(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_meta(ctx); + return parse_wf_output(ctx); } - private static ParseTree parse_meta(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_wf_output(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[34][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(90, "meta")); - ctx.nonterminal = "meta"; + int rule = (current != null) ? table[38][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(94, "wf_output")); + ctx.nonterminal = "wf_output"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "meta", - nonterminal_first.get(90), - nonterminal_rules.get(90) + "wf_output", + nonterminal_first.get(94), + nonterminal_rules.get(94) )); } - if (rule == 50) { - /* $meta = :meta $map -> Meta( map=$1 ) */ - ctx.rule = rules.get(50); + if (rule == 101) { + /* $wf_output = :fqn $_gen29 -> WorkflowOutput( fqn=$0, wildcard=$1 ) */ + ctx.rule = rules.get(101); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("map", 1); - tree.setAstTransformation(new AstTransformNodeCreator("Meta", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_META); + parameters.put("fqn", 0); + parameters.put("wildcard", 1); + tree.setAstTransformation(new AstTransformNodeCreator("WorkflowOutput", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_FQN); tree.add(next); - subtree = parse_map(ctx); + subtree = parse__gen29(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "meta", + "wf_output", current, - nonterminal_first.get(90), - rules.get(50) + nonterminal_first.get(94), + rules.get(101) )); } - public ParseTree parse__gen9(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen0(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen9(ctx); + return parse__gen0(ctx); } - private static ParseTree parse__gen9(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen0(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[36][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(92, "_gen9")); - ctx.nonterminal = "_gen9"; + int rule = (current != null) ? table[39][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(95, "_gen0")); + ctx.nonterminal = "_gen0"; tree.setList(true); if ( current != null && - !nonterminal_first.get(92).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(92).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(95).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(95).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 29) { - /* $_gen9 = $command_part $_gen10 */ - ctx.rule = rules.get(29); + if (rule == 0) { + /* $_gen0 = $import $_gen1 */ + ctx.rule = rules.get(0); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_command_part(ctx); + subtree = parse_import(ctx); tree.add(subtree); - subtree = parse__gen10(ctx); + subtree = parse__gen1(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen20(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_import_namespace(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen20(ctx); + return parse_import_namespace(ctx); } - private static ParseTree parse__gen20(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_import_namespace(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[37][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(93, "_gen20")); - ctx.nonterminal = "_gen20"; - tree.setList(true); + int rule = (current != null) ? table[40][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(96, "import_namespace")); + ctx.nonterminal = "import_namespace"; + tree.setList(false); + if (current == null) { + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "import_namespace", + nonterminal_first.get(96), + nonterminal_rules.get(96) + )); + } + if (rule == 14) { + /* $import_namespace = :as :identifier -> $1 */ + ctx.rule = rules.get(14); + tree.setAstTransformation(new AstTransformSubstitution(1)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_AS); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); + return tree; + } + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "import_namespace", + current, + nonterminal_first.get(96), + rules.get(14) + )); + } + public ParseTree parse__gen17(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); + return parse__gen17(ctx); + } + private static ParseTree parse__gen17(ParserContext ctx) throws SyntaxError { + Terminal current = ctx.tokens.current(); + Terminal next; + ParseTree subtree; + int rule = (current != null) ? table[41][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(97, "_gen17")); + ctx.nonterminal = "_gen17"; + tree.setList(false); if ( current != null && - !nonterminal_first.get(93).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(93).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(97).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(97).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 67) { - /* $_gen20 = $wf_body_element $_gen20 */ - ctx.rule = rules.get(67); + if (rule == 57) { + /* $_gen17 = $postfix_quantifier */ + ctx.rule = rules.get(57); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_wf_body_element(ctx); - tree.add(subtree); - subtree = parse__gen20(ctx); + subtree = parse_postfix_quantifier(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen37(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_map(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen37(ctx); + return parse_map(ctx); } - private static ParseTree parse__gen37(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_map(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[38][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(94, "_gen37")); - ctx.nonterminal = "_gen37"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(94).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(94).contains(terminal_map.get(current.getId())) ) { - return tree; - } + int rule = (current != null) ? table[42][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(98, "map")); + ctx.nonterminal = "map"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "map", + nonterminal_first.get(98), + nonterminal_rules.get(98) + )); } - if (rule == 143) { - /* $_gen37 = :comma $map_kv $_gen37 */ - ctx.rule = rules.get(143); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + if (rule == 55) { + /* $map = :lbrace $_gen15 :rbrace -> $1 */ + ctx.rule = rules.get(55); + tree.setAstTransformation(new AstTransformSubstitution(1)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); tree.add(next); - tree.setListSeparator(next); - subtree = parse_map_kv(ctx); - tree.add(subtree); - subtree = parse__gen37(ctx); + subtree = parse__gen15(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "map", + current, + nonterminal_first.get(98), + rules.get(55) + )); } - public ParseTree parse__gen0(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen14(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen0(ctx); + return parse__gen14(ctx); } - private static ParseTree parse__gen0(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen14(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[39][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(95, "_gen0")); - ctx.nonterminal = "_gen0"; + int rule = (current != null) ? table[43][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(99, "_gen14")); + ctx.nonterminal = "_gen14"; tree.setList(true); if ( current != null && - !nonterminal_first.get(95).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(95).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(99).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(99).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 0) { - /* $_gen0 = $import $_gen1 */ - ctx.rule = rules.get(0); + if (rule == 43) { + /* $_gen14 = $output_kv $_gen14 */ + ctx.rule = rules.get(43); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_import(ctx); + subtree = parse_output_kv(ctx); tree.add(subtree); - subtree = parse__gen1(ctx); + subtree = parse__gen14(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen2(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen11(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen2(ctx); + return parse__gen11(ctx); } - private static ParseTree parse__gen2(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen11(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[40][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(96, "_gen2")); - ctx.nonterminal = "_gen2"; + int rule = (current != null) ? table[44][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(100, "_gen11")); + ctx.nonterminal = "_gen11"; tree.setList(true); if ( current != null && - !nonterminal_first.get(96).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(96).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(100).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(100).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 4) { - /* $_gen2 = $workflow_or_task $_gen3 */ - ctx.rule = rules.get(4); + if (rule == 36) { + /* $_gen11 = $cmd_param_kv $_gen12 */ + ctx.rule = rules.get(36); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_workflow_or_task(ctx); + subtree = parse_cmd_param_kv(ctx); tree.add(subtree); - subtree = parse__gen3(ctx); + subtree = parse__gen12(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_workflow(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_setter(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_workflow(ctx); + return parse_setter(ctx); } - private static ParseTree parse_workflow(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_setter(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[41][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(97, "workflow")); - ctx.nonterminal = "workflow"; + int rule = (current != null) ? table[45][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(101, "setter")); + ctx.nonterminal = "setter"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "workflow", - nonterminal_first.get(97), - nonterminal_rules.get(97) + "setter", + nonterminal_first.get(101), + nonterminal_rules.get(101) )); } - if (rule == 70) { - /* $workflow = :workflow :identifier :lbrace $_gen19 :rbrace -> Workflow( name=$1, body=$3 ) */ - ctx.rule = rules.get(70); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("name", 1); - parameters.put("body", 3); - tree.setAstTransformation(new AstTransformNodeCreator("Workflow", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_WORKFLOW); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + if (rule == 62) { + /* $setter = :equal $e -> $1 */ + ctx.rule = rules.get(62); + tree.setAstTransformation(new AstTransformSubstitution(1)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); tree.add(next); - subtree = parse__gen19(ctx); + subtree = parse_e(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "workflow", + "setter", current, - nonterminal_first.get(97), - rules.get(70) + nonterminal_first.get(101), + rules.get(62) )); } - public ParseTree parse__gen28(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_mapping(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen28(ctx); + return parse_mapping(ctx); } - private static ParseTree parse__gen28(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_mapping(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[42][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(98, "_gen28")); - ctx.nonterminal = "_gen28"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(98).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(98).contains(terminal_map.get(current.getId())) ) { - return tree; - } + int rule = (current != null) ? table[46][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(102, "mapping")); + ctx.nonterminal = "mapping"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "mapping", + nonterminal_first.get(102), + nonterminal_rules.get(102) + )); } - if (rule == 95) { - /* $_gen28 = :comma $wf_output $_gen28 */ - ctx.rule = rules.get(95); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + if (rule == 92) { + /* $mapping = :identifier :equal $e -> IOMapping( key=$0, value=$2 ) */ + ctx.rule = rules.get(92); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("key", 0); + parameters.put("value", 2); + tree.setAstTransformation(new AstTransformNodeCreator("IOMapping", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); tree.add(next); - tree.setListSeparator(next); - subtree = parse_wf_output(ctx); - tree.add(subtree); - subtree = parse__gen28(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); + tree.add(next); + subtree = parse_e(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "mapping", + current, + nonterminal_first.get(102), + rules.get(92) + )); } - public ParseTree parse_sections(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen29(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_sections(ctx); + return parse__gen29(ctx); } - private static ParseTree parse_sections(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen29(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[43][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(99, "sections")); - ctx.nonterminal = "sections"; + int rule = (current != null) ? table[47][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(103, "_gen29")); + ctx.nonterminal = "_gen29"; tree.setList(false); - if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "sections", - nonterminal_first.get(99), - nonterminal_rules.get(99) - )); - } - if (rule == 24) { - /* $sections = $command */ - ctx.rule = rules.get(24); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_command(ctx); - tree.add(subtree); - return tree; - } - else if (rule == 25) { - /* $sections = $outputs */ - ctx.rule = rules.get(25); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_outputs(ctx); - tree.add(subtree); - return tree; - } - else if (rule == 26) { - /* $sections = $runtime */ - ctx.rule = rules.get(26); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_runtime(ctx); - tree.add(subtree); + if ( current != null && + !nonterminal_first.get(103).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(103).contains(terminal_map.get(current.getId())) ) { return tree; } - else if (rule == 27) { - /* $sections = $parameter_meta */ - ctx.rule = rules.get(27); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_parameter_meta(ctx); - tree.add(subtree); + if (current == null) { return tree; } - else if (rule == 28) { - /* $sections = $meta */ - ctx.rule = rules.get(28); + if (rule == 99) { + /* $_gen29 = $wf_output_wildcard */ + ctx.rule = rules.get(99); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_meta(ctx); + subtree = parse_wf_output_wildcard(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "sections", - current, - nonterminal_first.get(99), - rules.get(28) - )); + return tree; } - public ParseTree parse_declaration(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen34(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_declaration(ctx); + return parse__gen34(ctx); } - private static ParseTree parse_declaration(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen34(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[44][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(100, "declaration")); - ctx.nonterminal = "declaration"; - tree.setList(false); - if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "declaration", - nonterminal_first.get(100), - nonterminal_rules.get(100) - )); + int rule = (current != null) ? table[48][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(104, "_gen34")); + ctx.nonterminal = "_gen34"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(104).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(104).contains(terminal_map.get(current.getId())) ) { + return tree; + } + if (current == null) { + return tree; } - if (rule == 61) { - /* $declaration = $type_e $_gen17 :identifier $_gen18 -> Declaration( type=$0, postfix=$1, name=$2, expression=$3 ) */ - ctx.rule = rules.get(61); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("type", 0); - parameters.put("postfix", 1); - parameters.put("name", 2); - parameters.put("expression", 3); - tree.setAstTransformation(new AstTransformNodeCreator("Declaration", parameters)); - subtree = parse_type_e(ctx); - tree.add(subtree); - subtree = parse__gen17(ctx); + if (rule == 136) { + /* $_gen34 = $object_kv $_gen35 */ + ctx.rule = rules.get(136); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_object_kv(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); - tree.add(next); - subtree = parse__gen18(ctx); + subtree = parse__gen35(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "declaration", - current, - nonterminal_first.get(100), - rules.get(61) - )); + return tree; } - public ParseTree parse__gen12(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen32(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen12(ctx); + return parse__gen32(ctx); } - private static ParseTree parse__gen12(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen32(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[45][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(101, "_gen12")); - ctx.nonterminal = "_gen12"; + int rule = (current != null) ? table[49][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(105, "_gen32")); + ctx.nonterminal = "_gen32"; tree.setList(true); if ( current != null && - !nonterminal_first.get(101).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(101).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(105).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(105).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 37) { - /* $_gen12 = $cmd_param_kv $_gen12 */ - ctx.rule = rules.get(37); + if (rule == 129) { + /* $_gen32 = $e $_gen33 */ + ctx.rule = rules.get(129); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_cmd_param_kv(ctx); + subtree = parse_e(ctx); tree.add(subtree); - subtree = parse__gen12(ctx); + subtree = parse__gen33(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_outputs(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_call_input(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_outputs(ctx); + return parse_call_input(ctx); } - private static ParseTree parse_outputs(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_call_input(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[46][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(102, "outputs")); - ctx.nonterminal = "outputs"; + int rule = (current != null) ? table[50][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(106, "call_input")); + ctx.nonterminal = "call_input"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "outputs", - nonterminal_first.get(102), - nonterminal_rules.get(102) + "call_input", + nonterminal_first.get(106), + nonterminal_rules.get(106) )); } - if (rule == 46) { - /* $outputs = :output :lbrace $_gen13 :rbrace -> Outputs( attributes=$2 ) */ - ctx.rule = rules.get(46); + if (rule == 91) { + /* $call_input = :input :colon $_gen25 -> Inputs( map=$2 ) */ + ctx.rule = rules.get(91); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("attributes", 2); - tree.setAstTransformation(new AstTransformNodeCreator("Outputs", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_OUTPUT); + parameters.put("map", 2); + tree.setAstTransformation(new AstTransformNodeCreator("Inputs", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_INPUT); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); tree.add(next); - subtree = parse__gen13(ctx); + subtree = parse__gen25(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "outputs", + "call_input", current, - nonterminal_first.get(102), - rules.get(46) + nonterminal_first.get(106), + rules.get(91) )); } - public ParseTree parse__gen30(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_document(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen30(ctx); + return parse_document(ctx); } - private static ParseTree parse__gen30(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_document(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[47][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(103, "_gen30")); - ctx.nonterminal = "_gen30"; - tree.setList(true); + int rule = (current != null) ? table[51][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(107, "document")); + ctx.nonterminal = "document"; + tree.setList(false); if ( current != null && - !nonterminal_first.get(103).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(103).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(107).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(107).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 107) { - /* $_gen30 = $type_e $_gen31 */ - ctx.rule = rules.get(107); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_type_e(ctx); + if (rule == 8) { + /* $document = $_gen0 $_gen2 -> Document( imports=$0, definitions=$1 ) */ + ctx.rule = rules.get(8); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("imports", 0); + parameters.put("definitions", 1); + tree.setAstTransformation(new AstTransformNodeCreator("Document", parameters)); + subtree = parse__gen0(ctx); tree.add(subtree); - subtree = parse__gen31(ctx); + subtree = parse__gen2(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen8(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen8(ctx); + return parse_kv(ctx); } - private static ParseTree parse__gen8(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_kv(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[48][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(104, "_gen8")); - ctx.nonterminal = "_gen8"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(104).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(104).contains(terminal_map.get(current.getId())) ) { - return tree; - } + int rule = (current != null) ? table[52][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(108, "kv")); + ctx.nonterminal = "kv"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "kv", + nonterminal_first.get(108), + nonterminal_rules.get(108) + )); } - if (rule == 20) { - /* $_gen8 = $sections $_gen8 */ - ctx.rule = rules.get(20); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_sections(ctx); - tree.add(subtree); - subtree = parse__gen8(ctx); + if (rule == 56) { + /* $kv = :identifier :colon $e -> RuntimeAttribute( key=$0, value=$2 ) */ + ctx.rule = rules.get(56); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("key", 0); + parameters.put("value", 2); + tree.setAstTransformation(new AstTransformNodeCreator("RuntimeAttribute", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); + tree.add(next); + subtree = parse_e(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "kv", + current, + nonterminal_first.get(108), + rules.get(56) + )); } - public ParseTree parse__gen10(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_map_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen10(ctx); + return parse_map_kv(ctx); } - private static ParseTree parse__gen10(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_map_kv(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[49][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(105, "_gen10")); - ctx.nonterminal = "_gen10"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(105).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(105).contains(terminal_map.get(current.getId())) ) { - return tree; - } + int rule = (current != null) ? table[53][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(109, "map_kv")); + ctx.nonterminal = "map_kv"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "map_kv", + nonterminal_first.get(109), + nonterminal_rules.get(109) + )); } - if (rule == 30) { - /* $_gen10 = $command_part $_gen10 */ - ctx.rule = rules.get(30); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_command_part(ctx); + if (rule == 65) { + /* $map_kv = $e :colon $e -> MapLiteralKv( key=$0, value=$2 ) */ + ctx.rule = rules.get(65); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("key", 0); + parameters.put("value", 2); + tree.setAstTransformation(new AstTransformNodeCreator("MapLiteralKv", parameters)); + subtree = parse_e(ctx); tree.add(subtree); - subtree = parse__gen10(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); + tree.add(next); + subtree = parse_e(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "map_kv", + current, + nonterminal_first.get(109), + rules.get(65) + )); } - public ParseTree parse_output_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_sections(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_output_kv(ctx); + return parse_sections(ctx); } - private static ParseTree parse_output_kv(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_sections(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[50][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(106, "output_kv")); - ctx.nonterminal = "output_kv"; + int rule = (current != null) ? table[54][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(110, "sections")); + ctx.nonterminal = "sections"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "output_kv", - nonterminal_first.get(106), - nonterminal_rules.get(106) + "sections", + nonterminal_first.get(110), + nonterminal_rules.get(110) )); } - if (rule == 47) { - /* $output_kv = $type_e :identifier :equal $e -> Output( type=$0, var=$1, expression=$3 ) */ - ctx.rule = rules.get(47); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("type", 0); - parameters.put("var", 1); - parameters.put("expression", 3); - tree.setAstTransformation(new AstTransformNodeCreator("Output", parameters)); - subtree = parse_type_e(ctx); + if (rule == 24) { + /* $sections = $command */ + ctx.rule = rules.get(24); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_command(ctx); + tree.add(subtree); + return tree; + } + else if (rule == 25) { + /* $sections = $outputs */ + ctx.rule = rules.get(25); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_outputs(ctx); + tree.add(subtree); + return tree; + } + else if (rule == 26) { + /* $sections = $runtime */ + ctx.rule = rules.get(26); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_runtime(ctx); + tree.add(subtree); + return tree; + } + else if (rule == 27) { + /* $sections = $parameter_meta */ + ctx.rule = rules.get(27); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_parameter_meta(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); - tree.add(next); - subtree = parse_e(ctx); + return tree; + } + else if (rule == 28) { + /* $sections = $meta */ + ctx.rule = rules.get(28); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_meta(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "output_kv", + "sections", current, - nonterminal_first.get(106), - rules.get(47) + nonterminal_first.get(110), + rules.get(28) )); } - public ParseTree parse_while_loop(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen30(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_while_loop(ctx); + return parse__gen30(ctx); } - private static ParseTree parse_while_loop(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen30(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[51][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(107, "while_loop")); - ctx.nonterminal = "while_loop"; - tree.setList(false); + int rule = (current != null) ? table[55][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(111, "_gen30")); + ctx.nonterminal = "_gen30"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(111).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(111).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "while_loop", - nonterminal_first.get(107), - nonterminal_rules.get(107) - )); + return tree; } - if (rule == 103) { - /* $while_loop = :while :lparen $e :rparen :lbrace $_gen19 :rbrace -> WhileLoop( expression=$2, body=$5 ) */ - ctx.rule = rules.get(103); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("expression", 2); - parameters.put("body", 5); - tree.setAstTransformation(new AstTransformNodeCreator("WhileLoop", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_WHILE); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); - tree.add(next); - subtree = parse_e(ctx); + if (rule == 107) { + /* $_gen30 = $type_e $_gen31 */ + ctx.rule = rules.get(107); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_type_e(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); - tree.add(next); - subtree = parse__gen19(ctx); + subtree = parse__gen31(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "while_loop", - current, - nonterminal_first.get(107), - rules.get(103) - )); + return tree; } - public ParseTree parse__gen26(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen2(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen26(ctx); + return parse__gen2(ctx); } - private static ParseTree parse__gen26(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen2(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[52][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(108, "_gen26")); - ctx.nonterminal = "_gen26"; + int rule = (current != null) ? table[56][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(112, "_gen2")); + ctx.nonterminal = "_gen2"; tree.setList(true); if ( current != null && - !nonterminal_first.get(108).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(108).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(112).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(112).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 88) { - /* $_gen26 = :comma $mapping $_gen26 */ - ctx.rule = rules.get(88); + if (rule == 4) { + /* $_gen2 = $workflow_or_task $_gen3 */ + ctx.rule = rules.get(4); tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); - tree.add(next); - tree.setListSeparator(next); - subtree = parse_mapping(ctx); + subtree = parse_workflow_or_task(ctx); tree.add(subtree); - subtree = parse__gen26(ctx); + subtree = parse__gen3(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen36(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen10(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen36(ctx); + return parse__gen10(ctx); } - private static ParseTree parse__gen36(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen10(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[54][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(110, "_gen36")); - ctx.nonterminal = "_gen36"; + int rule = (current != null) ? table[57][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(113, "_gen10")); + ctx.nonterminal = "_gen10"; tree.setList(true); if ( current != null && - !nonterminal_first.get(110).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(110).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(113).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(113).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 142) { - /* $_gen36 = $map_kv $_gen37 */ - ctx.rule = rules.get(142); + if (rule == 30) { + /* $_gen10 = $command_part $_gen10 */ + ctx.rule = rules.get(30); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_map_kv(ctx); + subtree = parse_command_part(ctx); tree.add(subtree); - subtree = parse__gen37(ctx); + subtree = parse__gen10(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_scatter(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_declaration(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_scatter(ctx); + return parse_declaration(ctx); } - private static ParseTree parse_scatter(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_declaration(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[55][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(111, "scatter")); - ctx.nonterminal = "scatter"; + int rule = (current != null) ? table[58][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(114, "declaration")); + ctx.nonterminal = "declaration"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "scatter", - nonterminal_first.get(111), - nonterminal_rules.get(111) + "declaration", + nonterminal_first.get(114), + nonterminal_rules.get(114) )); } - if (rule == 105) { - /* $scatter = :scatter :lparen :identifier :in $e :rparen :lbrace $_gen19 :rbrace -> Scatter( item=$2, collection=$4, body=$7 ) */ - ctx.rule = rules.get(105); + if (rule == 61) { + /* $declaration = $type_e $_gen17 :identifier $_gen18 -> Declaration( type=$0, postfix=$1, name=$2, expression=$3 ) */ + ctx.rule = rules.get(61); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("item", 2); - parameters.put("collection", 4); - parameters.put("body", 7); - tree.setAstTransformation(new AstTransformNodeCreator("Scatter", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_SCATTER); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IN); - tree.add(next); - subtree = parse_e(ctx); + parameters.put("type", 0); + parameters.put("postfix", 1); + parameters.put("name", 2); + parameters.put("expression", 3); + tree.setAstTransformation(new AstTransformNodeCreator("Declaration", parameters)); + subtree = parse_type_e(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); - tree.add(next); - subtree = parse__gen19(ctx); + subtree = parse__gen17(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); tree.add(next); + subtree = parse__gen18(ctx); + tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "scatter", + "declaration", current, - nonterminal_first.get(111), - rules.get(105) + nonterminal_first.get(114), + rules.get(61) )); } - public ParseTree parse__gen14(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen19(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen14(ctx); + return parse__gen19(ctx); } - private static ParseTree parse__gen14(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen19(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[56][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(112, "_gen14")); - ctx.nonterminal = "_gen14"; + int rule = (current != null) ? table[59][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(115, "_gen19")); + ctx.nonterminal = "_gen19"; tree.setList(true); if ( current != null && - !nonterminal_first.get(112).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(112).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(115).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(115).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 43) { - /* $_gen14 = $output_kv $_gen14 */ - ctx.rule = rules.get(43); + if (rule == 66) { + /* $_gen19 = $wf_body_element $_gen20 */ + ctx.rule = rules.get(66); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_output_kv(ctx); + subtree = parse_wf_body_element(ctx); tree.add(subtree); - subtree = parse__gen14(ctx); + subtree = parse__gen20(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_wf_outputs(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_kv(ctx); + return parse_wf_outputs(ctx); } - private static ParseTree parse_kv(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_wf_outputs(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[57][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(113, "kv")); - ctx.nonterminal = "kv"; + int rule = (current != null) ? table[60][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(116, "wf_outputs")); + ctx.nonterminal = "wf_outputs"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "kv", - nonterminal_first.get(113), - nonterminal_rules.get(113) + "wf_outputs", + nonterminal_first.get(116), + nonterminal_rules.get(116) )); } - if (rule == 56) { - /* $kv = :identifier :colon $e -> RuntimeAttribute( key=$0, value=$2 ) */ - ctx.rule = rules.get(56); + if (rule == 98) { + /* $wf_outputs = :output :lbrace $_gen27 :rbrace -> WorkflowOutputs( outputs=$2 ) */ + ctx.rule = rules.get(98); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("key", 0); - parameters.put("value", 2); - tree.setAstTransformation(new AstTransformNodeCreator("RuntimeAttribute", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + parameters.put("outputs", 2); + tree.setAstTransformation(new AstTransformNodeCreator("WorkflowOutputs", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_OUTPUT); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); tree.add(next); - subtree = parse_e(ctx); + subtree = parse__gen27(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "kv", + "wf_outputs", current, - nonterminal_first.get(113), - rules.get(56) - )); - } - public ParseTree parse__gen22(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { - ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen22(ctx); - } - private static ParseTree parse__gen22(ParserContext ctx) throws SyntaxError { - Terminal current = ctx.tokens.current(); - Terminal next; - ParseTree subtree; - int rule = (current != null) ? table[58][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(114, "_gen22")); - ctx.nonterminal = "_gen22"; - tree.setList(false); - if ( current != null && - !nonterminal_first.get(114).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(114).contains(terminal_map.get(current.getId())) ) { - return tree; - } - if (current == null) { - return tree; - } - if (rule == 79) { - /* $_gen22 = $call_body */ - ctx.rule = rules.get(79); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_call_body(ctx); - tree.add(subtree); - return tree; - } - return tree; + nonterminal_first.get(116), + rules.get(98) + )); } public ParseTree parse_wf_output_wildcard(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); @@ -5228,15 +5311,15 @@ private static ParseTree parse_wf_output_wildcard(ParserContext ctx) throws Synt Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[59][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(115, "wf_output_wildcard")); + int rule = (current != null) ? table[61][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(117, "wf_output_wildcard")); ctx.nonterminal = "wf_output_wildcard"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( "wf_output_wildcard", - nonterminal_first.get(115), - nonterminal_rules.get(115) + nonterminal_first.get(117), + nonterminal_rules.get(117) )); } if (rule == 102) { @@ -5252,84 +5335,79 @@ private static ParseTree parse_wf_output_wildcard(ParserContext ctx) throws Synt throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( "wf_output_wildcard", current, - nonterminal_first.get(115), + nonterminal_first.get(117), rules.get(102) )); } - public ParseTree parse_cmd_param(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen1(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_cmd_param(ctx); + return parse__gen1(ctx); } - private static ParseTree parse_cmd_param(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen1(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[60][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(116, "cmd_param")); - ctx.nonterminal = "cmd_param"; - tree.setList(false); + int rule = (current != null) ? table[62][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(118, "_gen1")); + ctx.nonterminal = "_gen1"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(118).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(118).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "cmd_param", - nonterminal_first.get(116), - nonterminal_rules.get(116) - )); + return tree; } - if (rule == 40) { - /* $cmd_param = :cmd_param_start $_gen11 $e :cmd_param_end -> CommandParameter( attributes=$1, expr=$2 ) */ - ctx.rule = rules.get(40); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("attributes", 1); - parameters.put("expr", 2); - tree.setAstTransformation(new AstTransformNodeCreator("CommandParameter", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START); - tree.add(next); - subtree = parse__gen11(ctx); + if (rule == 1) { + /* $_gen1 = $import $_gen1 */ + ctx.rule = rules.get(1); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_import(ctx); tree.add(subtree); - subtree = parse_e(ctx); + subtree = parse__gen1(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PARAM_END); - tree.add(next); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "cmd_param", - current, - nonterminal_first.get(116), - rules.get(40) - )); + return tree; } - public ParseTree parse__gen15(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_runtime(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen15(ctx); + return parse_runtime(ctx); } - private static ParseTree parse__gen15(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_runtime(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[61][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(117, "_gen15")); - ctx.nonterminal = "_gen15"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(117).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(117).contains(terminal_map.get(current.getId())) ) { - return tree; - } + int rule = (current != null) ? table[63][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(119, "runtime")); + ctx.nonterminal = "runtime"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "runtime", + nonterminal_first.get(119), + nonterminal_rules.get(119) + )); } - if (rule == 51) { - /* $_gen15 = $kv $_gen16 */ - ctx.rule = rules.get(51); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_kv(ctx); - tree.add(subtree); - subtree = parse__gen16(ctx); + if (rule == 48) { + /* $runtime = :runtime $map -> Runtime( map=$1 ) */ + ctx.rule = rules.get(48); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("map", 1); + tree.setAstTransformation(new AstTransformNodeCreator("Runtime", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RUNTIME); + tree.add(next); + subtree = parse_map(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "runtime", + current, + nonterminal_first.get(119), + rules.get(48) + )); } public ParseTree parse_object_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); @@ -5339,15 +5417,15 @@ private static ParseTree parse_object_kv(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[62][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(118, "object_kv")); + int rule = (current != null) ? table[64][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(120, "object_kv")); ctx.nonterminal = "object_kv"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( "object_kv", - nonterminal_first.get(118), - nonterminal_rules.get(118) + nonterminal_first.get(120), + nonterminal_rules.get(120) )); } if (rule == 106) { @@ -5368,86 +5446,22 @@ private static ParseTree parse_object_kv(ParserContext ctx) throws SyntaxError { throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( "object_kv", current, - nonterminal_first.get(118), + nonterminal_first.get(120), rules.get(106) )); } - public ParseTree parse__gen23(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { - ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen23(ctx); - } - private static ParseTree parse__gen23(ParserContext ctx) throws SyntaxError { - Terminal current = ctx.tokens.current(); - Terminal next; - ParseTree subtree; - int rule = (current != null) ? table[63][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(119, "_gen23")); - ctx.nonterminal = "_gen23"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(119).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(119).contains(terminal_map.get(current.getId())) ) { - return tree; - } - if (current == null) { - return tree; - } - if (rule == 82) { - /* $_gen23 = $call_input $_gen24 */ - ctx.rule = rules.get(82); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_call_input(ctx); - tree.add(subtree); - subtree = parse__gen24(ctx); - tree.add(subtree); - return tree; - } - return tree; - } - public ParseTree parse__gen27(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { - ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen27(ctx); - } - private static ParseTree parse__gen27(ParserContext ctx) throws SyntaxError { - Terminal current = ctx.tokens.current(); - Terminal next; - ParseTree subtree; - int rule = (current != null) ? table[64][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(120, "_gen27")); - ctx.nonterminal = "_gen27"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(120).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(120).contains(terminal_map.get(current.getId())) ) { - return tree; - } - if (current == null) { - return tree; - } - if (rule == 94) { - /* $_gen27 = $wf_output $_gen28 */ - ctx.rule = rules.get(94); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_wf_output(ctx); - tree.add(subtree); - subtree = parse__gen28(ctx); - tree.add(subtree); - return tree; - } - return tree; - } - public ParseTree parse__gen31(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen4(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen31(ctx); + return parse__gen4(ctx); } - private static ParseTree parse__gen31(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen4(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[65][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(121, "_gen31")); - ctx.nonterminal = "_gen31"; - tree.setList(true); + ParseTree tree = new ParseTree( new NonTerminal(121, "_gen4")); + ctx.nonterminal = "_gen4"; + tree.setList(false); if ( current != null && !nonterminal_first.get(121).contains(terminal_map.get(current.getId())) && nonterminal_follow.get(121).contains(terminal_map.get(current.getId())) ) { @@ -5456,64 +5470,27 @@ private static ParseTree parse__gen31(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 108) { - /* $_gen31 = :comma $type_e $_gen31 */ - ctx.rule = rules.get(108); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); - tree.add(next); - tree.setListSeparator(next); - subtree = parse_type_e(ctx); - tree.add(subtree); - subtree = parse__gen31(ctx); - tree.add(subtree); - return tree; - } - return tree; - } - public ParseTree parse__gen7(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { - ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen7(ctx); - } - private static ParseTree parse__gen7(ParserContext ctx) throws SyntaxError { - Terminal current = ctx.tokens.current(); - Terminal next; - ParseTree subtree; - int rule = (current != null) ? table[66][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(122, "_gen7")); - ctx.nonterminal = "_gen7"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(122).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(122).contains(terminal_map.get(current.getId())) ) { - return tree; - } - if (current == null) { - return tree; - } - if (rule == 19) { - /* $_gen7 = $sections $_gen8 */ - ctx.rule = rules.get(19); + if (rule == 11) { + /* $_gen4 = $import_namespace */ + ctx.rule = rules.get(11); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_sections(ctx); - tree.add(subtree); - subtree = parse__gen8(ctx); + subtree = parse_import_namespace(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen13(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen16(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen13(ctx); + return parse__gen16(ctx); } - private static ParseTree parse__gen13(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen16(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[67][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(123, "_gen13")); - ctx.nonterminal = "_gen13"; + ParseTree tree = new ParseTree( new NonTerminal(123, "_gen16")); + ctx.nonterminal = "_gen16"; tree.setList(true); if ( current != null && !nonterminal_first.get(123).contains(terminal_map.get(current.getId())) && @@ -5523,223 +5500,249 @@ private static ParseTree parse__gen13(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 42) { - /* $_gen13 = $output_kv $_gen14 */ - ctx.rule = rules.get(42); + if (rule == 52) { + /* $_gen16 = $kv $_gen16 */ + ctx.rule = rules.get(52); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_output_kv(ctx); + subtree = parse_kv(ctx); tree.add(subtree); - subtree = parse__gen14(ctx); + subtree = parse__gen16(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_document(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_meta(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_document(ctx); + return parse_meta(ctx); } - private static ParseTree parse_document(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_meta(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[68][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(124, "document")); - ctx.nonterminal = "document"; + ParseTree tree = new ParseTree( new NonTerminal(124, "meta")); + ctx.nonterminal = "meta"; tree.setList(false); - if ( current != null && - !nonterminal_first.get(124).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(124).contains(terminal_map.get(current.getId())) ) { - return tree; - } if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "meta", + nonterminal_first.get(124), + nonterminal_rules.get(124) + )); } - if (rule == 8) { - /* $document = $_gen0 $_gen2 -> Document( imports=$0, definitions=$1 ) */ - ctx.rule = rules.get(8); + if (rule == 50) { + /* $meta = :meta $map -> Meta( map=$1 ) */ + ctx.rule = rules.get(50); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("imports", 0); - parameters.put("definitions", 1); - tree.setAstTransformation(new AstTransformNodeCreator("Document", parameters)); - subtree = parse__gen0(ctx); - tree.add(subtree); - subtree = parse__gen2(ctx); + parameters.put("map", 1); + tree.setAstTransformation(new AstTransformNodeCreator("Meta", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_META); + tree.add(next); + subtree = parse_map(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "meta", + current, + nonterminal_first.get(124), + rules.get(50) + )); } - public ParseTree parse_workflow_or_task(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_workflow(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_workflow_or_task(ctx); + return parse_workflow(ctx); } - private static ParseTree parse_workflow_or_task(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_workflow(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[69][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(125, "workflow_or_task")); - ctx.nonterminal = "workflow_or_task"; + ParseTree tree = new ParseTree( new NonTerminal(125, "workflow")); + ctx.nonterminal = "workflow"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "workflow_or_task", + "workflow", nonterminal_first.get(125), nonterminal_rules.get(125) )); } - if (rule == 9) { - /* $workflow_or_task = $workflow */ - ctx.rule = rules.get(9); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_workflow(ctx); - tree.add(subtree); - return tree; - } - else if (rule == 10) { - /* $workflow_or_task = $task */ - ctx.rule = rules.get(10); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_task(ctx); + if (rule == 70) { + /* $workflow = :workflow :identifier :lbrace $_gen19 :rbrace -> Workflow( name=$1, body=$3 ) */ + ctx.rule = rules.get(70); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("name", 1); + parameters.put("body", 3); + tree.setAstTransformation(new AstTransformNodeCreator("Workflow", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_WORKFLOW); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen19(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "workflow_or_task", + "workflow", current, nonterminal_first.get(125), - rules.get(10) + rules.get(70) )); } - public ParseTree parse__gen25(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_wf_body_element(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen25(ctx); + return parse_wf_body_element(ctx); } - private static ParseTree parse__gen25(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_wf_body_element(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[70][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(126, "_gen25")); - ctx.nonterminal = "_gen25"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(126).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(126).contains(terminal_map.get(current.getId())) ) { + ParseTree tree = new ParseTree( new NonTerminal(126, "wf_body_element")); + ctx.nonterminal = "wf_body_element"; + tree.setList(false); + if (current == null) { + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "wf_body_element", + nonterminal_first.get(126), + nonterminal_rules.get(126) + )); + } + if (rule == 71) { + /* $wf_body_element = $call */ + ctx.rule = rules.get(71); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_call(ctx); + tree.add(subtree); return tree; } - if (current == null) { + else if (rule == 72) { + /* $wf_body_element = $declaration */ + ctx.rule = rules.get(72); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_declaration(ctx); + tree.add(subtree); return tree; } - if (rule == 87) { - /* $_gen25 = $mapping $_gen26 */ - ctx.rule = rules.get(87); + else if (rule == 73) { + /* $wf_body_element = $while_loop */ + ctx.rule = rules.get(73); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_mapping(ctx); + subtree = parse_while_loop(ctx); tree.add(subtree); - subtree = parse__gen26(ctx); + return tree; + } + else if (rule == 74) { + /* $wf_body_element = $if_stmt */ + ctx.rule = rules.get(74); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_if_stmt(ctx); tree.add(subtree); return tree; } - return tree; + else if (rule == 75) { + /* $wf_body_element = $scatter */ + ctx.rule = rules.get(75); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_scatter(ctx); + tree.add(subtree); + return tree; + } + else if (rule == 76) { + /* $wf_body_element = $wf_outputs */ + ctx.rule = rules.get(76); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_wf_outputs(ctx); + tree.add(subtree); + return tree; + } + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "wf_body_element", + current, + nonterminal_first.get(126), + rules.get(76) + )); } - public ParseTree parse_task(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen8(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_task(ctx); + return parse__gen8(ctx); } - private static ParseTree parse_task(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen8(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[71][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(127, "task")); - ctx.nonterminal = "task"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(127, "_gen8")); + ctx.nonterminal = "_gen8"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(127).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(127).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "task", - nonterminal_first.get(127), - nonterminal_rules.get(127) - )); + return tree; } - if (rule == 23) { - /* $task = :task :identifier :lbrace $_gen5 $_gen7 :rbrace -> Task( name=$1, declarations=$3, sections=$4 ) */ - ctx.rule = rules.get(23); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("name", 1); - parameters.put("declarations", 3); - parameters.put("sections", 4); - tree.setAstTransformation(new AstTransformNodeCreator("Task", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_TASK); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); - tree.add(next); - subtree = parse__gen5(ctx); + if (rule == 20) { + /* $_gen8 = $sections $_gen8 */ + ctx.rule = rules.get(20); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_sections(ctx); tree.add(subtree); - subtree = parse__gen7(ctx); + subtree = parse__gen8(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "task", - current, - nonterminal_first.get(127), - rules.get(23) - )); + return tree; } - public ParseTree parse_import_namespace(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen21(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_import_namespace(ctx); + return parse__gen21(ctx); } - private static ParseTree parse_import_namespace(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen21(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[72][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(128, "import_namespace")); - ctx.nonterminal = "import_namespace"; + ParseTree tree = new ParseTree( new NonTerminal(128, "_gen21")); + ctx.nonterminal = "_gen21"; tree.setList(false); + if ( current != null && + !nonterminal_first.get(128).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(128).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "import_namespace", - nonterminal_first.get(128), - nonterminal_rules.get(128) - )); + return tree; } - if (rule == 14) { - /* $import_namespace = :as :identifier -> $1 */ - ctx.rule = rules.get(14); - tree.setAstTransformation(new AstTransformSubstitution(1)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_AS); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); - tree.add(next); + if (rule == 77) { + /* $_gen21 = $alias */ + ctx.rule = rules.get(77); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_alias(ctx); + tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "import_namespace", - current, - nonterminal_first.get(128), - rules.get(14) - )); + return tree; } - public ParseTree parse__gen4(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen27(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen4(ctx); + return parse__gen27(ctx); } - private static ParseTree parse__gen4(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen27(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[73][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(129, "_gen4")); - ctx.nonterminal = "_gen4"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(129, "_gen27")); + ctx.nonterminal = "_gen27"; + tree.setList(true); if ( current != null && !nonterminal_first.get(129).contains(terminal_map.get(current.getId())) && nonterminal_follow.get(129).contains(terminal_map.get(current.getId())) ) { @@ -5748,54 +5751,52 @@ private static ParseTree parse__gen4(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 11) { - /* $_gen4 = $import_namespace */ - ctx.rule = rules.get(11); + if (rule == 94) { + /* $_gen27 = $wf_output $_gen28 */ + ctx.rule = rules.get(94); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_import_namespace(ctx); + subtree = parse_wf_output(ctx); + tree.add(subtree); + subtree = parse__gen28(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_wf_output(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen31(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_wf_output(ctx); + return parse__gen31(ctx); } - private static ParseTree parse_wf_output(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen31(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[74][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(130, "wf_output")); - ctx.nonterminal = "wf_output"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(130, "_gen31")); + ctx.nonterminal = "_gen31"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(130).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(130).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "wf_output", - nonterminal_first.get(130), - nonterminal_rules.get(130) - )); + return tree; } - if (rule == 101) { - /* $wf_output = :fqn $_gen29 -> WorkflowOutput( fqn=$0, wildcard=$1 ) */ - ctx.rule = rules.get(101); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("fqn", 0); - parameters.put("wildcard", 1); - tree.setAstTransformation(new AstTransformNodeCreator("WorkflowOutput", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_FQN); + if (rule == 108) { + /* $_gen31 = :comma $type_e $_gen31 */ + ctx.rule = rules.get(108); + tree.setAstTransformation(new AstTransformSubstitution(0)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); tree.add(next); - subtree = parse__gen29(ctx); + tree.setListSeparator(next); + subtree = parse_type_e(ctx); + tree.add(subtree); + subtree = parse__gen31(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "wf_output", - current, - nonterminal_first.get(130), - rules.get(101) - )); + return tree; } /* Section: Lexer */ private Map> regex = null; @@ -5903,25 +5904,6 @@ public void default_action(LexerContext lctx, TerminalIdentifier terminal, Strin /* START USER CODE */ private class WdlContext { public String wf_or_task = null; - public Map replacements; - public Map escapes; - public WdlContext() { - replacements = new HashMap(); - escapes = new HashMap(); - replacements.put("\\\\n", 0x000A); - replacements.put("\\\\r", 0x000D); - replacements.put("\\\\b", 0x0008); - replacements.put("\\\\t", 0x0009); - replacements.put("\\\\a", 0x0007); - replacements.put("\\\\v", 0x000B); - replacements.put("\\\\\"", 0x0022); - replacements.put("\\\\'", 0x0027); - replacements.put("\\\\\\?", 0x003F); - replacements.put("\\\\\\\\", 0x005C); - escapes.put(Pattern.compile("\\\\([0-7]{1,3})"), 8); - escapes.put(Pattern.compile("\\\\[xX]([0-9a-fA-F]{1,4})"), 16); - escapes.put(Pattern.compile("\\\\[uU]([0-9a-fA-F]{4})"), 16); - } } public Object init() { return new WdlContext(); @@ -5942,22 +5924,7 @@ public void output(LexerContext ctx, TerminalIdentifier terminal, String source_ default_action(ctx, terminal, source_string, line, col); } public void unescape(LexerContext ctx, TerminalIdentifier terminal, String source_string, int line, int col) { - WdlContext wdl_ctx = (WdlContext) ctx.context; - for (Map.Entry replacement : wdl_ctx.replacements.entrySet()) { - String key = replacement.getKey(); - String value = Character.toString((char) replacement.getValue().intValue()); - source_string = source_string.replaceAll(key, value); - } - for (Map.Entry escapeSequence : wdl_ctx.escapes.entrySet()) { - Pattern pattern = escapeSequence.getKey(); - int radix = escapeSequence.getValue().intValue(); - Matcher matcher = pattern.matcher(source_string); - while (matcher.find()) { - int value = Integer.parseInt(matcher.group(1), radix); - source_string = source_string.replace(matcher.group(), String.format("%c", value)); - } - } - default_action(ctx, terminal, source_string.substring(1, source_string.length() - 1), line, col); + default_action(ctx, terminal, StringEscapeUtils.unescapeJava(source_string.substring(1, source_string.length() - 1)), line, col); } /* END USER CODE */ public void destroy(Object context) { diff --git a/java/java8/WdlParser.java b/java/java8/WdlParser.java index 1532ddc..d92b243 100644 --- a/java/java8/WdlParser.java +++ b/java/java8/WdlParser.java @@ -8,6 +8,7 @@ import java.nio.*; import java.nio.channels.FileChannel; import java.nio.charset.Charset; +import org.apache.commons.lang3.StringEscapeUtils; import java.util.regex.Pattern; import java.util.regex.Matcher; import java.lang.reflect.Method; @@ -490,62 +491,62 @@ public String invalidTerminal(String method, Terminal invalid) { public String string(); } public enum WdlTerminalIdentifier implements TerminalIdentifier { - TERMINAL_PLUS(0, "plus"), - TERMINAL_SCATTER(1, "scatter"), - TERMINAL_TYPE_E(2, "type_e"), - TERMINAL_IMPORT(3, "import"), - TERMINAL_DOUBLE_AMPERSAND(4, "double_ampersand"), - TERMINAL_CMD_ATTR_HINT(5, "cmd_attr_hint"), - TERMINAL_DOT(6, "dot"), - TERMINAL_CMD_PARAM_END(7, "cmd_param_end"), - TERMINAL_RSQUARE(8, "rsquare"), - TERMINAL_DASH(9, "dash"), - TERMINAL_LSQUARE(10, "lsquare"), - TERMINAL_GTEQ(11, "gteq"), - TERMINAL_CMD_PARAM_START(12, "cmd_param_start"), + TERMINAL_RAW_CMD_END(0, "raw_cmd_end"), + TERMINAL_RPAREN(1, "rparen"), + TERMINAL_TASK(2, "task"), + TERMINAL_NOT_EQUAL(3, "not_equal"), + TERMINAL_LTEQ(4, "lteq"), + TERMINAL_OUTPUT(5, "output"), + TERMINAL_IDENTIFIER(6, "identifier"), + TERMINAL_DOUBLE_EQUAL(7, "double_equal"), + TERMINAL_LT(8, "lt"), + TERMINAL_CMD_PARAM_END(9, "cmd_param_end"), + TERMINAL_RAW_COMMAND(10, "raw_command"), + TERMINAL_PLUS(11, "plus"), + TERMINAL_IN(12, "in"), TERMINAL_STRING(13, "string"), - TERMINAL_RAW_CMD_START(14, "raw_cmd_start"), - TERMINAL_E(15, "e"), - TERMINAL_RAW_CMD_END(16, "raw_cmd_end"), - TERMINAL_NOT_EQUAL(17, "not_equal"), - TERMINAL_OUTPUT(18, "output"), - TERMINAL_LT(19, "lt"), - TERMINAL_LPAREN(20, "lparen"), - TERMINAL_RUNTIME(21, "runtime"), - TERMINAL_IDENTIFIER(22, "identifier"), - TERMINAL_RAW_COMMAND(23, "raw_command"), - TERMINAL_PERCENT(24, "percent"), - TERMINAL_TASK(25, "task"), - TERMINAL_COLON(26, "colon"), - TERMINAL_INPUT(27, "input"), - TERMINAL_IN(28, "in"), - TERMINAL_PARAMETER_META(29, "parameter_meta"), - TERMINAL_INTEGER(30, "integer"), - TERMINAL_BOOLEAN(31, "boolean"), - TERMINAL_ASTERISK(32, "asterisk"), - TERMINAL_COMMA(33, "comma"), - TERMINAL_DOUBLE_EQUAL(34, "double_equal"), - TERMINAL_CALL(35, "call"), - TERMINAL_EQUAL(36, "equal"), - TERMINAL_RBRACE(37, "rbrace"), - TERMINAL_RPAREN(38, "rparen"), - TERMINAL_DOUBLE_PIPE(39, "double_pipe"), - TERMINAL_LBRACE(40, "lbrace"), - TERMINAL_IF(41, "if"), - TERMINAL_LTEQ(42, "lteq"), - TERMINAL_TYPE(43, "type"), - TERMINAL_WORKFLOW(44, "workflow"), - TERMINAL_NOT(45, "not"), - TERMINAL_WHILE(46, "while"), - TERMINAL_FLOAT(47, "float"), - TERMINAL_META(48, "meta"), - TERMINAL_CMD_PART(49, "cmd_part"), - TERMINAL_FQN(50, "fqn"), - TERMINAL_AS(51, "as"), - TERMINAL_GT(52, "gt"), - TERMINAL_QMARK(53, "qmark"), - TERMINAL_SLASH(54, "slash"), - TERMINAL_OBJECT(55, "object"), + TERMINAL_INTEGER(14, "integer"), + TERMINAL_CMD_ATTR_HINT(15, "cmd_attr_hint"), + TERMINAL_FQN(16, "fqn"), + TERMINAL_WORKFLOW(17, "workflow"), + TERMINAL_NOT(18, "not"), + TERMINAL_SLASH(19, "slash"), + TERMINAL_DOUBLE_PIPE(20, "double_pipe"), + TERMINAL_FLOAT(21, "float"), + TERMINAL_COMMA(22, "comma"), + TERMINAL_TYPE_E(23, "type_e"), + TERMINAL_GT(24, "gt"), + TERMINAL_OBJECT(25, "object"), + TERMINAL_RAW_CMD_START(26, "raw_cmd_start"), + TERMINAL_LBRACE(27, "lbrace"), + TERMINAL_PERCENT(28, "percent"), + TERMINAL_RSQUARE(29, "rsquare"), + TERMINAL_GTEQ(30, "gteq"), + TERMINAL_META(31, "meta"), + TERMINAL_SCATTER(32, "scatter"), + TERMINAL_LPAREN(33, "lparen"), + TERMINAL_ASTERISK(34, "asterisk"), + TERMINAL_BOOLEAN(35, "boolean"), + TERMINAL_QMARK(36, "qmark"), + TERMINAL_DASH(37, "dash"), + TERMINAL_TYPE(38, "type"), + TERMINAL_INPUT(39, "input"), + TERMINAL_DOUBLE_AMPERSAND(40, "double_ampersand"), + TERMINAL_CMD_PART(41, "cmd_part"), + TERMINAL_PARAMETER_META(42, "parameter_meta"), + TERMINAL_RUNTIME(43, "runtime"), + TERMINAL_WHILE(44, "while"), + TERMINAL_E(45, "e"), + TERMINAL_DOT(46, "dot"), + TERMINAL_IMPORT(47, "import"), + TERMINAL_CMD_PARAM_START(48, "cmd_param_start"), + TERMINAL_LSQUARE(49, "lsquare"), + TERMINAL_IF(50, "if"), + TERMINAL_CALL(51, "call"), + TERMINAL_AS(52, "as"), + TERMINAL_RBRACE(53, "rbrace"), + TERMINAL_EQUAL(54, "equal"), + TERMINAL_COLON(55, "colon"), END_SENTINAL(-3, "END_SENTINAL"); private final int id; private final String string; @@ -558,170 +559,201 @@ public String invalidTerminal(String method, Terminal invalid) { } /* table[nonterminal][terminal] = rule */ private static final int[][] table = { - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, 66, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, 69, -1, -1, -1, 66, -1, 66, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, 107, -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, 80, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, 80, -1, -1, 79, 80, -1, 80, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, 78, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, -1, 78, -1, -1, 78, 78, -1, 78, -1, -1, 78, -1, -1, -1, -1, 77, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, -1, -1 }, - { -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, 39, -1, 39, 39, 36, -1, -1, 39, -1, -1, 39, -1, -1, -1, 39, -1, 39, -1, -1, -1, -1, -1, 39, -1, 39, -1, 39, -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, -1 }, + { -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 79, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, 80, 80, -1, 80, -1, -1 }, + { -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, 16, 17, -1, -1, 17, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, -1, -1 }, + { -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, 67, 67, -1, 68, -1, -1 }, + { -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { 38, -1, -1, -1, -1, 37, -1, -1, -1, 38, 38, -1, -1, 38, -1, 38, -1, -1, -1, -1, 38, -1, 38, -1, -1, -1, -1, -1, -1, -1, 38, 38, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, -1, 38, -1, 38, -1, -1, -1, -1, -1, -1, -1, 38 }, - { -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, 19, -1, 19, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1 }, - { 142, -1, -1, -1, -1, -1, -1, -1, -1, 142, 142, -1, -1, 142, -1, 142, -1, -1, -1, -1, 142, -1, 142, -1, -1, -1, -1, -1, -1, -1, 142, 142, -1, -1, -1, -1, -1, 145, -1, -1, 142, -1, -1, -1, -1, 142, -1, 142, -1, -1, -1, -1, -1, -1, -1, 142 }, - { 129, -1, -1, -1, -1, -1, -1, -1, 132, 129, 129, -1, -1, 129, -1, 129, -1, -1, -1, -1, 129, -1, 129, -1, -1, -1, -1, -1, -1, -1, 129, 129, -1, -1, -1, -1, -1, -1, 132, -1, 129, -1, -1, -1, -1, 129, -1, 129, -1, -1, -1, -1, -1, -1, -1, 129 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, 17, -1, 17, -1, -1, -1, 17, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, -1 }, - { 39, -1, -1, -1, -1, 36, -1, -1, -1, 39, 39, -1, -1, 39, -1, 39, -1, -1, -1, -1, 39, -1, 39, -1, -1, -1, -1, -1, -1, -1, 39, 39, -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, 39, -1, 39, -1, -1, -1, -1, -1, -1, -1, 39 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1 }, - { -1, 60, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 60, -1, 60, -1, -1, -1, 60, -1, 60, -1, -1, -1, -1, -1, 60, 59, 60, -1, -1, -1, 60, -1, 60, -1, -1, 60, -1, 60, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, 75, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, 74, -1, 72, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, -1, -1, 18, -1, 18, -1, -1, -1, 18, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1 }, - { -1, 67, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 68, -1, -1, -1, 67, -1, 67, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, 88, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, 20, -1, 20, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 137, -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, -1, 142, -1, 142, 142, -1, -1, -1, 142, -1, -1, 142, -1, -1, -1, 142, -1, 142, -1, -1, -1, -1, -1, 142, -1, 142, -1, 142, -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, 142, -1, -1, -1, 145, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 66, 66, -1, 69, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, -1, 26, -1, 24, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1 }, - { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { 65, -1, -1, -1, -1, -1, -1, -1, -1, 65, 65, -1, -1, 65, -1, 65, -1, -1, -1, -1, 65, -1, 65, -1, -1, -1, -1, -1, -1, -1, 65, 65, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, 65, -1, 65, -1, -1, -1, -1, -1, -1, -1, 65 }, - { -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, -1 }, - { -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 108, -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, 15, 18, -1, -1, 18, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, 100, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1 }, + { 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, -1, 38, -1, 38, 38, 37, -1, -1, 38, -1, -1, 38, -1, -1, -1, 38, -1, 38, -1, -1, -1, -1, -1, 38, -1, 38, -1, 38, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, 73, -1, -1, -1, -1, -1, 74, 71, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, -1 }, + { -1, 132, -1, -1, -1, -1, 129, -1, -1, -1, -1, 129, -1, 129, 129, -1, -1, -1, 129, -1, -1, 129, -1, -1, -1, 129, -1, 129, -1, 132, -1, -1, -1, 129, -1, 129, -1, 129, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, -1, -1, -1, 78, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, 78, 78, 77, 78, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, -1 }, + { -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, 11, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, 65, -1, 65, 65, -1, -1, -1, 65, -1, -1, 65, -1, -1, -1, 65, -1, 65, -1, -1, -1, -1, -1, 65, -1, 65, -1, 65, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, 65, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1 }, + { -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, 60, 60, -1, -1, -1, -1, -1, 60, 60, -1, -1, 60, 60, 60, -1, -1, -1, -1, -1, 60, 60, -1, 60, 59, -1 }, + { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1 }, + { -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, -1, -1 }, }; static { Map> map = new HashMap>(); map.put(56, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, })); map.put(57, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(58, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, })); map.put(59, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_META, })); map.put(60, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(61, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(62, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_EQUAL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(63, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(64, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PART, - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(65, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_EQUAL, })); map.put(66, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_AS, })); map.put(67, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, })); map.put(68, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(69, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_AS, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(70, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_DOT, - })); - map.put(71, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_TYPE, })); - map.put(72, Arrays.asList(new TerminalIdentifier[] { + map.put(71, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + })); + map.put(72, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_QMARK, + WdlTerminalIdentifier.TERMINAL_PLUS, })); map.put(73, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(74, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(75, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_WHILE, })); map.put(76, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(77, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(78, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(79, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_FLOAT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(80, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_AS, + WdlTerminalIdentifier.TERMINAL_META, })); map.put(81, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_TYPE, })); @@ -730,721 +762,690 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(83, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_FLOAT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(84, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(85, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(86, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(87, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_FQN, + WdlTerminalIdentifier.TERMINAL_IMPORT, })); map.put(88, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(89, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, })); map.put(90, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(91, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_NOT, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(92, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_FQN, + WdlTerminalIdentifier.TERMINAL_IMPORT, })); map.put(93, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PART, - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(94, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(95, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_DOT, })); map.put(96, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_FQN, })); map.put(97, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_QMARK, + WdlTerminalIdentifier.TERMINAL_PLUS, })); map.put(98, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_AS, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(99, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_CALL, })); map.put(100, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(101, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(102, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PART, - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(103, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_EQUAL, + WdlTerminalIdentifier.TERMINAL_CMD_PART, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, })); map.put(104, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_IMPORT, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, })); map.put(105, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_DOT, })); map.put(106, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_SCATTER, })); map.put(107, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(108, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_IMPORT, })); map.put(109, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_CMD_PART, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, })); map.put(110, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, - })); - map.put(111, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_TYPE, - })); - map.put(112, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_CALL, + })); + map.put(111, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_INPUT, + })); + map.put(112, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_FLOAT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(113, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_AS, })); map.put(114, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_QMARK, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(115, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(116, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(117, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_CMD_PART, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, })); map.put(118, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(119, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_DOT, + WdlTerminalIdentifier.TERMINAL_RUNTIME, })); map.put(120, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_AS, })); map.put(121, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - })); - map.put(122, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_COMMA, - })); - map.put(123, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, + })); + map.put(122, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + })); + map.put(123, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_OUTPUT, })); map.put(124, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_QMARK, + WdlTerminalIdentifier.TERMINAL_AS, })); map.put(125, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_IF, })); map.put(126, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(127, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(128, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_EQUAL, })); map.put(129, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_AS, + WdlTerminalIdentifier.TERMINAL_FQN, })); map.put(130, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); nonterminal_first = Collections.unmodifiableMap(map); } static { Map> map = new HashMap>(); map.put(56, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_FLOAT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(57, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(58, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(59, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(60, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(61, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, - })); - map.put(62, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_META, + })); + map.put(62, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(63, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(64, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PART, - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, - WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(65, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(66, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, + WdlTerminalIdentifier.TERMINAL_IMPORT, WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(67, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_CMD_PART, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, })); map.put(68, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(69, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(70, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(71, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(72, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(73, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(74, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(75, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(76, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_QMARK, + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(77, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_COMMA, - WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(78, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_IMPORT, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_RSQUARE, })); map.put(79, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(80, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(81, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_INPUT, - WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(82, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_COMMA, - WdlTerminalIdentifier.TERMINAL_RSQUARE, - WdlTerminalIdentifier.TERMINAL_QMARK, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(83, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_RPAREN, + WdlTerminalIdentifier.TERMINAL_LTEQ, + WdlTerminalIdentifier.TERMINAL_NOT_EQUAL, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_DOUBLE_EQUAL, + WdlTerminalIdentifier.TERMINAL_LT, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_END, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_SLASH, + WdlTerminalIdentifier.TERMINAL_DOUBLE_PIPE, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_GT, WdlTerminalIdentifier.TERMINAL_OBJECT, - })); - map.put(84, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_PERCENT, + WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_GTEQ, WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, - })); - map.put(85, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, + WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_ASTERISK, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_DOUBLE_AMPERSAND, + WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, - })); - map.put(86, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_RUNTIME, WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_COLON, })); - map.put(87, Arrays.asList(new TerminalIdentifier[] { + map.put(84, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_INPUT, + })); + map.put(85, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, WdlTerminalIdentifier.TERMINAL_COMMA, })); + map.put(86, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RSQUARE, + })); + map.put(87, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, + })); map.put(88, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(89, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, + })); + map.put(90, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RBRACE, - })); - map.put(90, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(91, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RPAREN, - WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(92, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(93, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, - })); - map.put(94, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_INPUT, })); - map.put(95, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + map.put(94, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_INPUT, - WdlTerminalIdentifier.TERMINAL_META, WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + })); + map.put(95, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(96, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, - WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_BOOLEAN, - WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(97, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_CMD_PART, - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, - WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(98, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_IMPORT, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_RPAREN, })); map.put(99, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(100, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_INPUT, })); map.put(101, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(102, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, + WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(103, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_TYPE, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, })); map.put(104, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, + WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, + WdlTerminalIdentifier.TERMINAL_FLOAT, + WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_LBRACE, })); map.put(105, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(106, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(107, Arrays.asList(new TerminalIdentifier[] { })); map.put(108, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(109, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, })); map.put(110, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_CALL, })); map.put(111, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_INPUT, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(112, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_RPAREN, })); map.put(113, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_LBRACE, WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(114, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(115, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, + })); + map.put(116, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_IF, WdlTerminalIdentifier.TERMINAL_TYPE, })); - map.put(116, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_INPUT, - })); map.put(117, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_CMD_PART, + WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START, + WdlTerminalIdentifier.TERMINAL_RAW_CMD_END, })); map.put(118, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(119, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_META, + WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_COMMA, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, })); map.put(120, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RPAREN, - WdlTerminalIdentifier.TERMINAL_RSQUARE, + WdlTerminalIdentifier.TERMINAL_IMPORT, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(121, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_COMMA, })); map.put(122, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, - })); - map.put(123, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_PLUS, - WdlTerminalIdentifier.TERMINAL_TYPE_E, - WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_DOUBLE_AMPERSAND, - WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, - WdlTerminalIdentifier.TERMINAL_RSQUARE, - WdlTerminalIdentifier.TERMINAL_CMD_PARAM_END, - WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_GTEQ, - WdlTerminalIdentifier.TERMINAL_LSQUARE, - WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_NOT_EQUAL, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_LT, - WdlTerminalIdentifier.TERMINAL_LPAREN, - WdlTerminalIdentifier.TERMINAL_RUNTIME, WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PERCENT, - WdlTerminalIdentifier.TERMINAL_INPUT, - WdlTerminalIdentifier.TERMINAL_COLON, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT, WdlTerminalIdentifier.TERMINAL_BOOLEAN, - WdlTerminalIdentifier.TERMINAL_ASTERISK, - WdlTerminalIdentifier.TERMINAL_COMMA, - WdlTerminalIdentifier.TERMINAL_DOUBLE_EQUAL, - WdlTerminalIdentifier.TERMINAL_CALL, - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_RPAREN, - WdlTerminalIdentifier.TERMINAL_DOUBLE_PIPE, - WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_LTEQ, - WdlTerminalIdentifier.TERMINAL_TYPE, WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_GT, - WdlTerminalIdentifier.TERMINAL_SLASH, WdlTerminalIdentifier.TERMINAL_OBJECT, + WdlTerminalIdentifier.TERMINAL_DASH, + WdlTerminalIdentifier.TERMINAL_LBRACE, + })); + map.put(123, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(124, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, + WdlTerminalIdentifier.TERMINAL_RBRACE, + WdlTerminalIdentifier.TERMINAL_LBRACE, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(125, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_SCATTER, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(126, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_OUTPUT, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, })); map.put(127, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, + })); + map.put(128, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_SCATTER, WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_RUNTIME, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_INPUT, + WdlTerminalIdentifier.TERMINAL_PARAMETER_META, + WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_WHILE, + WdlTerminalIdentifier.TERMINAL_IF, + WdlTerminalIdentifier.TERMINAL_CALL, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_RBRACE, })); - map.put(128, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RBRACE, - WdlTerminalIdentifier.TERMINAL_COMMA, - })); map.put(129, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, - WdlTerminalIdentifier.TERMINAL_IMPORT, - WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_RBRACE, })); map.put(130, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_RBRACE, @@ -1464,21 +1465,21 @@ public String invalidTerminal(String method, Terminal invalid) { map.put(3, Arrays.asList(new TerminalIdentifier[] { })); map.put(4, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(5, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(6, Arrays.asList(new TerminalIdentifier[] { })); map.put(7, Arrays.asList(new TerminalIdentifier[] { })); map.put(8, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_TASK, WdlTerminalIdentifier.TERMINAL_IMPORT, WdlTerminalIdentifier.TERMINAL_WORKFLOW, + WdlTerminalIdentifier.TERMINAL_TASK, })); map.put(9, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_WORKFLOW, @@ -1510,18 +1511,18 @@ public String invalidTerminal(String method, Terminal invalid) { map.put(18, Arrays.asList(new TerminalIdentifier[] { })); map.put(19, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_META, })); map.put(20, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, WdlTerminalIdentifier.TERMINAL_PARAMETER_META, - WdlTerminalIdentifier.TERMINAL_META, - WdlTerminalIdentifier.TERMINAL_OUTPUT, WdlTerminalIdentifier.TERMINAL_RUNTIME, + WdlTerminalIdentifier.TERMINAL_RAW_COMMAND, + WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_META, })); map.put(21, Arrays.asList(new TerminalIdentifier[] { })); @@ -1627,8 +1628,8 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_IDENTIFIER, })); map.put(57, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_PLUS, WdlTerminalIdentifier.TERMINAL_QMARK, + WdlTerminalIdentifier.TERMINAL_PLUS, })); map.put(58, Arrays.asList(new TerminalIdentifier[] { })); @@ -1651,37 +1652,37 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_PLUS, })); map.put(65, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(66, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_CALL, })); map.put(67, Arrays.asList(new TerminalIdentifier[] { + WdlTerminalIdentifier.TERMINAL_WHILE, WdlTerminalIdentifier.TERMINAL_SCATTER, - WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_OUTPUT, + WdlTerminalIdentifier.TERMINAL_TYPE_E, WdlTerminalIdentifier.TERMINAL_IF, - WdlTerminalIdentifier.TERMINAL_WHILE, - WdlTerminalIdentifier.TERMINAL_CALL, WdlTerminalIdentifier.TERMINAL_TYPE, + WdlTerminalIdentifier.TERMINAL_CALL, })); map.put(68, Arrays.asList(new TerminalIdentifier[] { })); @@ -1808,199 +1809,199 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_TYPE, })); map.put(113, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(114, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(115, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(116, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(117, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(118, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(119, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(120, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(121, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(122, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(123, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(124, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(125, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(126, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_NOT, @@ -2012,19 +2013,19 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_DASH, })); map.put(129, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(130, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_COMMA, @@ -2059,19 +2060,19 @@ public String invalidTerminal(String method, Terminal invalid) { WdlTerminalIdentifier.TERMINAL_LSQUARE, })); map.put(142, Arrays.asList(new TerminalIdentifier[] { - WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_PLUS, + WdlTerminalIdentifier.TERMINAL_E, + WdlTerminalIdentifier.TERMINAL_IDENTIFIER, + WdlTerminalIdentifier.TERMINAL_STRING, WdlTerminalIdentifier.TERMINAL_INTEGER, + WdlTerminalIdentifier.TERMINAL_LSQUARE, + WdlTerminalIdentifier.TERMINAL_LPAREN, WdlTerminalIdentifier.TERMINAL_BOOLEAN, + WdlTerminalIdentifier.TERMINAL_NOT, WdlTerminalIdentifier.TERMINAL_FLOAT, - WdlTerminalIdentifier.TERMINAL_LPAREN, + WdlTerminalIdentifier.TERMINAL_OBJECT, WdlTerminalIdentifier.TERMINAL_DASH, - WdlTerminalIdentifier.TERMINAL_IDENTIFIER, - WdlTerminalIdentifier.TERMINAL_LSQUARE, WdlTerminalIdentifier.TERMINAL_LBRACE, - WdlTerminalIdentifier.TERMINAL_STRING, - WdlTerminalIdentifier.TERMINAL_E, - WdlTerminalIdentifier.TERMINAL_OBJECT, })); map.put(143, Arrays.asList(new TerminalIdentifier[] { WdlTerminalIdentifier.TERMINAL_COMMA, @@ -2180,159 +2181,159 @@ public String invalidTerminal(String method, Terminal invalid) { map.put(128, new ArrayList()); map.put(129, new ArrayList()); map.put(130, new ArrayList()); - map.get(101).add("$_gen0 = $import $_gen1"); - map.get(109).add("$_gen1 = $import $_gen1"); - map.get(109).add("$_gen1 = :_empty"); - map.get(101).add("$_gen0 = :_empty"); + map.get(87).add("$_gen0 = $import $_gen1"); + map.get(108).add("$_gen1 = $import $_gen1"); + map.get(108).add("$_gen1 = :_empty"); + map.get(87).add("$_gen0 = :_empty"); map.get(107).add("$_gen2 = $workflow_or_task $_gen3"); - map.get(110).add("$_gen3 = $workflow_or_task $_gen3"); - map.get(110).add("$_gen3 = :_empty"); + map.get(77).add("$_gen3 = $workflow_or_task $_gen3"); + map.get(77).add("$_gen3 = :_empty"); map.get(107).add("$_gen2 = :_empty"); - map.get(104).add("$document = $_gen0 $_gen2 -> Document( imports=$0, definitions=$1 )"); - map.get(74).add("$workflow_or_task = $workflow"); - map.get(74).add("$workflow_or_task = $task"); - map.get(129).add("$_gen4 = $import_namespace"); - map.get(129).add("$_gen4 = :_empty"); - map.get(78).add("$import = :import :string $_gen4 -> Import( uri=$1, namespace=$2 )"); - map.get(98).add("$import_namespace = :as :identifier -> $1"); - map.get(111).add("$_gen5 = $declaration $_gen6"); - map.get(95).add("$_gen6 = $declaration $_gen6"); - map.get(95).add("$_gen6 = :_empty"); - map.get(111).add("$_gen5 = :_empty"); - map.get(88).add("$_gen7 = $sections $_gen8"); - map.get(121).add("$_gen8 = $sections $_gen8"); - map.get(121).add("$_gen8 = :_empty"); - map.get(88).add("$_gen7 = :_empty"); - map.get(66).add("$task = :task :identifier :lbrace $_gen5 $_gen7 :rbrace -> Task( name=$1, declarations=$3, sections=$4 )"); - map.get(126).add("$sections = $command"); - map.get(126).add("$sections = $outputs"); - map.get(126).add("$sections = $runtime"); - map.get(126).add("$sections = $parameter_meta"); - map.get(126).add("$sections = $meta"); - map.get(93).add("$_gen9 = $command_part $_gen10"); - map.get(102).add("$_gen10 = $command_part $_gen10"); - map.get(102).add("$_gen10 = :_empty"); - map.get(93).add("$_gen9 = :_empty"); - map.get(106).add("$command = :raw_command :raw_cmd_start $_gen9 :raw_cmd_end -> RawCommand( parts=$2 )"); - map.get(64).add("$command_part = :cmd_part"); - map.get(64).add("$command_part = $cmd_param"); - map.get(96).add("$_gen11 = $cmd_param_kv $_gen12"); - map.get(83).add("$_gen12 = $cmd_param_kv $_gen12"); - map.get(83).add("$_gen12 = :_empty"); - map.get(96).add("$_gen11 = :_empty"); - map.get(97).add("$cmd_param = :cmd_param_start $_gen11 $e :cmd_param_end -> CommandParameter( attributes=$1, expr=$2 )"); - map.get(85).add("$cmd_param_kv = :cmd_attr_hint :identifier :equal $e -> CommandParameterAttr( key=$1, value=$3 )"); - map.get(130).add("$_gen13 = $output_kv $_gen14"); - map.get(100).add("$_gen14 = $output_kv $_gen14"); - map.get(100).add("$_gen14 = :_empty"); - map.get(130).add("$_gen13 = :_empty"); - map.get(72).add("$outputs = :output :lbrace $_gen13 :rbrace -> Outputs( attributes=$2 )"); - map.get(71).add("$output_kv = $type_e :identifier :equal $e -> Output( type=$0, var=$1, expression=$3 )"); - map.get(127).add("$runtime = :runtime $map -> Runtime( map=$1 )"); - map.get(117).add("$parameter_meta = :parameter_meta $map -> ParameterMeta( map=$1 )"); - map.get(89).add("$meta = :meta $map -> Meta( map=$1 )"); - map.get(56).add("$_gen15 = $kv $_gen16"); - map.get(60).add("$_gen16 = $kv $_gen16"); - map.get(60).add("$_gen16 = :_empty"); - map.get(56).add("$_gen15 = :_empty"); - map.get(65).add("$map = :lbrace $_gen15 :rbrace -> $1"); - map.get(57).add("$kv = :identifier :colon $e -> RuntimeAttribute( key=$0, value=$2 )"); - map.get(114).add("$_gen17 = $postfix_quantifier"); - map.get(114).add("$_gen17 = :_empty"); - map.get(103).add("$_gen18 = $setter"); - map.get(103).add("$_gen18 = :_empty"); - map.get(81).add("$declaration = $type_e $_gen17 :identifier $_gen18 -> Declaration( type=$0, postfix=$1, name=$2, expression=$3 )"); - map.get(62).add("$setter = :equal $e -> $1"); - map.get(124).add("$postfix_quantifier = :qmark"); - map.get(124).add("$postfix_quantifier = :plus"); - map.get(128).add("$map_kv = $e :colon $e -> MapLiteralKv( key=$0, value=$2 )"); - map.get(58).add("$_gen19 = $wf_body_element $_gen20"); - map.get(112).add("$_gen20 = $wf_body_element $_gen20"); - map.get(112).add("$_gen20 = :_empty"); - map.get(58).add("$_gen19 = :_empty"); - map.get(67).add("$workflow = :workflow :identifier :lbrace $_gen19 :rbrace -> Workflow( name=$1, body=$3 )"); - map.get(105).add("$wf_body_element = $call"); - map.get(105).add("$wf_body_element = $declaration"); - map.get(105).add("$wf_body_element = $while_loop"); - map.get(105).add("$wf_body_element = $if_stmt"); - map.get(105).add("$wf_body_element = $scatter"); - map.get(105).add("$wf_body_element = $wf_outputs"); - map.get(69).add("$_gen21 = $alias"); - map.get(69).add("$_gen21 = :_empty"); - map.get(63).add("$_gen22 = $call_body"); - map.get(63).add("$_gen22 = :_empty"); - map.get(115).add("$call = :call :fqn $_gen21 $_gen22 -> Call( task=$1, alias=$2, body=$3 )"); - map.get(76).add("$_gen23 = $call_input $_gen24"); - map.get(75).add("$_gen24 = $call_input $_gen24"); - map.get(75).add("$_gen24 = :_empty"); - map.get(76).add("$_gen23 = :_empty"); - map.get(94).add("$call_body = :lbrace $_gen5 $_gen23 :rbrace -> CallBody( declarations=$1, io=$2 )"); - map.get(73).add("$_gen25 = $mapping $_gen26"); - map.get(116).add("$_gen26 = :comma $mapping $_gen26"); - map.get(116).add("$_gen26 = :_empty"); - map.get(73).add("$_gen25 = :_empty"); - map.get(125).add("$call_input = :input :colon $_gen25 -> Inputs( map=$2 )"); - map.get(77).add("$mapping = :identifier :equal $e -> IOMapping( key=$0, value=$2 )"); - map.get(80).add("$alias = :as :identifier -> $1"); - map.get(92).add("$_gen27 = $wf_output $_gen28"); - map.get(118).add("$_gen28 = :comma $wf_output $_gen28"); - map.get(118).add("$_gen28 = :_empty"); - map.get(92).add("$_gen27 = :_empty"); - map.get(68).add("$wf_outputs = :output :lbrace $_gen27 :rbrace -> WorkflowOutputs( outputs=$2 )"); - map.get(119).add("$_gen29 = $wf_output_wildcard"); - map.get(119).add("$_gen29 = :_empty"); - map.get(87).add("$wf_output = :fqn $_gen29 -> WorkflowOutput( fqn=$0, wildcard=$1 )"); - map.get(70).add("$wf_output_wildcard = :dot :asterisk -> $1"); - map.get(86).add("$while_loop = :while :lparen $e :rparen :lbrace $_gen19 :rbrace -> WhileLoop( expression=$2, body=$5 )"); - map.get(113).add("$if_stmt = :if :lparen $e :rparen :lbrace $_gen19 :rbrace -> If( expression=$2, body=$5 )"); - map.get(84).add("$scatter = :scatter :lparen :identifier :in $e :rparen :lbrace $_gen19 :rbrace -> Scatter( item=$2, collection=$4, body=$7 )"); - map.get(99).add("$object_kv = :identifier :colon $e -> ObjectKV( key=$0, value=$2 )"); - map.get(59).add("$_gen30 = $type_e $_gen31"); - map.get(79).add("$_gen31 = :comma $type_e $_gen31"); - map.get(79).add("$_gen31 = :_empty"); - map.get(59).add("$_gen30 = :_empty"); - map.get(82).add("$type_e = :type <=> :lsquare $_gen30 :rsquare -> Type( name=$0, subtype=$2 )"); - map.get(82).add("$type_e = :type"); - map.get(123).add("$e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :plus $e -> Add( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :slash $e -> Divide( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = :not $e -> LogicalNot( expression=$1 )"); - map.get(123).add("$e = :plus $e -> UnaryPlus( expression=$1 )"); - map.get(123).add("$e = :dash $e -> UnaryNegation( expression=$1 )"); - map.get(91).add("$_gen32 = $e $_gen33"); - map.get(120).add("$_gen33 = :comma $e $_gen33"); - map.get(120).add("$_gen33 = :_empty"); - map.get(91).add("$_gen32 = :_empty"); - map.get(123).add("$e = :identifier <=> :lparen $_gen32 :rparen -> FunctionCall( name=$0, params=$2 )"); - map.get(123).add("$e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 )"); - map.get(123).add("$e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 )"); - map.get(108).add("$_gen34 = $object_kv $_gen35"); - map.get(122).add("$_gen35 = :comma $object_kv $_gen35"); - map.get(122).add("$_gen35 = :_empty"); - map.get(108).add("$_gen34 = :_empty"); - map.get(123).add("$e = :object :lbrace $_gen34 :rbrace -> ObjectLiteral( map=$2 )"); - map.get(123).add("$e = :lsquare $_gen32 :rsquare -> ArrayLiteral( values=$1 )"); - map.get(90).add("$_gen36 = $map_kv $_gen37"); - map.get(61).add("$_gen37 = :comma $map_kv $_gen37"); - map.get(61).add("$_gen37 = :_empty"); - map.get(90).add("$_gen36 = :_empty"); - map.get(123).add("$e = :lbrace $_gen36 :rbrace -> MapLiteral( map=$1 )"); - map.get(123).add("$e = :lparen $e :rparen -> $1"); - map.get(123).add("$e = :string"); - map.get(123).add("$e = :identifier"); - map.get(123).add("$e = :boolean"); - map.get(123).add("$e = :integer"); - map.get(123).add("$e = :float"); + map.get(118).add("$document = $_gen0 $_gen2 -> Document( imports=$0, definitions=$1 )"); + map.get(115).add("$workflow_or_task = $workflow"); + map.get(115).add("$workflow_or_task = $task"); + map.get(120).add("$_gen4 = $import_namespace"); + map.get(120).add("$_gen4 = :_empty"); + map.get(92).add("$import = :import :string $_gen4 -> Import( uri=$1, namespace=$2 )"); + map.get(66).add("$import_namespace = :as :identifier -> $1"); + map.get(90).add("$_gen5 = $declaration $_gen6"); + map.get(62).add("$_gen6 = $declaration $_gen6"); + map.get(62).add("$_gen6 = :_empty"); + map.get(90).add("$_gen5 = :_empty"); + map.get(71).add("$_gen7 = $sections $_gen8"); + map.get(63).add("$_gen8 = $sections $_gen8"); + map.get(63).add("$_gen8 = :_empty"); + map.get(71).add("$_gen7 = :_empty"); + map.get(127).add("$task = :task :identifier :lbrace $_gen5 $_gen7 :rbrace -> Task( name=$1, declarations=$3, sections=$4 )"); + map.get(59).add("$sections = $command"); + map.get(59).add("$sections = $outputs"); + map.get(59).add("$sections = $runtime"); + map.get(59).add("$sections = $parameter_meta"); + map.get(59).add("$sections = $meta"); + map.get(103).add("$_gen9 = $command_part $_gen10"); + map.get(109).add("$_gen10 = $command_part $_gen10"); + map.get(109).add("$_gen10 = :_empty"); + map.get(103).add("$_gen9 = :_empty"); + map.get(91).add("$command = :raw_command :raw_cmd_start $_gen9 :raw_cmd_end -> RawCommand( parts=$2 )"); + map.get(117).add("$command_part = :cmd_part"); + map.get(117).add("$command_part = $cmd_param"); + map.get(56).add("$_gen11 = $cmd_param_kv $_gen12"); + map.get(104).add("$_gen12 = $cmd_param_kv $_gen12"); + map.get(104).add("$_gen12 = :_empty"); + map.get(56).add("$_gen11 = :_empty"); + map.get(67).add("$cmd_param = :cmd_param_start $_gen11 $e :cmd_param_end -> CommandParameter( attributes=$1, expr=$2 )"); + map.get(122).add("$cmd_param_kv = :cmd_attr_hint :identifier :equal $e -> CommandParameterAttr( key=$1, value=$3 )"); + map.get(60).add("$_gen13 = $output_kv $_gen14"); + map.get(102).add("$_gen14 = $output_kv $_gen14"); + map.get(102).add("$_gen14 = :_empty"); + map.get(60).add("$_gen13 = :_empty"); + map.get(94).add("$outputs = :output :lbrace $_gen13 :rbrace -> Outputs( attributes=$2 )"); + map.get(82).add("$output_kv = $type_e :identifier :equal $e -> Output( type=$0, var=$1, expression=$3 )"); + map.get(119).add("$runtime = :runtime $map -> Runtime( map=$1 )"); + map.get(58).add("$parameter_meta = :parameter_meta $map -> ParameterMeta( map=$1 )"); + map.get(80).add("$meta = :meta $map -> Meta( map=$1 )"); + map.get(114).add("$_gen15 = $kv $_gen16"); + map.get(74).add("$_gen16 = $kv $_gen16"); + map.get(74).add("$_gen16 = :_empty"); + map.get(114).add("$_gen15 = :_empty"); + map.get(64).add("$map = :lbrace $_gen15 :rbrace -> $1"); + map.get(88).add("$kv = :identifier :colon $e -> RuntimeAttribute( key=$0, value=$2 )"); + map.get(97).add("$_gen17 = $postfix_quantifier"); + map.get(97).add("$_gen17 = :_empty"); + map.get(128).add("$_gen18 = $setter"); + map.get(128).add("$_gen18 = :_empty"); + map.get(93).add("$declaration = $type_e $_gen17 :identifier $_gen18 -> Declaration( type=$0, postfix=$1, name=$2, expression=$3 )"); + map.get(65).add("$setter = :equal $e -> $1"); + map.get(72).add("$postfix_quantifier = :qmark"); + map.get(72).add("$postfix_quantifier = :plus"); + map.get(121).add("$map_kv = $e :colon $e -> MapLiteralKv( key=$0, value=$2 )"); + map.get(81).add("$_gen19 = $wf_body_element $_gen20"); + map.get(70).add("$_gen20 = $wf_body_element $_gen20"); + map.get(70).add("$_gen20 = :_empty"); + map.get(81).add("$_gen19 = :_empty"); + map.get(89).add("$workflow = :workflow :identifier :lbrace $_gen19 :rbrace -> Workflow( name=$1, body=$3 )"); + map.get(110).add("$wf_body_element = $call"); + map.get(110).add("$wf_body_element = $declaration"); + map.get(110).add("$wf_body_element = $while_loop"); + map.get(110).add("$wf_body_element = $if_stmt"); + map.get(110).add("$wf_body_element = $scatter"); + map.get(110).add("$wf_body_element = $wf_outputs"); + map.get(113).add("$_gen21 = $alias"); + map.get(113).add("$_gen21 = :_empty"); + map.get(61).add("$_gen22 = $call_body"); + map.get(61).add("$_gen22 = :_empty"); + map.get(99).add("$call = :call :fqn $_gen21 $_gen22 -> Call( task=$1, alias=$2, body=$3 )"); + map.get(126).add("$_gen23 = $call_input $_gen24"); + map.get(111).add("$_gen24 = $call_input $_gen24"); + map.get(111).add("$_gen24 = :_empty"); + map.get(126).add("$_gen23 = :_empty"); + map.get(116).add("$call_body = :lbrace $_gen5 $_gen23 :rbrace -> CallBody( declarations=$1, io=$2 )"); + map.get(84).add("$_gen25 = $mapping $_gen26"); + map.get(100).add("$_gen26 = :comma $mapping $_gen26"); + map.get(100).add("$_gen26 = :_empty"); + map.get(84).add("$_gen25 = :_empty"); + map.get(57).add("$call_input = :input :colon $_gen25 -> Inputs( map=$2 )"); + map.get(68).add("$mapping = :identifier :equal $e -> IOMapping( key=$0, value=$2 )"); + map.get(124).add("$alias = :as :identifier -> $1"); + map.get(129).add("$_gen27 = $wf_output $_gen28"); + map.get(69).add("$_gen28 = :comma $wf_output $_gen28"); + map.get(69).add("$_gen28 = :_empty"); + map.get(129).add("$_gen27 = :_empty"); + map.get(123).add("$wf_outputs = :output :lbrace $_gen27 :rbrace -> WorkflowOutputs( outputs=$2 )"); + map.get(95).add("$_gen29 = $wf_output_wildcard"); + map.get(95).add("$_gen29 = :_empty"); + map.get(96).add("$wf_output = :fqn $_gen29 -> WorkflowOutput( fqn=$0, wildcard=$1 )"); + map.get(105).add("$wf_output_wildcard = :dot :asterisk -> $1"); + map.get(75).add("$while_loop = :while :lparen $e :rparen :lbrace $_gen19 :rbrace -> WhileLoop( expression=$2, body=$5 )"); + map.get(125).add("$if_stmt = :if :lparen $e :rparen :lbrace $_gen19 :rbrace -> If( expression=$2, body=$5 )"); + map.get(106).add("$scatter = :scatter :lparen :identifier :in $e :rparen :lbrace $_gen19 :rbrace -> Scatter( item=$2, collection=$4, body=$7 )"); + map.get(85).add("$object_kv = :identifier :colon $e -> ObjectKV( key=$0, value=$2 )"); + map.get(78).add("$_gen30 = $type_e $_gen31"); + map.get(86).add("$_gen31 = :comma $type_e $_gen31"); + map.get(86).add("$_gen31 = :_empty"); + map.get(78).add("$_gen30 = :_empty"); + map.get(76).add("$type_e = :type <=> :lsquare $_gen30 :rsquare -> Type( name=$0, subtype=$2 )"); + map.get(76).add("$type_e = :type"); + map.get(83).add("$e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :plus $e -> Add( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :slash $e -> Divide( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = :not $e -> LogicalNot( expression=$1 )"); + map.get(83).add("$e = :plus $e -> UnaryPlus( expression=$1 )"); + map.get(83).add("$e = :dash $e -> UnaryNegation( expression=$1 )"); + map.get(112).add("$_gen32 = $e $_gen33"); + map.get(98).add("$_gen33 = :comma $e $_gen33"); + map.get(98).add("$_gen33 = :_empty"); + map.get(112).add("$_gen32 = :_empty"); + map.get(83).add("$e = :identifier <=> :lparen $_gen32 :rparen -> FunctionCall( name=$0, params=$2 )"); + map.get(83).add("$e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 )"); + map.get(83).add("$e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 )"); + map.get(130).add("$_gen34 = $object_kv $_gen35"); + map.get(73).add("$_gen35 = :comma $object_kv $_gen35"); + map.get(73).add("$_gen35 = :_empty"); + map.get(130).add("$_gen34 = :_empty"); + map.get(83).add("$e = :object :lbrace $_gen34 :rbrace -> ObjectLiteral( map=$2 )"); + map.get(83).add("$e = :lsquare $_gen32 :rsquare -> ArrayLiteral( values=$1 )"); + map.get(79).add("$_gen36 = $map_kv $_gen37"); + map.get(101).add("$_gen37 = :comma $map_kv $_gen37"); + map.get(101).add("$_gen37 = :_empty"); + map.get(79).add("$_gen36 = :_empty"); + map.get(83).add("$e = :lbrace $_gen36 :rbrace -> MapLiteral( map=$1 )"); + map.get(83).add("$e = :lparen $e :rparen -> $1"); + map.get(83).add("$e = :string"); + map.get(83).add("$e = :identifier"); + map.get(83).add("$e = :boolean"); + map.get(83).add("$e = :integer"); + map.get(83).add("$e = :float"); nonterminal_rules = Collections.unmodifiableMap(map); } static { @@ -2533,7 +2534,7 @@ private static Terminal expect(ParserContext ctx, TerminalIdentifier expecting) private static Map prefix_binding_power_type_e; static { Map map = new HashMap(); - map.put(10, 1000); /* $type_e = :type <=> :lsquare list(nt=$type_e, sep=:comma, min=0, sep_terminates=False) :rsquare -> Type( name=$0, subtype=$2 ) */ + map.put(49, 1000); /* $type_e = :type <=> :lsquare list(nt=$type_e, sep=:comma, min=0, sep_terminates=False) :rsquare -> Type( name=$0, subtype=$2 ) */ infix_binding_power_type_e = Collections.unmodifiableMap(map); } static { @@ -2574,7 +2575,7 @@ public static ParseTree parse_type_e_internal(ParserContext ctx, int rbp) throws return left; } private static ParseTree nud_type_e(ParserContext ctx) throws SyntaxError { - ParseTree tree = new ParseTree( new NonTerminal(82, "type_e") ); + ParseTree tree = new ParseTree( new NonTerminal(76, "type_e") ); Terminal current = ctx.tokens.current(); ctx.nonterminal = "type_e"; if (current == null) { @@ -2597,11 +2598,11 @@ else if (rule_first.get(112).contains(terminal_map.get(current.getId()))) { return tree; } private static ParseTree led_type_e(ParseTree left, ParserContext ctx) throws SyntaxError { - ParseTree tree = new ParseTree( new NonTerminal(82, "type_e") ); + ParseTree tree = new ParseTree( new NonTerminal(76, "type_e") ); Terminal current = ctx.tokens.current(); ctx.nonterminal = "type_e"; int modifier; - if (current.getId() == 10) { + if (current.getId() == 49) { /* $type_e = :type <=> :lsquare $_gen30 :rsquare -> Type( name=$0, subtype=$2 ) */ ctx.rule = rules.get(111); LinkedHashMap parameters = new LinkedHashMap(); @@ -2620,29 +2621,29 @@ private static ParseTree led_type_e(ParseTree left, ParserContext ctx) throws Sy private static Map prefix_binding_power_e; static { Map map = new HashMap(); - map.put(39, 2000); /* $e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 ) */ - map.put(4, 3000); /* $e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 ) */ - map.put(34, 4000); /* $e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 ) */ - map.put(17, 4000); /* $e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 ) */ - map.put(19, 5000); /* $e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 ) */ - map.put(42, 5000); /* $e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 ) */ - map.put(52, 5000); /* $e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 ) */ - map.put(11, 5000); /* $e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 ) */ - map.put(0, 6000); /* $e = $e :plus $e -> Add( lhs=$0, rhs=$2 ) */ - map.put(9, 6000); /* $e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 ) */ - map.put(32, 7000); /* $e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 ) */ - map.put(54, 7000); /* $e = $e :slash $e -> Divide( lhs=$0, rhs=$2 ) */ - map.put(24, 7000); /* $e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 ) */ - map.put(20, 9000); /* $e = :identifier <=> :lparen list(nt=$e, sep=:comma, min=0, sep_terminates=False) :rparen -> FunctionCall( name=$0, params=$2 ) */ - map.put(10, 10000); /* $e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 ) */ - map.put(6, 11000); /* $e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 ) */ + map.put(20, 2000); /* $e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 ) */ + map.put(40, 3000); /* $e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 ) */ + map.put(7, 4000); /* $e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 ) */ + map.put(3, 4000); /* $e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 ) */ + map.put(8, 5000); /* $e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 ) */ + map.put(4, 5000); /* $e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 ) */ + map.put(24, 5000); /* $e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 ) */ + map.put(30, 5000); /* $e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 ) */ + map.put(11, 6000); /* $e = $e :plus $e -> Add( lhs=$0, rhs=$2 ) */ + map.put(37, 6000); /* $e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 ) */ + map.put(34, 7000); /* $e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 ) */ + map.put(19, 7000); /* $e = $e :slash $e -> Divide( lhs=$0, rhs=$2 ) */ + map.put(28, 7000); /* $e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 ) */ + map.put(33, 9000); /* $e = :identifier <=> :lparen list(nt=$e, sep=:comma, min=0, sep_terminates=False) :rparen -> FunctionCall( name=$0, params=$2 ) */ + map.put(49, 10000); /* $e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 ) */ + map.put(46, 11000); /* $e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 ) */ infix_binding_power_e = Collections.unmodifiableMap(map); } static { Map map = new HashMap(); - map.put(45, 8000); /* $e = :not $e -> LogicalNot( expression=$1 ) */ - map.put(0, 8000); /* $e = :plus $e -> UnaryPlus( expression=$1 ) */ - map.put(9, 8000); /* $e = :dash $e -> UnaryNegation( expression=$1 ) */ + map.put(18, 8000); /* $e = :not $e -> LogicalNot( expression=$1 ) */ + map.put(11, 8000); /* $e = :plus $e -> UnaryPlus( expression=$1 ) */ + map.put(37, 8000); /* $e = :dash $e -> UnaryNegation( expression=$1 ) */ prefix_binding_power_e = Collections.unmodifiableMap(map); } static int get_infix_binding_power_e(int terminal_id) { @@ -2679,7 +2680,7 @@ public static ParseTree parse_e_internal(ParserContext ctx, int rbp) throws Synt return left; } private static ParseTree nud_e(ParserContext ctx) throws SyntaxError { - ParseTree tree = new ParseTree( new NonTerminal(123, "e") ); + ParseTree tree = new ParseTree( new NonTerminal(83, "e") ); Terminal current = ctx.tokens.current(); ctx.nonterminal = "e"; if (current == null) { @@ -2693,7 +2694,7 @@ else if (rule_first.get(126).contains(terminal_map.get(current.getId()))) { tree.setAstTransformation(new AstTransformNodeCreator("LogicalNot", parameters)); tree.setNudMorphemeCount(2); tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_NOT)); - tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(45))); + tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(18))); tree.setPrefix(true); } else if (rule_first.get(127).contains(terminal_map.get(current.getId()))) { @@ -2704,7 +2705,7 @@ else if (rule_first.get(127).contains(terminal_map.get(current.getId()))) { tree.setAstTransformation(new AstTransformNodeCreator("UnaryPlus", parameters)); tree.setNudMorphemeCount(2); tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_PLUS)); - tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(0))); + tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(11))); tree.setPrefix(true); } else if (rule_first.get(128).contains(terminal_map.get(current.getId()))) { @@ -2715,7 +2716,7 @@ else if (rule_first.get(128).contains(terminal_map.get(current.getId()))) { tree.setAstTransformation(new AstTransformNodeCreator("UnaryNegation", parameters)); tree.setNudMorphemeCount(2); tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_DASH)); - tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(9))); + tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(37))); tree.setPrefix(true); } else if (rule_first.get(133).contains(terminal_map.get(current.getId()))) { @@ -2820,11 +2821,11 @@ else if (rule_first.get(152).contains(terminal_map.get(current.getId()))) { return tree; } private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxError { - ParseTree tree = new ParseTree( new NonTerminal(123, "e") ); + ParseTree tree = new ParseTree( new NonTerminal(83, "e") ); Terminal current = ctx.tokens.current(); ctx.nonterminal = "e"; int modifier; - if (current.getId() == 39) { + if (current.getId() == 20) { /* $e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(113); LinkedHashMap parameters = new LinkedHashMap(); @@ -2836,10 +2837,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_DOUBLE_PIPE)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(39) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(20) - modifier)); return tree; } - if (current.getId() == 4) { + if (current.getId() == 40) { /* $e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(114); LinkedHashMap parameters = new LinkedHashMap(); @@ -2851,10 +2852,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_DOUBLE_AMPERSAND)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(4) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(40) - modifier)); return tree; } - if (current.getId() == 34) { + if (current.getId() == 7) { /* $e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(115); LinkedHashMap parameters = new LinkedHashMap(); @@ -2866,10 +2867,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_DOUBLE_EQUAL)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(34) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(7) - modifier)); return tree; } - if (current.getId() == 17) { + if (current.getId() == 3) { /* $e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(116); LinkedHashMap parameters = new LinkedHashMap(); @@ -2881,10 +2882,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_NOT_EQUAL)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(17) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(3) - modifier)); return tree; } - if (current.getId() == 19) { + if (current.getId() == 8) { /* $e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(117); LinkedHashMap parameters = new LinkedHashMap(); @@ -2896,10 +2897,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_LT)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(19) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(8) - modifier)); return tree; } - if (current.getId() == 42) { + if (current.getId() == 4) { /* $e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(118); LinkedHashMap parameters = new LinkedHashMap(); @@ -2911,10 +2912,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_LTEQ)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(42) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(4) - modifier)); return tree; } - if (current.getId() == 52) { + if (current.getId() == 24) { /* $e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(119); LinkedHashMap parameters = new LinkedHashMap(); @@ -2926,10 +2927,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_GT)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(52) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(24) - modifier)); return tree; } - if (current.getId() == 11) { + if (current.getId() == 30) { /* $e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(120); LinkedHashMap parameters = new LinkedHashMap(); @@ -2941,10 +2942,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_GTEQ)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(11) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(30) - modifier)); return tree; } - if (current.getId() == 0) { + if (current.getId() == 11) { /* $e = $e :plus $e -> Add( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(121); LinkedHashMap parameters = new LinkedHashMap(); @@ -2956,10 +2957,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_PLUS)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(0) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(11) - modifier)); return tree; } - if (current.getId() == 9) { + if (current.getId() == 37) { /* $e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(122); LinkedHashMap parameters = new LinkedHashMap(); @@ -2971,10 +2972,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_DASH)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(9) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(37) - modifier)); return tree; } - if (current.getId() == 32) { + if (current.getId() == 34) { /* $e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(123); LinkedHashMap parameters = new LinkedHashMap(); @@ -2986,10 +2987,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_ASTERISK)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(32) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(34) - modifier)); return tree; } - if (current.getId() == 54) { + if (current.getId() == 19) { /* $e = $e :slash $e -> Divide( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(124); LinkedHashMap parameters = new LinkedHashMap(); @@ -3001,10 +3002,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_SLASH)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(54) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(19) - modifier)); return tree; } - if (current.getId() == 24) { + if (current.getId() == 28) { /* $e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(125); LinkedHashMap parameters = new LinkedHashMap(); @@ -3016,10 +3017,10 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_PERCENT)); modifier = 0; tree.setInfix(true); - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(24) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(28) - modifier)); return tree; } - if (current.getId() == 20) { + if (current.getId() == 33) { /* $e = :identifier <=> :lparen $_gen32 :rparen -> FunctionCall( name=$0, params=$2 ) */ ctx.rule = rules.get(133); LinkedHashMap parameters = new LinkedHashMap(); @@ -3032,7 +3033,7 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN)); return tree; } - if (current.getId() == 10) { + if (current.getId() == 49) { /* $e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(134); LinkedHashMap parameters = new LinkedHashMap(); @@ -3042,11 +3043,11 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE tree.add(left); tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_LSQUARE)); modifier = 0; - tree.add(parse_e_internal(ctx, get_infix_binding_power_e(10) - modifier)); + tree.add(parse_e_internal(ctx, get_infix_binding_power_e(49) - modifier)); tree.add(expect(ctx, WdlTerminalIdentifier.TERMINAL_RSQUARE)); return tree; } - if (current.getId() == 6) { + if (current.getId() == 46) { /* $e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 ) */ ctx.rule = rules.get(135); LinkedHashMap parameters = new LinkedHashMap(); @@ -3060,17 +3061,17 @@ private static ParseTree led_e(ParseTree left, ParserContext ctx) throws SyntaxE } return tree; } - public ParseTree parse__gen15(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen11(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen15(ctx); + return parse__gen11(ctx); } - private static ParseTree parse__gen15(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen11(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[0][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(56, "_gen15")); - ctx.nonterminal = "_gen15"; + ParseTree tree = new ParseTree( new NonTerminal(56, "_gen11")); + ctx.nonterminal = "_gen11"; tree.setList(true); if ( current != null && !nonterminal_first.get(56).contains(terminal_map.get(current.getId())) && @@ -3080,134 +3081,173 @@ private static ParseTree parse__gen15(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 51) { - /* $_gen15 = $kv $_gen16 */ - ctx.rule = rules.get(51); + if (rule == 36) { + /* $_gen11 = $cmd_param_kv $_gen12 */ + ctx.rule = rules.get(36); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_kv(ctx); + subtree = parse_cmd_param_kv(ctx); tree.add(subtree); - subtree = parse__gen16(ctx); + subtree = parse__gen12(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_call_input(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_kv(ctx); + return parse_call_input(ctx); } - private static ParseTree parse_kv(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_call_input(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[1][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(57, "kv")); - ctx.nonterminal = "kv"; + ParseTree tree = new ParseTree( new NonTerminal(57, "call_input")); + ctx.nonterminal = "call_input"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "kv", + "call_input", nonterminal_first.get(57), nonterminal_rules.get(57) )); } - if (rule == 56) { - /* $kv = :identifier :colon $e -> RuntimeAttribute( key=$0, value=$2 ) */ - ctx.rule = rules.get(56); + if (rule == 91) { + /* $call_input = :input :colon $_gen25 -> Inputs( map=$2 ) */ + ctx.rule = rules.get(91); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("key", 0); - parameters.put("value", 2); - tree.setAstTransformation(new AstTransformNodeCreator("RuntimeAttribute", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + parameters.put("map", 2); + tree.setAstTransformation(new AstTransformNodeCreator("Inputs", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_INPUT); tree.add(next); next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); tree.add(next); - subtree = parse_e(ctx); + subtree = parse__gen25(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "kv", + "call_input", current, nonterminal_first.get(57), - rules.get(56) + rules.get(91) )); } - public ParseTree parse__gen19(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_parameter_meta(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen19(ctx); + return parse_parameter_meta(ctx); } - private static ParseTree parse__gen19(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_parameter_meta(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[2][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(58, "_gen19")); - ctx.nonterminal = "_gen19"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(58).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(58).contains(terminal_map.get(current.getId())) ) { - return tree; - } + ParseTree tree = new ParseTree( new NonTerminal(58, "parameter_meta")); + ctx.nonterminal = "parameter_meta"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "parameter_meta", + nonterminal_first.get(58), + nonterminal_rules.get(58) + )); } - if (rule == 66) { - /* $_gen19 = $wf_body_element $_gen20 */ - ctx.rule = rules.get(66); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_wf_body_element(ctx); - tree.add(subtree); - subtree = parse__gen20(ctx); + if (rule == 49) { + /* $parameter_meta = :parameter_meta $map -> ParameterMeta( map=$1 ) */ + ctx.rule = rules.get(49); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("map", 1); + tree.setAstTransformation(new AstTransformNodeCreator("ParameterMeta", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_PARAMETER_META); + tree.add(next); + subtree = parse_map(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "parameter_meta", + current, + nonterminal_first.get(58), + rules.get(49) + )); } - public ParseTree parse__gen30(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_sections(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen30(ctx); + return parse_sections(ctx); } - private static ParseTree parse__gen30(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_sections(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[3][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(59, "_gen30")); - ctx.nonterminal = "_gen30"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(59).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(59).contains(terminal_map.get(current.getId())) ) { + ParseTree tree = new ParseTree( new NonTerminal(59, "sections")); + ctx.nonterminal = "sections"; + tree.setList(false); + if (current == null) { + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "sections", + nonterminal_first.get(59), + nonterminal_rules.get(59) + )); + } + if (rule == 24) { + /* $sections = $command */ + ctx.rule = rules.get(24); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_command(ctx); + tree.add(subtree); return tree; } - if (current == null) { + else if (rule == 25) { + /* $sections = $outputs */ + ctx.rule = rules.get(25); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_outputs(ctx); + tree.add(subtree); return tree; } - if (rule == 107) { - /* $_gen30 = $type_e $_gen31 */ - ctx.rule = rules.get(107); + else if (rule == 26) { + /* $sections = $runtime */ + ctx.rule = rules.get(26); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_type_e(ctx); + subtree = parse_runtime(ctx); tree.add(subtree); - subtree = parse__gen31(ctx); + return tree; + } + else if (rule == 27) { + /* $sections = $parameter_meta */ + ctx.rule = rules.get(27); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_parameter_meta(ctx); tree.add(subtree); return tree; } - return tree; + else if (rule == 28) { + /* $sections = $meta */ + ctx.rule = rules.get(28); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_meta(ctx); + tree.add(subtree); + return tree; + } + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "sections", + current, + nonterminal_first.get(59), + rules.get(28) + )); } - public ParseTree parse__gen16(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen13(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen16(ctx); + return parse__gen13(ctx); } - private static ParseTree parse__gen16(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen13(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[4][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(60, "_gen16")); - ctx.nonterminal = "_gen16"; + ParseTree tree = new ParseTree( new NonTerminal(60, "_gen13")); + ctx.nonterminal = "_gen13"; tree.setList(true); if ( current != null && !nonterminal_first.get(60).contains(terminal_map.get(current.getId())) && @@ -3217,30 +3257,30 @@ private static ParseTree parse__gen16(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 52) { - /* $_gen16 = $kv $_gen16 */ - ctx.rule = rules.get(52); + if (rule == 42) { + /* $_gen13 = $output_kv $_gen14 */ + ctx.rule = rules.get(42); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_kv(ctx); + subtree = parse_output_kv(ctx); tree.add(subtree); - subtree = parse__gen16(ctx); + subtree = parse__gen14(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen37(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen22(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen37(ctx); + return parse__gen22(ctx); } - private static ParseTree parse__gen37(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen22(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[5][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(61, "_gen37")); - ctx.nonterminal = "_gen37"; - tree.setList(true); + ParseTree tree = new ParseTree( new NonTerminal(61, "_gen22")); + ctx.nonterminal = "_gen22"; + tree.setList(false); if ( current != null && !nonterminal_first.get(61).contains(terminal_map.get(current.getId())) && nonterminal_follow.get(61).contains(terminal_map.get(current.getId())) ) { @@ -3249,128 +3289,79 @@ private static ParseTree parse__gen37(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 143) { - /* $_gen37 = :comma $map_kv $_gen37 */ - ctx.rule = rules.get(143); + if (rule == 79) { + /* $_gen22 = $call_body */ + ctx.rule = rules.get(79); tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); - tree.add(next); - tree.setListSeparator(next); - subtree = parse_map_kv(ctx); - tree.add(subtree); - subtree = parse__gen37(ctx); + subtree = parse_call_body(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_setter(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { - ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_setter(ctx); - } - private static ParseTree parse_setter(ParserContext ctx) throws SyntaxError { - Terminal current = ctx.tokens.current(); - Terminal next; - ParseTree subtree; - int rule = (current != null) ? table[6][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(62, "setter")); - ctx.nonterminal = "setter"; - tree.setList(false); - if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "setter", - nonterminal_first.get(62), - nonterminal_rules.get(62) - )); - } - if (rule == 62) { - /* $setter = :equal $e -> $1 */ - ctx.rule = rules.get(62); - tree.setAstTransformation(new AstTransformSubstitution(1)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); - tree.add(next); - subtree = parse_e(ctx); - tree.add(subtree); - return tree; - } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "setter", - current, - nonterminal_first.get(62), - rules.get(62) - )); - } - public ParseTree parse__gen22(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen6(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen22(ctx); + return parse__gen6(ctx); } - private static ParseTree parse__gen22(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen6(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[7][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(63, "_gen22")); - ctx.nonterminal = "_gen22"; - tree.setList(false); + int rule = (current != null) ? table[6][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(62, "_gen6")); + ctx.nonterminal = "_gen6"; + tree.setList(true); if ( current != null && - !nonterminal_first.get(63).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(63).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(62).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(62).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 79) { - /* $_gen22 = $call_body */ - ctx.rule = rules.get(79); + if (rule == 16) { + /* $_gen6 = $declaration $_gen6 */ + ctx.rule = rules.get(16); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_call_body(ctx); + subtree = parse_declaration(ctx); + tree.add(subtree); + subtree = parse__gen6(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_command_part(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen8(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_command_part(ctx); + return parse__gen8(ctx); } - private static ParseTree parse_command_part(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen8(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[8][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(64, "command_part")); - ctx.nonterminal = "command_part"; - tree.setList(false); - if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "command_part", - nonterminal_first.get(64), - nonterminal_rules.get(64) - )); + int rule = (current != null) ? table[7][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(63, "_gen8")); + ctx.nonterminal = "_gen8"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(63).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(63).contains(terminal_map.get(current.getId())) ) { + return tree; } - if (rule == 34) { - /* $command_part = :cmd_part */ - ctx.rule = rules.get(34); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PART); - tree.add(next); + if (current == null) { return tree; } - else if (rule == 35) { - /* $command_part = $cmd_param */ - ctx.rule = rules.get(35); + if (rule == 20) { + /* $_gen8 = $sections $_gen8 */ + ctx.rule = rules.get(20); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_cmd_param(ctx); + subtree = parse_sections(ctx); + tree.add(subtree); + subtree = parse__gen8(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "command_part", - current, - nonterminal_first.get(64), - rules.get(35) - )); + return tree; } public ParseTree parse_map(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); @@ -3380,15 +3371,15 @@ private static ParseTree parse_map(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[9][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(65, "map")); + int rule = (current != null) ? table[8][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(64, "map")); ctx.nonterminal = "map"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( "map", - nonterminal_first.get(65), - nonterminal_rules.get(65) + nonterminal_first.get(64), + nonterminal_rules.get(64) )); } if (rule == 55) { @@ -3406,240 +3397,151 @@ private static ParseTree parse_map(ParserContext ctx) throws SyntaxError { throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( "map", current, - nonterminal_first.get(65), + nonterminal_first.get(64), rules.get(55) )); } - public ParseTree parse_task(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_setter(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_task(ctx); + return parse_setter(ctx); } - private static ParseTree parse_task(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_setter(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[10][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(66, "task")); - ctx.nonterminal = "task"; + int rule = (current != null) ? table[9][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(65, "setter")); + ctx.nonterminal = "setter"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "task", - nonterminal_first.get(66), - nonterminal_rules.get(66) + "setter", + nonterminal_first.get(65), + nonterminal_rules.get(65) )); } - if (rule == 23) { - /* $task = :task :identifier :lbrace $_gen5 $_gen7 :rbrace -> Task( name=$1, declarations=$3, sections=$4 ) */ - ctx.rule = rules.get(23); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("name", 1); - parameters.put("declarations", 3); - parameters.put("sections", 4); - tree.setAstTransformation(new AstTransformNodeCreator("Task", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_TASK); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + if (rule == 62) { + /* $setter = :equal $e -> $1 */ + ctx.rule = rules.get(62); + tree.setAstTransformation(new AstTransformSubstitution(1)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); tree.add(next); - subtree = parse__gen5(ctx); - tree.add(subtree); - subtree = parse__gen7(ctx); + subtree = parse_e(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "task", + "setter", current, - nonterminal_first.get(66), - rules.get(23) + nonterminal_first.get(65), + rules.get(62) )); } - public ParseTree parse_workflow(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_import_namespace(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_workflow(ctx); + return parse_import_namespace(ctx); } - private static ParseTree parse_workflow(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_import_namespace(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[11][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(67, "workflow")); - ctx.nonterminal = "workflow"; + int rule = (current != null) ? table[10][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(66, "import_namespace")); + ctx.nonterminal = "import_namespace"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "workflow", - nonterminal_first.get(67), - nonterminal_rules.get(67) + "import_namespace", + nonterminal_first.get(66), + nonterminal_rules.get(66) )); } - if (rule == 70) { - /* $workflow = :workflow :identifier :lbrace $_gen19 :rbrace -> Workflow( name=$1, body=$3 ) */ - ctx.rule = rules.get(70); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("name", 1); - parameters.put("body", 3); - tree.setAstTransformation(new AstTransformNodeCreator("Workflow", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_WORKFLOW); + if (rule == 14) { + /* $import_namespace = :as :identifier -> $1 */ + ctx.rule = rules.get(14); + tree.setAstTransformation(new AstTransformSubstitution(1)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_AS); tree.add(next); next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); - tree.add(next); - subtree = parse__gen19(ctx); - tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "workflow", + "import_namespace", current, - nonterminal_first.get(67), - rules.get(70) + nonterminal_first.get(66), + rules.get(14) )); } - public ParseTree parse_wf_outputs(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_cmd_param(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_wf_outputs(ctx); + return parse_cmd_param(ctx); } - private static ParseTree parse_wf_outputs(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_cmd_param(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[12][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(68, "wf_outputs")); - ctx.nonterminal = "wf_outputs"; + int rule = (current != null) ? table[11][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(67, "cmd_param")); + ctx.nonterminal = "cmd_param"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "wf_outputs", - nonterminal_first.get(68), - nonterminal_rules.get(68) + "cmd_param", + nonterminal_first.get(67), + nonterminal_rules.get(67) )); } - if (rule == 98) { - /* $wf_outputs = :output :lbrace $_gen27 :rbrace -> WorkflowOutputs( outputs=$2 ) */ - ctx.rule = rules.get(98); + if (rule == 40) { + /* $cmd_param = :cmd_param_start $_gen11 $e :cmd_param_end -> CommandParameter( attributes=$1, expr=$2 ) */ + ctx.rule = rules.get(40); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("outputs", 2); - tree.setAstTransformation(new AstTransformNodeCreator("WorkflowOutputs", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_OUTPUT); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + parameters.put("attributes", 1); + parameters.put("expr", 2); + tree.setAstTransformation(new AstTransformNodeCreator("CommandParameter", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START); tree.add(next); - subtree = parse__gen27(ctx); + subtree = parse__gen11(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); - return tree; - } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "wf_outputs", - current, - nonterminal_first.get(68), - rules.get(98) - )); - } - public ParseTree parse__gen21(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { - ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen21(ctx); - } - private static ParseTree parse__gen21(ParserContext ctx) throws SyntaxError { - Terminal current = ctx.tokens.current(); - Terminal next; - ParseTree subtree; - int rule = (current != null) ? table[13][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(69, "_gen21")); - ctx.nonterminal = "_gen21"; - tree.setList(false); - if ( current != null && - !nonterminal_first.get(69).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(69).contains(terminal_map.get(current.getId())) ) { - return tree; - } - if (current == null) { - return tree; - } - if (rule == 77) { - /* $_gen21 = $alias */ - ctx.rule = rules.get(77); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_alias(ctx); + subtree = parse_e(ctx); tree.add(subtree); - return tree; - } - return tree; - } - public ParseTree parse_wf_output_wildcard(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { - ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_wf_output_wildcard(ctx); - } - private static ParseTree parse_wf_output_wildcard(ParserContext ctx) throws SyntaxError { - Terminal current = ctx.tokens.current(); - Terminal next; - ParseTree subtree; - int rule = (current != null) ? table[14][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(70, "wf_output_wildcard")); - ctx.nonterminal = "wf_output_wildcard"; - tree.setList(false); - if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "wf_output_wildcard", - nonterminal_first.get(70), - nonterminal_rules.get(70) - )); - } - if (rule == 102) { - /* $wf_output_wildcard = :dot :asterisk -> $1 */ - ctx.rule = rules.get(102); - tree.setAstTransformation(new AstTransformSubstitution(1)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_DOT); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_ASTERISK); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PARAM_END); tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "wf_output_wildcard", + "cmd_param", current, - nonterminal_first.get(70), - rules.get(102) + nonterminal_first.get(67), + rules.get(40) )); } - public ParseTree parse_output_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_mapping(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_output_kv(ctx); + return parse_mapping(ctx); } - private static ParseTree parse_output_kv(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_mapping(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[15][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(71, "output_kv")); - ctx.nonterminal = "output_kv"; + int rule = (current != null) ? table[12][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(68, "mapping")); + ctx.nonterminal = "mapping"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "output_kv", - nonterminal_first.get(71), - nonterminal_rules.get(71) + "mapping", + nonterminal_first.get(68), + nonterminal_rules.get(68) )); } - if (rule == 47) { - /* $output_kv = $type_e :identifier :equal $e -> Output( type=$0, var=$1, expression=$3 ) */ - ctx.rule = rules.get(47); + if (rule == 92) { + /* $mapping = :identifier :equal $e -> IOMapping( key=$0, value=$2 ) */ + ctx.rule = rules.get(92); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("type", 0); - parameters.put("var", 1); - parameters.put("expression", 3); - tree.setAstTransformation(new AstTransformNodeCreator("Output", parameters)); - subtree = parse_type_e(ctx); - tree.add(subtree); + parameters.put("key", 0); + parameters.put("value", 2); + tree.setAstTransformation(new AstTransformNodeCreator("IOMapping", parameters)); next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); tree.add(next); next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); @@ -3649,301 +3551,325 @@ private static ParseTree parse_output_kv(ParserContext ctx) throws SyntaxError { return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "output_kv", + "mapping", current, - nonterminal_first.get(71), - rules.get(47) + nonterminal_first.get(68), + rules.get(92) )); } - public ParseTree parse_outputs(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen28(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_outputs(ctx); + return parse__gen28(ctx); } - private static ParseTree parse_outputs(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen28(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[16][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(72, "outputs")); - ctx.nonterminal = "outputs"; - tree.setList(false); + int rule = (current != null) ? table[13][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(69, "_gen28")); + ctx.nonterminal = "_gen28"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(69).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(69).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "outputs", - nonterminal_first.get(72), - nonterminal_rules.get(72) - )); + return tree; } - if (rule == 46) { - /* $outputs = :output :lbrace $_gen13 :rbrace -> Outputs( attributes=$2 ) */ - ctx.rule = rules.get(46); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("attributes", 2); - tree.setAstTransformation(new AstTransformNodeCreator("Outputs", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_OUTPUT); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + if (rule == 95) { + /* $_gen28 = :comma $wf_output $_gen28 */ + ctx.rule = rules.get(95); + tree.setAstTransformation(new AstTransformSubstitution(0)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); tree.add(next); - subtree = parse__gen13(ctx); + tree.setListSeparator(next); + subtree = parse_wf_output(ctx); + tree.add(subtree); + subtree = parse__gen28(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "outputs", - current, - nonterminal_first.get(72), - rules.get(46) - )); + return tree; } - public ParseTree parse__gen25(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen20(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen25(ctx); + return parse__gen20(ctx); } - private static ParseTree parse__gen25(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen20(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[17][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(73, "_gen25")); - ctx.nonterminal = "_gen25"; + int rule = (current != null) ? table[14][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(70, "_gen20")); + ctx.nonterminal = "_gen20"; tree.setList(true); if ( current != null && - !nonterminal_first.get(73).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(73).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(70).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(70).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 87) { - /* $_gen25 = $mapping $_gen26 */ - ctx.rule = rules.get(87); + if (rule == 67) { + /* $_gen20 = $wf_body_element $_gen20 */ + ctx.rule = rules.get(67); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_mapping(ctx); + subtree = parse_wf_body_element(ctx); tree.add(subtree); - subtree = parse__gen26(ctx); + subtree = parse__gen20(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_workflow_or_task(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen7(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_workflow_or_task(ctx); + return parse__gen7(ctx); } - private static ParseTree parse_workflow_or_task(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen7(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[18][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(74, "workflow_or_task")); - ctx.nonterminal = "workflow_or_task"; + int rule = (current != null) ? table[15][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(71, "_gen7")); + ctx.nonterminal = "_gen7"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(71).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(71).contains(terminal_map.get(current.getId())) ) { + return tree; + } + if (current == null) { + return tree; + } + if (rule == 19) { + /* $_gen7 = $sections $_gen8 */ + ctx.rule = rules.get(19); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_sections(ctx); + tree.add(subtree); + subtree = parse__gen8(ctx); + tree.add(subtree); + return tree; + } + return tree; + } + public ParseTree parse_postfix_quantifier(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); + return parse_postfix_quantifier(ctx); + } + private static ParseTree parse_postfix_quantifier(ParserContext ctx) throws SyntaxError { + Terminal current = ctx.tokens.current(); + Terminal next; + ParseTree subtree; + int rule = (current != null) ? table[16][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(72, "postfix_quantifier")); + ctx.nonterminal = "postfix_quantifier"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "workflow_or_task", - nonterminal_first.get(74), - nonterminal_rules.get(74) + "postfix_quantifier", + nonterminal_first.get(72), + nonterminal_rules.get(72) )); } - if (rule == 9) { - /* $workflow_or_task = $workflow */ - ctx.rule = rules.get(9); + if (rule == 63) { + /* $postfix_quantifier = :qmark */ + ctx.rule = rules.get(63); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_workflow(ctx); - tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_QMARK); + tree.add(next); return tree; } - else if (rule == 10) { - /* $workflow_or_task = $task */ - ctx.rule = rules.get(10); + else if (rule == 64) { + /* $postfix_quantifier = :plus */ + ctx.rule = rules.get(64); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_task(ctx); - tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_PLUS); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "workflow_or_task", + "postfix_quantifier", current, - nonterminal_first.get(74), - rules.get(10) + nonterminal_first.get(72), + rules.get(64) )); } - public ParseTree parse__gen24(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen35(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen24(ctx); + return parse__gen35(ctx); } - private static ParseTree parse__gen24(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen35(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[19][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(75, "_gen24")); - ctx.nonterminal = "_gen24"; + int rule = (current != null) ? table[17][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(73, "_gen35")); + ctx.nonterminal = "_gen35"; tree.setList(true); if ( current != null && - !nonterminal_first.get(75).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(75).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(73).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(73).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 83) { - /* $_gen24 = $call_input $_gen24 */ - ctx.rule = rules.get(83); + if (rule == 137) { + /* $_gen35 = :comma $object_kv $_gen35 */ + ctx.rule = rules.get(137); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_call_input(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + tree.add(next); + tree.setListSeparator(next); + subtree = parse_object_kv(ctx); tree.add(subtree); - subtree = parse__gen24(ctx); + subtree = parse__gen35(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen23(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen16(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen23(ctx); + return parse__gen16(ctx); } - private static ParseTree parse__gen23(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen16(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[20][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(76, "_gen23")); - ctx.nonterminal = "_gen23"; + int rule = (current != null) ? table[18][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(74, "_gen16")); + ctx.nonterminal = "_gen16"; tree.setList(true); if ( current != null && - !nonterminal_first.get(76).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(76).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(74).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(74).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 82) { - /* $_gen23 = $call_input $_gen24 */ - ctx.rule = rules.get(82); + if (rule == 52) { + /* $_gen16 = $kv $_gen16 */ + ctx.rule = rules.get(52); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_call_input(ctx); + subtree = parse_kv(ctx); tree.add(subtree); - subtree = parse__gen24(ctx); + subtree = parse__gen16(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_mapping(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_while_loop(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_mapping(ctx); + return parse_while_loop(ctx); } - private static ParseTree parse_mapping(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_while_loop(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[21][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(77, "mapping")); - ctx.nonterminal = "mapping"; + int rule = (current != null) ? table[19][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(75, "while_loop")); + ctx.nonterminal = "while_loop"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "mapping", - nonterminal_first.get(77), - nonterminal_rules.get(77) + "while_loop", + nonterminal_first.get(75), + nonterminal_rules.get(75) )); } - if (rule == 92) { - /* $mapping = :identifier :equal $e -> IOMapping( key=$0, value=$2 ) */ - ctx.rule = rules.get(92); + if (rule == 103) { + /* $while_loop = :while :lparen $e :rparen :lbrace $_gen19 :rbrace -> WhileLoop( expression=$2, body=$5 ) */ + ctx.rule = rules.get(103); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("key", 0); - parameters.put("value", 2); - tree.setAstTransformation(new AstTransformNodeCreator("IOMapping", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + parameters.put("expression", 2); + parameters.put("body", 5); + tree.setAstTransformation(new AstTransformNodeCreator("WhileLoop", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_WHILE); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); + tree.add(next); + subtree = parse_e(ctx); + tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); tree.add(next); - subtree = parse_e(ctx); + subtree = parse__gen19(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "mapping", + "while_loop", current, - nonterminal_first.get(77), - rules.get(92) + nonterminal_first.get(75), + rules.get(103) )); } - public ParseTree parse_import(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen3(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_import(ctx); + return parse__gen3(ctx); } - private static ParseTree parse_import(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen3(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[22][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(78, "import")); - ctx.nonterminal = "import"; - tree.setList(false); + int rule = (current != null) ? table[21][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(77, "_gen3")); + ctx.nonterminal = "_gen3"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(77).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(77).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "import", - nonterminal_first.get(78), - nonterminal_rules.get(78) - )); + return tree; } - if (rule == 13) { - /* $import = :import :string $_gen4 -> Import( uri=$1, namespace=$2 ) */ - ctx.rule = rules.get(13); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("uri", 1); - parameters.put("namespace", 2); - tree.setAstTransformation(new AstTransformNodeCreator("Import", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IMPORT); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_STRING); - tree.add(next); - subtree = parse__gen4(ctx); + if (rule == 5) { + /* $_gen3 = $workflow_or_task $_gen3 */ + ctx.rule = rules.get(5); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_workflow_or_task(ctx); + tree.add(subtree); + subtree = parse__gen3(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "import", - current, - nonterminal_first.get(78), - rules.get(13) - )); + return tree; } - public ParseTree parse__gen31(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen30(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen31(ctx); + return parse__gen30(ctx); } - private static ParseTree parse__gen31(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen30(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[23][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(79, "_gen31")); - ctx.nonterminal = "_gen31"; + int rule = (current != null) ? table[22][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(78, "_gen30")); + ctx.nonterminal = "_gen30"; tree.setList(true); if ( current != null && - !nonterminal_first.get(79).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(79).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(78).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(78).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 108) { - /* $_gen31 = :comma $type_e $_gen31 */ - ctx.rule = rules.get(108); + if (rule == 107) { + /* $_gen30 = $type_e $_gen31 */ + ctx.rule = rules.get(107); tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); - tree.add(next); - tree.setListSeparator(next); subtree = parse_type_e(ctx); tree.add(subtree); subtree = parse__gen31(ctx); @@ -3952,385 +3878,389 @@ private static ParseTree parse__gen31(ParserContext ctx) throws SyntaxError { } return tree; } - public ParseTree parse_alias(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen36(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_alias(ctx); + return parse__gen36(ctx); } - private static ParseTree parse_alias(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen36(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[24][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(80, "alias")); - ctx.nonterminal = "alias"; - tree.setList(false); + int rule = (current != null) ? table[23][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(79, "_gen36")); + ctx.nonterminal = "_gen36"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(79).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(79).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "alias", - nonterminal_first.get(80), - nonterminal_rules.get(80) - )); + return tree; } - if (rule == 93) { - /* $alias = :as :identifier -> $1 */ - ctx.rule = rules.get(93); - tree.setAstTransformation(new AstTransformSubstitution(1)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_AS); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); - tree.add(next); + if (rule == 142) { + /* $_gen36 = $map_kv $_gen37 */ + ctx.rule = rules.get(142); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_map_kv(ctx); + tree.add(subtree); + subtree = parse__gen37(ctx); + tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "alias", - current, - nonterminal_first.get(80), - rules.get(93) - )); + return tree; } - public ParseTree parse_declaration(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_meta(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_declaration(ctx); + return parse_meta(ctx); } - private static ParseTree parse_declaration(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_meta(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[25][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(81, "declaration")); - ctx.nonterminal = "declaration"; + int rule = (current != null) ? table[24][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(80, "meta")); + ctx.nonterminal = "meta"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "declaration", - nonterminal_first.get(81), - nonterminal_rules.get(81) + "meta", + nonterminal_first.get(80), + nonterminal_rules.get(80) )); } - if (rule == 61) { - /* $declaration = $type_e $_gen17 :identifier $_gen18 -> Declaration( type=$0, postfix=$1, name=$2, expression=$3 ) */ - ctx.rule = rules.get(61); + if (rule == 50) { + /* $meta = :meta $map -> Meta( map=$1 ) */ + ctx.rule = rules.get(50); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("type", 0); - parameters.put("postfix", 1); - parameters.put("name", 2); - parameters.put("expression", 3); - tree.setAstTransformation(new AstTransformNodeCreator("Declaration", parameters)); - subtree = parse_type_e(ctx); - tree.add(subtree); - subtree = parse__gen17(ctx); - tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + parameters.put("map", 1); + tree.setAstTransformation(new AstTransformNodeCreator("Meta", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_META); tree.add(next); - subtree = parse__gen18(ctx); + subtree = parse_map(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "declaration", + "meta", current, - nonterminal_first.get(81), - rules.get(61) + nonterminal_first.get(80), + rules.get(50) )); } - public ParseTree parse__gen12(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen19(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen12(ctx); + return parse__gen19(ctx); } - private static ParseTree parse__gen12(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen19(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[27][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(83, "_gen12")); - ctx.nonterminal = "_gen12"; + int rule = (current != null) ? table[25][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(81, "_gen19")); + ctx.nonterminal = "_gen19"; tree.setList(true); if ( current != null && - !nonterminal_first.get(83).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(83).contains(terminal_map.get(current.getId())) ) { + !nonterminal_first.get(81).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(81).contains(terminal_map.get(current.getId())) ) { return tree; } if (current == null) { return tree; } - if (rule == 37) { - /* $_gen12 = $cmd_param_kv $_gen12 */ - ctx.rule = rules.get(37); + if (rule == 66) { + /* $_gen19 = $wf_body_element $_gen20 */ + ctx.rule = rules.get(66); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_cmd_param_kv(ctx); + subtree = parse_wf_body_element(ctx); tree.add(subtree); - subtree = parse__gen12(ctx); + subtree = parse__gen20(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_scatter(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_output_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_scatter(ctx); + return parse_output_kv(ctx); } - private static ParseTree parse_scatter(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_output_kv(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; - int rule = (current != null) ? table[28][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(84, "scatter")); - ctx.nonterminal = "scatter"; + int rule = (current != null) ? table[26][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(82, "output_kv")); + ctx.nonterminal = "output_kv"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "scatter", - nonterminal_first.get(84), - nonterminal_rules.get(84) + "output_kv", + nonterminal_first.get(82), + nonterminal_rules.get(82) )); } - if (rule == 105) { - /* $scatter = :scatter :lparen :identifier :in $e :rparen :lbrace $_gen19 :rbrace -> Scatter( item=$2, collection=$4, body=$7 ) */ - ctx.rule = rules.get(105); + if (rule == 47) { + /* $output_kv = $type_e :identifier :equal $e -> Output( type=$0, var=$1, expression=$3 ) */ + ctx.rule = rules.get(47); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("item", 2); - parameters.put("collection", 4); - parameters.put("body", 7); - tree.setAstTransformation(new AstTransformNodeCreator("Scatter", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_SCATTER); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); - tree.add(next); + parameters.put("type", 0); + parameters.put("var", 1); + parameters.put("expression", 3); + tree.setAstTransformation(new AstTransformNodeCreator("Output", parameters)); + subtree = parse_type_e(ctx); + tree.add(subtree); next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IN); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); tree.add(next); subtree = parse_e(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); - tree.add(next); - subtree = parse__gen19(ctx); - tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "scatter", + "output_kv", current, - nonterminal_first.get(84), - rules.get(105) + nonterminal_first.get(82), + rules.get(47) )); } - public ParseTree parse_cmd_param_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen25(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); + return parse__gen25(ctx); + } + private static ParseTree parse__gen25(ParserContext ctx) throws SyntaxError { + Terminal current = ctx.tokens.current(); + Terminal next; + ParseTree subtree; + int rule = (current != null) ? table[28][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(84, "_gen25")); + ctx.nonterminal = "_gen25"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(84).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(84).contains(terminal_map.get(current.getId())) ) { + return tree; + } + if (current == null) { + return tree; + } + if (rule == 87) { + /* $_gen25 = $mapping $_gen26 */ + ctx.rule = rules.get(87); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_mapping(ctx); + tree.add(subtree); + subtree = parse__gen26(ctx); + tree.add(subtree); + return tree; + } + return tree; + } + public ParseTree parse_object_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_cmd_param_kv(ctx); + return parse_object_kv(ctx); } - private static ParseTree parse_cmd_param_kv(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_object_kv(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[29][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(85, "cmd_param_kv")); - ctx.nonterminal = "cmd_param_kv"; + ParseTree tree = new ParseTree( new NonTerminal(85, "object_kv")); + ctx.nonterminal = "object_kv"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "cmd_param_kv", + "object_kv", nonterminal_first.get(85), nonterminal_rules.get(85) )); } - if (rule == 41) { - /* $cmd_param_kv = :cmd_attr_hint :identifier :equal $e -> CommandParameterAttr( key=$1, value=$3 ) */ - ctx.rule = rules.get(41); + if (rule == 106) { + /* $object_kv = :identifier :colon $e -> ObjectKV( key=$0, value=$2 ) */ + ctx.rule = rules.get(106); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("key", 1); - parameters.put("value", 3); - tree.setAstTransformation(new AstTransformNodeCreator("CommandParameterAttr", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT); - tree.add(next); + parameters.put("key", 0); + parameters.put("value", 2); + tree.setAstTransformation(new AstTransformNodeCreator("ObjectKV", parameters)); next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); tree.add(next); subtree = parse_e(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "cmd_param_kv", + "object_kv", current, nonterminal_first.get(85), - rules.get(41) + rules.get(106) )); } - public ParseTree parse_while_loop(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen31(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_while_loop(ctx); + return parse__gen31(ctx); } - private static ParseTree parse_while_loop(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen31(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[30][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(86, "while_loop")); - ctx.nonterminal = "while_loop"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(86, "_gen31")); + ctx.nonterminal = "_gen31"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(86).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(86).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "while_loop", - nonterminal_first.get(86), - nonterminal_rules.get(86) - )); + return tree; } - if (rule == 103) { - /* $while_loop = :while :lparen $e :rparen :lbrace $_gen19 :rbrace -> WhileLoop( expression=$2, body=$5 ) */ - ctx.rule = rules.get(103); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("expression", 2); - parameters.put("body", 5); - tree.setAstTransformation(new AstTransformNodeCreator("WhileLoop", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_WHILE); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); + if (rule == 108) { + /* $_gen31 = :comma $type_e $_gen31 */ + ctx.rule = rules.get(108); + tree.setAstTransformation(new AstTransformSubstitution(0)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); tree.add(next); - subtree = parse_e(ctx); + tree.setListSeparator(next); + subtree = parse_type_e(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); - tree.add(next); - subtree = parse__gen19(ctx); + subtree = parse__gen31(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "while_loop", - current, - nonterminal_first.get(86), - rules.get(103) - )); + return tree; } - public ParseTree parse_wf_output(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen0(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_wf_output(ctx); + return parse__gen0(ctx); } - private static ParseTree parse_wf_output(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen0(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[31][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(87, "wf_output")); - ctx.nonterminal = "wf_output"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(87, "_gen0")); + ctx.nonterminal = "_gen0"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(87).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(87).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "wf_output", - nonterminal_first.get(87), - nonterminal_rules.get(87) - )); + return tree; } - if (rule == 101) { - /* $wf_output = :fqn $_gen29 -> WorkflowOutput( fqn=$0, wildcard=$1 ) */ - ctx.rule = rules.get(101); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("fqn", 0); - parameters.put("wildcard", 1); - tree.setAstTransformation(new AstTransformNodeCreator("WorkflowOutput", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_FQN); - tree.add(next); - subtree = parse__gen29(ctx); + if (rule == 0) { + /* $_gen0 = $import $_gen1 */ + ctx.rule = rules.get(0); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_import(ctx); + tree.add(subtree); + subtree = parse__gen1(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "wf_output", - current, - nonterminal_first.get(87), - rules.get(101) - )); + return tree; } - public ParseTree parse__gen7(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen7(ctx); + return parse_kv(ctx); } - private static ParseTree parse__gen7(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_kv(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[32][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(88, "_gen7")); - ctx.nonterminal = "_gen7"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(88).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(88).contains(terminal_map.get(current.getId())) ) { - return tree; - } + ParseTree tree = new ParseTree( new NonTerminal(88, "kv")); + ctx.nonterminal = "kv"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "kv", + nonterminal_first.get(88), + nonterminal_rules.get(88) + )); } - if (rule == 19) { - /* $_gen7 = $sections $_gen8 */ - ctx.rule = rules.get(19); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_sections(ctx); - tree.add(subtree); - subtree = parse__gen8(ctx); + if (rule == 56) { + /* $kv = :identifier :colon $e -> RuntimeAttribute( key=$0, value=$2 ) */ + ctx.rule = rules.get(56); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("key", 0); + parameters.put("value", 2); + tree.setAstTransformation(new AstTransformNodeCreator("RuntimeAttribute", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); + tree.add(next); + subtree = parse_e(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "kv", + current, + nonterminal_first.get(88), + rules.get(56) + )); } - public ParseTree parse_meta(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_workflow(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_meta(ctx); + return parse_workflow(ctx); } - private static ParseTree parse_meta(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_workflow(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[33][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(89, "meta")); - ctx.nonterminal = "meta"; + ParseTree tree = new ParseTree( new NonTerminal(89, "workflow")); + ctx.nonterminal = "workflow"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "meta", + "workflow", nonterminal_first.get(89), nonterminal_rules.get(89) )); } - if (rule == 50) { - /* $meta = :meta $map -> Meta( map=$1 ) */ - ctx.rule = rules.get(50); + if (rule == 70) { + /* $workflow = :workflow :identifier :lbrace $_gen19 :rbrace -> Workflow( name=$1, body=$3 ) */ + ctx.rule = rules.get(70); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("map", 1); - tree.setAstTransformation(new AstTransformNodeCreator("Meta", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_META); + parameters.put("name", 1); + parameters.put("body", 3); + tree.setAstTransformation(new AstTransformNodeCreator("Workflow", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_WORKFLOW); tree.add(next); - subtree = parse_map(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen19(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "meta", + "workflow", current, nonterminal_first.get(89), - rules.get(50) + rules.get(70) )); } - public ParseTree parse__gen36(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen5(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen36(ctx); + return parse__gen5(ctx); } - private static ParseTree parse__gen36(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen5(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[34][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(90, "_gen36")); - ctx.nonterminal = "_gen36"; + ParseTree tree = new ParseTree( new NonTerminal(90, "_gen5")); + ctx.nonterminal = "_gen5"; tree.setList(true); if ( current != null && !nonterminal_first.get(90).contains(terminal_map.get(current.getId())) && @@ -4340,169 +4270,200 @@ private static ParseTree parse__gen36(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 142) { - /* $_gen36 = $map_kv $_gen37 */ - ctx.rule = rules.get(142); + if (rule == 15) { + /* $_gen5 = $declaration $_gen6 */ + ctx.rule = rules.get(15); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_map_kv(ctx); + subtree = parse_declaration(ctx); tree.add(subtree); - subtree = parse__gen37(ctx); + subtree = parse__gen6(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen32(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_command(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen32(ctx); + return parse_command(ctx); } - private static ParseTree parse__gen32(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_command(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[35][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(91, "_gen32")); - ctx.nonterminal = "_gen32"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(91).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(91).contains(terminal_map.get(current.getId())) ) { - return tree; - } + ParseTree tree = new ParseTree( new NonTerminal(91, "command")); + ctx.nonterminal = "command"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "command", + nonterminal_first.get(91), + nonterminal_rules.get(91) + )); } - if (rule == 129) { - /* $_gen32 = $e $_gen33 */ - ctx.rule = rules.get(129); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_e(ctx); - tree.add(subtree); - subtree = parse__gen33(ctx); + if (rule == 33) { + /* $command = :raw_command :raw_cmd_start $_gen9 :raw_cmd_end -> RawCommand( parts=$2 ) */ + ctx.rule = rules.get(33); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("parts", 2); + tree.setAstTransformation(new AstTransformNodeCreator("RawCommand", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_CMD_START); + tree.add(next); + subtree = parse__gen9(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_CMD_END); + tree.add(next); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "command", + current, + nonterminal_first.get(91), + rules.get(33) + )); } - public ParseTree parse__gen27(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_import(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen27(ctx); + return parse_import(ctx); } - private static ParseTree parse__gen27(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_import(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[36][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(92, "_gen27")); - ctx.nonterminal = "_gen27"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(92).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(92).contains(terminal_map.get(current.getId())) ) { - return tree; - } + ParseTree tree = new ParseTree( new NonTerminal(92, "import")); + ctx.nonterminal = "import"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "import", + nonterminal_first.get(92), + nonterminal_rules.get(92) + )); } - if (rule == 94) { - /* $_gen27 = $wf_output $_gen28 */ - ctx.rule = rules.get(94); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_wf_output(ctx); - tree.add(subtree); - subtree = parse__gen28(ctx); + if (rule == 13) { + /* $import = :import :string $_gen4 -> Import( uri=$1, namespace=$2 ) */ + ctx.rule = rules.get(13); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("uri", 1); + parameters.put("namespace", 2); + tree.setAstTransformation(new AstTransformNodeCreator("Import", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IMPORT); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_STRING); + tree.add(next); + subtree = parse__gen4(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "import", + current, + nonterminal_first.get(92), + rules.get(13) + )); } - public ParseTree parse__gen9(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_declaration(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen9(ctx); + return parse_declaration(ctx); } - private static ParseTree parse__gen9(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_declaration(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[37][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(93, "_gen9")); - ctx.nonterminal = "_gen9"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(93).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(93).contains(terminal_map.get(current.getId())) ) { - return tree; - } + ParseTree tree = new ParseTree( new NonTerminal(93, "declaration")); + ctx.nonterminal = "declaration"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "declaration", + nonterminal_first.get(93), + nonterminal_rules.get(93) + )); } - if (rule == 29) { - /* $_gen9 = $command_part $_gen10 */ - ctx.rule = rules.get(29); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_command_part(ctx); + if (rule == 61) { + /* $declaration = $type_e $_gen17 :identifier $_gen18 -> Declaration( type=$0, postfix=$1, name=$2, expression=$3 ) */ + ctx.rule = rules.get(61); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("type", 0); + parameters.put("postfix", 1); + parameters.put("name", 2); + parameters.put("expression", 3); + tree.setAstTransformation(new AstTransformNodeCreator("Declaration", parameters)); + subtree = parse_type_e(ctx); tree.add(subtree); - subtree = parse__gen10(ctx); + subtree = parse__gen17(ctx); + tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); + subtree = parse__gen18(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "declaration", + current, + nonterminal_first.get(93), + rules.get(61) + )); } - public ParseTree parse_call_body(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_outputs(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_call_body(ctx); + return parse_outputs(ctx); } - private static ParseTree parse_call_body(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_outputs(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[38][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(94, "call_body")); - ctx.nonterminal = "call_body"; + ParseTree tree = new ParseTree( new NonTerminal(94, "outputs")); + ctx.nonterminal = "outputs"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "call_body", + "outputs", nonterminal_first.get(94), nonterminal_rules.get(94) )); } - if (rule == 86) { - /* $call_body = :lbrace $_gen5 $_gen23 :rbrace -> CallBody( declarations=$1, io=$2 ) */ - ctx.rule = rules.get(86); + if (rule == 46) { + /* $outputs = :output :lbrace $_gen13 :rbrace -> Outputs( attributes=$2 ) */ + ctx.rule = rules.get(46); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("declarations", 1); - parameters.put("io", 2); - tree.setAstTransformation(new AstTransformNodeCreator("CallBody", parameters)); + parameters.put("attributes", 2); + tree.setAstTransformation(new AstTransformNodeCreator("Outputs", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_OUTPUT); + tree.add(next); next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); tree.add(next); - subtree = parse__gen5(ctx); - tree.add(subtree); - subtree = parse__gen23(ctx); + subtree = parse__gen13(ctx); tree.add(subtree); next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "call_body", + "outputs", current, nonterminal_first.get(94), - rules.get(86) + rules.get(46) )); } - public ParseTree parse__gen6(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen29(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen6(ctx); + return parse__gen29(ctx); } - private static ParseTree parse__gen6(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen29(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[39][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(95, "_gen6")); - ctx.nonterminal = "_gen6"; - tree.setList(true); + ParseTree tree = new ParseTree( new NonTerminal(95, "_gen29")); + ctx.nonterminal = "_gen29"; + tree.setList(false); if ( current != null && !nonterminal_first.get(95).contains(terminal_map.get(current.getId())) && nonterminal_follow.get(95).contains(terminal_map.get(current.getId())) ) { @@ -4511,181 +4472,175 @@ private static ParseTree parse__gen6(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 16) { - /* $_gen6 = $declaration $_gen6 */ - ctx.rule = rules.get(16); + if (rule == 99) { + /* $_gen29 = $wf_output_wildcard */ + ctx.rule = rules.get(99); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_declaration(ctx); - tree.add(subtree); - subtree = parse__gen6(ctx); + subtree = parse_wf_output_wildcard(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen11(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_wf_output(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen11(ctx); + return parse_wf_output(ctx); } - private static ParseTree parse__gen11(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_wf_output(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[40][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(96, "_gen11")); - ctx.nonterminal = "_gen11"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(96).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(96).contains(terminal_map.get(current.getId())) ) { - return tree; - } + ParseTree tree = new ParseTree( new NonTerminal(96, "wf_output")); + ctx.nonterminal = "wf_output"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "wf_output", + nonterminal_first.get(96), + nonterminal_rules.get(96) + )); } - if (rule == 36) { - /* $_gen11 = $cmd_param_kv $_gen12 */ - ctx.rule = rules.get(36); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_cmd_param_kv(ctx); - tree.add(subtree); - subtree = parse__gen12(ctx); + if (rule == 101) { + /* $wf_output = :fqn $_gen29 -> WorkflowOutput( fqn=$0, wildcard=$1 ) */ + ctx.rule = rules.get(101); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("fqn", 0); + parameters.put("wildcard", 1); + tree.setAstTransformation(new AstTransformNodeCreator("WorkflowOutput", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_FQN); + tree.add(next); + subtree = parse__gen29(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "wf_output", + current, + nonterminal_first.get(96), + rules.get(101) + )); } - public ParseTree parse_cmd_param(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen17(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_cmd_param(ctx); + return parse__gen17(ctx); } - private static ParseTree parse_cmd_param(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen17(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[41][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(97, "cmd_param")); - ctx.nonterminal = "cmd_param"; + ParseTree tree = new ParseTree( new NonTerminal(97, "_gen17")); + ctx.nonterminal = "_gen17"; tree.setList(false); + if ( current != null && + !nonterminal_first.get(97).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(97).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "cmd_param", - nonterminal_first.get(97), - nonterminal_rules.get(97) - )); + return tree; } - if (rule == 40) { - /* $cmd_param = :cmd_param_start $_gen11 $e :cmd_param_end -> CommandParameter( attributes=$1, expr=$2 ) */ - ctx.rule = rules.get(40); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("attributes", 1); - parameters.put("expr", 2); - tree.setAstTransformation(new AstTransformNodeCreator("CommandParameter", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PARAM_START); - tree.add(next); - subtree = parse__gen11(ctx); - tree.add(subtree); - subtree = parse_e(ctx); + if (rule == 57) { + /* $_gen17 = $postfix_quantifier */ + ctx.rule = rules.get(57); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_postfix_quantifier(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PARAM_END); - tree.add(next); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "cmd_param", - current, - nonterminal_first.get(97), - rules.get(40) - )); + return tree; } - public ParseTree parse_import_namespace(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen33(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_import_namespace(ctx); + return parse__gen33(ctx); } - private static ParseTree parse_import_namespace(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen33(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[42][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(98, "import_namespace")); - ctx.nonterminal = "import_namespace"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(98, "_gen33")); + ctx.nonterminal = "_gen33"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(98).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(98).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "import_namespace", - nonterminal_first.get(98), - nonterminal_rules.get(98) - )); + return tree; } - if (rule == 14) { - /* $import_namespace = :as :identifier -> $1 */ - ctx.rule = rules.get(14); - tree.setAstTransformation(new AstTransformSubstitution(1)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_AS); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + if (rule == 130) { + /* $_gen33 = :comma $e $_gen33 */ + ctx.rule = rules.get(130); + tree.setAstTransformation(new AstTransformSubstitution(0)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); tree.add(next); + tree.setListSeparator(next); + subtree = parse_e(ctx); + tree.add(subtree); + subtree = parse__gen33(ctx); + tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "import_namespace", - current, - nonterminal_first.get(98), - rules.get(14) - )); + return tree; } - public ParseTree parse_object_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_call(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_object_kv(ctx); + return parse_call(ctx); } - private static ParseTree parse_object_kv(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_call(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[43][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(99, "object_kv")); - ctx.nonterminal = "object_kv"; + ParseTree tree = new ParseTree( new NonTerminal(99, "call")); + ctx.nonterminal = "call"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "object_kv", + "call", nonterminal_first.get(99), nonterminal_rules.get(99) )); } - if (rule == 106) { - /* $object_kv = :identifier :colon $e -> ObjectKV( key=$0, value=$2 ) */ - ctx.rule = rules.get(106); + if (rule == 81) { + /* $call = :call :fqn $_gen21 $_gen22 -> Call( task=$1, alias=$2, body=$3 ) */ + ctx.rule = rules.get(81); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("key", 0); - parameters.put("value", 2); - tree.setAstTransformation(new AstTransformNodeCreator("ObjectKV", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + parameters.put("task", 1); + parameters.put("alias", 2); + parameters.put("body", 3); + tree.setAstTransformation(new AstTransformNodeCreator("Call", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CALL); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_FQN); tree.add(next); - subtree = parse_e(ctx); + subtree = parse__gen21(ctx); + tree.add(subtree); + subtree = parse__gen22(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "object_kv", + "call", current, nonterminal_first.get(99), - rules.get(106) + rules.get(81) )); } - public ParseTree parse__gen14(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen26(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen14(ctx); + return parse__gen26(ctx); } - private static ParseTree parse__gen14(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen26(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[44][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(100, "_gen14")); - ctx.nonterminal = "_gen14"; + ParseTree tree = new ParseTree( new NonTerminal(100, "_gen26")); + ctx.nonterminal = "_gen26"; tree.setList(true); if ( current != null && !nonterminal_first.get(100).contains(terminal_map.get(current.getId())) && @@ -4695,29 +4650,32 @@ private static ParseTree parse__gen14(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 43) { - /* $_gen14 = $output_kv $_gen14 */ - ctx.rule = rules.get(43); + if (rule == 88) { + /* $_gen26 = :comma $mapping $_gen26 */ + ctx.rule = rules.get(88); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_output_kv(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + tree.add(next); + tree.setListSeparator(next); + subtree = parse_mapping(ctx); tree.add(subtree); - subtree = parse__gen14(ctx); + subtree = parse__gen26(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen0(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen37(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen0(ctx); + return parse__gen37(ctx); } - private static ParseTree parse__gen0(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen37(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[45][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(101, "_gen0")); - ctx.nonterminal = "_gen0"; + ParseTree tree = new ParseTree( new NonTerminal(101, "_gen37")); + ctx.nonterminal = "_gen37"; tree.setList(true); if ( current != null && !nonterminal_first.get(101).contains(terminal_map.get(current.getId())) && @@ -4727,29 +4685,32 @@ private static ParseTree parse__gen0(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 0) { - /* $_gen0 = $import $_gen1 */ - ctx.rule = rules.get(0); + if (rule == 143) { + /* $_gen37 = :comma $map_kv $_gen37 */ + ctx.rule = rules.get(143); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_import(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + tree.add(next); + tree.setListSeparator(next); + subtree = parse_map_kv(ctx); tree.add(subtree); - subtree = parse__gen1(ctx); + subtree = parse__gen37(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen10(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen14(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen10(ctx); + return parse__gen14(ctx); } - private static ParseTree parse__gen10(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen14(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[46][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(102, "_gen10")); - ctx.nonterminal = "_gen10"; + ParseTree tree = new ParseTree( new NonTerminal(102, "_gen14")); + ctx.nonterminal = "_gen14"; tree.setList(true); if ( current != null && !nonterminal_first.get(102).contains(terminal_map.get(current.getId())) && @@ -4759,30 +4720,30 @@ private static ParseTree parse__gen10(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 30) { - /* $_gen10 = $command_part $_gen10 */ - ctx.rule = rules.get(30); + if (rule == 43) { + /* $_gen14 = $output_kv $_gen14 */ + ctx.rule = rules.get(43); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_command_part(ctx); + subtree = parse_output_kv(ctx); tree.add(subtree); - subtree = parse__gen10(ctx); + subtree = parse__gen14(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen18(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen9(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen18(ctx); + return parse__gen9(ctx); } - private static ParseTree parse__gen18(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen9(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[47][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(103, "_gen18")); - ctx.nonterminal = "_gen18"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(103, "_gen9")); + ctx.nonterminal = "_gen9"; + tree.setList(true); if ( current != null && !nonterminal_first.get(103).contains(terminal_map.get(current.getId())) && nonterminal_follow.get(103).contains(terminal_map.get(current.getId())) ) { @@ -4791,28 +4752,30 @@ private static ParseTree parse__gen18(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 59) { - /* $_gen18 = $setter */ - ctx.rule = rules.get(59); + if (rule == 29) { + /* $_gen9 = $command_part $_gen10 */ + ctx.rule = rules.get(29); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_setter(ctx); + subtree = parse_command_part(ctx); + tree.add(subtree); + subtree = parse__gen10(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_document(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen12(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_document(ctx); + return parse__gen12(ctx); } - private static ParseTree parse_document(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen12(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[48][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(104, "document")); - ctx.nonterminal = "document"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(104, "_gen12")); + ctx.nonterminal = "_gen12"; + tree.setList(true); if ( current != null && !nonterminal_first.get(104).contains(terminal_map.get(current.getId())) && nonterminal_follow.get(104).contains(terminal_map.get(current.getId())) ) { @@ -4821,135 +4784,106 @@ private static ParseTree parse_document(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 8) { - /* $document = $_gen0 $_gen2 -> Document( imports=$0, definitions=$1 ) */ - ctx.rule = rules.get(8); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("imports", 0); - parameters.put("definitions", 1); - tree.setAstTransformation(new AstTransformNodeCreator("Document", parameters)); - subtree = parse__gen0(ctx); + if (rule == 37) { + /* $_gen12 = $cmd_param_kv $_gen12 */ + ctx.rule = rules.get(37); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_cmd_param_kv(ctx); tree.add(subtree); - subtree = parse__gen2(ctx); + subtree = parse__gen12(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_wf_body_element(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_wf_output_wildcard(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_wf_body_element(ctx); + return parse_wf_output_wildcard(ctx); } - private static ParseTree parse_wf_body_element(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_wf_output_wildcard(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[49][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(105, "wf_body_element")); - ctx.nonterminal = "wf_body_element"; + ParseTree tree = new ParseTree( new NonTerminal(105, "wf_output_wildcard")); + ctx.nonterminal = "wf_output_wildcard"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "wf_body_element", + "wf_output_wildcard", nonterminal_first.get(105), nonterminal_rules.get(105) )); } - if (rule == 71) { - /* $wf_body_element = $call */ - ctx.rule = rules.get(71); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_call(ctx); - tree.add(subtree); - return tree; - } - else if (rule == 72) { - /* $wf_body_element = $declaration */ - ctx.rule = rules.get(72); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_declaration(ctx); - tree.add(subtree); - return tree; - } - else if (rule == 73) { - /* $wf_body_element = $while_loop */ - ctx.rule = rules.get(73); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_while_loop(ctx); - tree.add(subtree); - return tree; - } - else if (rule == 74) { - /* $wf_body_element = $if_stmt */ - ctx.rule = rules.get(74); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_if_stmt(ctx); - tree.add(subtree); - return tree; - } - else if (rule == 75) { - /* $wf_body_element = $scatter */ - ctx.rule = rules.get(75); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_scatter(ctx); - tree.add(subtree); - return tree; - } - else if (rule == 76) { - /* $wf_body_element = $wf_outputs */ - ctx.rule = rules.get(76); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_wf_outputs(ctx); - tree.add(subtree); + if (rule == 102) { + /* $wf_output_wildcard = :dot :asterisk -> $1 */ + ctx.rule = rules.get(102); + tree.setAstTransformation(new AstTransformSubstitution(1)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_DOT); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_ASTERISK); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "wf_body_element", + "wf_output_wildcard", current, nonterminal_first.get(105), - rules.get(76) + rules.get(102) )); } - public ParseTree parse_command(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_scatter(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_command(ctx); + return parse_scatter(ctx); } - private static ParseTree parse_command(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_scatter(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[50][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(106, "command")); - ctx.nonterminal = "command"; + ParseTree tree = new ParseTree( new NonTerminal(106, "scatter")); + ctx.nonterminal = "scatter"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "command", + "scatter", nonterminal_first.get(106), nonterminal_rules.get(106) )); } - if (rule == 33) { - /* $command = :raw_command :raw_cmd_start $_gen9 :raw_cmd_end -> RawCommand( parts=$2 ) */ - ctx.rule = rules.get(33); + if (rule == 105) { + /* $scatter = :scatter :lparen :identifier :in $e :rparen :lbrace $_gen19 :rbrace -> Scatter( item=$2, collection=$4, body=$7 ) */ + ctx.rule = rules.get(105); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("parts", 2); - tree.setAstTransformation(new AstTransformNodeCreator("RawCommand", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_COMMAND); + parameters.put("item", 2); + parameters.put("collection", 4); + parameters.put("body", 7); + tree.setAstTransformation(new AstTransformNodeCreator("Scatter", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_SCATTER); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_CMD_START); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); tree.add(next); - subtree = parse__gen9(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IN); + tree.add(next); + subtree = parse_e(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RAW_CMD_END); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen19(ctx); + tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "command", + "scatter", current, nonterminal_first.get(106), - rules.get(33) + rules.get(105) )); } public ParseTree parse__gen2(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { @@ -4984,17 +4918,17 @@ private static ParseTree parse__gen2(ParserContext ctx) throws SyntaxError { } return tree; } - public ParseTree parse__gen34(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen1(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen34(ctx); + return parse__gen1(ctx); } - private static ParseTree parse__gen34(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen1(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[52][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(108, "_gen34")); - ctx.nonterminal = "_gen34"; + ParseTree tree = new ParseTree( new NonTerminal(108, "_gen1")); + ctx.nonterminal = "_gen1"; tree.setList(true); if ( current != null && !nonterminal_first.get(108).contains(terminal_map.get(current.getId())) && @@ -5004,29 +4938,29 @@ private static ParseTree parse__gen34(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 136) { - /* $_gen34 = $object_kv $_gen35 */ - ctx.rule = rules.get(136); + if (rule == 1) { + /* $_gen1 = $import $_gen1 */ + ctx.rule = rules.get(1); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_object_kv(ctx); + subtree = parse_import(ctx); tree.add(subtree); - subtree = parse__gen35(ctx); + subtree = parse__gen1(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen1(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen10(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen1(ctx); + return parse__gen10(ctx); } - private static ParseTree parse__gen1(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen10(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[53][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(109, "_gen1")); - ctx.nonterminal = "_gen1"; + ParseTree tree = new ParseTree( new NonTerminal(109, "_gen10")); + ctx.nonterminal = "_gen10"; tree.setList(true); if ( current != null && !nonterminal_first.get(109).contains(terminal_map.get(current.getId())) && @@ -5036,61 +4970,103 @@ private static ParseTree parse__gen1(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 1) { - /* $_gen1 = $import $_gen1 */ - ctx.rule = rules.get(1); + if (rule == 30) { + /* $_gen10 = $command_part $_gen10 */ + ctx.rule = rules.get(30); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_import(ctx); + subtree = parse_command_part(ctx); tree.add(subtree); - subtree = parse__gen1(ctx); + subtree = parse__gen10(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen3(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_wf_body_element(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen3(ctx); + return parse_wf_body_element(ctx); } - private static ParseTree parse__gen3(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_wf_body_element(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[54][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(110, "_gen3")); - ctx.nonterminal = "_gen3"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(110).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(110).contains(terminal_map.get(current.getId())) ) { + ParseTree tree = new ParseTree( new NonTerminal(110, "wf_body_element")); + ctx.nonterminal = "wf_body_element"; + tree.setList(false); + if (current == null) { + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "wf_body_element", + nonterminal_first.get(110), + nonterminal_rules.get(110) + )); + } + if (rule == 71) { + /* $wf_body_element = $call */ + ctx.rule = rules.get(71); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_call(ctx); + tree.add(subtree); return tree; } - if (current == null) { + else if (rule == 72) { + /* $wf_body_element = $declaration */ + ctx.rule = rules.get(72); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_declaration(ctx); + tree.add(subtree); return tree; } - if (rule == 5) { - /* $_gen3 = $workflow_or_task $_gen3 */ - ctx.rule = rules.get(5); + else if (rule == 73) { + /* $wf_body_element = $while_loop */ + ctx.rule = rules.get(73); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_workflow_or_task(ctx); + subtree = parse_while_loop(ctx); tree.add(subtree); - subtree = parse__gen3(ctx); + return tree; + } + else if (rule == 74) { + /* $wf_body_element = $if_stmt */ + ctx.rule = rules.get(74); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_if_stmt(ctx); tree.add(subtree); return tree; } - return tree; + else if (rule == 75) { + /* $wf_body_element = $scatter */ + ctx.rule = rules.get(75); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_scatter(ctx); + tree.add(subtree); + return tree; + } + else if (rule == 76) { + /* $wf_body_element = $wf_outputs */ + ctx.rule = rules.get(76); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_wf_outputs(ctx); + tree.add(subtree); + return tree; + } + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "wf_body_element", + current, + nonterminal_first.get(110), + rules.get(76) + )); } - public ParseTree parse__gen5(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen24(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen5(ctx); + return parse__gen24(ctx); } - private static ParseTree parse__gen5(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen24(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[55][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(111, "_gen5")); - ctx.nonterminal = "_gen5"; + ParseTree tree = new ParseTree( new NonTerminal(111, "_gen24")); + ctx.nonterminal = "_gen24"; tree.setList(true); if ( current != null && !nonterminal_first.get(111).contains(terminal_map.get(current.getId())) && @@ -5100,29 +5076,29 @@ private static ParseTree parse__gen5(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 15) { - /* $_gen5 = $declaration $_gen6 */ - ctx.rule = rules.get(15); + if (rule == 83) { + /* $_gen24 = $call_input $_gen24 */ + ctx.rule = rules.get(83); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_declaration(ctx); + subtree = parse_call_input(ctx); tree.add(subtree); - subtree = parse__gen6(ctx); + subtree = parse__gen24(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen20(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen32(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen20(ctx); + return parse__gen32(ctx); } - private static ParseTree parse__gen20(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen32(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[56][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(112, "_gen20")); - ctx.nonterminal = "_gen20"; + ParseTree tree = new ParseTree( new NonTerminal(112, "_gen32")); + ctx.nonterminal = "_gen32"; tree.setList(true); if ( current != null && !nonterminal_first.get(112).contains(terminal_map.get(current.getId())) && @@ -5132,79 +5108,60 @@ private static ParseTree parse__gen20(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 67) { - /* $_gen20 = $wf_body_element $_gen20 */ - ctx.rule = rules.get(67); + if (rule == 129) { + /* $_gen32 = $e $_gen33 */ + ctx.rule = rules.get(129); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_wf_body_element(ctx); + subtree = parse_e(ctx); tree.add(subtree); - subtree = parse__gen20(ctx); + subtree = parse__gen33(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_if_stmt(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen21(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_if_stmt(ctx); + return parse__gen21(ctx); } - private static ParseTree parse_if_stmt(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen21(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[57][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(113, "if_stmt")); - ctx.nonterminal = "if_stmt"; + ParseTree tree = new ParseTree( new NonTerminal(113, "_gen21")); + ctx.nonterminal = "_gen21"; tree.setList(false); + if ( current != null && + !nonterminal_first.get(113).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(113).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "if_stmt", - nonterminal_first.get(113), - nonterminal_rules.get(113) - )); + return tree; } - if (rule == 104) { - /* $if_stmt = :if :lparen $e :rparen :lbrace $_gen19 :rbrace -> If( expression=$2, body=$5 ) */ - ctx.rule = rules.get(104); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("expression", 2); - parameters.put("body", 5); - tree.setAstTransformation(new AstTransformNodeCreator("If", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IF); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); - tree.add(next); - subtree = parse_e(ctx); - tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); - tree.add(next); - subtree = parse__gen19(ctx); + if (rule == 77) { + /* $_gen21 = $alias */ + ctx.rule = rules.get(77); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_alias(ctx); tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); - tree.add(next); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "if_stmt", - current, - nonterminal_first.get(113), - rules.get(104) - )); + return tree; } - public ParseTree parse__gen17(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen15(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen17(ctx); + return parse__gen15(ctx); } - private static ParseTree parse__gen17(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen15(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[58][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(114, "_gen17")); - ctx.nonterminal = "_gen17"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(114, "_gen15")); + ctx.nonterminal = "_gen15"; + tree.setList(true); if ( current != null && !nonterminal_first.get(114).contains(terminal_map.get(current.getId())) && nonterminal_follow.get(114).contains(terminal_map.get(current.getId())) ) { @@ -5213,145 +5170,157 @@ private static ParseTree parse__gen17(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 57) { - /* $_gen17 = $postfix_quantifier */ - ctx.rule = rules.get(57); + if (rule == 51) { + /* $_gen15 = $kv $_gen16 */ + ctx.rule = rules.get(51); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_postfix_quantifier(ctx); + subtree = parse_kv(ctx); + tree.add(subtree); + subtree = parse__gen16(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse_call(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_workflow_or_task(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_call(ctx); + return parse_workflow_or_task(ctx); } - private static ParseTree parse_call(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_workflow_or_task(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[59][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(115, "call")); - ctx.nonterminal = "call"; + ParseTree tree = new ParseTree( new NonTerminal(115, "workflow_or_task")); + ctx.nonterminal = "workflow_or_task"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "call", + "workflow_or_task", nonterminal_first.get(115), nonterminal_rules.get(115) )); } - if (rule == 81) { - /* $call = :call :fqn $_gen21 $_gen22 -> Call( task=$1, alias=$2, body=$3 ) */ - ctx.rule = rules.get(81); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("task", 1); - parameters.put("alias", 2); - parameters.put("body", 3); - tree.setAstTransformation(new AstTransformNodeCreator("Call", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CALL); - tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_FQN); - tree.add(next); - subtree = parse__gen21(ctx); + if (rule == 9) { + /* $workflow_or_task = $workflow */ + ctx.rule = rules.get(9); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_workflow(ctx); tree.add(subtree); - subtree = parse__gen22(ctx); + return tree; + } + else if (rule == 10) { + /* $workflow_or_task = $task */ + ctx.rule = rules.get(10); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_task(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "call", + "workflow_or_task", current, nonterminal_first.get(115), - rules.get(81) + rules.get(10) )); } - public ParseTree parse__gen26(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_call_body(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen26(ctx); + return parse_call_body(ctx); } - private static ParseTree parse__gen26(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_call_body(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[60][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(116, "_gen26")); - ctx.nonterminal = "_gen26"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(116).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(116).contains(terminal_map.get(current.getId())) ) { - return tree; - } + ParseTree tree = new ParseTree( new NonTerminal(116, "call_body")); + ctx.nonterminal = "call_body"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "call_body", + nonterminal_first.get(116), + nonterminal_rules.get(116) + )); } - if (rule == 88) { - /* $_gen26 = :comma $mapping $_gen26 */ - ctx.rule = rules.get(88); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + if (rule == 86) { + /* $call_body = :lbrace $_gen5 $_gen23 :rbrace -> CallBody( declarations=$1, io=$2 ) */ + ctx.rule = rules.get(86); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("declarations", 1); + parameters.put("io", 2); + tree.setAstTransformation(new AstTransformNodeCreator("CallBody", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); tree.add(next); - tree.setListSeparator(next); - subtree = parse_mapping(ctx); + subtree = parse__gen5(ctx); tree.add(subtree); - subtree = parse__gen26(ctx); + subtree = parse__gen23(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "call_body", + current, + nonterminal_first.get(116), + rules.get(86) + )); } - public ParseTree parse_parameter_meta(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_command_part(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_parameter_meta(ctx); + return parse_command_part(ctx); } - private static ParseTree parse_parameter_meta(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_command_part(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[61][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(117, "parameter_meta")); - ctx.nonterminal = "parameter_meta"; + ParseTree tree = new ParseTree( new NonTerminal(117, "command_part")); + ctx.nonterminal = "command_part"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "parameter_meta", + "command_part", nonterminal_first.get(117), nonterminal_rules.get(117) )); } - if (rule == 49) { - /* $parameter_meta = :parameter_meta $map -> ParameterMeta( map=$1 ) */ - ctx.rule = rules.get(49); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("map", 1); - tree.setAstTransformation(new AstTransformNodeCreator("ParameterMeta", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_PARAMETER_META); + if (rule == 34) { + /* $command_part = :cmd_part */ + ctx.rule = rules.get(34); + tree.setAstTransformation(new AstTransformSubstitution(0)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_PART); tree.add(next); - subtree = parse_map(ctx); + return tree; + } + else if (rule == 35) { + /* $command_part = $cmd_param */ + ctx.rule = rules.get(35); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_cmd_param(ctx); tree.add(subtree); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "parameter_meta", + "command_part", current, nonterminal_first.get(117), - rules.get(49) + rules.get(35) )); } - public ParseTree parse__gen28(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_document(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen28(ctx); + return parse_document(ctx); } - private static ParseTree parse__gen28(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_document(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[62][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(118, "_gen28")); - ctx.nonterminal = "_gen28"; - tree.setList(true); + ParseTree tree = new ParseTree( new NonTerminal(118, "document")); + ctx.nonterminal = "document"; + tree.setList(false); if ( current != null && !nonterminal_first.get(118).contains(terminal_map.get(current.getId())) && nonterminal_follow.get(118).contains(terminal_map.get(current.getId())) ) { @@ -5360,63 +5329,71 @@ private static ParseTree parse__gen28(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 95) { - /* $_gen28 = :comma $wf_output $_gen28 */ - ctx.rule = rules.get(95); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); - tree.add(next); - tree.setListSeparator(next); - subtree = parse_wf_output(ctx); + if (rule == 8) { + /* $document = $_gen0 $_gen2 -> Document( imports=$0, definitions=$1 ) */ + ctx.rule = rules.get(8); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("imports", 0); + parameters.put("definitions", 1); + tree.setAstTransformation(new AstTransformNodeCreator("Document", parameters)); + subtree = parse__gen0(ctx); tree.add(subtree); - subtree = parse__gen28(ctx); + subtree = parse__gen2(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen29(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_runtime(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen29(ctx); + return parse_runtime(ctx); } - private static ParseTree parse__gen29(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_runtime(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[63][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(119, "_gen29")); - ctx.nonterminal = "_gen29"; + ParseTree tree = new ParseTree( new NonTerminal(119, "runtime")); + ctx.nonterminal = "runtime"; tree.setList(false); - if ( current != null && - !nonterminal_first.get(119).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(119).contains(terminal_map.get(current.getId())) ) { - return tree; - } if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "runtime", + nonterminal_first.get(119), + nonterminal_rules.get(119) + )); } - if (rule == 99) { - /* $_gen29 = $wf_output_wildcard */ - ctx.rule = rules.get(99); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_wf_output_wildcard(ctx); + if (rule == 48) { + /* $runtime = :runtime $map -> Runtime( map=$1 ) */ + ctx.rule = rules.get(48); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("map", 1); + tree.setAstTransformation(new AstTransformNodeCreator("Runtime", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RUNTIME); + tree.add(next); + subtree = parse_map(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "runtime", + current, + nonterminal_first.get(119), + rules.get(48) + )); } - public ParseTree parse__gen33(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen4(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen33(ctx); + return parse__gen4(ctx); } - private static ParseTree parse__gen33(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen4(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[64][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(120, "_gen33")); - ctx.nonterminal = "_gen33"; - tree.setList(true); + ParseTree tree = new ParseTree( new NonTerminal(120, "_gen4")); + ctx.nonterminal = "_gen4"; + tree.setList(false); if ( current != null && !nonterminal_first.get(120).contains(terminal_map.get(current.getId())) && nonterminal_follow.get(120).contains(terminal_map.get(current.getId())) ) { @@ -5425,327 +5402,349 @@ private static ParseTree parse__gen33(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 130) { - /* $_gen33 = :comma $e $_gen33 */ - ctx.rule = rules.get(130); + if (rule == 11) { + /* $_gen4 = $import_namespace */ + ctx.rule = rules.get(11); tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); - tree.add(next); - tree.setListSeparator(next); - subtree = parse_e(ctx); - tree.add(subtree); - subtree = parse__gen33(ctx); + subtree = parse_import_namespace(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen8(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_map_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen8(ctx); + return parse_map_kv(ctx); } - private static ParseTree parse__gen8(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_map_kv(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[65][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(121, "_gen8")); - ctx.nonterminal = "_gen8"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(121).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(121).contains(terminal_map.get(current.getId())) ) { - return tree; - } + ParseTree tree = new ParseTree( new NonTerminal(121, "map_kv")); + ctx.nonterminal = "map_kv"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "map_kv", + nonterminal_first.get(121), + nonterminal_rules.get(121) + )); } - if (rule == 20) { - /* $_gen8 = $sections $_gen8 */ - ctx.rule = rules.get(20); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_sections(ctx); + if (rule == 65) { + /* $map_kv = $e :colon $e -> MapLiteralKv( key=$0, value=$2 ) */ + ctx.rule = rules.get(65); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("key", 0); + parameters.put("value", 2); + tree.setAstTransformation(new AstTransformNodeCreator("MapLiteralKv", parameters)); + subtree = parse_e(ctx); tree.add(subtree); - subtree = parse__gen8(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); + tree.add(next); + subtree = parse_e(ctx); tree.add(subtree); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "map_kv", + current, + nonterminal_first.get(121), + rules.get(65) + )); } - public ParseTree parse__gen35(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_cmd_param_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen35(ctx); + return parse_cmd_param_kv(ctx); } - private static ParseTree parse__gen35(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_cmd_param_kv(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[66][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(122, "_gen35")); - ctx.nonterminal = "_gen35"; - tree.setList(true); - if ( current != null && - !nonterminal_first.get(122).contains(terminal_map.get(current.getId())) && - nonterminal_follow.get(122).contains(terminal_map.get(current.getId())) ) { + ParseTree tree = new ParseTree( new NonTerminal(122, "cmd_param_kv")); + ctx.nonterminal = "cmd_param_kv"; + tree.setList(false); + if (current == null) { + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "cmd_param_kv", + nonterminal_first.get(122), + nonterminal_rules.get(122) + )); + } + if (rule == 41) { + /* $cmd_param_kv = :cmd_attr_hint :identifier :equal $e -> CommandParameterAttr( key=$1, value=$3 ) */ + ctx.rule = rules.get(41); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("key", 1); + parameters.put("value", 3); + tree.setAstTransformation(new AstTransformNodeCreator("CommandParameterAttr", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_CMD_ATTR_HINT); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_EQUAL); + tree.add(next); + subtree = parse_e(ctx); + tree.add(subtree); return tree; } + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "cmd_param_kv", + current, + nonterminal_first.get(122), + rules.get(41) + )); + } + public ParseTree parse_wf_outputs(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); + return parse_wf_outputs(ctx); + } + private static ParseTree parse_wf_outputs(ParserContext ctx) throws SyntaxError { + Terminal current = ctx.tokens.current(); + Terminal next; + ParseTree subtree; + int rule = (current != null) ? table[67][current.getId()] : -1; + ParseTree tree = new ParseTree( new NonTerminal(123, "wf_outputs")); + ctx.nonterminal = "wf_outputs"; + tree.setList(false); if (current == null) { - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedEof( + "wf_outputs", + nonterminal_first.get(123), + nonterminal_rules.get(123) + )); } - if (rule == 137) { - /* $_gen35 = :comma $object_kv $_gen35 */ - ctx.rule = rules.get(137); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COMMA); + if (rule == 98) { + /* $wf_outputs = :output :lbrace $_gen27 :rbrace -> WorkflowOutputs( outputs=$2 ) */ + ctx.rule = rules.get(98); + LinkedHashMap parameters = new LinkedHashMap(); + parameters.put("outputs", 2); + tree.setAstTransformation(new AstTransformNodeCreator("WorkflowOutputs", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_OUTPUT); tree.add(next); - tree.setListSeparator(next); - subtree = parse_object_kv(ctx); - tree.add(subtree); - subtree = parse__gen35(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen27(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } - return tree; + throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( + "wf_outputs", + current, + nonterminal_first.get(123), + rules.get(98) + )); } - public ParseTree parse_postfix_quantifier(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_alias(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_postfix_quantifier(ctx); + return parse_alias(ctx); } - private static ParseTree parse_postfix_quantifier(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_alias(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[68][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(124, "postfix_quantifier")); - ctx.nonterminal = "postfix_quantifier"; + ParseTree tree = new ParseTree( new NonTerminal(124, "alias")); + ctx.nonterminal = "alias"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "postfix_quantifier", + "alias", nonterminal_first.get(124), nonterminal_rules.get(124) )); } - if (rule == 63) { - /* $postfix_quantifier = :qmark */ - ctx.rule = rules.get(63); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_QMARK); + if (rule == 93) { + /* $alias = :as :identifier -> $1 */ + ctx.rule = rules.get(93); + tree.setAstTransformation(new AstTransformSubstitution(1)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_AS); tree.add(next); - return tree; - } - else if (rule == 64) { - /* $postfix_quantifier = :plus */ - ctx.rule = rules.get(64); - tree.setAstTransformation(new AstTransformSubstitution(0)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_PLUS); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "postfix_quantifier", + "alias", current, nonterminal_first.get(124), - rules.get(64) + rules.get(93) )); } - public ParseTree parse_call_input(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_if_stmt(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_call_input(ctx); + return parse_if_stmt(ctx); } - private static ParseTree parse_call_input(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_if_stmt(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[69][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(125, "call_input")); - ctx.nonterminal = "call_input"; + ParseTree tree = new ParseTree( new NonTerminal(125, "if_stmt")); + ctx.nonterminal = "if_stmt"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "call_input", + "if_stmt", nonterminal_first.get(125), nonterminal_rules.get(125) )); } - if (rule == 91) { - /* $call_input = :input :colon $_gen25 -> Inputs( map=$2 ) */ - ctx.rule = rules.get(91); + if (rule == 104) { + /* $if_stmt = :if :lparen $e :rparen :lbrace $_gen19 :rbrace -> If( expression=$2, body=$5 ) */ + ctx.rule = rules.get(104); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("map", 2); - tree.setAstTransformation(new AstTransformNodeCreator("Inputs", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_INPUT); + parameters.put("expression", 2); + parameters.put("body", 5); + tree.setAstTransformation(new AstTransformNodeCreator("If", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IF); tree.add(next); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LPAREN); tree.add(next); - subtree = parse__gen25(ctx); + subtree = parse_e(ctx); + tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RPAREN); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen19(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "call_input", + "if_stmt", current, nonterminal_first.get(125), - rules.get(91) + rules.get(104) )); } - public ParseTree parse_sections(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen23(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_sections(ctx); + return parse__gen23(ctx); } - private static ParseTree parse_sections(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen23(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[70][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(126, "sections")); - ctx.nonterminal = "sections"; - tree.setList(false); - if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "sections", - nonterminal_first.get(126), - nonterminal_rules.get(126) - )); - } - if (rule == 24) { - /* $sections = $command */ - ctx.rule = rules.get(24); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_command(ctx); - tree.add(subtree); - return tree; - } - else if (rule == 25) { - /* $sections = $outputs */ - ctx.rule = rules.get(25); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_outputs(ctx); - tree.add(subtree); + ParseTree tree = new ParseTree( new NonTerminal(126, "_gen23")); + ctx.nonterminal = "_gen23"; + tree.setList(true); + if ( current != null && + !nonterminal_first.get(126).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(126).contains(terminal_map.get(current.getId())) ) { return tree; } - else if (rule == 26) { - /* $sections = $runtime */ - ctx.rule = rules.get(26); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_runtime(ctx); - tree.add(subtree); + if (current == null) { return tree; } - else if (rule == 27) { - /* $sections = $parameter_meta */ - ctx.rule = rules.get(27); + if (rule == 82) { + /* $_gen23 = $call_input $_gen24 */ + ctx.rule = rules.get(82); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_parameter_meta(ctx); + subtree = parse_call_input(ctx); tree.add(subtree); - return tree; - } - else if (rule == 28) { - /* $sections = $meta */ - ctx.rule = rules.get(28); - tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_meta(ctx); + subtree = parse__gen24(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "sections", - current, - nonterminal_first.get(126), - rules.get(28) - )); + return tree; } - public ParseTree parse_runtime(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse_task(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_runtime(ctx); + return parse_task(ctx); } - private static ParseTree parse_runtime(ParserContext ctx) throws SyntaxError { + private static ParseTree parse_task(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[71][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(127, "runtime")); - ctx.nonterminal = "runtime"; + ParseTree tree = new ParseTree( new NonTerminal(127, "task")); + ctx.nonterminal = "task"; tree.setList(false); if (current == null) { throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "runtime", + "task", nonterminal_first.get(127), nonterminal_rules.get(127) )); } - if (rule == 48) { - /* $runtime = :runtime $map -> Runtime( map=$1 ) */ - ctx.rule = rules.get(48); + if (rule == 23) { + /* $task = :task :identifier :lbrace $_gen5 $_gen7 :rbrace -> Task( name=$1, declarations=$3, sections=$4 ) */ + ctx.rule = rules.get(23); LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("map", 1); - tree.setAstTransformation(new AstTransformNodeCreator("Runtime", parameters)); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RUNTIME); + parameters.put("name", 1); + parameters.put("declarations", 3); + parameters.put("sections", 4); + tree.setAstTransformation(new AstTransformNodeCreator("Task", parameters)); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_TASK); tree.add(next); - subtree = parse_map(ctx); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_IDENTIFIER); + tree.add(next); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_LBRACE); + tree.add(next); + subtree = parse__gen5(ctx); + tree.add(subtree); + subtree = parse__gen7(ctx); tree.add(subtree); + next = expect(ctx, WdlTerminalIdentifier.TERMINAL_RBRACE); + tree.add(next); return tree; } throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "runtime", + "task", current, nonterminal_first.get(127), - rules.get(48) + rules.get(23) )); } - public ParseTree parse_map_kv(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen18(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse_map_kv(ctx); + return parse__gen18(ctx); } - private static ParseTree parse_map_kv(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen18(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[72][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(128, "map_kv")); - ctx.nonterminal = "map_kv"; + ParseTree tree = new ParseTree( new NonTerminal(128, "_gen18")); + ctx.nonterminal = "_gen18"; tree.setList(false); + if ( current != null && + !nonterminal_first.get(128).contains(terminal_map.get(current.getId())) && + nonterminal_follow.get(128).contains(terminal_map.get(current.getId())) ) { + return tree; + } if (current == null) { - throw new SyntaxError(ctx.error_formatter.unexpectedEof( - "map_kv", - nonterminal_first.get(128), - nonterminal_rules.get(128) - )); + return tree; } - if (rule == 65) { - /* $map_kv = $e :colon $e -> MapLiteralKv( key=$0, value=$2 ) */ - ctx.rule = rules.get(65); - LinkedHashMap parameters = new LinkedHashMap(); - parameters.put("key", 0); - parameters.put("value", 2); - tree.setAstTransformation(new AstTransformNodeCreator("MapLiteralKv", parameters)); - subtree = parse_e(ctx); - tree.add(subtree); - next = expect(ctx, WdlTerminalIdentifier.TERMINAL_COLON); - tree.add(next); - subtree = parse_e(ctx); + if (rule == 59) { + /* $_gen18 = $setter */ + ctx.rule = rules.get(59); + tree.setAstTransformation(new AstTransformSubstitution(0)); + subtree = parse_setter(ctx); tree.add(subtree); return tree; } - throw new SyntaxError(ctx.error_formatter.unexpectedSymbol( - "map_kv", - current, - nonterminal_first.get(128), - rules.get(65) - )); + return tree; } - public ParseTree parse__gen4(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen27(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen4(ctx); + return parse__gen27(ctx); } - private static ParseTree parse__gen4(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen27(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[73][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(129, "_gen4")); - ctx.nonterminal = "_gen4"; - tree.setList(false); + ParseTree tree = new ParseTree( new NonTerminal(129, "_gen27")); + ctx.nonterminal = "_gen27"; + tree.setList(true); if ( current != null && !nonterminal_first.get(129).contains(terminal_map.get(current.getId())) && nonterminal_follow.get(129).contains(terminal_map.get(current.getId())) ) { @@ -5754,27 +5753,29 @@ private static ParseTree parse__gen4(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 11) { - /* $_gen4 = $import_namespace */ - ctx.rule = rules.get(11); + if (rule == 94) { + /* $_gen27 = $wf_output $_gen28 */ + ctx.rule = rules.get(94); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_import_namespace(ctx); + subtree = parse_wf_output(ctx); + tree.add(subtree); + subtree = parse__gen28(ctx); tree.add(subtree); return tree; } return tree; } - public ParseTree parse__gen13(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { + public ParseTree parse__gen34(List tokens, SyntaxErrorFormatter error_formatter) throws SyntaxError { ParserContext ctx = new ParserContext(new TokenStream(tokens), error_formatter); - return parse__gen13(ctx); + return parse__gen34(ctx); } - private static ParseTree parse__gen13(ParserContext ctx) throws SyntaxError { + private static ParseTree parse__gen34(ParserContext ctx) throws SyntaxError { Terminal current = ctx.tokens.current(); Terminal next; ParseTree subtree; int rule = (current != null) ? table[74][current.getId()] : -1; - ParseTree tree = new ParseTree( new NonTerminal(130, "_gen13")); - ctx.nonterminal = "_gen13"; + ParseTree tree = new ParseTree( new NonTerminal(130, "_gen34")); + ctx.nonterminal = "_gen34"; tree.setList(true); if ( current != null && !nonterminal_first.get(130).contains(terminal_map.get(current.getId())) && @@ -5784,13 +5785,13 @@ private static ParseTree parse__gen13(ParserContext ctx) throws SyntaxError { if (current == null) { return tree; } - if (rule == 42) { - /* $_gen13 = $output_kv $_gen14 */ - ctx.rule = rules.get(42); + if (rule == 136) { + /* $_gen34 = $object_kv $_gen35 */ + ctx.rule = rules.get(136); tree.setAstTransformation(new AstTransformSubstitution(0)); - subtree = parse_output_kv(ctx); + subtree = parse_object_kv(ctx); tree.add(subtree); - subtree = parse__gen14(ctx); + subtree = parse__gen35(ctx); tree.add(subtree); return tree; } @@ -5902,25 +5903,6 @@ public void default_action(LexerContext lctx, TerminalIdentifier terminal, Strin /* START USER CODE */ private class WdlContext { public String wf_or_task = null; - public Map replacements; - public Map escapes; - public WdlContext() { - replacements = new HashMap(); - escapes = new HashMap(); - replacements.put("\\\\n", 0x000A); - replacements.put("\\\\r", 0x000D); - replacements.put("\\\\b", 0x0008); - replacements.put("\\\\t", 0x0009); - replacements.put("\\\\a", 0x0007); - replacements.put("\\\\v", 0x000B); - replacements.put("\\\\\"", 0x0022); - replacements.put("\\\\'", 0x0027); - replacements.put("\\\\\\?", 0x003F); - replacements.put("\\\\\\\\", 0x005C); - escapes.put(Pattern.compile("\\\\([0-7]{1,3})"), 8); - escapes.put(Pattern.compile("\\\\[xX]([0-9a-fA-F]{1,4})"), 16); - escapes.put(Pattern.compile("\\\\[uU]([0-9a-fA-F]{4})"), 16); - } } public Object init() { return new WdlContext(); @@ -5941,22 +5923,7 @@ public void output(LexerContext ctx, TerminalIdentifier terminal, String source_ default_action(ctx, terminal, source_string, line, col); } public void unescape(LexerContext ctx, TerminalIdentifier terminal, String source_string, int line, int col) { - WdlContext wdl_ctx = (WdlContext) ctx.context; - for (Map.Entry replacement : wdl_ctx.replacements.entrySet()) { - String key = replacement.getKey(); - String value = Character.toString((char) replacement.getValue().intValue()); - source_string = source_string.replaceAll(key, value); - } - for (Map.Entry escapeSequence : wdl_ctx.escapes.entrySet()) { - Pattern pattern = escapeSequence.getKey(); - int radix = escapeSequence.getValue().intValue(); - Matcher matcher = pattern.matcher(source_string); - while (matcher.find()) { - int value = Integer.parseInt(matcher.group(1), radix); - source_string = source_string.replace(matcher.group(), String.format("%c", value)); - } - } - default_action(ctx, terminal, source_string.substring(1, source_string.length() - 1), line, col); + default_action(ctx, terminal, StringEscapeUtils.unescapeJava(source_string.substring(1, source_string.length() - 1)), line, col); } /* END USER CODE */ public void destroy(Object context) {