[Scummvm-git-logs] scummvm master -> 825b714cb6db3b987b647467d881b614da377dde

sev- sev at scummvm.org
Sat Apr 4 22:22:22 UTC 2020


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
54fc3b5cbe DIRECTOR: LINGO: Remove _twoWordBuiltins as an obsolete concept
e81954330f DIRECTOR: LINGO: Remove special treatment of 'sound' in lexer. Now we do it with preprocessor
825b714cb6 DIRECTOR: LINGO: Merged sound-* with b_sound()


Commit: 54fc3b5cbef317cc7d3839fb3857608cf20310b5
    https://github.com/scummvm/scummvm/commit/54fc3b5cbef317cc7d3839fb3857608cf20310b5
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-04-05T00:21:53+02:00

Commit Message:
DIRECTOR: LINGO: Remove _twoWordBuiltins as an obsolete concept

Changed paths:
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo.h


diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 45681bbe73..d8c9ce8623 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -199,11 +199,6 @@ static struct BuiltinProto {
 	{ "mci",	 		LB::b_mci,			1, 1, false, 3, BLTIN },	//		D3.1 c
 	{ "mciwait",		LB::b_mciwait,		1, 1, false, 4, BLTIN },	//			D4 c
 	{ "sound",			LB::b_sound,		2, 3, false, 3, BLTIN },	//		D3 c
-	{ "sound-close",	LB::b_soundClose, 	1, 1, false, 4, BLTIN },	//			D4 c
-	{ "sound-fadeIn",	LB::b_soundFadeIn, 	1, 2, false, 3, BLTIN },	//		D3 c
-	{ "sound-fadeOut",	LB::b_soundFadeOut, 1, 2, false, 3, BLTIN },	//		D3 c
-	{ "sound-playFile",	LB::b_soundPlayFile,2, 2, false, 3, BLTIN },	//		D3 c
-	{ "sound-stop",		LB::b_soundStop,	1, 1, false, 2, BLTIN },	//		D2 c
 	{ "soundBusy",		LB::b_soundBusy,	1, 1, true,  3, FBLTIN },	//		D3 f
 	// Window
 	{ "close",			LB::b_close,		1, 1, false, 4, BLTIN },	//			D4 c
@@ -240,13 +235,6 @@ static struct BuiltinProto {
 	{ 0, 0, 0, 0, false, 0, 0 }
 };
 
-static const char *twoWordBuiltins[] = {
-	//"duplicate",
-	//"erase",
-	"sound",
-	0
-};
-
 static const char *predefinedMethods[] = {
 	"mAtFrame",				// D3
 	"mDescribe",			// D3
@@ -281,9 +269,6 @@ void Lingo::initBuiltIns() {
 		_functions[(void *)sym->u.s] = new FuncDesc(blt->name, "");
 	}
 
-	for (const char **b = twoWordBuiltins; *b; b++)
-		_twoWordBuiltins[*b] = true;
-
 	// Set predefined methods
 	for (const char **b = predefinedMethods; *b; b++) {
 		Symbol *s = g_lingo->lookupVar(*b, true, true);
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 5df94ac8c4..93d8fbdb1b 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -316,7 +316,6 @@ public:
 	Common::Array<int> _labelstack;
 
 	SymbolHash _builtins;
-	Common::HashMap<Common::String, bool> _twoWordBuiltins;
 	Common::HashMap<uint32, Symbol *> _handlers;
 
 	int _linenumber;


Commit: e81954330f57bd436226d13e08724673fad2388b
    https://github.com/scummvm/scummvm/commit/e81954330f57bd436226d13e08724673fad2388b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-04-05T00:21:59+02:00

Commit Message:
DIRECTOR: LINGO: Remove special treatment of 'sound' in lexer. Now we do it with preprocessor

Changed paths:
    engines/director/lingo/lingo-lex.cpp
    engines/director/lingo/lingo-lex.l


diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 4ac26627d1..38ff38aea8 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -364,8 +364,8 @@ static void yy_fatal_error (yyconst char msg[]  );
 	*yy_cp = '\0'; \
 	(yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 76
-#define YY_END_OF_BUFFER 77
+#define YY_NUM_RULES 75
+#define YY_END_OF_BUFFER 76
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -373,48 +373,45 @@ struct yy_trans_info
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[364] =
+static yyconst flex_int16_t yy_accept[333] =
     {   0,
-        0,    0,   77,   75,    4,   73,   73,   75,   75,   75,
-       72,   72,   72,   71,   72,   68,   72,   69,   69,   69,
-       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
-       69,   69,   69,   69,   75,    3,    3,   69,    4,   73,
-        0,    0,    0,   74,    5,   67,    2,   70,   71,   66,
-       64,   65,   69,   69,   69,   69,   69,   69,   69,   69,
-       69,   69,   69,   69,   12,   24,   69,   69,   69,   69,
-       69,   69,   69,   69,   34,   35,   69,   37,   69,   69,
-       69,   69,   69,   69,   69,   69,   69,   69,   57,   69,
-       69,   69,    1,    3,    3,    0,   69,    5,    2,   70,
-
-       69,    7,   69,   69,   69,   69,   69,   15,   69,   69,
-       20,   69,   69,   69,   69,   69,   69,   69,   30,   69,
-       69,   33,   69,   69,   69,   69,   43,   69,   45,   69,
-       69,   69,   69,   69,   69,   69,   69,   69,    0,   69,
-       69,   69,    9,   69,   11,   14,    0,   17,   69,    0,
-        0,   69,   69,   23,   25,   26,   27,   69,   69,   69,
-       32,   36,   39,   69,   69,   69,   69,   69,   69,   48,
-        0,   56,   61,   69,   59,   63,    0,   69,    6,   69,
-       69,    0,   15,   69,    0,   20,   69,   69,   28,   69,
-       31,    0,   69,   69,   69,   69,   69,   69,   69,   55,
-
-       55,   55,   55,   55,   62,   69,    0,   69,    8,   69,
-        0,   15,   18,    0,    0,   69,   69,   69,    0,   69,
-       69,   69,   44,    0,   58,   47,    0,    0,   55,   55,
-       55,   55,   60,    0,   69,   69,   13,    0,   69,   69,
-        0,   29,    0,   69,   69,   69,    0,    0,    0,    0,
-        0,    0,    0,    0,   55,   55,   55,   55,    0,   16,
-       10,   19,   21,   69,   29,   29,    0,   69,   41,   42,
-        0,    0,    0,    0,    0,    0,    0,   55,   55,   55,
-       55,   16,   69,   29,    0,   40,    0,    0,    0,    0,
-        0,    0,    0,    0,   55,    0,   55,   22,   38,    0,
-
-        0,    0,   46,   54,   53,   54,    0,    0,    0,    0,
-       55,    0,    0,    0,   46,    0,    0,    0,   53,    0,
-        0,    0,    0,    0,    0,    0,    0,   46,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   49,    0,   46,
-        0,    0,    0,   54,   53,   53,   54,    0,   50,   46,
-       52,   53,   53,    0,   53,    0,   53,    0,    0,    0,
-        0,   51,    0
+        0,    0,   76,   74,    4,   72,   72,   74,   74,   74,
+       71,   71,   71,   70,   71,   67,   71,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   74,    3,    3,   68,    4,   72,
+        0,    0,    0,   73,    5,   66,    2,   69,   70,   65,
+       63,   64,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   12,   24,   68,   68,   68,   68,
+       68,   68,   68,   68,   34,   35,   68,   37,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   56,   68,   68,
+       68,    1,    3,    3,    0,   68,    5,    2,   69,   68,
+
+        7,   68,   68,   68,   68,   68,   15,   68,   68,   20,
+       68,   68,   68,   68,   68,   68,   68,   30,   68,   68,
+       33,   68,   68,   68,   68,   43,   68,   45,   68,   68,
+       68,   68,   68,   68,   68,   68,    0,   68,   68,   68,
+        9,   68,   11,   14,    0,   17,   68,    0,    0,   68,
+       68,   23,   25,   26,   27,   68,   68,   68,   32,   36,
+       39,   68,   68,   68,   68,   68,   47,    0,   55,   60,
+       68,   58,   62,    0,   68,    6,   68,   68,    0,   15,
+       68,    0,   20,   68,   68,   28,   68,   31,    0,   68,
+       68,   68,   68,   68,   68,   54,   54,   54,   54,   54,
+
+       61,   68,    0,   68,    8,   68,    0,   15,   18,    0,
+        0,   68,   68,   68,    0,   68,   68,   68,   44,   57,
+       46,    0,    0,   54,   54,   54,   54,   59,    0,   68,
+       68,   13,    0,   68,   68,    0,   29,    0,   68,   68,
+       68,    0,    0,    0,    0,   54,   54,   54,   54,    0,
+       16,   10,   19,   21,   68,   29,   29,    0,   68,   41,
+       42,    0,    0,    0,   54,   54,   54,   54,   16,   68,
+       29,    0,   40,    0,    0,    0,    0,   54,    0,   54,
+       22,   38,   53,   52,   53,    0,    0,    0,    0,   54,
+        0,    0,    0,   52,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   48,
+        0,    0,    0,   53,   52,   52,   53,    0,   49,   51,
+       52,   52,    0,   52,    0,   52,    0,    0,    0,    0,
+       50,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -460,97 +457,91 @@ static yyconst flex_int32_t yy_meta[66] =
         5,    5,    5,    5,    1
     } ;
 
-static yyconst flex_int16_t yy_base[381] =
+static yyconst flex_int16_t yy_base[350] =
     {   0,
-        0,   64,  240,  979,   68,  979,  979,   72,  230,    0,
-      979,  177,  140,   55,   63,  979,  130,   59,   59,   59,
+        0,   64,  173,  929,   68,  929,  929,   72,  162,    0,
+      929,  157,  134,   55,   63,  929,  125,   59,   59,   59,
        55,   63,    0,   64,   75,   70,  100,   77,  110,  102,
-       98,  139,  126,  152,  145,  185,  206,  110,  210,  979,
-      214,  175,   97,  979,    0,  979,    0,   86,  171,  979,
-      979,  979,    0,   66,  116,  144,  154,  111,  130,  139,
-      175,  174,  151,   82,    0,  187,  179,  174,  193,  185,
-      195,  206,  192,  198,    0,    0,  213,    0,  218,  218,
-      202,  207,  206,  206,  211,  232,  225,  235,    0,  248,
-      223,  230,  979,  281,  286,  253,  258,    0,    0,   69,
-
-      259,    0,  262,  260,  261,  268,  278,   91,  266,  286,
-      305,  271,  288,  283,  291,  283,  282,  295,    0,  297,
-      291,    0,  302,  292,  299,  310,    0,  302,    0,  314,
-      320,  316,  326,  352,  329,  332,  337,  342,  344,  331,
-      335,  336,    0,  354,    0,  153,  370,    0,  357,  343,
-      348,  362,  351,    0,    0,    0,    0,  355,  359,  370,
-        0,    0,  393,  369,  376,  384,  383,  371,  372,    0,
-      434,    0,    0,  391,  390,    0,  379,  387,    0,  397,
-      395,  419,    0,  396,  408,  427,  398,  399,    0,  414,
-        0,  444,  423,  418,  419,  418,  453,  433,  422,  460,
-
-      473,  484,  491,  495,    0,  431,  434,  441,    0,  453,
-      477,    0,    0,  474,  505,  484,  483,  506,  476,  494,
-      480,  482,    0,  551,    0,    0,  529,  501,  520,  540,
-      553,  567,    0,  510,  511,  523,  979,  493,  541,  546,
-      530,    0,  549,  550,  542,  539,  553,  572,  557,  558,
-      597,  580,  579,  580,  610,  611,  623,  629,  571,    0,
-        0,  979,    0,  584,    0,    0,  595,  597,    0,    0,
-      602,  616,  620,  610,  607,  636,  616,  647,  665,  669,
-      671,  979,  619,    0,  634,    0,  625,  639,  623,  641,
-      657,  686,  663,  688,  692,  696,  702,    0,  979,  674,
-
-      680,  677,  979,  979,    0,  979,  717,  727,  734,  733,
-      735,  741,  705,  752,  979,  722,  717,  723,    0,  734,
-      758,  760,  774,  784,  765,  794,  744,  979,  726,  741,
-      745,  756,  807,  805,  811,  816,  758,  818,  820,  979,
-      769,  829,  831,  835,  798,  817,  839,  840,  845,  979,
-      979,  847,  856,  858,  860,  841,  867,  825,  834,  872,
-      874,  979,  979,  908,  910,  913,  916,  922,  927,  932,
-      934,  939,  944,  947,  950,  955,  960,  962,  967,  972
+       98,  129,  128,  131,  144,  167,  188,  134,  192,  929,
+      196,  175,  130,  929,    0,  929,    0,   86,  174,  929,
+      929,  929,    0,   66,  163,  180,  186,   74,  167,  172,
+      189,  186,  177,   82,    0,  181,  191,  188,  188,  194,
+      184,  213,  181,  186,    0,    0,  201,    0,  206,  225,
+      190,  220,  217,  221,  239,  232,  239,    0,  241,  229,
+      232,  929,  290,  294,  260,  261,    0,    0,   69,  261,
+
+        0,  254,  253,  255,  271,  280,   91,  268,  286,  313,
+      271,  290,  281,  292,  288,  288,  293,    0,  297,  290,
+        0,  299,  292,  297,  308,    0,  319,    0,  321,  317,
+      324,  352,  324,  334,  338,  344,  347,  333,  336,  337,
+        0,  356,    0,  265,  267,    0,  359,  345,  349,  365,
+      347,    0,    0,    0,    0,  354,  356,  367,    0,    0,
+      394,  365,  374,  380,  365,  371,    0,  435,    0,    0,
+      388,  389,    0,  382,  388,    0,  398,  396,  423,    0,
+      396,  409,  427,  402,  399,    0,  407,    0,  448,  416,
+      413,  421,  421,  417,  424,  466,  482,  492,  498,  496,
+
+        0,  430,  431,  432,    0,  437,  427,    0,    0,  453,
+      509,  460,  470,  505,  476,  493,  479,  482,    0,    0,
+        0,  520,  499,  541,  543,  557,  558,    0,  490,  502,
+      515,  929,  511,  515,  545,  524,    0,  552,  551,  542,
+      537,  576,  563,  560,  558,  582,  586,  608,  610,  558,
+        0,    0,  929,    0,  567,    0,    0,  575,  584,    0,
+        0,  581,  619,  595,  623,  629,  643,  647,  929,  598,
+        0,  598,    0,  615,  649,  616,  653,  661,  675,  674,
+        0,  929,  929,    0,  929,  667,  680,  684,  676,  694,
+      685,  669,  712,    0,  683,  719,  698,  723,  725,  733,
+
+      738,  689,  712,  697,  748,  747,  759,  757,  701,  771,
+      780,  781,  786,  788,  745,  734,  794,  798,  802,  929,
+      804,  808,  810,  812,  791,  817,  773,  773,  822,  826,
+      929,  929,  858,  860,  863,  866,  872,  877,  882,  884,
+      889,  894,  897,  900,  905,  910,  912,  917,  922
     } ;
 
-static yyconst flex_int16_t yy_def[381] =
+static yyconst flex_int16_t yy_def[350] =
     {   0,
-      363,    1,  363,  363,  363,  363,  363,  363,  364,  365,
-      363,  363,  363,  363,  363,  363,  363,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  363,  363,  363,  366,  363,  363,
-      363,  363,  364,  363,  367,  363,  368,  363,  363,  363,
-      363,  363,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  363,  363,  363,  363,  366,  367,  368,  363,
-
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      363,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  363,  366,
-      366,  366,  366,  366,  366,  366,  369,  366,  366,  363,
-      363,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      370,  366,  366,  366,  366,  366,  363,  366,  366,  366,
-      366,  363,  371,  366,  363,  363,  366,  366,  366,  366,
-      366,  363,  366,  366,  366,  366,  366,  366,  366,  370,
-
-      370,  370,  370,  370,  366,  366,  363,  366,  366,  366,
-      363,  371,  366,  363,  363,  366,  366,  372,  363,  366,
-      366,  366,  366,  363,  366,  366,  363,  363,  370,  370,
-      370,  370,  366,  363,  366,  366,  363,  363,  366,  366,
-      373,  374,  363,  366,  366,  366,  363,  363,  363,  363,
-      363,  363,  363,  363,  370,  370,  370,  370,  363,  366,
-      366,  363,  366,  366,  375,  374,  363,  366,  366,  366,
-      363,  363,  363,  363,  363,  363,  363,  370,  370,  370,
-      370,  363,  366,  375,  363,  366,  363,  363,  363,  363,
-      363,  376,  363,  377,  370,  363,  370,  366,  363,  363,
-
-      363,  363,  363,  363,  378,  363,  377,  377,  377,  377,
-      370,  363,  363,  363,  363,  363,  363,  363,  378,  363,
-      377,  377,  377,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  377,  376,  377,  363,  363,  376,  363,  363,
-      363,  363,  363,  377,  378,  378,  377,  363,  376,  363,
-      363,  378,  378,  379,  380,  363,  380,  363,  363,  363,
-      363,  363,    0,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363
+      332,    1,  332,  332,  332,  332,  332,  332,  333,  334,
+      332,  332,  332,  332,  332,  332,  332,  335,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
+      335,  335,  335,  335,  332,  332,  332,  335,  332,  332,
+      332,  332,  333,  332,  336,  332,  337,  332,  332,  332,
+      332,  332,  335,  335,  335,  335,  335,  335,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
+      335,  332,  332,  332,  332,  335,  336,  337,  332,  335,
+
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  332,
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
+      335,  335,  335,  335,  335,  335,  332,  335,  335,  335,
+      335,  335,  335,  335,  338,  335,  335,  332,  332,  335,
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  339,  335,  335,
+      335,  335,  335,  332,  335,  335,  335,  335,  332,  340,
+      335,  332,  332,  335,  335,  335,  335,  335,  332,  335,
+      335,  335,  335,  335,  335,  339,  339,  339,  339,  339,
+
+      335,  335,  332,  335,  335,  335,  332,  340,  335,  332,
+      332,  335,  335,  341,  332,  335,  335,  335,  335,  335,
+      335,  332,  332,  339,  339,  339,  339,  335,  332,  335,
+      335,  332,  332,  335,  335,  342,  343,  332,  335,  335,
+      335,  332,  332,  332,  332,  339,  339,  339,  339,  332,
+      335,  335,  332,  335,  335,  344,  343,  332,  335,  335,
+      335,  332,  332,  332,  339,  339,  339,  339,  332,  335,
+      344,  332,  335,  332,  345,  332,  346,  339,  332,  339,
+      335,  332,  332,  347,  332,  346,  346,  346,  346,  339,
+      332,  332,  332,  347,  332,  346,  346,  346,  332,  332,
+
+      332,  332,  332,  332,  346,  345,  346,  332,  332,  345,
+      332,  332,  332,  346,  347,  347,  346,  332,  345,  332,
+      347,  347,  348,  349,  332,  349,  332,  332,  332,  332,
+      332,    0,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332
     } ;
 
-static yyconst flex_int16_t yy_nxt[1045] =
+static yyconst flex_int16_t yy_nxt[995] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   11,
        13,    4,   14,   15,   16,   17,   18,   19,   20,   21,
@@ -560,116 +551,111 @@ static yyconst flex_int16_t yy_nxt[1045] =
        26,   27,   28,   29,   30,   23,   31,   32,   33,   23,
        23,   34,   23,   23,   35,   36,   48,   49,   37,   39,
        40,   40,   41,   41,   40,   40,   41,   50,   51,   56,
-       54,  100,   57,  111,   59,   38,  111,   55,   58,   60,
-       63,   61,  147,   64,   68,  147,   65,   73,  100,   69,
+       54,   99,   57,  110,   59,   38,  110,   55,   58,   60,
+       63,   61,  145,   64,   68,  145,   65,   73,   99,   69,
 
-      101,   62,   44,   66,   56,   54,   74,   57,   59,   67,
+      100,   62,  104,   66,   56,   54,   74,   57,   59,   67,
        38,   55,   58,   60,   63,   61,   70,   64,   82,   68,
-       71,   65,   73,   69,  101,   62,   97,   66,   79,   72,
-       74,   75,   42,   67,   80,  102,   42,   81,   76,  105,
-       77,   70,   78,   82,   52,   71,   87,   93,   93,   88,
-       47,   97,   79,   72,  182,   89,   75,  182,   80,   83,
-      102,   81,   76,  105,   77,  103,   78,  106,   84,   85,
-      104,   87,  107,   86,   88,   90,   91,   93,   93,   89,
-      110,   92,   48,   49,   83,   46,   94,   40,   40,   95,
-      103,  106,   84,   85,  108,  104,  107,   86,  109,  114,
-
-       90,   91,  115,  117,  110,   92,   96,   95,   40,   40,
-       95,   39,   40,   40,   41,   41,   40,   40,   41,  108,
-      112,  113,  116,  109,  114,  119,  115,   96,  117,  118,
-      121,   96,  122,  123,  124,   44,  127,  128,  125,  363,
-      129,  130,  120,  131,  112,  113,  116,  126,  132,   42,
-      119,  133,   96,  118,  121,  134,  122,  137,  123,  124,
-      127,  128,  138,  125,  129,  130,  120,  131,  135,  139,
-       42,  126,  136,  132,   42,  133,  140,  363,   42,  141,
-      134,  137,   94,   40,   40,   95,  138,   95,   40,   40,
-       95,  142,  143,  135,  139,  144,  145,  136,  146,  363,
-
-      148,  140,   96,  149,  141,  152,  111,   96,  153,  111,
-      155,  156,  363,  157,  158,  142,  143,  154,  159,  144,
-      145,  160,  166,  146,  148,  161,  150,   96,  149,  152,
-      162,  163,   96,  153,  155,  164,  156,  157,  158,  151,
-      165,  154,  167,  159,  168,   42,  160,  166,  169,  161,
-       42,  150,  170,  171,  162,  163,  171,  173,  174,  164,
-      175,  176,  177,  151,  165,  178,  167,  179,  180,  168,
-      181,  147,  169,  184,  147,  185,  170,  186,  187,  363,
-      172,  173,  174,  188,  189,  175,  176,  177,  190,  178,
-      191,  179,  180,  194,  192,  181,  195,  192,  184,  185,
-
-      196,  186,  197,  187,  172,  198,  199,  188,  189,  193,
-      363,  205,  190,  207,  206,  191,  208,  209,  194,  210,
-      182,  195,  213,  182,  214,  196,  216,  197,  215,  198,
-      199,  215,  217,  218,  193,  171,  205,  207,  171,  206,
-      208,  220,  209,  211,  210,  192,  213,  221,  192,  214,
-      216,  222,  223,  225,  224,  226,  217,  224,  218,  233,
-      201,  227,  202,  234,  227,  219,  220,  203,  211,  228,
-      204,  221,  363,  235,  227,  222,  223,  227,  225,  226,
-      363,  236,  228,  233,  201,  227,  202,  234,  227,  229,
-      219,  203,  227,  228,  204,  227,  227,  235,  237,  227,
-
-      228,  238,  239,  240,  228,  236,  215,  241,  243,  215,
-      241,  232,  244,  262,  229,  245,  246,  363,   53,  230,
-      252,  227,  231,  237,  227,  238,  150,  239,  240,  228,
-      251,  241,  243,  251,  241,  254,  232,  244,  262,  245,
-      246,  227,  259,  230,  227,  252,  231,  363,  252,  228,
-      260,  150,  224,  255,  227,  224,  261,  227,  253,  254,
-      363,  263,  228,  254,  264,  267,  259,  256,  227,  247,
-      268,  227,  248,  252,  260,  269,  228,  255,  270,  271,
-      261,  249,  253,  273,  250,  257,  263,  254,  272,  264,
-      267,  256,  274,  258,  247,  268,  275,  248,  251,  269,
-
-      276,  251,  270,  271,  277,  249,  363,  273,  250,  257,
-      282,  227,  227,  272,  227,  227,  274,  258,  283,  228,
-      228,  275,  285,  286,  227,  276,  253,  227,  279,  277,
-      227,  287,  228,  227,  282,  288,  289,  292,  228,  290,
-      292,  291,  283,  293,  278,  363,  285,  286,  294,  363,
-      253,  294,  298,  279,  299,  287,  228,  280,  300,  301,
-      288,  289,  302,  290,  281,  291,  227,  293,  278,  227,
-      296,  303,  227,  296,  228,  227,  298,  304,  228,  299,
-      228,  280,  300,  306,  301,  295,  302,  292,  281,  251,
-      292,  297,  251,  227,  315,  303,  227,  312,  318,  363,
-
-      312,  228,  304,  314,  316,  363,  314,  308,  306,  317,
-      295,  228,  363,  363,  363,  252,  297,  309,  320,  315,
-      363,  320,  310,  318,  311,  313,  325,  363,  320,  316,
-      254,  320,  308,  317,  320,  320,  324,  320,  320,  324,
-      252,  309,  312,  321,  228,  312,  310,  330,  311,  313,
-      328,  325,  329,  326,  254,  322,  326,  323,  331,  320,
-      340,  334,  320,  332,  334,  339,  338,  341,  321,  338,
-      313,  252,  330,  342,  328,  320,  329,  343,  320,  348,
-      322,  327,  323,  331,  340,  336,  254,  332,  336,  350,
-      339,  341,  333,  363,  313,  326,  252,  342,  326,  363,
-
-      363,  335,  343,  252,  348,  327,  292,  363,  320,  292,
-      254,  320,  320,  337,  350,  320,  333,  336,  254,  338,
-      336,  349,  338,  327,  349,  335,  352,  344,  252,  345,
-      351,  347,  351,  351,  346,  351,  320,  337,  353,  320,
-      320,  354,  254,  320,  354,  337,  349,  327,  351,  349,
-      352,  351,  344,  360,  345,  361,  347,  351,  346,  354,
-      351,  356,  354,  353,  356,  358,  363,  363,  356,  337,
-      359,  356,  319,  362,  363,  362,  362,  360,  362,  319,
-      361,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      358,  363,  363,  363,  359,  363,  363,  363,  305,  363,
-
-      319,  363,  363,  363,  363,  363,  363,  319,   43,   43,
-      363,   43,   43,   43,   45,   45,   53,   53,   53,   98,
-       98,   98,   99,   99,  363,   99,   99,   99,  183,  363,
-      363,  183,  183,  200,  363,  363,  200,  212,  212,  212,
-      242,  363,  242,  242,  242,  265,  363,  363,  265,  265,
-      266,  266,  266,  284,  284,  284,  305,  363,  363,  305,
-      305,  307,  363,  363,  307,  319,  319,  319,  355,  363,
-      363,  355,  355,  357,  363,  357,  357,  357,    3,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363
+       71,   65,   73,   69,  100,   62,  104,   66,   79,   72,
+       74,   75,   42,   67,   80,   44,   42,   81,   76,   52,
+       77,   70,   78,   82,   47,   71,   92,   92,   86,   83,
+       96,   87,   79,   72,   89,   90,   75,   88,   80,   84,
+       91,   81,   76,   85,   77,   46,   78,   44,   93,   40,
+       40,   94,  332,   86,   83,   96,   87,   92,   92,   89,
+       90,   88,  101,   84,   91,   48,   49,   85,   95,   94,
+       40,   40,   94,   39,   40,   40,   41,   41,   40,   40,
+
+       41,  102,  103,  332,  105,  106,  109,  101,  107,   95,
+      108,  113,  116,   95,  111,  112,  114,  115,  117,  120,
+      121,  122,  123,  332,  126,  332,  102,  103,  105,  106,
+      109,   42,  118,  107,   95,  108,  113,  116,  111,  112,
+      114,  115,  117,  120,  121,  124,  122,  123,  126,  119,
+      127,  128,   42,  129,  125,  130,   42,  118,  131,  132,
+       42,  133,  332,  135,  136,  134,  179,  332,  145,  179,
+      124,  145,  332,  119,  127,  128,  137,  129,  125,  138,
+      130,  139,  131,  140,  132,  141,  133,  135,  136,  142,
+      134,   93,   40,   40,   94,   94,   40,   40,   94,  143,
+
+      144,  137,  146,  147,  138,  150,  139,  140,  153,  141,
+      151,   95,  154,  142,  110,   95,  157,  110,  155,  152,
+      156,  158,  332,  143,  159,  144,  146,  160,  147,  150,
+      332,  161,  153,  162,  148,  151,   95,  154,  163,  164,
+       95,  157,  155,  152,  156,  165,  158,  149,  159,  166,
+      167,  160,  170,  168,   42,  161,  168,  162,   42,  148,
+      171,  172,  163,  173,  164,  174,  332,  175,  176,  177,
+      165,  149,  178,  166,  167,  181,  170,  182,  183,  185,
+      169,  184,  332,  186,  171,  187,  172,  188,  173,  191,
+      174,  175,  176,  177,  192,  189,  193,  178,  189,  194,
+
+      181,  182,  183,  185,  169,  195,  184,  186,  201,  187,
+      190,  332,  188,  202,  191,  332,  203,  204,  205,  192,
+      206,  193,  209,  194,  179,  210,  214,  179,  211,  195,
+      212,  211,  213,  201,  216,  190,  168,  220,  202,  168,
+      203,  204,  217,  205,  332,  206,  209,  207,  232,  189,
+      210,  214,  189,  218,  212,  219,  213,  221,  228,  216,
+      229,  197,  220,  198,  230,  231,  217,  222,  199,  215,
+      222,  200,  207,  232,  332,  223,  332,  218,  234,  219,
+      233,  221,  228,  222,  229,  197,  222,  198,  230,  231,
+      235,  223,  199,  222,  215,  200,  222,  222,  224,  222,
+
+      222,  223,  222,  234,  233,  223,  236,  223,  238,  236,
+      211,  239,  227,  211,  240,  235,  241,   53,  243,  332,
+      332,  242,  250,  224,  242,  236,  332,  225,  236,  226,
+      148,  253,  238,  245,  332,  254,  239,  227,  240,  243,
+      241,  251,  222,  243,  222,  222,  250,  222,  252,  244,
+      223,  225,  223,  226,  245,  148,  253,  245,  222,  222,
+      254,  222,  222,  255,  243,  251,  223,  223,  258,  332,
+      247,  259,  252,  244,  246,  260,  261,  242,  245,  262,
+      242,  263,  264,  222,  249,  332,  222,  222,  255,  248,
+      222,  223,  332,  258,  247,  223,  259,  269,  246,  260,
+
+      261,  270,  272,  266,  262,  244,  263,  264,  249,  222,
+      273,  222,  222,  248,  222,  274,  265,  223,  282,  223,
+      275,  269,  276,  275,  277,  270,  272,  277,  266,  244,
+      222,  281,  223,  222,  273,  283,  285,  332,  223,  274,
+      265,  332,  267,  282,  279,  268,  276,  279,  222,  278,
+      275,  222,  223,  275,  242,  281,  223,  242,  332,  332,
+      283,  285,  222,  332,  332,  222,  267,  280,  295,  268,
+      223,  295,  287,  332,  278,  293,  291,  295,  293,  291,
+      295,  295,  288,  223,  295,  295,  291,  289,  295,  291,
+      300,  332,  280,  290,  243,  299,  296,  287,  299,  306,
+
+      298,  332,  306,  223,  292,  297,  288,  303,  332,  245,
+      311,  289,  304,  301,  292,  300,  301,  290,  313,  243,
+      295,  296,  318,  295,  295,  298,  308,  295,  292,  308,
+      297,  243,  303,  245,  310,  311,  304,  310,  292,  301,
+      312,  302,  301,  313,  243,  332,  245,  318,  275,  295,
+      307,  275,  295,  305,  309,  322,  243,  332,  308,  245,
+      295,  308,  332,  295,  312,  302,  332,  302,  314,  243,
+      245,  315,  310,  321,  307,  310,  316,  305,  309,  317,
+      322,  319,  320,  245,  319,  320,  309,  320,  332,  295,
+      320,  302,  295,  314,  330,  295,  315,  321,  295,  323,
+
+      316,  329,  323,  319,  317,  320,  319,  332,  320,  320,
+      309,  323,  320,  325,  323,  327,  325,  332,  325,  330,
+      328,  325,  332,  331,  294,  329,  331,  331,  332,  294,
+      331,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      327,  332,  332,  332,  328,  332,  332,  332,  332,  332,
+      284,  332,  294,  332,  332,  332,  332,  294,   43,   43,
+      332,   43,   43,   43,   45,   45,   53,   53,   53,   97,
+       97,   97,   98,   98,  332,   98,   98,   98,  180,  332,
+      332,  180,  180,  196,  332,  332,  196,  208,  208,  208,
+      237,  332,  237,  237,  237,  256,  332,  332,  256,  256,
+
+      257,  257,  257,  271,  271,  271,  284,  332,  332,  284,
+      284,  286,  332,  332,  286,  294,  294,  294,  324,  332,
+      332,  324,  324,  326,  332,  326,  326,  326,    3,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332
+
     } ;
 
-static yyconst flex_int16_t yy_chk[1045] =
+static yyconst flex_int16_t yy_chk[995] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -679,113 +665,108 @@ static yyconst flex_int16_t yy_chk[1045] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    2,   14,   14,    2,    5,
         5,    5,    5,    8,    8,    8,    8,   15,   15,   19,
-       18,  100,   20,   64,   21,    2,   64,   18,   20,   22,
-       24,   22,  108,   24,   26,  108,   25,   28,   48,   26,
+       18,   99,   20,   64,   21,    2,   64,   18,   20,   22,
+       24,   22,  107,   24,   26,  107,   25,   28,   48,   26,
 
-       54,   22,   43,   25,   19,   18,   28,   20,   21,   25,
+       54,   22,   58,   25,   19,   18,   28,   20,   21,   25,
         2,   18,   20,   22,   24,   22,   27,   24,   31,   26,
-       27,   25,   28,   26,   54,   22,   38,   25,   30,   27,
-       28,   29,    5,   25,   30,   55,    8,   30,   29,   58,
-       29,   27,   29,   31,   17,   27,   33,   35,   35,   33,
-       13,   38,   30,   27,  146,   33,   29,  146,   30,   32,
-       55,   30,   29,   58,   29,   56,   29,   59,   32,   32,
-       57,   33,   60,   32,   33,   34,   34,   42,   42,   33,
-       63,   34,   49,   49,   32,   12,   36,   36,   36,   36,
-       56,   59,   32,   32,   61,   57,   60,   32,   62,   67,
-
-       34,   34,   68,   70,   63,   34,   36,   37,   37,   37,
-       37,   39,   39,   39,   39,   41,   41,   41,   41,   61,
-       66,   66,   69,   62,   67,   72,   68,   37,   70,   71,
-       73,   36,   74,   77,   79,    9,   81,   82,   80,    3,
-       83,   84,   72,   85,   66,   66,   69,   80,   86,   36,
-       72,   87,   37,   71,   73,   88,   74,   91,   77,   79,
-       81,   82,   92,   80,   83,   84,   72,   85,   90,   96,
-       37,   80,   90,   86,   39,   87,   97,    0,   41,  101,
-       88,   91,   94,   94,   94,   94,   92,   95,   95,   95,
-       95,  103,  104,   90,   96,  105,  106,   90,  107,    0,
-
-      109,   97,   94,  110,  101,  112,  111,   95,  113,  111,
-      114,  115,    0,  116,  117,  103,  104,  113,  118,  105,
-      106,  120,  128,  107,  109,  121,  111,   94,  110,  112,
-      123,  124,   95,  113,  114,  125,  115,  116,  117,  111,
-      126,  113,  130,  118,  131,   94,  120,  128,  132,  121,
-       95,  111,  133,  134,  123,  124,  134,  135,  136,  125,
-      137,  138,  139,  111,  126,  140,  130,  141,  142,  131,
-      144,  147,  132,  149,  147,  150,  133,  151,  152,    0,
-      134,  135,  136,  153,  158,  137,  138,  139,  159,  140,
-      160,  141,  142,  164,  163,  144,  165,  163,  149,  150,
-
-      166,  151,  167,  152,  134,  168,  169,  153,  158,  163,
-        0,  174,  159,  177,  175,  160,  178,  180,  164,  181,
-      182,  165,  184,  182,  185,  166,  187,  167,  186,  168,
-      169,  186,  188,  190,  163,  171,  174,  177,  171,  175,
-      178,  193,  180,  182,  181,  192,  184,  194,  192,  185,
-      187,  195,  196,  198,  197,  199,  188,  197,  190,  206,
-      171,  200,  171,  207,  200,  192,  193,  171,  182,  200,
-      171,  194,    0,  208,  201,  195,  196,  201,  198,  199,
-        0,  210,  201,  206,  171,  202,  171,  207,  202,  201,
-      192,  171,  203,  202,  171,  203,  204,  208,  211,  204,
-
-      203,  214,  216,  217,  204,  210,  215,  218,  219,  215,
-      218,  204,  220,  238,  201,  221,  222,    0,  218,  202,
-      228,  229,  203,  211,  229,  214,  215,  216,  217,  229,
-      227,  241,  219,  227,  241,  228,  204,  220,  238,  221,
-      222,  230,  234,  202,  230,  228,  203,    0,  227,  230,
-      235,  215,  224,  229,  231,  224,  236,  231,  227,  228,
-        0,  239,  231,  227,  240,  243,  234,  230,  232,  224,
-      244,  232,  224,  227,  235,  245,  232,  229,  246,  247,
-      236,  224,  227,  249,  224,  231,  239,  227,  248,  240,
-      243,  230,  250,  232,  224,  244,  252,  224,  251,  245,
-
-      253,  251,  246,  247,  254,  224,    0,  249,  224,  231,
-      259,  255,  256,  248,  255,  256,  250,  232,  264,  255,
-      256,  252,  267,  268,  257,  253,  251,  257,  256,  254,
-      258,  271,  257,  258,  259,  272,  273,  276,  258,  274,
-      276,  275,  264,  277,  255,    0,  267,  268,  278,    0,
-      251,  278,  283,  256,  285,  271,  278,  257,  287,  288,
-      272,  273,  289,  274,  258,  275,  279,  277,  255,  279,
-      280,  290,  281,  280,  279,  281,  283,  291,  280,  285,
-      281,  257,  287,  293,  288,  279,  289,  292,  258,  294,
-      292,  281,  294,  295,  300,  290,  295,  296,  302,    0,
-
-      296,  295,  291,  297,  301,    0,  297,  294,  293,  301,
-      279,  297,    0,    0,    0,  296,  281,  294,  307,  300,
-        0,  307,  294,  302,  295,  296,  313,    0,  308,  301,
-      296,  308,  294,  301,  310,  309,  311,  310,  309,  311,
-      296,  294,  312,  308,  311,  312,  294,  318,  295,  296,
-      316,  313,  317,  314,  296,  309,  314,  310,  320,  321,
-      329,  322,  321,  320,  322,  327,  325,  330,  308,  325,
-      312,  314,  318,  331,  316,  323,  317,  332,  323,  337,
-      309,  314,  310,  320,  329,  324,  314,  320,  324,  341,
-      327,  330,  321,    0,  312,  326,  314,  331,  326,    0,
-
-        0,  323,  332,  324,  337,  314,  334,    0,  333,  334,
-      314,  333,  335,  324,  341,  335,  321,  336,  324,  338,
-      336,  339,  338,  326,  339,  323,  345,  333,  324,  334,
-      342,  335,  343,  342,  334,  343,  344,  324,  346,  344,
-      347,  348,  324,  347,  348,  336,  349,  326,  352,  349,
-      345,  352,  333,  358,  334,  359,  335,  353,  334,  354,
-      353,  355,  354,  346,  355,  356,    0,    0,  357,  336,
-      356,  357,  355,  360,    0,  361,  360,  358,  361,  357,
-      359,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      356,    0,    0,    0,  356,    0,    0,    0,  354,    0,
-
-      355,    0,    0,    0,    0,    0,    0,  357,  364,  364,
-        0,  364,  364,  364,  365,  365,  366,  366,  366,  367,
-      367,  367,  368,  368,    0,  368,  368,  368,  369,    0,
-        0,  369,  369,  370,    0,    0,  370,  371,  371,  371,
-      372,    0,  372,  372,  372,  373,    0,    0,  373,  373,
-      374,  374,  374,  375,  375,  375,  376,    0,    0,  376,
-      376,  377,    0,    0,  377,  378,  378,  378,  379,    0,
-        0,  379,  379,  380,    0,  380,  380,  380,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363
+       27,   25,   28,   26,   54,   22,   58,   25,   30,   27,
+       28,   29,    5,   25,   30,   43,    8,   30,   29,   17,
+       29,   27,   29,   31,   13,   27,   35,   35,   33,   32,
+       38,   33,   30,   27,   34,   34,   29,   33,   30,   32,
+       34,   30,   29,   32,   29,   12,   29,    9,   36,   36,
+       36,   36,    3,   33,   32,   38,   33,   42,   42,   34,
+       34,   33,   55,   32,   34,   49,   49,   32,   36,   37,
+       37,   37,   37,   39,   39,   39,   39,   41,   41,   41,
+
+       41,   56,   57,    0,   59,   60,   63,   55,   61,   37,
+       62,   67,   70,   36,   66,   66,   68,   69,   71,   73,
+       74,   77,   79,    0,   81,    0,   56,   57,   59,   60,
+       63,   36,   72,   61,   37,   62,   67,   70,   66,   66,
+       68,   69,   71,   73,   74,   80,   77,   79,   81,   72,
+       82,   83,   37,   84,   80,   85,   39,   72,   86,   87,
+       41,   89,    0,   90,   91,   89,  144,    0,  145,  144,
+       80,  145,    0,   72,   82,   83,   95,   84,   80,   96,
+       85,  100,   86,  102,   87,  103,   89,   90,   91,  104,
+       89,   93,   93,   93,   93,   94,   94,   94,   94,  105,
+
+      106,   95,  108,  109,   96,  111,  100,  102,  113,  103,
+      112,   93,  114,  104,  110,   94,  117,  110,  115,  112,
+      116,  119,    0,  105,  120,  106,  108,  122,  109,  111,
+        0,  123,  113,  124,  110,  112,   93,  114,  125,  127,
+       94,  117,  115,  112,  116,  129,  119,  110,  120,  130,
+      131,  122,  133,  132,   93,  123,  132,  124,   94,  110,
+      134,  135,  125,  136,  127,  137,    0,  138,  139,  140,
+      129,  110,  142,  130,  131,  147,  133,  148,  149,  151,
+      132,  150,    0,  156,  134,  157,  135,  158,  136,  162,
+      137,  138,  139,  140,  163,  161,  164,  142,  161,  165,
+
+      147,  148,  149,  151,  132,  166,  150,  156,  171,  157,
+      161,    0,  158,  172,  162,    0,  174,  175,  177,  163,
+      178,  164,  181,  165,  179,  182,  187,  179,  183,  166,
+      184,  183,  185,  171,  190,  161,  168,  194,  172,  168,
+      174,  175,  191,  177,    0,  178,  181,  179,  207,  189,
+      182,  187,  189,  192,  184,  193,  185,  195,  202,  190,
+      203,  168,  194,  168,  204,  206,  191,  196,  168,  189,
+      196,  168,  179,  207,    0,  196,    0,  192,  212,  193,
+      210,  195,  202,  197,  203,  168,  197,  168,  204,  206,
+      213,  197,  168,  198,  189,  168,  198,  200,  197,  199,
+
+      200,  198,  199,  212,  210,  200,  214,  199,  215,  214,
+      211,  216,  200,  211,  217,  213,  218,  214,  223,    0,
+        0,  222,  229,  197,  222,  236,    0,  198,  236,  199,
+      211,  233,  215,  223,    0,  234,  216,  200,  217,  222,
+      218,  230,  224,  223,  225,  224,  229,  225,  231,  222,
+      224,  198,  225,  199,  222,  211,  233,  223,  226,  227,
+      234,  226,  227,  235,  222,  230,  226,  227,  238,    0,
+      225,  239,  231,  222,  224,  240,  241,  242,  222,  243,
+      242,  244,  245,  246,  227,    0,  246,  247,  235,  226,
+      247,  246,    0,  238,  225,  247,  239,  250,  224,  240,
+
+      241,  255,  258,  247,  243,  242,  244,  245,  227,  248,
+      259,  249,  248,  226,  249,  262,  246,  248,  272,  249,
+      263,  250,  264,  263,  265,  255,  258,  265,  247,  242,
+      266,  270,  265,  266,  259,  274,  276,    0,  266,  262,
+      246,    0,  248,  272,  267,  249,  264,  267,  268,  266,
+      275,  268,  267,  275,  277,  270,  268,  277,    0,    0,
+      274,  276,  278,    0,    0,  278,  248,  268,  286,  249,
+      278,  286,  277,    0,  266,  280,  279,  289,  280,  279,
+      289,  287,  277,  280,  287,  288,  291,  277,  288,  291,
+      292,    0,  268,  278,  279,  290,  287,  277,  290,  297,
+
+      289,    0,  297,  290,  279,  288,  277,  295,    0,  279,
+      302,  277,  295,  293,  291,  292,  293,  278,  304,  279,
+      296,  287,  309,  296,  298,  289,  299,  298,  279,  299,
+      288,  293,  295,  279,  300,  302,  295,  300,  291,  301,
+      303,  293,  301,  304,  299,    0,  293,  309,  306,  305,
+      298,  306,  305,  296,  299,  316,  293,    0,  308,  299,
+      307,  308,    0,  307,  303,  293,    0,  301,  305,  299,
+      293,  306,  310,  315,  298,  310,  306,  296,  299,  307,
+      316,  311,  312,  299,  311,  312,  308,  313,    0,  314,
+      313,  301,  314,  305,  328,  317,  306,  315,  317,  318,
+
+      306,  327,  318,  319,  307,  321,  319,    0,  321,  322,
+      308,  323,  322,  324,  323,  325,  324,    0,  326,  328,
+      325,  326,    0,  329,  324,  327,  329,  330,    0,  326,
+      330,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      325,    0,    0,    0,  325,    0,    0,    0,    0,    0,
+      323,    0,  324,    0,    0,    0,    0,  326,  333,  333,
+        0,  333,  333,  333,  334,  334,  335,  335,  335,  336,
+      336,  336,  337,  337,    0,  337,  337,  337,  338,    0,
+        0,  338,  338,  339,    0,    0,  339,  340,  340,  340,
+      341,    0,  341,  341,  341,  342,    0,    0,  342,  342,
+
+      343,  343,  343,  344,  344,  344,  345,    0,    0,  345,
+      345,  346,    0,    0,  346,  347,  347,  347,  348,    0,
+        0,  348,  348,  349,    0,  349,  349,  349,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332
+
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -876,7 +857,7 @@ static int checkImmediate(int token) {
 	return token;
 }
 
-#line 880 "engines/director/lingo/lingo-lex.cpp"
+#line 861 "engines/director/lingo/lingo-lex.cpp"
 
 #define INITIAL 0
 
@@ -1062,7 +1043,7 @@ YY_DECL
 #line 92 "engines/director/lingo/lingo-lex.l"
 
 
-#line 1066 "engines/director/lingo/lingo-lex.cpp"
+#line 1047 "engines/director/lingo/lingo-lex.cpp"
 
 	if ( !(yy_init) )
 		{
@@ -1116,13 +1097,13 @@ yy_match:
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 364 )
+				if ( yy_current_state >= 333 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_current_state != 363 );
+		while ( yy_current_state != 332 );
 		yy_cp = (yy_last_accepting_cpos);
 		yy_current_state = (yy_last_accepting_state);
 
@@ -1398,37 +1379,16 @@ YY_RULE_SETUP
 case 46:
 YY_RULE_SETUP
 #line 168 "engines/director/lingo/lingo-lex.l"
-{
-		count();
-
-		const char *ptr = &yytext[6]; // Skip 'sound '
-		while (*ptr == ' ' || *ptr == '\t')
-			ptr++;
-
-		Common::String bltin = Common::String::format("sound-%s", ptr);
-
-		if (g_lingo->_builtins.contains(bltin)) {
-			yylval.s = new Common::String(bltin);
-			return BLTIN;
-		} else {
-			warning("LEXER: Unhandled 'sound %s'", ptr);
-			return LEXERROR;
-		}
-	}
-	YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 185 "engines/director/lingo/lingo-lex.l"
 { count(); return tSTARTS; }
 	YY_BREAK
-case 48:
+case 47:
 YY_RULE_SETUP
-#line 186 "engines/director/lingo/lingo-lex.l"
+#line 169 "engines/director/lingo/lingo-lex.l"
 { count(); return tTELL; }
 	YY_BREAK
-case 49:
+case 48:
 YY_RULE_SETUP
-#line 187 "engines/director/lingo/lingo-lex.l"
+#line 170 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1438,9 +1398,9 @@ YY_RULE_SETUP
 		return THEENTITYWITHID;
 	}
 	YY_BREAK
-case 50:
+case 49:
 YY_RULE_SETUP
-#line 195 "engines/director/lingo/lingo-lex.l"
+#line 178 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1449,9 +1409,9 @@ YY_RULE_SETUP
 		return FBLTIN;
 	}
 	YY_BREAK
-case 51:
+case 50:
 YY_RULE_SETUP
-#line 202 "engines/director/lingo/lingo-lex.l"
+#line 185 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1488,9 +1448,9 @@ YY_RULE_SETUP
 		}
 	}
 	YY_BREAK
