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/02/05 02:43:51 UTC

[incubator-nlpcraft] branch NLPCRAFT-206 updated: WIP.

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


The following commit(s) were added to refs/heads/NLPCRAFT-206 by this push:
     new 384fdc0  WIP.
384fdc0 is described below

commit 384fdc08dc1bc0d92a427b831a399e5df08e85ac
Author: Aaron Radzinski <ar...@datalingvo.com>
AuthorDate: Thu Feb 4 18:43:38 2021 -0800

    WIP.
---
 .../model/intent/impl/antlr4/NCIntentDsl.g4        | 29 +++++++++++++++-------
 .../mgrs/model/NCModelSynonymDslCompiler.scala     | 10 ++++----
 .../probe/mgrs/model/antlr4/NCSynonymDsl.g4        |  2 +-
 3 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4
index 09c1ee2..43ed661 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4
@@ -37,7 +37,17 @@ termEq
     : EQ // Do not use conversation.
     | TILDA // Use conversation.
     ;
-term: 'term' termId? termEq LCURLY item RCURLY minMax?;
+term
+    : dslTerm
+    | clsTerm
+    ;
+dslTerm: 'term' termId? termEq LCURLY item RCURLY minMax?;
+clsTerm: 'term' termId? termEq FSLASH clsNer FSLASH minMax?;
+clsNer: javaFqn? POUND ID;
+javaFqn
+    : ID
+    | javaFqn DOT ID
+    ;
 termId: LPAREN ID RPAREN;
 item
     : pred
@@ -56,12 +66,13 @@ mathOp
     : MINUS
     | PLUS
     | STAR
-    | DEVIDE
+    | FSLASH
     ;
 val
     : singleVal
     | LPAREN val RPAREN
-    | val COMMA val
+    |
+    
     ;
 singleVal
     : 'null'
@@ -89,9 +100,9 @@ modelMeta // Model metadata: #prop
     | POUND ID LBR qstring RBR
     ;
 intentMeta // Intent metadata: $prop
-    : DOLLAR ID
-    | DOLLAR ID LBR INT RBR
-    | DOLLAR ID LBR qstring RBR
+    : PERCENT ID
+    | PERCENT ID LBR INT RBR
+    | PERCENT ID LBR qstring RBR
     ;
 qstring
     : SQSTRING
@@ -143,13 +154,13 @@ EQ: '=';
 PLUS: '+';
 QUESTION: '?';
 STAR: '*';
-DEVIDE: '/';
-DOLLAR: '$';
+FSLASH: '/';
+PERCENT: '%';
 POWER: '^';
 BOOL: 'true' | 'false';
 INT: '0' | [1-9][_0-9]*;
 EXP: DOT [0-9]+;
-ID: (UNDERSCORE|[a-z]|[A-Z])+([a-z]|[A-Z]|[0-9]|COLON|MINUS|UNDERSCORE)*;
+ID: (UNDERSCORE|[a-z]|[A-Z]|[$])+([$]|[a-z]|[A-Z]|[0-9]|COLON|MINUS|UNDERSCORE)*;
 WS: [ \r\t\u000C\n]+ -> skip ;
 
 ErrorCharacter
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelSynonymDslCompiler.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelSynonymDslCompiler.scala
index f2cb1c1..9926d92 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelSynonymDslCompiler.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelSynonymDslCompiler.scala
@@ -59,7 +59,7 @@ object NCModelSynonymDslCompiler extends LazyLogging {
      */
     class FiniteStateMachine extends NCSynonymDslBaseListener {
         private val predStack = new mutable.ArrayStack[NCToken ⇒ Boolean] // Stack of predicates.
-        private val lvalParts = ArrayBuffer.empty[String] // lval parts collector.
+        private val tokQualParts = ArrayBuffer.empty[String] // lval parts collector.
         private val rvalList = ArrayBuffer.empty[String] // rval list collector.
         private var alias: String = _
         private var rval: String = _
@@ -81,8 +81,8 @@ object NCModelSynonymDslCompiler extends LazyLogging {
             rvalList += rval
         }
     
-        override def exitLvalPart(ctx: NCSynonymDslParser.LvalPartContext): Unit = {
-            lvalParts += ctx.ID().getText.trim()
+        override def exitTokQualPart(ctx: NCSynonymDslParser.TokQualPartContext): Unit = {
+            tokQualParts += ctx.ID().getText.trim()
         }
     
         override def exitAlias(ctx: NCSynonymDslParser.AliasContext): Unit = {
@@ -197,7 +197,7 @@ object NCModelSynonymDslCompiler extends LazyLogging {
             }
             
             val pred = new NCDslTokenPredicate(
-                lvalParts.asJava,
+                tokQualParts.asJava,
                 lvalFunc,
                 lval,
                 op,
@@ -210,7 +210,7 @@ object NCModelSynonymDslCompiler extends LazyLogging {
             })
     
             // Reset.
-            lvalParts.clear()
+            tokQualParts.clear()
             rvalList.clear()
             rval = null
         }
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4
index aae4ee5..a889df1 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4
@@ -44,7 +44,7 @@ mathOp
 val
     : singleVal
     | LPAREN val RPAREN
-    | val COMMA val
+    | val COMMA singleVal
     ;
 singleVal
     : 'null'