Open bicmane opened 4 years ago
I think I found the solution.
It seems to generate a conflict between the ! array and the parentheses.
For example,
! array genero = hombre|mujer|persona de (género|sexo) (masculino|femenino)|persona masculina|persona femenina
I had to do it like this.
! array genero = hombre|mujer|persona de género masculino|persona de género femenino|persona de sexo masculino|persona de sexo femenino|persona masculina|persona femenina
Another detail to keep in mind, also conflicts with wildcards (*, #, _) in the ! array
I publish this because in rivescript tutorial does not clarify in the Array section, as far as I know. Maybe it will help someone.
Greetings!
Yeah, using parenthesis inside of ! array
values isn't supported behavior.
RiveScript is heavily powered by regular expressions under the hood, but the user-facing language uses "simplified regular expressions" for triggers, which makes it easy to program a bot without the overwhelming complexity of raw regexps.
In this case, the ! array
command is parsed by splitting at pipe "|" symbols to get the array items; since you have parenthesis with their own pipes inside, one array item looks like "persona de (género" and the other "sexo) (masculino" and so on. When these array fragments get put into the trigger matching regexp, unbalanced parenthesis is the result.
Probably the RiveScript syntax checker should look for parenthesis in an array definition and consider it a syntax error at parse time.
I've got a couple of .rive files that have quite a few triggers. And they work. But sometimes this error appears instead of giving me the reply. And I can't find the solution, I'm not really sure what's going on.
I leave the message that I figure:
I am testing and There is no criterion by which this appears, usually when trigger change (not always) Any solution?