-case 52:
+case 51:
 YY_RULE_SETUP
-#line 237 "engines/director/lingo/lingo-lex.l"
+#line 220 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1514,9 +1474,9 @@ YY_RULE_SETUP
 		}
 	}
 	YY_BREAK
-case 53:
+case 52:
 YY_RULE_SETUP
-#line 259 "engines/director/lingo/lingo-lex.l"
+#line 242 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1581,9 +1541,9 @@ YY_RULE_SETUP
 		warning("LEXER: Unhandled the entity '%s', field '%s'", ptr, field.c_str());
 	}
 	YY_BREAK
-case 54:
+case 53:
 YY_RULE_SETUP
-#line 322 "engines/director/lingo/lingo-lex.l"
+#line 305 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1619,9 +1579,9 @@ YY_RULE_SETUP
 			return THEENTITY;
 	}
 	YY_BREAK
-case 55:
+case 54:
 YY_RULE_SETUP
-#line 356 "engines/director/lingo/lingo-lex.l"
+#line 339 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1642,74 +1602,74 @@ YY_RULE_SETUP
 		warning("LEXER: Unhandled the entity '%s'", ptr);
 	}
 	YY_BREAK
-case 56:
+case 55:
 YY_RULE_SETUP
-#line 375 "engines/director/lingo/lingo-lex.l"
+#line 358 "engines/director/lingo/lingo-lex.l"
 { count(); return tTHEN; }
 	YY_BREAK
