This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch NLPCRAFT-247
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-247 by this push:
new 61dfa14 WIP.
61dfa14 is described below
commit 61dfa1405ab07d712320764d70928dcd57f5819d
Author: Aaron Radzinski <[email protected]>
AuthorDate: Wed Feb 24 13:12:09 2021 -0800
WIP.
---
.../main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala | 5 +++--
.../main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.g4 | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala
index 56d4b20..709d088 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala
@@ -65,11 +65,12 @@ object NCMacroParser {
*
* Syntax:
* - all macros should start with '<' and end with '>'.
- * - '{A|B}' denotes either 'A' or 'B'.
+ * - '{A|{B}}' denotes either 'A' or 'B'.
* - '{A|B|_}' denotes either 'A', or 'B' or nothing ('_').
* - '{A}[1,2]' denotes 'A' or 'A A'.
* - '{A}[0,1]' denotes 'A' or nothing (just like '{A|_}').
- * - '\' must be used for escaping any of '{}\<>_[]|,' special symbols.
+ * - '\' should be used for escaping any of '{}\_[]|,' special symbols.
+ * - Excessive pairs'{' and '}' are ignored
*
* Examples:
* "A {B|C}[1,2] D" ⇒ "A B D", "A C D", "A B B D", "A C C D"
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.g4
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.g4
index bcc6ff3..9773dc4 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.g4
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.g4
@@ -24,7 +24,7 @@ expr
| expr item
;
item: syn | group;
-syn : (TXT | REGEX_TXT | DSL_TXT); // NOTE: since TXT and INT overlap - we
catch them both here and resolve in compiler.
+syn : (TXT | REGEX_TXT | DSL_TXT);
group: LCURLY list RCURLY MINMAX?;
list
: expr