You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2021/03/18 18:53:06 UTC
[incubator-nlpcraft] 03/05: Renaming DSL -> IDL, etc.
This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch NLPCRAFT-206
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
commit 57c8c3a6f2b748ba69ae219d68d170ac2114e1fc
Author: Aaron Radzinski <ar...@apache.org>
AuthorDate: Thu Mar 18 11:37:13 2021 -0700
Renaming DSL -> IDL, etc.
---
.../{NCDslContext.scala => NCIdlContext.scala} | 2 +-
.../{NCDslIntent.scala => NCIdlIntent.scala} | 12 +-
.../{NCDslSynonym.scala => NCIdlSynonym.scala} | 4 +-
.../intent/{NCDslTerm.scala => NCIdlTerm.scala} | 8 +-
...enPredicate.scala => NCIdlTokenPredicate.scala} | 2 +-
.../{NCDslCompiler.scala => NCIdlCompiler.scala} | 144 +-
...lCompilerBase.scala => NCIdlCompilerBase.scala} | 210 +-
...pilerGlobal.scala => NCIdlCompilerGlobal.scala} | 14 +-
.../{NCDslFragment.scala => NCIdlFragment.scala} | 8 +-
.../{NCDslStack.scala => NCIdlStack.scala} | 16 +-
.../intent/compiler/antlr4/NCIntentIdl.interp | 148 ++
.../intent/compiler/antlr4/NCIntentIdl.tokens | 91 +
.../compiler/antlr4/NCIntentIdlBaseListener.java | 555 ++++
.../intent/compiler/antlr4/NCIntentIdlLexer.interp | 172 ++
.../intent/compiler/antlr4/NCIntentIdlLexer.java | 568 ++++
.../intent/compiler/antlr4/NCIntentIdlLexer.tokens | 91 +
.../compiler/antlr4/NCIntentIdlListener.java | 458 ++++
.../intent/compiler/antlr4/NCIntentIdlParser.java | 2797 ++++++++++++++++++++
.../model/intent/solver/NCIntentSolver.scala | 4 +-
.../model/intent/solver/NCIntentSolverEngine.scala | 20 +-
.../apache/nlpcraft/probe/mgrs/NCProbeModel.scala | 4 +-
.../nlpcraft/probe/mgrs/NCProbeSynonym.scala | 4 +-
.../nlpcraft/probe/mgrs/NCProbeSynonymChunk.scala | 4 +-
.../probe/mgrs/deploy/NCDeployManager.scala | 20 +-
...lCompilerSpec.scala => NCIdlCompilerSpec.scala} | 12 +-
25 files changed, 5124 insertions(+), 244 deletions(-)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslContext.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlContext.scala
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslContext.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlContext.scala
index 2b0a61f..1d09238 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslContext.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlContext.scala
@@ -27,7 +27,7 @@ import org.apache.nlpcraft.model.NCRequest
* @param fragMeta Optional fragment (argument) metadata passed during intent fragment reference.
* @param req Server request holder.
*/
-case class NCDslContext(
+case class NCIdlContext(
intentMeta: ScalaMeta = Map.empty[String, Object],
convMeta: ScalaMeta = Map.empty[String, Object],
fragMeta: ScalaMeta = Map.empty[String, Object],
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslIntent.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlIntent.scala
similarity index 90%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslIntent.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlIntent.scala
index 0b965e0..76ec581 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslIntent.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlIntent.scala
@@ -22,26 +22,26 @@ import org.apache.nlpcraft.common.ScalaMeta
import java.util.regex.Pattern
/**
- * DSL intent.
+ * IDL intent.
*
* @param origin File path, file name, method name or URL.
- * @param dsl Original DSL of this intent.
+ * @param idl Original IDL of this intent.
* @param id
* @param ordered
* @param meta
* @param flow
* @param terms
*/
-case class NCDslIntent(
+case class NCIdlIntent(
origin: String,
- dsl: String,
+ idl: String,
id: String,
ordered: Boolean,
meta: ScalaMeta,
flow: Option[String],
flowClsName: Option[String],
flowMtdName: Option[String],
- terms: List[NCDslTerm]
+ terms: List[NCIdlTerm]
) {
require(id != null)
require(terms.nonEmpty)
@@ -56,5 +56,5 @@ case class NCDslIntent(
lazy val isFlowDefined = flow.isDefined || flowMtdName.isDefined
- override def toString: String = dsl
+ override def toString: String = idl
}
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslSynonym.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlSynonym.scala
similarity index 94%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslSynonym.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlSynonym.scala
index 7a6694d..4abe52a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslSynonym.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlSynonym.scala
@@ -25,10 +25,10 @@ import org.apache.nlpcraft.model.NCToken
* @param alias
* @param pred
*/
-case class NCDslSynonym(
+case class NCIdlSynonym(
origin: String,
alias: Option[String],
- pred: NCDslTokenPredicate,
+ pred: NCIdlTokenPredicate,
) {
require(origin != null)
require(pred != null)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslTerm.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlTerm.scala
similarity index 91%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslTerm.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlTerm.scala
index 55026ae..6ef71d6 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslTerm.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlTerm.scala
@@ -28,10 +28,10 @@ import org.apache.nlpcraft.common._
* @param max
* @param conv
*/
-case class NCDslTerm(
+case class NCIdlTerm(
dsl: String,
id: Option[String],
- pred: NCDslTokenPredicate,
+ pred: NCIdlTokenPredicate,
min: Int,
max: Int,
conv: Boolean,
@@ -45,8 +45,8 @@ case class NCDslTerm(
* @param meta
* @return
*/
- def cloneWithFragMeta(meta: Map[String, Any]): NCDslTerm =
- NCDslTerm(
+ def cloneWithFragMeta(meta: Map[String, Any]): NCIdlTerm =
+ NCIdlTerm(
dsl,
id,
pred,
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslTokenPredicate.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlTokenPredicate.scala
similarity index 93%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslTokenPredicate.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlTokenPredicate.scala
index d70b463..d585a8a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCDslTokenPredicate.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/NCIdlTokenPredicate.scala
@@ -22,4 +22,4 @@ import org.apache.nlpcraft.model.NCToken
/**
*
*/
-trait NCDslTokenPredicate extends ((NCToken, NCDslContext) ⇒ (Boolean /* Predicate. */ , Int /* How many times a token was used. */ ))
+trait NCIdlTokenPredicate extends ((NCToken, NCIdlContext) ⇒ (Boolean /* Predicate. */ , Int /* How many times a token was used. */ ))
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompiler.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompiler.scala
similarity index 85%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompiler.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompiler.scala
index 7d538d0..720b681 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompiler.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompiler.scala
@@ -22,10 +22,10 @@ import org.antlr.v4.runtime.tree.ParseTreeWalker
import org.antlr.v4.runtime._
import org.antlr.v4.runtime.{ParserRuleContext ⇒ PRC}
import org.apache.nlpcraft.common._
-import org.apache.nlpcraft.model.intent.compiler.antlr4.{NCIntentDslBaseListener, NCIntentDslLexer, NCIntentDslParser ⇒ IDP}
-import org.apache.nlpcraft.model.intent.compiler.{NCDslCompilerGlobal ⇒ Global}
+import org.apache.nlpcraft.model.intent.compiler.antlr4.{NCIntentIdlBaseListener, NCIntentIdlLexer, NCIntentIdlParser ⇒ IDP}
+import org.apache.nlpcraft.model.intent.compiler.{NCIdlCompilerGlobal ⇒ Global}
import org.apache.nlpcraft.model._
-import org.apache.nlpcraft.model.intent.{NCDslContext, NCDslIntent, NCDslSynonym, NCDslTerm, NCDslTokenPredicate}
+import org.apache.nlpcraft.model.intent.{NCIdlContext, NCIdlIntent, NCIdlSynonym, NCIdlTerm, NCIdlTokenPredicate}
import java.io._
import java.net._
@@ -35,10 +35,10 @@ import java.util.regex.{Pattern, PatternSyntaxException}
import scala.collection.mutable
import scala.collection.mutable.ArrayBuffer
-object NCDslCompiler extends LazyLogging {
+object NCIdlCompiler extends LazyLogging {
// Compiler caches.
- private val intentCache = new mutable.HashMap[String, Set[NCDslIntent]]
- private val synCache = new mutable.HashMap[String, NCDslSynonym]
+ private val intentCache = new mutable.HashMap[String, Set[NCIdlIntent]]
+ private val synCache = new mutable.HashMap[String, NCIdlSynonym]
/**
*
@@ -46,13 +46,13 @@ object NCDslCompiler extends LazyLogging {
* @param idl
* @param mdl
*/
- class FiniteStateMachine(origin: String, idl: String, mdl: NCModel) extends NCIntentDslBaseListener with NCDslCompilerBase {
+ class FiniteStateMachine(origin: String, idl: String, mdl: NCModel) extends NCIntentIdlBaseListener with NCIdlCompilerBase {
// Actual value for '*' as in min/max shortcut.
final private val MINMAX_MAX = 100
// Accumulators for parsed objects.
- private val intents = ArrayBuffer.empty[NCDslIntent]
- private var synonym: NCDslSynonym = _
+ private val intents = ArrayBuffer.empty[NCIdlIntent]
+ private var synonym: NCIdlSynonym = _
// Synonym.
private var alias: String = _
@@ -68,7 +68,7 @@ object NCDslCompiler extends LazyLogging {
private var intentMeta: ScalaMeta = _
// Accumulator for parsed terms.
- private val terms = ArrayBuffer.empty[NCDslTerm]
+ private val terms = ArrayBuffer.empty[NCIdlTerm]
// Currently term.
private var termId: String = _
@@ -88,13 +88,13 @@ object NCDslCompiler extends LazyLogging {
*
* @return
*/
- def getCompiledIntents: Set[NCDslIntent] = intents.toSet
+ def getCompiledIntents: Set[NCIdlIntent] = intents.toSet
/**
*
* @return
*/
- def getCompiledSynonym: NCDslSynonym = synonym
+ def getCompiledSynonym: NCIdlSynonym = synonym
/*
* Shared/common implementation.
@@ -115,7 +115,7 @@ object NCDslCompiler extends LazyLogging {
override def exitAlias(ctx: IDP.AliasContext): Unit = alias = ctx.id().getText
override def enterCallExpr(ctx: IDP.CallExprContext): Unit =
- instrs += ((_, stack: NCDslStack, _) ⇒ stack.push(stack.PLIST_MARKER))
+ instrs += ((_, stack: NCIdlStack, _) ⇒ stack.push(stack.PLIST_MARKER))
/**
*
@@ -180,7 +180,7 @@ object NCDslCompiler extends LazyLogging {
val pred = instrToPredicate("Synonym")
val capture = alias
- val wrapper: NCDslTokenPredicate = (tok: NCToken, ctx: NCDslContext) ⇒ {
+ val wrapper: NCIdlTokenPredicate = (tok: NCToken, ctx: NCIdlContext) ⇒ {
val (res, tokUses) = pred(tok, ctx)
// Store predicate's alias, if any, in token metadata if this token satisfies this predicate.
@@ -199,7 +199,7 @@ object NCDslCompiler extends LazyLogging {
(res, tokUses)
}
- synonym = NCDslSynonym(origin, Option(alias), wrapper)
+ synonym = NCIdlSynonym(origin, Option(alias), wrapper)
alias = null
instrs.clear()
@@ -254,12 +254,12 @@ object NCDslCompiler extends LazyLogging {
if (max < 1)
throw newSyntaxError(s"Invalid intent term max quantifiers: $max (must be max >= 1).")(ctx.minMax())
- val pred: NCDslTokenPredicate = if (refMtdName.isDefined) { // User-code defined term.
+ val pred: NCIdlTokenPredicate = if (refMtdName.isDefined) { // User-code defined term.
// Closure copies.
val clsName = refClsName.orNull
val mtdName = refMtdName.orNull
- (tok: NCToken, termCtx: NCDslContext) ⇒ {
+ (tok: NCToken, termCtx: NCIdlContext) ⇒ {
val javaCtx: NCTokenPredicateContext = new NCTokenPredicateContext {
override lazy val getRequest: NCRequest = termCtx.req
override lazy val getToken: NCToken = tok
@@ -292,7 +292,7 @@ object NCDslCompiler extends LazyLogging {
instrToPredicate("Intent term")(ctx.expr())
// Add term.
- terms += NCDslTerm(
+ terms += NCIdlTerm(
ctx.getText,
Option(termId),
pred,
@@ -314,12 +314,12 @@ object NCDslCompiler extends LazyLogging {
* @param subj
* @return
*/
- private def instrToPredicate(subj: String)(implicit ctx: PRC): NCDslTokenPredicate = {
+ private def instrToPredicate(subj: String)(implicit ctx: PRC): NCIdlTokenPredicate = {
val code = mutable.Buffer.empty[I]
code ++= instrs
- (tok: NCToken, termCtx: NCDslContext) ⇒ {
+ (tok: NCToken, termCtx: NCIdlContext) ⇒ {
val stack = new S()
// Execute all instructions.
@@ -337,7 +337,7 @@ object NCDslCompiler extends LazyLogging {
}
override def exitFrag(ctx: IDP.FragContext): Unit = {
- Global.addFragment(mdl.getId, NCDslFragment(fragId, terms.toList))
+ Global.addFragment(mdl.getId, NCIdlFragment(fragId, terms.toList))
terms.clear()
fragId = null
@@ -348,7 +348,7 @@ object NCDslCompiler extends LazyLogging {
* @param intent
* @param ctx
*/
- private def addIntent(intent: NCDslIntent)(implicit ctx: ParserRuleContext): Unit = {
+ private def addIntent(intent: NCIdlIntent)(implicit ctx: ParserRuleContext): Unit = {
val intentId = intent.id
if (intents.exists(_.id == intentId))
@@ -365,13 +365,13 @@ object NCDslCompiler extends LazyLogging {
else {
Global.addImport(x)
- var imports: Set[NCDslIntent] = null
+ var imports: Set[NCIdlIntent] = null
val file = new File(x)
// First, try absolute path.
if (file.exists())
- imports = NCDslCompiler.compileIntents(
+ imports = NCIdlCompiler.compileIntents(
U.readFile(file).mkString("\n"),
mdl,
x
@@ -382,7 +382,7 @@ object NCDslCompiler extends LazyLogging {
val in = mdl.getClass.getClassLoader.getResourceAsStream(x)
if (in != null)
- imports = NCDslCompiler.compileIntents(
+ imports = NCIdlCompiler.compileIntents(
U.readStream(in).mkString("\n"),
mdl,
x
@@ -392,7 +392,7 @@ object NCDslCompiler extends LazyLogging {
// Finally, try as URL resource.
if (imports == null) {
try
- imports = NCDslCompiler.compileIntents(
+ imports = NCIdlCompiler.compileIntents(
U.readStream(new URL(x).openStream()).mkString("\n"),
mdl,
x
@@ -410,7 +410,7 @@ object NCDslCompiler extends LazyLogging {
override def exitIntent(ctx: IDP.IntentContext): Unit = {
addIntent(
- NCDslIntent(
+ NCIdlIntent(
origin,
idl,
intentId,
@@ -442,8 +442,8 @@ object NCDslCompiler extends LazyLogging {
* @param srcName
* @param line
* @param charPos
- * @param dsl
- * @param origin DSL origin.
+ * @param idl
+ * @param origin IDL origin.
* @param mdl
* @return
*/
@@ -452,9 +452,9 @@ object NCDslCompiler extends LazyLogging {
srcName: String,
line: Int, // 1, 2, ...
charPos: Int, // 0, 1, 2, ...
- dsl: String,
+ idl: String,
origin: String,
- mdl: NCModel): String = mkError("syntax", msg, srcName, line, charPos, dsl, origin, mdl)
+ mdl: NCModel): String = mkError("syntax", msg, srcName, line, charPos, idl, origin, mdl)
/**
*
@@ -462,8 +462,8 @@ object NCDslCompiler extends LazyLogging {
* @param srcName
* @param line
* @param charPos
- * @param dsl
- * @param origin DSL origin.
+ * @param idl
+ * @param origin IDL origin.
* @param mdl
* @return
*/
@@ -472,9 +472,9 @@ object NCDslCompiler extends LazyLogging {
srcName: String,
line: Int, // 1, 2, ...
charPos: Int, // 0, 1, 2, ...
- dsl: String,
+ idl: String,
origin: String,
- mdl: NCModel): String = mkError("runtime", msg, srcName, line, charPos, dsl, origin, mdl)
+ mdl: NCModel): String = mkError("runtime", msg, srcName, line, charPos, idl, origin, mdl)
/**
*
@@ -483,8 +483,8 @@ object NCDslCompiler extends LazyLogging {
* @param srcName
* @param line
* @param charPos
- * @param dsl
- * @param origin DSL origin.
+ * @param idl
+ * @param origin IDL origin.
* @param mdl
* @return
*/
@@ -494,25 +494,25 @@ object NCDslCompiler extends LazyLogging {
srcName: String,
line: Int,
charPos: Int,
- dsl: String,
+ idl: String,
origin: String,
mdl: NCModel): String = {
- val dslLine = dsl.split("\n")(line - 1)
- val dash = "-" * dslLine.length
+ val idlLine = idl.split("\n")(line - 1)
+ val dash = "-" * idlLine.length
val pos = Math.max(0, charPos)
val posPtr = dash.substring(0, pos) + r("^") + y(dash.substring(pos + 1))
- val dslPtr = dslLine.substring(0, pos) + r(dslLine.charAt(pos)) + y(dslLine.substring(pos + 1))
+ val idlPtr = idlLine.substring(0, pos) + r(idlLine.charAt(pos)) + y(idlLine.substring(pos + 1))
val aMsg = U.decapitalize(msg) match {
case s: String if s.last == '.' ⇒ s
case s: String ⇒ s + '.'
}
- s"DSL $kind error in '$srcName' at line $line:${charPos + 1} - $aMsg\n" +
+ s"IDL $kind error in '$srcName' at line $line:${charPos + 1} - $aMsg\n" +
s" |-- ${c("Model ID:")} ${mdl.getId}\n" +
s" |-- ${c("Model origin:")} ${mdl.getOrigin}\n" +
s" |-- ${c("Intent origin:")} $origin\n" +
s" |-- $RST$W--------------$RST\n" +
- s" |-- ${c("Line:")} $dslPtr\n" +
+ s" |-- ${c("Line:")} $idlPtr\n" +
s" +-- ${c("Position:")} $posPtr"
}
@@ -545,27 +545,27 @@ object NCDslCompiler extends LazyLogging {
/**
*
- * @param dsl
+ * @param idl
* @param mdl
* @param srcName
* @return
*/
private def parseIntents(
- dsl: String,
+ idl: String,
mdl: NCModel,
srcName: String
- ): Set[NCDslIntent] = {
- require(dsl != null)
+ ): Set[NCIdlIntent] = {
+ require(idl != null)
require(mdl != null)
require(srcName != null)
- val x = dsl.strip()
+ val x = idl.strip()
- val intents: Set[NCDslIntent] = intentCache.getOrElseUpdate(x, {
+ val intents: Set[NCIdlIntent] = intentCache.getOrElseUpdate(x, {
val (fsm, parser) = antlr4Armature(x, mdl, srcName)
- // Parse the input DSL and walk built AST.
- (new ParseTreeWalker).walk(fsm, parser.dsl())
+ // Parse the input IDL and walk built AST.
+ (new ParseTreeWalker).walk(fsm, parser.idl())
// Return the compiled intents.
fsm.getCompiledIntents
@@ -576,24 +576,24 @@ object NCDslCompiler extends LazyLogging {
/**
*
- * @param dsl
+ * @param idl
* @param mdl
* @return
*/
private def parseSynonym(
- dsl: String,
+ idl: String,
mdl: NCModel,
origin: String
- ): NCDslSynonym = {
- require(dsl != null)
+ ): NCIdlSynonym = {
+ require(idl != null)
require(mdl != null)
- val x = dsl.strip()
+ val x = idl.strip()
- val syn: NCDslSynonym = synCache.getOrElseUpdate(x, {
+ val syn: NCIdlSynonym = synCache.getOrElseUpdate(x, {
val (fsm, parser) = antlr4Armature(x, mdl, origin)
- // Parse the input DSL and walk built AST.
+ // Parse the input IDL and walk built AST.
(new ParseTreeWalker).walk(fsm, parser.synonym())
// Return the compiled synonym.
@@ -605,56 +605,56 @@ object NCDslCompiler extends LazyLogging {
/**
*
- * @param dsl
+ * @param idl
* @param mdl
* @param origin
* @return
*/
private def antlr4Armature(
- dsl: String,
+ idl: String,
mdl: NCModel,
origin: String
): (FiniteStateMachine, IDP) = {
- val lexer = new NCIntentDslLexer(CharStreams.fromString(dsl, origin))
+ val lexer = new NCIntentIdlLexer(CharStreams.fromString(idl, origin))
val parser = new IDP(new CommonTokenStream(lexer))
// Set custom error handlers.
lexer.removeErrorListeners()
parser.removeErrorListeners()
- lexer.addErrorListener(new CompilerErrorListener(dsl, mdl, origin))
- parser.addErrorListener(new CompilerErrorListener(dsl, mdl, origin))
+ lexer.addErrorListener(new CompilerErrorListener(idl, mdl, origin))
+ parser.addErrorListener(new CompilerErrorListener(idl, mdl, origin))
// State automata + it's parser.
- new FiniteStateMachine(origin, dsl, mdl) → parser
+ new FiniteStateMachine(origin, idl, mdl) → parser
}
/**
* Compiles inline (supplied) fragments and/or intents. Note that fragments are accumulated in a static
* map keyed by model ID. Only intents are returned, if any.
*
- * @param dsl Intent DSL to compile.
- * @param mdl Model DSL belongs to.
+ * @param idl Intent IDL to compile.
+ * @param mdl Model IDL belongs to.
* @param origin Optional source name.
* @return
*/
@throws[NCE]
def compileIntents(
- dsl: String,
+ idl: String,
mdl: NCModel,
origin: String
- ): Set[NCDslIntent] = parseIntents(dsl, mdl, origin)
+ ): Set[NCIdlIntent] = parseIntents(idl, mdl, origin)
/**
*
- * @param dsl Synonym DSL to compile.
- * @param mdl Model DSL belongs to.*
+ * @param idl Synonym IDL to compile.
+ * @param mdl Model IDL belongs to.*
* @param origin Source name.
* @return
*/
@throws[NCE]
def compileSynonym(
- dsl: String,
+ idl: String,
mdl: NCModel,
origin: String,
- ): NCDslSynonym = parseSynonym(dsl, mdl, origin)
+ ): NCIdlSynonym = parseSynonym(idl, mdl, origin)
}
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompilerBase.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
similarity index 74%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompilerBase.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
index 7164d36..0a7d546 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompilerBase.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
@@ -23,8 +23,8 @@ import org.apache.nlpcraft.model.NCToken
import org.antlr.v4.runtime.{ParserRuleContext ⇒ PRC}
import org.antlr.v4.runtime.tree.{TerminalNode ⇒ TN}
import org.apache.commons.collections.CollectionUtils
-import org.apache.nlpcraft.model.intent.NCDslContext
-import org.apache.nlpcraft.model.intent.compiler.{NCDslStackItem ⇒ Z}
+import org.apache.nlpcraft.model.intent.NCIdlContext
+import org.apache.nlpcraft.model.intent.compiler.{NCIdlStackItem ⇒ Z}
import java.lang.{
Number ⇒ JNumber,
@@ -42,10 +42,10 @@ import java.util.{Calendar, Collections, List ⇒ JList, Map ⇒ JMap}
import scala.collection.JavaConverters._
-trait NCDslCompilerBase {
- type S = NCDslStack
- type T = NCDslStackType
- type I = (NCToken, S, NCDslContext) ⇒ Unit
+trait NCIdlCompilerBase {
+ type S = NCIdlStack
+ type T = NCIdlStackType
+ type I = (NCToken, S, NCIdlContext) ⇒ Unit
def syntaxError(errMsg: String, srcName: String, line: Int, pos: Int): NCE
def runtimeError(errMsg: String, srcName: String, line: Int, pos: Int, cause: Exception = null): NCE
@@ -202,8 +202,8 @@ trait NCDslCompilerBase {
if (lt != null)
stack.push(() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
val f =
if (isInt(v1) && isInt(v2)) asInt(v1) < asInt(v2)
@@ -217,8 +217,8 @@ trait NCDslCompilerBase {
})
else if (gt != null)
stack.push(() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
val f =
if (isInt(v1) && isInt(v2)) asInt(v1) > asInt(v2)
@@ -232,8 +232,8 @@ trait NCDslCompilerBase {
})
else if (lteq != null)
stack.push(() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
val f =
if (isInt(v1) && isInt(v2)) asInt(v1) <= asInt(v2)
@@ -249,8 +249,8 @@ trait NCDslCompilerBase {
require(gteq != null)
stack.push(() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
val f =
if (isInt(v1) && isInt(v2)) asInt(v1) >= asInt(v2)
@@ -276,8 +276,8 @@ trait NCDslCompilerBase {
if (mult != null)
stack.push(() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
val f =
if (isInt(v1) && isInt(v2)) asInt(v1) * asInt(v2)
@@ -291,8 +291,8 @@ trait NCDslCompilerBase {
})
else if (mod != null)
stack.push(() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
val f =
if (isInt(v1) && isInt(v2)) asInt(v1) % asInt(v2)
@@ -305,8 +305,8 @@ trait NCDslCompilerBase {
assert(div != null)
stack.push(() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
val f =
if (isInt(v1) && isInt(v2)) asInt(v1) / asInt(v2)
@@ -333,7 +333,7 @@ trait NCDslCompilerBase {
stack.push(() ⇒ {
val (op, flag) = if (and != null) ("&&", false) else ("||", true)
- val Z(v1, n1) = x1()
+ val NCIdlStackItem(v1, n1) = x1()
if (!isBool(v1))
throw rtBinaryOpError(op, v1, x2().value)
@@ -342,7 +342,7 @@ trait NCDslCompilerBase {
if (asBool(v1) == flag)
Z(flag, n1)
else {
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v2, n2) = x2()
if (!isBool(v2))
throw rtBinaryOpError(op, v2, v1)
@@ -374,8 +374,8 @@ trait NCDslCompilerBase {
}
stack.push(() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
val f =
if (eq != null)
@@ -399,8 +399,8 @@ trait NCDslCompilerBase {
val (x1, x2) = pop2()(stack, ctx)
def extract(): (Object, Object, Int) = {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
(v1, v2, n1 + n2)
}
@@ -446,7 +446,7 @@ trait NCDslCompilerBase {
if (minus != null)
stack.push(() ⇒ {
- val Z(v, n) = x()
+ val NCIdlStackItem(v, n) = x()
val z =
if (isReal(v)) -asReal(v)
@@ -460,7 +460,7 @@ trait NCDslCompilerBase {
assert(not != null)
stack.push(() ⇒ {
- val Z(v, n) = x()
+ val NCIdlStackItem(v, n) = x()
if (isBool(v)) Z(!asBool(v), n)
else
@@ -550,8 +550,8 @@ trait NCDslCompilerBase {
stack.push(
() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
Z(util.Arrays.asList(toStr(v1).split(toStr(v2))), n1 + n2)
}
@@ -563,8 +563,8 @@ trait NCDslCompilerBase {
stack.push(
() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
Z(util.Arrays.asList(toStr(v1).split(toStr(v2)).toList.map(_.strip)), n1 + n2)
}
@@ -584,7 +584,7 @@ trait NCDslCompilerBase {
var z = 0
dump.reverse.foreach { x ⇒
- val Z(v, n) = x()
+ val NCIdlStackItem(v, n) = x()
z += n
@@ -599,7 +599,7 @@ trait NCDslCompilerBase {
val x = arg1()
stack.push(() ⇒ {
- val Z(v, n) = x()
+ val NCIdlStackItem(v, n) = x()
val jl = toJList(v)
@@ -613,7 +613,7 @@ trait NCDslCompilerBase {
val x = arg1()
stack.push(() ⇒ {
- val Z(v, n) = x()
+ val NCIdlStackItem(v, n) = x()
val lst = toJList(v).asInstanceOf[util.List[Object]]
@@ -632,7 +632,7 @@ trait NCDslCompilerBase {
val x = arg1()
stack.push(() ⇒ {
- val Z(v, n) = x()
+ val NCIdlStackItem(v, n) = x()
val lst = toJList(v).asInstanceOf[util.List[Object]]
@@ -651,7 +651,7 @@ trait NCDslCompilerBase {
val x = arg1()
stack.push(() ⇒ {
- val Z(v, n) = x()
+ val NCIdlStackItem(v, n) = x()
val jl = toJList(v)
@@ -665,8 +665,8 @@ trait NCDslCompilerBase {
val (x1, x2) = arg2()
stack.push(() ⇒ {
- val Z(v1, n1) = x1()
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v1, n1) = x1()
+ val NCIdlStackItem(v2, n2) = x2()
Z(toJList(v1).contains(v2), n1 + n2)
})
@@ -676,8 +676,8 @@ trait NCDslCompilerBase {
val (x1, x2) = arg2()
stack.push(() ⇒ {
- val Z(col, n1) = x1()
- val Z(key, n2) = x2()
+ val NCIdlStackItem(col, n1) = x1()
+ val NCIdlStackItem(key, n2) = x2()
val n = n1 + n2
if (isJList(col)) {
@@ -695,7 +695,7 @@ trait NCDslCompilerBase {
def doAbs(): Unit = arg1() match {
case x ⇒ stack.push(() ⇒ {
- val Z(v, n) = x()
+ val NCIdlStackItem(v, n) = x()
v match {
case a: JLong ⇒ Z(Math.abs(a), n)
@@ -707,7 +707,7 @@ trait NCDslCompilerBase {
def doSquare(): Unit = arg1() match {
case x ⇒ stack.push(() ⇒ {
- val Z(v, n) = x()
+ val NCIdlStackItem(v, n) = x()
v match {
case a: JLong ⇒ Z(a * a, n)
@@ -721,15 +721,15 @@ trait NCDslCompilerBase {
val (x1, x2, x3) = arg3()
stack.push(() ⇒ {
- val Z(v1, n1) = x1()
+ val NCIdlStackItem(v1, n1) = x1()
if (toBool(v1)) {
- val Z(v2, n2) = x2()
+ val NCIdlStackItem(v2, n2) = x2()
Z(v2, n1 + n2)
}
else {
- val Z(v3, n3) = x3()
+ val NCIdlStackItem(v3, n3) = x3()
Z(v3, n1 + n3)
}
@@ -741,8 +741,8 @@ trait NCDslCompilerBase {
val (x1, x2) = arg2()
stack.push(() ⇒ {
- val Z(t, n1) = x1()
- val Z(a, n2) = x2()
+ val NCIdlStackItem(t, n1) = x1()
+ val NCIdlStackItem(a, n2) = x2()
val tok = toToken(t)
val aliasId = toStr(a)
@@ -769,8 +769,8 @@ trait NCDslCompilerBase {
val (x1, x2) = arg2()
stack.push(() ⇒ {
- val Z(t, n1) = x1()
- val Z(a, n2) = x2()
+ val NCIdlStackItem(t, n1) = x1()
+ val NCIdlStackItem(a, n2) = x2()
val tok = toToken(t)
val aliasId = toStr(a)
@@ -784,19 +784,19 @@ trait NCDslCompilerBase {
fun match {
// Metadata access.
- case "meta_part" ⇒ z[(T, T)](arg2, { x ⇒ val Z(v1, n1) = x._1(); val Z(v2, n2) = x._2(); Z(toToken(v1).meta[Object](toStr(v2)), n1 + n2) })
- case "meta_token" ⇒ z[T](arg1, { x ⇒ val Z(v, _) = x(); Z(tok.meta[Object](toStr(v)), 1) })
- case "meta_model" ⇒ z[T](arg1, { x ⇒ val Z(v, _) = x(); Z(tok.getModel.meta[Object](toStr(v)), 0) })
- case "meta_intent" ⇒ z[T](arg1, { x ⇒ val Z(v, _) = x(); Z(termCtx.intentMeta.get(toStr(v)).orNull, 0) })
- case "meta_req" ⇒ z[T](arg1, { x ⇒ val Z(v, _) = x(); Z(termCtx.req.getRequestData.get(toStr(v)), 0) })
- case "meta_user" ⇒ z[T](arg1, { x ⇒ val Z(v, _) = x(); Z(termCtx.req.getUser.getMetadata.get(toStr(v)), 0) })
- case "meta_company" ⇒ z[T](arg1, { x ⇒ val Z(v, _) = x(); Z(termCtx.req.getCompany.getMetadata.get(v), 0) })
- case "meta_sys" ⇒ z[T](arg1, { x ⇒ val Z(v, _) = x(); Z(U.sysEnv(toStr(v)).orNull, 0) })
- case "meta_conv" ⇒ z[T](arg1, { x ⇒ val Z(v, _) = x(); Z(termCtx.convMeta.get(toStr(v)).orNull, 0) })
- case "meta_frag" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(termCtx.fragMeta.get(toStr(v)).orNull, f) })
+ case "meta_part" ⇒ z[(T, T)](arg2, { x ⇒ val NCIdlStackItem(v1, n1) = x._1(); val NCIdlStackItem(v2, n2) = x._2(); Z(toToken(v1).meta[Object](toStr(v2)), n1 + n2) })
+ case "meta_token" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, _) = x(); Z(tok.meta[Object](toStr(v)), 1) })
+ case "meta_model" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, _) = x(); Z(tok.getModel.meta[Object](toStr(v)), 0) })
+ case "meta_intent" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, _) = x(); Z(termCtx.intentMeta.get(toStr(v)).orNull, 0) })
+ case "meta_req" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, _) = x(); Z(termCtx.req.getRequestData.get(toStr(v)), 0) })
+ case "meta_user" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, _) = x(); Z(termCtx.req.getUser.getMetadata.get(toStr(v)), 0) })
+ case "meta_company" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, _) = x(); Z(termCtx.req.getCompany.getMetadata.get(v), 0) })
+ case "meta_sys" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, _) = x(); Z(U.sysEnv(toStr(v)).orNull, 0) })
+ case "meta_conv" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, _) = x(); Z(termCtx.convMeta.get(toStr(v)).orNull, 0) })
+ case "meta_frag" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(termCtx.fragMeta.get(toStr(v)).orNull, f) })
// Converts JSON to map.
- case "json" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(U.jsonToJavaMap(asStr(v)), f) })
+ case "json" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(U.jsonToJavaMap(asStr(v)), f) })
// Inline if-statement.
case "if" ⇒ doIf()
@@ -840,16 +840,16 @@ trait NCDslCompilerBase {
case "comp_postcode" ⇒ z0(() ⇒ Z(termCtx.req.getCompany.getPostalCode, 0))
// String functions.
- case "trim" | "strip" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(toStr(v).trim, f) })
- case "uppercase" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(toStr(v).toUpperCase, f) })
- case "lowercase" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(toStr(v).toLowerCase, f) })
- case "is_alpha" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(StringUtils.isAlpha(toStr(v)), f) })
- case "is_alphanum" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(StringUtils.isAlphanumeric(toStr(v)), f) })
- case "is_whitespace" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(StringUtils.isWhitespace(toStr(v)), f) })
- case "is_num" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(StringUtils.isNumeric(toStr(v)), f) })
- case "is_numspace" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(StringUtils.isNumericSpace(toStr(v)), f) })
- case "is_alphaspace" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(StringUtils.isAlphaSpace(toStr(v)), f) })
- case "is_alphanumspace" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(StringUtils.isAlphanumericSpace(toStr(v)), f) })
+ case "trim" | "strip" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(toStr(v).trim, f) })
+ case "uppercase" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(toStr(v).toUpperCase, f) })
+ case "lowercase" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(toStr(v).toLowerCase, f) })
+ case "is_alpha" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(StringUtils.isAlpha(toStr(v)), f) })
+ case "is_alphanum" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(StringUtils.isAlphanumeric(toStr(v)), f) })
+ case "is_whitespace" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(StringUtils.isWhitespace(toStr(v)), f) })
+ case "is_num" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(StringUtils.isNumeric(toStr(v)), f) })
+ case "is_numspace" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(StringUtils.isNumericSpace(toStr(v)), f) })
+ case "is_alphaspace" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(StringUtils.isAlphaSpace(toStr(v)), f) })
+ case "is_alphanumspace" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(StringUtils.isAlphanumericSpace(toStr(v)), f) })
case "substring" ⇒
case "charAt" ⇒
case "regex" ⇒
@@ -861,35 +861,35 @@ trait NCDslCompilerBase {
// Math functions.
case "abs" ⇒ doAbs()
case "ceil" ⇒ arg1() match { case item ⇒ stack.push(() ⇒ {
- val Z(v, f) = item()
+ val NCIdlStackItem(v, f) = item()
Z(Math.ceil(toJDouble(v)), f)
}) }
- case "floor" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.floor(toJDouble(v)), f) })
- case "rint" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.rint(toJDouble(v)), f) })
- case "round" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.round(toJDouble(v)), f) })
- case "signum" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.signum(toJDouble(v)), f) })
- case "sqrt" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.sqrt(toJDouble(v)), f) })
- case "cbrt" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.cbrt(toJDouble(v)), f) })
- case "acos" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.acos(toJDouble(v)), f) })
- case "asin" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.asin(toJDouble(v)), f) })
- case "atan" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z( Math.atan(toJDouble(v)), f) })
- case "cos" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.cos(toJDouble(v)), f) })
- case "sin" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.sin(toJDouble(v)), f) })
- case "tan" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.tan(toJDouble(v)), f) })
- case "cosh" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.cosh(toJDouble(v)), f) })
- case "sinh" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.sinh(toJDouble(v)), f) })
- case "tanh" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.tanh(toJDouble(v)), f) })
- case "atn2" ⇒ z[(T, T)](arg2, { x ⇒ val Z(v1, n1) = x._1(); val Z(v2, n2) = x._2(); Z(Math.atan2(toJDouble(v1), toJDouble(v2)), n1 + n2) })
- case "degrees" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.toDegrees(toJDouble(v)), f) })
- case "radians" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z( Math.toRadians(toJDouble(v)), f) })
- case "exp" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.exp(toJDouble(v)), f) })
- case "expm1" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.expm1(toJDouble(v)), f) })
- case "hypot" ⇒ z[(T, T)](arg2, { x ⇒ val Z(v1, n1) = x._1(); val Z(v2, n2) = x._2(); Z(Math.hypot(toJDouble(v1), toJDouble(v2)), n1 + n2) })
- case "log" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.log(toJDouble(v)), f) })
- case "log10" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.log10(toJDouble(v)), f) })
- case "log1p" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(Math.log1p(toJDouble(v)), f) })
- case "pow" ⇒ z[(T, T)](arg2, { x ⇒ val Z(v1, f1) = x._1(); val Z(v2, f2) = x._2(); Z(Math.pow(toJDouble(v1), toJDouble(v2)), f1 + f2 + 1) })
+ case "floor" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.floor(toJDouble(v)), f) })
+ case "rint" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.rint(toJDouble(v)), f) })
+ case "round" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.round(toJDouble(v)), f) })
+ case "signum" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.signum(toJDouble(v)), f) })
+ case "sqrt" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.sqrt(toJDouble(v)), f) })
+ case "cbrt" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.cbrt(toJDouble(v)), f) })
+ case "acos" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.acos(toJDouble(v)), f) })
+ case "asin" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.asin(toJDouble(v)), f) })
+ case "atan" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z( Math.atan(toJDouble(v)), f) })
+ case "cos" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.cos(toJDouble(v)), f) })
+ case "sin" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.sin(toJDouble(v)), f) })
+ case "tan" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.tan(toJDouble(v)), f) })
+ case "cosh" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.cosh(toJDouble(v)), f) })
+ case "sinh" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.sinh(toJDouble(v)), f) })
+ case "tanh" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.tanh(toJDouble(v)), f) })
+ case "atn2" ⇒ z[(T, T)](arg2, { x ⇒ val NCIdlStackItem(v1, n1) = x._1(); val NCIdlStackItem(v2, n2) = x._2(); Z(Math.atan2(toJDouble(v1), toJDouble(v2)), n1 + n2) })
+ case "degrees" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.toDegrees(toJDouble(v)), f) })
+ case "radians" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z( Math.toRadians(toJDouble(v)), f) })
+ case "exp" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.exp(toJDouble(v)), f) })
+ case "expm1" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.expm1(toJDouble(v)), f) })
+ case "hypot" ⇒ z[(T, T)](arg2, { x ⇒ val NCIdlStackItem(v1, n1) = x._1(); val NCIdlStackItem(v2, n2) = x._2(); Z(Math.hypot(toJDouble(v1), toJDouble(v2)), n1 + n2) })
+ case "log" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.log(toJDouble(v)), f) })
+ case "log10" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.log10(toJDouble(v)), f) })
+ case "log1p" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(Math.log1p(toJDouble(v)), f) })
+ case "pow" ⇒ z[(T, T)](arg2, { x ⇒ val NCIdlStackItem(v1, f1) = x._1(); val NCIdlStackItem(v2, f2) = x._2(); Z(Math.pow(toJDouble(v1), toJDouble(v2)), f1 + f2 + 1) })
case "square" ⇒ doSquare()
case "pi" ⇒ z0(() ⇒ Z(Math.PI, 0))
case "euler" ⇒ z0(() ⇒ Z(Math.E, 0))
@@ -899,16 +899,16 @@ trait NCDslCompilerBase {
case "list" ⇒ doList()
case "get" ⇒ doGet()
case "has" ⇒ doHas()
- case "first" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); val lst = toJList(v); Z(if (lst.isEmpty) null else lst.get(0).asInstanceOf[Object], f)})
- case "last" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); val lst = toJList(v); Z(if (lst.isEmpty) null else lst.get(lst.size() - 1).asInstanceOf[Object], f)})
- case "keys" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(new util.ArrayList(toJMap(v).keySet()), f) })
- case "values" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(new util.ArrayList(toJMap(v).values()), f) })
- case "size" | "count" | "length" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(toJList(v).size(), f)})
+ case "first" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); val lst = toJList(v); Z(if (lst.isEmpty) null else lst.get(0).asInstanceOf[Object], f)})
+ case "last" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); val lst = toJList(v); Z(if (lst.isEmpty) null else lst.get(lst.size() - 1).asInstanceOf[Object], f)})
+ case "keys" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(new util.ArrayList(toJMap(v).keySet()), f) })
+ case "values" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(new util.ArrayList(toJMap(v).values()), f) })
+ case "size" | "count" | "length" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(toJList(v).size(), f)})
case "reverse" ⇒ doReverse()
case "sort" ⇒ doSort()
- case "is_empty" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(toJList(v).isEmpty, f) })
- case "non_empty" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(!toJList(v).isEmpty, f) })
- case "to_string" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x(); Z(toJList(v).asScala.map(_.toString).asJava, f) })
+ case "is_empty" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(toJList(v).isEmpty, f) })
+ case "non_empty" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(!toJList(v).isEmpty, f) })
+ case "to_string" ⇒ z[T](arg1, { x ⇒ val NCIdlStackItem(v, f) = x(); Z(toJList(v).asScala.map(_.toString).asJava, f) })
// Statistical operations on lists.
case "avg" ⇒
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompilerGlobal.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerGlobal.scala
similarity index 85%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompilerGlobal.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerGlobal.scala
index 4e2e9b9..697dadf 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompilerGlobal.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerGlobal.scala
@@ -21,10 +21,10 @@ import scala.collection.concurrent.TrieMap
import scala.collection.mutable
/**
- * Global DSL compiler state.
+ * Global IDL compiler state.
*/
-object NCDslCompilerGlobal {
- private final val fragCache = TrieMap.empty[String /* Model ID. */ , mutable.Map[String, NCDslFragment]]
+object NCIdlCompilerGlobal {
+ private final val fragCache = TrieMap.empty[String /* Model ID. */ , mutable.Map[String, NCIdlFragment]]
private final val importCache = mutable.HashSet.empty[String]
/**
@@ -47,7 +47,7 @@ object NCDslCompilerGlobal {
*
* @param mdlId
*/
- def clearCache(mdlId: String): Unit = fragCache += mdlId → mutable.HashMap.empty[String, NCDslFragment]
+ def clearCache(mdlId: String): Unit = fragCache += mdlId → mutable.HashMap.empty[String, NCIdlFragment]
/**
*
@@ -67,9 +67,9 @@ object NCDslCompilerGlobal {
* @param mdlId
* @param frag
*/
- def addFragment(mdlId: String, frag: NCDslFragment): Unit =
+ def addFragment(mdlId: String, frag: NCIdlFragment): Unit =
fragCache.getOrElse(mdlId, {
- val m = mutable.HashMap.empty[String, NCDslFragment]
+ val m = mutable.HashMap.empty[String, NCIdlFragment]
fragCache += mdlId → m
@@ -82,6 +82,6 @@ object NCDslCompilerGlobal {
* @param fragId
* @return
*/
- def getFragment(mdlId: String, fragId: String): Option[NCDslFragment] =
+ def getFragment(mdlId: String, fragId: String): Option[NCIdlFragment] =
fragCache.get(mdlId).flatMap(_.get(fragId))
}
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslFragment.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlFragment.scala
similarity index 89%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslFragment.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlFragment.scala
index 66e5daa..1e7fec7 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslFragment.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlFragment.scala
@@ -17,17 +17,17 @@
package org.apache.nlpcraft.model.intent.compiler
-import org.apache.nlpcraft.model.intent.NCDslTerm
+import org.apache.nlpcraft.model.intent.NCIdlTerm
/**
- * DSL fragment.
+ * IDL fragment.
*
* @param id ID of this fragment (must be unique within a model).
* @param terms List of terms this fragment defines.
*/
-case class NCDslFragment(
+case class NCIdlFragment(
id: String,
- terms: List[NCDslTerm]
+ terms: List[NCIdlTerm]
) {
require(id != null)
require(terms.nonEmpty)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslStack.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlStack.scala
similarity index 72%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslStack.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlStack.scala
index f16f7d7..ba36546 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslStack.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlStack.scala
@@ -22,28 +22,28 @@ import scala.collection.mutable
/**
*
*/
-case class NCDslStackItem (
+case class NCIdlStackItem (
value: Object,
tokUse: Int
)
-object NCDslStackItem {
- def apply(v: Boolean, f: Int): NCDslStackItem = new NCDslStackItem(Boolean.box(v), f)
- def apply(v: Long, f: Int): NCDslStackItem = new NCDslStackItem(Long.box(v), f)
- def apply(v: Double, f: Int): NCDslStackItem = new NCDslStackItem(Double.box(v), f)
+object NCIdlStackItem {
+ def apply(v: Boolean, f: Int): NCIdlStackItem = new NCIdlStackItem(Boolean.box(v), f)
+ def apply(v: Long, f: Int): NCIdlStackItem = new NCIdlStackItem(Long.box(v), f)
+ def apply(v: Double, f: Int): NCIdlStackItem = new NCIdlStackItem(Double.box(v), f)
}
/**
*
*/
-trait NCDslStackType extends (() ⇒ NCDslStackItem)
+trait NCIdlStackType extends (() ⇒ NCIdlStackItem)
/**
*
*/
-class NCDslStack extends mutable.ArrayStack[NCDslStackType] {
+class NCIdlStack extends mutable.ArrayStack[NCIdlStackType] {
/**
* Special marker for stack frames.
*/
- final val PLIST_MARKER: NCDslStackType = () ⇒ { NCDslStackItem(null, 0) }
+ final val PLIST_MARKER: NCIdlStackType = () ⇒ { NCIdlStackItem(null, 0) }
}
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdl.interp b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdl.interp
new file mode 100644
index 0000000..d305c17
--- /dev/null
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdl.interp
@@ -0,0 +1,148 @@
+token literal names:
+null
+'import'
+'intent'
+'ordered'
+'flow'
+'meta'
+'term'
+null
+'fragment'
+null
+null
+null
+'null'
+'=='
+'!='
+'>='
+'<='
+'>'
+'<'
+'&&'
+'||'
+'|'
+'!'
+'('
+')'
+'{'
+'}'
+'\''
+'"'
+'~'
+'['
+']'
+'#'
+','
+':'
+'-'
+'.'
+'_'
+'='
+'+'
+'?'
+'*'
+'/'
+'%'
+'$'
+null
+null
+null
+null
+null
+null
+null
+
+token symbolic names:
+null
+null
+null
+null
+null
+null
+null
+FUN_NAME
+FRAG
+SQSTRING
+DQSTRING
+BOOL
+NULL
+EQ
+NEQ
+GTEQ
+LTEQ
+GT
+LT
+AND
+OR
+VERT
+NOT
+LPAR
+RPAR
+LBRACE
+RBRACE
+SQUOTE
+DQUOTE
+TILDA
+LBR
+RBR
+POUND
+COMMA
+COLON
+MINUS
+DOT
+UNDERSCORE
+ASSIGN
+PLUS
+QUESTION
+MULT
+DIV
+MOD
+DOLLAR
+INT
+REAL
+EXP
+ID
+COMMENT
+WS
+ErrorChar
+
+rule names:
+idl
+synonym
+alias
+idlItems
+idlItem
+imp
+frag
+fragId
+fragRef
+fragMeta
+intent
+intentId
+orderedDecl
+mtdDecl
+flowDecl
+metaDecl
+jsonObj
+jsonPair
+jsonVal
+jsonArr
+terms
+termItem
+termEq
+term
+mtdRef
+javaFqn
+termId
+expr
+paramList
+atom
+qstring
+minMax
+minMaxShortcut
+minMaxRange
+id
+
+
+atn:
+[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 53, 338, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, [...]
\ No newline at end of file
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdl.tokens b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdl.tokens
new file mode 100644
index 0000000..5680142
--- /dev/null
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdl.tokens
@@ -0,0 +1,91 @@
+T__0=1
+T__1=2
+T__2=3
+T__3=4
+T__4=5
+T__5=6
+FUN_NAME=7
+FRAG=8
+SQSTRING=9
+DQSTRING=10
+BOOL=11
+NULL=12
+EQ=13
+NEQ=14
+GTEQ=15
+LTEQ=16
+GT=17
+LT=18
+AND=19
+OR=20
+VERT=21
+NOT=22
+LPAR=23
+RPAR=24
+LBRACE=25
+RBRACE=26
+SQUOTE=27
+DQUOTE=28
+TILDA=29
+LBR=30
+RBR=31
+POUND=32
+COMMA=33
+COLON=34
+MINUS=35
+DOT=36
+UNDERSCORE=37
+ASSIGN=38
+PLUS=39
+QUESTION=40
+MULT=41
+DIV=42
+MOD=43
+DOLLAR=44
+INT=45
+REAL=46
+EXP=47
+ID=48
+COMMENT=49
+WS=50
+ErrorChar=51
+'import'=1
+'intent'=2
+'ordered'=3
+'flow'=4
+'meta'=5
+'term'=6
+'fragment'=8
+'null'=12
+'=='=13
+'!='=14
+'>='=15
+'<='=16
+'>'=17
+'<'=18
+'&&'=19
+'||'=20
+'|'=21
+'!'=22
+'('=23
+')'=24
+'{'=25
+'}'=26
+'\''=27
+'"'=28
+'~'=29
+'['=30
+']'=31
+'#'=32
+','=33
+':'=34
+'-'=35
+'.'=36
+'_'=37
+'='=38
+'+'=39
+'?'=40
+'*'=41
+'/'=42
+'%'=43
+'$'=44
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlBaseListener.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlBaseListener.java
new file mode 100644
index 0000000..4661771
--- /dev/null
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlBaseListener.java
@@ -0,0 +1,555 @@
+// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4\NCIntentIdl.g4 by ANTLR 4.9.1
+package org.apache.nlpcraft.model.intent.compiler.antlr4;
+
+import org.antlr.v4.runtime.ParserRuleContext;
+import org.antlr.v4.runtime.tree.ErrorNode;
+import org.antlr.v4.runtime.tree.TerminalNode;
+
+/**
+ * This class provides an empty implementation of {@link NCIntentIdlListener},
+ * which can be extended to create a listener which only needs to handle a subset
+ * of the available methods.
+ */
+public class NCIntentIdlBaseListener implements NCIntentIdlListener {
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterIdl(NCIntentIdlParser.IdlContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitIdl(NCIntentIdlParser.IdlContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterSynonym(NCIntentIdlParser.SynonymContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitSynonym(NCIntentIdlParser.SynonymContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterAlias(NCIntentIdlParser.AliasContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitAlias(NCIntentIdlParser.AliasContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterIdlItems(NCIntentIdlParser.IdlItemsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitIdlItems(NCIntentIdlParser.IdlItemsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterIdlItem(NCIntentIdlParser.IdlItemContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitIdlItem(NCIntentIdlParser.IdlItemContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterImp(NCIntentIdlParser.ImpContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitImp(NCIntentIdlParser.ImpContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterFrag(NCIntentIdlParser.FragContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitFrag(NCIntentIdlParser.FragContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterFragId(NCIntentIdlParser.FragIdContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitFragId(NCIntentIdlParser.FragIdContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterFragRef(NCIntentIdlParser.FragRefContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitFragRef(NCIntentIdlParser.FragRefContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterFragMeta(NCIntentIdlParser.FragMetaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitFragMeta(NCIntentIdlParser.FragMetaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterIntent(NCIntentIdlParser.IntentContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitIntent(NCIntentIdlParser.IntentContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterIntentId(NCIntentIdlParser.IntentIdContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitIntentId(NCIntentIdlParser.IntentIdContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterOrderedDecl(NCIntentIdlParser.OrderedDeclContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitOrderedDecl(NCIntentIdlParser.OrderedDeclContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterMtdDecl(NCIntentIdlParser.MtdDeclContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitMtdDecl(NCIntentIdlParser.MtdDeclContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterFlowDecl(NCIntentIdlParser.FlowDeclContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitFlowDecl(NCIntentIdlParser.FlowDeclContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterMetaDecl(NCIntentIdlParser.MetaDeclContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitMetaDecl(NCIntentIdlParser.MetaDeclContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterJsonObj(NCIntentIdlParser.JsonObjContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitJsonObj(NCIntentIdlParser.JsonObjContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterJsonPair(NCIntentIdlParser.JsonPairContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitJsonPair(NCIntentIdlParser.JsonPairContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterJsonVal(NCIntentIdlParser.JsonValContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitJsonVal(NCIntentIdlParser.JsonValContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterJsonArr(NCIntentIdlParser.JsonArrContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitJsonArr(NCIntentIdlParser.JsonArrContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterTerms(NCIntentIdlParser.TermsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitTerms(NCIntentIdlParser.TermsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterTermItem(NCIntentIdlParser.TermItemContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitTermItem(NCIntentIdlParser.TermItemContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterTermEq(NCIntentIdlParser.TermEqContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitTermEq(NCIntentIdlParser.TermEqContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterTerm(NCIntentIdlParser.TermContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitTerm(NCIntentIdlParser.TermContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterMtdRef(NCIntentIdlParser.MtdRefContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitMtdRef(NCIntentIdlParser.MtdRefContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterJavaFqn(NCIntentIdlParser.JavaFqnContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitJavaFqn(NCIntentIdlParser.JavaFqnContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterTermId(NCIntentIdlParser.TermIdContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitTermId(NCIntentIdlParser.TermIdContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterParExpr(NCIntentIdlParser.ParExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitParExpr(NCIntentIdlParser.ParExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterUnaryExpr(NCIntentIdlParser.UnaryExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitUnaryExpr(NCIntentIdlParser.UnaryExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterCompExpr(NCIntentIdlParser.CompExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitCompExpr(NCIntentIdlParser.CompExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterPlusMinusExpr(NCIntentIdlParser.PlusMinusExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitPlusMinusExpr(NCIntentIdlParser.PlusMinusExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterAtomExpr(NCIntentIdlParser.AtomExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitAtomExpr(NCIntentIdlParser.AtomExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterMultDivModExpr(NCIntentIdlParser.MultDivModExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitMultDivModExpr(NCIntentIdlParser.MultDivModExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterAndOrExpr(NCIntentIdlParser.AndOrExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitAndOrExpr(NCIntentIdlParser.AndOrExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterCallExpr(NCIntentIdlParser.CallExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitCallExpr(NCIntentIdlParser.CallExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterEqNeqExpr(NCIntentIdlParser.EqNeqExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitEqNeqExpr(NCIntentIdlParser.EqNeqExprContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterParamList(NCIntentIdlParser.ParamListContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitParamList(NCIntentIdlParser.ParamListContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterAtom(NCIntentIdlParser.AtomContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitAtom(NCIntentIdlParser.AtomContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterQstring(NCIntentIdlParser.QstringContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitQstring(NCIntentIdlParser.QstringContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterMinMax(NCIntentIdlParser.MinMaxContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitMinMax(NCIntentIdlParser.MinMaxContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterMinMaxShortcut(NCIntentIdlParser.MinMaxShortcutContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitMinMaxShortcut(NCIntentIdlParser.MinMaxShortcutContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterMinMaxRange(NCIntentIdlParser.MinMaxRangeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitMinMaxRange(NCIntentIdlParser.MinMaxRangeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterId(NCIntentIdlParser.IdContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitId(NCIntentIdlParser.IdContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterEveryRule(ParserRuleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitEveryRule(ParserRuleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void visitTerminal(TerminalNode node) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void visitErrorNode(ErrorNode node) { }
+}
\ No newline at end of file
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.interp b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.interp
new file mode 100644
index 0000000..218e2cb
--- /dev/null
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.interp
@@ -0,0 +1,172 @@
+token literal names:
+null
+'import'
+'intent'
+'ordered'
+'flow'
+'meta'
+'term'
+null
+'fragment'
+null
+null
+null
+'null'
+'=='
+'!='
+'>='
+'<='
+'>'
+'<'
+'&&'
+'||'
+'|'
+'!'
+'('
+')'
+'{'
+'}'
+'\''
+'"'
+'~'
+'['
+']'
+'#'
+','
+':'
+'-'
+'.'
+'_'
+'='
+'+'
+'?'
+'*'
+'/'
+'%'
+'$'
+null
+null
+null
+null
+null
+null
+null
+
+token symbolic names:
+null
+null
+null
+null
+null
+null
+null
+FUN_NAME
+FRAG
+SQSTRING
+DQSTRING
+BOOL
+NULL
+EQ
+NEQ
+GTEQ
+LTEQ
+GT
+LT
+AND
+OR
+VERT
+NOT
+LPAR
+RPAR
+LBRACE
+RBRACE
+SQUOTE
+DQUOTE
+TILDA
+LBR
+RBR
+POUND
+COMMA
+COLON
+MINUS
+DOT
+UNDERSCORE
+ASSIGN
+PLUS
+QUESTION
+MULT
+DIV
+MOD
+DOLLAR
+INT
+REAL
+EXP
+ID
+COMMENT
+WS
+ErrorChar
+
+rule names:
+T__0
+T__1
+T__2
+T__3
+T__4
+T__5
+FUN_NAME
+FRAG
+SQSTRING
+DQSTRING
+BOOL
+NULL
+EQ
+NEQ
+GTEQ
+LTEQ
+GT
+LT
+AND
+OR
+VERT
+NOT
+LPAR
+RPAR
+LBRACE
+RBRACE
+SQUOTE
+DQUOTE
+TILDA
+LBR
+RBR
+POUND
+COMMA
+COLON
+MINUS
+DOT
+UNDERSCORE
+ASSIGN
+PLUS
+QUESTION
+MULT
+DIV
+MOD
+DOLLAR
+INT
+REAL
+EXP
+UNI_CHAR
+LETTER
+ID
+COMMENT
+WS
+ErrorChar
+
+channel names:
+DEFAULT_TOKEN_CHANNEL
+HIDDEN
+
+mode names:
+DEFAULT_MODE
+
+atn:
+[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 53, 1185, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, [...]
\ No newline at end of file
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.java
new file mode 100644
index 0000000..70f4bf6
--- /dev/null
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.java
@@ -0,0 +1,568 @@
+// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4\NCIntentIdl.g4 by ANTLR 4.9.1
+package org.apache.nlpcraft.model.intent.compiler.antlr4;
+import org.antlr.v4.runtime.Lexer;
+import org.antlr.v4.runtime.CharStream;
+import org.antlr.v4.runtime.Token;
+import org.antlr.v4.runtime.TokenStream;
+import org.antlr.v4.runtime.*;
+import org.antlr.v4.runtime.atn.*;
+import org.antlr.v4.runtime.dfa.DFA;
+import org.antlr.v4.runtime.misc.*;
+
+@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
+public class NCIntentIdlLexer extends Lexer {
+ static { RuntimeMetaData.checkVersion("4.9.1", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
+ public static final int
+ T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, FUN_NAME=7, FRAG=8, SQSTRING=9,
+ DQSTRING=10, BOOL=11, NULL=12, EQ=13, NEQ=14, GTEQ=15, LTEQ=16, GT=17,
+ LT=18, AND=19, OR=20, VERT=21, NOT=22, LPAR=23, RPAR=24, LBRACE=25, RBRACE=26,
+ SQUOTE=27, DQUOTE=28, TILDA=29, LBR=30, RBR=31, POUND=32, COMMA=33, COLON=34,
+ MINUS=35, DOT=36, UNDERSCORE=37, ASSIGN=38, PLUS=39, QUESTION=40, MULT=41,
+ DIV=42, MOD=43, DOLLAR=44, INT=45, REAL=46, EXP=47, ID=48, COMMENT=49,
+ WS=50, ErrorChar=51;
+ public static String[] channelNames = {
+ "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
+ };
+
+ public static String[] modeNames = {
+ "DEFAULT_MODE"
+ };
+
+ private static String[] makeRuleNames() {
+ return new String[] {
+ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "FUN_NAME", "FRAG", "SQSTRING",
+ "DQSTRING", "BOOL", "NULL", "EQ", "NEQ", "GTEQ", "LTEQ", "GT", "LT",
+ "AND", "OR", "VERT", "NOT", "LPAR", "RPAR", "LBRACE", "RBRACE", "SQUOTE",
+ "DQUOTE", "TILDA", "LBR", "RBR", "POUND", "COMMA", "COLON", "MINUS",
+ "DOT", "UNDERSCORE", "ASSIGN", "PLUS", "QUESTION", "MULT", "DIV", "MOD",
+ "DOLLAR", "INT", "REAL", "EXP", "UNI_CHAR", "LETTER", "ID", "COMMENT",
+ "WS", "ErrorChar"
+ };
+ }
+ public static final String[] ruleNames = makeRuleNames();
+
+ private static String[] makeLiteralNames() {
+ return new String[] {
+ null, "'import'", "'intent'", "'ordered'", "'flow'", "'meta'", "'term'",
+ null, "'fragment'", null, null, null, "'null'", "'=='", "'!='", "'>='",
+ "'<='", "'>'", "'<'", "'&&'", "'||'", "'|'", "'!'", "'('", "')'", "'{'",
+ "'}'", "'''", "'\"'", "'~'", "'['", "']'", "'#'", "','", "':'", "'-'",
+ "'.'", "'_'", "'='", "'+'", "'?'", "'*'", "'/'", "'%'", "'$'"
+ };
+ }
+ private static final String[] _LITERAL_NAMES = makeLiteralNames();
+ private static String[] makeSymbolicNames() {
+ return new String[] {
+ null, null, null, null, null, null, null, "FUN_NAME", "FRAG", "SQSTRING",
+ "DQSTRING", "BOOL", "NULL", "EQ", "NEQ", "GTEQ", "LTEQ", "GT", "LT",
+ "AND", "OR", "VERT", "NOT", "LPAR", "RPAR", "LBRACE", "RBRACE", "SQUOTE",
+ "DQUOTE", "TILDA", "LBR", "RBR", "POUND", "COMMA", "COLON", "MINUS",
+ "DOT", "UNDERSCORE", "ASSIGN", "PLUS", "QUESTION", "MULT", "DIV", "MOD",
+ "DOLLAR", "INT", "REAL", "EXP", "ID", "COMMENT", "WS", "ErrorChar"
+ };
+ }
+ private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
+ public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
+
+ /**
+ * @deprecated Use {@link #VOCABULARY} instead.
+ */
+ @Deprecated
+ public static final String[] tokenNames;
+ static {
+ tokenNames = new String[_SYMBOLIC_NAMES.length];
+ for (int i = 0; i < tokenNames.length; i++) {
+ tokenNames[i] = VOCABULARY.getLiteralName(i);
+ if (tokenNames[i] == null) {
+ tokenNames[i] = VOCABULARY.getSymbolicName(i);
+ }
+
+ if (tokenNames[i] == null) {
+ tokenNames[i] = "<INVALID>";
+ }
+ }
+ }
+
+ @Override
+ @Deprecated
+ public String[] getTokenNames() {
+ return tokenNames;
+ }
+
+ @Override
+
+ public Vocabulary getVocabulary() {
+ return VOCABULARY;
+ }
+
+
+ public NCIntentIdlLexer(CharStream input) {
+ super(input);
+ _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
+ }
+
+ @Override
+ public String getGrammarFileName() { return "NCIntentIdl.g4"; }
+
+ @Override
+ public String[] getRuleNames() { return ruleNames; }
+
+ @Override
+ public String getSerializedATN() { return _serializedATN; }
+
+ @Override
+ public String[] getChannelNames() { return channelNames; }
+
+ @Override
+ public String[] getModeNames() { return modeNames; }
+
+ @Override
+ public ATN getATN() { return _ATN; }
+
+ public static final String _serializedATN =
+ "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\65\u04a1\b\1\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*\4+\t"+
+ "+\4,\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64"+
+ "\t\64\4\65\t\65\4\66\t\66\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3"+
+ "\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\6\3"+
+ "\6\3\6\3\6\3\6\3\7\3\7\3\7\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\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\5\b\u03d6\n\b\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\n\3"+
+ "\n\3\n\3\n\7\n\u03e5\n\n\f\n\16\n\u03e8\13\n\3\n\3\n\3\13\3\13\3\13\3"+
+ "\13\7\13\u03f0\n\13\f\13\16\13\u03f3\13\13\3\13\3\13\3\f\3\f\3\f\3\f\3"+
+ "\f\3\f\3\f\3\f\3\f\5\f\u0400\n\f\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3"+
+ "\17\3\17\3\17\3\20\3\20\3\20\3\21\3\21\3\21\3\22\3\22\3\23\3\23\3\24\3"+
+ "\24\3\24\3\25\3\25\3\25\3\26\3\26\3\27\3\27\3\30\3\30\3\31\3\31\3\32\3"+
+ "\32\3\33\3\33\3\34\3\34\3\35\3\35\3\36\3\36\3\37\3\37\3 \3 \3!\3!\3\""+
+ "\3\"\3#\3#\3$\3$\3%\3%\3&\3&\3\'\3\'\3(\3(\3)\3)\3*\3*\3+\3+\3,\3,\3-"+
+ "\3-\3.\3.\3.\7.\u0450\n.\f.\16.\u0453\13.\5.\u0455\n.\3/\3/\6/\u0459\n"+
+ "/\r/\16/\u045a\3\60\3\60\5\60\u045f\n\60\3\60\3\60\3\61\3\61\3\62\3\62"+
+ "\3\63\3\63\3\63\3\63\6\63\u046b\n\63\r\63\16\63\u046c\3\63\3\63\3\63\3"+
+ "\63\3\63\3\63\3\63\7\63\u0476\n\63\f\63\16\63\u0479\13\63\3\64\3\64\3"+
+ "\64\3\64\7\64\u047f\n\64\f\64\16\64\u0482\13\64\3\64\5\64\u0485\n\64\3"+
+ "\64\5\64\u0488\n\64\3\64\3\64\3\64\3\64\7\64\u048e\n\64\f\64\16\64\u0491"+
+ "\13\64\3\64\3\64\5\64\u0495\n\64\3\64\3\64\3\65\6\65\u049a\n\65\r\65\16"+
+ "\65\u049b\3\65\3\65\3\66\3\66\3\u048f\2\67\3\3\5\4\7\5\t\6\13\7\r\b\17"+
+ "\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+"+
+ "\27-\30/\31\61\32\63\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+"+
+ "U,W-Y.[/]\60_\61a\2c\2e\62g\63i\64k\65\3\2\16\3\2))\3\2$$\3\2\63;\4\2"+
+ "\62;aa\3\2\62;\4\2GGgg\4\2--//\17\2\u00a2\u0251\u025b\u0294\u02b2\u0371"+
+ "\u0402\u0501\u1e04\u1ef5\u1f03\u2001\u200e\u200f\u2041\u2042\u2072\u2191"+
+ "\u2c02\u2ff1\u3003\ud801\uf902\ufdd1\ufdf2\uffff\4\2C\\c|\4\2\f\f\17\17"+
+ "\3\3\f\f\5\2\13\f\16\17\"\"\2\u0531\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2"+
+ "\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23"+
+ "\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2"+
+ "\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2"+
+ "\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3"+
+ "\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2"+
+ "\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2"+
+ "\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2["+
+ "\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2"+
+ "\2\2\3m\3\2\2\2\5t\3\2\2\2\7{\3\2\2\2\t\u0083\3\2\2\2\13\u0088\3\2\2\2"+
+ "\r\u008d\3\2\2\2\17\u03d5\3\2\2\2\21\u03d7\3\2\2\2\23\u03e0\3\2\2\2\25"+
+ "\u03eb\3\2\2\2\27\u03ff\3\2\2\2\31\u0401\3\2\2\2\33\u0406\3\2\2\2\35\u0409"+
+ "\3\2\2\2\37\u040c\3\2\2\2!\u040f\3\2\2\2#\u0412\3\2\2\2%\u0414\3\2\2\2"+
+ "\'\u0416\3\2\2\2)\u0419\3\2\2\2+\u041c\3\2\2\2-\u041e\3\2\2\2/\u0420\3"+
+ "\2\2\2\61\u0422\3\2\2\2\63\u0424\3\2\2\2\65\u0426\3\2\2\2\67\u0428\3\2"+
+ "\2\29\u042a\3\2\2\2;\u042c\3\2\2\2=\u042e\3\2\2\2?\u0430\3\2\2\2A\u0432"+
+ "\3\2\2\2C\u0434\3\2\2\2E\u0436\3\2\2\2G\u0438\3\2\2\2I\u043a\3\2\2\2K"+
+ "\u043c\3\2\2\2M\u043e\3\2\2\2O\u0440\3\2\2\2Q\u0442\3\2\2\2S\u0444\3\2"+
+ "\2\2U\u0446\3\2\2\2W\u0448\3\2\2\2Y\u044a\3\2\2\2[\u0454\3\2\2\2]\u0456"+
+ "\3\2\2\2_\u045c\3\2\2\2a\u0462\3\2\2\2c\u0464\3\2\2\2e\u046a\3\2\2\2g"+
+ "\u0494\3\2\2\2i\u0499\3\2\2\2k\u049f\3\2\2\2mn\7k\2\2no\7o\2\2op\7r\2"+
+ "\2pq\7q\2\2qr\7t\2\2rs\7v\2\2s\4\3\2\2\2tu\7k\2\2uv\7p\2\2vw\7v\2\2wx"+
+ "\7g\2\2xy\7p\2\2yz\7v\2\2z\6\3\2\2\2{|\7q\2\2|}\7t\2\2}~\7f\2\2~\177\7"+
+ "g\2\2\177\u0080\7t\2\2\u0080\u0081\7g\2\2\u0081\u0082\7f\2\2\u0082\b\3"+
+ "\2\2\2\u0083\u0084\7h\2\2\u0084\u0085\7n\2\2\u0085\u0086\7q\2\2\u0086"+
+ "\u0087\7y\2\2\u0087\n\3\2\2\2\u0088\u0089\7o\2\2\u0089\u008a\7g\2\2\u008a"+
+ "\u008b\7v\2\2\u008b\u008c\7c\2\2\u008c\f\3\2\2\2\u008d\u008e\7v\2\2\u008e"+
+ "\u008f\7g\2\2\u008f\u0090\7t\2\2\u0090\u0091\7o\2\2\u0091\16\3\2\2\2\u0092"+
+ "\u0093\7o\2\2\u0093\u0094\7g\2\2\u0094\u0095\7v\2\2\u0095\u0096\7c\2\2"+
+ "\u0096\u0097\7a\2\2\u0097\u0098\7v\2\2\u0098\u0099\7q\2\2\u0099\u009a"+
+ "\7m\2\2\u009a\u009b\7g\2\2\u009b\u03d6\7p\2\2\u009c\u009d\7o\2\2\u009d"+
+ "\u009e\7g\2\2\u009e\u009f\7v\2\2\u009f\u00a0\7c\2\2\u00a0\u00a1\7a\2\2"+
+ "\u00a1\u00a2\7r\2\2\u00a2\u00a3\7c\2\2\u00a3\u00a4\7t\2\2\u00a4\u03d6"+
+ "\7v\2\2\u00a5\u00a6\7o\2\2\u00a6\u00a7\7g\2\2\u00a7\u00a8\7v\2\2\u00a8"+
+ "\u00a9\7c\2\2\u00a9\u00aa\7a\2\2\u00aa\u00ab\7o\2\2\u00ab\u00ac\7q\2\2"+
+ "\u00ac\u00ad\7f\2\2\u00ad\u00ae\7g\2\2\u00ae\u03d6\7n\2\2\u00af\u00b0"+
+ "\7o\2\2\u00b0\u00b1\7g\2\2\u00b1\u00b2\7v\2\2\u00b2\u00b3\7c\2\2\u00b3"+
+ "\u00b4\7a\2\2\u00b4\u00b5\7k\2\2\u00b5\u00b6\7p\2\2\u00b6\u00b7\7v\2\2"+
+ "\u00b7\u00b8\7g\2\2\u00b8\u00b9\7p\2\2\u00b9\u03d6\7v\2\2\u00ba\u00bb"+
+ "\7o\2\2\u00bb\u00bc\7g\2\2\u00bc\u00bd\7v\2\2\u00bd\u00be\7c\2\2\u00be"+
+ "\u00bf\7a\2\2\u00bf\u00c0\7t\2\2\u00c0\u00c1\7g\2\2\u00c1\u03d6\7s\2\2"+
+ "\u00c2\u00c3\7o\2\2\u00c3\u00c4\7g\2\2\u00c4\u00c5\7v\2\2\u00c5\u00c6"+
+ "\7c\2\2\u00c6\u00c7\7a\2\2\u00c7\u00c8\7w\2\2\u00c8\u00c9\7u\2\2\u00c9"+
+ "\u00ca\7g\2\2\u00ca\u03d6\7t\2\2\u00cb\u00cc\7o\2\2\u00cc\u00cd\7g\2\2"+
+ "\u00cd\u00ce\7v\2\2\u00ce\u00cf\7c\2\2\u00cf\u00d0\7a\2\2\u00d0\u00d1"+
+ "\7e\2\2\u00d1\u00d2\7q\2\2\u00d2\u00d3\7o\2\2\u00d3\u00d4\7r\2\2\u00d4"+
+ "\u00d5\7c\2\2\u00d5\u00d6\7p\2\2\u00d6\u03d6\7{\2\2\u00d7\u00d8\7o\2\2"+
+ "\u00d8\u00d9\7g\2\2\u00d9\u00da\7v\2\2\u00da\u00db\7c\2\2\u00db\u00dc"+
+ "\7a\2\2\u00dc\u00dd\7u\2\2\u00dd\u00de\7{\2\2\u00de\u03d6\7u\2\2\u00df"+
+ "\u00e0\7o\2\2\u00e0\u00e1\7g\2\2\u00e1\u00e2\7v\2\2\u00e2\u00e3\7c\2\2"+
+ "\u00e3\u00e4\7a\2\2\u00e4\u00e5\7e\2\2\u00e5\u00e6\7q\2\2\u00e6\u00e7"+
+ "\7p\2\2\u00e7\u03d6\7x\2\2\u00e8\u00e9\7o\2\2\u00e9\u00ea\7g\2\2\u00ea"+
+ "\u00eb\7v\2\2\u00eb\u00ec\7c\2\2\u00ec\u00ed\7a\2\2\u00ed\u00ee\7h\2\2"+
+ "\u00ee\u00ef\7t\2\2\u00ef\u00f0\7c\2\2\u00f0\u03d6\7i\2\2\u00f1\u00f2"+
+ "\7l\2\2\u00f2\u00f3\7u\2\2\u00f3\u00f4\7q\2\2\u00f4\u03d6\7p\2\2\u00f5"+
+ "\u00f6\7k\2\2\u00f6\u03d6\7h\2\2\u00f7\u00f8\7k\2\2\u00f8\u03d6\7f\2\2"+
+ "\u00f9\u00fa\7v\2\2\u00fa\u00fb\7j\2\2\u00fb\u00fc\7k\2\2\u00fc\u03d6"+
+ "\7u\2\2\u00fd\u00fe\7r\2\2\u00fe\u00ff\7c\2\2\u00ff\u0100\7t\2\2\u0100"+
+ "\u03d6\7v\2\2\u0101\u0102\7r\2\2\u0102\u0103\7c\2\2\u0103\u0104\7t\2\2"+
+ "\u0104\u0105\7v\2\2\u0105\u03d6\7u\2\2\u0106\u0107\7c\2\2\u0107\u0108"+
+ "\7p\2\2\u0108\u0109\7e\2\2\u0109\u010a\7g\2\2\u010a\u010b\7u\2\2\u010b"+
+ "\u010c\7v\2\2\u010c\u010d\7q\2\2\u010d\u010e\7t\2\2\u010e\u03d6\7u\2\2"+
+ "\u010f\u0110\7r\2\2\u0110\u0111\7c\2\2\u0111\u0112\7t\2\2\u0112\u0113"+
+ "\7g\2\2\u0113\u0114\7p\2\2\u0114\u03d6\7v\2\2\u0115\u0116\7i\2\2\u0116"+
+ "\u0117\7t\2\2\u0117\u0118\7q\2\2\u0118\u0119\7w\2\2\u0119\u011a\7r\2\2"+
+ "\u011a\u03d6\7u\2\2\u011b\u011c\7x\2\2\u011c\u011d\7c\2\2\u011d\u011e"+
+ "\7n\2\2\u011e\u011f\7w\2\2\u011f\u03d6\7g\2\2\u0120\u0121\7c\2\2\u0121"+
+ "\u0122\7n\2\2\u0122\u0123\7k\2\2\u0123\u0124\7c\2\2\u0124\u0125\7u\2\2"+
+ "\u0125\u0126\7g\2\2\u0126\u03d6\7u\2\2\u0127\u0128\7u\2\2\u0128\u0129"+
+ "\7v\2\2\u0129\u012a\7c\2\2\u012a\u012b\7t\2\2\u012b\u012c\7v\2\2\u012c"+
+ "\u012d\7a\2\2\u012d\u012e\7k\2\2\u012e\u012f\7f\2\2\u012f\u03d6\7z\2\2"+
+ "\u0130\u0131\7g\2\2\u0131\u0132\7p\2\2\u0132\u0133\7f\2\2\u0133\u0134"+
+ "\7a\2\2\u0134\u0135\7k\2\2\u0135\u0136\7f\2\2\u0136\u03d6\7z\2\2\u0137"+
+ "\u0138\7t\2\2\u0138\u0139\7g\2\2\u0139\u013a\7s\2\2\u013a\u013b\7a\2\2"+
+ "\u013b\u013c\7k\2\2\u013c\u03d6\7f\2\2\u013d\u013e\7t\2\2\u013e\u013f"+
+ "\7g\2\2\u013f\u0140\7s\2\2\u0140\u0141\7a\2\2\u0141\u0142\7p\2\2\u0142"+
+ "\u0143\7q\2\2\u0143\u0144\7t\2\2\u0144\u0145\7o\2\2\u0145\u0146\7v\2\2"+
+ "\u0146\u0147\7g\2\2\u0147\u0148\7z\2\2\u0148\u03d6\7v\2\2\u0149\u014a"+
+ "\7t\2\2\u014a\u014b\7g\2\2\u014b\u014c\7s\2\2\u014c\u014d\7a\2\2\u014d"+
+ "\u014e\7v\2\2\u014e\u014f\7u\2\2\u014f\u0150\7v\2\2\u0150\u0151\7c\2\2"+
+ "\u0151\u0152\7o\2\2\u0152\u03d6\7r\2\2\u0153\u0154\7t\2\2\u0154\u0155"+
+ "\7g\2\2\u0155\u0156\7s\2\2\u0156\u0157\7a\2\2\u0157\u0158\7c\2\2\u0158"+
+ "\u0159\7f\2\2\u0159\u015a\7f\2\2\u015a\u03d6\7t\2\2\u015b\u015c\7t\2\2"+
+ "\u015c\u015d\7g\2\2\u015d\u015e\7s\2\2\u015e\u015f\7a\2\2\u015f\u0160"+
+ "\7c\2\2\u0160\u0161\7i\2\2\u0161\u0162\7g\2\2\u0162\u0163\7p\2\2\u0163"+
+ "\u03d6\7v\2\2\u0164\u0165\7w\2\2\u0165\u0166\7u\2\2\u0166\u0167\7g\2\2"+
+ "\u0167\u0168\7t\2\2\u0168\u0169\7a\2\2\u0169\u016a\7k\2\2\u016a\u03d6"+
+ "\7f\2\2\u016b\u016c\7w\2\2\u016c\u016d\7u\2\2\u016d\u016e\7g\2\2\u016e"+
+ "\u016f\7t\2\2\u016f\u0170\7a\2\2\u0170\u0171\7h\2\2\u0171\u0172\7p\2\2"+
+ "\u0172\u0173\7c\2\2\u0173\u0174\7o\2\2\u0174\u03d6\7g\2\2\u0175\u0176"+
+ "\7w\2\2\u0176\u0177\7u\2\2\u0177\u0178\7g\2\2\u0178\u0179\7t\2\2\u0179"+
+ "\u017a\7a\2\2\u017a\u017b\7n\2\2\u017b\u017c\7p\2\2\u017c\u017d\7c\2\2"+
+ "\u017d\u017e\7o\2\2\u017e\u03d6\7g\2\2\u017f\u0180\7w\2\2\u0180\u0181"+
+ "\7u\2\2\u0181\u0182\7g\2\2\u0182\u0183\7t\2\2\u0183\u0184\7a\2\2\u0184"+
+ "\u0185\7g\2\2\u0185\u0186\7o\2\2\u0186\u0187\7c\2\2\u0187\u0188\7k\2\2"+
+ "\u0188\u03d6\7n\2\2\u0189\u018a\7w\2\2\u018a\u018b\7u\2\2\u018b\u018c"+
+ "\7g\2\2\u018c\u018d\7t\2\2\u018d\u018e\7a\2\2\u018e\u018f\7c\2\2\u018f"+
+ "\u0190\7f\2\2\u0190\u0191\7o\2\2\u0191\u0192\7k\2\2\u0192\u03d6\7p\2\2"+
+ "\u0193\u0194\7w\2\2\u0194\u0195\7u\2\2\u0195\u0196\7g\2\2\u0196\u0197"+
+ "\7t\2\2\u0197\u0198\7a\2\2\u0198\u0199\7u\2\2\u0199\u019a\7k\2\2\u019a"+
+ "\u019b\7i\2\2\u019b\u019c\7p\2\2\u019c\u019d\7w\2\2\u019d\u019e\7r\2\2"+
+ "\u019e\u019f\7a\2\2\u019f\u01a0\7v\2\2\u01a0\u01a1\7u\2\2\u01a1\u01a2"+
+ "\7v\2\2\u01a2\u01a3\7c\2\2\u01a3\u01a4\7o\2\2\u01a4\u03d6\7r\2\2\u01a5"+
+ "\u01a6\7e\2\2\u01a6\u01a7\7q\2\2\u01a7\u01a8\7o\2\2\u01a8\u01a9\7r\2\2"+
+ "\u01a9\u01aa\7a\2\2\u01aa\u01ab\7k\2\2\u01ab\u03d6\7f\2\2\u01ac\u01ad"+
+ "\7e\2\2\u01ad\u01ae\7q\2\2\u01ae\u01af\7o\2\2\u01af\u01b0\7r\2\2\u01b0"+
+ "\u01b1\7a\2\2\u01b1\u01b2\7p\2\2\u01b2\u01b3\7c\2\2\u01b3\u01b4\7o\2\2"+
+ "\u01b4\u03d6\7g\2\2\u01b5\u01b6\7e\2\2\u01b6\u01b7\7q\2\2\u01b7\u01b8"+
+ "\7o\2\2\u01b8\u01b9\7r\2\2\u01b9\u01ba\7a\2\2\u01ba\u01bb\7y\2\2\u01bb"+
+ "\u01bc\7g\2\2\u01bc\u01bd\7d\2\2\u01bd\u01be\7u\2\2\u01be\u01bf\7k\2\2"+
+ "\u01bf\u01c0\7v\2\2\u01c0\u03d6\7g\2\2\u01c1\u01c2\7e\2\2\u01c2\u01c3"+
+ "\7q\2\2\u01c3\u01c4\7o\2\2\u01c4\u01c5\7r\2\2\u01c5\u01c6\7a\2\2\u01c6"+
+ "\u01c7\7e\2\2\u01c7\u01c8\7q\2\2\u01c8\u01c9\7w\2\2\u01c9\u01ca\7p\2\2"+
+ "\u01ca\u01cb\7v\2\2\u01cb\u01cc\7t\2\2\u01cc\u03d6\7{\2\2\u01cd\u01ce"+
+ "\7e\2\2\u01ce\u01cf\7q\2\2\u01cf\u01d0\7o\2\2\u01d0\u01d1\7r\2\2\u01d1"+
+ "\u01d2\7a\2\2\u01d2\u01d3\7t\2\2\u01d3\u01d4\7g\2\2\u01d4\u01d5\7i\2\2"+
+ "\u01d5\u01d6\7k\2\2\u01d6\u01d7\7q\2\2\u01d7\u03d6\7p\2\2\u01d8\u01d9"+
+ "\7e\2\2\u01d9\u01da\7q\2\2\u01da\u01db\7o\2\2\u01db\u01dc\7r\2\2\u01dc"+
+ "\u01dd\7a\2\2\u01dd\u01de\7e\2\2\u01de\u01df\7k\2\2\u01df\u01e0\7v\2\2"+
+ "\u01e0\u03d6\7{\2\2\u01e1\u01e2\7e\2\2\u01e2\u01e3\7q\2\2\u01e3\u01e4"+
+ "\7o\2\2\u01e4\u01e5\7r\2\2\u01e5\u01e6\7a\2\2\u01e6\u01e7\7c\2\2\u01e7"+
+ "\u01e8\7f\2\2\u01e8\u01e9\7f\2\2\u01e9\u03d6\7t\2\2\u01ea\u01eb\7e\2\2"+
+ "\u01eb\u01ec\7q\2\2\u01ec\u01ed\7o\2\2\u01ed\u01ee\7r\2\2\u01ee\u01ef"+
+ "\7a\2\2\u01ef\u01f0\7r\2\2\u01f0\u01f1\7q\2\2\u01f1\u01f2\7u\2\2\u01f2"+
+ "\u01f3\7v\2\2\u01f3\u01f4\7e\2\2\u01f4\u01f5\7q\2\2\u01f5\u01f6\7f\2\2"+
+ "\u01f6\u03d6\7g\2\2\u01f7\u01f8\7v\2\2\u01f8\u01f9\7t\2\2\u01f9\u01fa"+
+ "\7k\2\2\u01fa\u03d6\7o\2\2\u01fb\u01fc\7u\2\2\u01fc\u01fd\7v\2\2\u01fd"+
+ "\u01fe\7t\2\2\u01fe\u01ff\7k\2\2\u01ff\u03d6\7r\2\2\u0200\u0201\7w\2\2"+
+ "\u0201\u0202\7r\2\2\u0202\u0203\7r\2\2\u0203\u0204\7g\2\2\u0204\u0205"+
+ "\7t\2\2\u0205\u0206\7e\2\2\u0206\u0207\7c\2\2\u0207\u0208\7u\2\2\u0208"+
+ "\u03d6\7g\2\2\u0209\u020a\7n\2\2\u020a\u020b\7q\2\2\u020b\u020c\7y\2\2"+
+ "\u020c\u020d\7g\2\2\u020d\u020e\7t\2\2\u020e\u020f\7e\2\2\u020f\u0210"+
+ "\7c\2\2\u0210\u0211\7u\2\2\u0211\u03d6\7g\2\2\u0212\u0213\7k\2\2\u0213"+
+ "\u0214\7u\2\2\u0214\u0215\7a\2\2\u0215\u0216\7c\2\2\u0216\u0217\7n\2\2"+
+ "\u0217\u0218\7r\2\2\u0218\u0219\7j\2\2\u0219\u03d6\7c\2\2\u021a\u021b"+
+ "\7k\2\2\u021b\u021c\7u\2\2\u021c\u021d\7a\2\2\u021d\u021e\7c\2\2\u021e"+
+ "\u021f\7n\2\2\u021f\u0220\7r\2\2\u0220\u0221\7j\2\2\u0221\u0222\7c\2\2"+
+ "\u0222\u0223\7p\2\2\u0223\u0224\7w\2\2\u0224\u03d6\7o\2\2\u0225\u0226"+
+ "\7k\2\2\u0226\u0227\7u\2\2\u0227\u0228\7a\2\2\u0228\u0229\7y\2\2\u0229"+
+ "\u022a\7j\2\2\u022a\u022b\7k\2\2\u022b\u022c\7v\2\2\u022c\u022d\7g\2\2"+
+ "\u022d\u022e\7u\2\2\u022e\u022f\7r\2\2\u022f\u0230\7c\2\2\u0230\u0231"+
+ "\7e\2\2\u0231\u03d6\7g\2\2\u0232\u0233\7k\2\2\u0233\u0234\7u\2\2\u0234"+
+ "\u0235\7a\2\2\u0235\u0236\7p\2\2\u0236\u0237\7w\2\2\u0237\u03d6\7o\2\2"+
+ "\u0238\u0239\7k\2\2\u0239\u023a\7u\2\2\u023a\u023b\7a\2\2\u023b\u023c"+
+ "\7p\2\2\u023c\u023d\7w\2\2\u023d\u023e\7o\2\2\u023e\u023f\7u\2\2\u023f"+
+ "\u0240\7r\2\2\u0240\u0241\7c\2\2\u0241\u0242\7e\2\2\u0242\u03d6\7g\2\2"+
+ "\u0243\u0244\7k\2\2\u0244\u0245\7u\2\2\u0245\u0246\7a\2\2\u0246\u0247"+
+ "\7c\2\2\u0247\u0248\7n\2\2\u0248\u0249\7r\2\2\u0249\u024a\7j\2\2\u024a"+
+ "\u024b\7c\2\2\u024b\u024c\7u\2\2\u024c\u024d\7r\2\2\u024d\u024e\7c\2\2"+
+ "\u024e\u024f\7e\2\2\u024f\u03d6\7g\2\2\u0250\u0251\7k\2\2\u0251\u0252"+
+ "\7u\2\2\u0252\u0253\7a\2\2\u0253\u0254\7c\2\2\u0254\u0255\7n\2\2\u0255"+
+ "\u0256\7r\2\2\u0256\u0257\7j\2\2\u0257\u0258\7c\2\2\u0258\u0259\7p\2\2"+
+ "\u0259\u025a\7w\2\2\u025a\u025b\7o\2\2\u025b\u025c\7u\2\2\u025c\u025d"+
+ "\7r\2\2\u025d\u025e\7c\2\2\u025e\u025f\7e\2\2\u025f\u03d6\7g\2\2\u0260"+
+ "\u0261\7u\2\2\u0261\u0262\7w\2\2\u0262\u0263\7d\2\2\u0263\u0264\7u\2\2"+
+ "\u0264\u0265\7v\2\2\u0265\u0266\7t\2\2\u0266\u0267\7k\2\2\u0267\u0268"+
+ "\7p\2\2\u0268\u03d6\7i\2\2\u0269\u026a\7e\2\2\u026a\u026b\7j\2\2\u026b"+
+ "\u026c\7c\2\2\u026c\u026d\7t\2\2\u026d\u026e\7C\2\2\u026e\u03d6\7v\2\2"+
+ "\u026f\u0270\7t\2\2\u0270\u0271\7g\2\2\u0271\u0272\7i\2\2\u0272\u0273"+
+ "\7g\2\2\u0273\u03d6\7z\2\2\u0274\u0275\7u\2\2\u0275\u0276\7q\2\2\u0276"+
+ "\u0277\7w\2\2\u0277\u0278\7p\2\2\u0278\u0279\7f\2\2\u0279\u027a\7g\2\2"+
+ "\u027a\u03d6\7z\2\2\u027b\u027c\7u\2\2\u027c\u027d\7r\2\2\u027d\u027e"+
+ "\7n\2\2\u027e\u027f\7k\2\2\u027f\u03d6\7v\2\2\u0280\u0281\7u\2\2\u0281"+
+ "\u0282\7r\2\2\u0282\u0283\7n\2\2\u0283\u0284\7k\2\2\u0284\u0285\7v\2\2"+
+ "\u0285\u0286\7a\2\2\u0286\u0287\7v\2\2\u0287\u0288\7t\2\2\u0288\u0289"+
+ "\7k\2\2\u0289\u03d6\7o\2\2\u028a\u028b\7t\2\2\u028b\u028c\7g\2\2\u028c"+
+ "\u028d\7r\2\2\u028d\u028e\7n\2\2\u028e\u028f\7c\2\2\u028f\u0290\7e\2\2"+
+ "\u0290\u03d6\7g\2\2\u0291\u0292\7c\2\2\u0292\u0293\7d\2\2\u0293\u03d6"+
+ "\7u\2\2\u0294\u0295\7e\2\2\u0295\u0296\7g\2\2\u0296\u0297\7k\2\2\u0297"+
+ "\u03d6\7n\2\2\u0298\u0299\7h\2\2\u0299\u029a\7n\2\2\u029a\u029b\7q\2\2"+
+ "\u029b\u029c\7q\2\2\u029c\u03d6\7t\2\2\u029d\u029e\7t\2\2\u029e\u029f"+
+ "\7k\2\2\u029f\u02a0\7p\2\2\u02a0\u03d6\7v\2\2\u02a1\u02a2\7t\2\2\u02a2"+
+ "\u02a3\7q\2\2\u02a3\u02a4\7w\2\2\u02a4\u02a5\7p\2\2\u02a5\u03d6\7f\2\2"+
+ "\u02a6\u02a7\7u\2\2\u02a7\u02a8\7k\2\2\u02a8\u02a9\7i\2\2\u02a9\u02aa"+
+ "\7p\2\2\u02aa\u02ab\7w\2\2\u02ab\u03d6\7o\2\2\u02ac\u02ad\7u\2\2\u02ad"+
+ "\u02ae\7s\2\2\u02ae\u02af\7t\2\2\u02af\u03d6\7v\2\2\u02b0\u02b1\7e\2\2"+
+ "\u02b1\u02b2\7d\2\2\u02b2\u02b3\7t\2\2\u02b3\u03d6\7v\2\2\u02b4\u02b5"+
+ "\7r\2\2\u02b5\u03d6\7k\2\2\u02b6\u02b7\7g\2\2\u02b7\u02b8\7w\2\2\u02b8"+
+ "\u02b9\7n\2\2\u02b9\u02ba\7g\2\2\u02ba\u03d6\7t\2\2\u02bb\u02bc\7c\2\2"+
+ "\u02bc\u02bd\7e\2\2\u02bd\u02be\7q\2\2\u02be\u03d6\7u\2\2\u02bf\u02c0"+
+ "\7c\2\2\u02c0\u02c1\7u\2\2\u02c1\u02c2\7k\2\2\u02c2\u03d6\7p\2\2\u02c3"+
+ "\u02c4\7c\2\2\u02c4\u02c5\7v\2\2\u02c5\u02c6\7c\2\2\u02c6\u03d6\7p\2\2"+
+ "\u02c7\u02c8\7e\2\2\u02c8\u02c9\7q\2\2\u02c9\u03d6\7u\2\2\u02ca\u02cb"+
+ "\7u\2\2\u02cb\u02cc\7k\2\2\u02cc\u03d6\7p\2\2\u02cd\u02ce\7v\2\2\u02ce"+
+ "\u02cf\7c\2\2\u02cf\u03d6\7p\2\2\u02d0\u02d1\7e\2\2\u02d1\u02d2\7q\2\2"+
+ "\u02d2\u02d3\7u\2\2\u02d3\u03d6\7j\2\2\u02d4\u02d5\7u\2\2\u02d5\u02d6"+
+ "\7k\2\2\u02d6\u02d7\7p\2\2\u02d7\u03d6\7j\2\2\u02d8\u02d9\7v\2\2\u02d9"+
+ "\u02da\7c\2\2\u02da\u02db\7p\2\2\u02db\u03d6\7j\2\2\u02dc\u02dd\7c\2\2"+
+ "\u02dd\u02de\7v\2\2\u02de\u02df\7p\2\2\u02df\u03d6\7\64\2\2\u02e0\u02e1"+
+ "\7f\2\2\u02e1\u02e2\7g\2\2\u02e2\u02e3\7i\2\2\u02e3\u02e4\7t\2\2\u02e4"+
+ "\u02e5\7g\2\2\u02e5\u02e6\7g\2\2\u02e6\u03d6\7u\2\2\u02e7\u02e8\7t\2\2"+
+ "\u02e8\u02e9\7c\2\2\u02e9\u02ea\7f\2\2\u02ea\u02eb\7k\2\2\u02eb\u02ec"+
+ "\7c\2\2\u02ec\u02ed\7p\2\2\u02ed\u03d6\7u\2\2\u02ee\u02ef\7g\2\2\u02ef"+
+ "\u02f0\7z\2\2\u02f0\u03d6\7r\2\2\u02f1\u02f2\7g\2\2\u02f2\u02f3\7z\2\2"+
+ "\u02f3\u02f4\7r\2\2\u02f4\u02f5\7o\2\2\u02f5\u03d6\7\63\2\2\u02f6\u02f7"+
+ "\7j\2\2\u02f7\u02f8\7{\2\2\u02f8\u02f9\7r\2\2\u02f9\u02fa\7q\2\2\u02fa"+
+ "\u03d6\7v\2\2\u02fb\u02fc\7n\2\2\u02fc\u02fd\7q\2\2\u02fd\u03d6\7i\2\2"+
+ "\u02fe\u02ff\7n\2\2\u02ff\u0300\7q\2\2\u0300\u0301\7i\2\2\u0301\u0302"+
+ "\7\63\2\2\u0302\u03d6\7\62\2\2\u0303\u0304\7n\2\2\u0304\u0305\7q\2\2\u0305"+
+ "\u0306\7i\2\2\u0306\u0307\7\63\2\2\u0307\u03d6\7r\2\2\u0308\u0309\7r\2"+
+ "\2\u0309\u030a\7q\2\2\u030a\u03d6\7y\2\2\u030b\u030c\7t\2\2\u030c\u030d"+
+ "\7c\2\2\u030d\u030e\7p\2\2\u030e\u03d6\7f\2\2\u030f\u0310\7u\2\2\u0310"+
+ "\u0311\7s\2\2\u0311\u0312\7w\2\2\u0312\u0313\7c\2\2\u0313\u0314\7t\2\2"+
+ "\u0314\u03d6\7g\2\2\u0315\u0316\7n\2\2\u0316\u0317\7k\2\2\u0317\u0318"+
+ "\7u\2\2\u0318\u03d6\7v\2\2\u0319\u031a\7i\2\2\u031a\u031b\7g\2\2\u031b"+
+ "\u03d6\7v\2\2\u031c\u031d\7j\2\2\u031d\u031e\7c\2\2\u031e\u03d6\7u\2\2"+
+ "\u031f\u0320\7h\2\2\u0320\u0321\7k\2\2\u0321\u0322\7t\2\2\u0322\u0323"+
+ "\7u\2\2\u0323\u03d6\7v\2\2\u0324\u0325\7n\2\2\u0325\u0326\7c\2\2\u0326"+
+ "\u0327\7u\2\2\u0327\u03d6\7v\2\2\u0328\u0329\7m\2\2\u0329\u032a\7g\2\2"+
+ "\u032a\u032b\7{\2\2\u032b\u03d6\7u\2\2\u032c\u032d\7x\2\2\u032d\u032e"+
+ "\7c\2\2\u032e\u032f\7n\2\2\u032f\u0330\7w\2\2\u0330\u0331\7g\2\2\u0331"+
+ "\u03d6\7u\2\2\u0332\u0333\7n\2\2\u0333\u0334\7g\2\2\u0334\u0335\7p\2\2"+
+ "\u0335\u0336\7i\2\2\u0336\u0337\7v\2\2\u0337\u03d6\7j\2\2\u0338\u0339"+
+ "\7e\2\2\u0339\u033a\7q\2\2\u033a\u033b\7w\2\2\u033b\u033c\7p\2\2\u033c"+
+ "\u03d6\7v\2\2\u033d\u033e\7u\2\2\u033e\u033f\7k\2\2\u033f\u0340\7|\2\2"+
+ "\u0340\u03d6\7g\2\2\u0341\u0342\7u\2\2\u0342\u0343\7q\2\2\u0343\u0344"+
+ "\7t\2\2\u0344\u03d6\7v\2\2\u0345\u0346\7t\2\2\u0346\u0347\7g\2\2\u0347"+
+ "\u0348\7x\2\2\u0348\u0349\7g\2\2\u0349\u034a\7t\2\2\u034a\u034b\7u\2\2"+
+ "\u034b\u03d6\7g\2\2\u034c\u034d\7k\2\2\u034d\u034e\7u\2\2\u034e\u034f"+
+ "\7a\2\2\u034f\u0350\7g\2\2\u0350\u0351\7o\2\2\u0351\u0352\7r\2\2\u0352"+
+ "\u0353\7v\2\2\u0353\u03d6\7{\2\2\u0354\u0355\7p\2\2\u0355\u0356\7q\2\2"+
+ "\u0356\u0357\7p\2\2\u0357\u0358\7a\2\2\u0358\u0359\7g\2\2\u0359\u035a"+
+ "\7o\2\2\u035a\u035b\7r\2\2\u035b\u035c\7v\2\2\u035c\u03d6\7{\2\2\u035d"+
+ "\u035e\7v\2\2\u035e\u035f\7q\2\2\u035f\u0360\7a\2\2\u0360\u0361\7u\2\2"+
+ "\u0361\u0362\7v\2\2\u0362\u0363\7t\2\2\u0363\u0364\7k\2\2\u0364\u0365"+
+ "\7p\2\2\u0365\u03d6\7i\2\2\u0366\u0367\7c\2\2\u0367\u0368\7x\2\2\u0368"+
+ "\u03d6\7i\2\2\u0369\u036a\7o\2\2\u036a\u036b\7c\2\2\u036b\u03d6\7z\2\2"+
+ "\u036c\u036d\7o\2\2\u036d\u036e\7k\2\2\u036e\u03d6\7p\2\2\u036f\u0370"+
+ "\7u\2\2\u0370\u0371\7v\2\2\u0371\u0372\7f\2\2\u0372\u0373\7g\2\2\u0373"+
+ "\u03d6\7x\2\2\u0374\u0375\7u\2\2\u0375\u0376\7w\2\2\u0376\u03d6\7o\2\2"+
+ "\u0377\u0378\7{\2\2\u0378\u0379\7g\2\2\u0379\u037a\7c\2\2\u037a\u03d6"+
+ "\7t\2\2\u037b\u037c\7o\2\2\u037c\u037d\7q\2\2\u037d\u037e\7p\2\2\u037e"+
+ "\u037f\7v\2\2\u037f\u03d6\7j\2\2\u0380\u0381\7f\2\2\u0381\u0382\7c\2\2"+
+ "\u0382\u0383\7{\2\2\u0383\u0384\7a\2\2\u0384\u0385\7q\2\2\u0385\u0386"+
+ "\7h\2\2\u0386\u0387\7a\2\2\u0387\u0388\7o\2\2\u0388\u0389\7q\2\2\u0389"+
+ "\u038a\7p\2\2\u038a\u038b\7v\2\2\u038b\u03d6\7j\2\2\u038c\u038d\7f\2\2"+
+ "\u038d\u038e\7c\2\2\u038e\u038f\7{\2\2\u038f\u0390\7a\2\2\u0390\u0391"+
+ "\7q\2\2\u0391\u0392\7h\2\2\u0392\u0393\7a\2\2\u0393\u0394\7y\2\2\u0394"+
+ "\u0395\7g\2\2\u0395\u0396\7g\2\2\u0396\u03d6\7m\2\2\u0397\u0398\7f\2\2"+
+ "\u0398\u0399\7c\2\2\u0399\u039a\7{\2\2\u039a\u039b\7a\2\2\u039b\u039c"+
+ "\7q\2\2\u039c\u039d\7h\2\2\u039d\u039e\7a\2\2\u039e\u039f\7{\2\2\u039f"+
+ "\u03a0\7g\2\2\u03a0\u03a1\7c\2\2\u03a1\u03d6\7t\2\2\u03a2\u03a3\7j\2\2"+
+ "\u03a3\u03a4\7q\2\2\u03a4\u03a5\7w\2\2\u03a5\u03d6\7t\2\2\u03a6\u03a7"+
+ "\7o\2\2\u03a7\u03a8\7k\2\2\u03a8\u03a9\7p\2\2\u03a9\u03aa\7w\2\2\u03aa"+
+ "\u03ab\7v\2\2\u03ab\u03d6\7g\2\2\u03ac\u03ad\7u\2\2\u03ad\u03ae\7g\2\2"+
+ "\u03ae\u03af\7e\2\2\u03af\u03b0\7q\2\2\u03b0\u03b1\7p\2\2\u03b1\u03d6"+
+ "\7f\2\2\u03b2\u03b3\7y\2\2\u03b3\u03b4\7g\2\2\u03b4\u03b5\7g\2\2\u03b5"+
+ "\u03b6\7m\2\2\u03b6\u03b7\7a\2\2\u03b7\u03b8\7q\2\2\u03b8\u03b9\7h\2\2"+
+ "\u03b9\u03ba\7a\2\2\u03ba\u03bb\7o\2\2\u03bb\u03bc\7q\2\2\u03bc\u03bd"+
+ "\7p\2\2\u03bd\u03be\7v\2\2\u03be\u03d6\7j\2\2\u03bf\u03c0\7y\2\2\u03c0"+
+ "\u03c1\7g\2\2\u03c1\u03c2\7g\2\2\u03c2\u03c3\7m\2\2\u03c3\u03c4\7a\2\2"+
+ "\u03c4\u03c5\7q\2\2\u03c5\u03c6\7h\2\2\u03c6\u03c7\7a\2\2\u03c7\u03c8"+
+ "\7{\2\2\u03c8\u03c9\7g\2\2\u03c9\u03ca\7c\2\2\u03ca\u03d6\7t\2\2\u03cb"+
+ "\u03cc\7s\2\2\u03cc\u03cd\7w\2\2\u03cd\u03ce\7c\2\2\u03ce\u03cf\7t\2\2"+
+ "\u03cf\u03d0\7v\2\2\u03d0\u03d1\7g\2\2\u03d1\u03d6\7t\2\2\u03d2\u03d3"+
+ "\7p\2\2\u03d3\u03d4\7q\2\2\u03d4\u03d6\7y\2\2\u03d5\u0092\3\2\2\2\u03d5"+
+ "\u009c\3\2\2\2\u03d5\u00a5\3\2\2\2\u03d5\u00af\3\2\2\2\u03d5\u00ba\3\2"+
+ "\2\2\u03d5\u00c2\3\2\2\2\u03d5\u00cb\3\2\2\2\u03d5\u00d7\3\2\2\2\u03d5"+
+ "\u00df\3\2\2\2\u03d5\u00e8\3\2\2\2\u03d5\u00f1\3\2\2\2\u03d5\u00f5\3\2"+
+ "\2\2\u03d5\u00f7\3\2\2\2\u03d5\u00f9\3\2\2\2\u03d5\u00fd\3\2\2\2\u03d5"+
+ "\u0101\3\2\2\2\u03d5\u0106\3\2\2\2\u03d5\u010f\3\2\2\2\u03d5\u0115\3\2"+
+ "\2\2\u03d5\u011b\3\2\2\2\u03d5\u0120\3\2\2\2\u03d5\u0127\3\2\2\2\u03d5"+
+ "\u0130\3\2\2\2\u03d5\u0137\3\2\2\2\u03d5\u013d\3\2\2\2\u03d5\u0149\3\2"+
+ "\2\2\u03d5\u0153\3\2\2\2\u03d5\u015b\3\2\2\2\u03d5\u0164\3\2\2\2\u03d5"+
+ "\u016b\3\2\2\2\u03d5\u0175\3\2\2\2\u03d5\u017f\3\2\2\2\u03d5\u0189\3\2"+
+ "\2\2\u03d5\u0193\3\2\2\2\u03d5\u01a5\3\2\2\2\u03d5\u01ac\3\2\2\2\u03d5"+
+ "\u01b5\3\2\2\2\u03d5\u01c1\3\2\2\2\u03d5\u01cd\3\2\2\2\u03d5\u01d8\3\2"+
+ "\2\2\u03d5\u01e1\3\2\2\2\u03d5\u01ea\3\2\2\2\u03d5\u01f7\3\2\2\2\u03d5"+
+ "\u01fb\3\2\2\2\u03d5\u0200\3\2\2\2\u03d5\u0209\3\2\2\2\u03d5\u0212\3\2"+
+ "\2\2\u03d5\u021a\3\2\2\2\u03d5\u0225\3\2\2\2\u03d5\u0232\3\2\2\2\u03d5"+
+ "\u0238\3\2\2\2\u03d5\u0243\3\2\2\2\u03d5\u0250\3\2\2\2\u03d5\u0260\3\2"+
+ "\2\2\u03d5\u0269\3\2\2\2\u03d5\u026f\3\2\2\2\u03d5\u0274\3\2\2\2\u03d5"+
+ "\u027b\3\2\2\2\u03d5\u0280\3\2\2\2\u03d5\u028a\3\2\2\2\u03d5\u0291\3\2"+
+ "\2\2\u03d5\u0294\3\2\2\2\u03d5\u0298\3\2\2\2\u03d5\u029d\3\2\2\2\u03d5"+
+ "\u02a1\3\2\2\2\u03d5\u02a6\3\2\2\2\u03d5\u02ac\3\2\2\2\u03d5\u02b0\3\2"+
+ "\2\2\u03d5\u02b4\3\2\2\2\u03d5\u02b6\3\2\2\2\u03d5\u02bb\3\2\2\2\u03d5"+
+ "\u02bf\3\2\2\2\u03d5\u02c3\3\2\2\2\u03d5\u02c7\3\2\2\2\u03d5\u02ca\3\2"+
+ "\2\2\u03d5\u02cd\3\2\2\2\u03d5\u02d0\3\2\2\2\u03d5\u02d4\3\2\2\2\u03d5"+
+ "\u02d8\3\2\2\2\u03d5\u02dc\3\2\2\2\u03d5\u02e0\3\2\2\2\u03d5\u02e7\3\2"+
+ "\2\2\u03d5\u02ee\3\2\2\2\u03d5\u02f1\3\2\2\2\u03d5\u02f6\3\2\2\2\u03d5"+
+ "\u02fb\3\2\2\2\u03d5\u02fe\3\2\2\2\u03d5\u0303\3\2\2\2\u03d5\u0308\3\2"+
+ "\2\2\u03d5\u030b\3\2\2\2\u03d5\u030f\3\2\2\2\u03d5\u0315\3\2\2\2\u03d5"+
+ "\u0319\3\2\2\2\u03d5\u031c\3\2\2\2\u03d5\u031f\3\2\2\2\u03d5\u0324\3\2"+
+ "\2\2\u03d5\u0328\3\2\2\2\u03d5\u032c\3\2\2\2\u03d5\u0332\3\2\2\2\u03d5"+
+ "\u0338\3\2\2\2\u03d5\u033d\3\2\2\2\u03d5\u0341\3\2\2\2\u03d5\u0345\3\2"+
+ "\2\2\u03d5\u034c\3\2\2\2\u03d5\u0354\3\2\2\2\u03d5\u035d\3\2\2\2\u03d5"+
+ "\u0366\3\2\2\2\u03d5\u0369\3\2\2\2\u03d5\u036c\3\2\2\2\u03d5\u036f\3\2"+
+ "\2\2\u03d5\u0374\3\2\2\2\u03d5\u0377\3\2\2\2\u03d5\u037b\3\2\2\2\u03d5"+
+ "\u0380\3\2\2\2\u03d5\u038c\3\2\2\2\u03d5\u0397\3\2\2\2\u03d5\u03a2\3\2"+
+ "\2\2\u03d5\u03a6\3\2\2\2\u03d5\u03ac\3\2\2\2\u03d5\u03b2\3\2\2\2\u03d5"+
+ "\u03bf\3\2\2\2\u03d5\u03cb\3\2\2\2\u03d5\u03d2\3\2\2\2\u03d6\20\3\2\2"+
+ "\2\u03d7\u03d8\7h\2\2\u03d8\u03d9\7t\2\2\u03d9\u03da\7c\2\2\u03da\u03db"+
+ "\7i\2\2\u03db\u03dc\7o\2\2\u03dc\u03dd\7g\2\2\u03dd\u03de\7p\2\2\u03de"+
+ "\u03df\7v\2\2\u03df\22\3\2\2\2\u03e0\u03e6\5\67\34\2\u03e1\u03e5\n\2\2"+
+ "\2\u03e2\u03e3\7^\2\2\u03e3\u03e5\7)\2\2\u03e4\u03e1\3\2\2\2\u03e4\u03e2"+
+ "\3\2\2\2\u03e5\u03e8\3\2\2\2\u03e6\u03e4\3\2\2\2\u03e6\u03e7\3\2\2\2\u03e7"+
+ "\u03e9\3\2\2\2\u03e8\u03e6\3\2\2\2\u03e9\u03ea\5\67\34\2\u03ea\24\3\2"+
+ "\2\2\u03eb\u03f1\59\35\2\u03ec\u03f0\n\3\2\2\u03ed\u03ee\7^\2\2\u03ee"+
+ "\u03f0\7$\2\2\u03ef\u03ec\3\2\2\2\u03ef\u03ed\3\2\2\2\u03f0\u03f3\3\2"+
+ "\2\2\u03f1\u03ef\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2\u03f4\3\2\2\2\u03f3"+
+ "\u03f1\3\2\2\2\u03f4\u03f5\59\35\2\u03f5\26\3\2\2\2\u03f6\u03f7\7v\2\2"+
+ "\u03f7\u03f8\7t\2\2\u03f8\u03f9\7w\2\2\u03f9\u0400\7g\2\2\u03fa\u03fb"+
+ "\7h\2\2\u03fb\u03fc\7c\2\2\u03fc\u03fd\7n\2\2\u03fd\u03fe\7u\2\2\u03fe"+
+ "\u0400\7g\2\2\u03ff\u03f6\3\2\2\2\u03ff\u03fa\3\2\2\2\u0400\30\3\2\2\2"+
+ "\u0401\u0402\7p\2\2\u0402\u0403\7w\2\2\u0403\u0404\7n\2\2\u0404\u0405"+
+ "\7n\2\2\u0405\32\3\2\2\2\u0406\u0407\7?\2\2\u0407\u0408\7?\2\2\u0408\34"+
+ "\3\2\2\2\u0409\u040a\7#\2\2\u040a\u040b\7?\2\2\u040b\36\3\2\2\2\u040c"+
+ "\u040d\7@\2\2\u040d\u040e\7?\2\2\u040e \3\2\2\2\u040f\u0410\7>\2\2\u0410"+
+ "\u0411\7?\2\2\u0411\"\3\2\2\2\u0412\u0413\7@\2\2\u0413$\3\2\2\2\u0414"+
+ "\u0415\7>\2\2\u0415&\3\2\2\2\u0416\u0417\7(\2\2\u0417\u0418\7(\2\2\u0418"+
+ "(\3\2\2\2\u0419\u041a\7~\2\2\u041a\u041b\7~\2\2\u041b*\3\2\2\2\u041c\u041d"+
+ "\7~\2\2\u041d,\3\2\2\2\u041e\u041f\7#\2\2\u041f.\3\2\2\2\u0420\u0421\7"+
+ "*\2\2\u0421\60\3\2\2\2\u0422\u0423\7+\2\2\u0423\62\3\2\2\2\u0424\u0425"+
+ "\7}\2\2\u0425\64\3\2\2\2\u0426\u0427\7\177\2\2\u0427\66\3\2\2\2\u0428"+
+ "\u0429\7)\2\2\u04298\3\2\2\2\u042a\u042b\7$\2\2\u042b:\3\2\2\2\u042c\u042d"+
+ "\7\u0080\2\2\u042d<\3\2\2\2\u042e\u042f\7]\2\2\u042f>\3\2\2\2\u0430\u0431"+
+ "\7_\2\2\u0431@\3\2\2\2\u0432\u0433\7%\2\2\u0433B\3\2\2\2\u0434\u0435\7"+
+ ".\2\2\u0435D\3\2\2\2\u0436\u0437\7<\2\2\u0437F\3\2\2\2\u0438\u0439\7/"+
+ "\2\2\u0439H\3\2\2\2\u043a\u043b\7\60\2\2\u043bJ\3\2\2\2\u043c\u043d\7"+
+ "a\2\2\u043dL\3\2\2\2\u043e\u043f\7?\2\2\u043fN\3\2\2\2\u0440\u0441\7-"+
+ "\2\2\u0441P\3\2\2\2\u0442\u0443\7A\2\2\u0443R\3\2\2\2\u0444\u0445\7,\2"+
+ "\2\u0445T\3\2\2\2\u0446\u0447\7\61\2\2\u0447V\3\2\2\2\u0448\u0449\7\'"+
+ "\2\2\u0449X\3\2\2\2\u044a\u044b\7&\2\2\u044bZ\3\2\2\2\u044c\u0455\7\62"+
+ "\2\2\u044d\u0451\t\4\2\2\u044e\u0450\t\5\2\2\u044f\u044e\3\2\2\2\u0450"+
+ "\u0453\3\2\2\2\u0451\u044f\3\2\2\2\u0451\u0452\3\2\2\2\u0452\u0455\3\2"+
+ "\2\2\u0453\u0451\3\2\2\2\u0454\u044c\3\2\2\2\u0454\u044d\3\2\2\2\u0455"+
+ "\\\3\2\2\2\u0456\u0458\5I%\2\u0457\u0459\t\6\2\2\u0458\u0457\3\2\2\2\u0459"+
+ "\u045a\3\2\2\2\u045a\u0458\3\2\2\2\u045a\u045b\3\2\2\2\u045b^\3\2\2\2"+
+ "\u045c\u045e\t\7\2\2\u045d\u045f\t\b\2\2\u045e\u045d\3\2\2\2\u045e\u045f"+
+ "\3\2\2\2\u045f\u0460\3\2\2\2\u0460\u0461\5[.\2\u0461`\3\2\2\2\u0462\u0463"+
+ "\t\t\2\2\u0463b\3\2\2\2\u0464\u0465\t\n\2\2\u0465d\3\2\2\2\u0466\u046b"+
+ "\5a\61\2\u0467\u046b\5K&\2\u0468\u046b\5c\62\2\u0469\u046b\5Y-\2\u046a"+
+ "\u0466\3\2\2\2\u046a\u0467\3\2\2\2\u046a\u0468\3\2\2\2\u046a\u0469\3\2"+
+ "\2\2\u046b\u046c\3\2\2\2\u046c\u046a\3\2\2\2\u046c\u046d\3\2\2\2\u046d"+
+ "\u0477\3\2\2\2\u046e\u0476\5a\61\2\u046f\u0476\5Y-\2\u0470\u0476\5c\62"+
+ "\2\u0471\u0476\t\6\2\2\u0472\u0476\5E#\2\u0473\u0476\5G$\2\u0474\u0476"+
+ "\5K&\2\u0475\u046e\3\2\2\2\u0475\u046f\3\2\2\2\u0475\u0470\3\2\2\2\u0475"+
+ "\u0471\3\2\2\2\u0475\u0472\3\2\2\2\u0475\u0473\3\2\2\2\u0475\u0474\3\2"+
+ "\2\2\u0476\u0479\3\2\2\2\u0477\u0475\3\2\2\2\u0477\u0478\3\2\2\2\u0478"+
+ "f\3\2\2\2\u0479\u0477\3\2\2\2\u047a\u047b\7\61\2\2\u047b\u047c\7\61\2"+
+ "\2\u047c\u0480\3\2\2\2\u047d\u047f\n\13\2\2\u047e\u047d\3\2\2\2\u047f"+
+ "\u0482\3\2\2\2\u0480\u047e\3\2\2\2\u0480\u0481\3\2\2\2\u0481\u0484\3\2"+
+ "\2\2\u0482\u0480\3\2\2\2\u0483\u0485\7\17\2\2\u0484\u0483\3\2\2\2\u0484"+
+ "\u0485\3\2\2\2\u0485\u0487\3\2\2\2\u0486\u0488\t\f\2\2\u0487\u0486\3\2"+
+ "\2\2\u0488\u0495\3\2\2\2\u0489\u048a\7\61\2\2\u048a\u048b\7,\2\2\u048b"+
+ "\u048f\3\2\2\2\u048c\u048e\13\2\2\2\u048d\u048c\3\2\2\2\u048e\u0491\3"+
+ "\2\2\2\u048f\u0490\3\2\2\2\u048f\u048d\3\2\2\2\u0490\u0492\3\2\2\2\u0491"+
+ "\u048f\3\2\2\2\u0492\u0493\7,\2\2\u0493\u0495\7\61\2\2\u0494\u047a\3\2"+
+ "\2\2\u0494\u0489\3\2\2\2\u0495\u0496\3\2\2\2\u0496\u0497\b\64\2\2\u0497"+
+ "h\3\2\2\2\u0498\u049a\t\r\2\2\u0499\u0498\3\2\2\2\u049a\u049b\3\2\2\2"+
+ "\u049b\u0499\3\2\2\2\u049b\u049c\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e"+
+ "\b\65\2\2\u049ej\3\2\2\2\u049f\u04a0\13\2\2\2\u04a0l\3\2\2\2\27\2\u03d5"+
+ "\u03e4\u03e6\u03ef\u03f1\u03ff\u0451\u0454\u045a\u045e\u046a\u046c\u0475"+
+ "\u0477\u0480\u0484\u0487\u048f\u0494\u049b\3\b\2\2";
+ public static final ATN _ATN =
+ new ATNDeserializer().deserialize(_serializedATN.toCharArray());
+ static {
+ _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
+ for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
+ _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
+ }
+ }
+}
\ No newline at end of file
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.tokens b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.tokens
new file mode 100644
index 0000000..5680142
--- /dev/null
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.tokens
@@ -0,0 +1,91 @@
+T__0=1
+T__1=2
+T__2=3
+T__3=4
+T__4=5
+T__5=6
+FUN_NAME=7
+FRAG=8
+SQSTRING=9
+DQSTRING=10
+BOOL=11
+NULL=12
+EQ=13
+NEQ=14
+GTEQ=15
+LTEQ=16
+GT=17
+LT=18
+AND=19
+OR=20
+VERT=21
+NOT=22
+LPAR=23
+RPAR=24
+LBRACE=25
+RBRACE=26
+SQUOTE=27
+DQUOTE=28
+TILDA=29
+LBR=30
+RBR=31
+POUND=32
+COMMA=33
+COLON=34
+MINUS=35
+DOT=36
+UNDERSCORE=37
+ASSIGN=38
+PLUS=39
+QUESTION=40
+MULT=41
+DIV=42
+MOD=43
+DOLLAR=44
+INT=45
+REAL=46
+EXP=47
+ID=48
+COMMENT=49
+WS=50
+ErrorChar=51
+'import'=1
+'intent'=2
+'ordered'=3
+'flow'=4
+'meta'=5
+'term'=6
+'fragment'=8
+'null'=12
+'=='=13
+'!='=14
+'>='=15
+'<='=16
+'>'=17
+'<'=18
+'&&'=19
+'||'=20
+'|'=21
+'!'=22
+'('=23
+')'=24
+'{'=25
+'}'=26
+'\''=27
+'"'=28
+'~'=29
+'['=30
+']'=31
+'#'=32
+','=33
+':'=34
+'-'=35
+'.'=36
+'_'=37
+'='=38
+'+'=39
+'?'=40
+'*'=41
+'/'=42
+'%'=43
+'$'=44
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlListener.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlListener.java
new file mode 100644
index 0000000..2c02411
--- /dev/null
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlListener.java
@@ -0,0 +1,458 @@
+// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4\NCIntentIdl.g4 by ANTLR 4.9.1
+package org.apache.nlpcraft.model.intent.compiler.antlr4;
+import org.antlr.v4.runtime.tree.ParseTreeListener;
+
+/**
+ * This interface defines a complete listener for a parse tree produced by
+ * {@link NCIntentIdlParser}.
+ */
+public interface NCIntentIdlListener extends ParseTreeListener {
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#idl}.
+ * @param ctx the parse tree
+ */
+ void enterIdl(NCIntentIdlParser.IdlContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#idl}.
+ * @param ctx the parse tree
+ */
+ void exitIdl(NCIntentIdlParser.IdlContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#synonym}.
+ * @param ctx the parse tree
+ */
+ void enterSynonym(NCIntentIdlParser.SynonymContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#synonym}.
+ * @param ctx the parse tree
+ */
+ void exitSynonym(NCIntentIdlParser.SynonymContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#alias}.
+ * @param ctx the parse tree
+ */
+ void enterAlias(NCIntentIdlParser.AliasContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#alias}.
+ * @param ctx the parse tree
+ */
+ void exitAlias(NCIntentIdlParser.AliasContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#idlItems}.
+ * @param ctx the parse tree
+ */
+ void enterIdlItems(NCIntentIdlParser.IdlItemsContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#idlItems}.
+ * @param ctx the parse tree
+ */
+ void exitIdlItems(NCIntentIdlParser.IdlItemsContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#idlItem}.
+ * @param ctx the parse tree
+ */
+ void enterIdlItem(NCIntentIdlParser.IdlItemContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#idlItem}.
+ * @param ctx the parse tree
+ */
+ void exitIdlItem(NCIntentIdlParser.IdlItemContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#imp}.
+ * @param ctx the parse tree
+ */
+ void enterImp(NCIntentIdlParser.ImpContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#imp}.
+ * @param ctx the parse tree
+ */
+ void exitImp(NCIntentIdlParser.ImpContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#frag}.
+ * @param ctx the parse tree
+ */
+ void enterFrag(NCIntentIdlParser.FragContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#frag}.
+ * @param ctx the parse tree
+ */
+ void exitFrag(NCIntentIdlParser.FragContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#fragId}.
+ * @param ctx the parse tree
+ */
+ void enterFragId(NCIntentIdlParser.FragIdContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#fragId}.
+ * @param ctx the parse tree
+ */
+ void exitFragId(NCIntentIdlParser.FragIdContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#fragRef}.
+ * @param ctx the parse tree
+ */
+ void enterFragRef(NCIntentIdlParser.FragRefContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#fragRef}.
+ * @param ctx the parse tree
+ */
+ void exitFragRef(NCIntentIdlParser.FragRefContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#fragMeta}.
+ * @param ctx the parse tree
+ */
+ void enterFragMeta(NCIntentIdlParser.FragMetaContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#fragMeta}.
+ * @param ctx the parse tree
+ */
+ void exitFragMeta(NCIntentIdlParser.FragMetaContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#intent}.
+ * @param ctx the parse tree
+ */
+ void enterIntent(NCIntentIdlParser.IntentContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#intent}.
+ * @param ctx the parse tree
+ */
+ void exitIntent(NCIntentIdlParser.IntentContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#intentId}.
+ * @param ctx the parse tree
+ */
+ void enterIntentId(NCIntentIdlParser.IntentIdContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#intentId}.
+ * @param ctx the parse tree
+ */
+ void exitIntentId(NCIntentIdlParser.IntentIdContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#orderedDecl}.
+ * @param ctx the parse tree
+ */
+ void enterOrderedDecl(NCIntentIdlParser.OrderedDeclContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#orderedDecl}.
+ * @param ctx the parse tree
+ */
+ void exitOrderedDecl(NCIntentIdlParser.OrderedDeclContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#mtdDecl}.
+ * @param ctx the parse tree
+ */
+ void enterMtdDecl(NCIntentIdlParser.MtdDeclContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#mtdDecl}.
+ * @param ctx the parse tree
+ */
+ void exitMtdDecl(NCIntentIdlParser.MtdDeclContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#flowDecl}.
+ * @param ctx the parse tree
+ */
+ void enterFlowDecl(NCIntentIdlParser.FlowDeclContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#flowDecl}.
+ * @param ctx the parse tree
+ */
+ void exitFlowDecl(NCIntentIdlParser.FlowDeclContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#metaDecl}.
+ * @param ctx the parse tree
+ */
+ void enterMetaDecl(NCIntentIdlParser.MetaDeclContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#metaDecl}.
+ * @param ctx the parse tree
+ */
+ void exitMetaDecl(NCIntentIdlParser.MetaDeclContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#jsonObj}.
+ * @param ctx the parse tree
+ */
+ void enterJsonObj(NCIntentIdlParser.JsonObjContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#jsonObj}.
+ * @param ctx the parse tree
+ */
+ void exitJsonObj(NCIntentIdlParser.JsonObjContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#jsonPair}.
+ * @param ctx the parse tree
+ */
+ void enterJsonPair(NCIntentIdlParser.JsonPairContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#jsonPair}.
+ * @param ctx the parse tree
+ */
+ void exitJsonPair(NCIntentIdlParser.JsonPairContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#jsonVal}.
+ * @param ctx the parse tree
+ */
+ void enterJsonVal(NCIntentIdlParser.JsonValContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#jsonVal}.
+ * @param ctx the parse tree
+ */
+ void exitJsonVal(NCIntentIdlParser.JsonValContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#jsonArr}.
+ * @param ctx the parse tree
+ */
+ void enterJsonArr(NCIntentIdlParser.JsonArrContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#jsonArr}.
+ * @param ctx the parse tree
+ */
+ void exitJsonArr(NCIntentIdlParser.JsonArrContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#terms}.
+ * @param ctx the parse tree
+ */
+ void enterTerms(NCIntentIdlParser.TermsContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#terms}.
+ * @param ctx the parse tree
+ */
+ void exitTerms(NCIntentIdlParser.TermsContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#termItem}.
+ * @param ctx the parse tree
+ */
+ void enterTermItem(NCIntentIdlParser.TermItemContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#termItem}.
+ * @param ctx the parse tree
+ */
+ void exitTermItem(NCIntentIdlParser.TermItemContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#termEq}.
+ * @param ctx the parse tree
+ */
+ void enterTermEq(NCIntentIdlParser.TermEqContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#termEq}.
+ * @param ctx the parse tree
+ */
+ void exitTermEq(NCIntentIdlParser.TermEqContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#term}.
+ * @param ctx the parse tree
+ */
+ void enterTerm(NCIntentIdlParser.TermContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#term}.
+ * @param ctx the parse tree
+ */
+ void exitTerm(NCIntentIdlParser.TermContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#mtdRef}.
+ * @param ctx the parse tree
+ */
+ void enterMtdRef(NCIntentIdlParser.MtdRefContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#mtdRef}.
+ * @param ctx the parse tree
+ */
+ void exitMtdRef(NCIntentIdlParser.MtdRefContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#javaFqn}.
+ * @param ctx the parse tree
+ */
+ void enterJavaFqn(NCIntentIdlParser.JavaFqnContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#javaFqn}.
+ * @param ctx the parse tree
+ */
+ void exitJavaFqn(NCIntentIdlParser.JavaFqnContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#termId}.
+ * @param ctx the parse tree
+ */
+ void enterTermId(NCIntentIdlParser.TermIdContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#termId}.
+ * @param ctx the parse tree
+ */
+ void exitTermId(NCIntentIdlParser.TermIdContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code parExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void enterParExpr(NCIntentIdlParser.ParExprContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code parExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void exitParExpr(NCIntentIdlParser.ParExprContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code unaryExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void enterUnaryExpr(NCIntentIdlParser.UnaryExprContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code unaryExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void exitUnaryExpr(NCIntentIdlParser.UnaryExprContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code compExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void enterCompExpr(NCIntentIdlParser.CompExprContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code compExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void exitCompExpr(NCIntentIdlParser.CompExprContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code plusMinusExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void enterPlusMinusExpr(NCIntentIdlParser.PlusMinusExprContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code plusMinusExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void exitPlusMinusExpr(NCIntentIdlParser.PlusMinusExprContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code atomExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void enterAtomExpr(NCIntentIdlParser.AtomExprContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code atomExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void exitAtomExpr(NCIntentIdlParser.AtomExprContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code multDivModExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void enterMultDivModExpr(NCIntentIdlParser.MultDivModExprContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code multDivModExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void exitMultDivModExpr(NCIntentIdlParser.MultDivModExprContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code andOrExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void enterAndOrExpr(NCIntentIdlParser.AndOrExprContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code andOrExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void exitAndOrExpr(NCIntentIdlParser.AndOrExprContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code callExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void enterCallExpr(NCIntentIdlParser.CallExprContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code callExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void exitCallExpr(NCIntentIdlParser.CallExprContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code eqNeqExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void enterEqNeqExpr(NCIntentIdlParser.EqNeqExprContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code eqNeqExpr}
+ * labeled alternative in {@link NCIntentIdlParser#expr}.
+ * @param ctx the parse tree
+ */
+ void exitEqNeqExpr(NCIntentIdlParser.EqNeqExprContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#paramList}.
+ * @param ctx the parse tree
+ */
+ void enterParamList(NCIntentIdlParser.ParamListContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#paramList}.
+ * @param ctx the parse tree
+ */
+ void exitParamList(NCIntentIdlParser.ParamListContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#atom}.
+ * @param ctx the parse tree
+ */
+ void enterAtom(NCIntentIdlParser.AtomContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#atom}.
+ * @param ctx the parse tree
+ */
+ void exitAtom(NCIntentIdlParser.AtomContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#qstring}.
+ * @param ctx the parse tree
+ */
+ void enterQstring(NCIntentIdlParser.QstringContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#qstring}.
+ * @param ctx the parse tree
+ */
+ void exitQstring(NCIntentIdlParser.QstringContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#minMax}.
+ * @param ctx the parse tree
+ */
+ void enterMinMax(NCIntentIdlParser.MinMaxContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#minMax}.
+ * @param ctx the parse tree
+ */
+ void exitMinMax(NCIntentIdlParser.MinMaxContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#minMaxShortcut}.
+ * @param ctx the parse tree
+ */
+ void enterMinMaxShortcut(NCIntentIdlParser.MinMaxShortcutContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#minMaxShortcut}.
+ * @param ctx the parse tree
+ */
+ void exitMinMaxShortcut(NCIntentIdlParser.MinMaxShortcutContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#minMaxRange}.
+ * @param ctx the parse tree
+ */
+ void enterMinMaxRange(NCIntentIdlParser.MinMaxRangeContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#minMaxRange}.
+ * @param ctx the parse tree
+ */
+ void exitMinMaxRange(NCIntentIdlParser.MinMaxRangeContext ctx);
+ /**
+ * Enter a parse tree produced by {@link NCIntentIdlParser#id}.
+ * @param ctx the parse tree
+ */
+ void enterId(NCIntentIdlParser.IdContext ctx);
+ /**
+ * Exit a parse tree produced by {@link NCIntentIdlParser#id}.
+ * @param ctx the parse tree
+ */
+ void exitId(NCIntentIdlParser.IdContext ctx);
+}
\ No newline at end of file
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlParser.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlParser.java
new file mode 100644
index 0000000..03c022f
--- /dev/null
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlParser.java
@@ -0,0 +1,2797 @@
+// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4\NCIntentIdl.g4 by ANTLR 4.9.1
+package org.apache.nlpcraft.model.intent.compiler.antlr4;
+import org.antlr.v4.runtime.atn.*;
+import org.antlr.v4.runtime.dfa.DFA;
+import org.antlr.v4.runtime.*;
+import org.antlr.v4.runtime.misc.*;
+import org.antlr.v4.runtime.tree.*;
+import java.util.List;
+import java.util.Iterator;
+import java.util.ArrayList;
+
+@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
+public class NCIntentIdlParser extends Parser {
+ static { RuntimeMetaData.checkVersion("4.9.1", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
+ public static final int
+ T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, FUN_NAME=7, FRAG=8, SQSTRING=9,
+ DQSTRING=10, BOOL=11, NULL=12, EQ=13, NEQ=14, GTEQ=15, LTEQ=16, GT=17,
+ LT=18, AND=19, OR=20, VERT=21, NOT=22, LPAR=23, RPAR=24, LBRACE=25, RBRACE=26,
+ SQUOTE=27, DQUOTE=28, TILDA=29, LBR=30, RBR=31, POUND=32, COMMA=33, COLON=34,
+ MINUS=35, DOT=36, UNDERSCORE=37, ASSIGN=38, PLUS=39, QUESTION=40, MULT=41,
+ DIV=42, MOD=43, DOLLAR=44, INT=45, REAL=46, EXP=47, ID=48, COMMENT=49,
+ WS=50, ErrorChar=51;
+ public static final int
+ RULE_idl = 0, RULE_synonym = 1, RULE_alias = 2, RULE_idlItems = 3, RULE_idlItem = 4,
+ RULE_imp = 5, RULE_frag = 6, RULE_fragId = 7, RULE_fragRef = 8, RULE_fragMeta = 9,
+ RULE_intent = 10, RULE_intentId = 11, RULE_orderedDecl = 12, RULE_mtdDecl = 13,
+ RULE_flowDecl = 14, RULE_metaDecl = 15, RULE_jsonObj = 16, RULE_jsonPair = 17,
+ RULE_jsonVal = 18, RULE_jsonArr = 19, RULE_terms = 20, RULE_termItem = 21,
+ RULE_termEq = 22, RULE_term = 23, RULE_mtdRef = 24, RULE_javaFqn = 25,
+ RULE_termId = 26, RULE_expr = 27, RULE_paramList = 28, RULE_atom = 29,
+ RULE_qstring = 30, RULE_minMax = 31, RULE_minMaxShortcut = 32, RULE_minMaxRange = 33,
+ RULE_id = 34;
+ private static String[] makeRuleNames() {
+ return new String[] {
+ "idl", "synonym", "alias", "idlItems", "idlItem", "imp", "frag", "fragId",
+ "fragRef", "fragMeta", "intent", "intentId", "orderedDecl", "mtdDecl",
+ "flowDecl", "metaDecl", "jsonObj", "jsonPair", "jsonVal", "jsonArr",
+ "terms", "termItem", "termEq", "term", "mtdRef", "javaFqn", "termId",
+ "expr", "paramList", "atom", "qstring", "minMax", "minMaxShortcut", "minMaxRange",
+ "id"
+ };
+ }
+ public static final String[] ruleNames = makeRuleNames();
+
+ private static String[] makeLiteralNames() {
+ return new String[] {
+ null, "'import'", "'intent'", "'ordered'", "'flow'", "'meta'", "'term'",
+ null, "'fragment'", null, null, null, "'null'", "'=='", "'!='", "'>='",
+ "'<='", "'>'", "'<'", "'&&'", "'||'", "'|'", "'!'", "'('", "')'", "'{'",
+ "'}'", "'''", "'\"'", "'~'", "'['", "']'", "'#'", "','", "':'", "'-'",
+ "'.'", "'_'", "'='", "'+'", "'?'", "'*'", "'/'", "'%'", "'$'"
+ };
+ }
+ private static final String[] _LITERAL_NAMES = makeLiteralNames();
+ private static String[] makeSymbolicNames() {
+ return new String[] {
+ null, null, null, null, null, null, null, "FUN_NAME", "FRAG", "SQSTRING",
+ "DQSTRING", "BOOL", "NULL", "EQ", "NEQ", "GTEQ", "LTEQ", "GT", "LT",
+ "AND", "OR", "VERT", "NOT", "LPAR", "RPAR", "LBRACE", "RBRACE", "SQUOTE",
+ "DQUOTE", "TILDA", "LBR", "RBR", "POUND", "COMMA", "COLON", "MINUS",
+ "DOT", "UNDERSCORE", "ASSIGN", "PLUS", "QUESTION", "MULT", "DIV", "MOD",
+ "DOLLAR", "INT", "REAL", "EXP", "ID", "COMMENT", "WS", "ErrorChar"
+ };
+ }
+ private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
+ public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
+
+ /**
+ * @deprecated Use {@link #VOCABULARY} instead.
+ */
+ @Deprecated
+ public static final String[] tokenNames;
+ static {
+ tokenNames = new String[_SYMBOLIC_NAMES.length];
+ for (int i = 0; i < tokenNames.length; i++) {
+ tokenNames[i] = VOCABULARY.getLiteralName(i);
+ if (tokenNames[i] == null) {
+ tokenNames[i] = VOCABULARY.getSymbolicName(i);
+ }
+
+ if (tokenNames[i] == null) {
+ tokenNames[i] = "<INVALID>";
+ }
+ }
+ }
+
+ @Override
+ @Deprecated
+ public String[] getTokenNames() {
+ return tokenNames;
+ }
+
+ @Override
+
+ public Vocabulary getVocabulary() {
+ return VOCABULARY;
+ }
+
+ @Override
+ public String getGrammarFileName() { return "NCIntentIdl.g4"; }
+
+ @Override
+ public String[] getRuleNames() { return ruleNames; }
+
+ @Override
+ public String getSerializedATN() { return _serializedATN; }
+
+ @Override
+ public ATN getATN() { return _ATN; }
+
+ public NCIntentIdlParser(TokenStream input) {
+ super(input);
+ _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
+ }
+
+ public static class IdlContext extends ParserRuleContext {
+ public IdlItemsContext idlItems() {
+ return getRuleContext(IdlItemsContext.class,0);
+ }
+ public TerminalNode EOF() { return getToken(NCIntentIdlParser.EOF, 0); }
+ public IdlContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_idl; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterIdl(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitIdl(this);
+ }
+ }
+
+ public final IdlContext idl() throws RecognitionException {
+ IdlContext _localctx = new IdlContext(_ctx, getState());
+ enterRule(_localctx, 0, RULE_idl);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(70);
+ idlItems(0);
+ setState(71);
+ match(EOF);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class SynonymContext extends ParserRuleContext {
+ public TerminalNode LBRACE() { return getToken(NCIntentIdlParser.LBRACE, 0); }
+ public ExprContext expr() {
+ return getRuleContext(ExprContext.class,0);
+ }
+ public TerminalNode RBRACE() { return getToken(NCIntentIdlParser.RBRACE, 0); }
+ public TerminalNode EOF() { return getToken(NCIntentIdlParser.EOF, 0); }
+ public AliasContext alias() {
+ return getRuleContext(AliasContext.class,0);
+ }
+ public SynonymContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_synonym; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterSynonym(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitSynonym(this);
+ }
+ }
+
+ public final SynonymContext synonym() throws RecognitionException {
+ SynonymContext _localctx = new SynonymContext(_ctx, getState());
+ enterRule(_localctx, 2, RULE_synonym);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(74);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==LBR) {
+ {
+ setState(73);
+ alias();
+ }
+ }
+
+ setState(76);
+ match(LBRACE);
+ setState(77);
+ expr(0);
+ setState(78);
+ match(RBRACE);
+ setState(79);
+ match(EOF);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class AliasContext extends ParserRuleContext {
+ public TerminalNode LBR() { return getToken(NCIntentIdlParser.LBR, 0); }
+ public IdContext id() {
+ return getRuleContext(IdContext.class,0);
+ }
+ public TerminalNode RBR() { return getToken(NCIntentIdlParser.RBR, 0); }
+ public AliasContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_alias; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterAlias(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitAlias(this);
+ }
+ }
+
+ public final AliasContext alias() throws RecognitionException {
+ AliasContext _localctx = new AliasContext(_ctx, getState());
+ enterRule(_localctx, 4, RULE_alias);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(81);
+ match(LBR);
+ setState(82);
+ id();
+ setState(83);
+ match(RBR);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class IdlItemsContext extends ParserRuleContext {
+ public IdlItemContext idlItem() {
+ return getRuleContext(IdlItemContext.class,0);
+ }
+ public IdlItemsContext idlItems() {
+ return getRuleContext(IdlItemsContext.class,0);
+ }
+ public IdlItemsContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_idlItems; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterIdlItems(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitIdlItems(this);
+ }
+ }
+
+ public final IdlItemsContext idlItems() throws RecognitionException {
+ return idlItems(0);
+ }
+
+ private IdlItemsContext idlItems(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ IdlItemsContext _localctx = new IdlItemsContext(_ctx, _parentState);
+ IdlItemsContext _prevctx = _localctx;
+ int _startState = 6;
+ enterRecursionRule(_localctx, 6, RULE_idlItems, _p);
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ {
+ setState(86);
+ idlItem();
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(92);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,1,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( _parseListeners!=null ) triggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ {
+ _localctx = new IdlItemsContext(_parentctx, _parentState);
+ pushNewRecursionContext(_localctx, _startState, RULE_idlItems);
+ setState(88);
+ if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
+ setState(89);
+ idlItem();
+ }
+ }
+ }
+ setState(94);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,1,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class IdlItemContext extends ParserRuleContext {
+ public IntentContext intent() {
+ return getRuleContext(IntentContext.class,0);
+ }
+ public FragContext frag() {
+ return getRuleContext(FragContext.class,0);
+ }
+ public ImpContext imp() {
+ return getRuleContext(ImpContext.class,0);
+ }
+ public IdlItemContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_idlItem; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterIdlItem(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitIdlItem(this);
+ }
+ }
+
+ public final IdlItemContext idlItem() throws RecognitionException {
+ IdlItemContext _localctx = new IdlItemContext(_ctx, getState());
+ enterRule(_localctx, 8, RULE_idlItem);
+ try {
+ setState(98);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case T__1:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(95);
+ intent();
+ }
+ break;
+ case FRAG:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(96);
+ frag();
+ }
+ break;
+ case T__0:
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(97);
+ imp();
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class ImpContext extends ParserRuleContext {
+ public TerminalNode LPAR() { return getToken(NCIntentIdlParser.LPAR, 0); }
+ public QstringContext qstring() {
+ return getRuleContext(QstringContext.class,0);
+ }
+ public TerminalNode RPAR() { return getToken(NCIntentIdlParser.RPAR, 0); }
+ public ImpContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_imp; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterImp(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitImp(this);
+ }
+ }
+
+ public final ImpContext imp() throws RecognitionException {
+ ImpContext _localctx = new ImpContext(_ctx, getState());
+ enterRule(_localctx, 10, RULE_imp);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(100);
+ match(T__0);
+ setState(101);
+ match(LPAR);
+ setState(102);
+ qstring();
+ setState(103);
+ match(RPAR);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class FragContext extends ParserRuleContext {
+ public FragIdContext fragId() {
+ return getRuleContext(FragIdContext.class,0);
+ }
+ public TermsContext terms() {
+ return getRuleContext(TermsContext.class,0);
+ }
+ public FragContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_frag; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterFrag(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitFrag(this);
+ }
+ }
+
+ public final FragContext frag() throws RecognitionException {
+ FragContext _localctx = new FragContext(_ctx, getState());
+ enterRule(_localctx, 12, RULE_frag);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(105);
+ fragId();
+ setState(106);
+ terms(0);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class FragIdContext extends ParserRuleContext {
+ public TerminalNode FRAG() { return getToken(NCIntentIdlParser.FRAG, 0); }
+ public TerminalNode ASSIGN() { return getToken(NCIntentIdlParser.ASSIGN, 0); }
+ public IdContext id() {
+ return getRuleContext(IdContext.class,0);
+ }
+ public FragIdContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_fragId; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterFragId(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitFragId(this);
+ }
+ }
+
+ public final FragIdContext fragId() throws RecognitionException {
+ FragIdContext _localctx = new FragIdContext(_ctx, getState());
+ enterRule(_localctx, 14, RULE_fragId);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(108);
+ match(FRAG);
+ setState(109);
+ match(ASSIGN);
+ setState(110);
+ id();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class FragRefContext extends ParserRuleContext {
+ public TerminalNode FRAG() { return getToken(NCIntentIdlParser.FRAG, 0); }
+ public TerminalNode LPAR() { return getToken(NCIntentIdlParser.LPAR, 0); }
+ public IdContext id() {
+ return getRuleContext(IdContext.class,0);
+ }
+ public TerminalNode RPAR() { return getToken(NCIntentIdlParser.RPAR, 0); }
+ public FragMetaContext fragMeta() {
+ return getRuleContext(FragMetaContext.class,0);
+ }
+ public FragRefContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_fragRef; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterFragRef(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitFragRef(this);
+ }
+ }
+
+ public final FragRefContext fragRef() throws RecognitionException {
+ FragRefContext _localctx = new FragRefContext(_ctx, getState());
+ enterRule(_localctx, 16, RULE_fragRef);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(112);
+ match(FRAG);
+ setState(113);
+ match(LPAR);
+ setState(114);
+ id();
+ setState(116);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==COMMA) {
+ {
+ setState(115);
+ fragMeta();
+ }
+ }
+
+ setState(118);
+ match(RPAR);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class FragMetaContext extends ParserRuleContext {
+ public TerminalNode COMMA() { return getToken(NCIntentIdlParser.COMMA, 0); }
+ public JsonObjContext jsonObj() {
+ return getRuleContext(JsonObjContext.class,0);
+ }
+ public FragMetaContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_fragMeta; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterFragMeta(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitFragMeta(this);
+ }
+ }
+
+ public final FragMetaContext fragMeta() throws RecognitionException {
+ FragMetaContext _localctx = new FragMetaContext(_ctx, getState());
+ enterRule(_localctx, 18, RULE_fragMeta);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(120);
+ match(COMMA);
+ setState(121);
+ jsonObj();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class IntentContext extends ParserRuleContext {
+ public IntentIdContext intentId() {
+ return getRuleContext(IntentIdContext.class,0);
+ }
+ public TermsContext terms() {
+ return getRuleContext(TermsContext.class,0);
+ }
+ public OrderedDeclContext orderedDecl() {
+ return getRuleContext(OrderedDeclContext.class,0);
+ }
+ public FlowDeclContext flowDecl() {
+ return getRuleContext(FlowDeclContext.class,0);
+ }
+ public MetaDeclContext metaDecl() {
+ return getRuleContext(MetaDeclContext.class,0);
+ }
+ public IntentContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_intent; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterIntent(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitIntent(this);
+ }
+ }
+
+ public final IntentContext intent() throws RecognitionException {
+ IntentContext _localctx = new IntentContext(_ctx, getState());
+ enterRule(_localctx, 20, RULE_intent);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(123);
+ intentId();
+ setState(125);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==T__2) {
+ {
+ setState(124);
+ orderedDecl();
+ }
+ }
+
+ setState(128);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==T__3) {
+ {
+ setState(127);
+ flowDecl();
+ }
+ }
+
+ setState(131);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==T__4) {
+ {
+ setState(130);
+ metaDecl();
+ }
+ }
+
+ setState(133);
+ terms(0);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class IntentIdContext extends ParserRuleContext {
+ public TerminalNode ASSIGN() { return getToken(NCIntentIdlParser.ASSIGN, 0); }
+ public IdContext id() {
+ return getRuleContext(IdContext.class,0);
+ }
+ public IntentIdContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_intentId; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterIntentId(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitIntentId(this);
+ }
+ }
+
+ public final IntentIdContext intentId() throws RecognitionException {
+ IntentIdContext _localctx = new IntentIdContext(_ctx, getState());
+ enterRule(_localctx, 22, RULE_intentId);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(135);
+ match(T__1);
+ setState(136);
+ match(ASSIGN);
+ setState(137);
+ id();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class OrderedDeclContext extends ParserRuleContext {
+ public TerminalNode ASSIGN() { return getToken(NCIntentIdlParser.ASSIGN, 0); }
+ public TerminalNode BOOL() { return getToken(NCIntentIdlParser.BOOL, 0); }
+ public OrderedDeclContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_orderedDecl; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterOrderedDecl(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitOrderedDecl(this);
+ }
+ }
+
+ public final OrderedDeclContext orderedDecl() throws RecognitionException {
+ OrderedDeclContext _localctx = new OrderedDeclContext(_ctx, getState());
+ enterRule(_localctx, 24, RULE_orderedDecl);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(139);
+ match(T__2);
+ setState(140);
+ match(ASSIGN);
+ setState(141);
+ match(BOOL);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class MtdDeclContext extends ParserRuleContext {
+ public List<TerminalNode> DIV() { return getTokens(NCIntentIdlParser.DIV); }
+ public TerminalNode DIV(int i) {
+ return getToken(NCIntentIdlParser.DIV, i);
+ }
+ public MtdRefContext mtdRef() {
+ return getRuleContext(MtdRefContext.class,0);
+ }
+ public MtdDeclContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_mtdDecl; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterMtdDecl(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitMtdDecl(this);
+ }
+ }
+
+ public final MtdDeclContext mtdDecl() throws RecognitionException {
+ MtdDeclContext _localctx = new MtdDeclContext(_ctx, getState());
+ enterRule(_localctx, 26, RULE_mtdDecl);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(143);
+ match(DIV);
+ setState(144);
+ mtdRef();
+ setState(145);
+ match(DIV);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class FlowDeclContext extends ParserRuleContext {
+ public TerminalNode ASSIGN() { return getToken(NCIntentIdlParser.ASSIGN, 0); }
+ public QstringContext qstring() {
+ return getRuleContext(QstringContext.class,0);
+ }
+ public MtdDeclContext mtdDecl() {
+ return getRuleContext(MtdDeclContext.class,0);
+ }
+ public FlowDeclContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_flowDecl; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterFlowDecl(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitFlowDecl(this);
+ }
+ }
+
+ public final FlowDeclContext flowDecl() throws RecognitionException {
+ FlowDeclContext _localctx = new FlowDeclContext(_ctx, getState());
+ enterRule(_localctx, 28, RULE_flowDecl);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(147);
+ match(T__3);
+ setState(148);
+ match(ASSIGN);
+ setState(151);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case SQSTRING:
+ case DQSTRING:
+ {
+ setState(149);
+ qstring();
+ }
+ break;
+ case DIV:
+ {
+ setState(150);
+ mtdDecl();
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class MetaDeclContext extends ParserRuleContext {
+ public TerminalNode ASSIGN() { return getToken(NCIntentIdlParser.ASSIGN, 0); }
+ public JsonObjContext jsonObj() {
+ return getRuleContext(JsonObjContext.class,0);
+ }
+ public MetaDeclContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_metaDecl; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterMetaDecl(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitMetaDecl(this);
+ }
+ }
+
+ public final MetaDeclContext metaDecl() throws RecognitionException {
+ MetaDeclContext _localctx = new MetaDeclContext(_ctx, getState());
+ enterRule(_localctx, 30, RULE_metaDecl);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(153);
+ match(T__4);
+ setState(154);
+ match(ASSIGN);
+ setState(155);
+ jsonObj();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class JsonObjContext extends ParserRuleContext {
+ public TerminalNode LBRACE() { return getToken(NCIntentIdlParser.LBRACE, 0); }
+ public List<JsonPairContext> jsonPair() {
+ return getRuleContexts(JsonPairContext.class);
+ }
+ public JsonPairContext jsonPair(int i) {
+ return getRuleContext(JsonPairContext.class,i);
+ }
+ public TerminalNode RBRACE() { return getToken(NCIntentIdlParser.RBRACE, 0); }
+ public List<TerminalNode> COMMA() { return getTokens(NCIntentIdlParser.COMMA); }
+ public TerminalNode COMMA(int i) {
+ return getToken(NCIntentIdlParser.COMMA, i);
+ }
+ public JsonObjContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_jsonObj; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterJsonObj(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitJsonObj(this);
+ }
+ }
+
+ public final JsonObjContext jsonObj() throws RecognitionException {
+ JsonObjContext _localctx = new JsonObjContext(_ctx, getState());
+ enterRule(_localctx, 32, RULE_jsonObj);
+ int _la;
+ try {
+ setState(170);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,9,_ctx) ) {
+ case 1:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(157);
+ match(LBRACE);
+ setState(158);
+ jsonPair();
+ setState(163);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==COMMA) {
+ {
+ {
+ setState(159);
+ match(COMMA);
+ setState(160);
+ jsonPair();
+ }
+ }
+ setState(165);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(166);
+ match(RBRACE);
+ }
+ break;
+ case 2:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(168);
+ match(LBRACE);
+ setState(169);
+ match(RBRACE);
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class JsonPairContext extends ParserRuleContext {
+ public QstringContext qstring() {
+ return getRuleContext(QstringContext.class,0);
+ }
+ public TerminalNode COLON() { return getToken(NCIntentIdlParser.COLON, 0); }
+ public JsonValContext jsonVal() {
+ return getRuleContext(JsonValContext.class,0);
+ }
+ public JsonPairContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_jsonPair; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterJsonPair(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitJsonPair(this);
+ }
+ }
+
+ public final JsonPairContext jsonPair() throws RecognitionException {
+ JsonPairContext _localctx = new JsonPairContext(_ctx, getState());
+ enterRule(_localctx, 34, RULE_jsonPair);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(172);
+ qstring();
+ setState(173);
+ match(COLON);
+ setState(174);
+ jsonVal();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class JsonValContext extends ParserRuleContext {
+ public QstringContext qstring() {
+ return getRuleContext(QstringContext.class,0);
+ }
+ public TerminalNode INT() { return getToken(NCIntentIdlParser.INT, 0); }
+ public TerminalNode MINUS() { return getToken(NCIntentIdlParser.MINUS, 0); }
+ public TerminalNode REAL() { return getToken(NCIntentIdlParser.REAL, 0); }
+ public TerminalNode EXP() { return getToken(NCIntentIdlParser.EXP, 0); }
+ public JsonObjContext jsonObj() {
+ return getRuleContext(JsonObjContext.class,0);
+ }
+ public JsonArrContext jsonArr() {
+ return getRuleContext(JsonArrContext.class,0);
+ }
+ public TerminalNode BOOL() { return getToken(NCIntentIdlParser.BOOL, 0); }
+ public TerminalNode NULL() { return getToken(NCIntentIdlParser.NULL, 0); }
+ public JsonValContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_jsonVal; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterJsonVal(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitJsonVal(this);
+ }
+ }
+
+ public final JsonValContext jsonVal() throws RecognitionException {
+ JsonValContext _localctx = new JsonValContext(_ctx, getState());
+ enterRule(_localctx, 36, RULE_jsonVal);
+ int _la;
+ try {
+ setState(191);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case SQSTRING:
+ case DQSTRING:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(176);
+ qstring();
+ }
+ break;
+ case MINUS:
+ case INT:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(178);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==MINUS) {
+ {
+ setState(177);
+ match(MINUS);
+ }
+ }
+
+ setState(180);
+ match(INT);
+ setState(182);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==REAL) {
+ {
+ setState(181);
+ match(REAL);
+ }
+ }
+
+ setState(185);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==EXP) {
+ {
+ setState(184);
+ match(EXP);
+ }
+ }
+
+ }
+ break;
+ case LBRACE:
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(187);
+ jsonObj();
+ }
+ break;
+ case LBR:
+ enterOuterAlt(_localctx, 4);
+ {
+ setState(188);
+ jsonArr();
+ }
+ break;
+ case BOOL:
+ enterOuterAlt(_localctx, 5);
+ {
+ setState(189);
+ match(BOOL);
+ }
+ break;
+ case NULL:
+ enterOuterAlt(_localctx, 6);
+ {
+ setState(190);
+ match(NULL);
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class JsonArrContext extends ParserRuleContext {
+ public TerminalNode LBR() { return getToken(NCIntentIdlParser.LBR, 0); }
+ public List<JsonValContext> jsonVal() {
+ return getRuleContexts(JsonValContext.class);
+ }
+ public JsonValContext jsonVal(int i) {
+ return getRuleContext(JsonValContext.class,i);
+ }
+ public TerminalNode RBR() { return getToken(NCIntentIdlParser.RBR, 0); }
+ public List<TerminalNode> COMMA() { return getTokens(NCIntentIdlParser.COMMA); }
+ public TerminalNode COMMA(int i) {
+ return getToken(NCIntentIdlParser.COMMA, i);
+ }
+ public JsonArrContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_jsonArr; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterJsonArr(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitJsonArr(this);
+ }
+ }
+
+ public final JsonArrContext jsonArr() throws RecognitionException {
+ JsonArrContext _localctx = new JsonArrContext(_ctx, getState());
+ enterRule(_localctx, 38, RULE_jsonArr);
+ int _la;
+ try {
+ setState(206);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,15,_ctx) ) {
+ case 1:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(193);
+ match(LBR);
+ setState(194);
+ jsonVal();
+ setState(199);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==COMMA) {
+ {
+ {
+ setState(195);
+ match(COMMA);
+ setState(196);
+ jsonVal();
+ }
+ }
+ setState(201);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(202);
+ match(RBR);
+ }
+ break;
+ case 2:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(204);
+ match(LBR);
+ setState(205);
+ match(RBR);
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class TermsContext extends ParserRuleContext {
+ public TermItemContext termItem() {
+ return getRuleContext(TermItemContext.class,0);
+ }
+ public TermsContext terms() {
+ return getRuleContext(TermsContext.class,0);
+ }
+ public TermsContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_terms; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterTerms(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitTerms(this);
+ }
+ }
+
+ public final TermsContext terms() throws RecognitionException {
+ return terms(0);
+ }
+
+ private TermsContext terms(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ TermsContext _localctx = new TermsContext(_ctx, _parentState);
+ TermsContext _prevctx = _localctx;
+ int _startState = 40;
+ enterRecursionRule(_localctx, 40, RULE_terms, _p);
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ {
+ setState(209);
+ termItem();
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(215);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,16,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( _parseListeners!=null ) triggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ {
+ _localctx = new TermsContext(_parentctx, _parentState);
+ pushNewRecursionContext(_localctx, _startState, RULE_terms);
+ setState(211);
+ if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
+ setState(212);
+ termItem();
+ }
+ }
+ }
+ setState(217);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,16,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class TermItemContext extends ParserRuleContext {
+ public TermContext term() {
+ return getRuleContext(TermContext.class,0);
+ }
+ public FragRefContext fragRef() {
+ return getRuleContext(FragRefContext.class,0);
+ }
+ public TermItemContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_termItem; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterTermItem(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitTermItem(this);
+ }
+ }
+
+ public final TermItemContext termItem() throws RecognitionException {
+ TermItemContext _localctx = new TermItemContext(_ctx, getState());
+ enterRule(_localctx, 42, RULE_termItem);
+ try {
+ setState(220);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case T__5:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(218);
+ term();
+ }
+ break;
+ case FRAG:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(219);
+ fragRef();
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class TermEqContext extends ParserRuleContext {
+ public TerminalNode ASSIGN() { return getToken(NCIntentIdlParser.ASSIGN, 0); }
+ public TerminalNode TILDA() { return getToken(NCIntentIdlParser.TILDA, 0); }
+ public TermEqContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_termEq; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterTermEq(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitTermEq(this);
+ }
+ }
+
+ public final TermEqContext termEq() throws RecognitionException {
+ TermEqContext _localctx = new TermEqContext(_ctx, getState());
+ enterRule(_localctx, 44, RULE_termEq);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(222);
+ _la = _input.LA(1);
+ if ( !(_la==TILDA || _la==ASSIGN) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class TermContext extends ParserRuleContext {
+ public TermEqContext termEq() {
+ return getRuleContext(TermEqContext.class,0);
+ }
+ public MtdDeclContext mtdDecl() {
+ return getRuleContext(MtdDeclContext.class,0);
+ }
+ public TermIdContext termId() {
+ return getRuleContext(TermIdContext.class,0);
+ }
+ public MinMaxContext minMax() {
+ return getRuleContext(MinMaxContext.class,0);
+ }
+ public TerminalNode LBRACE() { return getToken(NCIntentIdlParser.LBRACE, 0); }
+ public ExprContext expr() {
+ return getRuleContext(ExprContext.class,0);
+ }
+ public TerminalNode RBRACE() { return getToken(NCIntentIdlParser.RBRACE, 0); }
+ public TermContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_term; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterTerm(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitTerm(this);
+ }
+ }
+
+ public final TermContext term() throws RecognitionException {
+ TermContext _localctx = new TermContext(_ctx, getState());
+ enterRule(_localctx, 46, RULE_term);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(224);
+ match(T__5);
+ setState(226);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==LPAR) {
+ {
+ setState(225);
+ termId();
+ }
+ }
+
+ setState(228);
+ termEq();
+ setState(234);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case LBRACE:
+ {
+ {
+ setState(229);
+ match(LBRACE);
+ setState(230);
+ expr(0);
+ setState(231);
+ match(RBRACE);
+ }
+ }
+ break;
+ case DIV:
+ {
+ setState(233);
+ mtdDecl();
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ setState(237);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) {
+ case 1:
+ {
+ setState(236);
+ minMax();
+ }
+ break;
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class MtdRefContext extends ParserRuleContext {
+ public TerminalNode POUND() { return getToken(NCIntentIdlParser.POUND, 0); }
+ public IdContext id() {
+ return getRuleContext(IdContext.class,0);
+ }
+ public JavaFqnContext javaFqn() {
+ return getRuleContext(JavaFqnContext.class,0);
+ }
+ public MtdRefContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_mtdRef; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterMtdRef(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitMtdRef(this);
+ }
+ }
+
+ public final MtdRefContext mtdRef() throws RecognitionException {
+ MtdRefContext _localctx = new MtdRefContext(_ctx, getState());
+ enterRule(_localctx, 48, RULE_mtdRef);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(240);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==FUN_NAME || _la==ID) {
+ {
+ setState(239);
+ javaFqn(0);
+ }
+ }
+
+ setState(242);
+ match(POUND);
+ setState(243);
+ id();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class JavaFqnContext extends ParserRuleContext {
+ public IdContext id() {
+ return getRuleContext(IdContext.class,0);
+ }
+ public JavaFqnContext javaFqn() {
+ return getRuleContext(JavaFqnContext.class,0);
+ }
+ public TerminalNode DOT() { return getToken(NCIntentIdlParser.DOT, 0); }
+ public JavaFqnContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_javaFqn; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterJavaFqn(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitJavaFqn(this);
+ }
+ }
+
+ public final JavaFqnContext javaFqn() throws RecognitionException {
+ return javaFqn(0);
+ }
+
+ private JavaFqnContext javaFqn(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ JavaFqnContext _localctx = new JavaFqnContext(_ctx, _parentState);
+ JavaFqnContext _prevctx = _localctx;
+ int _startState = 50;
+ enterRecursionRule(_localctx, 50, RULE_javaFqn, _p);
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ {
+ setState(246);
+ id();
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(253);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,22,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( _parseListeners!=null ) triggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ {
+ _localctx = new JavaFqnContext(_parentctx, _parentState);
+ pushNewRecursionContext(_localctx, _startState, RULE_javaFqn);
+ setState(248);
+ if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
+ setState(249);
+ match(DOT);
+ setState(250);
+ id();
+ }
+ }
+ }
+ setState(255);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,22,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class TermIdContext extends ParserRuleContext {
+ public TerminalNode LPAR() { return getToken(NCIntentIdlParser.LPAR, 0); }
+ public IdContext id() {
+ return getRuleContext(IdContext.class,0);
+ }
+ public TerminalNode RPAR() { return getToken(NCIntentIdlParser.RPAR, 0); }
+ public TermIdContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_termId; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterTermId(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitTermId(this);
+ }
+ }
+
+ public final TermIdContext termId() throws RecognitionException {
+ TermIdContext _localctx = new TermIdContext(_ctx, getState());
+ enterRule(_localctx, 52, RULE_termId);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(256);
+ match(LPAR);
+ setState(257);
+ id();
+ setState(258);
+ match(RPAR);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class ExprContext extends ParserRuleContext {
+ public ExprContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_expr; }
+
+ public ExprContext() { }
+ public void copyFrom(ExprContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class ParExprContext extends ExprContext {
+ public TerminalNode LPAR() { return getToken(NCIntentIdlParser.LPAR, 0); }
+ public ExprContext expr() {
+ return getRuleContext(ExprContext.class,0);
+ }
+ public TerminalNode RPAR() { return getToken(NCIntentIdlParser.RPAR, 0); }
+ public ParExprContext(ExprContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterParExpr(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitParExpr(this);
+ }
+ }
+ public static class UnaryExprContext extends ExprContext {
+ public Token op;
+ public ExprContext expr() {
+ return getRuleContext(ExprContext.class,0);
+ }
+ public TerminalNode MINUS() { return getToken(NCIntentIdlParser.MINUS, 0); }
+ public TerminalNode NOT() { return getToken(NCIntentIdlParser.NOT, 0); }
+ public UnaryExprContext(ExprContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterUnaryExpr(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitUnaryExpr(this);
+ }
+ }
+ public static class CompExprContext extends ExprContext {
+ public Token op;
+ public List<ExprContext> expr() {
+ return getRuleContexts(ExprContext.class);
+ }
+ public ExprContext expr(int i) {
+ return getRuleContext(ExprContext.class,i);
+ }
+ public TerminalNode LTEQ() { return getToken(NCIntentIdlParser.LTEQ, 0); }
+ public TerminalNode GTEQ() { return getToken(NCIntentIdlParser.GTEQ, 0); }
+ public TerminalNode LT() { return getToken(NCIntentIdlParser.LT, 0); }
+ public TerminalNode GT() { return getToken(NCIntentIdlParser.GT, 0); }
+ public CompExprContext(ExprContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterCompExpr(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitCompExpr(this);
+ }
+ }
+ public static class PlusMinusExprContext extends ExprContext {
+ public Token op;
+ public List<ExprContext> expr() {
+ return getRuleContexts(ExprContext.class);
+ }
+ public ExprContext expr(int i) {
+ return getRuleContext(ExprContext.class,i);
+ }
+ public TerminalNode PLUS() { return getToken(NCIntentIdlParser.PLUS, 0); }
+ public TerminalNode MINUS() { return getToken(NCIntentIdlParser.MINUS, 0); }
+ public PlusMinusExprContext(ExprContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterPlusMinusExpr(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitPlusMinusExpr(this);
+ }
+ }
+ public static class AtomExprContext extends ExprContext {
+ public AtomContext atom() {
+ return getRuleContext(AtomContext.class,0);
+ }
+ public AtomExprContext(ExprContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterAtomExpr(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitAtomExpr(this);
+ }
+ }
+ public static class MultDivModExprContext extends ExprContext {
+ public Token op;
+ public List<ExprContext> expr() {
+ return getRuleContexts(ExprContext.class);
+ }
+ public ExprContext expr(int i) {
+ return getRuleContext(ExprContext.class,i);
+ }
+ public TerminalNode MULT() { return getToken(NCIntentIdlParser.MULT, 0); }
+ public TerminalNode DIV() { return getToken(NCIntentIdlParser.DIV, 0); }
+ public TerminalNode MOD() { return getToken(NCIntentIdlParser.MOD, 0); }
+ public MultDivModExprContext(ExprContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterMultDivModExpr(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitMultDivModExpr(this);
+ }
+ }
+ public static class AndOrExprContext extends ExprContext {
+ public Token op;
+ public List<ExprContext> expr() {
+ return getRuleContexts(ExprContext.class);
+ }
+ public ExprContext expr(int i) {
+ return getRuleContext(ExprContext.class,i);
+ }
+ public TerminalNode AND() { return getToken(NCIntentIdlParser.AND, 0); }
+ public TerminalNode OR() { return getToken(NCIntentIdlParser.OR, 0); }
+ public AndOrExprContext(ExprContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterAndOrExpr(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitAndOrExpr(this);
+ }
+ }
+ public static class CallExprContext extends ExprContext {
+ public TerminalNode FUN_NAME() { return getToken(NCIntentIdlParser.FUN_NAME, 0); }
+ public TerminalNode LPAR() { return getToken(NCIntentIdlParser.LPAR, 0); }
+ public TerminalNode RPAR() { return getToken(NCIntentIdlParser.RPAR, 0); }
+ public ParamListContext paramList() {
+ return getRuleContext(ParamListContext.class,0);
+ }
+ public CallExprContext(ExprContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterCallExpr(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitCallExpr(this);
+ }
+ }
+ public static class EqNeqExprContext extends ExprContext {
+ public Token op;
+ public List<ExprContext> expr() {
+ return getRuleContexts(ExprContext.class);
+ }
+ public ExprContext expr(int i) {
+ return getRuleContext(ExprContext.class,i);
+ }
+ public TerminalNode EQ() { return getToken(NCIntentIdlParser.EQ, 0); }
+ public TerminalNode NEQ() { return getToken(NCIntentIdlParser.NEQ, 0); }
+ public EqNeqExprContext(ExprContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterEqNeqExpr(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitEqNeqExpr(this);
+ }
+ }
+
+ public final ExprContext expr() throws RecognitionException {
+ return expr(0);
+ }
+
+ private ExprContext expr(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ ExprContext _localctx = new ExprContext(_ctx, _parentState);
+ ExprContext _prevctx = _localctx;
+ int _startState = 54;
+ enterRecursionRule(_localctx, 54, RULE_expr, _p);
+ int _la;
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(274);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case NOT:
+ case MINUS:
+ {
+ _localctx = new UnaryExprContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+
+ setState(261);
+ ((UnaryExprContext)_localctx).op = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==NOT || _la==MINUS) ) {
+ ((UnaryExprContext)_localctx).op = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(262);
+ expr(9);
+ }
+ break;
+ case LPAR:
+ {
+ _localctx = new ParExprContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(263);
+ match(LPAR);
+ setState(264);
+ expr(0);
+ setState(265);
+ match(RPAR);
+ }
+ break;
+ case SQSTRING:
+ case DQSTRING:
+ case BOOL:
+ case NULL:
+ case INT:
+ {
+ _localctx = new AtomExprContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(267);
+ atom();
+ }
+ break;
+ case FUN_NAME:
+ {
+ _localctx = new CallExprContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(268);
+ match(FUN_NAME);
+ setState(269);
+ match(LPAR);
+ setState(271);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << FUN_NAME) | (1L << SQSTRING) | (1L << DQSTRING) | (1L << BOOL) | (1L << NULL) | (1L << NOT) | (1L << LPAR) | (1L << MINUS) | (1L << INT))) != 0)) {
+ {
+ setState(270);
+ paramList(0);
+ }
+ }
+
+ setState(273);
+ match(RPAR);
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(293);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,26,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( _parseListeners!=null ) triggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ setState(291);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) {
+ case 1:
+ {
+ _localctx = new MultDivModExprContext(new ExprContext(_parentctx, _parentState));
+ pushNewRecursionContext(_localctx, _startState, RULE_expr);
+ setState(276);
+ if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
+ setState(277);
+ ((MultDivModExprContext)_localctx).op = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << MULT) | (1L << DIV) | (1L << MOD))) != 0)) ) {
+ ((MultDivModExprContext)_localctx).op = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(278);
+ expr(8);
+ }
+ break;
+ case 2:
+ {
+ _localctx = new PlusMinusExprContext(new ExprContext(_parentctx, _parentState));
+ pushNewRecursionContext(_localctx, _startState, RULE_expr);
+ setState(279);
+ if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
+ setState(280);
+ ((PlusMinusExprContext)_localctx).op = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==MINUS || _la==PLUS) ) {
+ ((PlusMinusExprContext)_localctx).op = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(281);
+ expr(7);
+ }
+ break;
+ case 3:
+ {
+ _localctx = new CompExprContext(new ExprContext(_parentctx, _parentState));
+ pushNewRecursionContext(_localctx, _startState, RULE_expr);
+ setState(282);
+ if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
+ setState(283);
+ ((CompExprContext)_localctx).op = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << GTEQ) | (1L << LTEQ) | (1L << GT) | (1L << LT))) != 0)) ) {
+ ((CompExprContext)_localctx).op = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(284);
+ expr(6);
+ }
+ break;
+ case 4:
+ {
+ _localctx = new EqNeqExprContext(new ExprContext(_parentctx, _parentState));
+ pushNewRecursionContext(_localctx, _startState, RULE_expr);
+ setState(285);
+ if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
+ setState(286);
+ ((EqNeqExprContext)_localctx).op = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==EQ || _la==NEQ) ) {
+ ((EqNeqExprContext)_localctx).op = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(287);
+ expr(5);
+ }
+ break;
+ case 5:
+ {
+ _localctx = new AndOrExprContext(new ExprContext(_parentctx, _parentState));
+ pushNewRecursionContext(_localctx, _startState, RULE_expr);
+ setState(288);
+ if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
+ setState(289);
+ ((AndOrExprContext)_localctx).op = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==AND || _la==OR) ) {
+ ((AndOrExprContext)_localctx).op = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(290);
+ expr(4);
+ }
+ break;
+ }
+ }
+ }
+ setState(295);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,26,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class ParamListContext extends ParserRuleContext {
+ public ExprContext expr() {
+ return getRuleContext(ExprContext.class,0);
+ }
+ public ParamListContext paramList() {
+ return getRuleContext(ParamListContext.class,0);
+ }
+ public TerminalNode COMMA() { return getToken(NCIntentIdlParser.COMMA, 0); }
+ public ParamListContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_paramList; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterParamList(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitParamList(this);
+ }
+ }
+
+ public final ParamListContext paramList() throws RecognitionException {
+ return paramList(0);
+ }
+
+ private ParamListContext paramList(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ ParamListContext _localctx = new ParamListContext(_ctx, _parentState);
+ ParamListContext _prevctx = _localctx;
+ int _startState = 56;
+ enterRecursionRule(_localctx, 56, RULE_paramList, _p);
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ {
+ setState(297);
+ expr(0);
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(304);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,27,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( _parseListeners!=null ) triggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ {
+ _localctx = new ParamListContext(_parentctx, _parentState);
+ pushNewRecursionContext(_localctx, _startState, RULE_paramList);
+ setState(299);
+ if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
+ setState(300);
+ match(COMMA);
+ setState(301);
+ expr(0);
+ }
+ }
+ }
+ setState(306);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,27,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class AtomContext extends ParserRuleContext {
+ public TerminalNode NULL() { return getToken(NCIntentIdlParser.NULL, 0); }
+ public TerminalNode INT() { return getToken(NCIntentIdlParser.INT, 0); }
+ public TerminalNode REAL() { return getToken(NCIntentIdlParser.REAL, 0); }
+ public TerminalNode EXP() { return getToken(NCIntentIdlParser.EXP, 0); }
+ public TerminalNode BOOL() { return getToken(NCIntentIdlParser.BOOL, 0); }
+ public QstringContext qstring() {
+ return getRuleContext(QstringContext.class,0);
+ }
+ public AtomContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_atom; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterAtom(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitAtom(this);
+ }
+ }
+
+ public final AtomContext atom() throws RecognitionException {
+ AtomContext _localctx = new AtomContext(_ctx, getState());
+ enterRule(_localctx, 58, RULE_atom);
+ try {
+ setState(317);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case NULL:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(307);
+ match(NULL);
+ }
+ break;
+ case INT:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(308);
+ match(INT);
+ setState(310);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,28,_ctx) ) {
+ case 1:
+ {
+ setState(309);
+ match(REAL);
+ }
+ break;
+ }
+ setState(313);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,29,_ctx) ) {
+ case 1:
+ {
+ setState(312);
+ match(EXP);
+ }
+ break;
+ }
+ }
+ break;
+ case BOOL:
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(315);
+ match(BOOL);
+ }
+ break;
+ case SQSTRING:
+ case DQSTRING:
+ enterOuterAlt(_localctx, 4);
+ {
+ setState(316);
+ qstring();
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class QstringContext extends ParserRuleContext {
+ public TerminalNode SQSTRING() { return getToken(NCIntentIdlParser.SQSTRING, 0); }
+ public TerminalNode DQSTRING() { return getToken(NCIntentIdlParser.DQSTRING, 0); }
+ public QstringContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_qstring; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterQstring(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitQstring(this);
+ }
+ }
+
+ public final QstringContext qstring() throws RecognitionException {
+ QstringContext _localctx = new QstringContext(_ctx, getState());
+ enterRule(_localctx, 60, RULE_qstring);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(319);
+ _la = _input.LA(1);
+ if ( !(_la==SQSTRING || _la==DQSTRING) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class MinMaxContext extends ParserRuleContext {
+ public MinMaxShortcutContext minMaxShortcut() {
+ return getRuleContext(MinMaxShortcutContext.class,0);
+ }
+ public MinMaxRangeContext minMaxRange() {
+ return getRuleContext(MinMaxRangeContext.class,0);
+ }
+ public MinMaxContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_minMax; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterMinMax(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitMinMax(this);
+ }
+ }
+
+ public final MinMaxContext minMax() throws RecognitionException {
+ MinMaxContext _localctx = new MinMaxContext(_ctx, getState());
+ enterRule(_localctx, 62, RULE_minMax);
+ try {
+ setState(323);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case PLUS:
+ case QUESTION:
+ case MULT:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(321);
+ minMaxShortcut();
+ }
+ break;
+ case LBR:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(322);
+ minMaxRange();
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class MinMaxShortcutContext extends ParserRuleContext {
+ public TerminalNode PLUS() { return getToken(NCIntentIdlParser.PLUS, 0); }
+ public TerminalNode QUESTION() { return getToken(NCIntentIdlParser.QUESTION, 0); }
+ public TerminalNode MULT() { return getToken(NCIntentIdlParser.MULT, 0); }
+ public MinMaxShortcutContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_minMaxShortcut; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterMinMaxShortcut(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitMinMaxShortcut(this);
+ }
+ }
+
+ public final MinMaxShortcutContext minMaxShortcut() throws RecognitionException {
+ MinMaxShortcutContext _localctx = new MinMaxShortcutContext(_ctx, getState());
+ enterRule(_localctx, 64, RULE_minMaxShortcut);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(325);
+ _la = _input.LA(1);
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << PLUS) | (1L << QUESTION) | (1L << MULT))) != 0)) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class MinMaxRangeContext extends ParserRuleContext {
+ public TerminalNode LBR() { return getToken(NCIntentIdlParser.LBR, 0); }
+ public List<TerminalNode> INT() { return getTokens(NCIntentIdlParser.INT); }
+ public TerminalNode INT(int i) {
+ return getToken(NCIntentIdlParser.INT, i);
+ }
+ public TerminalNode COMMA() { return getToken(NCIntentIdlParser.COMMA, 0); }
+ public TerminalNode RBR() { return getToken(NCIntentIdlParser.RBR, 0); }
+ public MinMaxRangeContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_minMaxRange; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterMinMaxRange(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitMinMaxRange(this);
+ }
+ }
+
+ public final MinMaxRangeContext minMaxRange() throws RecognitionException {
+ MinMaxRangeContext _localctx = new MinMaxRangeContext(_ctx, getState());
+ enterRule(_localctx, 66, RULE_minMaxRange);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(327);
+ match(LBR);
+ setState(328);
+ match(INT);
+ setState(329);
+ match(COMMA);
+ setState(330);
+ match(INT);
+ setState(331);
+ match(RBR);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class IdContext extends ParserRuleContext {
+ public TerminalNode ID() { return getToken(NCIntentIdlParser.ID, 0); }
+ public TerminalNode FUN_NAME() { return getToken(NCIntentIdlParser.FUN_NAME, 0); }
+ public IdContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_id; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).enterId(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof NCIntentIdlListener ) ((NCIntentIdlListener)listener).exitId(this);
+ }
+ }
+
+ public final IdContext id() throws RecognitionException {
+ IdContext _localctx = new IdContext(_ctx, getState());
+ enterRule(_localctx, 68, RULE_id);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(333);
+ _la = _input.LA(1);
+ if ( !(_la==FUN_NAME || _la==ID) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
+ switch (ruleIndex) {
+ case 3:
+ return idlItems_sempred((IdlItemsContext)_localctx, predIndex);
+ case 20:
+ return terms_sempred((TermsContext)_localctx, predIndex);
+ case 25:
+ return javaFqn_sempred((JavaFqnContext)_localctx, predIndex);
+ case 27:
+ return expr_sempred((ExprContext)_localctx, predIndex);
+ case 28:
+ return paramList_sempred((ParamListContext)_localctx, predIndex);
+ }
+ return true;
+ }
+ private boolean idlItems_sempred(IdlItemsContext _localctx, int predIndex) {
+ switch (predIndex) {
+ case 0:
+ return precpred(_ctx, 1);
+ }
+ return true;
+ }
+ private boolean terms_sempred(TermsContext _localctx, int predIndex) {
+ switch (predIndex) {
+ case 1:
+ return precpred(_ctx, 1);
+ }
+ return true;
+ }
+ private boolean javaFqn_sempred(JavaFqnContext _localctx, int predIndex) {
+ switch (predIndex) {
+ case 2:
+ return precpred(_ctx, 1);
+ }
+ return true;
+ }
+ private boolean expr_sempred(ExprContext _localctx, int predIndex) {
+ switch (predIndex) {
+ case 3:
+ return precpred(_ctx, 7);
+ case 4:
+ return precpred(_ctx, 6);
+ case 5:
+ return precpred(_ctx, 5);
+ case 6:
+ return precpred(_ctx, 4);
+ case 7:
+ return precpred(_ctx, 3);
+ }
+ return true;
+ }
+ private boolean paramList_sempred(ParamListContext _localctx, int predIndex) {
+ switch (predIndex) {
+ case 8:
+ return precpred(_ctx, 1);
+ }
+ return true;
+ }
+
+ public static final String _serializedATN =
+ "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\65\u0152\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$\3\2\3\2\3\2\3\3\5\3M\n\3\3\3\3\3\3\3\3\3\3\3\3"+
+ "\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\7\5]\n\5\f\5\16\5`\13\5\3\6\3\6\3\6"+
+ "\5\6e\n\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\n\3\n\3\n"+
+ "\3\n\5\nw\n\n\3\n\3\n\3\13\3\13\3\13\3\f\3\f\5\f\u0080\n\f\3\f\5\f\u0083"+
+ "\n\f\3\f\5\f\u0086\n\f\3\f\3\f\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\17"+
+ "\3\17\3\17\3\17\3\20\3\20\3\20\3\20\5\20\u009a\n\20\3\21\3\21\3\21\3\21"+
+ "\3\22\3\22\3\22\3\22\7\22\u00a4\n\22\f\22\16\22\u00a7\13\22\3\22\3\22"+
+ "\3\22\3\22\5\22\u00ad\n\22\3\23\3\23\3\23\3\23\3\24\3\24\5\24\u00b5\n"+
+ "\24\3\24\3\24\5\24\u00b9\n\24\3\24\5\24\u00bc\n\24\3\24\3\24\3\24\3\24"+
+ "\5\24\u00c2\n\24\3\25\3\25\3\25\3\25\7\25\u00c8\n\25\f\25\16\25\u00cb"+
+ "\13\25\3\25\3\25\3\25\3\25\5\25\u00d1\n\25\3\26\3\26\3\26\3\26\3\26\7"+
+ "\26\u00d8\n\26\f\26\16\26\u00db\13\26\3\27\3\27\5\27\u00df\n\27\3\30\3"+
+ "\30\3\31\3\31\5\31\u00e5\n\31\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u00ed"+
+ "\n\31\3\31\5\31\u00f0\n\31\3\32\5\32\u00f3\n\32\3\32\3\32\3\32\3\33\3"+
+ "\33\3\33\3\33\3\33\3\33\7\33\u00fe\n\33\f\33\16\33\u0101\13\33\3\34\3"+
+ "\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5"+
+ "\35\u0112\n\35\3\35\5\35\u0115\n\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35"+
+ "\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\7\35\u0126\n\35\f\35\16\35\u0129"+
+ "\13\35\3\36\3\36\3\36\3\36\3\36\3\36\7\36\u0131\n\36\f\36\16\36\u0134"+
+ "\13\36\3\37\3\37\3\37\5\37\u0139\n\37\3\37\5\37\u013c\n\37\3\37\3\37\5"+
+ "\37\u0140\n\37\3 \3 \3!\3!\5!\u0146\n!\3\"\3\"\3#\3#\3#\3#\3#\3#\3$\3"+
+ "$\3$\2\7\b*\648:%\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62"+
+ "\64\668:<>@BDF\2\f\4\2\37\37((\4\2\30\30%%\3\2+-\4\2%%))\3\2\21\24\3\2"+
+ "\17\20\3\2\25\26\3\2\13\f\3\2)+\4\2\t\t\62\62\2\u015a\2H\3\2\2\2\4L\3"+
+ "\2\2\2\6S\3\2\2\2\bW\3\2\2\2\nd\3\2\2\2\ff\3\2\2\2\16k\3\2\2\2\20n\3\2"+
+ "\2\2\22r\3\2\2\2\24z\3\2\2\2\26}\3\2\2\2\30\u0089\3\2\2\2\32\u008d\3\2"+
+ "\2\2\34\u0091\3\2\2\2\36\u0095\3\2\2\2 \u009b\3\2\2\2\"\u00ac\3\2\2\2"+
+ "$\u00ae\3\2\2\2&\u00c1\3\2\2\2(\u00d0\3\2\2\2*\u00d2\3\2\2\2,\u00de\3"+
+ "\2\2\2.\u00e0\3\2\2\2\60\u00e2\3\2\2\2\62\u00f2\3\2\2\2\64\u00f7\3\2\2"+
+ "\2\66\u0102\3\2\2\28\u0114\3\2\2\2:\u012a\3\2\2\2<\u013f\3\2\2\2>\u0141"+
+ "\3\2\2\2@\u0145\3\2\2\2B\u0147\3\2\2\2D\u0149\3\2\2\2F\u014f\3\2\2\2H"+
+ "I\5\b\5\2IJ\7\2\2\3J\3\3\2\2\2KM\5\6\4\2LK\3\2\2\2LM\3\2\2\2MN\3\2\2\2"+
+ "NO\7\33\2\2OP\58\35\2PQ\7\34\2\2QR\7\2\2\3R\5\3\2\2\2ST\7 \2\2TU\5F$\2"+
+ "UV\7!\2\2V\7\3\2\2\2WX\b\5\1\2XY\5\n\6\2Y^\3\2\2\2Z[\f\3\2\2[]\5\n\6\2"+
+ "\\Z\3\2\2\2]`\3\2\2\2^\\\3\2\2\2^_\3\2\2\2_\t\3\2\2\2`^\3\2\2\2ae\5\26"+
+ "\f\2be\5\16\b\2ce\5\f\7\2da\3\2\2\2db\3\2\2\2dc\3\2\2\2e\13\3\2\2\2fg"+
+ "\7\3\2\2gh\7\31\2\2hi\5> \2ij\7\32\2\2j\r\3\2\2\2kl\5\20\t\2lm\5*\26\2"+
+ "m\17\3\2\2\2no\7\n\2\2op\7(\2\2pq\5F$\2q\21\3\2\2\2rs\7\n\2\2st\7\31\2"+
+ "\2tv\5F$\2uw\5\24\13\2vu\3\2\2\2vw\3\2\2\2wx\3\2\2\2xy\7\32\2\2y\23\3"+
+ "\2\2\2z{\7#\2\2{|\5\"\22\2|\25\3\2\2\2}\177\5\30\r\2~\u0080\5\32\16\2"+
+ "\177~\3\2\2\2\177\u0080\3\2\2\2\u0080\u0082\3\2\2\2\u0081\u0083\5\36\20"+
+ "\2\u0082\u0081\3\2\2\2\u0082\u0083\3\2\2\2\u0083\u0085\3\2\2\2\u0084\u0086"+
+ "\5 \21\2\u0085\u0084\3\2\2\2\u0085\u0086\3\2\2\2\u0086\u0087\3\2\2\2\u0087"+
+ "\u0088\5*\26\2\u0088\27\3\2\2\2\u0089\u008a\7\4\2\2\u008a\u008b\7(\2\2"+
+ "\u008b\u008c\5F$\2\u008c\31\3\2\2\2\u008d\u008e\7\5\2\2\u008e\u008f\7"+
+ "(\2\2\u008f\u0090\7\r\2\2\u0090\33\3\2\2\2\u0091\u0092\7,\2\2\u0092\u0093"+
+ "\5\62\32\2\u0093\u0094\7,\2\2\u0094\35\3\2\2\2\u0095\u0096\7\6\2\2\u0096"+
+ "\u0099\7(\2\2\u0097\u009a\5> \2\u0098\u009a\5\34\17\2\u0099\u0097\3\2"+
+ "\2\2\u0099\u0098\3\2\2\2\u009a\37\3\2\2\2\u009b\u009c\7\7\2\2\u009c\u009d"+
+ "\7(\2\2\u009d\u009e\5\"\22\2\u009e!\3\2\2\2\u009f\u00a0\7\33\2\2\u00a0"+
+ "\u00a5\5$\23\2\u00a1\u00a2\7#\2\2\u00a2\u00a4\5$\23\2\u00a3\u00a1\3\2"+
+ "\2\2\u00a4\u00a7\3\2\2\2\u00a5\u00a3\3\2\2\2\u00a5\u00a6\3\2\2\2\u00a6"+
+ "\u00a8\3\2\2\2\u00a7\u00a5\3\2\2\2\u00a8\u00a9\7\34\2\2\u00a9\u00ad\3"+
+ "\2\2\2\u00aa\u00ab\7\33\2\2\u00ab\u00ad\7\34\2\2\u00ac\u009f\3\2\2\2\u00ac"+
+ "\u00aa\3\2\2\2\u00ad#\3\2\2\2\u00ae\u00af\5> \2\u00af\u00b0\7$\2\2\u00b0"+
+ "\u00b1\5&\24\2\u00b1%\3\2\2\2\u00b2\u00c2\5> \2\u00b3\u00b5\7%\2\2\u00b4"+
+ "\u00b3\3\2\2\2\u00b4\u00b5\3\2\2\2\u00b5\u00b6\3\2\2\2\u00b6\u00b8\7/"+
+ "\2\2\u00b7\u00b9\7\60\2\2\u00b8\u00b7\3\2\2\2\u00b8\u00b9\3\2\2\2\u00b9"+
+ "\u00bb\3\2\2\2\u00ba\u00bc\7\61\2\2\u00bb\u00ba\3\2\2\2\u00bb\u00bc\3"+
+ "\2\2\2\u00bc\u00c2\3\2\2\2\u00bd\u00c2\5\"\22\2\u00be\u00c2\5(\25\2\u00bf"+
+ "\u00c2\7\r\2\2\u00c0\u00c2\7\16\2\2\u00c1\u00b2\3\2\2\2\u00c1\u00b4\3"+
+ "\2\2\2\u00c1\u00bd\3\2\2\2\u00c1\u00be\3\2\2\2\u00c1\u00bf\3\2\2\2\u00c1"+
+ "\u00c0\3\2\2\2\u00c2\'\3\2\2\2\u00c3\u00c4\7 \2\2\u00c4\u00c9\5&\24\2"+
+ "\u00c5\u00c6\7#\2\2\u00c6\u00c8\5&\24\2\u00c7\u00c5\3\2\2\2\u00c8\u00cb"+
+ "\3\2\2\2\u00c9\u00c7\3\2\2\2\u00c9\u00ca\3\2\2\2\u00ca\u00cc\3\2\2\2\u00cb"+
+ "\u00c9\3\2\2\2\u00cc\u00cd\7!\2\2\u00cd\u00d1\3\2\2\2\u00ce\u00cf\7 \2"+
+ "\2\u00cf\u00d1\7!\2\2\u00d0\u00c3\3\2\2\2\u00d0\u00ce\3\2\2\2\u00d1)\3"+
+ "\2\2\2\u00d2\u00d3\b\26\1\2\u00d3\u00d4\5,\27\2\u00d4\u00d9\3\2\2\2\u00d5"+
+ "\u00d6\f\3\2\2\u00d6\u00d8\5,\27\2\u00d7\u00d5\3\2\2\2\u00d8\u00db\3\2"+
+ "\2\2\u00d9\u00d7\3\2\2\2\u00d9\u00da\3\2\2\2\u00da+\3\2\2\2\u00db\u00d9"+
+ "\3\2\2\2\u00dc\u00df\5\60\31\2\u00dd\u00df\5\22\n\2\u00de\u00dc\3\2\2"+
+ "\2\u00de\u00dd\3\2\2\2\u00df-\3\2\2\2\u00e0\u00e1\t\2\2\2\u00e1/\3\2\2"+
+ "\2\u00e2\u00e4\7\b\2\2\u00e3\u00e5\5\66\34\2\u00e4\u00e3\3\2\2\2\u00e4"+
+ "\u00e5\3\2\2\2\u00e5\u00e6\3\2\2\2\u00e6\u00ec\5.\30\2\u00e7\u00e8\7\33"+
+ "\2\2\u00e8\u00e9\58\35\2\u00e9\u00ea\7\34\2\2\u00ea\u00ed\3\2\2\2\u00eb"+
+ "\u00ed\5\34\17\2\u00ec\u00e7\3\2\2\2\u00ec\u00eb\3\2\2\2\u00ed\u00ef\3"+
+ "\2\2\2\u00ee\u00f0\5@!\2\u00ef\u00ee\3\2\2\2\u00ef\u00f0\3\2\2\2\u00f0"+
+ "\61\3\2\2\2\u00f1\u00f3\5\64\33\2\u00f2\u00f1\3\2\2\2\u00f2\u00f3\3\2"+
+ "\2\2\u00f3\u00f4\3\2\2\2\u00f4\u00f5\7\"\2\2\u00f5\u00f6\5F$\2\u00f6\63"+
+ "\3\2\2\2\u00f7\u00f8\b\33\1\2\u00f8\u00f9\5F$\2\u00f9\u00ff\3\2\2\2\u00fa"+
+ "\u00fb\f\3\2\2\u00fb\u00fc\7&\2\2\u00fc\u00fe\5F$\2\u00fd\u00fa\3\2\2"+
+ "\2\u00fe\u0101\3\2\2\2\u00ff\u00fd\3\2\2\2\u00ff\u0100\3\2\2\2\u0100\65"+
+ "\3\2\2\2\u0101\u00ff\3\2\2\2\u0102\u0103\7\31\2\2\u0103\u0104\5F$\2\u0104"+
+ "\u0105\7\32\2\2\u0105\67\3\2\2\2\u0106\u0107\b\35\1\2\u0107\u0108\t\3"+
+ "\2\2\u0108\u0115\58\35\13\u0109\u010a\7\31\2\2\u010a\u010b\58\35\2\u010b"+
+ "\u010c\7\32\2\2\u010c\u0115\3\2\2\2\u010d\u0115\5<\37\2\u010e\u010f\7"+
+ "\t\2\2\u010f\u0111\7\31\2\2\u0110\u0112\5:\36\2\u0111\u0110\3\2\2\2\u0111"+
+ "\u0112\3\2\2\2\u0112\u0113\3\2\2\2\u0113\u0115\7\32\2\2\u0114\u0106\3"+
+ "\2\2\2\u0114\u0109\3\2\2\2\u0114\u010d\3\2\2\2\u0114\u010e\3\2\2\2\u0115"+
+ "\u0127\3\2\2\2\u0116\u0117\f\t\2\2\u0117\u0118\t\4\2\2\u0118\u0126\58"+
+ "\35\n\u0119\u011a\f\b\2\2\u011a\u011b\t\5\2\2\u011b\u0126\58\35\t\u011c"+
+ "\u011d\f\7\2\2\u011d\u011e\t\6\2\2\u011e\u0126\58\35\b\u011f\u0120\f\6"+
+ "\2\2\u0120\u0121\t\7\2\2\u0121\u0126\58\35\7\u0122\u0123\f\5\2\2\u0123"+
+ "\u0124\t\b\2\2\u0124\u0126\58\35\6\u0125\u0116\3\2\2\2\u0125\u0119\3\2"+
+ "\2\2\u0125\u011c\3\2\2\2\u0125\u011f\3\2\2\2\u0125\u0122\3\2\2\2\u0126"+
+ "\u0129\3\2\2\2\u0127\u0125\3\2\2\2\u0127\u0128\3\2\2\2\u01289\3\2\2\2"+
+ "\u0129\u0127\3\2\2\2\u012a\u012b\b\36\1\2\u012b\u012c\58\35\2\u012c\u0132"+
+ "\3\2\2\2\u012d\u012e\f\3\2\2\u012e\u012f\7#\2\2\u012f\u0131\58\35\2\u0130"+
+ "\u012d\3\2\2\2\u0131\u0134\3\2\2\2\u0132\u0130\3\2\2\2\u0132\u0133\3\2"+
+ "\2\2\u0133;\3\2\2\2\u0134\u0132\3\2\2\2\u0135\u0140\7\16\2\2\u0136\u0138"+
+ "\7/\2\2\u0137\u0139\7\60\2\2\u0138\u0137\3\2\2\2\u0138\u0139\3\2\2\2\u0139"+
+ "\u013b\3\2\2\2\u013a\u013c\7\61\2\2\u013b\u013a\3\2\2\2\u013b\u013c\3"+
+ "\2\2\2\u013c\u0140\3\2\2\2\u013d\u0140\7\r\2\2\u013e\u0140\5> \2\u013f"+
+ "\u0135\3\2\2\2\u013f\u0136\3\2\2\2\u013f\u013d\3\2\2\2\u013f\u013e\3\2"+
+ "\2\2\u0140=\3\2\2\2\u0141\u0142\t\t\2\2\u0142?\3\2\2\2\u0143\u0146\5B"+
+ "\"\2\u0144\u0146\5D#\2\u0145\u0143\3\2\2\2\u0145\u0144\3\2\2\2\u0146A"+
+ "\3\2\2\2\u0147\u0148\t\n\2\2\u0148C\3\2\2\2\u0149\u014a\7 \2\2\u014a\u014b"+
+ "\7/\2\2\u014b\u014c\7#\2\2\u014c\u014d\7/\2\2\u014d\u014e\7!\2\2\u014e"+
+ "E\3\2\2\2\u014f\u0150\t\13\2\2\u0150G\3\2\2\2\"L^dv\177\u0082\u0085\u0099"+
+ "\u00a5\u00ac\u00b4\u00b8\u00bb\u00c1\u00c9\u00d0\u00d9\u00de\u00e4\u00ec"+
+ "\u00ef\u00f2\u00ff\u0111\u0114\u0125\u0127\u0132\u0138\u013b\u013f\u0145";
+ public static final ATN _ATN =
+ new ATNDeserializer().deserialize(_serializedATN.toCharArray());
+ static {
+ _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
+ for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
+ _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
+ }
+ }
+}
\ No newline at end of file
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolver.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolver.scala
index 9cea556..084da88 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolver.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolver.scala
@@ -24,7 +24,7 @@ import org.apache.nlpcraft.common.debug.NCLogHolder
import org.apache.nlpcraft.common.opencensus.NCOpenCensusTrace
import org.apache.nlpcraft.common.util.NCUtils
import org.apache.nlpcraft.model.impl.NCVariantImpl
-import org.apache.nlpcraft.model.intent.NCDslIntent
+import org.apache.nlpcraft.model.intent.NCIdlIntent
import org.apache.nlpcraft.model.{NCContext, NCIntentMatch, NCIntentSkip, NCModel, NCRejection, NCResult, NCToken, NCVariant}
import org.apache.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
@@ -33,7 +33,7 @@ import scala.collection.JavaConverters._
/**
* Front-end for intent solver.
*/
-class NCIntentSolver(intents: List[(NCDslIntent/*Intent*/, NCIntentMatch ⇒ NCResult/*Callback*/)])
+class NCIntentSolver(intents: List[(NCIdlIntent/*Intent*/, NCIntentMatch ⇒ NCResult/*Callback*/)])
extends LazyLogging with NCOpenCensusTrace {
class RedoSolver extends RuntimeException
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolverEngine.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolverEngine.scala
index 086d57a..95af661 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolverEngine.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolverEngine.scala
@@ -26,7 +26,7 @@ import org.apache.nlpcraft.model.impl.NCTokenLogger
import org.apache.nlpcraft.model.{NCContext, NCDialogFlowItem, NCIntentMatch, NCResult, NCToken}
import org.apache.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
import org.apache.nlpcraft.model.impl.NCTokenPimp._
-import org.apache.nlpcraft.model.intent.{NCDslContext, NCDslIntent, NCDslTerm}
+import org.apache.nlpcraft.model.intent.{NCIdlContext, NCIdlIntent, NCIdlTerm}
import java.util.function.Function
import scala.collection.JavaConverters._
@@ -158,7 +158,7 @@ object NCIntentSolverEngine extends LazyLogging with NCOpenCensusTrace {
* @param usedTokens
*/
private case class TermTokensGroup(
- term: NCDslTerm,
+ term: NCIdlTerm,
usedTokens: List[UsedToken]
)
@@ -172,7 +172,7 @@ object NCIntentSolverEngine extends LazyLogging with NCOpenCensusTrace {
private case class IntentMatch(
tokenGroups: List[TermTokensGroup],
weight: Weight,
- intent: NCDslIntent,
+ intent: NCIdlIntent,
exactMatch: Boolean
)
@@ -187,7 +187,7 @@ object NCIntentSolverEngine extends LazyLogging with NCOpenCensusTrace {
@throws[NCE]
def solve(
ctx: NCContext,
- intents: List[(NCDslIntent /*Intent*/ , NCIntentMatch ⇒ NCResult) /*Callback*/ ],
+ intents: List[(NCIdlIntent /*Intent*/ , NCIntentMatch ⇒ NCResult) /*Callback*/ ],
logHldr: NCLogHolder
): List[NCIntentSolverResult] = {
case class MatchHolder(
@@ -418,7 +418,7 @@ object NCIntentSolverEngine extends LazyLogging with NCOpenCensusTrace {
//noinspection DuplicatedCode
private def solveIntent(
ctx: NCContext,
- intent: NCDslIntent,
+ intent: NCIdlIntent,
senToks: Seq[UsedToken],
convToks: Seq[UsedToken],
varIdx: Int
@@ -491,7 +491,7 @@ object NCIntentSolverEngine extends LazyLogging with NCOpenCensusTrace {
val x = ctx.getConversation.getMetadata
- val termCtx = NCDslContext(
+ val termCtx = NCIdlContext(
intentMeta = intent.meta,
convMeta = if (x.isEmpty) Map.empty[String, Object] else x.asScala.toMap[String, Object],
req = ctx.getRequest
@@ -599,8 +599,8 @@ object NCIntentSolverEngine extends LazyLogging with NCOpenCensusTrace {
*/
@throws[NCE]
private def solveTerm(
- term: NCDslTerm,
- ctx: NCDslContext,
+ term: NCIdlTerm,
+ ctx: NCIdlContext,
senToks: Seq[UsedToken],
convToks: Seq[UsedToken]
): Option[TermMatch] =
@@ -649,8 +649,8 @@ object NCIntentSolverEngine extends LazyLogging with NCOpenCensusTrace {
*/
@throws[NCE]
private def solvePredicate(
- pred: (NCToken, NCDslContext) ⇒ (Boolean /*Predicate.*/ , Int /*How many times a token was used.*/ ),
- ctx: NCDslContext,
+ pred: (NCToken, NCIdlContext) ⇒ (Boolean /*Predicate.*/ , Int /*How many times a token was used.*/ ),
+ ctx: NCIdlContext,
min: Int,
max: Int,
senToks: Seq[UsedToken],
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeModel.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeModel.scala
index fec4552..e436e2b 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeModel.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeModel.scala
@@ -17,7 +17,7 @@
package org.apache.nlpcraft.probe.mgrs
-import org.apache.nlpcraft.model.intent.NCDslIntent
+import org.apache.nlpcraft.model.intent.NCIdlIntent
import org.apache.nlpcraft.model.intent.solver.NCIntentSolver
import org.apache.nlpcraft.model.{NCElement, NCModel}
@@ -38,7 +38,7 @@ import scala.collection.{Map, Seq}
case class NCProbeModel(
model: NCModel,
solver: NCIntentSolver,
- intents: Seq[NCDslIntent],
+ intents: Seq[NCIdlIntent],
synonyms: Map[String /*Element ID*/ , Map[Int /*Synonym length*/ , NCProbeSynonymsWrapper]], // Fast access map.
synonymsDsl: Map[String /*Element ID*/ , Map[Int /*Synonym length*/ , Seq[NCProbeSynonym]]], // Fast access map.
addStopWordsStems: Set[String],
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeSynonym.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeSynonym.scala
index 3a89f18..910a27e 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeSynonym.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeSynonym.scala
@@ -20,7 +20,7 @@ package org.apache.nlpcraft.probe.mgrs
import org.apache.nlpcraft.common.nlp.{NCNlpSentenceToken, NCNlpSentenceTokenBuffer}
import org.apache.nlpcraft.model._
import org.apache.nlpcraft.probe.mgrs.NCProbeSynonym.NCDslContent
-import org.apache.nlpcraft.model.intent.NCDslContext
+import org.apache.nlpcraft.model.intent.NCIdlContext
import org.apache.nlpcraft.probe.mgrs.NCProbeSynonymChunkKind._
import scala.collection.mutable.ArrayBuffer
@@ -117,7 +117,7 @@ class NCProbeSynonym(
r.matcher(get0(_.origText, _.origText)).matches() || r.matcher(get0(_.normText, _.normText)).matches()
case DSL ⇒
- get0(t ⇒ chunk.dslPred.apply(t, NCDslContext(req = req))._1, _ ⇒ false)
+ get0(t ⇒ chunk.dslPred.apply(t, NCIdlContext(req = req))._1, _ ⇒ false)
case _ ⇒ throw new AssertionError()
}
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeSynonymChunk.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeSynonymChunk.scala
index 07024e2..7d17dc2 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeSynonymChunk.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeSynonymChunk.scala
@@ -17,7 +17,7 @@
package org.apache.nlpcraft.probe.mgrs
-import org.apache.nlpcraft.model.intent.NCDslTokenPredicate
+import org.apache.nlpcraft.model.intent.NCIdlTokenPredicate
import org.apache.nlpcraft.probe.mgrs.NCProbeSynonymChunkKind._
import java.util.regex.Pattern
@@ -39,7 +39,7 @@ case class NCProbeSynonymChunk(
wordStem: String = null, // Only for kind == TEXT.
posTag: String = null,
regex: Pattern = null,
- dslPred: NCDslTokenPredicate = null
+ dslPred: NCIdlTokenPredicate = null
) {
require(origText != null)
require(kind != null)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
index 17aa194..4add91a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
@@ -33,7 +33,7 @@ import org.apache.nlpcraft.common.nlp.core.{NCNlpCoreManager, NCNlpPorterStemmer
import org.apache.nlpcraft.common.util.NCUtils.{DSL_FIX, REGEX_FIX}
import org.apache.nlpcraft.model._
import org.apache.nlpcraft.model.factories.basic.NCBasicModelFactory
-import org.apache.nlpcraft.model.intent.compiler.NCDslCompiler
+import org.apache.nlpcraft.model.intent.compiler.NCIdlCompiler
import org.apache.nlpcraft.model.intent.solver.NCIntentSolver
import org.apache.nlpcraft.model.intent._
import org.apache.nlpcraft.probe.mgrs.NCProbeSynonymChunkKind.{DSL, REGEX, TEXT}
@@ -78,7 +78,7 @@ object NCDeployManager extends NCService with DecorateAsScala {
)
type Callback = (String /* ID */, Function[NCIntentMatch, NCResult])
- type Intent = (NCDslIntent, Callback)
+ type Intent = (NCIdlIntent, Callback)
type Sample = (String/* Intent ID */, Seq[Seq[String]] /* List of list of input samples for that intent. */)
private final val SEPARATORS = Seq('?', ',', '.', '-', '!')
@@ -996,7 +996,7 @@ object NCDeployManager extends NCService with DecorateAsScala {
// DSL-based synonym.
else if (startsAndEnds(DSL_FIX, chunk)) {
val dsl = stripSuffix(DSL_FIX, chunk)
- val compUnit = NCDslCompiler.compileSynonym(dsl, mdl, mdl.getOrigin)
+ val compUnit = NCIdlCompiler.compileSynonym(dsl, mdl, mdl.getOrigin)
val x = NCProbeSynonymChunk(alias = compUnit.alias.orNull, kind = DSL, origText = chunk, dslPred = compUnit.pred)
@@ -1076,7 +1076,7 @@ object NCDeployManager extends NCService with DecorateAsScala {
* @param intent
*/
@throws[NCE]
- private def prepareCallback(mtd: Method, mdl: NCModel, intent: NCDslIntent): Callback = {
+ private def prepareCallback(mtd: Method, mdl: NCModel, intent: NCIdlIntent): Callback = {
val mdlId = mdl.getId
// Checks method result type.
@@ -1491,7 +1491,7 @@ object NCDeployManager extends NCService with DecorateAsScala {
@throws[NCE]
private def scanIntents(mdl: NCModel): Set[Intent] = {
val mdlId = mdl.getId
- val intentDecls = mutable.Buffer.empty[NCDslIntent]
+ val intentDecls = mutable.Buffer.empty[NCIdlIntent]
val intents = mutable.Buffer.empty[Intent]
// First, get intent declarations from the JSON/YAML file, if any.
@@ -1500,7 +1500,7 @@ object NCDeployManager extends NCService with DecorateAsScala {
intentDecls ++= adapter
.getIntents
.asScala
- .flatMap(NCDslCompiler.compileIntents(_, mdl, mdl.getOrigin))
+ .flatMap(NCIdlCompiler.compileIntents(_, mdl, mdl.getOrigin))
case _ ⇒ ()
}
@@ -1512,7 +1512,7 @@ object NCDeployManager extends NCService with DecorateAsScala {
try {
val cls = Class.forName(mdlCls)
- for (ann ← cls.getAnnotationsByType(CLS_INTENT); intent ← NCDslCompiler.compileIntents(ann.value(), mdl, mdlCls))
+ for (ann ← cls.getAnnotationsByType(CLS_INTENT); intent ← NCIdlCompiler.compileIntents(ann.value(), mdl, mdlCls))
if (intentDecls.exists(_.id == intent.id))
throw new NCE(s"Duplicate intent ID [" +
s"mdlId=$mdlId, " +
@@ -1532,7 +1532,7 @@ object NCDeployManager extends NCService with DecorateAsScala {
for (m ← getAllMethods(mdl)) {
val mtdStr = method2Str(m)
- def bindIntent(intent: NCDslIntent, cb: Callback): Unit = {
+ def bindIntent(intent: NCIdlIntent, cb: Callback): Unit = {
if (intents.exists(i ⇒ i._1.id == intent.id && i._2._1 != cb._1))
throw new NCE(s"The intent cannot be bound to more than one callback [" +
s"mdlId=$mdlId, " +
@@ -1547,7 +1547,7 @@ object NCDeployManager extends NCService with DecorateAsScala {
}
// Process inline intent declarations by @NCIntent annotation.
- for (ann ← m.getAnnotationsByType(CLS_INTENT); intent ← NCDslCompiler.compileIntents(ann.value(), mdl, mtdStr))
+ for (ann ← m.getAnnotationsByType(CLS_INTENT); intent ← NCIdlCompiler.compileIntents(ann.value(), mdl, mtdStr))
if (intentDecls.exists(_.id == intent.id) || intents.exists(_._1.id == intent.id))
throw new NCE(s"Duplicate intent ID [" +
s"mdlId=$mdlId, " +
@@ -1619,7 +1619,7 @@ object NCDeployManager extends NCService with DecorateAsScala {
val distinct = seqSeq.map(_.distinct).distinct
for (ann ← intAnns) {
- for (intent ← NCDslCompiler.compileIntents(ann.value(), mdl, mtdStr))
+ for (intent ← NCIdlCompiler.compileIntents(ann.value(), mdl, mtdStr))
samples += (intent.id → distinct)
}
for (ann ← refAnns)
diff --git a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/dsl/compiler/NCDslCompilerSpec.scala b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/dsl/compiler/NCIdlCompilerSpec.scala
similarity index 95%
rename from nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/dsl/compiler/NCDslCompilerSpec.scala
rename to nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/dsl/compiler/NCIdlCompilerSpec.scala
index 4424466..30e7c53 100644
--- a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/dsl/compiler/NCDslCompilerSpec.scala
+++ b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/dsl/compiler/NCIdlCompilerSpec.scala
@@ -19,13 +19,13 @@ package org.apache.nlpcraft.model.intent.dsl.compiler
import org.apache.nlpcraft.common._
import org.apache.nlpcraft.model.NCModel
-import org.apache.nlpcraft.model.intent.compiler.{NCDslCompiler, NCDslCompilerGlobal}
+import org.apache.nlpcraft.model.intent.compiler.{NCIdlCompiler, NCIdlCompilerGlobal}
import org.junit.jupiter.api.Test
/**
* Tests for DSL compiler.
*/
-class NCDslCompilerSpec {
+class NCIdlCompilerSpec {
private final val MODEL_ID = "test.mdl.id"
private final val MODEL = new NCModel {
@@ -40,7 +40,7 @@ class NCDslCompilerSpec {
*/
private def checkCompileOk(dsl: String): Unit =
try {
- NCDslCompiler.compileIntents(dsl, MODEL, MODEL_ID)
+ NCIdlCompiler.compileIntents(dsl, MODEL, MODEL_ID)
assert(true)
}
@@ -54,7 +54,7 @@ class NCDslCompilerSpec {
*/
private def checkCompileError(txt: String): Unit =
try {
- NCDslCompiler.compileIntents(txt, MODEL, MODEL_ID)
+ NCIdlCompiler.compileIntents(txt, MODEL, MODEL_ID)
assert(false)
} catch {
@@ -66,7 +66,7 @@ class NCDslCompilerSpec {
@Test
@throws[NCException]
def testInlineCompileOk(): Unit = {
- NCDslCompilerGlobal.clearCache(MODEL_ID)
+ NCIdlCompilerGlobal.clearCache(MODEL_ID)
checkCompileOk(
"""
@@ -122,7 +122,7 @@ class NCDslCompilerSpec {
@Test
@throws[NCException]
def testInlineCompileFail(): Unit = {
- NCDslCompilerGlobal.clearCache(MODEL_ID)
+ NCIdlCompilerGlobal.clearCache(MODEL_ID)
checkCompileError(
"""