-case 57:
+case 56:
 YY_RULE_SETUP
-#line 376 "engines/director/lingo/lingo-lex.l"
+#line 359 "engines/director/lingo/lingo-lex.l"
 { count(); return tTO; }
 	YY_BREAK
-case 58:
+case 57:
 YY_RULE_SETUP
-#line 377 "engines/director/lingo/lingo-lex.l"
+#line 360 "engines/director/lingo/lingo-lex.l"
 { count(); return tSPRITE; }
 	YY_BREAK
-case 59:
+case 58:
 YY_RULE_SETUP
-#line 378 "engines/director/lingo/lingo-lex.l"
+#line 361 "engines/director/lingo/lingo-lex.l"
 { count(); return tWITH; }
 	YY_BREAK
-case 60:
+case 59:
 YY_RULE_SETUP
-#line 379 "engines/director/lingo/lingo-lex.l"
+#line 362 "engines/director/lingo/lingo-lex.l"
 { count(); return tWITHIN; }
 	YY_BREAK
-case 61:
+case 60:
 YY_RULE_SETUP
-#line 380 "engines/director/lingo/lingo-lex.l"
+#line 363 "engines/director/lingo/lingo-lex.l"
 { count(); return tWHEN; }
 	YY_BREAK
-case 62:
+case 61:
 YY_RULE_SETUP
