feat: multidivert; more tests

This commit is contained in:
mattia
2025-03-01 18:03:42 +01:00
parent 6ee8051004
commit 43745e75e7
11 changed files with 276 additions and 212 deletions

View File

@@ -587,31 +587,31 @@ public partial class InkBlotAntlrGrammarParser : Parser {
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,6,Context) ) {
case 1:
_localctx = new MultiDivertArrows_tailDefaultChoiceContext(_localctx);
_localctx = new MultiDivertArrows_tailDivertContext(_localctx);
EnterOuterAlt(_localctx, 1);
{
State = 61;
Match(DIVERT_ARROW);
State = 62;
divertIdentifierWithArguments();
}
break;
case 2:
_localctx = new MultiDivertArrows_tailDivertContext(_localctx);
_localctx = new MultiDivertArrows_tailTunnelWithReplacementContext(_localctx);
EnterOuterAlt(_localctx, 2);
{
State = 62;
Match(DIVERT_ARROW);
State = 63;
Match(TUNNEL_ARROW);
State = 64;
divertIdentifierWithArguments();
}
break;
case 3:
_localctx = new MultiDivertArrows_tailTunnelWithReplacementContext(_localctx);
_localctx = new MultiDivertArrows_tailDefaultChoiceContext(_localctx);
EnterOuterAlt(_localctx, 3);
{
State = 64;
Match(TUNNEL_ARROW);
State = 65;
divertIdentifierWithArguments();
Match(DIVERT_ARROW);
}
break;
case 4:
@@ -677,28 +677,28 @@ public partial class InkBlotAntlrGrammarParser : Parser {
try {
EnterOuterAlt(_localctx, 1);
{
State = 69;
divertIdentifierWithArguments_name();
State = 71;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,7,Context) ) {
case 1:
{
State = 70;
Match(WS);
}
break;
}
State = 74;
State = 70;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==T__1) {
if (_la==WS) {
{
State = 69;
Match(WS);
}
}
State = 72;
divertIdentifierWithArguments_name();
State = 74;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,8,Context) ) {
case 1:
{
State = 73;
divertIdentifierWithArguments_arguments();
}
break;
}
State = 77;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
@@ -762,65 +762,48 @@ public partial class InkBlotAntlrGrammarParser : Parser {
EnterRule(_localctx, 14, RULE_divertIdentifierWithArguments_name);
int _la;
try {
int _alt;
EnterOuterAlt(_localctx, 1);
{
State = 80;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==WS) {
{
State = 79;
Match(WS);
}
}
State = 82;
State = 79;
identifier();
State = 84;
State = 90;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,11,Context) ) {
case 1:
{
State = 83;
Match(WS);
}
break;
}
State = 96;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while (_la==T__0) {
{
{
State = 86;
Match(T__0);
State = 88;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==WS) {
_alt = Interpreter.AdaptivePredict(TokenStream,12,Context);
while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
State = 87;
Match(WS);
{
State = 81;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==WS) {
{
State = 80;
Match(WS);
}
}
}
State = 90;
identifier();
State = 83;
Match(T__0);
State = 85;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==WS) {
{
State = 84;
Match(WS);
}
}
State = 87;
identifier();
}
}
}
State = 92;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,13,Context) ) {
case 1:
{
State = 91;
Match(WS);
}
break;
}
}
}
State = 98;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
_alt = Interpreter.AdaptivePredict(TokenStream,12,Context);
}
}
}
@@ -877,37 +860,47 @@ public partial class InkBlotAntlrGrammarParser : Parser {
try {
EnterOuterAlt(_localctx, 1);
{
State = 99;
State = 94;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==WS) {
{
State = 93;
Match(WS);
}
}
State = 96;
Match(T__1);
State = 100;
State = 97;
expression();
State = 108;
State = 105;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while (_la==T__2) {
{
{
State = 101;
State = 98;
Match(T__2);
State = 103;
State = 100;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==WS) {
{
State = 102;
State = 99;
Match(WS);
}
}
State = 105;
State = 102;
expression();
}
}
State = 110;
State = 107;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
}
State = 111;
State = 108;
Match(T__3);
}
}
@@ -954,7 +947,7 @@ public partial class InkBlotAntlrGrammarParser : Parser {
try {
EnterOuterAlt(_localctx, 1);
{
State = 113;
State = 110;
Match(IDENTIFIER);
}
}
@@ -1001,7 +994,7 @@ public partial class InkBlotAntlrGrammarParser : Parser {
try {
EnterOuterAlt(_localctx, 1);
{
State = 115;
State = 112;
Match(IDENTIFIER);
}
}
@@ -1017,41 +1010,40 @@ public partial class InkBlotAntlrGrammarParser : Parser {
}
private static int[] _serializedATN = {
4,1,10,118,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,
4,1,10,115,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,
7,7,2,8,7,8,2,9,7,9,2,10,7,10,1,0,1,0,1,1,1,1,4,1,27,8,1,11,1,12,1,28,
1,1,5,1,32,8,1,10,1,12,1,35,9,1,1,1,5,1,38,8,1,10,1,12,1,41,9,1,1,2,1,
2,1,3,3,3,46,8,3,1,3,1,3,1,4,1,4,1,4,1,4,5,4,54,8,4,10,4,12,4,57,9,4,1,
4,3,4,60,8,4,1,5,1,5,1,5,1,5,1,5,1,5,3,5,68,8,5,1,6,1,6,3,6,72,8,6,1,6,
3,6,75,8,6,1,6,3,6,78,8,6,1,7,3,7,81,8,7,1,7,1,7,3,7,85,8,7,1,7,1,7,3,
7,89,8,7,1,7,1,7,3,7,93,8,7,5,7,95,8,7,10,7,12,7,98,9,7,1,8,1,8,1,8,1,
8,3,8,104,8,8,1,8,5,8,107,8,8,10,8,12,8,110,9,8,1,8,1,8,1,9,1,9,1,10,1,
10,1,10,0,0,11,0,2,4,6,8,10,12,14,16,18,20,0,0,125,0,22,1,0,0,0,2,24,1,
0,0,0,4,42,1,0,0,0,6,45,1,0,0,0,8,59,1,0,0,0,10,67,1,0,0,0,12,69,1,0,0,
0,14,80,1,0,0,0,16,99,1,0,0,0,18,113,1,0,0,0,20,115,1,0,0,0,22,23,3,2,
1,0,23,1,1,0,0,0,24,33,3,4,2,0,25,27,5,10,0,0,26,25,1,0,0,0,27,28,1,0,
0,0,28,26,1,0,0,0,28,29,1,0,0,0,29,30,1,0,0,0,30,32,3,4,2,0,31,26,1,0,
0,0,32,35,1,0,0,0,33,31,1,0,0,0,33,34,1,0,0,0,34,39,1,0,0,0,35,33,1,0,
0,0,36,38,5,10,0,0,37,36,1,0,0,0,38,41,1,0,0,0,39,37,1,0,0,0,39,40,1,0,
0,0,40,3,1,0,0,0,41,39,1,0,0,0,42,43,3,6,3,0,43,5,1,0,0,0,44,46,5,9,0,
0,45,44,1,0,0,0,45,46,1,0,0,0,46,47,1,0,0,0,47,48,3,8,4,0,48,7,1,0,0,0,
49,50,5,5,0,0,50,60,3,12,6,0,51,52,5,6,0,0,52,54,3,12,6,0,53,51,1,0,0,
0,54,57,1,0,0,0,55,53,1,0,0,0,55,56,1,0,0,0,56,58,1,0,0,0,57,55,1,0,0,
0,58,60,3,10,5,0,59,49,1,0,0,0,59,55,1,0,0,0,60,9,1,0,0,0,61,68,5,6,0,
0,62,63,5,6,0,0,63,68,3,12,6,0,64,65,5,7,0,0,65,68,3,12,6,0,66,68,5,7,
0,0,67,61,1,0,0,0,67,62,1,0,0,0,67,64,1,0,0,0,67,66,1,0,0,0,68,11,1,0,
0,0,69,71,3,14,7,0,70,72,5,9,0,0,71,70,1,0,0,0,71,72,1,0,0,0,72,74,1,0,
0,0,73,75,3,16,8,0,74,73,1,0,0,0,74,75,1,0,0,0,75,77,1,0,0,0,76,78,5,9,
0,0,77,76,1,0,0,0,77,78,1,0,0,0,78,13,1,0,0,0,79,81,5,9,0,0,80,79,1,0,
0,0,80,81,1,0,0,0,81,82,1,0,0,0,82,84,3,18,9,0,83,85,5,9,0,0,84,83,1,0,
0,0,84,85,1,0,0,0,85,96,1,0,0,0,86,88,5,1,0,0,87,89,5,9,0,0,88,87,1,0,
0,0,88,89,1,0,0,0,89,90,1,0,0,0,90,92,3,18,9,0,91,93,5,9,0,0,92,91,1,0,
0,0,92,93,1,0,0,0,93,95,1,0,0,0,94,86,1,0,0,0,95,98,1,0,0,0,96,94,1,0,
0,0,96,97,1,0,0,0,97,15,1,0,0,0,98,96,1,0,0,0,99,100,5,2,0,0,100,108,3,
20,10,0,101,103,5,3,0,0,102,104,5,9,0,0,103,102,1,0,0,0,103,104,1,0,0,
0,104,105,1,0,0,0,105,107,3,20,10,0,106,101,1,0,0,0,107,110,1,0,0,0,108,
106,1,0,0,0,108,109,1,0,0,0,109,111,1,0,0,0,110,108,1,0,0,0,111,112,5,
4,0,0,112,17,1,0,0,0,113,114,5,8,0,0,114,19,1,0,0,0,115,116,5,8,0,0,116,
21,1,0,0,0,17,28,33,39,45,55,59,67,71,74,77,80,84,88,92,96,103,108
4,3,4,60,8,4,1,5,1,5,1,5,1,5,1,5,1,5,3,5,68,8,5,1,6,3,6,71,8,6,1,6,1,6,
3,6,75,8,6,1,6,3,6,78,8,6,1,7,1,7,3,7,82,8,7,1,7,1,7,3,7,86,8,7,1,7,5,
7,89,8,7,10,7,12,7,92,9,7,1,8,3,8,95,8,8,1,8,1,8,1,8,1,8,3,8,101,8,8,1,
8,5,8,104,8,8,10,8,12,8,107,9,8,1,8,1,8,1,9,1,9,1,10,1,10,1,10,0,0,11,
0,2,4,6,8,10,12,14,16,18,20,0,0,121,0,22,1,0,0,0,2,24,1,0,0,0,4,42,1,0,
0,0,6,45,1,0,0,0,8,59,1,0,0,0,10,67,1,0,0,0,12,70,1,0,0,0,14,79,1,0,0,
0,16,94,1,0,0,0,18,110,1,0,0,0,20,112,1,0,0,0,22,23,3,2,1,0,23,1,1,0,0,
0,24,33,3,4,2,0,25,27,5,10,0,0,26,25,1,0,0,0,27,28,1,0,0,0,28,26,1,0,0,
0,28,29,1,0,0,0,29,30,1,0,0,0,30,32,3,4,2,0,31,26,1,0,0,0,32,35,1,0,0,
0,33,31,1,0,0,0,33,34,1,0,0,0,34,39,1,0,0,0,35,33,1,0,0,0,36,38,5,10,0,
0,37,36,1,0,0,0,38,41,1,0,0,0,39,37,1,0,0,0,39,40,1,0,0,0,40,3,1,0,0,0,
41,39,1,0,0,0,42,43,3,6,3,0,43,5,1,0,0,0,44,46,5,9,0,0,45,44,1,0,0,0,45,
46,1,0,0,0,46,47,1,0,0,0,47,48,3,8,4,0,48,7,1,0,0,0,49,50,5,5,0,0,50,60,
3,12,6,0,51,52,5,6,0,0,52,54,3,12,6,0,53,51,1,0,0,0,54,57,1,0,0,0,55,53,
1,0,0,0,55,56,1,0,0,0,56,58,1,0,0,0,57,55,1,0,0,0,58,60,3,10,5,0,59,49,
1,0,0,0,59,55,1,0,0,0,60,9,1,0,0,0,61,62,5,6,0,0,62,68,3,12,6,0,63,64,
5,7,0,0,64,68,3,12,6,0,65,68,5,6,0,0,66,68,5,7,0,0,67,61,1,0,0,0,67,63,
1,0,0,0,67,65,1,0,0,0,67,66,1,0,0,0,68,11,1,0,0,0,69,71,5,9,0,0,70,69,
1,0,0,0,70,71,1,0,0,0,71,72,1,0,0,0,72,74,3,14,7,0,73,75,3,16,8,0,74,73,
1,0,0,0,74,75,1,0,0,0,75,77,1,0,0,0,76,78,5,9,0,0,77,76,1,0,0,0,77,78,
1,0,0,0,78,13,1,0,0,0,79,90,3,18,9,0,80,82,5,9,0,0,81,80,1,0,0,0,81,82,
1,0,0,0,82,83,1,0,0,0,83,85,5,1,0,0,84,86,5,9,0,0,85,84,1,0,0,0,85,86,
1,0,0,0,86,87,1,0,0,0,87,89,3,18,9,0,88,81,1,0,0,0,89,92,1,0,0,0,90,88,
1,0,0,0,90,91,1,0,0,0,91,15,1,0,0,0,92,90,1,0,0,0,93,95,5,9,0,0,94,93,
1,0,0,0,94,95,1,0,0,0,95,96,1,0,0,0,96,97,5,2,0,0,97,105,3,20,10,0,98,
100,5,3,0,0,99,101,5,9,0,0,100,99,1,0,0,0,100,101,1,0,0,0,101,102,1,0,
0,0,102,104,3,20,10,0,103,98,1,0,0,0,104,107,1,0,0,0,105,103,1,0,0,0,105,
106,1,0,0,0,106,108,1,0,0,0,107,105,1,0,0,0,108,109,5,4,0,0,109,17,1,0,
0,0,110,111,5,8,0,0,111,19,1,0,0,0,112,113,5,8,0,0,113,21,1,0,0,0,16,28,
33,39,45,55,59,67,70,74,77,81,85,90,94,100,105
};
public static readonly ATN _ATN =