diff --git a/agama/engine/src/main/java/io/jans/agama/engine/script/LogUtils.java b/agama/engine/src/main/java/io/jans/agama/engine/script/LogUtils.java
index ba8a7239fde..861a7ed0e3b 100644
--- a/agama/engine/src/main/java/io/jans/agama/engine/script/LogUtils.java
+++ b/agama/engine/src/main/java/io/jans/agama/engine/script/LogUtils.java
@@ -15,6 +15,8 @@
import io.jans.agama.model.EngineConfig;
import io.jans.util.Pair;
+import io.jans.service.cdi.util.CdiUtil;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -24,7 +26,7 @@ public class LogUtils {
//MUST be a single character string
private static final String PLACEHOLDER = "%";
- private static final int MAX_ITERABLE_ITEMS = ScriptUtils.managedBean(EngineConfig.class)
+ private static final int MAX_ITERABLE_ITEMS = CdiUtil.bean(EngineConfig.class)
.getMaxItemsLoggedInCollections();
private enum LogLevel {
diff --git a/agama/engine/src/main/java/io/jans/agama/engine/script/ScriptUtils.java b/agama/engine/src/main/java/io/jans/agama/engine/script/ScriptUtils.java
index a5d8ef68a6a..5a905ba95ed 100644
--- a/agama/engine/src/main/java/io/jans/agama/engine/script/ScriptUtils.java
+++ b/agama/engine/src/main/java/io/jans/agama/engine/script/ScriptUtils.java
@@ -10,10 +10,13 @@
import io.jans.agama.engine.misc.PrimitiveUtils;
import io.jans.agama.engine.service.ActionService;
import io.jans.agama.engine.service.FlowService;
+import io.jans.service.cdi.util.CdiUtil;
import io.jans.util.Pair;
+
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Function;
import org.mozilla.javascript.NativeContinuation;
+import org.mozilla.javascript.NativeJavaObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -98,19 +101,20 @@ public static boolean testEquality(Object a, Object b) {
}
//Issue a call to this method only if the request scope is active
- public static Function prepareSubflow(String qname, String parentBasepath, String[] pathOverrides)
- throws IOException {
- return managedBean(FlowService.class).prepareSubflow(qname, parentBasepath, pathOverrides);
+ public static Pair prepareSubflow(String qname, String parentBasepath,
+ String[] pathOverrides) throws IOException {
+
+ return CdiUtil.bean(FlowService.class).prepareSubflow(qname, parentBasepath, pathOverrides);
}
public static Object callAction(Object instance, String actionClassName, String methodName,
Object[] params) throws Exception {
- return managedBean(ActionService.class).callAction(instance, actionClassName, methodName, params);
+ return CdiUtil.bean(ActionService.class).callAction(instance, actionClassName, methodName, params);
//TODO: remove?
//if (Map.class.isInstance(value) && !NativeJavaMap.class.equals(value.getClass())) {
- // Scriptable scope = managedBean(FlowService.class).getGlobalScope();
+ // Scriptable scope = CdiUtil.bean(FlowService.class).getGlobalScope();
// return new NativeJavaMap(scope, value);
//}
@@ -118,7 +122,7 @@ public static Object callAction(Object instance, String actionClassName, String
//Issue a call to this method only if the request scope is active
public static void closeSubflow() throws IOException {
- managedBean(FlowService.class).closeSubflow();
+ CdiUtil.bean(FlowService.class).closeSubflow();
}
private static String simpleName(Class> cls) {
@@ -134,9 +138,5 @@ private static String simpleName(Class> cls) {
return name;
}
-
- public static T managedBean(Class cls) {
- return CDI.current().select(cls).get();
- }
}
diff --git a/agama/engine/src/main/java/io/jans/agama/engine/service/FlowService.java b/agama/engine/src/main/java/io/jans/agama/engine/service/FlowService.java
index 8a9d656dd9b..192ed5c5e74 100644
--- a/agama/engine/src/main/java/io/jans/agama/engine/service/FlowService.java
+++ b/agama/engine/src/main/java/io/jans/agama/engine/service/FlowService.java
@@ -38,6 +38,7 @@
import org.mozilla.javascript.NativeContinuation;
import org.mozilla.javascript.NativeJavaList;
import org.mozilla.javascript.NativeJavaMap;
+import org.mozilla.javascript.NativeJavaObject;
import org.mozilla.javascript.NativeObject;
import org.mozilla.javascript.RhinoException;
import org.mozilla.javascript.Scriptable;
@@ -113,7 +114,7 @@ public FlowStatus startFlow(FlowStatus status) throws FlowCrashException {
logger.info("Executing function {}", funcName);
Function f = (Function) globalScope.get(funcName, globalScope);
- Object[] params = getFlowParams(fl.getInputs(), status.getJsonInput());
+ Object[] params = getFuncParams(fl, status.getJsonInput());
NativeObject result = (NativeObject) scriptCtx.callFunctionWithContinuations(f, globalScope, params);
finishFlow(result, status);
@@ -175,9 +176,9 @@ public FlowStatus continueFlow(FlowStatus status, String jsonParameters, boolean
}
// This is called in the middle of a cx.resumeContinuation invocation (see util.js#_flowCall)
- public Function prepareSubflow(String subflowName, String parentBasepath, String[] pathOverrides)
- throws IOException {
-
+ public Pair prepareSubflow(String subflowName, String parentBasepath,
+ String[] pathOverrides) throws IOException {
+
Flow flow = aps.getFlow(subflowName, false);
FlowMetadata fl = flow.getMetadata();
String funcName = fl.getFuncName();
@@ -193,13 +194,14 @@ public Function prepareSubflow(String subflowName, String parentBasepath, String
Function f = (Function) globalScope.get(funcName, globalScope);
//The values set below are useful when saving the state, see method processPause
- ParentFlowData pfd = new ParentFlowData();
+ ParentFlowData pfd = new ParentFlowData();
pfd.setParentBasepath(parentBasepath);
pfd.setPathOverrides(pathOverrides);
parentFlowData = pfd;
logger.info("Evaluating subflow code");
- return f;
+ Map configs = Optional.ofNullable(fl.getProperties()).orElse(Collections.emptyMap());
+ return new Pair<>(f, wrapListOrMap(configs));
}
@@ -312,38 +314,49 @@ private String computeTemplatePath(String path, ParentFlowData pfd) {
}
- private Object[] getFlowParams(List inputNames, String strParams) throws JsonProcessingException {
-
- List inputs = Optional.ofNullable(inputNames).orElse(Collections.emptyList());
- Object[] params = new Object[inputs.size()];
+ private Object[] getFuncParams(FlowMetadata metadata, String strParams) throws JsonProcessingException {
+
+ List inputs = Optional.ofNullable(metadata.getInputs()).orElse(Collections.emptyList());
+ Map configs = Optional.ofNullable(metadata.getProperties()).orElse(Collections.emptyMap());
+ Object[] params = new Object[inputs.size() + 1];
+ params[0] = wrapListOrMap(configs);
+
if (strParams != null) {
Map map = mapper.readValue(strParams, new TypeReference
*/
@Override public T visitBase(AuthnFlowParser.BaseContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitConfigs(AuthnFlowParser.ConfigsContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
@@ -276,26 +283,19 @@ public class AuthnFlowBaseVisitor extends AbstractParseTreeVisitor impleme
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
- @Override public T visitStatusr_block(AuthnFlowParser.Statusr_blockContext ctx) { return visitChildren(ctx); }
- /**
- * {@inheritDoc}
- *
- * The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.
- */
- @Override public T visitStatusr_allow(AuthnFlowParser.Statusr_allowContext ctx) { return visitChildren(ctx); }
+ @Override public T visitStchk_block(AuthnFlowParser.Stchk_blockContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
- @Override public T visitStatusr_reply(AuthnFlowParser.Statusr_replyContext ctx) { return visitChildren(ctx); }
+ @Override public T visitStchk_open(AuthnFlowParser.Stchk_openContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
- @Override public T visitStatusr_until(AuthnFlowParser.Statusr_untilContext ctx) { return visitChildren(ctx); }
+ @Override public T visitStchk_close(AuthnFlowParser.Stchk_closeContext ctx) { return visitChildren(ctx); }
}
\ No newline at end of file
diff --git a/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowLexer.java b/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowLexer.java
index acfb9f2354a..d2f95140a54 100644
--- a/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowLexer.java
+++ b/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowLexer.java
@@ -21,8 +21,8 @@ public class AuthnFlowLexer extends Lexer {
new PredictionContextCache();
public static final int
T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, NL=9,
- COMMENT=10, FLOWSTART=11, BASE=12, FLOWINPUTS=13, LOG=14, FLOWCALL=15,
- ACTIONCALL=16, RRFCALL=17, STATUS_REQ=18, ALLOW=19, REPLY=20, UNTIL=21,
+ COMMENT=10, FLOWSTART=11, BASE=12, CONFIGS=13, FLOWINPUTS=14, LOG=15,
+ FLOWCALL=16, ACTIONCALL=17, RRFCALL=18, STATUS_CHK=19, OPEN=20, CLOSE=21,
OVERRIDE=22, WHEN=23, OTHERWISE=24, REPEAT=25, ITERATE=26, MATCH=27, QUIT=28,
FINISH=29, RFAC=30, IS=31, NOT=32, AND=33, OR=34, SECS=35, TO=36, MAXTIMES=37,
USE=38, EQ=39, MINUS=40, NUL=41, BOOL=42, STRING=43, UINT=44, SINT=45,
@@ -40,8 +40,8 @@ private static String[] makeRuleNames() {
return new String[] {
"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "NL",
"DIGIT", "CH", "ALNUM", "SPACES", "COMMA", "COMMENT", "FLOWSTART", "BASE",
- "FLOWINPUTS", "LOG", "FLOWCALL", "ACTIONCALL", "RRFCALL", "STATUS_REQ",
- "ALLOW", "REPLY", "UNTIL", "OVERRIDE", "WHEN", "OTHERWISE", "REPEAT",
+ "CONFIGS", "FLOWINPUTS", "LOG", "FLOWCALL", "ACTIONCALL", "RRFCALL",
+ "STATUS_CHK", "OPEN", "CLOSE", "OVERRIDE", "WHEN", "OTHERWISE", "REPEAT",
"ITERATE", "MATCH", "QUIT", "FINISH", "RFAC", "IS", "NOT", "AND", "OR",
"SECS", "TO", "MAXTIMES", "USE", "EQ", "MINUS", "NUL", "BOOL", "STRING",
"UINT", "SINT", "DECIMAL", "ALPHANUM", "QNAME", "EVALNUM", "DOTEXPR",
@@ -53,8 +53,8 @@ private static String[] makeRuleNames() {
private static String[] makeLiteralNames() {
return new String[] {
null, "'|'", "'$'", "'#'", "'['", "']'", "'{'", "'}'", "':'", null, null,
- "'Flow'", "'Basepath'", "'Inputs'", "'Log'", "'Trigger'", "'Call'", "'RRF'",
- "'Status requests'", "'Allow for'", "'Reply'", "'Until'", "'Override templates'",
+ "'Flow'", "'Basepath'", "'Configs'", "'Inputs'", "'Log'", "'Trigger'",
+ "'Call'", "'RRF'", "'Status checker'", "'Open for'", "'Close'", "'Override templates'",
"'When'", "'Otherwise'", "'Repeat'", "'Iterate over'", "'Match'", "'Quit'",
"'Finish'", "'RFAC'", "'is'", "'not'", "'and'", "'or'", "'seconds'",
"'to'", "'times max'", "'using'", "'='", "'-'", "'null'"
@@ -64,8 +64,8 @@ private static String[] makeLiteralNames() {
private static String[] makeSymbolicNames() {
return new String[] {
null, null, null, null, null, null, null, null, null, "NL", "COMMENT",
- "FLOWSTART", "BASE", "FLOWINPUTS", "LOG", "FLOWCALL", "ACTIONCALL", "RRFCALL",
- "STATUS_REQ", "ALLOW", "REPLY", "UNTIL", "OVERRIDE", "WHEN", "OTHERWISE",
+ "FLOWSTART", "BASE", "CONFIGS", "FLOWINPUTS", "LOG", "FLOWCALL", "ACTIONCALL",
+ "RRFCALL", "STATUS_CHK", "OPEN", "CLOSE", "OVERRIDE", "WHEN", "OTHERWISE",
"REPEAT", "ITERATE", "MATCH", "QUIT", "FINISH", "RFAC", "IS", "NOT",
"AND", "OR", "SECS", "TO", "MAXTIMES", "USE", "EQ", "MINUS", "NUL", "BOOL",
"STRING", "UINT", "SINT", "DECIMAL", "ALPHANUM", "QNAME", "EVALNUM",
@@ -156,11 +156,11 @@ public AuthnFlowLexer(CharStream input) {
"\3\r\3\r\7\r\u009a\n\r\f\r\16\r\u009d\13\r\3\16\6\16\u00a0\n\16\r\16\16"+
"\16\u00a1\3\17\3\17\3\20\3\20\3\20\3\20\7\20\u00aa\n\20\f\20\16\20\u00ad"+
"\13\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22"+
- "\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24"+
- "\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\27"+
- "\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30"+
- "\3\30\3\30\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31"+
- "\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\34"+
+ "\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24"+
+ "\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\26"+
+ "\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\31\3\31\3\31"+
+ "\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32"+
+ "\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\34"+
"\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34"+
"\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36"+
"\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 \3 \3 "+
@@ -193,8 +193,8 @@ public AuthnFlowLexer(CharStream input) {
"\3\2\2\2\13\177\3\2\2\2\r\u0081\3\2\2\2\17\u0083\3\2\2\2\21\u0085\3\2"+
"\2\2\23\u0088\3\2\2\2\25\u0091\3\2\2\2\27\u0093\3\2\2\2\31\u0095\3\2\2"+
"\2\33\u009f\3\2\2\2\35\u00a3\3\2\2\2\37\u00a5\3\2\2\2!\u00b0\3\2\2\2#"+
- "\u00b5\3\2\2\2%\u00be\3\2\2\2\'\u00c5\3\2\2\2)\u00c9\3\2\2\2+\u00d1\3"+
- "\2\2\2-\u00d6\3\2\2\2/\u00da\3\2\2\2\61\u00ea\3\2\2\2\63\u00f4\3\2\2\2"+
+ "\u00b5\3\2\2\2%\u00be\3\2\2\2\'\u00c6\3\2\2\2)\u00cd\3\2\2\2+\u00d1\3"+
+ "\2\2\2-\u00d9\3\2\2\2/\u00de\3\2\2\2\61\u00e2\3\2\2\2\63\u00f1\3\2\2\2"+
"\65\u00fa\3\2\2\2\67\u0100\3\2\2\29\u0113\3\2\2\2;\u0118\3\2\2\2=\u0122"+
"\3\2\2\2?\u0129\3\2\2\2A\u0136\3\2\2\2C\u013c\3\2\2\2E\u0141\3\2\2\2G"+
"\u0148\3\2\2\2I\u014d\3\2\2\2K\u0150\3\2\2\2M\u0154\3\2\2\2O\u0158\3\2"+
@@ -222,24 +222,24 @@ public AuthnFlowLexer(CharStream input) {
"\u00b1\u00b2\7n\2\2\u00b2\u00b3\7q\2\2\u00b3\u00b4\7y\2\2\u00b4\"\3\2"+
"\2\2\u00b5\u00b6\7D\2\2\u00b6\u00b7\7c\2\2\u00b7\u00b8\7u\2\2\u00b8\u00b9"+
"\7g\2\2\u00b9\u00ba\7r\2\2\u00ba\u00bb\7c\2\2\u00bb\u00bc\7v\2\2\u00bc"+
- "\u00bd\7j\2\2\u00bd$\3\2\2\2\u00be\u00bf\7K\2\2\u00bf\u00c0\7p\2\2\u00c0"+
- "\u00c1\7r\2\2\u00c1\u00c2\7w\2\2\u00c2\u00c3\7v\2\2\u00c3\u00c4\7u\2\2"+
- "\u00c4&\3\2\2\2\u00c5\u00c6\7N\2\2\u00c6\u00c7\7q\2\2\u00c7\u00c8\7i\2"+
- "\2\u00c8(\3\2\2\2\u00c9\u00ca\7V\2\2\u00ca\u00cb\7t\2\2\u00cb\u00cc\7"+
- "k\2\2\u00cc\u00cd\7i\2\2\u00cd\u00ce\7i\2\2\u00ce\u00cf\7g\2\2\u00cf\u00d0"+
- "\7t\2\2\u00d0*\3\2\2\2\u00d1\u00d2\7E\2\2\u00d2\u00d3\7c\2\2\u00d3\u00d4"+
- "\7n\2\2\u00d4\u00d5\7n\2\2\u00d5,\3\2\2\2\u00d6\u00d7\7T\2\2\u00d7\u00d8"+
- "\7T\2\2\u00d8\u00d9\7H\2\2\u00d9.\3\2\2\2\u00da\u00db\7U\2\2\u00db\u00dc"+
- "\7v\2\2\u00dc\u00dd\7c\2\2\u00dd\u00de\7v\2\2\u00de\u00df\7w\2\2\u00df"+
- "\u00e0\7u\2\2\u00e0\u00e1\7\"\2\2\u00e1\u00e2\7t\2\2\u00e2\u00e3\7g\2"+
- "\2\u00e3\u00e4\7s\2\2\u00e4\u00e5\7w\2\2\u00e5\u00e6\7g\2\2\u00e6\u00e7"+
- "\7u\2\2\u00e7\u00e8\7v\2\2\u00e8\u00e9\7u\2\2\u00e9\60\3\2\2\2\u00ea\u00eb"+
- "\7C\2\2\u00eb\u00ec\7n\2\2\u00ec\u00ed\7n\2\2\u00ed\u00ee\7q\2\2\u00ee"+
- "\u00ef\7y\2\2\u00ef\u00f0\7\"\2\2\u00f0\u00f1\7h\2\2\u00f1\u00f2\7q\2"+
- "\2\u00f2\u00f3\7t\2\2\u00f3\62\3\2\2\2\u00f4\u00f5\7T\2\2\u00f5\u00f6"+
- "\7g\2\2\u00f6\u00f7\7r\2\2\u00f7\u00f8\7n\2\2\u00f8\u00f9\7{\2\2\u00f9"+
- "\64\3\2\2\2\u00fa\u00fb\7W\2\2\u00fb\u00fc\7p\2\2\u00fc\u00fd\7v\2\2\u00fd"+
- "\u00fe\7k\2\2\u00fe\u00ff\7n\2\2\u00ff\66\3\2\2\2\u0100\u0101\7Q\2\2\u0101"+
+ "\u00bd\7j\2\2\u00bd$\3\2\2\2\u00be\u00bf\7E\2\2\u00bf\u00c0\7q\2\2\u00c0"+
+ "\u00c1\7p\2\2\u00c1\u00c2\7h\2\2\u00c2\u00c3\7k\2\2\u00c3\u00c4\7i\2\2"+
+ "\u00c4\u00c5\7u\2\2\u00c5&\3\2\2\2\u00c6\u00c7\7K\2\2\u00c7\u00c8\7p\2"+
+ "\2\u00c8\u00c9\7r\2\2\u00c9\u00ca\7w\2\2\u00ca\u00cb\7v\2\2\u00cb\u00cc"+
+ "\7u\2\2\u00cc(\3\2\2\2\u00cd\u00ce\7N\2\2\u00ce\u00cf\7q\2\2\u00cf\u00d0"+
+ "\7i\2\2\u00d0*\3\2\2\2\u00d1\u00d2\7V\2\2\u00d2\u00d3\7t\2\2\u00d3\u00d4"+
+ "\7k\2\2\u00d4\u00d5\7i\2\2\u00d5\u00d6\7i\2\2\u00d6\u00d7\7g\2\2\u00d7"+
+ "\u00d8\7t\2\2\u00d8,\3\2\2\2\u00d9\u00da\7E\2\2\u00da\u00db\7c\2\2\u00db"+
+ "\u00dc\7n\2\2\u00dc\u00dd\7n\2\2\u00dd.\3\2\2\2\u00de\u00df\7T\2\2\u00df"+
+ "\u00e0\7T\2\2\u00e0\u00e1\7H\2\2\u00e1\60\3\2\2\2\u00e2\u00e3\7U\2\2\u00e3"+
+ "\u00e4\7v\2\2\u00e4\u00e5\7c\2\2\u00e5\u00e6\7v\2\2\u00e6\u00e7\7w\2\2"+
+ "\u00e7\u00e8\7u\2\2\u00e8\u00e9\7\"\2\2\u00e9\u00ea\7e\2\2\u00ea\u00eb"+
+ "\7j\2\2\u00eb\u00ec\7g\2\2\u00ec\u00ed\7e\2\2\u00ed\u00ee\7m\2\2\u00ee"+
+ "\u00ef\7g\2\2\u00ef\u00f0\7t\2\2\u00f0\62\3\2\2\2\u00f1\u00f2\7Q\2\2\u00f2"+
+ "\u00f3\7r\2\2\u00f3\u00f4\7g\2\2\u00f4\u00f5\7p\2\2\u00f5\u00f6\7\"\2"+
+ "\2\u00f6\u00f7\7h\2\2\u00f7\u00f8\7q\2\2\u00f8\u00f9\7t\2\2\u00f9\64\3"+
+ "\2\2\2\u00fa\u00fb\7E\2\2\u00fb\u00fc\7n\2\2\u00fc\u00fd\7q\2\2\u00fd"+
+ "\u00fe\7u\2\2\u00fe\u00ff\7g\2\2\u00ff\66\3\2\2\2\u0100\u0101\7Q\2\2\u0101"+
"\u0102\7x\2\2\u0102\u0103\7g\2\2\u0103\u0104\7t\2\2\u0104\u0105\7t\2\2"+
"\u0105\u0106\7k\2\2\u0106\u0107\7f\2\2\u0107\u0108\7g\2\2\u0108\u0109"+
"\7\"\2\2\u0109\u010a\7v\2\2\u010a\u010b\7g\2\2\u010b\u010c\7o\2\2\u010c"+
diff --git a/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowListener.java b/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowListener.java
index a0194be97f1..344148256db 100644
--- a/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowListener.java
+++ b/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowListener.java
@@ -47,6 +47,16 @@ public interface AuthnFlowListener extends ParseTreeListener {
* @param ctx the parse tree
*/
void exitBase(AuthnFlowParser.BaseContext ctx);
+ /**
+ * Enter a parse tree produced by {@link AuthnFlowParser#configs}.
+ * @param ctx the parse tree
+ */
+ void enterConfigs(AuthnFlowParser.ConfigsContext ctx);
+ /**
+ * Exit a parse tree produced by {@link AuthnFlowParser#configs}.
+ * @param ctx the parse tree
+ */
+ void exitConfigs(AuthnFlowParser.ConfigsContext ctx);
/**
* Enter a parse tree produced by {@link AuthnFlowParser#inputs}.
* @param ctx the parse tree
@@ -378,43 +388,33 @@ public interface AuthnFlowListener extends ParseTreeListener {
*/
void exitQuit_stmt(AuthnFlowParser.Quit_stmtContext ctx);
/**
- * Enter a parse tree produced by {@link AuthnFlowParser#statusr_block}.
- * @param ctx the parse tree
- */
- void enterStatusr_block(AuthnFlowParser.Statusr_blockContext ctx);
- /**
- * Exit a parse tree produced by {@link AuthnFlowParser#statusr_block}.
- * @param ctx the parse tree
- */
- void exitStatusr_block(AuthnFlowParser.Statusr_blockContext ctx);
- /**
- * Enter a parse tree produced by {@link AuthnFlowParser#statusr_allow}.
+ * Enter a parse tree produced by {@link AuthnFlowParser#stchk_block}.
* @param ctx the parse tree
*/
- void enterStatusr_allow(AuthnFlowParser.Statusr_allowContext ctx);
+ void enterStchk_block(AuthnFlowParser.Stchk_blockContext ctx);
/**
- * Exit a parse tree produced by {@link AuthnFlowParser#statusr_allow}.
+ * Exit a parse tree produced by {@link AuthnFlowParser#stchk_block}.
* @param ctx the parse tree
*/
- void exitStatusr_allow(AuthnFlowParser.Statusr_allowContext ctx);
+ void exitStchk_block(AuthnFlowParser.Stchk_blockContext ctx);
/**
- * Enter a parse tree produced by {@link AuthnFlowParser#statusr_reply}.
+ * Enter a parse tree produced by {@link AuthnFlowParser#stchk_open}.
* @param ctx the parse tree
*/
- void enterStatusr_reply(AuthnFlowParser.Statusr_replyContext ctx);
+ void enterStchk_open(AuthnFlowParser.Stchk_openContext ctx);
/**
- * Exit a parse tree produced by {@link AuthnFlowParser#statusr_reply}.
+ * Exit a parse tree produced by {@link AuthnFlowParser#stchk_open}.
* @param ctx the parse tree
*/
- void exitStatusr_reply(AuthnFlowParser.Statusr_replyContext ctx);
+ void exitStchk_open(AuthnFlowParser.Stchk_openContext ctx);
/**
- * Enter a parse tree produced by {@link AuthnFlowParser#statusr_until}.
+ * Enter a parse tree produced by {@link AuthnFlowParser#stchk_close}.
* @param ctx the parse tree
*/
- void enterStatusr_until(AuthnFlowParser.Statusr_untilContext ctx);
+ void enterStchk_close(AuthnFlowParser.Stchk_closeContext ctx);
/**
- * Exit a parse tree produced by {@link AuthnFlowParser#statusr_until}.
+ * Exit a parse tree produced by {@link AuthnFlowParser#stchk_close}.
* @param ctx the parse tree
*/
- void exitStatusr_until(AuthnFlowParser.Statusr_untilContext ctx);
+ void exitStchk_close(AuthnFlowParser.Stchk_closeContext ctx);
}
\ No newline at end of file
diff --git a/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowParser.java b/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowParser.java
index 00f9d9cd2dd..3e355b8d666 100644
--- a/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowParser.java
+++ b/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowParser.java
@@ -18,34 +18,33 @@ public class AuthnFlowParser extends Parser {
new PredictionContextCache();
public static final int
T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, NL=9,
- COMMENT=10, FLOWSTART=11, BASE=12, FLOWINPUTS=13, LOG=14, FLOWCALL=15,
- ACTIONCALL=16, RRFCALL=17, STATUS_REQ=18, ALLOW=19, REPLY=20, UNTIL=21,
+ COMMENT=10, FLOWSTART=11, BASE=12, CONFIGS=13, FLOWINPUTS=14, LOG=15,
+ FLOWCALL=16, ACTIONCALL=17, RRFCALL=18, STATUS_CHK=19, OPEN=20, CLOSE=21,
OVERRIDE=22, WHEN=23, OTHERWISE=24, REPEAT=25, ITERATE=26, MATCH=27, QUIT=28,
FINISH=29, RFAC=30, IS=31, NOT=32, AND=33, OR=34, SECS=35, TO=36, MAXTIMES=37,
USE=38, EQ=39, MINUS=40, NUL=41, BOOL=42, STRING=43, UINT=44, SINT=45,
DECIMAL=46, ALPHANUM=47, QNAME=48, EVALNUM=49, DOTEXPR=50, DOTIDXEXPR=51,
SPCOMMA=52, WS=53, INDENT=54, DEDENT=55;
public static final int
- RULE_flow = 0, RULE_header = 1, RULE_qname = 2, RULE_base = 3, RULE_inputs = 4,
- RULE_short_var = 5, RULE_statement = 6, RULE_preassign = 7, RULE_preassign_catch = 8,
- RULE_variable = 9, RULE_flow_call = 10, RULE_overrides = 11, RULE_action_call = 12,
- RULE_rrf_call = 13, RULE_log = 14, RULE_static_call = 15, RULE_oo_call = 16,
- RULE_argument = 17, RULE_simple_expr = 18, RULE_literal = 19, RULE_expression = 20,
- RULE_array_expr = 21, RULE_object_expr = 22, RULE_assignment = 23, RULE_keypair = 24,
- RULE_rfac = 25, RULE_finish = 26, RULE_choice = 27, RULE_option = 28,
- RULE_ifelse = 29, RULE_caseof = 30, RULE_boolean_op_expr = 31, RULE_boolean_expr = 32,
- RULE_elseblock = 33, RULE_loop = 34, RULE_loopy = 35, RULE_quit_stmt = 36,
- RULE_statusr_block = 37, RULE_statusr_allow = 38, RULE_statusr_reply = 39,
- RULE_statusr_until = 40;
+ RULE_flow = 0, RULE_header = 1, RULE_qname = 2, RULE_base = 3, RULE_configs = 4,
+ RULE_inputs = 5, RULE_short_var = 6, RULE_statement = 7, RULE_preassign = 8,
+ RULE_preassign_catch = 9, RULE_variable = 10, RULE_flow_call = 11, RULE_overrides = 12,
+ RULE_action_call = 13, RULE_rrf_call = 14, RULE_log = 15, RULE_static_call = 16,
+ RULE_oo_call = 17, RULE_argument = 18, RULE_simple_expr = 19, RULE_literal = 20,
+ RULE_expression = 21, RULE_array_expr = 22, RULE_object_expr = 23, RULE_assignment = 24,
+ RULE_keypair = 25, RULE_rfac = 26, RULE_finish = 27, RULE_choice = 28,
+ RULE_option = 29, RULE_ifelse = 30, RULE_caseof = 31, RULE_boolean_op_expr = 32,
+ RULE_boolean_expr = 33, RULE_elseblock = 34, RULE_loop = 35, RULE_loopy = 36,
+ RULE_quit_stmt = 37, RULE_stchk_block = 38, RULE_stchk_open = 39, RULE_stchk_close = 40;
private static String[] makeRuleNames() {
return new String[] {
- "flow", "header", "qname", "base", "inputs", "short_var", "statement",
- "preassign", "preassign_catch", "variable", "flow_call", "overrides",
- "action_call", "rrf_call", "log", "static_call", "oo_call", "argument",
- "simple_expr", "literal", "expression", "array_expr", "object_expr",
+ "flow", "header", "qname", "base", "configs", "inputs", "short_var",
+ "statement", "preassign", "preassign_catch", "variable", "flow_call",
+ "overrides", "action_call", "rrf_call", "log", "static_call", "oo_call",
+ "argument", "simple_expr", "literal", "expression", "array_expr", "object_expr",
"assignment", "keypair", "rfac", "finish", "choice", "option", "ifelse",
"caseof", "boolean_op_expr", "boolean_expr", "elseblock", "loop", "loopy",
- "quit_stmt", "statusr_block", "statusr_allow", "statusr_reply", "statusr_until"
+ "quit_stmt", "stchk_block", "stchk_open", "stchk_close"
};
}
public static final String[] ruleNames = makeRuleNames();
@@ -53,8 +52,8 @@ private static String[] makeRuleNames() {
private static String[] makeLiteralNames() {
return new String[] {
null, "'|'", "'$'", "'#'", "'['", "']'", "'{'", "'}'", "':'", null, null,
- "'Flow'", "'Basepath'", "'Inputs'", "'Log'", "'Trigger'", "'Call'", "'RRF'",
- "'Status requests'", "'Allow for'", "'Reply'", "'Until'", "'Override templates'",
+ "'Flow'", "'Basepath'", "'Configs'", "'Inputs'", "'Log'", "'Trigger'",
+ "'Call'", "'RRF'", "'Status checker'", "'Open for'", "'Close'", "'Override templates'",
"'When'", "'Otherwise'", "'Repeat'", "'Iterate over'", "'Match'", "'Quit'",
"'Finish'", "'RFAC'", "'is'", "'not'", "'and'", "'or'", "'seconds'",
"'to'", "'times max'", "'using'", "'='", "'-'", "'null'"
@@ -64,8 +63,8 @@ private static String[] makeLiteralNames() {
private static String[] makeSymbolicNames() {
return new String[] {
null, null, null, null, null, null, null, null, null, "NL", "COMMENT",
- "FLOWSTART", "BASE", "FLOWINPUTS", "LOG", "FLOWCALL", "ACTIONCALL", "RRFCALL",
- "STATUS_REQ", "ALLOW", "REPLY", "UNTIL", "OVERRIDE", "WHEN", "OTHERWISE",
+ "FLOWSTART", "BASE", "CONFIGS", "FLOWINPUTS", "LOG", "FLOWCALL", "ACTIONCALL",
+ "RRFCALL", "STATUS_CHK", "OPEN", "CLOSE", "OVERRIDE", "WHEN", "OTHERWISE",
"REPEAT", "ITERATE", "MATCH", "QUIT", "FINISH", "RFAC", "IS", "NOT",
"AND", "OR", "SECS", "TO", "MAXTIMES", "USE", "EQ", "MINUS", "NUL", "BOOL",
"STRING", "UINT", "SINT", "DECIMAL", "ALPHANUM", "QNAME", "EVALNUM",
@@ -202,6 +201,9 @@ public BaseContext base() {
return getRuleContext(BaseContext.class,0);
}
public TerminalNode DEDENT() { return getToken(AuthnFlowParser.DEDENT, 0); }
+ public ConfigsContext configs() {
+ return getRuleContext(ConfigsContext.class,0);
+ }
public InputsContext inputs() {
return getRuleContext(InputsContext.class,0);
}
@@ -258,26 +260,36 @@ public final HeaderContext header() throws RecognitionException {
setState(97);
_errHandler.sync(this);
_la = _input.LA(1);
- if (_la==FLOWINPUTS) {
+ if (_la==CONFIGS) {
{
setState(96);
+ configs();
+ }
+ }
+
+ setState(100);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==FLOWINPUTS) {
+ {
+ setState(99);
inputs();
}
}
- setState(99);
+ setState(102);
match(DEDENT);
- setState(103);
+ setState(106);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
- setState(100);
+ setState(103);
match(NL);
}
}
- setState(105);
+ setState(108);
_errHandler.sync(this);
_la = _input.LA(1);
}
@@ -323,7 +335,7 @@ public final QnameContext qname() throws RecognitionException {
try {
enterOuterAlt(_localctx, 1);
{
- setState(106);
+ setState(109);
_la = _input.LA(1);
if ( !(_la==ALPHANUM || _la==QNAME) ) {
_errHandler.recoverInline(this);
@@ -380,23 +392,90 @@ public final BaseContext base() throws RecognitionException {
try {
enterOuterAlt(_localctx, 1);
{
- setState(108);
+ setState(111);
match(BASE);
- setState(109);
+ setState(112);
match(WS);
- setState(110);
+ setState(113);
match(STRING);
- setState(112);
+ setState(115);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WS) {
+ {
+ setState(114);
+ match(WS);
+ }
+ }
+
+ setState(117);
+ match(NL);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class ConfigsContext extends ParserRuleContext {
+ public TerminalNode CONFIGS() { return getToken(AuthnFlowParser.CONFIGS, 0); }
+ public List WS() { return getTokens(AuthnFlowParser.WS); }
+ public TerminalNode WS(int i) {
+ return getToken(AuthnFlowParser.WS, i);
+ }
+ public Short_varContext short_var() {
+ return getRuleContext(Short_varContext.class,0);
+ }
+ public TerminalNode NL() { return getToken(AuthnFlowParser.NL, 0); }
+ public ConfigsContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_configs; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).enterConfigs(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).exitConfigs(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof AuthnFlowVisitor ) return ((AuthnFlowVisitor extends T>)visitor).visitConfigs(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ConfigsContext configs() throws RecognitionException {
+ ConfigsContext _localctx = new ConfigsContext(_ctx, getState());
+ enterRule(_localctx, 8, RULE_configs);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(119);
+ match(CONFIGS);
+ setState(120);
+ match(WS);
+ setState(121);
+ short_var();
+ setState(123);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(111);
+ setState(122);
match(WS);
}
}
- setState(114);
+ setState(125);
match(NL);
}
}
@@ -445,15 +524,15 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final InputsContext inputs() throws RecognitionException {
InputsContext _localctx = new InputsContext(_ctx, getState());
- enterRule(_localctx, 8, RULE_inputs);
+ enterRule(_localctx, 10, RULE_inputs);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
- setState(116);
+ setState(127);
match(FLOWINPUTS);
- setState(119);
+ setState(130);
_errHandler.sync(this);
_alt = 1;
do {
@@ -461,9 +540,9 @@ public final InputsContext inputs() throws RecognitionException {
case 1:
{
{
- setState(117);
+ setState(128);
match(WS);
- setState(118);
+ setState(129);
short_var();
}
}
@@ -471,21 +550,21 @@ public final InputsContext inputs() throws RecognitionException {
default:
throw new NoViableAltException(this);
}
- setState(121);
+ setState(132);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,5,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,7,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
- setState(124);
+ setState(135);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(123);
+ setState(134);
match(WS);
}
}
- setState(126);
+ setState(137);
match(NL);
}
}
@@ -523,11 +602,11 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Short_varContext short_var() throws RecognitionException {
Short_varContext _localctx = new Short_varContext(_ctx, getState());
- enterRule(_localctx, 10, RULE_short_var);
+ enterRule(_localctx, 12, RULE_short_var);
try {
enterOuterAlt(_localctx, 1);
{
- setState(128);
+ setState(139);
match(ALPHANUM);
}
}
@@ -597,85 +676,85 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final StatementContext statement() throws RecognitionException {
StatementContext _localctx = new StatementContext(_ctx, getState());
- enterRule(_localctx, 12, RULE_statement);
+ enterRule(_localctx, 14, RULE_statement);
try {
- setState(141);
+ setState(152);
_errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,7,_ctx) ) {
+ switch ( getInterpreter().adaptivePredict(_input,9,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
- setState(130);
+ setState(141);
flow_call();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
- setState(131);
+ setState(142);
action_call();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
- setState(132);
+ setState(143);
rrf_call();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
- setState(133);
+ setState(144);
assignment();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
- setState(134);
+ setState(145);
log();
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
- setState(135);
+ setState(146);
rfac();
}
break;
case 7:
enterOuterAlt(_localctx, 7);
{
- setState(136);
+ setState(147);
finish();
}
break;
case 8:
enterOuterAlt(_localctx, 8);
{
- setState(137);
+ setState(148);
ifelse();
}
break;
case 9:
enterOuterAlt(_localctx, 9);
{
- setState(138);
+ setState(149);
choice();
}
break;
case 10:
enterOuterAlt(_localctx, 10);
{
- setState(139);
+ setState(150);
loop();
}
break;
case 11:
enterOuterAlt(_localctx, 11);
{
- setState(140);
+ setState(151);
loopy();
}
break;
@@ -722,31 +801,31 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final PreassignContext preassign() throws RecognitionException {
PreassignContext _localctx = new PreassignContext(_ctx, getState());
- enterRule(_localctx, 14, RULE_preassign);
+ enterRule(_localctx, 16, RULE_preassign);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(143);
+ setState(154);
variable();
- setState(145);
+ setState(156);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(144);
+ setState(155);
match(WS);
}
}
- setState(147);
+ setState(158);
match(EQ);
- setState(149);
+ setState(160);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(148);
+ setState(159);
match(WS);
}
}
@@ -797,63 +876,63 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Preassign_catchContext preassign_catch() throws RecognitionException {
Preassign_catchContext _localctx = new Preassign_catchContext(_ctx, getState());
- enterRule(_localctx, 16, RULE_preassign_catch);
+ enterRule(_localctx, 18, RULE_preassign_catch);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(152);
+ setState(163);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR))) != 0)) {
{
- setState(151);
+ setState(162);
variable();
}
}
- setState(155);
+ setState(166);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(154);
+ setState(165);
match(WS);
}
}
- setState(157);
+ setState(168);
match(T__0);
- setState(159);
+ setState(170);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(158);
+ setState(169);
match(WS);
}
}
- setState(161);
+ setState(172);
short_var();
- setState(163);
+ setState(174);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(162);
+ setState(173);
match(WS);
}
}
- setState(165);
+ setState(176);
match(EQ);
- setState(167);
+ setState(178);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(166);
+ setState(177);
match(WS);
}
}
@@ -899,36 +978,36 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final VariableContext variable() throws RecognitionException {
VariableContext _localctx = new VariableContext(_ctx, getState());
- enterRule(_localctx, 18, RULE_variable);
+ enterRule(_localctx, 20, RULE_variable);
try {
- setState(173);
+ setState(184);
_errHandler.sync(this);
switch (_input.LA(1)) {
case ALPHANUM:
enterOuterAlt(_localctx, 1);
{
- setState(169);
+ setState(180);
short_var();
}
break;
case QNAME:
enterOuterAlt(_localctx, 2);
{
- setState(170);
+ setState(181);
match(QNAME);
}
break;
case DOTEXPR:
enterOuterAlt(_localctx, 3);
{
- setState(171);
+ setState(182);
match(DOTEXPR);
}
break;
case DOTIDXEXPR:
enterOuterAlt(_localctx, 4);
{
- setState(172);
+ setState(183);
match(DOTIDXEXPR);
}
break;
@@ -993,85 +1072,85 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Flow_callContext flow_call() throws RecognitionException {
Flow_callContext _localctx = new Flow_callContext(_ctx, getState());
- enterRule(_localctx, 20, RULE_flow_call);
+ enterRule(_localctx, 22, RULE_flow_call);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
- setState(176);
+ setState(187);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR))) != 0)) {
{
- setState(175);
+ setState(186);
preassign();
}
}
- setState(178);
+ setState(189);
match(FLOWCALL);
- setState(179);
+ setState(190);
match(WS);
- setState(183);
+ setState(194);
_errHandler.sync(this);
switch (_input.LA(1)) {
case T__1:
{
- setState(180);
+ setState(191);
match(T__1);
- setState(181);
+ setState(192);
variable();
}
break;
case ALPHANUM:
case QNAME:
{
- setState(182);
+ setState(193);
qname();
}
break;
default:
throw new NoViableAltException(this);
}
- setState(188);
+ setState(199);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,18,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,20,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
- setState(185);
+ setState(196);
argument();
}
}
}
- setState(190);
+ setState(201);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,18,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,20,_ctx);
}
- setState(192);
+ setState(203);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(191);
+ setState(202);
match(WS);
}
}
- setState(196);
+ setState(207);
_errHandler.sync(this);
switch (_input.LA(1)) {
case INDENT:
{
- setState(194);
+ setState(205);
overrides();
}
break;
case NL:
{
- setState(195);
+ setState(206);
match(NL);
}
break;
@@ -1125,51 +1204,51 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final OverridesContext overrides() throws RecognitionException {
OverridesContext _localctx = new OverridesContext(_ctx, getState());
- enterRule(_localctx, 22, RULE_overrides);
+ enterRule(_localctx, 24, RULE_overrides);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
- setState(198);
+ setState(209);
match(INDENT);
- setState(199);
+ setState(210);
match(OVERRIDE);
- setState(200);
+ setState(211);
match(WS);
- setState(201);
+ setState(212);
match(STRING);
- setState(206);
+ setState(217);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,21,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,23,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
- setState(202);
+ setState(213);
match(WS);
- setState(203);
+ setState(214);
match(STRING);
}
}
}
- setState(208);
+ setState(219);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,21,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,23,_ctx);
}
- setState(210);
+ setState(221);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(209);
+ setState(220);
match(WS);
}
}
- setState(212);
+ setState(223);
match(NL);
- setState(213);
+ setState(224);
match(DEDENT);
}
}
@@ -1224,58 +1303,58 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Action_callContext action_call() throws RecognitionException {
Action_callContext _localctx = new Action_callContext(_ctx, getState());
- enterRule(_localctx, 24, RULE_action_call);
+ enterRule(_localctx, 26, RULE_action_call);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(217);
+ setState(228);
_errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,23,_ctx) ) {
+ switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) {
case 1:
{
- setState(215);
+ setState(226);
preassign();
}
break;
case 2:
{
- setState(216);
+ setState(227);
preassign_catch();
}
break;
}
- setState(219);
+ setState(230);
match(ACTIONCALL);
- setState(220);
+ setState(231);
match(WS);
- setState(223);
+ setState(234);
_errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) {
+ switch ( getInterpreter().adaptivePredict(_input,26,_ctx) ) {
case 1:
{
- setState(221);
+ setState(232);
static_call();
}
break;
case 2:
{
- setState(222);
+ setState(233);
oo_call();
}
break;
}
- setState(226);
+ setState(237);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(225);
+ setState(236);
match(WS);
}
}
- setState(228);
+ setState(239);
match(NL);
}
}
@@ -1297,8 +1376,8 @@ public TerminalNode WS(int i) {
return getToken(AuthnFlowParser.WS, i);
}
public TerminalNode STRING() { return getToken(AuthnFlowParser.STRING, 0); }
- public Statusr_blockContext statusr_block() {
- return getRuleContext(Statusr_blockContext.class,0);
+ public Stchk_blockContext stchk_block() {
+ return getRuleContext(Stchk_blockContext.class,0);
}
public TerminalNode NL() { return getToken(AuthnFlowParser.NL, 0); }
public PreassignContext preassign() {
@@ -1329,73 +1408,73 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Rrf_callContext rrf_call() throws RecognitionException {
Rrf_callContext _localctx = new Rrf_callContext(_ctx, getState());
- enterRule(_localctx, 26, RULE_rrf_call);
+ enterRule(_localctx, 28, RULE_rrf_call);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(231);
+ setState(242);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR))) != 0)) {
{
- setState(230);
+ setState(241);
preassign();
}
}
- setState(233);
+ setState(244);
match(RRFCALL);
- setState(234);
+ setState(245);
match(WS);
- setState(235);
+ setState(246);
match(STRING);
- setState(238);
+ setState(249);
_errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,27,_ctx) ) {
+ switch ( getInterpreter().adaptivePredict(_input,29,_ctx) ) {
case 1:
{
- setState(236);
+ setState(247);
match(WS);
- setState(237);
+ setState(248);
variable();
}
break;
}
- setState(242);
+ setState(253);
_errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,28,_ctx) ) {
+ switch ( getInterpreter().adaptivePredict(_input,30,_ctx) ) {
case 1:
{
- setState(240);
+ setState(251);
match(WS);
- setState(241);
+ setState(252);
match(BOOL);
}
break;
}
- setState(245);
+ setState(256);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(244);
+ setState(255);
match(WS);
}
}
- setState(249);
+ setState(260);
_errHandler.sync(this);
switch (_input.LA(1)) {
case INDENT:
{
- setState(247);
- statusr_block();
+ setState(258);
+ stchk_block();
}
break;
case NL:
{
- setState(248);
+ setState(259);
match(NL);
}
break;
@@ -1446,15 +1525,15 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final LogContext log() throws RecognitionException {
LogContext _localctx = new LogContext(_ctx, getState());
- enterRule(_localctx, 28, RULE_log);
+ enterRule(_localctx, 30, RULE_log);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
- setState(251);
+ setState(262);
match(LOG);
- setState(253);
+ setState(264);
_errHandler.sync(this);
_alt = 1;
do {
@@ -1462,7 +1541,7 @@ public final LogContext log() throws RecognitionException {
case 1:
{
{
- setState(252);
+ setState(263);
argument();
}
}
@@ -1470,21 +1549,21 @@ public final LogContext log() throws RecognitionException {
default:
throw new NoViableAltException(this);
}
- setState(255);
+ setState(266);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,31,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,33,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
- setState(258);
+ setState(269);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(257);
+ setState(268);
match(WS);
}
}
- setState(260);
+ setState(271);
match(NL);
}
}
@@ -1531,32 +1610,32 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Static_callContext static_call() throws RecognitionException {
Static_callContext _localctx = new Static_callContext(_ctx, getState());
- enterRule(_localctx, 30, RULE_static_call);
+ enterRule(_localctx, 32, RULE_static_call);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
- setState(262);
+ setState(273);
qname();
- setState(263);
+ setState(274);
match(T__2);
- setState(264);
+ setState(275);
match(ALPHANUM);
- setState(268);
+ setState(279);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,33,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,35,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
- setState(265);
+ setState(276);
argument();
}
}
}
- setState(270);
+ setState(281);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,33,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,35,_ctx);
}
}
}
@@ -1604,32 +1683,32 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Oo_callContext oo_call() throws RecognitionException {
Oo_callContext _localctx = new Oo_callContext(_ctx, getState());
- enterRule(_localctx, 32, RULE_oo_call);
+ enterRule(_localctx, 34, RULE_oo_call);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
- setState(271);
+ setState(282);
variable();
- setState(272);
+ setState(283);
match(WS);
- setState(273);
+ setState(284);
match(ALPHANUM);
- setState(277);
+ setState(288);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,34,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,36,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
- setState(274);
+ setState(285);
argument();
}
}
}
- setState(279);
+ setState(290);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,34,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,36,_ctx);
}
}
}
@@ -1670,13 +1749,13 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final ArgumentContext argument() throws RecognitionException {
ArgumentContext _localctx = new ArgumentContext(_ctx, getState());
- enterRule(_localctx, 34, RULE_argument);
+ enterRule(_localctx, 36, RULE_argument);
try {
enterOuterAlt(_localctx, 1);
{
- setState(280);
+ setState(291);
match(WS);
- setState(281);
+ setState(292);
simple_expr();
}
}
@@ -1720,9 +1799,9 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Simple_exprContext simple_expr() throws RecognitionException {
Simple_exprContext _localctx = new Simple_exprContext(_ctx, getState());
- enterRule(_localctx, 36, RULE_simple_expr);
+ enterRule(_localctx, 38, RULE_simple_expr);
try {
- setState(287);
+ setState(298);
_errHandler.sync(this);
switch (_input.LA(1)) {
case NUL:
@@ -1733,7 +1812,7 @@ public final Simple_exprContext simple_expr() throws RecognitionException {
case DECIMAL:
enterOuterAlt(_localctx, 1);
{
- setState(283);
+ setState(294);
literal();
}
break;
@@ -1743,7 +1822,7 @@ public final Simple_exprContext simple_expr() throws RecognitionException {
case DOTIDXEXPR:
enterOuterAlt(_localctx, 2);
{
- setState(284);
+ setState(295);
variable();
}
break;
@@ -1751,9 +1830,9 @@ public final Simple_exprContext simple_expr() throws RecognitionException {
enterOuterAlt(_localctx, 3);
{
{
- setState(285);
+ setState(296);
match(MINUS);
- setState(286);
+ setState(297);
variable();
}
}
@@ -1801,12 +1880,12 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final LiteralContext literal() throws RecognitionException {
LiteralContext _localctx = new LiteralContext(_ctx, getState());
- enterRule(_localctx, 38, RULE_literal);
+ enterRule(_localctx, 40, RULE_literal);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(289);
+ setState(300);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NUL) | (1L << BOOL) | (1L << STRING) | (1L << UINT) | (1L << SINT) | (1L << DECIMAL))) != 0)) ) {
_errHandler.recoverInline(this);
@@ -1860,22 +1939,22 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final ExpressionContext expression() throws RecognitionException {
ExpressionContext _localctx = new ExpressionContext(_ctx, getState());
- enterRule(_localctx, 40, RULE_expression);
+ enterRule(_localctx, 42, RULE_expression);
try {
- setState(294);
+ setState(305);
_errHandler.sync(this);
switch (_input.LA(1)) {
case T__5:
enterOuterAlt(_localctx, 1);
{
- setState(291);
+ setState(302);
object_expr();
}
break;
case T__3:
enterOuterAlt(_localctx, 2);
{
- setState(292);
+ setState(303);
array_expr();
}
break;
@@ -1892,7 +1971,7 @@ public final ExpressionContext expression() throws RecognitionException {
case DOTIDXEXPR:
enterOuterAlt(_localctx, 3);
{
- setState(293);
+ setState(304);
simple_expr();
}
break;
@@ -1947,64 +2026,64 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Array_exprContext array_expr() throws RecognitionException {
Array_exprContext _localctx = new Array_exprContext(_ctx, getState());
- enterRule(_localctx, 42, RULE_array_expr);
+ enterRule(_localctx, 44, RULE_array_expr);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(296);
+ setState(307);
match(T__3);
- setState(298);
+ setState(309);
_errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,37,_ctx) ) {
+ switch ( getInterpreter().adaptivePredict(_input,39,_ctx) ) {
case 1:
{
- setState(297);
+ setState(308);
match(WS);
}
break;
}
- setState(303);
+ setState(314);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__5) | (1L << MINUS) | (1L << NUL) | (1L << BOOL) | (1L << STRING) | (1L << UINT) | (1L << SINT) | (1L << DECIMAL) | (1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR))) != 0)) {
{
{
- setState(300);
+ setState(311);
expression();
}
}
- setState(305);
+ setState(316);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(310);
+ setState(321);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==SPCOMMA) {
{
{
- setState(306);
+ setState(317);
match(SPCOMMA);
- setState(307);
+ setState(318);
expression();
}
}
- setState(312);
+ setState(323);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(314);
+ setState(325);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(313);
+ setState(324);
match(WS);
}
}
- setState(316);
+ setState(327);
match(T__4);
}
}
@@ -2055,64 +2134,64 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Object_exprContext object_expr() throws RecognitionException {
Object_exprContext _localctx = new Object_exprContext(_ctx, getState());
- enterRule(_localctx, 44, RULE_object_expr);
+ enterRule(_localctx, 46, RULE_object_expr);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(318);
+ setState(329);
match(T__5);
- setState(320);
+ setState(331);
_errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) {
+ switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) {
case 1:
{
- setState(319);
+ setState(330);
match(WS);
}
break;
}
- setState(325);
+ setState(336);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==ALPHANUM) {
{
{
- setState(322);
+ setState(333);
keypair();
}
}
- setState(327);
+ setState(338);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(332);
+ setState(343);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==SPCOMMA) {
{
{
- setState(328);
+ setState(339);
match(SPCOMMA);
- setState(329);
+ setState(340);
keypair();
}
}
- setState(334);
+ setState(345);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(336);
+ setState(347);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(335);
+ setState(346);
match(WS);
}
}
- setState(338);
+ setState(349);
match(T__6);
}
}
@@ -2157,26 +2236,26 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final AssignmentContext assignment() throws RecognitionException {
AssignmentContext _localctx = new AssignmentContext(_ctx, getState());
- enterRule(_localctx, 46, RULE_assignment);
+ enterRule(_localctx, 48, RULE_assignment);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(340);
+ setState(351);
preassign();
- setState(341);
+ setState(352);
expression();
- setState(343);
+ setState(354);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(342);
+ setState(353);
match(WS);
}
}
- setState(345);
+ setState(356);
match(NL);
}
}
@@ -2221,36 +2300,36 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final KeypairContext keypair() throws RecognitionException {
KeypairContext _localctx = new KeypairContext(_ctx, getState());
- enterRule(_localctx, 48, RULE_keypair);
+ enterRule(_localctx, 50, RULE_keypair);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(347);
+ setState(358);
match(ALPHANUM);
- setState(349);
+ setState(360);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(348);
+ setState(359);
match(WS);
}
}
- setState(351);
+ setState(362);
match(T__7);
- setState(353);
+ setState(364);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(352);
+ setState(363);
match(WS);
}
}
- setState(355);
+ setState(366);
expression();
}
}
@@ -2297,31 +2376,31 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final RfacContext rfac() throws RecognitionException {
RfacContext _localctx = new RfacContext(_ctx, getState());
- enterRule(_localctx, 50, RULE_rfac);
+ enterRule(_localctx, 52, RULE_rfac);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(358);
+ setState(369);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR))) != 0)) {
{
- setState(357);
+ setState(368);
preassign();
}
}
- setState(360);
+ setState(371);
match(RFAC);
- setState(361);
+ setState(372);
match(WS);
- setState(364);
+ setState(375);
_errHandler.sync(this);
switch (_input.LA(1)) {
case STRING:
{
- setState(362);
+ setState(373);
match(STRING);
}
break;
@@ -2330,14 +2409,14 @@ public final RfacContext rfac() throws RecognitionException {
case DOTEXPR:
case DOTIDXEXPR:
{
- setState(363);
+ setState(374);
variable();
}
break;
default:
throw new NoViableAltException(this);
}
- setState(366);
+ setState(377);
match(NL);
}
}
@@ -2384,21 +2463,21 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final FinishContext finish() throws RecognitionException {
FinishContext _localctx = new FinishContext(_ctx, getState());
- enterRule(_localctx, 52, RULE_finish);
+ enterRule(_localctx, 54, RULE_finish);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(368);
+ setState(379);
match(FINISH);
- setState(369);
+ setState(380);
match(WS);
- setState(372);
+ setState(383);
_errHandler.sync(this);
switch (_input.LA(1)) {
case BOOL:
{
- setState(370);
+ setState(381);
match(BOOL);
}
break;
@@ -2407,24 +2486,24 @@ public final FinishContext finish() throws RecognitionException {
case DOTEXPR:
case DOTIDXEXPR:
{
- setState(371);
+ setState(382);
variable();
}
break;
default:
throw new NoViableAltException(this);
}
- setState(375);
+ setState(386);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(374);
+ setState(385);
match(WS);
}
}
- setState(377);
+ setState(388);
match(NL);
}
}
@@ -2481,55 +2560,55 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final ChoiceContext choice() throws RecognitionException {
ChoiceContext _localctx = new ChoiceContext(_ctx, getState());
- enterRule(_localctx, 54, RULE_choice);
+ enterRule(_localctx, 56, RULE_choice);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(379);
+ setState(390);
match(MATCH);
- setState(380);
+ setState(391);
match(WS);
- setState(381);
+ setState(392);
simple_expr();
- setState(382);
+ setState(393);
match(WS);
- setState(383);
+ setState(394);
match(TO);
- setState(385);
+ setState(396);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(384);
+ setState(395);
match(WS);
}
}
- setState(387);
+ setState(398);
match(INDENT);
- setState(389);
+ setState(400);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
- setState(388);
+ setState(399);
option();
}
}
- setState(391);
+ setState(402);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << MINUS) | (1L << NUL) | (1L << BOOL) | (1L << STRING) | (1L << UINT) | (1L << SINT) | (1L << DECIMAL) | (1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR))) != 0) );
- setState(393);
+ setState(404);
match(DEDENT);
- setState(395);
+ setState(406);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==OTHERWISE) {
{
- setState(394);
+ setState(405);
elseblock();
}
}
@@ -2581,40 +2660,40 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final OptionContext option() throws RecognitionException {
OptionContext _localctx = new OptionContext(_ctx, getState());
- enterRule(_localctx, 56, RULE_option);
+ enterRule(_localctx, 58, RULE_option);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(397);
+ setState(408);
simple_expr();
- setState(399);
+ setState(410);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(398);
+ setState(409);
match(WS);
}
}
- setState(401);
+ setState(412);
match(INDENT);
- setState(403);
+ setState(414);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
- setState(402);
+ setState(413);
statement();
}
}
- setState(405);
+ setState(416);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << LOG) | (1L << FLOWCALL) | (1L << ACTIONCALL) | (1L << RRFCALL) | (1L << WHEN) | (1L << REPEAT) | (1L << ITERATE) | (1L << MATCH) | (1L << FINISH) | (1L << RFAC) | (1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR) | (1L << WS))) != 0) );
- setState(407);
+ setState(418);
match(DEDENT);
}
}
@@ -2665,37 +2744,37 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final IfelseContext ifelse() throws RecognitionException {
IfelseContext _localctx = new IfelseContext(_ctx, getState());
- enterRule(_localctx, 58, RULE_ifelse);
+ enterRule(_localctx, 60, RULE_ifelse);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(409);
+ setState(420);
caseof();
- setState(410);
+ setState(421);
match(INDENT);
- setState(412);
+ setState(423);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
- setState(411);
+ setState(422);
statement();
}
}
- setState(414);
+ setState(425);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << LOG) | (1L << FLOWCALL) | (1L << ACTIONCALL) | (1L << RRFCALL) | (1L << WHEN) | (1L << REPEAT) | (1L << ITERATE) | (1L << MATCH) | (1L << FINISH) | (1L << RFAC) | (1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR) | (1L << WS))) != 0) );
- setState(416);
+ setState(427);
match(DEDENT);
- setState(418);
+ setState(429);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==OTHERWISE) {
{
- setState(417);
+ setState(428);
elseblock();
}
}
@@ -2746,32 +2825,32 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final CaseofContext caseof() throws RecognitionException {
CaseofContext _localctx = new CaseofContext(_ctx, getState());
- enterRule(_localctx, 60, RULE_caseof);
+ enterRule(_localctx, 62, RULE_caseof);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
- setState(420);
+ setState(431);
match(WHEN);
- setState(421);
+ setState(432);
match(WS);
- setState(422);
+ setState(433);
boolean_expr();
- setState(426);
+ setState(437);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,59,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,61,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
- setState(423);
+ setState(434);
boolean_op_expr();
}
}
}
- setState(428);
+ setState(439);
_errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,59,_ctx);
+ _alt = getInterpreter().adaptivePredict(_input,61,_ctx);
}
}
}
@@ -2818,26 +2897,26 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Boolean_op_exprContext boolean_op_expr() throws RecognitionException {
Boolean_op_exprContext _localctx = new Boolean_op_exprContext(_ctx, getState());
- enterRule(_localctx, 62, RULE_boolean_op_expr);
+ enterRule(_localctx, 64, RULE_boolean_op_expr);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(432);
+ setState(443);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
- setState(429);
+ setState(440);
match(NL);
}
}
- setState(434);
+ setState(445);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(435);
+ setState(446);
_la = _input.LA(1);
if ( !(_la==AND || _la==OR) ) {
_errHandler.recoverInline(this);
@@ -2847,31 +2926,31 @@ public final Boolean_op_exprContext boolean_op_expr() throws RecognitionExceptio
_errHandler.reportMatch(this);
consume();
}
- setState(437);
+ setState(448);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(436);
+ setState(447);
match(WS);
}
}
- setState(442);
+ setState(453);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
- setState(439);
+ setState(450);
match(NL);
}
}
- setState(444);
+ setState(455);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(445);
+ setState(456);
boolean_expr();
}
}
@@ -2920,39 +2999,39 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Boolean_exprContext boolean_expr() throws RecognitionException {
Boolean_exprContext _localctx = new Boolean_exprContext(_ctx, getState());
- enterRule(_localctx, 64, RULE_boolean_expr);
+ enterRule(_localctx, 66, RULE_boolean_expr);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(447);
+ setState(458);
simple_expr();
- setState(448);
+ setState(459);
match(WS);
- setState(449);
+ setState(460);
match(IS);
- setState(450);
+ setState(461);
match(WS);
- setState(453);
+ setState(464);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==NOT) {
{
- setState(451);
+ setState(462);
match(NOT);
- setState(452);
+ setState(463);
match(WS);
}
}
- setState(455);
+ setState(466);
simple_expr();
- setState(457);
+ setState(468);
_errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,64,_ctx) ) {
+ switch ( getInterpreter().adaptivePredict(_input,66,_ctx) ) {
case 1:
{
- setState(456);
+ setState(467);
match(WS);
}
break;
@@ -3002,40 +3081,40 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final ElseblockContext elseblock() throws RecognitionException {
ElseblockContext _localctx = new ElseblockContext(_ctx, getState());
- enterRule(_localctx, 66, RULE_elseblock);
+ enterRule(_localctx, 68, RULE_elseblock);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(459);
+ setState(470);
match(OTHERWISE);
- setState(461);
+ setState(472);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(460);
+ setState(471);
match(WS);
}
}
- setState(463);
+ setState(474);
match(INDENT);
- setState(465);
+ setState(476);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
- setState(464);
+ setState(475);
statement();
}
}
- setState(467);
+ setState(478);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << LOG) | (1L << FLOWCALL) | (1L << ACTIONCALL) | (1L << RRFCALL) | (1L << WHEN) | (1L << REPEAT) | (1L << ITERATE) | (1L << MATCH) | (1L << FINISH) | (1L << RFAC) | (1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR) | (1L << WS))) != 0) );
- setState(469);
+ setState(480);
match(DEDENT);
}
}
@@ -3098,62 +3177,62 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final LoopContext loop() throws RecognitionException {
LoopContext _localctx = new LoopContext(_ctx, getState());
- enterRule(_localctx, 68, RULE_loop);
+ enterRule(_localctx, 70, RULE_loop);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(472);
+ setState(483);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR))) != 0)) {
{
- setState(471);
+ setState(482);
preassign();
}
}
- setState(474);
+ setState(485);
match(ITERATE);
- setState(475);
+ setState(486);
match(WS);
- setState(476);
+ setState(487);
variable();
- setState(477);
+ setState(488);
match(WS);
- setState(478);
+ setState(489);
match(USE);
- setState(479);
+ setState(490);
match(WS);
- setState(480);
+ setState(491);
short_var();
- setState(481);
+ setState(492);
match(INDENT);
- setState(483);
+ setState(494);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
- setState(482);
+ setState(493);
statement();
}
}
- setState(485);
+ setState(496);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << LOG) | (1L << FLOWCALL) | (1L << ACTIONCALL) | (1L << RRFCALL) | (1L << WHEN) | (1L << REPEAT) | (1L << ITERATE) | (1L << MATCH) | (1L << FINISH) | (1L << RFAC) | (1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR) | (1L << WS))) != 0) );
- setState(488);
+ setState(499);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==QUIT) {
{
- setState(487);
+ setState(498);
quit_stmt();
}
}
- setState(490);
+ setState(501);
match(DEDENT);
}
}
@@ -3214,26 +3293,26 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final LoopyContext loopy() throws RecognitionException {
LoopyContext _localctx = new LoopyContext(_ctx, getState());
- enterRule(_localctx, 70, RULE_loopy);
+ enterRule(_localctx, 72, RULE_loopy);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(493);
+ setState(504);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR))) != 0)) {
{
- setState(492);
+ setState(503);
preassign();
}
}
- setState(495);
+ setState(506);
match(REPEAT);
- setState(496);
+ setState(507);
match(WS);
- setState(499);
+ setState(510);
_errHandler.sync(this);
switch (_input.LA(1)) {
case ALPHANUM:
@@ -3241,60 +3320,60 @@ public final LoopyContext loopy() throws RecognitionException {
case DOTEXPR:
case DOTIDXEXPR:
{
- setState(497);
+ setState(508);
variable();
}
break;
case UINT:
{
- setState(498);
+ setState(509);
match(UINT);
}
break;
default:
throw new NoViableAltException(this);
}
- setState(501);
+ setState(512);
match(WS);
- setState(502);
+ setState(513);
match(MAXTIMES);
- setState(504);
+ setState(515);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(503);
+ setState(514);
match(WS);
}
}
- setState(506);
+ setState(517);
match(INDENT);
- setState(508);
+ setState(519);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
- setState(507);
+ setState(518);
statement();
}
}
- setState(510);
+ setState(521);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << LOG) | (1L << FLOWCALL) | (1L << ACTIONCALL) | (1L << RRFCALL) | (1L << WHEN) | (1L << REPEAT) | (1L << ITERATE) | (1L << MATCH) | (1L << FINISH) | (1L << RFAC) | (1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR) | (1L << WS))) != 0) );
- setState(513);
+ setState(524);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==QUIT) {
{
- setState(512);
+ setState(523);
quit_stmt();
}
}
- setState(515);
+ setState(526);
match(DEDENT);
}
}
@@ -3343,30 +3422,30 @@ public T accept(ParseTreeVisitor extends T> visitor) {
public final Quit_stmtContext quit_stmt() throws RecognitionException {
Quit_stmtContext _localctx = new Quit_stmtContext(_ctx, getState());
- enterRule(_localctx, 72, RULE_quit_stmt);
+ enterRule(_localctx, 74, RULE_quit_stmt);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(517);
+ setState(528);
match(QUIT);
- setState(518);
+ setState(529);
match(WS);
- setState(519);
+ setState(530);
caseof();
- setState(520);
+ setState(531);
match(NL);
- setState(524);
+ setState(535);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << LOG) | (1L << FLOWCALL) | (1L << ACTIONCALL) | (1L << RRFCALL) | (1L << WHEN) | (1L << REPEAT) | (1L << ITERATE) | (1L << MATCH) | (1L << FINISH) | (1L << RFAC) | (1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR) | (1L << WS))) != 0)) {
{
{
- setState(521);
+ setState(532);
statement();
}
}
- setState(526);
+ setState(537);
_errHandler.sync(this);
_la = _input.LA(1);
}
@@ -3383,77 +3462,85 @@ public final Quit_stmtContext quit_stmt() throws RecognitionException {
return _localctx;
}
- public static class Statusr_blockContext extends ParserRuleContext {
+ public static class Stchk_blockContext extends ParserRuleContext {
public List INDENT() { return getTokens(AuthnFlowParser.INDENT); }
public TerminalNode INDENT(int i) {
return getToken(AuthnFlowParser.INDENT, i);
}
- public TerminalNode STATUS_REQ() { return getToken(AuthnFlowParser.STATUS_REQ, 0); }
- public Statusr_allowContext statusr_allow() {
- return getRuleContext(Statusr_allowContext.class,0);
+ public TerminalNode STATUS_CHK() { return getToken(AuthnFlowParser.STATUS_CHK, 0); }
+ public Stchk_openContext stchk_open() {
+ return getRuleContext(Stchk_openContext.class,0);
}
- public Statusr_replyContext statusr_reply() {
- return getRuleContext(Statusr_replyContext.class,0);
- }
- public Statusr_untilContext statusr_until() {
- return getRuleContext(Statusr_untilContext.class,0);
+ public Stchk_closeContext stchk_close() {
+ return getRuleContext(Stchk_closeContext.class,0);
}
public List DEDENT() { return getTokens(AuthnFlowParser.DEDENT); }
public TerminalNode DEDENT(int i) {
return getToken(AuthnFlowParser.DEDENT, i);
}
public TerminalNode WS() { return getToken(AuthnFlowParser.WS, 0); }
- public Statusr_blockContext(ParserRuleContext parent, int invokingState) {
+ public Action_callContext action_call() {
+ return getRuleContext(Action_callContext.class,0);
+ }
+ public Stchk_blockContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
- @Override public int getRuleIndex() { return RULE_statusr_block; }
+ @Override public int getRuleIndex() { return RULE_stchk_block; }
@Override
public void enterRule(ParseTreeListener listener) {
- if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).enterStatusr_block(this);
+ if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).enterStchk_block(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
- if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).exitStatusr_block(this);
+ if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).exitStchk_block(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
- if ( visitor instanceof AuthnFlowVisitor ) return ((AuthnFlowVisitor extends T>)visitor).visitStatusr_block(this);
+ if ( visitor instanceof AuthnFlowVisitor ) return ((AuthnFlowVisitor extends T>)visitor).visitStchk_block(this);
else return visitor.visitChildren(this);
}
}
- public final Statusr_blockContext statusr_block() throws RecognitionException {
- Statusr_blockContext _localctx = new Statusr_blockContext(_ctx, getState());
- enterRule(_localctx, 74, RULE_statusr_block);
+ public final Stchk_blockContext stchk_block() throws RecognitionException {
+ Stchk_blockContext _localctx = new Stchk_blockContext(_ctx, getState());
+ enterRule(_localctx, 76, RULE_stchk_block);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(527);
+ setState(538);
match(INDENT);
- setState(528);
- match(STATUS_REQ);
- setState(530);
+ setState(539);
+ match(STATUS_CHK);
+ setState(541);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(529);
+ setState(540);
match(WS);
}
}
- setState(532);
+ setState(543);
match(INDENT);
- setState(533);
- statusr_allow();
- setState(534);
- statusr_reply();
- setState(535);
- statusr_until();
- setState(536);
+ setState(544);
+ stchk_open();
+ setState(546);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ACTIONCALL) | (1L << ALPHANUM) | (1L << QNAME) | (1L << DOTEXPR) | (1L << DOTIDXEXPR) | (1L << WS))) != 0)) {
+ {
+ setState(545);
+ action_call();
+ }
+ }
+
+ setState(548);
+ stchk_close();
+ setState(549);
match(DEDENT);
- setState(537);
+ setState(550);
match(DEDENT);
}
}
@@ -3468,8 +3555,8 @@ public final Statusr_blockContext statusr_block() throws RecognitionException {
return _localctx;
}
- public static class Statusr_allowContext extends ParserRuleContext {
- public TerminalNode ALLOW() { return getToken(AuthnFlowParser.ALLOW, 0); }
+ public static class Stchk_openContext extends ParserRuleContext {
+ public TerminalNode OPEN() { return getToken(AuthnFlowParser.OPEN, 0); }
public List WS() { return getTokens(AuthnFlowParser.WS); }
public TerminalNode WS(int i) {
return getToken(AuthnFlowParser.WS, i);
@@ -3480,37 +3567,37 @@ public VariableContext variable() {
return getRuleContext(VariableContext.class,0);
}
public TerminalNode UINT() { return getToken(AuthnFlowParser.UINT, 0); }
- public Statusr_allowContext(ParserRuleContext parent, int invokingState) {
+ public Stchk_openContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
- @Override public int getRuleIndex() { return RULE_statusr_allow; }
+ @Override public int getRuleIndex() { return RULE_stchk_open; }
@Override
public void enterRule(ParseTreeListener listener) {
- if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).enterStatusr_allow(this);
+ if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).enterStchk_open(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
- if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).exitStatusr_allow(this);
+ if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).exitStchk_open(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
- if ( visitor instanceof AuthnFlowVisitor ) return ((AuthnFlowVisitor extends T>)visitor).visitStatusr_allow(this);
+ if ( visitor instanceof AuthnFlowVisitor ) return ((AuthnFlowVisitor extends T>)visitor).visitStchk_open(this);
else return visitor.visitChildren(this);
}
}
- public final Statusr_allowContext statusr_allow() throws RecognitionException {
- Statusr_allowContext _localctx = new Statusr_allowContext(_ctx, getState());
- enterRule(_localctx, 76, RULE_statusr_allow);
+ public final Stchk_openContext stchk_open() throws RecognitionException {
+ Stchk_openContext _localctx = new Stchk_openContext(_ctx, getState());
+ enterRule(_localctx, 78, RULE_stchk_open);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(539);
- match(ALLOW);
- setState(540);
+ setState(552);
+ match(OPEN);
+ setState(553);
match(WS);
- setState(543);
+ setState(556);
_errHandler.sync(this);
switch (_input.LA(1)) {
case ALPHANUM:
@@ -3518,101 +3605,34 @@ public final Statusr_allowContext statusr_allow() throws RecognitionException {
case DOTEXPR:
case DOTIDXEXPR:
{
- setState(541);
+ setState(554);
variable();
}
break;
case UINT:
{
- setState(542);
+ setState(555);
match(UINT);
}
break;
default:
throw new NoViableAltException(this);
}
- setState(545);
+ setState(558);
match(WS);
- setState(546);
+ setState(559);
match(SECS);
- setState(548);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==WS) {
- {
- setState(547);
- match(WS);
- }
- }
-
- setState(550);
- match(NL);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class Statusr_replyContext extends ParserRuleContext {
- public TerminalNode REPLY() { return getToken(AuthnFlowParser.REPLY, 0); }
- public List WS() { return getTokens(AuthnFlowParser.WS); }
- public TerminalNode WS(int i) {
- return getToken(AuthnFlowParser.WS, i);
- }
- public Static_callContext static_call() {
- return getRuleContext(Static_callContext.class,0);
- }
- public TerminalNode NL() { return getToken(AuthnFlowParser.NL, 0); }
- public Statusr_replyContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_statusr_reply; }
- @Override
- public void enterRule(ParseTreeListener listener) {
- if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).enterStatusr_reply(this);
- }
- @Override
- public void exitRule(ParseTreeListener listener) {
- if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).exitStatusr_reply(this);
- }
- @Override
- public T accept(ParseTreeVisitor extends T> visitor) {
- if ( visitor instanceof AuthnFlowVisitor ) return ((AuthnFlowVisitor extends T>)visitor).visitStatusr_reply(this);
- else return visitor.visitChildren(this);
- }
- }
-
- public final Statusr_replyContext statusr_reply() throws RecognitionException {
- Statusr_replyContext _localctx = new Statusr_replyContext(_ctx, getState());
- enterRule(_localctx, 78, RULE_statusr_reply);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(552);
- match(REPLY);
- setState(553);
- match(WS);
- setState(554);
- static_call();
- setState(556);
+ setState(561);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(555);
+ setState(560);
match(WS);
}
}
- setState(558);
+ setState(563);
match(NL);
}
}
@@ -3627,59 +3647,59 @@ public final Statusr_replyContext statusr_reply() throws RecognitionException {
return _localctx;
}
- public static class Statusr_untilContext extends ParserRuleContext {
- public TerminalNode UNTIL() { return getToken(AuthnFlowParser.UNTIL, 0); }
+ public static class Stchk_closeContext extends ParserRuleContext {
+ public TerminalNode CLOSE() { return getToken(AuthnFlowParser.CLOSE, 0); }
public List WS() { return getTokens(AuthnFlowParser.WS); }
public TerminalNode WS(int i) {
return getToken(AuthnFlowParser.WS, i);
}
- public Boolean_exprContext boolean_expr() {
- return getRuleContext(Boolean_exprContext.class,0);
+ public CaseofContext caseof() {
+ return getRuleContext(CaseofContext.class,0);
}
public TerminalNode NL() { return getToken(AuthnFlowParser.NL, 0); }
- public Statusr_untilContext(ParserRuleContext parent, int invokingState) {
+ public Stchk_closeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
- @Override public int getRuleIndex() { return RULE_statusr_until; }
+ @Override public int getRuleIndex() { return RULE_stchk_close; }
@Override
public void enterRule(ParseTreeListener listener) {
- if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).enterStatusr_until(this);
+ if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).enterStchk_close(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
- if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).exitStatusr_until(this);
+ if ( listener instanceof AuthnFlowListener ) ((AuthnFlowListener)listener).exitStchk_close(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
- if ( visitor instanceof AuthnFlowVisitor ) return ((AuthnFlowVisitor extends T>)visitor).visitStatusr_until(this);
+ if ( visitor instanceof AuthnFlowVisitor ) return ((AuthnFlowVisitor extends T>)visitor).visitStchk_close(this);
else return visitor.visitChildren(this);
}
}
- public final Statusr_untilContext statusr_until() throws RecognitionException {
- Statusr_untilContext _localctx = new Statusr_untilContext(_ctx, getState());
- enterRule(_localctx, 80, RULE_statusr_until);
+ public final Stchk_closeContext stchk_close() throws RecognitionException {
+ Stchk_closeContext _localctx = new Stchk_closeContext(_ctx, getState());
+ enterRule(_localctx, 80, RULE_stchk_close);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
- setState(560);
- match(UNTIL);
- setState(561);
+ setState(565);
+ match(CLOSE);
+ setState(566);
match(WS);
- setState(562);
- boolean_expr();
- setState(564);
+ setState(567);
+ caseof();
+ setState(569);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WS) {
{
- setState(563);
+ setState(568);
match(WS);
}
}
- setState(566);
+ setState(571);
match(NL);
}
}
@@ -3695,223 +3715,226 @@ public final Statusr_untilContext statusr_until() throws RecognitionException {
}
public static final String _serializedATN =
- "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\39\u023b\4\2\t\2\4"+
+ "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\39\u0240\4\2\t\2\4"+
"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
"\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
"\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+
"\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\3\2\3\2"+
"\6\2W\n\2\r\2\16\2X\3\3\3\3\3\3\3\3\5\3_\n\3\3\3\3\3\3\3\5\3d\n\3\3\3"+
- "\3\3\7\3h\n\3\f\3\16\3k\13\3\3\4\3\4\3\5\3\5\3\5\3\5\5\5s\n\5\3\5\3\5"+
- "\3\6\3\6\3\6\6\6z\n\6\r\6\16\6{\3\6\5\6\177\n\6\3\6\3\6\3\7\3\7\3\b\3"+
- "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\5\b\u0090\n\b\3\t\3\t\5\t\u0094"+
- "\n\t\3\t\3\t\5\t\u0098\n\t\3\n\5\n\u009b\n\n\3\n\5\n\u009e\n\n\3\n\3\n"+
- "\5\n\u00a2\n\n\3\n\3\n\5\n\u00a6\n\n\3\n\3\n\5\n\u00aa\n\n\3\13\3\13\3"+
- "\13\3\13\5\13\u00b0\n\13\3\f\5\f\u00b3\n\f\3\f\3\f\3\f\3\f\3\f\5\f\u00ba"+
- "\n\f\3\f\7\f\u00bd\n\f\f\f\16\f\u00c0\13\f\3\f\5\f\u00c3\n\f\3\f\3\f\5"+
- "\f\u00c7\n\f\3\r\3\r\3\r\3\r\3\r\3\r\7\r\u00cf\n\r\f\r\16\r\u00d2\13\r"+
- "\3\r\5\r\u00d5\n\r\3\r\3\r\3\r\3\16\3\16\5\16\u00dc\n\16\3\16\3\16\3\16"+
- "\3\16\5\16\u00e2\n\16\3\16\5\16\u00e5\n\16\3\16\3\16\3\17\5\17\u00ea\n"+
- "\17\3\17\3\17\3\17\3\17\3\17\5\17\u00f1\n\17\3\17\3\17\5\17\u00f5\n\17"+
- "\3\17\5\17\u00f8\n\17\3\17\3\17\5\17\u00fc\n\17\3\20\3\20\6\20\u0100\n"+
- "\20\r\20\16\20\u0101\3\20\5\20\u0105\n\20\3\20\3\20\3\21\3\21\3\21\3\21"+
- "\7\21\u010d\n\21\f\21\16\21\u0110\13\21\3\22\3\22\3\22\3\22\7\22\u0116"+
- "\n\22\f\22\16\22\u0119\13\22\3\23\3\23\3\23\3\24\3\24\3\24\3\24\5\24\u0122"+
- "\n\24\3\25\3\25\3\26\3\26\3\26\5\26\u0129\n\26\3\27\3\27\5\27\u012d\n"+
- "\27\3\27\7\27\u0130\n\27\f\27\16\27\u0133\13\27\3\27\3\27\7\27\u0137\n"+
- "\27\f\27\16\27\u013a\13\27\3\27\5\27\u013d\n\27\3\27\3\27\3\30\3\30\5"+
- "\30\u0143\n\30\3\30\7\30\u0146\n\30\f\30\16\30\u0149\13\30\3\30\3\30\7"+
- "\30\u014d\n\30\f\30\16\30\u0150\13\30\3\30\5\30\u0153\n\30\3\30\3\30\3"+
- "\31\3\31\3\31\5\31\u015a\n\31\3\31\3\31\3\32\3\32\5\32\u0160\n\32\3\32"+
- "\3\32\5\32\u0164\n\32\3\32\3\32\3\33\5\33\u0169\n\33\3\33\3\33\3\33\3"+
- "\33\5\33\u016f\n\33\3\33\3\33\3\34\3\34\3\34\3\34\5\34\u0177\n\34\3\34"+
- "\5\34\u017a\n\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u0184\n"+
- "\35\3\35\3\35\6\35\u0188\n\35\r\35\16\35\u0189\3\35\3\35\5\35\u018e\n"+
- "\35\3\36\3\36\5\36\u0192\n\36\3\36\3\36\6\36\u0196\n\36\r\36\16\36\u0197"+
- "\3\36\3\36\3\37\3\37\3\37\6\37\u019f\n\37\r\37\16\37\u01a0\3\37\3\37\5"+
- "\37\u01a5\n\37\3 \3 \3 \3 \7 \u01ab\n \f \16 \u01ae\13 \3!\7!\u01b1\n"+
- "!\f!\16!\u01b4\13!\3!\3!\5!\u01b8\n!\3!\7!\u01bb\n!\f!\16!\u01be\13!\3"+
- "!\3!\3\"\3\"\3\"\3\"\3\"\3\"\5\"\u01c8\n\"\3\"\3\"\5\"\u01cc\n\"\3#\3"+
- "#\5#\u01d0\n#\3#\3#\6#\u01d4\n#\r#\16#\u01d5\3#\3#\3$\5$\u01db\n$\3$\3"+
- "$\3$\3$\3$\3$\3$\3$\3$\6$\u01e6\n$\r$\16$\u01e7\3$\5$\u01eb\n$\3$\3$\3"+
- "%\5%\u01f0\n%\3%\3%\3%\3%\5%\u01f6\n%\3%\3%\3%\5%\u01fb\n%\3%\3%\6%\u01ff"+
- "\n%\r%\16%\u0200\3%\5%\u0204\n%\3%\3%\3&\3&\3&\3&\3&\7&\u020d\n&\f&\16"+
- "&\u0210\13&\3\'\3\'\3\'\5\'\u0215\n\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3"+
- "(\3(\3(\5(\u0222\n(\3(\3(\3(\5(\u0227\n(\3(\3(\3)\3)\3)\3)\5)\u022f\n"+
- ")\3)\3)\3*\3*\3*\3*\5*\u0237\n*\3*\3*\3*\2\2+\2\4\6\b\n\f\16\20\22\24"+
- "\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPR\2\5\3\2\61\62\3\2+"+
- "\60\3\2#$\2\u0270\2T\3\2\2\2\4Z\3\2\2\2\6l\3\2\2\2\bn\3\2\2\2\nv\3\2\2"+
- "\2\f\u0082\3\2\2\2\16\u008f\3\2\2\2\20\u0091\3\2\2\2\22\u009a\3\2\2\2"+
- "\24\u00af\3\2\2\2\26\u00b2\3\2\2\2\30\u00c8\3\2\2\2\32\u00db\3\2\2\2\34"+
- "\u00e9\3\2\2\2\36\u00fd\3\2\2\2 \u0108\3\2\2\2\"\u0111\3\2\2\2$\u011a"+
- "\3\2\2\2&\u0121\3\2\2\2(\u0123\3\2\2\2*\u0128\3\2\2\2,\u012a\3\2\2\2."+
- "\u0140\3\2\2\2\60\u0156\3\2\2\2\62\u015d\3\2\2\2\64\u0168\3\2\2\2\66\u0172"+
- "\3\2\2\28\u017d\3\2\2\2:\u018f\3\2\2\2<\u019b\3\2\2\2>\u01a6\3\2\2\2@"+
- "\u01b2\3\2\2\2B\u01c1\3\2\2\2D\u01cd\3\2\2\2F\u01da\3\2\2\2H\u01ef\3\2"+
- "\2\2J\u0207\3\2\2\2L\u0211\3\2\2\2N\u021d\3\2\2\2P\u022a\3\2\2\2R\u0232"+
- "\3\2\2\2TV\5\4\3\2UW\5\16\b\2VU\3\2\2\2WX\3\2\2\2XV\3\2\2\2XY\3\2\2\2"+
- "Y\3\3\2\2\2Z[\7\r\2\2[\\\7\67\2\2\\^\5\6\4\2]_\7\67\2\2^]\3\2\2\2^_\3"+
- "\2\2\2_`\3\2\2\2`a\78\2\2ac\5\b\5\2bd\5\n\6\2cb\3\2\2\2cd\3\2\2\2de\3"+
- "\2\2\2ei\79\2\2fh\7\13\2\2gf\3\2\2\2hk\3\2\2\2ig\3\2\2\2ij\3\2\2\2j\5"+
- "\3\2\2\2ki\3\2\2\2lm\t\2\2\2m\7\3\2\2\2no\7\16\2\2op\7\67\2\2pr\7-\2\2"+
- "qs\7\67\2\2rq\3\2\2\2rs\3\2\2\2st\3\2\2\2tu\7\13\2\2u\t\3\2\2\2vy\7\17"+
- "\2\2wx\7\67\2\2xz\5\f\7\2yw\3\2\2\2z{\3\2\2\2{y\3\2\2\2{|\3\2\2\2|~\3"+
- "\2\2\2}\177\7\67\2\2~}\3\2\2\2~\177\3\2\2\2\177\u0080\3\2\2\2\u0080\u0081"+
- "\7\13\2\2\u0081\13\3\2\2\2\u0082\u0083\7\61\2\2\u0083\r\3\2\2\2\u0084"+
- "\u0090\5\26\f\2\u0085\u0090\5\32\16\2\u0086\u0090\5\34\17\2\u0087\u0090"+
- "\5\60\31\2\u0088\u0090\5\36\20\2\u0089\u0090\5\64\33\2\u008a\u0090\5\66"+
- "\34\2\u008b\u0090\5<\37\2\u008c\u0090\58\35\2\u008d\u0090\5F$\2\u008e"+
- "\u0090\5H%\2\u008f\u0084\3\2\2\2\u008f\u0085\3\2\2\2\u008f\u0086\3\2\2"+
- "\2\u008f\u0087\3\2\2\2\u008f\u0088\3\2\2\2\u008f\u0089\3\2\2\2\u008f\u008a"+
- "\3\2\2\2\u008f\u008b\3\2\2\2\u008f\u008c\3\2\2\2\u008f\u008d\3\2\2\2\u008f"+
- "\u008e\3\2\2\2\u0090\17\3\2\2\2\u0091\u0093\5\24\13\2\u0092\u0094\7\67"+
- "\2\2\u0093\u0092\3\2\2\2\u0093\u0094\3\2\2\2\u0094\u0095\3\2\2\2\u0095"+
- "\u0097\7)\2\2\u0096\u0098\7\67\2\2\u0097\u0096\3\2\2\2\u0097\u0098\3\2"+
- "\2\2\u0098\21\3\2\2\2\u0099\u009b\5\24\13\2\u009a\u0099\3\2\2\2\u009a"+
- "\u009b\3\2\2\2\u009b\u009d\3\2\2\2\u009c\u009e\7\67\2\2\u009d\u009c\3"+
- "\2\2\2\u009d\u009e\3\2\2\2\u009e\u009f\3\2\2\2\u009f\u00a1\7\3\2\2\u00a0"+
- "\u00a2\7\67\2\2\u00a1\u00a0\3\2\2\2\u00a1\u00a2\3\2\2\2\u00a2\u00a3\3"+
- "\2\2\2\u00a3\u00a5\5\f\7\2\u00a4\u00a6\7\67\2\2\u00a5\u00a4\3\2\2\2\u00a5"+
- "\u00a6\3\2\2\2\u00a6\u00a7\3\2\2\2\u00a7\u00a9\7)\2\2\u00a8\u00aa\7\67"+
- "\2\2\u00a9\u00a8\3\2\2\2\u00a9\u00aa\3\2\2\2\u00aa\23\3\2\2\2\u00ab\u00b0"+
- "\5\f\7\2\u00ac\u00b0\7\62\2\2\u00ad\u00b0\7\64\2\2\u00ae\u00b0\7\65\2"+
- "\2\u00af\u00ab\3\2\2\2\u00af\u00ac\3\2\2\2\u00af\u00ad\3\2\2\2\u00af\u00ae"+
- "\3\2\2\2\u00b0\25\3\2\2\2\u00b1\u00b3\5\20\t\2\u00b2\u00b1\3\2\2\2\u00b2"+
- "\u00b3\3\2\2\2\u00b3\u00b4\3\2\2\2\u00b4\u00b5\7\21\2\2\u00b5\u00b9\7"+
- "\67\2\2\u00b6\u00b7\7\4\2\2\u00b7\u00ba\5\24\13\2\u00b8\u00ba\5\6\4\2"+
- "\u00b9\u00b6\3\2\2\2\u00b9\u00b8\3\2\2\2\u00ba\u00be\3\2\2\2\u00bb\u00bd"+
- "\5$\23\2\u00bc\u00bb\3\2\2\2\u00bd\u00c0\3\2\2\2\u00be\u00bc\3\2\2\2\u00be"+
- "\u00bf\3\2\2\2\u00bf\u00c2\3\2\2\2\u00c0\u00be\3\2\2\2\u00c1\u00c3\7\67"+
- "\2\2\u00c2\u00c1\3\2\2\2\u00c2\u00c3\3\2\2\2\u00c3\u00c6\3\2\2\2\u00c4"+
- "\u00c7\5\30\r\2\u00c5\u00c7\7\13\2\2\u00c6\u00c4\3\2\2\2\u00c6\u00c5\3"+
- "\2\2\2\u00c7\27\3\2\2\2\u00c8\u00c9\78\2\2\u00c9\u00ca\7\30\2\2\u00ca"+
- "\u00cb\7\67\2\2\u00cb\u00d0\7-\2\2\u00cc\u00cd\7\67\2\2\u00cd\u00cf\7"+
- "-\2\2\u00ce\u00cc\3\2\2\2\u00cf\u00d2\3\2\2\2\u00d0\u00ce\3\2\2\2\u00d0"+
- "\u00d1\3\2\2\2\u00d1\u00d4\3\2\2\2\u00d2\u00d0\3\2\2\2\u00d3\u00d5\7\67"+
- "\2\2\u00d4\u00d3\3\2\2\2\u00d4\u00d5\3\2\2\2\u00d5\u00d6\3\2\2\2\u00d6"+
- "\u00d7\7\13\2\2\u00d7\u00d8\79\2\2\u00d8\31\3\2\2\2\u00d9\u00dc\5\20\t"+
- "\2\u00da\u00dc\5\22\n\2\u00db\u00d9\3\2\2\2\u00db\u00da\3\2\2\2\u00db"+
- "\u00dc\3\2\2\2\u00dc\u00dd\3\2\2\2\u00dd\u00de\7\22\2\2\u00de\u00e1\7"+
- "\67\2\2\u00df\u00e2\5 \21\2\u00e0\u00e2\5\"\22\2\u00e1\u00df\3\2\2\2\u00e1"+
- "\u00e0\3\2\2\2\u00e2\u00e4\3\2\2\2\u00e3\u00e5\7\67\2\2\u00e4\u00e3\3"+
- "\2\2\2\u00e4\u00e5\3\2\2\2\u00e5\u00e6\3\2\2\2\u00e6\u00e7\7\13\2\2\u00e7"+
- "\33\3\2\2\2\u00e8\u00ea\5\20\t\2\u00e9\u00e8\3\2\2\2\u00e9\u00ea\3\2\2"+
- "\2\u00ea\u00eb\3\2\2\2\u00eb\u00ec\7\23\2\2\u00ec\u00ed\7\67\2\2\u00ed"+
- "\u00f0\7-\2\2\u00ee\u00ef\7\67\2\2\u00ef\u00f1\5\24\13\2\u00f0\u00ee\3"+
- "\2\2\2\u00f0\u00f1\3\2\2\2\u00f1\u00f4\3\2\2\2\u00f2\u00f3\7\67\2\2\u00f3"+
- "\u00f5\7,\2\2\u00f4\u00f2\3\2\2\2\u00f4\u00f5\3\2\2\2\u00f5\u00f7\3\2"+
- "\2\2\u00f6\u00f8\7\67\2\2\u00f7\u00f6\3\2\2\2\u00f7\u00f8\3\2\2\2\u00f8"+
- "\u00fb\3\2\2\2\u00f9\u00fc\5L\'\2\u00fa\u00fc\7\13\2\2\u00fb\u00f9\3\2"+
- "\2\2\u00fb\u00fa\3\2\2\2\u00fc\35\3\2\2\2\u00fd\u00ff\7\20\2\2\u00fe\u0100"+
- "\5$\23\2\u00ff\u00fe\3\2\2\2\u0100\u0101\3\2\2\2\u0101\u00ff\3\2\2\2\u0101"+
- "\u0102\3\2\2\2\u0102\u0104\3\2\2\2\u0103\u0105\7\67\2\2\u0104\u0103\3"+
- "\2\2\2\u0104\u0105\3\2\2\2\u0105\u0106\3\2\2\2\u0106\u0107\7\13\2\2\u0107"+
- "\37\3\2\2\2\u0108\u0109\5\6\4\2\u0109\u010a\7\5\2\2\u010a\u010e\7\61\2"+
- "\2\u010b\u010d\5$\23\2\u010c\u010b\3\2\2\2\u010d\u0110\3\2\2\2\u010e\u010c"+
- "\3\2\2\2\u010e\u010f\3\2\2\2\u010f!\3\2\2\2\u0110\u010e\3\2\2\2\u0111"+
- "\u0112\5\24\13\2\u0112\u0113\7\67\2\2\u0113\u0117\7\61\2\2\u0114\u0116"+
- "\5$\23\2\u0115\u0114\3\2\2\2\u0116\u0119\3\2\2\2\u0117\u0115\3\2\2\2\u0117"+
- "\u0118\3\2\2\2\u0118#\3\2\2\2\u0119\u0117\3\2\2\2\u011a\u011b\7\67\2\2"+
- "\u011b\u011c\5&\24\2\u011c%\3\2\2\2\u011d\u0122\5(\25\2\u011e\u0122\5"+
- "\24\13\2\u011f\u0120\7*\2\2\u0120\u0122\5\24\13\2\u0121\u011d\3\2\2\2"+
- "\u0121\u011e\3\2\2\2\u0121\u011f\3\2\2\2\u0122\'\3\2\2\2\u0123\u0124\t"+
- "\3\2\2\u0124)\3\2\2\2\u0125\u0129\5.\30\2\u0126\u0129\5,\27\2\u0127\u0129"+
- "\5&\24\2\u0128\u0125\3\2\2\2\u0128\u0126\3\2\2\2\u0128\u0127\3\2\2\2\u0129"+
- "+\3\2\2\2\u012a\u012c\7\6\2\2\u012b\u012d\7\67\2\2\u012c\u012b\3\2\2\2"+
- "\u012c\u012d\3\2\2\2\u012d\u0131\3\2\2\2\u012e\u0130\5*\26\2\u012f\u012e"+
- "\3\2\2\2\u0130\u0133\3\2\2\2\u0131\u012f\3\2\2\2\u0131\u0132\3\2\2\2\u0132"+
- "\u0138\3\2\2\2\u0133\u0131\3\2\2\2\u0134\u0135\7\66\2\2\u0135\u0137\5"+
- "*\26\2\u0136\u0134\3\2\2\2\u0137\u013a\3\2\2\2\u0138\u0136\3\2\2\2\u0138"+
- "\u0139\3\2\2\2\u0139\u013c\3\2\2\2\u013a\u0138\3\2\2\2\u013b\u013d\7\67"+
- "\2\2\u013c\u013b\3\2\2\2\u013c\u013d\3\2\2\2\u013d\u013e\3\2\2\2\u013e"+
- "\u013f\7\7\2\2\u013f-\3\2\2\2\u0140\u0142\7\b\2\2\u0141\u0143\7\67\2\2"+
- "\u0142\u0141\3\2\2\2\u0142\u0143\3\2\2\2\u0143\u0147\3\2\2\2\u0144\u0146"+
- "\5\62\32\2\u0145\u0144\3\2\2\2\u0146\u0149\3\2\2\2\u0147\u0145\3\2\2\2"+
- "\u0147\u0148\3\2\2\2\u0148\u014e\3\2\2\2\u0149\u0147\3\2\2\2\u014a\u014b"+
- "\7\66\2\2\u014b\u014d\5\62\32\2\u014c\u014a\3\2\2\2\u014d\u0150\3\2\2"+
- "\2\u014e\u014c\3\2\2\2\u014e\u014f\3\2\2\2\u014f\u0152\3\2\2\2\u0150\u014e"+
- "\3\2\2\2\u0151\u0153\7\67\2\2\u0152\u0151\3\2\2\2\u0152\u0153\3\2\2\2"+
- "\u0153\u0154\3\2\2\2\u0154\u0155\7\t\2\2\u0155/\3\2\2\2\u0156\u0157\5"+
- "\20\t\2\u0157\u0159\5*\26\2\u0158\u015a\7\67\2\2\u0159\u0158\3\2\2\2\u0159"+
- "\u015a\3\2\2\2\u015a\u015b\3\2\2\2\u015b\u015c\7\13\2\2\u015c\61\3\2\2"+
- "\2\u015d\u015f\7\61\2\2\u015e\u0160\7\67\2\2\u015f\u015e\3\2\2\2\u015f"+
- "\u0160\3\2\2\2\u0160\u0161\3\2\2\2\u0161\u0163\7\n\2\2\u0162\u0164\7\67"+
- "\2\2\u0163\u0162\3\2\2\2\u0163\u0164\3\2\2\2\u0164\u0165\3\2\2\2\u0165"+
- "\u0166\5*\26\2\u0166\63\3\2\2\2\u0167\u0169\5\20\t\2\u0168\u0167\3\2\2"+
- "\2\u0168\u0169\3\2\2\2\u0169\u016a\3\2\2\2\u016a\u016b\7 \2\2\u016b\u016e"+
- "\7\67\2\2\u016c\u016f\7-\2\2\u016d\u016f\5\24\13\2\u016e\u016c\3\2\2\2"+
- "\u016e\u016d\3\2\2\2\u016f\u0170\3\2\2\2\u0170\u0171\7\13\2\2\u0171\65"+
- "\3\2\2\2\u0172\u0173\7\37\2\2\u0173\u0176\7\67\2\2\u0174\u0177\7,\2\2"+
- "\u0175\u0177\5\24\13\2\u0176\u0174\3\2\2\2\u0176\u0175\3\2\2\2\u0177\u0179"+
- "\3\2\2\2\u0178\u017a\7\67\2\2\u0179\u0178\3\2\2\2\u0179\u017a\3\2\2\2"+
- "\u017a\u017b\3\2\2\2\u017b\u017c\7\13\2\2\u017c\67\3\2\2\2\u017d\u017e"+
- "\7\35\2\2\u017e\u017f\7\67\2\2\u017f\u0180\5&\24\2\u0180\u0181\7\67\2"+
- "\2\u0181\u0183\7&\2\2\u0182\u0184\7\67\2\2\u0183\u0182\3\2\2\2\u0183\u0184"+
- "\3\2\2\2\u0184\u0185\3\2\2\2\u0185\u0187\78\2\2\u0186\u0188\5:\36\2\u0187"+
- "\u0186\3\2\2\2\u0188\u0189\3\2\2\2\u0189\u0187\3\2\2\2\u0189\u018a\3\2"+
- "\2\2\u018a\u018b\3\2\2\2\u018b\u018d\79\2\2\u018c\u018e\5D#\2\u018d\u018c"+
- "\3\2\2\2\u018d\u018e\3\2\2\2\u018e9\3\2\2\2\u018f\u0191\5&\24\2\u0190"+
- "\u0192\7\67\2\2\u0191\u0190\3\2\2\2\u0191\u0192\3\2\2\2\u0192\u0193\3"+
- "\2\2\2\u0193\u0195\78\2\2\u0194\u0196\5\16\b\2\u0195\u0194\3\2\2\2\u0196"+
- "\u0197\3\2\2\2\u0197\u0195\3\2\2\2\u0197\u0198\3\2\2\2\u0198\u0199\3\2"+
- "\2\2\u0199\u019a\79\2\2\u019a;\3\2\2\2\u019b\u019c\5> \2\u019c\u019e\7"+
- "8\2\2\u019d\u019f\5\16\b\2\u019e\u019d\3\2\2\2\u019f\u01a0\3\2\2\2\u01a0"+
- "\u019e\3\2\2\2\u01a0\u01a1\3\2\2\2\u01a1\u01a2\3\2\2\2\u01a2\u01a4\79"+
- "\2\2\u01a3\u01a5\5D#\2\u01a4\u01a3\3\2\2\2\u01a4\u01a5\3\2\2\2\u01a5="+
- "\3\2\2\2\u01a6\u01a7\7\31\2\2\u01a7\u01a8\7\67\2\2\u01a8\u01ac\5B\"\2"+
- "\u01a9\u01ab\5@!\2\u01aa\u01a9\3\2\2\2\u01ab\u01ae\3\2\2\2\u01ac\u01aa"+
- "\3\2\2\2\u01ac\u01ad\3\2\2\2\u01ad?\3\2\2\2\u01ae\u01ac\3\2\2\2\u01af"+
- "\u01b1\7\13\2\2\u01b0\u01af\3\2\2\2\u01b1\u01b4\3\2\2\2\u01b2\u01b0\3"+
- "\2\2\2\u01b2\u01b3\3\2\2\2\u01b3\u01b5\3\2\2\2\u01b4\u01b2\3\2\2\2\u01b5"+
- "\u01b7\t\4\2\2\u01b6\u01b8\7\67\2\2\u01b7\u01b6\3\2\2\2\u01b7\u01b8\3"+
- "\2\2\2\u01b8\u01bc\3\2\2\2\u01b9\u01bb\7\13\2\2\u01ba\u01b9\3\2\2\2\u01bb"+
- "\u01be\3\2\2\2\u01bc\u01ba\3\2\2\2\u01bc\u01bd\3\2\2\2\u01bd\u01bf\3\2"+
- "\2\2\u01be\u01bc\3\2\2\2\u01bf\u01c0\5B\"\2\u01c0A\3\2\2\2\u01c1\u01c2"+
- "\5&\24\2\u01c2\u01c3\7\67\2\2\u01c3\u01c4\7!\2\2\u01c4\u01c7\7\67\2\2"+
- "\u01c5\u01c6\7\"\2\2\u01c6\u01c8\7\67\2\2\u01c7\u01c5\3\2\2\2\u01c7\u01c8"+
- "\3\2\2\2\u01c8\u01c9\3\2\2\2\u01c9\u01cb\5&\24\2\u01ca\u01cc\7\67\2\2"+
- "\u01cb\u01ca\3\2\2\2\u01cb\u01cc\3\2\2\2\u01ccC\3\2\2\2\u01cd\u01cf\7"+
- "\32\2\2\u01ce\u01d0\7\67\2\2\u01cf\u01ce\3\2\2\2\u01cf\u01d0\3\2\2\2\u01d0"+
- "\u01d1\3\2\2\2\u01d1\u01d3\78\2\2\u01d2\u01d4\5\16\b\2\u01d3\u01d2\3\2"+
- "\2\2\u01d4\u01d5\3\2\2\2\u01d5\u01d3\3\2\2\2\u01d5\u01d6\3\2\2\2\u01d6"+
- "\u01d7\3\2\2\2\u01d7\u01d8\79\2\2\u01d8E\3\2\2\2\u01d9\u01db\5\20\t\2"+
- "\u01da\u01d9\3\2\2\2\u01da\u01db\3\2\2\2\u01db\u01dc\3\2\2\2\u01dc\u01dd"+
- "\7\34\2\2\u01dd\u01de\7\67\2\2\u01de\u01df\5\24\13\2\u01df\u01e0\7\67"+
- "\2\2\u01e0\u01e1\7(\2\2\u01e1\u01e2\7\67\2\2\u01e2\u01e3\5\f\7\2\u01e3"+
- "\u01e5\78\2\2\u01e4\u01e6\5\16\b\2\u01e5\u01e4\3\2\2\2\u01e6\u01e7\3\2"+
- "\2\2\u01e7\u01e5\3\2\2\2\u01e7\u01e8\3\2\2\2\u01e8\u01ea\3\2\2\2\u01e9"+
- "\u01eb\5J&\2\u01ea\u01e9\3\2\2\2\u01ea\u01eb\3\2\2\2\u01eb\u01ec\3\2\2"+
- "\2\u01ec\u01ed\79\2\2\u01edG\3\2\2\2\u01ee\u01f0\5\20\t\2\u01ef\u01ee"+
- "\3\2\2\2\u01ef\u01f0\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1\u01f2\7\33\2\2"+
- "\u01f2\u01f5\7\67\2\2\u01f3\u01f6\5\24\13\2\u01f4\u01f6\7.\2\2\u01f5\u01f3"+
- "\3\2\2\2\u01f5\u01f4\3\2\2\2\u01f6\u01f7\3\2\2\2\u01f7\u01f8\7\67\2\2"+
- "\u01f8\u01fa\7\'\2\2\u01f9\u01fb\7\67\2\2\u01fa\u01f9\3\2\2\2\u01fa\u01fb"+
- "\3\2\2\2\u01fb\u01fc\3\2\2\2\u01fc\u01fe\78\2\2\u01fd\u01ff\5\16\b\2\u01fe"+
- "\u01fd\3\2\2\2\u01ff\u0200\3\2\2\2\u0200\u01fe\3\2\2\2\u0200\u0201\3\2"+
- "\2\2\u0201\u0203\3\2\2\2\u0202\u0204\5J&\2\u0203\u0202\3\2\2\2\u0203\u0204"+
- "\3\2\2\2\u0204\u0205\3\2\2\2\u0205\u0206\79\2\2\u0206I\3\2\2\2\u0207\u0208"+
- "\7\36\2\2\u0208\u0209\7\67\2\2\u0209\u020a\5> \2\u020a\u020e\7\13\2\2"+
- "\u020b\u020d\5\16\b\2\u020c\u020b\3\2\2\2\u020d\u0210\3\2\2\2\u020e\u020c"+
- "\3\2\2\2\u020e\u020f\3\2\2\2\u020fK\3\2\2\2\u0210\u020e\3\2\2\2\u0211"+
- "\u0212\78\2\2\u0212\u0214\7\24\2\2\u0213\u0215\7\67\2\2\u0214\u0213\3"+
- "\2\2\2\u0214\u0215\3\2\2\2\u0215\u0216\3\2\2\2\u0216\u0217\78\2\2\u0217"+
- "\u0218\5N(\2\u0218\u0219\5P)\2\u0219\u021a\5R*\2\u021a\u021b\79\2\2\u021b"+
- "\u021c\79\2\2\u021cM\3\2\2\2\u021d\u021e\7\25\2\2\u021e\u0221\7\67\2\2"+
- "\u021f\u0222\5\24\13\2\u0220\u0222\7.\2\2\u0221\u021f\3\2\2\2\u0221\u0220"+
- "\3\2\2\2\u0222\u0223\3\2\2\2\u0223\u0224\7\67\2\2\u0224\u0226\7%\2\2\u0225"+
- "\u0227\7\67\2\2\u0226\u0225\3\2\2\2\u0226\u0227\3\2\2\2\u0227\u0228\3"+
- "\2\2\2\u0228\u0229\7\13\2\2\u0229O\3\2\2\2\u022a\u022b\7\26\2\2\u022b"+
- "\u022c\7\67\2\2\u022c\u022e\5 \21\2\u022d\u022f\7\67\2\2\u022e\u022d\3"+
- "\2\2\2\u022e\u022f\3\2\2\2\u022f\u0230\3\2\2\2\u0230\u0231\7\13\2\2\u0231"+
- "Q\3\2\2\2\u0232\u0233\7\27\2\2\u0233\u0234\7\67\2\2\u0234\u0236\5B\"\2"+
- "\u0235\u0237\7\67\2\2\u0236\u0235\3\2\2\2\u0236\u0237\3\2\2\2\u0237\u0238"+
- "\3\2\2\2\u0238\u0239\7\13\2\2\u0239S\3\2\2\2SX^cir{~\u008f\u0093\u0097"+
- "\u009a\u009d\u00a1\u00a5\u00a9\u00af\u00b2\u00b9\u00be\u00c2\u00c6\u00d0"+
- "\u00d4\u00db\u00e1\u00e4\u00e9\u00f0\u00f4\u00f7\u00fb\u0101\u0104\u010e"+
- "\u0117\u0121\u0128\u012c\u0131\u0138\u013c\u0142\u0147\u014e\u0152\u0159"+
- "\u015f\u0163\u0168\u016e\u0176\u0179\u0183\u0189\u018d\u0191\u0197\u01a0"+
- "\u01a4\u01ac\u01b2\u01b7\u01bc\u01c7\u01cb\u01cf\u01d5\u01da\u01e7\u01ea"+
- "\u01ef\u01f5\u01fa\u0200\u0203\u020e\u0214\u0221\u0226\u022e\u0236";
+ "\5\3g\n\3\3\3\3\3\7\3k\n\3\f\3\16\3n\13\3\3\4\3\4\3\5\3\5\3\5\3\5\5\5"+
+ "v\n\5\3\5\3\5\3\6\3\6\3\6\3\6\5\6~\n\6\3\6\3\6\3\7\3\7\3\7\6\7\u0085\n"+
+ "\7\r\7\16\7\u0086\3\7\5\7\u008a\n\7\3\7\3\7\3\b\3\b\3\t\3\t\3\t\3\t\3"+
+ "\t\3\t\3\t\3\t\3\t\3\t\3\t\5\t\u009b\n\t\3\n\3\n\5\n\u009f\n\n\3\n\3\n"+
+ "\5\n\u00a3\n\n\3\13\5\13\u00a6\n\13\3\13\5\13\u00a9\n\13\3\13\3\13\5\13"+
+ "\u00ad\n\13\3\13\3\13\5\13\u00b1\n\13\3\13\3\13\5\13\u00b5\n\13\3\f\3"+
+ "\f\3\f\3\f\5\f\u00bb\n\f\3\r\5\r\u00be\n\r\3\r\3\r\3\r\3\r\3\r\5\r\u00c5"+
+ "\n\r\3\r\7\r\u00c8\n\r\f\r\16\r\u00cb\13\r\3\r\5\r\u00ce\n\r\3\r\3\r\5"+
+ "\r\u00d2\n\r\3\16\3\16\3\16\3\16\3\16\3\16\7\16\u00da\n\16\f\16\16\16"+
+ "\u00dd\13\16\3\16\5\16\u00e0\n\16\3\16\3\16\3\16\3\17\3\17\5\17\u00e7"+
+ "\n\17\3\17\3\17\3\17\3\17\5\17\u00ed\n\17\3\17\5\17\u00f0\n\17\3\17\3"+
+ "\17\3\20\5\20\u00f5\n\20\3\20\3\20\3\20\3\20\3\20\5\20\u00fc\n\20\3\20"+
+ "\3\20\5\20\u0100\n\20\3\20\5\20\u0103\n\20\3\20\3\20\5\20\u0107\n\20\3"+
+ "\21\3\21\6\21\u010b\n\21\r\21\16\21\u010c\3\21\5\21\u0110\n\21\3\21\3"+
+ "\21\3\22\3\22\3\22\3\22\7\22\u0118\n\22\f\22\16\22\u011b\13\22\3\23\3"+
+ "\23\3\23\3\23\7\23\u0121\n\23\f\23\16\23\u0124\13\23\3\24\3\24\3\24\3"+
+ "\25\3\25\3\25\3\25\5\25\u012d\n\25\3\26\3\26\3\27\3\27\3\27\5\27\u0134"+
+ "\n\27\3\30\3\30\5\30\u0138\n\30\3\30\7\30\u013b\n\30\f\30\16\30\u013e"+
+ "\13\30\3\30\3\30\7\30\u0142\n\30\f\30\16\30\u0145\13\30\3\30\5\30\u0148"+
+ "\n\30\3\30\3\30\3\31\3\31\5\31\u014e\n\31\3\31\7\31\u0151\n\31\f\31\16"+
+ "\31\u0154\13\31\3\31\3\31\7\31\u0158\n\31\f\31\16\31\u015b\13\31\3\31"+
+ "\5\31\u015e\n\31\3\31\3\31\3\32\3\32\3\32\5\32\u0165\n\32\3\32\3\32\3"+
+ "\33\3\33\5\33\u016b\n\33\3\33\3\33\5\33\u016f\n\33\3\33\3\33\3\34\5\34"+
+ "\u0174\n\34\3\34\3\34\3\34\3\34\5\34\u017a\n\34\3\34\3\34\3\35\3\35\3"+
+ "\35\3\35\5\35\u0182\n\35\3\35\5\35\u0185\n\35\3\35\3\35\3\36\3\36\3\36"+
+ "\3\36\3\36\3\36\5\36\u018f\n\36\3\36\3\36\6\36\u0193\n\36\r\36\16\36\u0194"+
+ "\3\36\3\36\5\36\u0199\n\36\3\37\3\37\5\37\u019d\n\37\3\37\3\37\6\37\u01a1"+
+ "\n\37\r\37\16\37\u01a2\3\37\3\37\3 \3 \3 \6 \u01aa\n \r \16 \u01ab\3 "+
+ "\3 \5 \u01b0\n \3!\3!\3!\3!\7!\u01b6\n!\f!\16!\u01b9\13!\3\"\7\"\u01bc"+
+ "\n\"\f\"\16\"\u01bf\13\"\3\"\3\"\5\"\u01c3\n\"\3\"\7\"\u01c6\n\"\f\"\16"+
+ "\"\u01c9\13\"\3\"\3\"\3#\3#\3#\3#\3#\3#\5#\u01d3\n#\3#\3#\5#\u01d7\n#"+
+ "\3$\3$\5$\u01db\n$\3$\3$\6$\u01df\n$\r$\16$\u01e0\3$\3$\3%\5%\u01e6\n"+
+ "%\3%\3%\3%\3%\3%\3%\3%\3%\3%\6%\u01f1\n%\r%\16%\u01f2\3%\5%\u01f6\n%\3"+
+ "%\3%\3&\5&\u01fb\n&\3&\3&\3&\3&\5&\u0201\n&\3&\3&\3&\5&\u0206\n&\3&\3"+
+ "&\6&\u020a\n&\r&\16&\u020b\3&\5&\u020f\n&\3&\3&\3\'\3\'\3\'\3\'\3\'\7"+
+ "\'\u0218\n\'\f\'\16\'\u021b\13\'\3(\3(\3(\5(\u0220\n(\3(\3(\3(\5(\u0225"+
+ "\n(\3(\3(\3(\3(\3)\3)\3)\3)\5)\u022f\n)\3)\3)\3)\5)\u0234\n)\3)\3)\3*"+
+ "\3*\3*\3*\5*\u023c\n*\3*\3*\3*\2\2+\2\4\6\b\n\f\16\20\22\24\26\30\32\34"+
+ "\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPR\2\5\3\2\61\62\3\2+\60\3\2#$\2\u0277"+
+ "\2T\3\2\2\2\4Z\3\2\2\2\6o\3\2\2\2\bq\3\2\2\2\ny\3\2\2\2\f\u0081\3\2\2"+
+ "\2\16\u008d\3\2\2\2\20\u009a\3\2\2\2\22\u009c\3\2\2\2\24\u00a5\3\2\2\2"+
+ "\26\u00ba\3\2\2\2\30\u00bd\3\2\2\2\32\u00d3\3\2\2\2\34\u00e6\3\2\2\2\36"+
+ "\u00f4\3\2\2\2 \u0108\3\2\2\2\"\u0113\3\2\2\2$\u011c\3\2\2\2&\u0125\3"+
+ "\2\2\2(\u012c\3\2\2\2*\u012e\3\2\2\2,\u0133\3\2\2\2.\u0135\3\2\2\2\60"+
+ "\u014b\3\2\2\2\62\u0161\3\2\2\2\64\u0168\3\2\2\2\66\u0173\3\2\2\28\u017d"+
+ "\3\2\2\2:\u0188\3\2\2\2<\u019a\3\2\2\2>\u01a6\3\2\2\2@\u01b1\3\2\2\2B"+
+ "\u01bd\3\2\2\2D\u01cc\3\2\2\2F\u01d8\3\2\2\2H\u01e5\3\2\2\2J\u01fa\3\2"+
+ "\2\2L\u0212\3\2\2\2N\u021c\3\2\2\2P\u022a\3\2\2\2R\u0237\3\2\2\2TV\5\4"+
+ "\3\2UW\5\20\t\2VU\3\2\2\2WX\3\2\2\2XV\3\2\2\2XY\3\2\2\2Y\3\3\2\2\2Z[\7"+
+ "\r\2\2[\\\7\67\2\2\\^\5\6\4\2]_\7\67\2\2^]\3\2\2\2^_\3\2\2\2_`\3\2\2\2"+
+ "`a\78\2\2ac\5\b\5\2bd\5\n\6\2cb\3\2\2\2cd\3\2\2\2df\3\2\2\2eg\5\f\7\2"+
+ "fe\3\2\2\2fg\3\2\2\2gh\3\2\2\2hl\79\2\2ik\7\13\2\2ji\3\2\2\2kn\3\2\2\2"+
+ "lj\3\2\2\2lm\3\2\2\2m\5\3\2\2\2nl\3\2\2\2op\t\2\2\2p\7\3\2\2\2qr\7\16"+
+ "\2\2rs\7\67\2\2su\7-\2\2tv\7\67\2\2ut\3\2\2\2uv\3\2\2\2vw\3\2\2\2wx\7"+
+ "\13\2\2x\t\3\2\2\2yz\7\17\2\2z{\7\67\2\2{}\5\16\b\2|~\7\67\2\2}|\3\2\2"+
+ "\2}~\3\2\2\2~\177\3\2\2\2\177\u0080\7\13\2\2\u0080\13\3\2\2\2\u0081\u0084"+
+ "\7\20\2\2\u0082\u0083\7\67\2\2\u0083\u0085\5\16\b\2\u0084\u0082\3\2\2"+
+ "\2\u0085\u0086\3\2\2\2\u0086\u0084\3\2\2\2\u0086\u0087\3\2\2\2\u0087\u0089"+
+ "\3\2\2\2\u0088\u008a\7\67\2\2\u0089\u0088\3\2\2\2\u0089\u008a\3\2\2\2"+
+ "\u008a\u008b\3\2\2\2\u008b\u008c\7\13\2\2\u008c\r\3\2\2\2\u008d\u008e"+
+ "\7\61\2\2\u008e\17\3\2\2\2\u008f\u009b\5\30\r\2\u0090\u009b\5\34\17\2"+
+ "\u0091\u009b\5\36\20\2\u0092\u009b\5\62\32\2\u0093\u009b\5 \21\2\u0094"+
+ "\u009b\5\66\34\2\u0095\u009b\58\35\2\u0096\u009b\5> \2\u0097\u009b\5:"+
+ "\36\2\u0098\u009b\5H%\2\u0099\u009b\5J&\2\u009a\u008f\3\2\2\2\u009a\u0090"+
+ "\3\2\2\2\u009a\u0091\3\2\2\2\u009a\u0092\3\2\2\2\u009a\u0093\3\2\2\2\u009a"+
+ "\u0094\3\2\2\2\u009a\u0095\3\2\2\2\u009a\u0096\3\2\2\2\u009a\u0097\3\2"+
+ "\2\2\u009a\u0098\3\2\2\2\u009a\u0099\3\2\2\2\u009b\21\3\2\2\2\u009c\u009e"+
+ "\5\26\f\2\u009d\u009f\7\67\2\2\u009e\u009d\3\2\2\2\u009e\u009f\3\2\2\2"+
+ "\u009f\u00a0\3\2\2\2\u00a0\u00a2\7)\2\2\u00a1\u00a3\7\67\2\2\u00a2\u00a1"+
+ "\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3\23\3\2\2\2\u00a4\u00a6\5\26\f\2\u00a5"+
+ "\u00a4\3\2\2\2\u00a5\u00a6\3\2\2\2\u00a6\u00a8\3\2\2\2\u00a7\u00a9\7\67"+
+ "\2\2\u00a8\u00a7\3\2\2\2\u00a8\u00a9\3\2\2\2\u00a9\u00aa\3\2\2\2\u00aa"+
+ "\u00ac\7\3\2\2\u00ab\u00ad\7\67\2\2\u00ac\u00ab\3\2\2\2\u00ac\u00ad\3"+
+ "\2\2\2\u00ad\u00ae\3\2\2\2\u00ae\u00b0\5\16\b\2\u00af\u00b1\7\67\2\2\u00b0"+
+ "\u00af\3\2\2\2\u00b0\u00b1\3\2\2\2\u00b1\u00b2\3\2\2\2\u00b2\u00b4\7)"+
+ "\2\2\u00b3\u00b5\7\67\2\2\u00b4\u00b3\3\2\2\2\u00b4\u00b5\3\2\2\2\u00b5"+
+ "\25\3\2\2\2\u00b6\u00bb\5\16\b\2\u00b7\u00bb\7\62\2\2\u00b8\u00bb\7\64"+
+ "\2\2\u00b9\u00bb\7\65\2\2\u00ba\u00b6\3\2\2\2\u00ba\u00b7\3\2\2\2\u00ba"+
+ "\u00b8\3\2\2\2\u00ba\u00b9\3\2\2\2\u00bb\27\3\2\2\2\u00bc\u00be\5\22\n"+
+ "\2\u00bd\u00bc\3\2\2\2\u00bd\u00be\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf\u00c0"+
+ "\7\22\2\2\u00c0\u00c4\7\67\2\2\u00c1\u00c2\7\4\2\2\u00c2\u00c5\5\26\f"+
+ "\2\u00c3\u00c5\5\6\4\2\u00c4\u00c1\3\2\2\2\u00c4\u00c3\3\2\2\2\u00c5\u00c9"+
+ "\3\2\2\2\u00c6\u00c8\5&\24\2\u00c7\u00c6\3\2\2\2\u00c8\u00cb\3\2\2\2\u00c9"+
+ "\u00c7\3\2\2\2\u00c9\u00ca\3\2\2\2\u00ca\u00cd\3\2\2\2\u00cb\u00c9\3\2"+
+ "\2\2\u00cc\u00ce\7\67\2\2\u00cd\u00cc\3\2\2\2\u00cd\u00ce\3\2\2\2\u00ce"+
+ "\u00d1\3\2\2\2\u00cf\u00d2\5\32\16\2\u00d0\u00d2\7\13\2\2\u00d1\u00cf"+
+ "\3\2\2\2\u00d1\u00d0\3\2\2\2\u00d2\31\3\2\2\2\u00d3\u00d4\78\2\2\u00d4"+
+ "\u00d5\7\30\2\2\u00d5\u00d6\7\67\2\2\u00d6\u00db\7-\2\2\u00d7\u00d8\7"+
+ "\67\2\2\u00d8\u00da\7-\2\2\u00d9\u00d7\3\2\2\2\u00da\u00dd\3\2\2\2\u00db"+
+ "\u00d9\3\2\2\2\u00db\u00dc\3\2\2\2\u00dc\u00df\3\2\2\2\u00dd\u00db\3\2"+
+ "\2\2\u00de\u00e0\7\67\2\2\u00df\u00de\3\2\2\2\u00df\u00e0\3\2\2\2\u00e0"+
+ "\u00e1\3\2\2\2\u00e1\u00e2\7\13\2\2\u00e2\u00e3\79\2\2\u00e3\33\3\2\2"+
+ "\2\u00e4\u00e7\5\22\n\2\u00e5\u00e7\5\24\13\2\u00e6\u00e4\3\2\2\2\u00e6"+
+ "\u00e5\3\2\2\2\u00e6\u00e7\3\2\2\2\u00e7\u00e8\3\2\2\2\u00e8\u00e9\7\23"+
+ "\2\2\u00e9\u00ec\7\67\2\2\u00ea\u00ed\5\"\22\2\u00eb\u00ed\5$\23\2\u00ec"+
+ "\u00ea\3\2\2\2\u00ec\u00eb\3\2\2\2\u00ed\u00ef\3\2\2\2\u00ee\u00f0\7\67"+
+ "\2\2\u00ef\u00ee\3\2\2\2\u00ef\u00f0\3\2\2\2\u00f0\u00f1\3\2\2\2\u00f1"+
+ "\u00f2\7\13\2\2\u00f2\35\3\2\2\2\u00f3\u00f5\5\22\n\2\u00f4\u00f3\3\2"+
+ "\2\2\u00f4\u00f5\3\2\2\2\u00f5\u00f6\3\2\2\2\u00f6\u00f7\7\24\2\2\u00f7"+
+ "\u00f8\7\67\2\2\u00f8\u00fb\7-\2\2\u00f9\u00fa\7\67\2\2\u00fa\u00fc\5"+
+ "\26\f\2\u00fb\u00f9\3\2\2\2\u00fb\u00fc\3\2\2\2\u00fc\u00ff\3\2\2\2\u00fd"+
+ "\u00fe\7\67\2\2\u00fe\u0100\7,\2\2\u00ff\u00fd\3\2\2\2\u00ff\u0100\3\2"+
+ "\2\2\u0100\u0102\3\2\2\2\u0101\u0103\7\67\2\2\u0102\u0101\3\2\2\2\u0102"+
+ "\u0103\3\2\2\2\u0103\u0106\3\2\2\2\u0104\u0107\5N(\2\u0105\u0107\7\13"+
+ "\2\2\u0106\u0104\3\2\2\2\u0106\u0105\3\2\2\2\u0107\37\3\2\2\2\u0108\u010a"+
+ "\7\21\2\2\u0109\u010b\5&\24\2\u010a\u0109\3\2\2\2\u010b\u010c\3\2\2\2"+
+ "\u010c\u010a\3\2\2\2\u010c\u010d\3\2\2\2\u010d\u010f\3\2\2\2\u010e\u0110"+
+ "\7\67\2\2\u010f\u010e\3\2\2\2\u010f\u0110\3\2\2\2\u0110\u0111\3\2\2\2"+
+ "\u0111\u0112\7\13\2\2\u0112!\3\2\2\2\u0113\u0114\5\6\4\2\u0114\u0115\7"+
+ "\5\2\2\u0115\u0119\7\61\2\2\u0116\u0118\5&\24\2\u0117\u0116\3\2\2\2\u0118"+
+ "\u011b\3\2\2\2\u0119\u0117\3\2\2\2\u0119\u011a\3\2\2\2\u011a#\3\2\2\2"+
+ "\u011b\u0119\3\2\2\2\u011c\u011d\5\26\f\2\u011d\u011e\7\67\2\2\u011e\u0122"+
+ "\7\61\2\2\u011f\u0121\5&\24\2\u0120\u011f\3\2\2\2\u0121\u0124\3\2\2\2"+
+ "\u0122\u0120\3\2\2\2\u0122\u0123\3\2\2\2\u0123%\3\2\2\2\u0124\u0122\3"+
+ "\2\2\2\u0125\u0126\7\67\2\2\u0126\u0127\5(\25\2\u0127\'\3\2\2\2\u0128"+
+ "\u012d\5*\26\2\u0129\u012d\5\26\f\2\u012a\u012b\7*\2\2\u012b\u012d\5\26"+
+ "\f\2\u012c\u0128\3\2\2\2\u012c\u0129\3\2\2\2\u012c\u012a\3\2\2\2\u012d"+
+ ")\3\2\2\2\u012e\u012f\t\3\2\2\u012f+\3\2\2\2\u0130\u0134\5\60\31\2\u0131"+
+ "\u0134\5.\30\2\u0132\u0134\5(\25\2\u0133\u0130\3\2\2\2\u0133\u0131\3\2"+
+ "\2\2\u0133\u0132\3\2\2\2\u0134-\3\2\2\2\u0135\u0137\7\6\2\2\u0136\u0138"+
+ "\7\67\2\2\u0137\u0136\3\2\2\2\u0137\u0138\3\2\2\2\u0138\u013c\3\2\2\2"+
+ "\u0139\u013b\5,\27\2\u013a\u0139\3\2\2\2\u013b\u013e\3\2\2\2\u013c\u013a"+
+ "\3\2\2\2\u013c\u013d\3\2\2\2\u013d\u0143\3\2\2\2\u013e\u013c\3\2\2\2\u013f"+
+ "\u0140\7\66\2\2\u0140\u0142\5,\27\2\u0141\u013f\3\2\2\2\u0142\u0145\3"+
+ "\2\2\2\u0143\u0141\3\2\2\2\u0143\u0144\3\2\2\2\u0144\u0147\3\2\2\2\u0145"+
+ "\u0143\3\2\2\2\u0146\u0148\7\67\2\2\u0147\u0146\3\2\2\2\u0147\u0148\3"+
+ "\2\2\2\u0148\u0149\3\2\2\2\u0149\u014a\7\7\2\2\u014a/\3\2\2\2\u014b\u014d"+
+ "\7\b\2\2\u014c\u014e\7\67\2\2\u014d\u014c\3\2\2\2\u014d\u014e\3\2\2\2"+
+ "\u014e\u0152\3\2\2\2\u014f\u0151\5\64\33\2\u0150\u014f\3\2\2\2\u0151\u0154"+
+ "\3\2\2\2\u0152\u0150\3\2\2\2\u0152\u0153\3\2\2\2\u0153\u0159\3\2\2\2\u0154"+
+ "\u0152\3\2\2\2\u0155\u0156\7\66\2\2\u0156\u0158\5\64\33\2\u0157\u0155"+
+ "\3\2\2\2\u0158\u015b\3\2\2\2\u0159\u0157\3\2\2\2\u0159\u015a\3\2\2\2\u015a"+
+ "\u015d\3\2\2\2\u015b\u0159\3\2\2\2\u015c\u015e\7\67\2\2\u015d\u015c\3"+
+ "\2\2\2\u015d\u015e\3\2\2\2\u015e\u015f\3\2\2\2\u015f\u0160\7\t\2\2\u0160"+
+ "\61\3\2\2\2\u0161\u0162\5\22\n\2\u0162\u0164\5,\27\2\u0163\u0165\7\67"+
+ "\2\2\u0164\u0163\3\2\2\2\u0164\u0165\3\2\2\2\u0165\u0166\3\2\2\2\u0166"+
+ "\u0167\7\13\2\2\u0167\63\3\2\2\2\u0168\u016a\7\61\2\2\u0169\u016b\7\67"+
+ "\2\2\u016a\u0169\3\2\2\2\u016a\u016b\3\2\2\2\u016b\u016c\3\2\2\2\u016c"+
+ "\u016e\7\n\2\2\u016d\u016f\7\67\2\2\u016e\u016d\3\2\2\2\u016e\u016f\3"+
+ "\2\2\2\u016f\u0170\3\2\2\2\u0170\u0171\5,\27\2\u0171\65\3\2\2\2\u0172"+
+ "\u0174\5\22\n\2\u0173\u0172\3\2\2\2\u0173\u0174\3\2\2\2\u0174\u0175\3"+
+ "\2\2\2\u0175\u0176\7 \2\2\u0176\u0179\7\67\2\2\u0177\u017a\7-\2\2\u0178"+
+ "\u017a\5\26\f\2\u0179\u0177\3\2\2\2\u0179\u0178\3\2\2\2\u017a\u017b\3"+
+ "\2\2\2\u017b\u017c\7\13\2\2\u017c\67\3\2\2\2\u017d\u017e\7\37\2\2\u017e"+
+ "\u0181\7\67\2\2\u017f\u0182\7,\2\2\u0180\u0182\5\26\f\2\u0181\u017f\3"+
+ "\2\2\2\u0181\u0180\3\2\2\2\u0182\u0184\3\2\2\2\u0183\u0185\7\67\2\2\u0184"+
+ "\u0183\3\2\2\2\u0184\u0185\3\2\2\2\u0185\u0186\3\2\2\2\u0186\u0187\7\13"+
+ "\2\2\u01879\3\2\2\2\u0188\u0189\7\35\2\2\u0189\u018a\7\67\2\2\u018a\u018b"+
+ "\5(\25\2\u018b\u018c\7\67\2\2\u018c\u018e\7&\2\2\u018d\u018f\7\67\2\2"+
+ "\u018e\u018d\3\2\2\2\u018e\u018f\3\2\2\2\u018f\u0190\3\2\2\2\u0190\u0192"+
+ "\78\2\2\u0191\u0193\5<\37\2\u0192\u0191\3\2\2\2\u0193\u0194\3\2\2\2\u0194"+
+ "\u0192\3\2\2\2\u0194\u0195\3\2\2\2\u0195\u0196\3\2\2\2\u0196\u0198\79"+
+ "\2\2\u0197\u0199\5F$\2\u0198\u0197\3\2\2\2\u0198\u0199\3\2\2\2\u0199;"+
+ "\3\2\2\2\u019a\u019c\5(\25\2\u019b\u019d\7\67\2\2\u019c\u019b\3\2\2\2"+
+ "\u019c\u019d\3\2\2\2\u019d\u019e\3\2\2\2\u019e\u01a0\78\2\2\u019f\u01a1"+
+ "\5\20\t\2\u01a0\u019f\3\2\2\2\u01a1\u01a2\3\2\2\2\u01a2\u01a0\3\2\2\2"+
+ "\u01a2\u01a3\3\2\2\2\u01a3\u01a4\3\2\2\2\u01a4\u01a5\79\2\2\u01a5=\3\2"+
+ "\2\2\u01a6\u01a7\5@!\2\u01a7\u01a9\78\2\2\u01a8\u01aa\5\20\t\2\u01a9\u01a8"+
+ "\3\2\2\2\u01aa\u01ab\3\2\2\2\u01ab\u01a9\3\2\2\2\u01ab\u01ac\3\2\2\2\u01ac"+
+ "\u01ad\3\2\2\2\u01ad\u01af\79\2\2\u01ae\u01b0\5F$\2\u01af\u01ae\3\2\2"+
+ "\2\u01af\u01b0\3\2\2\2\u01b0?\3\2\2\2\u01b1\u01b2\7\31\2\2\u01b2\u01b3"+
+ "\7\67\2\2\u01b3\u01b7\5D#\2\u01b4\u01b6\5B\"\2\u01b5\u01b4\3\2\2\2\u01b6"+
+ "\u01b9\3\2\2\2\u01b7\u01b5\3\2\2\2\u01b7\u01b8\3\2\2\2\u01b8A\3\2\2\2"+
+ "\u01b9\u01b7\3\2\2\2\u01ba\u01bc\7\13\2\2\u01bb\u01ba\3\2\2\2\u01bc\u01bf"+
+ "\3\2\2\2\u01bd\u01bb\3\2\2\2\u01bd\u01be\3\2\2\2\u01be\u01c0\3\2\2\2\u01bf"+
+ "\u01bd\3\2\2\2\u01c0\u01c2\t\4\2\2\u01c1\u01c3\7\67\2\2\u01c2\u01c1\3"+
+ "\2\2\2\u01c2\u01c3\3\2\2\2\u01c3\u01c7\3\2\2\2\u01c4\u01c6\7\13\2\2\u01c5"+
+ "\u01c4\3\2\2\2\u01c6\u01c9\3\2\2\2\u01c7\u01c5\3\2\2\2\u01c7\u01c8\3\2"+
+ "\2\2\u01c8\u01ca\3\2\2\2\u01c9\u01c7\3\2\2\2\u01ca\u01cb\5D#\2\u01cbC"+
+ "\3\2\2\2\u01cc\u01cd\5(\25\2\u01cd\u01ce\7\67\2\2\u01ce\u01cf\7!\2\2\u01cf"+
+ "\u01d2\7\67\2\2\u01d0\u01d1\7\"\2\2\u01d1\u01d3\7\67\2\2\u01d2\u01d0\3"+
+ "\2\2\2\u01d2\u01d3\3\2\2\2\u01d3\u01d4\3\2\2\2\u01d4\u01d6\5(\25\2\u01d5"+
+ "\u01d7\7\67\2\2\u01d6\u01d5\3\2\2\2\u01d6\u01d7\3\2\2\2\u01d7E\3\2\2\2"+
+ "\u01d8\u01da\7\32\2\2\u01d9\u01db\7\67\2\2\u01da\u01d9\3\2\2\2\u01da\u01db"+
+ "\3\2\2\2\u01db\u01dc\3\2\2\2\u01dc\u01de\78\2\2\u01dd\u01df\5\20\t\2\u01de"+
+ "\u01dd\3\2\2\2\u01df\u01e0\3\2\2\2\u01e0\u01de\3\2\2\2\u01e0\u01e1\3\2"+
+ "\2\2\u01e1\u01e2\3\2\2\2\u01e2\u01e3\79\2\2\u01e3G\3\2\2\2\u01e4\u01e6"+
+ "\5\22\n\2\u01e5\u01e4\3\2\2\2\u01e5\u01e6\3\2\2\2\u01e6\u01e7\3\2\2\2"+
+ "\u01e7\u01e8\7\34\2\2\u01e8\u01e9\7\67\2\2\u01e9\u01ea\5\26\f\2\u01ea"+
+ "\u01eb\7\67\2\2\u01eb\u01ec\7(\2\2\u01ec\u01ed\7\67\2\2\u01ed\u01ee\5"+
+ "\16\b\2\u01ee\u01f0\78\2\2\u01ef\u01f1\5\20\t\2\u01f0\u01ef\3\2\2\2\u01f1"+
+ "\u01f2\3\2\2\2\u01f2\u01f0\3\2\2\2\u01f2\u01f3\3\2\2\2\u01f3\u01f5\3\2"+
+ "\2\2\u01f4\u01f6\5L\'\2\u01f5\u01f4\3\2\2\2\u01f5\u01f6\3\2\2\2\u01f6"+
+ "\u01f7\3\2\2\2\u01f7\u01f8\79\2\2\u01f8I\3\2\2\2\u01f9\u01fb\5\22\n\2"+
+ "\u01fa\u01f9\3\2\2\2\u01fa\u01fb\3\2\2\2\u01fb\u01fc\3\2\2\2\u01fc\u01fd"+
+ "\7\33\2\2\u01fd\u0200\7\67\2\2\u01fe\u0201\5\26\f\2\u01ff\u0201\7.\2\2"+
+ "\u0200\u01fe\3\2\2\2\u0200\u01ff\3\2\2\2\u0201\u0202\3\2\2\2\u0202\u0203"+
+ "\7\67\2\2\u0203\u0205\7\'\2\2\u0204\u0206\7\67\2\2\u0205\u0204\3\2\2\2"+
+ "\u0205\u0206\3\2\2\2\u0206\u0207\3\2\2\2\u0207\u0209\78\2\2\u0208\u020a"+
+ "\5\20\t\2\u0209\u0208\3\2\2\2\u020a\u020b\3\2\2\2\u020b\u0209\3\2\2\2"+
+ "\u020b\u020c\3\2\2\2\u020c\u020e\3\2\2\2\u020d\u020f\5L\'\2\u020e\u020d"+
+ "\3\2\2\2\u020e\u020f\3\2\2\2\u020f\u0210\3\2\2\2\u0210\u0211\79\2\2\u0211"+
+ "K\3\2\2\2\u0212\u0213\7\36\2\2\u0213\u0214\7\67\2\2\u0214\u0215\5@!\2"+
+ "\u0215\u0219\7\13\2\2\u0216\u0218\5\20\t\2\u0217\u0216\3\2\2\2\u0218\u021b"+
+ "\3\2\2\2\u0219\u0217\3\2\2\2\u0219\u021a\3\2\2\2\u021aM\3\2\2\2\u021b"+
+ "\u0219\3\2\2\2\u021c\u021d\78\2\2\u021d\u021f\7\25\2\2\u021e\u0220\7\67"+
+ "\2\2\u021f\u021e\3\2\2\2\u021f\u0220\3\2\2\2\u0220\u0221\3\2\2\2\u0221"+
+ "\u0222\78\2\2\u0222\u0224\5P)\2\u0223\u0225\5\34\17\2\u0224\u0223\3\2"+
+ "\2\2\u0224\u0225\3\2\2\2\u0225\u0226\3\2\2\2\u0226\u0227\5R*\2\u0227\u0228"+
+ "\79\2\2\u0228\u0229\79\2\2\u0229O\3\2\2\2\u022a\u022b\7\26\2\2\u022b\u022e"+
+ "\7\67\2\2\u022c\u022f\5\26\f\2\u022d\u022f\7.\2\2\u022e\u022c\3\2\2\2"+
+ "\u022e\u022d\3\2\2\2\u022f\u0230\3\2\2\2\u0230\u0231\7\67\2\2\u0231\u0233"+
+ "\7%\2\2\u0232\u0234\7\67\2\2\u0233\u0232\3\2\2\2\u0233\u0234\3\2\2\2\u0234"+
+ "\u0235\3\2\2\2\u0235\u0236\7\13\2\2\u0236Q\3\2\2\2\u0237\u0238\7\27\2"+
+ "\2\u0238\u0239\7\67\2\2\u0239\u023b\5@!\2\u023a\u023c\7\67\2\2\u023b\u023a"+
+ "\3\2\2\2\u023b\u023c\3\2\2\2\u023c\u023d\3\2\2\2\u023d\u023e\7\13\2\2"+
+ "\u023eS\3\2\2\2UX^cflu}\u0086\u0089\u009a\u009e\u00a2\u00a5\u00a8\u00ac"+
+ "\u00b0\u00b4\u00ba\u00bd\u00c4\u00c9\u00cd\u00d1\u00db\u00df\u00e6\u00ec"+
+ "\u00ef\u00f4\u00fb\u00ff\u0102\u0106\u010c\u010f\u0119\u0122\u012c\u0133"+
+ "\u0137\u013c\u0143\u0147\u014d\u0152\u0159\u015d\u0164\u016a\u016e\u0173"+
+ "\u0179\u0181\u0184\u018e\u0194\u0198\u019c\u01a2\u01ab\u01af\u01b7\u01bd"+
+ "\u01c2\u01c7\u01d2\u01d6\u01da\u01e0\u01e5\u01f2\u01f5\u01fa\u0200\u0205"+
+ "\u020b\u020e\u0219\u021f\u0224\u022e\u0233\u023b";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
diff --git a/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowVisitor.java b/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowVisitor.java
index 38b9c5c7424..82b7fe2324f 100644
--- a/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowVisitor.java
+++ b/agama/transpiler/src/main/java/io/jans/agama/antlr/AuthnFlowVisitor.java
@@ -34,6 +34,12 @@ public interface AuthnFlowVisitor extends ParseTreeVisitor {
* @return the visitor result
*/
T visitBase(AuthnFlowParser.BaseContext ctx);
+ /**
+ * Visit a parse tree produced by {@link AuthnFlowParser#configs}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ T visitConfigs(AuthnFlowParser.ConfigsContext ctx);
/**
* Visit a parse tree produced by {@link AuthnFlowParser#inputs}.
* @param ctx the parse tree
@@ -233,27 +239,21 @@ public interface AuthnFlowVisitor extends ParseTreeVisitor {
*/
T visitQuit_stmt(AuthnFlowParser.Quit_stmtContext ctx);
/**
- * Visit a parse tree produced by {@link AuthnFlowParser#statusr_block}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- T visitStatusr_block(AuthnFlowParser.Statusr_blockContext ctx);
- /**
- * Visit a parse tree produced by {@link AuthnFlowParser#statusr_allow}.
+ * Visit a parse tree produced by {@link AuthnFlowParser#stchk_block}.
* @param ctx the parse tree
* @return the visitor result
*/
- T visitStatusr_allow(AuthnFlowParser.Statusr_allowContext ctx);
+ T visitStchk_block(AuthnFlowParser.Stchk_blockContext ctx);
/**
- * Visit a parse tree produced by {@link AuthnFlowParser#statusr_reply}.
+ * Visit a parse tree produced by {@link AuthnFlowParser#stchk_open}.
* @param ctx the parse tree
* @return the visitor result
*/
- T visitStatusr_reply(AuthnFlowParser.Statusr_replyContext ctx);
+ T visitStchk_open(AuthnFlowParser.Stchk_openContext ctx);
/**
- * Visit a parse tree produced by {@link AuthnFlowParser#statusr_until}.
+ * Visit a parse tree produced by {@link AuthnFlowParser#stchk_close}.
* @param ctx the parse tree
* @return the visitor result
*/
- T visitStatusr_until(AuthnFlowParser.Statusr_untilContext ctx);
+ T visitStchk_close(AuthnFlowParser.Stchk_closeContext ctx);
}
\ No newline at end of file
diff --git a/agama/transpiler/src/main/resources/JSGenerator.ftl b/agama/transpiler/src/main/resources/JSGenerator.ftl
index 99b965e354f..622bb27e69c 100644
--- a/agama/transpiler/src/main/resources/JSGenerator.ftl
+++ b/agama/transpiler/src/main/resources/JSGenerator.ftl
@@ -11,8 +11,9 @@ function ${flow.@id}<#recurse flow>
<#macro header>
(
+<#if .node.configs?size = 0>_p<#else>${.node.configs.short_var}#if>
<#if .node.inputs?size gt 0>
- ${.node.inputs.short_var?join(", ")}
+ , ${.node.inputs.short_var?join(", ")}
#if>
) {
const _basePath = ${.node.base.STRING}