-#line 381 "engines/director/lingo/lingo-lex.l"
+#line 364 "engines/director/lingo/lingo-lex.l"
 { count(); return tWHILE; }
 	YY_BREAK
-case 63:
+case 62:
 YY_RULE_SETUP
-#line 382 "engines/director/lingo/lingo-lex.l"
+#line 365 "engines/director/lingo/lingo-lex.l"
 { count(); return tWORD; }
 	YY_BREAK
-case 64:
+case 63:
 YY_RULE_SETUP
-#line 384 "engines/director/lingo/lingo-lex.l"
+#line 367 "engines/director/lingo/lingo-lex.l"
 { count(); return tNEQ; }
 	YY_BREAK
-case 65:
+case 64:
 YY_RULE_SETUP
-#line 385 "engines/director/lingo/lingo-lex.l"
+#line 368 "engines/director/lingo/lingo-lex.l"
 { count(); return tGE; }
 	YY_BREAK
-case 66:
+case 65:
 YY_RULE_SETUP
-#line 386 "engines/director/lingo/lingo-lex.l"
+#line 369 "engines/director/lingo/lingo-lex.l"
 { count(); return tLE; }
 	YY_BREAK
-case 67:
+case 66:
 YY_RULE_SETUP
-#line 387 "engines/director/lingo/lingo-lex.l"
+#line 370 "engines/director/lingo/lingo-lex.l"
 { count(); return tCONCAT; }
 	YY_BREAK
-case 68:
+case 67:
 YY_RULE_SETUP
-#line 388 "engines/director/lingo/lingo-lex.l"
+#line 371 "engines/director/lingo/lingo-lex.l"
 { count(); return tEQ; }
 	YY_BREAK
-case 69:
+case 68:
 YY_RULE_SETUP
-#line 390 "engines/director/lingo/lingo-lex.l"
+#line 373 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 		yylval.s = new Common::String(yytext);
@@ -1745,43 +1705,43 @@ YY_RULE_SETUP
 		return ID;
 	}
 	YY_BREAK
-case 70:
+case 69:
 YY_RULE_SETUP
-#line 424 "engines/director/lingo/lingo-lex.l"
+#line 407 "engines/director/lingo/lingo-lex.l"
 { count(); yylval.f = atof(yytext); return FLOAT; }
 	YY_BREAK
-case 71:
+case 70:
 YY_RULE_SETUP
-#line 425 "engines/director/lingo/lingo-lex.l"
+#line 408 "engines/director/lingo/lingo-lex.l"
 { count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
 	YY_BREAK
-case 72:
+case 71:
 YY_RULE_SETUP
-#line 426 "engines/director/lingo/lingo-lex.l"
+#line 409 "engines/director/lingo/lingo-lex.l"
 { count(); return *yytext; }
 	YY_BREAK
-case 73:
-/* rule 73 can match eol */
+case 72:
+/* rule 72 can match eol */
 YY_RULE_SETUP
-#line 427 "engines/director/lingo/lingo-lex.l"
+#line 410 "engines/director/lingo/lingo-lex.l"
 { count(); return '\n'; }
 	YY_BREAK
-case 74:
+case 73:
 YY_RULE_SETUP
-#line 428 "engines/director/lingo/lingo-lex.l"
+#line 411 "engines/director/lingo/lingo-lex.l"
 { count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
 	YY_BREAK
-case 75:
+case 74:
 YY_RULE_SETUP
-#line 429 "engines/director/lingo/lingo-lex.l"
+#line 412 "engines/director/lingo/lingo-lex.l"
 { count(); }
 	YY_BREAK
-case 76:
+case 75:
 YY_RULE_SETUP
-#line 431 "engines/director/lingo/lingo-lex.l"
+#line 414 "engines/director/lingo/lingo-lex.l"
 ECHO;
 	YY_BREAK
-#line 1785 "engines/director/lingo/lingo-lex.cpp"
+#line 1745 "engines/director/lingo/lingo-lex.cpp"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -2075,7 +2035,7 @@ static int yy_get_next_buffer (void)
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 364 )
+			if ( yy_current_state >= 333 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2103,11 +2063,11 @@ static int yy_get_next_buffer (void)
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 364 )
+		if ( yy_current_state >= 333 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 363);
+	yy_is_jam = (yy_current_state == 332);
 
 	return yy_is_jam ? 0 : yy_current_state;
 }
@@ -2741,7 +2701,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 431 "engines/director/lingo/lingo-lex.l"
+#line 414 "engines/director/lingo/lingo-lex.l"
 
 
 
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index a076993c73..b18b957d63 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -165,23 +165,6 @@ property	{ count(); return tPROPERTY; }	// D4
 put			{ count(); return tPUT; }
 repeat		{ count(); return checkImmediate(tREPEAT); }
 set			{ count(); return tSET; }
-sound[ \t]+(close|fadeIn|fadeOut|playFile|stop)	{
-		count();
-
-		const char *ptr = &yytext[6]; // Skip 'sound '
-		while (*ptr == ' ' || *ptr == '\t')
-			ptr++;
-
-		Common::String bltin = Common::String::format("sound-%s", ptr);
-
-		if (g_lingo->_builtins.contains(bltin)) {
-			yylval.s = new Common::String(bltin);
-			return BLTIN;
-		} else {
-			warning("LEXER: Unhandled 'sound %s'", ptr);
-			return LEXERROR;
-		}
-	}
 starts		{ count(); return tSTARTS; }
 tell		{ count(); return tTELL; }
 the[ \t]+sqrt[ \t]+of[ \t]+	{


Commit: 825b714cb6db3b987b647467d881b614da377dde
    https://github.com/scummvm/scummvm/commit/825b714cb6db3b987b647467d881b614da377dde
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-04-05T00:22:06+02:00

Commit Message:
DIRECTOR: LINGO: Merged sound-* with b_sound()

Changed paths:
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo-builtins.h


diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index d8c9ce8623..b1f970bf7a 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1701,41 +1701,62 @@ void LB::b_sound(int nargs) {
 	// "playFile", INT soundChannel, STRING fileName
 	// "stop", INT soundChannel
 
-	if (nargs >= 2 && nargs <= 3) {
-		Datum verb;
-		Datum firstArg = g_lingo->pop();
-		Datum secondArg = g_lingo->pop();
-		if (nargs > 2) {
-			verb = g_lingo->pop();
-			g_lingo->push(secondArg);
-			g_lingo->push(firstArg);
-		} else {
-			verb = secondArg;
-			g_lingo->push(firstArg);
-		}
+	if (nargs < 2 || nargs > 3) {
+		warning("b_sound: expected 2 or 3 args, not %d", nargs);
+		g_lingo->dropStack(nargs);
+
+		return;
+	}
 
-		if (verb.type != STRING) {
-			warning("b_sound: verb arg should be of type STRING, not %s", verb.type2str());
+	Datum secondArg = g_lingo->pop();
+	Datum firstArg = g_lingo->pop();
+	Datum verb;
+	if (nargs > 2) {
+		verb = g_lingo->pop();
+	} else {
+		verb = firstArg;
+		firstArg = secondArg;
+	}
+
+	if (verb.type != STRING && verb.type != SYMBOL) {
+		warning("b_sound: verb arg should be of type STRING, not %s", verb.type2str());
+		return;
+	}
+
+	if (verb.u.s->equalsIgnoreCase("close") || verb.u.s->equalsIgnoreCase("stop")) {
+		if (nargs != 2) {
+			warning("sound %s: expected 1 argument, got %d", verb.u.s->c_str(), nargs - 1);
 			return;
 		}
 
-		if (*verb.u.s == "close") {
-			b_soundClose(nargs - 1);
-		} else if (*verb.u.s == "fadeIn") {
-			b_soundFadeIn(nargs - 1);
-		} else if (*verb.u.s == "fadeOut") {
-			b_soundFadeOut(nargs - 1);
-		} else if (*verb.u.s == "playFile") {
-			b_soundPlayFile(nargs - 1);
-		} else if (*verb.u.s == "stop") {
-			b_soundStop(nargs - 1);
-		} else {
-			warning("b_sound: unknown verb %s", verb.u.s->c_str());
+		if (firstArg.type != INT) {
+			warning("sound close: whichChannel arg should be of type INT, not %s", firstArg.type2str());
+			return;
+		}
+		g_director->getSoundManager()->stopSound(firstArg.u.i);
+	} else if (verb.u.s->equalsIgnoreCase("fadeIn")) {
+		warning("STUB: sound fadeIn");
+		return;
+	} else if (verb.u.s->equalsIgnoreCase("fadeOut")) {
+		warning("STUB: sound fadeOut");
+		return;
+	} else if (verb.u.s->equalsIgnoreCase("playFile")) {
+		if (nargs != 3) {
+			warning("sound playFile: expected 2 arguments, got %d", nargs - 1);
+			return;
+		}
+		if (firstArg.type != INT) {
+			warning("sound playFile: whichChannel arg should be of type INT, not %s", firstArg.type2str());
+			return;
+		}
+		if (secondArg.type != STRING) {
+			warning("sound playFile: whichFile arg should be of type STRING, not %s", secondArg.type2str());
+			return;
 		}
 
+		g_director->getSoundManager()->playFile(pathMakeRelative(*secondArg.u.s), firstArg.u.i);
 	} else {
-		warning("b_sound: expected 2 or 3 args, not %d", nargs);
-		g_lingo->dropStack(nargs);
+		warning("b_sound: unknown verb %s", verb.u.s->c_str());
 	}
 }
 
@@ -1759,61 +1780,6 @@ void LB::b_soundBusy(int nargs) {
 	g_lingo->push(result);
 }
 
-void LB::b_soundClose(int nargs) {
-	b_soundStop(nargs);
-}
-
-void LB::b_soundFadeIn(int nargs) {
-	g_lingo->printSTUBWithArglist("b_soundFadeIn", nargs);
-
-	g_lingo->dropStack(nargs);
-}
-
-void LB::b_soundFadeOut(int nargs) {
-	g_lingo->printSTUBWithArglist("b_soundFadeOut", nargs);
-
-	g_lingo->dropStack(nargs);
-}
-
-void LB::b_soundPlayFile(int nargs) {
-	if (nargs != 2) {
-		error("b_soundPlayFile: expected 2 arguments, got %d", nargs);
-		g_lingo->dropStack(nargs);
-		return;
-	}
-
-	Datum whichFile = g_lingo->pop();
-	if (whichFile.type != STRING) {
-		warning("b_soundPlayFile(): whichFile arg should be of type STRING, not %s", whichFile.type2str());
-		return;
-	}
-
-	DirectorSound *sound = g_director->getSoundManager();
-	Datum whichChannel = g_lingo->pop();
-	if (whichChannel.type != INT) {
-		warning("b_soundPlayFile(): whichChannel arg should be of type INT, not %s", whichChannel.type2str());
-		return;
-	}
-
-	sound->playFile(pathMakeRelative(*whichFile.u.s), whichChannel.u.i);
-}
-
-void LB::b_soundStop(int nargs) {
-	if (nargs != 1) {
-		error("b_soundStop: expected 1 argument, got %d", nargs);
-		g_lingo->dropStack(nargs);
-		return;
-	}
-
-	DirectorSound *sound = g_director->getSoundManager();
-	Datum whichChannel = g_lingo->pop();
-	if (whichChannel.type != INT) {
-		warning("b_soundStop(): whichChannel arg should be of type INT, not %s", whichChannel.type2str());
-		return;
-	}
-	sound->stopSound(whichChannel.u.i);
-}
-
 ///////////////////
 // Constants
 ///////////////////
diff --git a/engines/director/lingo/lingo-builtins.h b/engines/director/lingo/lingo-builtins.h
index f70cc13d4a..a83aa4a411 100644
--- a/engines/director/lingo/lingo-builtins.h
+++ b/engines/director/lingo/lingo-builtins.h
@@ -176,11 +176,6 @@ namespace LB {
 	void b_mciwait(int nargs);
 	void b_sound(int nargs);
 	void b_soundBusy(int nargs);
-	void b_soundClose(int nargs);
-	void b_soundFadeIn(int nargs);
-	void b_soundFadeOut(int nargs);
-	void b_soundPlayFile(int nargs);
-	void b_soundStop(int nargs);
 
 	void b_backspace(int nargs);
 	void b_empty(int nargs);




More information about the Scummvm-git-logs mailing list