]> granicus.if.org Git - nethack/commitdiff
Update precompiled lex and yacc files
authorPasi Kallinen <paxed@alt.org>
Fri, 10 Apr 2015 16:45:04 +0000 (19:45 +0300)
committerPasi Kallinen <paxed@alt.org>
Fri, 10 Apr 2015 16:45:04 +0000 (19:45 +0300)
sys/share/lev_lex.c
sys/share/lev_yacc.c

index c5fdc4097a750721c97621a1f1e13782dbb78379..bfe700ceb54acefd3336759eb43a7399f2547ec0 100644 (file)
@@ -369,8 +369,8 @@ static void yy_fatal_error (yyconst char msg[]  );
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 197
-#define YY_END_OF_BUFFER 198
+#define YY_NUM_RULES 198
+#define YY_END_OF_BUFFER 199
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -378,123 +378,122 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[1049] =
+static yyconst flex_int16_t yy_accept[1038] =
     {   0,
-        0,    0,    0,    0,  198,  196,  192,  191,  196,  196,
-      196,  196,  196,  196,  195,  181,  189,  196,  190,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  196,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      192,  196,  195,    2,  196,  192,  196,  196,  195,  181,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  192,  196,  195,  192,  191,  185,
-        0,  182,  183,    0,    0,  179,  195,  178,  180,  181,
-
-      195,  187,  186,  184,  188,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,   39,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,   55,  195,  195,    0,    0,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  153,  195,  195,  192,    0,
-        0,    3,  195,    2,    2,    0,  192,    0,  179,  195,
-      178,  181,  195,  195,  195,  195,  195,   39,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  192,    0,    2,
-        0,    0,  195,  194,    0,  194,  176,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-       54,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-
-      195,  195,  195,    0,  195,  103,  195,   83,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,   79,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,   81,  195,  195,  195,
-      195,  138,  195,  195,  195,  195,  127,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,   16,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  125,  195,
-
-      195,  195,  195,  195,  195,  195,  195,   80,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  193,
-      195,  195,  195,   58,  195,  195,  195,   22,  195,   40,
-      195,   41,  195,  195,  195,  195,   49,  195,  195,  195,
-      195,   56,    6,  195,  195,  195,   53,  195,  195,  195,
-       36,  195,  195,  195,  195,   42,  195,   35,  195,  195,
-      195,  195,  195,   21,  195,    0,  177,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  159,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  154,
-      157,  113,  195,  195,  195,  195,  195,  195,  195,  195,
-
-      195,  195,  195,  195,   69,  195,  195,  195,  195,  195,
-      195,  195,  195,  120,  195,  195,   67,  195,  195,  195,
-      195,  160,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  118,  195,  195,  195,  106,  195,  195,  195,  195,
-      195,  195,  195,   65,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  156,  195,  195,  195,  195,  195,  115,   15,
-        0,  195,  195,  195,  195,  195,  195,    2,    0,   28,
-      195,   59,  195,  195,  195,  195,  195,   13,  195,  195,
-      195,   50,  195,  195,    7,  195,  195,  195,  195,    5,
-
-      195,  195,  195,  195,  195,  195,  195,  195,  195,   30,
-      195,  195,  195,  195,  195,  119,  152,  195,  195,  195,
-      146,  195,  195,  161,  195,  195,  195,  195,  195,  140,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  155,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,   11,  195,  195,  195,  195,
-      195,  195,  195,  112,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  124,  195,   12,  195,
-      195,  195,  195,  195,  195,  195,   82,  114,  195,  195,
-
-      195,  195,  195,  195,  195,  195,  128,  195,  195,  195,
-      195,  195,   33,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,   29,  195,  195,  195,  195,  195,  195,   17,
-       31,  195,   27,  195,  195,  195,  195,   57,  195,  195,
-      195,  195,  145,   96,  195,  195,  126,  110,   86,  195,
-      122,   72,  107,  195,  195,  195,  164,  195,  195,   87,
-      195,   93,  129,  195,   74,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  134,  195,
-      195,  108,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  109,  167,  195,  195,   16,  195,  195,  195,  195,
-
-       77,  195,  116,  195,  195,  195,  195,  195,  111,  195,
-      195,  195,  151,  172,  195,  195,   78,  195,  195,  195,
-      195,  195,  195,  195,  195,    1,  195,   57,  195,  195,
-      195,   60,  195,  195,  195,  195,  195,  195,  195,    4,
-      195,   19,  195,  195,  195,  195,  195,   62,   43,  195,
-       46,   26,  195,  162,   98,  195,  195,  195,  195,   73,
-      158,  195,  195,   97,  195,  195,  195,   92,  195,  195,
-      195,  195,  144,  195,  195,  195,  195,  135,  195,  195,
-      195,  195,  195,   20,   63,  139,  137,  195,  195,  195,
-      195,  195,  195,  195,  117,  195,  131,   95,  195,  150,
-
-      195,  195,  195,  195,  195,  100,   47,   89,  195,  195,
-      195,  195,  195,   26,  195,   45,  195,  195,   34,   61,
-       14,    8,   25,  195,  195,  195,  195,  195,   23,  195,
-      168,  195,  195,  195,  101,  195,   66,  195,   75,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      149,    9,  195,  195,  195,  195,  143,  195,   85,   68,
-      195,   71,  195,  195,  195,  195,  175,  163,  130,  133,
-      195,  105,   18,  195,   51,  195,  195,  195,  195,  195,
-      195,   94,  141,  195,  195,   70,  173,  121,  195,  166,
-      195,  174,   91,  132,   84,  147,  148,  170,  195,  195,
-
-       99,  171,   90,  195,   64,  195,   10,  136,   24,   52,
-      195,  195,  195,  195,  195,   76,   88,  123,  104,  195,
-      165,  102,  195,  195,  195,  195,  195,  195,  195,  195,
-       37,   38,  195,  195,  195,  142,  169,  195,  195,  195,
-      195,  195,  195,  195,   48,   32,   44,    0
+        0,    0,    0,    0,  199,  197,  193,  192,  197,  197,
+      197,  197,  197,  197,  196,  182,  190,  197,  191,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  197,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      193,  197,  196,    2,  197,  193,  197,  197,  196,  182,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  193,  197,  193,  192,  186,    0,  183,  184,
+        0,    0,  180,  196,  179,  181,  182,  196,  188,  187,
+
+      185,  189,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,   39,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+       55,  196,  196,    0,    0,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  153,  196,  196,  193,    0,    0,    3,  196,
+        2,    2,    0,  193,    0,  180,  196,  179,  182,  196,
+      196,  196,  196,   39,  196,  196,  196,  196,  196,  196,
+      193,    0,    2,    0,    0,  195,    0,  195,  177,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,   54,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,    0,  196,  103,  196,   83,
+
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,   79,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,   81,
+      196,  196,  196,  196,  138,  196,  196,  196,  196,  127,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,   16,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  125,  196,  196,  196,  196,  196,  196,  196,  196,
+
+       80,  196,  196,  196,  196,  196,  196,  196,  196,  194,
+      196,  196,  196,   58,  196,  196,  196,   22,  196,   40,
+      196,   41,  196,  196,  196,  196,   49,  196,  196,  196,
+      196,   56,    6,  196,  196,  196,   53,  196,  196,  196,
+       36,  196,  196,  196,  196,   42,  196,   35,  196,  196,
+      196,  196,  196,   21,  196,    0,  178,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  159,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      154,  157,  113,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,   69,  196,  196,  196,  196,
+
+      196,  196,  196,  196,  120,  196,  196,   67,  196,  196,
+      196,  196,  160,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  118,  196,  196,  196,  106,  196,  196,  196,
+      196,  196,  196,  196,   65,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  156,  196,  196,  196,  196,  196,  115,
+       15,    0,  196,  196,  196,  196,  196,   28,  196,   59,
+      196,  196,  196,  196,  196,   13,  196,  196,  196,   50,
+      196,  196,    7,  196,  196,  196,  196,    5,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,   30,  196,  196,
+
+      196,  196,  196,  119,  152,  196,  196,  196,  146,  196,
+      196,  161,  196,  196,  196,  196,  196,  140,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  155,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,   11,  196,  196,  196,  196,  196,
+      196,  196,  112,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  124,  196,   12,  196,  196,
+      196,  196,  196,  196,  196,   82,  114,  196,  196,  196,
+      196,  196,  196,  196,  196,  128,  196,  196,  196,  196,
+
+       33,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+       29,  196,  196,  196,  196,  196,  196,   17,   31,  196,
+       27,  196,  196,  196,  196,   57,  196,  196,  196,  196,
+      145,   96,  196,  196,  126,  110,   86,  196,  122,   72,
+      107,  196,  196,  196,  196,  164,  196,  196,   87,  196,
+       93,  129,  196,   74,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  134,  196,  196,
+      108,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      109,  167,  196,  196,   16,  196,  196,  196,  196,   77,
+      196,  116,  196,  196,  196,  196,  196,  111,  196,  196,
+
+      196,  151,  172,  196,  196,   78,  196,  196,  196,  196,
+      196,  196,  196,  196,    1,   57,  196,  196,  196,   60,
+      196,  196,  196,  196,  196,  196,  196,    4,  196,   19,
+      196,  196,  196,  196,  196,   62,   43,  196,   46,   26,
+      196,  162,   98,  196,  196,  196,  196,  196,   73,  158,
+      196,  196,   97,  196,  196,  196,   92,  196,  196,  196,
+      196,  144,  196,  196,  196,  196,  135,  196,  196,  196,
+      196,  196,   20,   63,  139,  137,  196,  196,  196,  196,
+      196,  196,  196,  117,  196,  131,   95,  196,  150,  196,
+      196,  196,  196,  196,  100,   47,   89,  196,  196,  196,
+
+      196,  196,  196,   45,  196,  196,   34,   61,   14,    8,
+       25,  196,  196,  196,  196,  196,   23,  196,  168,  196,
+      196,  196,  101,  176,  196,   66,  196,   75,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  149,
+        9,  196,  196,  196,  196,  143,  196,   85,   68,  196,
+       71,  196,  196,  196,  196,  175,  163,  130,  133,  196,
+      105,   18,  196,   51,  196,  196,  196,  196,  196,  196,
+       94,  141,  196,  196,   70,  173,  121,  196,  166,  196,
+      174,   91,  132,   84,  147,  148,  170,  196,  196,   99,
+      171,   90,  196,   64,  196,   10,  136,   24,   52,  196,
+
+      196,  196,  196,  196,   76,   88,  123,  104,  196,  165,
+      102,  196,  196,  196,  196,  196,  196,  196,  196,   37,
+       38,  196,  196,  196,  142,  169,  196,  196,  196,  196,
+      196,  196,  196,   48,   32,   44,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -534,254 +533,252 @@ static yyconst flex_int32_t yy_meta[75] =
         1,    2,    3,    2,    2,    1,    1,    2,    1,    1,
         1,    2,    4,    2,    4,    1,    1,    1,    5,    5,
         5,    6,    6,    5,    6,    5,    5,    6,    5,    5,
-        5,    6,    6,    5,    6,    6,    5,    5,    5,    6,
-        5,    6,    5,    6,    1,    2,    1,    6,    6,    6,
+        6,    6,    6,    5,    6,    6,    5,    5,    6,    6,
+        5,    6,    6,    6,    1,    2,    1,    6,    6,    6,
+        6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
-        6,    6,    6,    6,    6,    6,    6,    5,    6,    6,
         6,    5,    6,    6
     } ;
 
-static yyconst flex_int16_t yy_base[1056] =
+static yyconst flex_int16_t yy_base[1045] =
     {   0,
-        0,   73,  102,   77, 1287, 1288,   75, 1288, 1283, 1268,
-     1277,    0, 1237, 1267, 1266,   78,   66, 1263, 1262, 1248,
-     1241,   57,   63,   59,   64,  101,    0,   63,   79,  119,
-       94, 1256, 1242,  128,  127,  126, 1255,  104,  109,  118,
-      133,   94,  139,  151, 1207,   95,  132, 1209,  157,  164,
-      154,  100,  166, 1202,  173,  175,  176,   56, 1217, 1216,
-      239, 1265,  226, 1288, 1264,  252,  248,  258,  271,  157,
-      162,  120,  248,  216,  274, 1251,  201,  249,  296,  140,
-      306,  301,  176,  265,  346,  352,  369,  232, 1288, 1288,
-     1258, 1288,    0, 1253, 1252, 1247,    0, 1246, 1288,  278,
-
-     1245, 1288, 1288, 1288, 1288, 1221,  246, 1221,  234, 1233,
-     1223, 1236, 1217, 1228, 1225, 1232,  260, 1218, 1216, 1218,
-     1228,    0, 1219, 1223, 1204, 1210, 1198, 1204, 1208, 1207,
-     1207,  246, 1209,  270, 1204,  301, 1202, 1195, 1201, 1213,
-     1211, 1203,  306,    0, 1210, 1198,  347,  208,  301, 1154,
-     1176, 1165, 1171, 1174,  317, 1154, 1158, 1154, 1157, 1156,
-     1168, 1150, 1152,  338, 1148, 1142, 1139, 1144, 1143, 1149,
-     1153, 1144, 1146, 1144, 1144,  300,  348,  280,  337, 1150,
-     1132, 1135, 1143, 1128,  217,  345, 1147,  314,   26, 1135,
-     1134, 1134, 1125,  360, 1135, 1139, 1125, 1141, 1136, 1139,
-
-      356,  359, 1132, 1134, 1130, 1122,  372,  259,  325, 1114,
-     1113, 1115, 1116,  366,  376,    0, 1113,  349,  435, 1175,
-     1174, 1288,  397, 1288, 1288, 1173,  442,  446,  449, 1160,
-        0,  423,  404,  424,  316,  439,  440, 1159,  305,  441,
-      442,  444,  445,  447,  448,  170,  450,  484,    0, 1288,
-     1170,    0,  456, 1288, 1161, 1160, 1155, 1150, 1136, 1148,
-     1143, 1127, 1128, 1144, 1126, 1120, 1137, 1123, 1120, 1132,
-        0, 1124, 1134, 1123, 1131, 1112, 1113, 1128, 1126, 1114,
-     1124, 1109, 1122, 1107, 1120, 1123, 1093, 1117, 1109, 1100,
-     1115, 1109, 1105, 1103, 1109, 1103, 1104, 1094, 1091, 1105,
-
-     1091, 1092, 1095,  462, 1069,    0, 1074,    0, 1059, 1068,
-     1058, 1060, 1051, 1055, 1053, 1047, 1055,  416, 1062, 1044,
-     1048, 1059, 1042, 1048, 1043, 1052, 1038, 1042,    0, 1035,
-     1034, 1044, 1034, 1047, 1031, 1048,  416, 1043, 1032,  427,
-     1045, 1022, 1038, 1039, 1033, 1021,    0, 1036, 1030, 1033,
-     1023,    0, 1016, 1017, 1025, 1028,    0, 1021, 1026, 1015,
-     1027, 1017, 1022, 1021,  402, 1020, 1004, 1011, 1007, 1008,
-      440, 1000, 1014, 1013, 1003, 1015, 1012, 1001,  999, 1003,
-     1007,  426,  989, 1000, 1000, 1004,  985, 1002,  986,  989,
-      997,  983,  438,  991,  979,  997,  983,  978,    0,  979,
-
-      989,  972,  983,  976,  981,  969,  968,    0,  495,  487,
-      481, 1004,  488,  490,  492,  493,  495,  496,  512, 1288,
-      998, 1012, 1003,    0, 1012, 1003,  990,    0, 1008,    0,
-     1008,    0,  989,  987,  986, 1000,    0,  999,  973,  997,
-      989,    0,  977,  998,  980,  977,    0,  980,  490,  992,
-        0,  993,  978,  977,  990,  986,  983,    0,  970,  972,
-      983,  969,  983,    0,  974,  476, 1288,  938,  933,  932,
-      944,  941,  942,  927,  941,  940,  928,  937,  936,    0,
-      935,  934,  919,  925,  931,  926,  922,  912,  927,    0,
-        0,    0,  915,  929,  924,  923,  915,  464,  921,  916,
-
-      920,  914,  917,  902,    0,  955,  913,  892,  908,  900,
-      896,  907,  908,    0,  907,  891,    0,  905,  908,  894,
-      897,    0,  465,  887,  885,  879,  885,  893,  886,  899,
-      884,    0,  890,  885,  893,    0,  883,  889,  892,  872,
-      890,  458,  889,    0,  877,  866,  867,  871,  880,  864,
-      878,  882,  878,  860,  865,  857,  873,  868,  857,  860,
-      872,  856,    0,  853,  858,  860,  467,  859,    0, 1288,
-      912,  507,  895,  516,  517,  521,  519, 1288,  910,    0,
-      886,    0,  884,  888,  879,  872,  867,    0,  887,  878,
-      866,    0,  872,  866,    0,  882,  875,  880,  875,    0,
-
-      870,  877,  857,  864,  862,  860,  870,  857,  859,    0,
-      855,  861,  853,  858,  860,    0,    0,  830,  818,  828,
-        0,  827,  826,    0,  817,  815,  824,  815,  808,    0,
-      820,  820,  816,  817,  802,  816,  800,  796,  485,    0,
-      812,  812,  810,  796,  799,  806,  806,  785,  804,  478,
-      796,  792,  794,  790,  795,  782,  798,  794,  795,  795,
-      778,  778,  791,  777,  789,    0,  788,  776,  790,  783,
-      771,  772,  786,    0,  781,  765,  759,  777,  766,  772,
-      768,  770,  765,  759,  775,  770,    0,  759,    0,  752,
-      752,  751,  750,  750,  763,  763,  491,    0,  761,  760,
-
-      755,  758,  743,  749,  746,  750,    0,  755,  771,  524,
-      526,  532,    0,  772,  770,  764,  774,  773,  772,  765,
-      761,  777,    0,  765,  771,  763,  756,  766,  750,    0,
-        0,  720,    0,   88,  261,  336,  519,    0,  515,  523,
-      514,  509,    0,    0,  507,  508,    0,    0,    0,  501,
-        0,    0,    0,  500,  502,  511,    0,  512,  513,    0,
-      501,    0,    0,  517,    0,  514,  513,  509,  523,  521,
-      521,  518,  513,  515,  525,  516,  530,  521,    0,  525,
-      531,    0,  515,  517,  535,  530,  518,  523,  537,  531,
-      530,    0,    0,  533,  530,    0,  521,  527,  533,  530,
-
-        0,  537,  555,  546,  536,  551,  538,  544,    0,  540,
-      550,  551,    0,    0,  552,  556,    0,  559,  550,  561,
-      561,  562,  563,  549,  569,    0,  604,  605,  606,  599,
-      587,    0,  602,  593,  594,  596,  586,  596,  602,    0,
-      605,    0,  608,  597,  614,  588,  601,    0,    0,  600,
-        0,    0,  579,    0,    0,  587,  588,  589,  591,    0,
-        0,  581,  577,    0,  586,  579,  582,    0,  596,  596,
-      589,  585,    0,  594,  595,  607,  594,    0,  592,  606,
-      592,  609,  609,    0,    0,    0,    0,  606,  601,  612,
-      606,  614,  595,  616, 1288,  617,    0,    0,  619,    0,
-
-      623,  610,  619,  615,  603,    0,    0,    0,  625,  626,
-      627,  627,  621,  667,  647,    0,  659,  660,    0,    0,
-        0,    0,    0,  642,  668,  647,  656,  652,    0,  643,
-        0,  640,  641,  632,    0,  632,    0,  636,    0,  645,
-      630,  643,  634,  652,  635,  650,  638,  643,  653,  641,
-        0,    0,  648,  654,  644,  659,    0,  660,    0,    0,
-      661,    0,  650,  653,  660,  657,    0,    0,    0,    0,
-      666,    0,    0,  696,    0,  697,  701,  703,  687,  701,
-      689,    0,    0,  658,  673,    0,    0,    0,  660,    0,
-      669,    0,    0,    0,    0,    0,    0,    0,  668,  663,
-
-        0,    0,    0,  665,    0,  665,    0,    0,    0,    0,
-      704,  705,  700,  701,  715,    0,    0,    0,    0,  686,
-        0,    0,  687,  718,  712,  716,  708,  720,  694,  695,
-        0,    0,  726,  730,  723,    0,    0,  718,  725,  720,
-      718,  723,  724,  720,    0,    0,    0, 1288,  757,  759,
-      765,  768,  774,  779,  784
+        0,   73,  102,   77, 1235, 1236,   75, 1236, 1231, 1216,
+     1225,    0, 1185, 1215, 1214,   78,   66, 1211, 1210, 1196,
+     1189,   57,   63,   59,   64,  101,    0,   63,   79,  119,
+       94, 1204, 1190,  122,  123,  121, 1203,  104,  105,  100,
+      124,   90,  129,  137, 1155,   84,  117, 1157,  139,  150,
+      151,  151,  156, 1150,  163,  168,  166,   56, 1165, 1164,
+      232, 1213,  216, 1236, 1212,  242,  248,  251,  264,  196,
+      155,  167,  208,  228,  241, 1199,  249,  242,  195,  277,
+      284,  223,  319,  334,  257, 1236, 1236, 1206, 1236,    0,
+     1201, 1200, 1195,    0, 1194, 1236,  298, 1193, 1236, 1236,
+
+     1236, 1236, 1169,  263, 1169,  264, 1181, 1171, 1184, 1165,
+     1176, 1173, 1180,  270, 1166, 1164, 1166, 1176,    0, 1167,
+     1171, 1152, 1158, 1146, 1152, 1156, 1155, 1155,  280, 1157,
+      292, 1152,  301, 1150, 1143, 1149, 1161, 1159, 1151,  259,
+        0, 1158, 1146,  203,  304,  272, 1102, 1124, 1113, 1119,
+     1122,  288, 1102, 1106, 1102, 1105, 1104, 1116, 1098, 1100,
+      308, 1096, 1090, 1087, 1092, 1091, 1097, 1101, 1092, 1094,
+     1092, 1092,  234,  281,  296,  299, 1098, 1080, 1083, 1091,
+     1076,   81,  315, 1095,  324,   26, 1083, 1082, 1082, 1073,
+      330, 1083, 1087, 1073, 1089, 1084, 1087,  281,  333, 1080,
+
+     1082, 1078, 1070,  342,  323,  321, 1062, 1061, 1063, 1064,
+      345,  350,    0, 1061,  332,  407, 1123, 1122, 1236,  363,
+     1236, 1236, 1121,  411,  415,  416, 1108,    0,  412,  390,
+      396,  404,  415, 1107,  337,  410,  420,  417,  423,  424,
+        0,    0, 1236, 1118,    0, 1236, 1109, 1108, 1103, 1098,
+     1084, 1096, 1091, 1075, 1076, 1092, 1074, 1068, 1085, 1071,
+     1068, 1080,    0, 1072, 1082, 1071, 1079, 1060, 1061, 1076,
+     1074, 1062, 1072, 1057, 1070, 1055, 1068, 1071, 1041, 1065,
+     1057, 1048, 1063, 1057, 1053, 1051, 1057, 1051, 1052, 1042,
+     1039, 1053, 1039, 1040, 1043,  326, 1017,    0, 1022,    0,
+
+     1007, 1016, 1006, 1008,  999, 1003, 1001,  995, 1003,  380,
+     1010,  992,  996, 1007,  990,  996,  991, 1000,  987,  985,
+      989,    0,  982,  981,  991,  981,  994,  978,  995,  380,
+      990,  979,  389,  992,  969,  985,  986,  980,  968,    0,
+      983,  977,  980,  970,    0,  963,  964,  972,  975,    0,
+      968,  973,  962,  974,  964,  969,  968,  376,  967,  951,
+      958,  954,  955,  394,  947,  961,  960,  950,  962,  959,
+      948,  946,  950,  954,  390,  936,  947,  947,  951,  932,
+      949,  933,  936,  944,  930,  394,  938,  926,  944,  930,
+      925,    0,  926,  936,  919,  930,  923,  928,  916,  915,
+
+        0,  452,  446,  445,  951,  438,  447,  451,  452, 1236,
+      945,  959,  950,    0,  959,  950,  937,    0,  955,    0,
+      955,    0,  936,  934,  933,  947,    0,  946,  920,  944,
+      936,    0,  924,  945,  927,  924,    0,  927,  447,  939,
+        0,  940,  925,  924,  937,  933,  930,    0,  917,  919,
+      930,  916,  930,    0,  921,  465, 1236,  885,  880,  879,
+      891,  888,  889,  874,  888,  887,  875,  884,  883,    0,
+      882,  881,  866,  872,  878,  873,  869,  859,  866,  873,
+        0,    0,    0,  861,  875,  870,  869,  861,  418,  867,
+      862,  866,  860,  863,  848,    0,  901,  859,  838,  854,
+
+      846,  842,  853,  854,    0,  853,  837,    0,  851,  854,
+      840,  843,    0,  417,  833,  831,  825,  831,  839,  832,
+      845,  830,    0,  836,  831,  839,    0,  829,  835,  838,
+      818,  836,  413,  835,    0,  823,  812,  813,  817,  826,
+      810,  824,  828,  824,  806,  811,  803,  819,  814,  803,
+      806,  818,  802,    0,  799,  804,  806,  417,  805,    0,
+     1236,  858,  460,  841,  464,  465,  468,    0,  833,    0,
+      831,  835,  826,  819,  814,    0,  834,  825,  813,    0,
+      819,  813,    0,  829,  822,  827,  822,    0,  817,  824,
+      804,  811,  809,  807,  817,  804,  806,    0,  802,  808,
+
+      800,  805,  807,    0,    0,  777,  765,  775,    0,  774,
+      773,    0,  764,  762,  771,  762,  755,    0,  767,  767,
+      763,  764,  749,  766,  762,  746,  742,  435,    0,  758,
+      758,  756,  742,  745,  752,  752,  731,  750,  428,  742,
+      738,  740,  736,  741,  728,  744,  740,  741,  741,  724,
+      724,  737,  723,  735,    0,  734,  722,  736,  729,  717,
+      718,  732,    0,  727,  711,  705,  723,  712,  718,  714,
+      716,  711,  705,  721,  716,    0,  705,    0,  698,  698,
+      697,  696,  696,  709,  709,  436,    0,  707,  706,  701,
+      704,  689,  695,  692,  696,    0,  701,  717,  476,  477,
+
+        0,  718,  716,  710,  720,  719,  718,  711,  707,  723,
+        0,  711,  717,  709,  699,  691,   74,    0,    0,  110,
+        0,  207,  230,  474,  467,    0,  467,  472,  462,  457,
+        0,    0,  455,  456,    0,    0,    0,  449,    0,    0,
+        0,  448,  450,  460,  440,    0,  462,  463,    0,  451,
+        0,    0,  467,    0,  464,  463,  459,  473,  471,  471,
+      468,  463,  465,  475,  466,  480,  471,    0,  475,  481,
+        0,  465,  467,  485,  480,  468,  473,  487,  481,  480,
+        0,    0,  483,  480,    0,  471,  477,  483,  480,    0,
+      487,  505,  496,  486,  501,  488,  494,    0,  490,  500,
+
+      501,    0,    0,  502,  506,    0,  509,  500,  511,  511,
+      512,  513,  499,  519,    0,  554,  555,  548,  536,    0,
+      551,  542,  543,  544,  534,  544,  550,    0,  553,    0,
+      556,  545,  562,  536,  549,    0,    0,  548,    0,    0,
+      527,    0,    0,  535,  536,  537,  539,  539,    0,    0,
+      530,  526,    0,  535,  528,  531,    0,  545,  545,  538,
+      534,    0,  543,  544,  556,  543,    0,  541,  555,  541,
+      558,  558,    0,    0,    0,    0,  555,  550,  561,  555,
+      563,  544,  565, 1236,  566,    0,    0,  568,    0,  572,
+      559,  568,  564,  552,    0,    0,    0,  574,  575,  576,
+
+      576,  570,  595,    0,  607,  608,    0,    0,    0,    0,
+        0,  590,  616,  595,  604,  600,    0,  591,    0,  588,
+      589,  580,    0,    0,  580,    0,  584,    0,  593,  578,
+      591,  582,  600,  583,  598,  586,  591,  601,  589,    0,
+        0,  596,  602,  592,  607,    0,  608,    0,    0,  609,
+        0,  598,  601,  608,  605,    0,    0,    0,    0,  614,
+        0,    0,  644,    0,  645,  649,  651,  635,  649,  637,
+        0,    0,  606,  621,    0,    0,    0,  608,    0,  617,
+        0,    0,    0,    0,    0,    0,    0,  616,  611,    0,
+        0,    0,  613,    0,  613,    0,    0,    0,    0,  652,
+
+      653,  648,  649,  663,    0,    0,    0,    0,  634,    0,
+        0,  635,  666,  660,  664,  656,  668,  642,  643,    0,
+        0,  674,  678,  671,    0,    0,  666,  673,  668,  666,
+      671,  672,  668,    0,    0,    0, 1236,  705,  707,  713,
+      716,  722,  727,  732
     } ;
 
-static yyconst flex_int16_t yy_def[1056] =
+static yyconst flex_int16_t yy_def[1045] =
     {   0,
-     1048,    1,    1,    3, 1048, 1048, 1048, 1048, 1048, 1048,
-     1049, 1050, 1051, 1048, 1052, 1052, 1048, 1048, 1048, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1048, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1048, 1053, 1052, 1048, 1048, 1054, 1054, 1054, 1052,   69,
-       69,   69,   69, 1052,   69,   69,   69,   69,   69,   69,
-       69,   69,   69,   69, 1054, 1053,   69, 1048, 1048, 1048,
-     1049, 1048, 1050, 1048, 1055, 1048, 1052, 1052, 1048, 1052,
-
-     1052, 1048, 1048, 1048, 1048, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1048, 1048, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1048, 1053,
-     1053, 1048, 1052, 1048, 1048, 1048, 1054, 1054, 1054,   69,
-       69,   69,   69,   69, 1052,   69,   69,   69,   69,   69,
-       69,   69,   69,   69,   69,   69,   69, 1054,   86, 1048,
-     1053,   86,   69, 1048, 1048, 1048, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-
-     1052, 1052, 1052, 1048, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,   69,
-       69, 1052,   69,   69,   69,   69,   69,   69,   69, 1048,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1048, 1048, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1048,
-     1048,   69, 1052,   69,   69,   69,   69, 1048, 1048, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,   69,
-       69,   69, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052,   69,   69,   69, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1048, 1052, 1052, 1052, 1052, 1052,
-
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052,   69, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
-     1052, 1052, 1052, 1052, 1052, 1052, 1052,    0, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048
+     1037,    1,    1,    3, 1037, 1037, 1037, 1037, 1037, 1037,
+     1038, 1039, 1040, 1037, 1041, 1041, 1037, 1037, 1037, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1037, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1037, 1042, 1041, 1037, 1037, 1043, 1043, 1043, 1041,   69,
+       69,   69,   69, 1041,   69,   69,   69,   69,   69,   69,
+       69,   69, 1043, 1042, 1037, 1037, 1037, 1038, 1037, 1039,
+     1037, 1044, 1037, 1041, 1041, 1037, 1041, 1041, 1037, 1037,
+
+     1037, 1037, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1037, 1037, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1037, 1042, 1042, 1037, 1041,
+     1037, 1037, 1037,   83,   83,   83,   69,   69,   69,   69,
+       69, 1041,   69,   69,   69,   69,   69,   69,   69,   69,
+       83,   84, 1037, 1042,   84, 1037, 1037, 1037, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1037, 1041, 1041, 1041, 1041,
+
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+
+     1041, 1041,   69,   69, 1041,   69,   69,   69,   69, 1037,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1037, 1037, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1037, 1037,   69, 1041,   69,   69,   69, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,   69,   69,
+
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041,   69,   69, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1037, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+     1041, 1041, 1041, 1041, 1041, 1041,    0, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037
     } ;
 
-static yyconst flex_int16_t yy_nxt[1363] =
+static yyconst flex_int16_t yy_nxt[1311] =
     {   0,
         6,    7,    8,    9,    7,   10,   11,    6,   12,    6,
        13,   14,   15,    6,   16,   17,   18,   19,   20,   21,
@@ -790,152 +787,146 @@ static yyconst flex_int16_t yy_nxt[1363] =
        37,   27,   27,   27,   38,    6,    6,   27,   39,   40,
        41,   42,   43,   44,   45,   46,   47,   48,   27,   49,
        50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
-       60,   27,   27,   27,   61,  108,   88,   61,   61,   88,
-       62,   85,  102,  103,   86,  110,  122,   99,  113,  109,
-      114,  362,  100,  116,  123,  111,  117,  124,  112,  363,
-
-      115,  125,  118,   63,   64,   65,   66,   87,  147,   67,
-      846,  126,  131,   68,   69,   67,   70,  215,  148,  216,
-       71,   72,   73,  119,   74,   75,  132,   76,   77,  101,
-       76,   78,   79,  120,  230,   80,  121,  127,   81,   82,
-       76,  128,   83,  178,   76,  129,  135,   67,  143,  195,
-      136,  130,  138,  139,  230,  107,  166,  179,  144,  167,
-      137,  145,  168,  196,  140,  141,   99,  142,  149,   84,
-      150,  232,  134,   76,  151,  152,  230,  155,  153,  154,
-      156,  159,  180,  157,  230,  160,  158,  169,  161,  162,
-      230,  233,  163,  181,  247,  164,  417,  182,  170,  173,
-
-      171,  165,  192,  174,  172,  184,  193,  175,  101,  185,
-      176,  188,  189,  186,  197,  230,  194,  304,  198,  187,
-      190,  201,  148,  206,  238,  202,  191,  207,  212,  203,
-      208,  199,  123,   88,  204,  205,   88,  209,  213,  210,
-      219,  214,  211,  219,  223,  113,  220,  235,  128, 1048,
-      225,  226,  129,   88,  225,  226,  227,  115,  130, 1048,
-      225,  226,  230,  230,  259,  262,  234,  239,  260,  263,
-      353,  125,  229,  225,  226,  228,  286,  287,  228,  230,
-      109,  126,  228,  230,  228,  231,  354,   99,  230,  230,
-      230,  230,  100,  847,  230,  271,  230,  230,  272,  230,
-
-      230,  230,  289,  236,  230,  290,  117,  230,  230,  230,
-      230,  230,  237,  230,  240,  230,  228,  212,  128,  230,
-      230,  392,  241,  143,  393,  292,  278,  213,  130,  101,
-      214,  242,  243,  144,  293,  300,  145,  412,  230,  343,
-      268,  301,  230,  244,  245,  344,  246,  219,  225,  226,
-      248,  147,  338,  249,  250,  251,  252,  305,  848,  252,
-      306,  148,  339,  252,  252,  252,  252,  359,  307,  313,
-      252,  252,  252,  314,  360,  252,  361,  252,  252,  315,
-      252,  252,  252,  230,  394,  252,  324,  253,  252,  252,
-      252,  128,  252,  395,  252,  241,  340,  252,  325,  326,
-
-      341,  130,  345,  346,  347,  355,  356,  380,  368,  382,
-      342,  369,  357,  383,  400,  407,  408,  381,  230,  252,
-      370,  371,  389,  252,  390,  372,  402,  373,  384,  403,
-      409,  391,   99,  404,  401,  405,  219,  232,  230,  219,
-      281,  410,  220,   88,  225,  226,  227, 1048,  225,  226,
-     1048,  225,  226,  230,  230,  230,  230,  413,  230,  230,
-      411,  230,  230,  229,  230,  415,  466,  416,  525,  526,
-      230,  273,  479,  283,  101,  498,  296,  480,  502,  418,
-      466,  543,  414,  499,  281,  219,  225,  226,  248,  419,
-      531,  249,  532,  544,  555,  230,  503,  570,  571,  281,
-
-      556,  230,  230,  424,  230,  572,  230,  230,  467,  230,
-      230,  601,  433,  574,  578,  579,  642,  682,  575,  664,
-      683,  230,  467,  602,  665,  577,  230,  706,  460,  643,
-      230,  230,  576,  230,  707,  230,  760,  771,  230,  710,
-      230,  711,  580,  772,  815,  712,  230,  816,  761,  849,
-      850,  828,  610,  827,  851,  829,  852,  853,  854,  855,
-      856,  857,  858,  859,  860,  861,  862,  863,  864,  865,
-      866,  867,  868,  869,  870,  871,  872,  873,  874,  875,
-      876,  877,  878,  879,  880,  881,  882,  883,  884,  885,
-      886,  887,  888,  889,  890,  891,  892,  893,  894,  895,
-
-      896,  897,  898,  899,  900,  901,  902,  903,  904,  905,
-      906,  907,  908,  909,  910,  911,  912,  913,  230,  230,
-      230,  915,  916,  917,  918,  919,  848,  920,  921,  922,
-      923,  924,  925,  926,  927,  928,  929,  930,  931,  932,
-      933,  934,  935,  936,  937,  938,  939,  940,  914,  941,
+       60,   27,   27,   27,   61,  105,   85,   61,   61,   85,
+       62,   83,   99,  100,   84,  107,  119,   96,  110,  106,
+      111,  355,   97,  113,  120,  108,  114,  121,  109,  356,
+
+      112,  122,  115,   63,   64,   65,   66,   63,  144,   67,
+      832,  123,  128,   68,   69,   67,   70,  212,  145,  213,
+       71,   72,   73,  116,   74,   75,  129,   76,   77,   98,
+       76,   78,  175,  117,  346,   79,  118,  124,   80,   81,
+      132,  125,   82,  140,  133,  126,  176,   67,  135,  136,
+      347,  127,  163,  141,  134,  164,  142,  833,  165,  152,
+      137,  138,  153,  139,  146,  154,  147,  177,  155,  227,
+      148,  149,  156,   76,  150,  151,  157,  166,  178,  158,
+      159,  227,  179,  160,  230,  170,  161,  181,  167,  171,
+      168,  182,  162,  172,  169,  183,  173,  185,  186,  189,
+
+      192,  184,  104,  190,  194,   96,  187,  144,  195,  227,
+      229,  198,  188,  191,  193,  199,  203,  145,  209,  200,
+      204,  196,  227,  205,  201,  202,  231,  131,  210,  834,
+      206,  211,  207,  216,  220,  208,  216,  227,  125,  217,
+      106,  240,  126,   85,  222,  223,  224,   98,  127, 1037,
+      222,  223, 1037,  222,  223,  227,  227,  110,   85,  232,
+      235,   85,  835,  227,  122,  226,  222,  223,  225,  112,
+      233,  225,  234,  114,  123,  225,  227,  225,  228,  115,
+      120,  251,  227,  227,  227,  252,  331,  227,  292,  227,
+      227,  227,  227,  227,  293,  254,  332,  227,  227,  255,
+
+      227,  227,  236,  237,  227,  263,  140,   96,  264,  225,
+      278,  279,   97,  296,  238,  138,  141,  239,  145,  142,
+      216,  222,  223,  241,  281,  284,  242,  282,  297,  333,
+      456,  298,  373,  334,  285,  227,  243,  244,  245,  299,
+      305,  245,  374,  335,  306,  245,  245,  245,  245,   98,
+      307,  227,  245,  245,  245,  336,  316,  245,  270,  245,
+      245,  337,  245,  245,  338,  339,  340,  245,  317,  318,
+      245,  245,  457,  319,  245,  348,  349,  352,  361,  245,
+      387,  362,  350,  375,  353,  385,  354,  376,  386,  388,
+      363,  364,  382,  393,  383,  365,  402,  366,  400,  401,
+
+      395,  384,  377,  396,  227,  245,  273,  397,  216,  398,
+      227,  216,   85,  394,  217,  224, 1037, 1037,  225,  225,
+      225,   96,  225,  225,  227,  405,  229,  403,  260,  227,
+      226,  227,  404,  406,  227,  407,  469,  227,  227,  489,
+      493,  470,  516,  517,  522,  534,  523,  490,  287,  408,
+      546,  288,  227,  409,  561,  562,  547,  535,  494,  227,
+      227,  227,  423,   98,  563,  227,  227,  414,  589,  456,
+      631,  653,  671,  565,  227,  672,  654,  695,  227,  227,
+      590,  567,  227,  632,  696,  699,  749,  760,  566,  804,
+      227,  227,  805,  761,  700,  568,  836,  837,  750,  598,
+
+      817,  816,  838,  839,  840,  841,  842,  843,  844,  845,
+      846,  457,  847,  848,  849,  850,  851,  852,  853,  854,
+      855,  856,  857,  858,  859,  860,  861,  862,  863,  864,
+      865,  866,  867,  868,  869,  870,  871,  872,  873,  874,
+      875,  876,  877,  878,  879,  880,  881,  882,  883,  884,
+      885,  886,  887,  888,  889,  890,  891,  892,  893,  894,
+      895,  896,  897,  898,  899,  900,  901,  902,  227,  227,
+      903,  904,  905,  906,  907,  908,  909,  910,  911,  912,
+      913,  914,  915,  916,  917,  918,  919,  920,  921,  922,
+      923,  924,  925,  926,  927,  928,  929,  840,  930,  931,
+
+      932,  933,  934,  935,  936,  937,  938,  939,  940,  941,
       942,  943,  944,  945,  946,  947,  948,  949,  950,  951,
       952,  953,  954,  955,  956,  957,  958,  959,  960,  961,
       962,  963,  964,  965,  966,  967,  968,  969,  970,  971,
-      972,  230,  973,  974,  975,  976,  977,  978,  979,  980,
-      981,  982,  983,  984,  985,  986,  987,  988,  989,  990,
-
-      991,  992,  993,  994,  995,  996,  997,  998,  999, 1000,
-     1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
-     1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
-     1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
-     1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040,
-     1041, 1042, 1043, 1044, 1045, 1046, 1047,   91,   91,   91,
-       91,   91,   91,   93,   93,   94,   94,  845,   94,   94,
-       94,   97,   97,   97,  221,  221,  221,  221,  221,  221,
-      228,  228,  228,  228,  255,  255,  844,  255,  255,  255,
-      843,  842,  841,  840,  839,  838,  837,  836,  835,  834,
-
-      833,  832,  831,  830,  826,  825,  824,  823,  822,  821,
-      820,  819,  818,  817,  814,  813,  812,  811,  810,  809,
-      808,  807,  806,  805,  804,  803,  802,  801,  800,  799,
-      798,  797,  796,  795,  794,  793,  792,  791,  790,  789,
-      788,  787,  786,  785,  784,  783,  782,  781,  780,  779,
-      778,  777,  776,  775,  774,  773,  770,  769,  768,  767,
-      766,  765,  764,  763,  762,  759,  758,  757,  756,  755,
-      754,  753,  752,  751,  750,  749,  748,  747,  746,  745,
-      744,  743,  742,  741,  740,  739,  738,  737,  736,  735,
-      734,  733,  732,  731,  730,  729,  728,  727,  726,  725,
-
-      724,  723,  722,  721,  720,  719,  718,  717,  716,  715,
-      714,  713,  578,  709,  570,  708,  705,  704,  703,  702,
-      701,  700,  699,  698,  697,  696,  695,  694,  693,  692,
-      691,  690,  689,  688,  687,  686,  685,  684,  681,  680,
-      679,  678,  677,  676,  675,  674,  673,  672,  671,  670,
-      669,  668,  667,  666,  663,  662,  661,  660,  659,  658,
-      657,  656,  655,  654,  653,  652,  651,  650,  649,  648,
-      647,  646,  645,  644,  641,  640,  639,  638,  637,  636,
-      635,  634,  633,  632,  631,  630,  629,  628,  627,  626,
-      625,  624,  623,  622,  621,  620,  619,  618,  617,  616,
-
-      615,  614,  613,  612,  611,  610,  609,  608,  607,  606,
-      605,  604,  603,  600,  599,  598,  597,  596,  595,  594,
-      593,  592,  591,  590,  589,  588,  587,  586,  585,  584,
-      583,  582,  581,  580,  573,  569,  568,  567,  566,  565,
-      564,  563,  562,  561,  560,  559,  558,  557,  554,  553,
-      552,  551,  550,  549,  548,  547,  546,  545,  542,  541,
-      540,  539,  538,  537,  536,  535,  534,  533,  530,  529,
-      528,  527,  447,  524,  523,  522,  521,  520,  519,  518,
-      517,  516,  515,  514,  513,  512,  511,  510,  509,  508,
-      507,  506,  505,  504,  501,  500,  497,  496,  495,  494,
-
-      493,  492,  491,  490,  489,  488,  487,  486,  485,  484,
-      483,  482,  481,  478,  477,  476,  475,  474,  473,  472,
-      471,  470,  469,  468,  465,  464,  463,  462,  461,  460,
-      459,  458,  457,  456,  455,  454,  453,  452,  451,  450,
-      449,  448,  447,  446,  445,  444,  443,  442,  441,  440,
-      439,  438,  437,  436,  435,  434,  433,  432,  431,  430,
-      429,  428,  427,  426,  425,  424,  423,  422,  421,  257,
-      420,  420,  250,  230,  230,  225,  222,  222,  406,  399,
-      398,  397,  396,  388,  387,  386,  385,  379,  378,  377,
-      376,  375,  374,  367,  366,  365,  364,  358,  352,  351,
-
-      350,  349,  348,  337,  336,  335,  334,  333,  332,  331,
-      330,  329,  328,  327,  323,  322,  321,  320,  319,  318,
-      317,  316,  312,  311,  310,  309,  308,  303,  302,  299,
-      298,  297,  296,  295,  294,  291,  288,  285,  284,  283,
-      282,  281,  280,  279,  278,  277,  276,  275,  274,  273,
-      270,  269,  268,  267,  266,  265,  264,  261,  258,  257,
-       98,   96,  256,  254,   92,  230,  224,  222,  218,  217,
-      200,  183,  177,  146,  134,  133,  107,  106,  105,  104,
-       98,   96,   95,   92,   90,   89, 1048,    5, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048
+      972,  973,  974,  975,  976,  977,  978,  979,  980,  981,
+      982,  983,  984,  985,  986,  987,  988,  989,  990,  991,
+      992,  993,  994,  995,  996,  997,  998,  999, 1000, 1001,
+     1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
+     1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
+     1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031,
+
+     1032, 1033, 1034, 1035, 1036,   88,   88,   88,   88,   88,
+       88,   90,   90,   91,   91,  831,   91,   91,   91,   94,
+       94,   94,  218,  218,  218,  218,  218,  218,  225,  225,
+      225,  225,  247,  247,  830,  247,  247,  247,  829,  828,
+      827,  826,  825,  824,  823,  822,  821,  820,  819,  818,
+      815,  814,  813,  812,  811,  810,  809,  808,  807,  806,
+      803,  802,  801,  800,  799,  798,  797,  796,  795,  794,
+      793,  792,  791,  790,  789,  788,  787,  786,  785,  784,
+      783,  782,  781,  780,  779,  778,  777,  776,  775,  774,
+      773,  772,  771,  770,  769,  768,  767,  766,  765,  764,
+
+      763,  762,  759,  758,  757,  756,  755,  754,  753,  752,
+      751,  748,  747,  746,  745,  744,  743,  742,  741,  740,
+      739,  738,  737,  736,  735,  734,  733,  732,  731,  730,
+      729,  728,  727,  726,  725,  724,  723,  722,  721,  720,
+      719,  718,  717,  716,  715,  714,  713,  712,  711,  710,
+      709,  708,  707,  706,  705,  704,  703,  702,  701,  698,
+      561,  697,  694,  693,  692,  691,  690,  689,  688,  687,
+      686,  685,  684,  683,  682,  681,  680,  679,  678,  677,
+      676,  675,  674,  673,  670,  669,  668,  667,  666,  665,
+      664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
+
+      652,  651,  650,  649,  648,  647,  646,  645,  644,  643,
+      642,  641,  640,  639,  638,  637,  636,  635,  634,  633,
+      630,  629,  628,  627,  626,  625,  624,  623,  622,  621,
+      620,  619,  618,  617,  616,  615,  614,  613,  612,  611,
+      610,  609,  608,  607,  606,  605,  604,  603,  602,  601,
+      600,  599,  598,  597,  596,  595,  594,  593,  592,  591,
+      588,  587,  586,  585,  584,  583,  582,  581,  580,  579,
+      578,  577,  576,  575,  574,  573,  572,  571,  570,  569,
+      568,  564,  560,  559,  558,  557,  556,  555,  554,  553,
+      552,  551,  550,  549,  548,  545,  544,  543,  542,  541,
+
+      540,  539,  538,  537,  536,  533,  532,  531,  530,  529,
+      528,  527,  526,  525,  524,  521,  520,  519,  518,  437,
+      515,  514,  513,  512,  511,  510,  509,  508,  507,  506,
+      505,  504,  503,  502,  501,  500,  499,  498,  497,  496,
+      495,  492,  491,  488,  487,  486,  485,  484,  483,  482,
+      481,  480,  479,  478,  477,  476,  475,  474,  473,  472,
+      471,  468,  467,  466,  465,  464,  463,  462,  461,  460,
+      459,  458,  455,  454,  453,  452,  451,  450,  449,  448,
+      447,  446,  445,  444,  443,  442,  441,  440,  439,  438,
+      437,  436,  435,  434,  433,  432,  431,  430,  429,  428,
+
+      427,  426,  425,  424,  423,  422,  421,  420,  419,  418,
+      417,  416,  415,  414,  413,  412,  411,  249,  410,  410,
+      243,  227,  227,  222,  219,  219,  399,  392,  391,  390,
+      389,  381,  380,  379,  378,  372,  371,  370,  369,  368,
+      367,  360,  359,  358,  357,  351,  345,  344,  343,  342,
+      341,  330,  329,  328,  327,  326,  325,  324,  323,  322,
+      321,  320,  315,  314,  313,  312,  311,  310,  309,  308,
+      304,  303,  302,  301,  300,  295,  294,  291,  290,  289,
+      288,  287,  286,  283,  280,  277,  276,  275,  274,  273,
+      272,  271,  270,  269,  268,  267,  266,  265,  262,  261,
+
+      260,  259,  258,  257,  256,  253,  250,  249,   95,   93,
+      248,  246,   89,  227,  221,  219,  215,  214,  197,  180,
+      174,  143,  131,  130,  104,  103,  102,  101,   95,   93,
+       92,   89,   87,   86, 1037,    5, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037
     } ;
 
-static yyconst flex_int16_t yy_chk[1363] =
+static yyconst flex_int16_t yy_chk[1311] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -946,147 +937,141 @@ static yyconst flex_int16_t yy_chk[1363] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    2,   22,    7,    2,    4,    7,
         2,    4,   17,   17,    4,   23,   28,   16,   24,   22,
-       24,  189,   16,   25,   28,   23,   25,   29,   23,  189,
+       24,  186,   16,   25,   28,   23,   25,   29,   23,  186,
 
        24,   29,   25,    2,    3,    3,    3,    4,   38,    3,
-      734,   29,   31,    3,    3,    3,    3,   58,   38,   58,
+      717,   29,   31,    3,    3,    3,    3,   58,   38,   58,
         3,    3,    3,   26,    3,    3,   31,    3,    3,   16,
-        3,    3,    3,   26,   72,    3,   26,   30,    3,    3,
-        3,   30,    3,   46,    3,   30,   34,    3,   36,   52,
-       34,   30,   35,   35,   80,   72,   42,   46,   36,   42,
-       34,   36,   42,   52,   35,   35,   70,   35,   39,    3,
-       39,   70,   80,    3,   39,   39,   71,   40,   39,   39,
-       40,   41,   47,   40,  246,   41,   40,   43,   41,   41,
-       83,   71,   41,   47,   83,   41,  246,   47,   43,   44,
-
-       43,   41,   51,   44,   43,   49,   51,   44,   70,   49,
-       44,   50,   50,   49,   53,   77,   51,  148,   53,   49,
-       50,   55,  148,   56,   77,   55,   50,   56,   57,   55,
-       56,   53,   77,   88,   55,   55,   88,   56,   57,   56,
-       61,   57,   56,   61,   63,   74,   61,   74,   63,   67,
-       67,   67,   63,   66,   66,   66,   66,   74,   63,   68,
-       68,   68,   73,   78,  107,  109,   73,   78,  107,  109,
-      185,   78,   68,   69,   69,   69,  132,  132,   69,   84,
-       73,   78,   69,   69,   69,   69,  185,  100,   75,   69,
-       69,   69,  100,  735,   69,  117,   69,   69,  117,   69,
-
-       69,   69,  134,   75,   69,  134,   75,   69,   69,   69,
-       79,   69,   75,   69,   79,   82,   69,   84,   79,  239,
-       81,  208,   79,   82,  208,  136,  239,   84,   79,  100,
-       84,   81,   81,   82,  136,  143,   82,  235,   69,  178,
-      235,  143,   69,   81,   81,  178,   81,   85,   85,   85,
-       85,  147,  176,   85,   86,   86,   86,  149,  736,   86,
-      149,  147,  176,   86,   86,   86,   86,  188,  149,  155,
-       86,   86,   86,  155,  188,   86,  188,   86,   86,  155,
-       86,   86,   86,   87,  209,   86,  164,   87,   86,   86,
-       86,   87,   86,  209,   86,   87,  177,   86,  164,  164,
-
-      177,   87,  179,  179,  179,  186,  186,  201,  194,  202,
-      177,  194,  186,  202,  214,  218,  218,  201,  233,   86,
-      194,  194,  207,   86,  207,  194,  215,  194,  202,  215,
-      223,  207,  232,  215,  214,  215,  219,  232,  234,  219,
-      223,  233,  219,  227,  227,  227,  227,  228,  228,  228,
-      229,  229,  229,  236,  237,  240,  241,  236,  242,  243,
-      234,  244,  245,  229,  247,  244,  304,  245,  365,  365,
-      253,  237,  318,  241,  232,  337,  243,  318,  340,  247,
-      466,  382,  242,  337,  240,  248,  248,  248,  248,  253,
-      371,  248,  371,  382,  393,  411,  340,  409,  409,  253,
-
-      393,  410,  413,  411,  414,  410,  415,  416,  304,  417,
-      418,  449,  413,  414,  419,  419,  498,  542,  415,  523,
-      542,  572,  466,  449,  523,  418,  419,  567,  416,  498,
-      574,  575,  417,  577,  567,  576,  639,  650,  710,  574,
-      711,  576,  572,  650,  697,  577,  712,  697,  639,  737,
-      739,  711,  575,  710,  740,  712,  741,  742,  745,  746,
-      750,  754,  755,  756,  758,  759,  761,  764,  766,  767,
-      768,  769,  770,  771,  772,  773,  774,  775,  776,  777,
-      778,  780,  781,  783,  784,  785,  786,  787,  788,  789,
-      790,  791,  794,  795,  797,  798,  799,  800,  802,  803,
-
-      804,  805,  806,  807,  808,  810,  811,  812,  815,  816,
-      818,  819,  820,  821,  822,  823,  824,  825,  827,  828,
-      829,  830,  831,  833,  834,  835,  827,  836,  837,  838,
-      839,  841,  843,  844,  845,  846,  847,  850,  853,  856,
-      857,  858,  859,  862,  863,  865,  866,  867,  829,  869,
-      870,  871,  872,  874,  875,  876,  877,  879,  880,  881,
-      882,  883,  888,  889,  890,  891,  892,  893,  894,  896,
-      899,  901,  902,  903,  904,  905,  909,  910,  911,  912,
-      913,  914,  915,  917,  918,  924,  925,  926,  927,  928,
-      930,  932,  933,  934,  936,  938,  940,  941,  942,  943,
-
-      944,  945,  946,  947,  948,  949,  950,  953,  954,  955,
-      956,  958,  961,  963,  964,  965,  966,  971,  974,  976,
-      977,  978,  979,  980,  981,  984,  985,  989,  991,  999,
-     1000, 1004, 1006, 1011, 1012, 1013, 1014, 1015, 1020, 1023,
-     1024, 1025, 1026, 1027, 1028, 1029, 1030, 1033, 1034, 1035,
-     1038, 1039, 1040, 1041, 1042, 1043, 1044, 1049, 1049, 1049,
-     1049, 1049, 1049, 1050, 1050, 1051, 1051,  732, 1051, 1051,
-     1051, 1052, 1052, 1052, 1053, 1053, 1053, 1053, 1053, 1053,
-     1054, 1054, 1054, 1054, 1055, 1055,  729, 1055, 1055, 1055,
-      728,  727,  726,  725,  724,  722,  721,  720,  719,  718,
-
-      717,  716,  715,  714,  709,  708,  706,  705,  704,  703,
-      702,  701,  700,  699,  696,  695,  694,  693,  692,  691,
-      690,  688,  686,  685,  684,  683,  682,  681,  680,  679,
-      678,  677,  676,  675,  673,  672,  671,  670,  669,  668,
-      667,  665,  664,  663,  662,  661,  660,  659,  658,  657,
-      656,  655,  654,  653,  652,  651,  649,  648,  647,  646,
-      645,  644,  643,  642,  641,  638,  637,  636,  635,  634,
-      633,  632,  631,  629,  628,  627,  626,  625,  623,  622,
-      620,  619,  618,  615,  614,  613,  612,  611,  609,  608,
-      607,  606,  605,  604,  603,  602,  601,  599,  598,  597,
-
-      596,  594,  593,  591,  590,  589,  587,  586,  585,  584,
-      583,  581,  579,  573,  571,  568,  566,  565,  564,  562,
-      561,  560,  559,  558,  557,  556,  555,  554,  553,  552,
-      551,  550,  549,  548,  547,  546,  545,  543,  541,  540,
-      539,  538,  537,  535,  534,  533,  531,  530,  529,  528,
-      527,  526,  525,  524,  521,  520,  519,  518,  516,  515,
-      513,  512,  511,  510,  509,  508,  507,  506,  504,  503,
-      502,  501,  500,  499,  497,  496,  495,  494,  493,  489,
-      488,  487,  486,  485,  484,  483,  482,  481,  479,  478,
-      477,  476,  475,  474,  473,  472,  471,  470,  469,  468,
-
-      465,  463,  462,  461,  460,  459,  457,  456,  455,  454,
-      453,  452,  450,  448,  446,  445,  444,  443,  441,  440,
-      439,  438,  436,  435,  434,  433,  431,  429,  427,  426,
-      425,  423,  422,  421,  412,  407,  406,  405,  404,  403,
-      402,  401,  400,  398,  397,  396,  395,  394,  392,  391,
-      390,  389,  388,  387,  386,  385,  384,  383,  381,  380,
-      379,  378,  377,  376,  375,  374,  373,  372,  370,  369,
-      368,  367,  366,  364,  363,  362,  361,  360,  359,  358,
-      356,  355,  354,  353,  351,  350,  349,  348,  346,  345,
-      344,  343,  342,  341,  339,  338,  336,  335,  334,  333,
-
-      332,  331,  330,  328,  327,  326,  325,  324,  323,  322,
-      321,  320,  319,  317,  316,  315,  314,  313,  312,  311,
-      310,  309,  307,  305,  303,  302,  301,  300,  299,  298,
-      297,  296,  295,  294,  293,  292,  291,  290,  289,  288,
+        3,    3,   46,   26,  182,    3,   26,   30,    3,    3,
+       34,   30,    3,   36,   34,   30,   46,    3,   35,   35,
+      182,   30,   42,   36,   34,   42,   36,  720,   42,   40,
+       35,   35,   40,   35,   39,   40,   39,   47,   40,   71,
+       39,   39,   41,    3,   39,   39,   41,   43,   47,   41,
+       41,   72,   47,   41,   71,   44,   41,   49,   43,   44,
+       43,   49,   41,   44,   43,   49,   44,   50,   50,   51,
+
+       52,   49,   72,   51,   53,   70,   50,  144,   53,   79,
+       70,   55,   50,   51,   52,   55,   56,  144,   57,   55,
+       56,   53,   73,   56,   55,   55,   73,   79,   57,  722,
+       56,   57,   56,   61,   63,   56,   61,   82,   63,   61,
+       73,   82,   63,   66,   66,   66,   66,   70,   63,   67,
+       67,   67,   68,   68,   68,   75,   78,   74,   85,   74,
+       78,   85,  723,   77,   78,   68,   69,   69,   69,   74,
+       75,   69,   77,   75,   78,   69,   69,   69,   69,   75,
+       77,  104,   69,   69,   69,  104,  173,   69,  140,   69,
+       69,   80,   69,   69,  140,  106,  173,   69,   81,  106,
+
+       69,   69,   80,   80,   69,  114,   81,   97,  114,   69,
+      129,  129,   97,  145,   80,   80,   81,   80,  145,   81,
+       83,   83,   83,   83,  131,  133,   83,  131,  146,  174,
+      296,  146,  198,  174,  133,   69,   84,   84,   84,  146,
+      152,   84,  198,  174,  152,   84,   84,   84,   84,   97,
+      152,  235,   84,   84,   84,  175,  161,   84,  235,   84,
+       84,  175,   84,   84,  176,  176,  176,   84,  161,  161,
+       84,   84,  296,  161,   84,  183,  183,  185,  191,   84,
+      206,  191,  183,  199,  185,  205,  185,  199,  205,  206,
+      191,  191,  204,  211,  204,  191,  220,  191,  215,  215,
+
+      212,  204,  199,  212,  230,   84,  220,  212,  216,  212,
+      231,  216,  224,  211,  216,  224,  225,  226,  224,  225,
+      226,  229,  225,  226,  236,  232,  229,  230,  232,  233,
+      226,  238,  231,  233,  237,  238,  310,  239,  240,  330,
+      333,  310,  358,  358,  364,  375,  364,  330,  236,  239,
+      386,  237,  406,  240,  402,  402,  386,  375,  333,  404,
+      403,  407,  406,  229,  403,  408,  409,  404,  439,  456,
+      489,  514,  533,  407,  563,  533,  514,  558,  565,  566,
+      439,  409,  567,  489,  558,  566,  628,  639,  408,  686,
+      699,  700,  686,  639,  567,  563,  724,  725,  628,  565,
+
+      700,  699,  727,  728,  729,  730,  733,  734,  738,  742,
+      743,  456,  744,  745,  747,  748,  750,  753,  755,  756,
+      757,  758,  759,  760,  761,  762,  763,  764,  765,  766,
+      767,  769,  770,  772,  773,  774,  775,  776,  777,  778,
+      779,  780,  783,  784,  786,  787,  788,  789,  791,  792,
+      793,  794,  795,  796,  797,  799,  800,  801,  804,  805,
+      807,  808,  809,  810,  811,  812,  813,  814,  816,  817,
+      818,  819,  821,  822,  823,  824,  825,  826,  827,  829,
+      831,  832,  833,  834,  835,  838,  841,  844,  845,  846,
+      847,  848,  851,  852,  854,  855,  856,  817,  858,  859,
+
+      860,  861,  863,  864,  865,  866,  868,  869,  870,  871,
+      872,  877,  878,  879,  880,  881,  882,  883,  885,  888,
+      890,  891,  892,  893,  894,  898,  899,  900,  901,  902,
+      903,  905,  906,  912,  913,  914,  915,  916,  918,  920,
+      921,  922,  925,  927,  929,  930,  931,  932,  933,  934,
+      935,  936,  937,  938,  939,  942,  943,  944,  945,  947,
+      950,  952,  953,  954,  955,  960,  963,  965,  966,  967,
+      968,  969,  970,  973,  974,  978,  980,  988,  989,  993,
+      995, 1000, 1001, 1002, 1003, 1004, 1009, 1012, 1013, 1014,
+     1015, 1016, 1017, 1018, 1019, 1022, 1023, 1024, 1027, 1028,
+
+     1029, 1030, 1031, 1032, 1033, 1038, 1038, 1038, 1038, 1038,
+     1038, 1039, 1039, 1040, 1040,  716, 1040, 1040, 1040, 1041,
+     1041, 1041, 1042, 1042, 1042, 1042, 1042, 1042, 1043, 1043,
+     1043, 1043, 1044, 1044,  715, 1044, 1044, 1044,  714,  713,
+      712,  710,  709,  708,  707,  706,  705,  704,  703,  702,
+      698,  697,  695,  694,  693,  692,  691,  690,  689,  688,
+      685,  684,  683,  682,  681,  680,  679,  677,  675,  674,
+      673,  672,  671,  670,  669,  668,  667,  666,  665,  664,
+      662,  661,  660,  659,  658,  657,  656,  654,  653,  652,
+      651,  650,  649,  648,  647,  646,  645,  644,  643,  642,
+
+      641,  640,  638,  637,  636,  635,  634,  633,  632,  631,
+      630,  627,  626,  625,  624,  623,  622,  621,  620,  619,
+      617,  616,  615,  614,  613,  611,  610,  608,  607,  606,
+      603,  602,  601,  600,  599,  597,  596,  595,  594,  593,
+      592,  591,  590,  589,  587,  586,  585,  584,  582,  581,
+      579,  578,  577,  575,  574,  573,  572,  571,  569,  564,
+      562,  559,  557,  556,  555,  553,  552,  551,  550,  549,
+      548,  547,  546,  545,  544,  543,  542,  541,  540,  539,
+      538,  537,  536,  534,  532,  531,  530,  529,  528,  526,
+      525,  524,  522,  521,  520,  519,  518,  517,  516,  515,
+
+      512,  511,  510,  509,  507,  506,  504,  503,  502,  501,
+      500,  499,  498,  497,  495,  494,  493,  492,  491,  490,
+      488,  487,  486,  485,  484,  480,  479,  478,  477,  476,
+      475,  474,  473,  472,  471,  469,  468,  467,  466,  465,
+      464,  463,  462,  461,  460,  459,  458,  455,  453,  452,
+      451,  450,  449,  447,  446,  445,  444,  443,  442,  440,
+      438,  436,  435,  434,  433,  431,  430,  429,  428,  426,
+      425,  424,  423,  421,  419,  417,  416,  415,  413,  412,
+      411,  405,  400,  399,  398,  397,  396,  395,  394,  393,
+      391,  390,  389,  388,  387,  385,  384,  383,  382,  381,
+
+      380,  379,  378,  377,  376,  374,  373,  372,  371,  370,
+      369,  368,  367,  366,  365,  363,  362,  361,  360,  359,
+      357,  356,  355,  354,  353,  352,  351,  349,  348,  347,
+      346,  344,  343,  342,  341,  339,  338,  337,  336,  335,
+      334,  332,  331,  329,  328,  327,  326,  325,  324,  323,
+      321,  320,  319,  318,  317,  316,  315,  314,  313,  312,
+      311,  309,  308,  307,  306,  305,  304,  303,  302,  301,
+      299,  297,  295,  294,  293,  292,  291,  290,  289,  288,
       287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
-      277,  276,  275,  274,  273,  272,  270,  269,  268,  267,
-      266,  265,  264,  263,  262,  261,  260,  259,  258,  257,
-      256,  255,  251,  238,  230,  226,  221,  220,  217,  213,
-      212,  211,  210,  206,  205,  204,  203,  200,  199,  198,
-      197,  196,  195,  193,  192,  191,  190,  187,  184,  183,
-
-      182,  181,  180,  175,  174,  173,  172,  171,  170,  169,
-      168,  167,  166,  165,  163,  162,  161,  160,  159,  158,
-      157,  156,  154,  153,  152,  151,  150,  146,  145,  142,
-      141,  140,  139,  138,  137,  135,  133,  131,  130,  129,
-      128,  127,  126,  125,  124,  123,  121,  120,  119,  118,
-      116,  115,  114,  113,  112,  111,  110,  108,  106,  101,
-       98,   96,   95,   94,   91,   76,   65,   62,   60,   59,
-       54,   48,   45,   37,   33,   32,   21,   20,   19,   18,
-       15,   14,   13,   11,   10,    9,    5, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
-     1048, 1048
+      277,  276,  275,  274,  273,  272,  271,  270,  269,  268,
+
+      267,  266,  265,  264,  262,  261,  260,  259,  258,  257,
+      256,  255,  254,  253,  252,  251,  250,  249,  248,  247,
+      244,  234,  227,  223,  218,  217,  214,  210,  209,  208,
+      207,  203,  202,  201,  200,  197,  196,  195,  194,  193,
+      192,  190,  189,  188,  187,  184,  181,  180,  179,  178,
+      177,  172,  171,  170,  169,  168,  167,  166,  165,  164,
+      163,  162,  160,  159,  158,  157,  156,  155,  154,  153,
+      151,  150,  149,  148,  147,  143,  142,  139,  138,  137,
+      136,  135,  134,  132,  130,  128,  127,  126,  125,  124,
+      123,  122,  121,  120,  118,  117,  116,  115,  113,  112,
+
+      111,  110,  109,  108,  107,  105,  103,   98,   95,   93,
+       92,   91,   88,   76,   65,   62,   60,   59,   54,   48,
+       45,   37,   33,   32,   21,   20,   19,   18,   15,   14,
+       13,   11,   10,    9,    5, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+
+     1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1105,7 +1090,7 @@ int yy_flex_debug = 0;
 char *yytext;
 #line 1 "lev_comp.l"
 #line 2 "lev_comp.l"
-/* NetHack 3.5  lev_comp.l     $NHDT-Date$  $NHDT-Branch$:$NHDT-Revision$ */
+/* NetHack 3.5  lev_comp.l     $NHDT-Date: 1428240296 2015/04/05 13:24:56 $  $NHDT-Branch: master $:$NHDT-Revision: 1.13 $ */
 /* NetHack 3.5  lev_comp.l     $Date: 2009/05/06 10:54:31 $  $Revision: 1.9 $ */
 /*     SCCS Id: @(#)lev_lex.c  3.5     2002/03/27      */
 /*     Copyright (c) 1989 by Jean-Christophe Collet */
@@ -1204,7 +1189,7 @@ FILE *orig_yyin = NULL;
 #define ST_RETF(y, x) do { savetoken(yytext); y; return x; } while (0);
 
 
-#line 1207 "lex.yy.c"
+#line 1193 "lex.yy.c"
 
 #define INITIAL 0
 #define MAPC 1
@@ -1422,9 +1407,9 @@ YY_DECL
                }
 
        {
-#line 104 "lev_comp.l"
+#line 105 "lev_comp.l"
 
-#line 1427 "lex.yy.c"
+#line 1413 "lex.yy.c"
 
        while ( 1 )             /* loops until end-of-file is reached */
                {
@@ -1452,13 +1437,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 >= 1049 )
+                               if ( yy_current_state >= 1038 )
                                        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_base[yy_current_state] != 1288 );
+               while ( yy_base[yy_current_state] != 1236 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1484,7 +1469,7 @@ do_action:        /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 105 "lev_comp.l"
+#line 106 "lev_comp.l"
 {
                  savetoken(yytext);
                  BEGIN(INITIAL);
@@ -1498,7 +1483,7 @@ YY_RULE_SETUP
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 114 "lev_comp.l"
+#line 115 "lev_comp.l"
 {
                  int len = yyleng;
                  savetoken(yytext);
@@ -1514,873 +1499,878 @@ YY_RULE_SETUP
 case 3:
 /* rule 3 can match eol */
 YY_RULE_SETUP
-#line 125 "lev_comp.l"
+#line 126 "lev_comp.l"
 { savetoken(yytext); newline(); }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 126 "lev_comp.l"
+#line 127 "lev_comp.l"
 ST_RET(MESSAGE_ID);
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 127 "lev_comp.l"
+#line 128 "lev_comp.l"
 ST_RET(NOMAP_ID);
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 128 "lev_comp.l"
+#line 129 "lev_comp.l"
 ST_RET(MAZE_ID);
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 129 "lev_comp.l"
+#line 130 "lev_comp.l"
 ST_RET(LEVEL_ID);
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 130 "lev_comp.l"
+#line 131 "lev_comp.l"
 ST_RET(LEV_INIT_ID);
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 131 "lev_comp.l"
+#line 132 "lev_comp.l"
 ST_RET(MAZE_GRID_ID);
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 132 "lev_comp.l"
+#line 133 "lev_comp.l"
 ST_RET(SOLID_FILL_ID);
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 133 "lev_comp.l"
+#line 134 "lev_comp.l"
 ST_RET(MINES_ID);
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 134 "lev_comp.l"
+#line 135 "lev_comp.l"
 ST_RET(ROGUELEV_ID);
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 135 "lev_comp.l"
+#line 136 "lev_comp.l"
 ST_RET(FLAGS_ID);
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 136 "lev_comp.l"
+#line 137 "lev_comp.l"
 ST_RET(GEOMETRY_ID);
        YY_BREAK
 case 15:
 /* rule 15 can match eol */
 YY_RULE_SETUP
-#line 137 "lev_comp.l"
+#line 138 "lev_comp.l"
 { savetoken(yytext); BEGIN(MAPC); newline(); }
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 138 "lev_comp.l"
+#line 139 "lev_comp.l"
 ST_RET(object_ID);
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 139 "lev_comp.l"
+#line 140 "lev_comp.l"
 ST_RET(OBJECT_ID);
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 140 "lev_comp.l"
+#line 141 "lev_comp.l"
 ST_RET(COBJECT_ID);
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 141 "lev_comp.l"
+#line 142 "lev_comp.l"
 ST_RET(MONSTER_ID);
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 142 "lev_comp.l"
+#line 143 "lev_comp.l"
 ST_RET(monster_ID);
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 143 "lev_comp.l"
+#line 144 "lev_comp.l"
 ST_RET(TRAP_ID);
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 144 "lev_comp.l"
+#line 145 "lev_comp.l"
 ST_RET(DOOR_ID);
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 145 "lev_comp.l"
+#line 146 "lev_comp.l"
 ST_RET(ROOMDOOR_ID);
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 146 "lev_comp.l"
+#line 147 "lev_comp.l"
 ST_RET(DRAWBRIDGE_ID);
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 147 "lev_comp.l"
+#line 148 "lev_comp.l"
 ST_RET(MAZEWALK_ID);
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 148 "lev_comp.l"
+#line 149 "lev_comp.l"
 ST_RET(WALLIFY_ID);
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 149 "lev_comp.l"
+#line 150 "lev_comp.l"
 ST_RET(REGION_ID);
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 150 "lev_comp.l"
+#line 151 "lev_comp.l"
 ST_RET(ALTAR_ID);
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 151 "lev_comp.l"
+#line 152 "lev_comp.l"
 ST_RET(LADDER_ID);
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 152 "lev_comp.l"
+#line 153 "lev_comp.l"
 ST_RET(STAIR_ID);
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 153 "lev_comp.l"
+#line 154 "lev_comp.l"
 ST_RET(PORTAL_ID);
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 154 "lev_comp.l"
+#line 155 "lev_comp.l"
 ST_RET(TELEPRT_ID);
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 155 "lev_comp.l"
+#line 156 "lev_comp.l"
 ST_RET(BRANCH_ID);
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 156 "lev_comp.l"
+#line 157 "lev_comp.l"
 ST_RET(FOUNTAIN_ID);
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 157 "lev_comp.l"
+#line 158 "lev_comp.l"
 ST_RET(SINK_ID);
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 158 "lev_comp.l"
+#line 159 "lev_comp.l"
 ST_RET(POOL_ID);
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 159 "lev_comp.l"
+#line 160 "lev_comp.l"
 ST_RET(NON_DIGGABLE_ID);
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 160 "lev_comp.l"
+#line 161 "lev_comp.l"
 ST_RET(NON_PASSWALL_ID);
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 161 "lev_comp.l"
+#line 162 "lev_comp.l"
 ST_RET(IF_ID);
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 162 "lev_comp.l"
+#line 163 "lev_comp.l"
 ST_RET(ELSE_ID);
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 163 "lev_comp.l"
+#line 164 "lev_comp.l"
 ST_RET(EXIT_ID);
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 164 "lev_comp.l"
+#line 165 "lev_comp.l"
 ST_RET(ROOM_ID);
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 165 "lev_comp.l"
+#line 166 "lev_comp.l"
 ST_RET(SUBROOM_ID);
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 166 "lev_comp.l"
+#line 167 "lev_comp.l"
 ST_RET(RAND_CORRIDOR_ID);
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 167 "lev_comp.l"
+#line 168 "lev_comp.l"
 ST_RET(CORRIDOR_ID);
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 168 "lev_comp.l"
+#line 169 "lev_comp.l"
 ST_RET(TERRAIN_ID);
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 169 "lev_comp.l"
+#line 170 "lev_comp.l"
 ST_RET(terrain_ID);
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 170 "lev_comp.l"
+#line 171 "lev_comp.l"
 ST_RET(REPLACE_TERRAIN_ID);
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 171 "lev_comp.l"
+#line 172 "lev_comp.l"
 ST_RET(GOLD_ID);
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 172 "lev_comp.l"
+#line 173 "lev_comp.l"
 ST_RET(GRAVE_ID);
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 173 "lev_comp.l"
+#line 174 "lev_comp.l"
 ST_RET(ENGRAVING_ID);
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 174 "lev_comp.l"
+#line 175 "lev_comp.l"
 ST_RET(MINERALIZE_ID);
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 175 "lev_comp.l"
+#line 176 "lev_comp.l"
 ST_RET(NAME_ID);
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 176 "lev_comp.l"
+#line 177 "lev_comp.l"
 ST_RET(FOR_ID);
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 177 "lev_comp.l"
+#line 178 "lev_comp.l"
 ST_RET(TO_ID);
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 178 "lev_comp.l"
+#line 179 "lev_comp.l"
 ST_RET(LOOP_ID);
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 179 "lev_comp.l"
+#line 180 "lev_comp.l"
 ST_RET(SWITCH_ID);
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 180 "lev_comp.l"
+#line 181 "lev_comp.l"
 ST_RET(CASE_ID);
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 181 "lev_comp.l"
+#line 182 "lev_comp.l"
 ST_RET(BREAK_ID);
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 182 "lev_comp.l"
+#line 183 "lev_comp.l"
 ST_RET(DEFAULT_ID);
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 183 "lev_comp.l"
+#line 184 "lev_comp.l"
 ST_RET(FUNCTION_ID);
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 184 "lev_comp.l"
+#line 185 "lev_comp.l"
 ST_RET(SHUFFLE_ID);
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 185 "lev_comp.l"
+#line 186 "lev_comp.l"
 ST_RET(MONTYPE_ID);
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 186 "lev_comp.l"
+#line 187 "lev_comp.l"
 ST_RET(selection_ID);
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 187 "lev_comp.l"
+#line 188 "lev_comp.l"
 ST_RET(rect_ID);
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 188 "lev_comp.l"
+#line 189 "lev_comp.l"
 ST_RET(fillrect_ID);
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 189 "lev_comp.l"
+#line 190 "lev_comp.l"
 ST_RET(line_ID);
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 190 "lev_comp.l"
+#line 191 "lev_comp.l"
 ST_RET(randline_ID);
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 191 "lev_comp.l"
+#line 192 "lev_comp.l"
 ST_RET(grow_ID);
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 192 "lev_comp.l"
+#line 193 "lev_comp.l"
 ST_RET(flood_ID);
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 193 "lev_comp.l"
+#line 194 "lev_comp.l"
 ST_RET(rndcoord_ID);
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 194 "lev_comp.l"
+#line 195 "lev_comp.l"
 ST_RET(circle_ID);
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 195 "lev_comp.l"
+#line 196 "lev_comp.l"
 ST_RET(ellipse_ID);
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 196 "lev_comp.l"
+#line 197 "lev_comp.l"
 ST_RET(filter_ID);
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 197 "lev_comp.l"
+#line 198 "lev_comp.l"
 ST_RET(gradient_ID);
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 198 "lev_comp.l"
+#line 199 "lev_comp.l"
 ST_RET(complement_ID);
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 199 "lev_comp.l"
+#line 200 "lev_comp.l"
 { savetoken(yytext); yylval.i=SEL_GRADIENT_RADIAL;  return GRADIENT_TYPE; }
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 200 "lev_comp.l"
+#line 201 "lev_comp.l"
 { savetoken(yytext); yylval.i=SEL_GRADIENT_SQUARE;  return GRADIENT_TYPE; }
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 201 "lev_comp.l"
+#line 202 "lev_comp.l"
 { savetoken(yytext); yylval.i=DRY;  return HUMIDITY_TYPE; }
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 202 "lev_comp.l"
+#line 203 "lev_comp.l"
 { savetoken(yytext); yylval.i=WET;  return HUMIDITY_TYPE; }
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 203 "lev_comp.l"
+#line 204 "lev_comp.l"
 { savetoken(yytext); yylval.i=HOT;  return HUMIDITY_TYPE; }
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 204 "lev_comp.l"
+#line 205 "lev_comp.l"
 { savetoken(yytext); yylval.i=SOLID;  return HUMIDITY_TYPE; }
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 205 "lev_comp.l"
+#line 206 "lev_comp.l"
 { savetoken(yytext); yylval.i=ANY_LOC;  return HUMIDITY_TYPE; }
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 206 "lev_comp.l"
+#line 207 "lev_comp.l"
 ST_RET(LEV);
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 207 "lev_comp.l"
+#line 208 "lev_comp.l"
 ST_RET(QUANTITY_ID);
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 208 "lev_comp.l"
+#line 209 "lev_comp.l"
 ST_RET(BURIED_ID);
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 209 "lev_comp.l"
+#line 210 "lev_comp.l"
 ST_RET(ERODED_ID);
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 210 "lev_comp.l"
+#line 211 "lev_comp.l"
 ST_RET(ERODEPROOF_ID);
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 211 "lev_comp.l"
+#line 212 "lev_comp.l"
 ST_RET(TRAPPED_ID);
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 212 "lev_comp.l"
+#line 213 "lev_comp.l"
 ST_RET(RECHARGED_ID);
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 213 "lev_comp.l"
+#line 214 "lev_comp.l"
 ST_RET(INVIS_ID);
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 214 "lev_comp.l"
+#line 215 "lev_comp.l"
 ST_RET(GREASED_ID);
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 215 "lev_comp.l"
+#line 216 "lev_comp.l"
 ST_RET(FEMALE_ID);
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 216 "lev_comp.l"
+#line 217 "lev_comp.l"
 ST_RET(CANCELLED_ID);
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 217 "lev_comp.l"
+#line 218 "lev_comp.l"
 ST_RET(REVIVED_ID);
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 218 "lev_comp.l"
+#line 219 "lev_comp.l"
 ST_RET(AVENGE_ID);
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 219 "lev_comp.l"
+#line 220 "lev_comp.l"
 ST_RET(FLEEING_ID);
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 220 "lev_comp.l"
+#line 221 "lev_comp.l"
 ST_RET(BLINDED_ID);
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 221 "lev_comp.l"
+#line 222 "lev_comp.l"
 ST_RET(PARALYZED_ID);
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 222 "lev_comp.l"
+#line 223 "lev_comp.l"
 ST_RET(STUNNED_ID);
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 223 "lev_comp.l"
+#line 224 "lev_comp.l"
 ST_RET(CONFUSED_ID);
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 224 "lev_comp.l"
+#line 225 "lev_comp.l"
 ST_RET(SEENTRAPS_ID);
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 225 "lev_comp.l"
+#line 226 "lev_comp.l"
 ST_RET(ALL_ID);
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 226 "lev_comp.l"
+#line 227 "lev_comp.l"
 ST_RETF((yylval.i=1), HORIZ_OR_VERT);
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 227 "lev_comp.l"
+#line 228 "lev_comp.l"
 { savetoken(yytext); yylval.i=2; return HORIZ_OR_VERT; }
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 228 "lev_comp.l"
+#line 229 "lev_comp.l"
 { savetoken(yytext); yylval.i=D_ISOPEN; return DOOR_STATE; }
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 229 "lev_comp.l"
+#line 230 "lev_comp.l"
 { savetoken(yytext); yylval.i=D_CLOSED; return DOOR_STATE; }
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 230 "lev_comp.l"
+#line 231 "lev_comp.l"
 { savetoken(yytext); yylval.i=D_LOCKED; return DOOR_STATE; }
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 231 "lev_comp.l"
+#line 232 "lev_comp.l"
 { savetoken(yytext); yylval.i=D_NODOOR; return DOOR_STATE; }
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 232 "lev_comp.l"
+#line 233 "lev_comp.l"
 { savetoken(yytext); yylval.i=D_BROKEN; return DOOR_STATE; }
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 233 "lev_comp.l"
+#line 234 "lev_comp.l"
 { savetoken(yytext); yylval.i=D_SECRET; return DOOR_STATE; }
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 234 "lev_comp.l"
+#line 235 "lev_comp.l"
 { savetoken(yytext); yylval.i=W_NORTH; return DIRECTION; }
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 235 "lev_comp.l"
+#line 236 "lev_comp.l"
 { savetoken(yytext); yylval.i=W_EAST; return DIRECTION; }
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 236 "lev_comp.l"
+#line 237 "lev_comp.l"
 { savetoken(yytext); yylval.i=W_SOUTH; return DIRECTION; }
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 237 "lev_comp.l"
+#line 238 "lev_comp.l"
 { savetoken(yytext); yylval.i=W_WEST; return DIRECTION; }
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 238 "lev_comp.l"
+#line 239 "lev_comp.l"
 { savetoken(yytext); yylval.i = -1; return RANDOM_TYPE; }
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 239 "lev_comp.l"
+#line 240 "lev_comp.l"
 { savetoken(yytext); yylval.i = -1; return RANDOM_TYPE_BRACKET; }
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 240 "lev_comp.l"
+#line 241 "lev_comp.l"
 { savetoken(yytext); yylval.i = -2; return NONE; }
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 241 "lev_comp.l"
+#line 242 "lev_comp.l"
 ST_RET(A_REGISTER);
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 242 "lev_comp.l"
+#line 243 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return LEFT_OR_RIGHT; }
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 243 "lev_comp.l"
+#line 244 "lev_comp.l"
 { savetoken(yytext); yylval.i=2; return LEFT_OR_RIGHT; }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 244 "lev_comp.l"
+#line 245 "lev_comp.l"
 { savetoken(yytext); yylval.i=3; return CENTER; }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 245 "lev_comp.l"
+#line 246 "lev_comp.l"
 { savetoken(yytext); yylval.i=4; return LEFT_OR_RIGHT; }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 246 "lev_comp.l"
+#line 247 "lev_comp.l"
 { savetoken(yytext); yylval.i=5; return LEFT_OR_RIGHT; }
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 247 "lev_comp.l"
+#line 248 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return TOP_OR_BOT; }
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 248 "lev_comp.l"
+#line 249 "lev_comp.l"
 { savetoken(yytext); yylval.i=5; return TOP_OR_BOT; }
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 249 "lev_comp.l"
+#line 250 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return LIGHT_STATE; }
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 250 "lev_comp.l"
+#line 251 "lev_comp.l"
 { savetoken(yytext); yylval.i=0; return LIGHT_STATE; }
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 251 "lev_comp.l"
+#line 252 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return FILLING; }
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 252 "lev_comp.l"
+#line 253 "lev_comp.l"
 { savetoken(yytext); yylval.i=0; return FILLING; }
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 253 "lev_comp.l"
+#line 254 "lev_comp.l"
 { savetoken(yytext); yylval.i=0; return IRREGULAR; }
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 254 "lev_comp.l"
+#line 255 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return IRREGULAR; }
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 255 "lev_comp.l"
+#line 256 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return JOINED; }
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 256 "lev_comp.l"
+#line 257 "lev_comp.l"
 { savetoken(yytext); yylval.i=0; return JOINED; }
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 257 "lev_comp.l"
+#line 258 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return LIMITED; }
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 258 "lev_comp.l"
+#line 259 "lev_comp.l"
 { savetoken(yytext); yylval.i=0; return LIMITED; }
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 259 "lev_comp.l"
+#line 260 "lev_comp.l"
 { savetoken(yytext); yylval.i= AM_NONE; return ALIGNMENT; }
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 260 "lev_comp.l"
+#line 261 "lev_comp.l"
 { savetoken(yytext); yylval.i= AM_LAWFUL; return ALIGNMENT; }
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 261 "lev_comp.l"
+#line 262 "lev_comp.l"
 { savetoken(yytext); yylval.i= AM_NEUTRAL; return ALIGNMENT; }
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 262 "lev_comp.l"
+#line 263 "lev_comp.l"
 { savetoken(yytext); yylval.i= AM_CHAOTIC; return ALIGNMENT; }
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 263 "lev_comp.l"
+#line 264 "lev_comp.l"
 { savetoken(yytext); yylval.i= AM_SPLEV_CO; return ALIGNMENT; }
        YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 264 "lev_comp.l"
+#line 265 "lev_comp.l"
 { savetoken(yytext); yylval.i= AM_SPLEV_NONCO; return ALIGNMENT; }
        YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 265 "lev_comp.l"
+#line 266 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return MON_ATTITUDE; }
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 266 "lev_comp.l"
+#line 267 "lev_comp.l"
 { savetoken(yytext); yylval.i=0; return MON_ATTITUDE; }
        YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 267 "lev_comp.l"
+#line 268 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return MON_ALERTNESS; }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 268 "lev_comp.l"
+#line 269 "lev_comp.l"
 { savetoken(yytext); yylval.i=0; return MON_ALERTNESS; }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 269 "lev_comp.l"
+#line 270 "lev_comp.l"
 { savetoken(yytext); yylval.i= M_AP_FURNITURE; return MON_APPEARANCE; }
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 270 "lev_comp.l"
+#line 271 "lev_comp.l"
 { savetoken(yytext); yylval.i= M_AP_MONSTER;   return MON_APPEARANCE; }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 271 "lev_comp.l"
+#line 272 "lev_comp.l"
 { savetoken(yytext); yylval.i= M_AP_OBJECT;    return MON_APPEARANCE; }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 272 "lev_comp.l"
+#line 273 "lev_comp.l"
 { savetoken(yytext); yylval.i=2; return ALTAR_TYPE; }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 273 "lev_comp.l"
+#line 274 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return ALTAR_TYPE; }
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 274 "lev_comp.l"
+#line 275 "lev_comp.l"
 { savetoken(yytext); yylval.i=0; return ALTAR_TYPE; }
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 275 "lev_comp.l"
+#line 276 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return UP_OR_DOWN; }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 276 "lev_comp.l"
+#line 277 "lev_comp.l"
 { savetoken(yytext); yylval.i=0; return UP_OR_DOWN; }
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 277 "lev_comp.l"
+#line 278 "lev_comp.l"
 { savetoken(yytext); yylval.i=0; return BOOLEAN; }
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 278 "lev_comp.l"
+#line 279 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return BOOLEAN; }
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 279 "lev_comp.l"
+#line 280 "lev_comp.l"
 { savetoken(yytext); yylval.i=DUST; return ENGRAVING_TYPE; }
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 280 "lev_comp.l"
+#line 281 "lev_comp.l"
 { savetoken(yytext); yylval.i=ENGRAVE; return ENGRAVING_TYPE; }
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 281 "lev_comp.l"
+#line 282 "lev_comp.l"
 { savetoken(yytext); yylval.i=BURN; return ENGRAVING_TYPE; }
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 282 "lev_comp.l"
+#line 283 "lev_comp.l"
 { savetoken(yytext); yylval.i=MARK; return ENGRAVING_TYPE; }
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 283 "lev_comp.l"
+#line 284 "lev_comp.l"
 { savetoken(yytext); yylval.i=ENGR_BLOOD; return ENGRAVING_TYPE; }
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 284 "lev_comp.l"
+#line 285 "lev_comp.l"
 { savetoken(yytext); yylval.i=1; return CURSE_TYPE; }
        YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 285 "lev_comp.l"
+#line 286 "lev_comp.l"
 { savetoken(yytext); yylval.i=2; return CURSE_TYPE; }
        YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 286 "lev_comp.l"
+#line 287 "lev_comp.l"
 { savetoken(yytext); yylval.i=3; return CURSE_TYPE; }
        YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 287 "lev_comp.l"
+#line 288 "lev_comp.l"
 { savetoken(yytext); yylval.i=NOTELEPORT; return FLAG_TYPE; }
        YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 288 "lev_comp.l"
+#line 289 "lev_comp.l"
 { savetoken(yytext); yylval.i=HARDFLOOR; return FLAG_TYPE; }
        YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 289 "lev_comp.l"
+#line 290 "lev_comp.l"
 { savetoken(yytext); yylval.i=NOMMAP; return FLAG_TYPE; }
        YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 290 "lev_comp.l"
+#line 291 "lev_comp.l"
 { savetoken(yytext); yylval.i=ARBOREAL; return FLAG_TYPE; }    /* KMH */
        YY_BREAK
 case 169:
 YY_RULE_SETUP
-#line 291 "lev_comp.l"
+#line 292 "lev_comp.l"
 { savetoken(yytext); yylval.i=SHORTSIGHTED; return FLAG_TYPE; }
        YY_BREAK
 case 170:
 YY_RULE_SETUP
-#line 292 "lev_comp.l"
+#line 293 "lev_comp.l"
 { savetoken(yytext); yylval.i=MAZELEVEL; return FLAG_TYPE; }
        YY_BREAK
 case 171:
 YY_RULE_SETUP
-#line 293 "lev_comp.l"
+#line 294 "lev_comp.l"
 { savetoken(yytext); yylval.i=PREMAPPED; return FLAG_TYPE; }
        YY_BREAK
 case 172:
 YY_RULE_SETUP
-#line 294 "lev_comp.l"
+#line 295 "lev_comp.l"
 { savetoken(yytext); yylval.i=SHROUD; return FLAG_TYPE; }
        YY_BREAK
 case 173:
 YY_RULE_SETUP
-#line 295 "lev_comp.l"
+#line 296 "lev_comp.l"
 { savetoken(yytext); yylval.i=GRAVEYARD; return FLAG_TYPE; }
        YY_BREAK
 case 174:
 YY_RULE_SETUP
-#line 296 "lev_comp.l"
+#line 297 "lev_comp.l"
 { savetoken(yytext); yylval.i=ICEDPOOLS; return FLAG_TYPE; }
        YY_BREAK
 case 175:
 YY_RULE_SETUP
-#line 297 "lev_comp.l"
+#line 298 "lev_comp.l"
 { savetoken(yytext); yylval.i=SOLIDIFY; return FLAG_TYPE; }
        YY_BREAK
 case 176:
 YY_RULE_SETUP
-#line 298 "lev_comp.l"
+#line 299 "lev_comp.l"
+{ savetoken(yytext); yylval.i=CORRMAZE; return FLAG_TYPE; }
+       YY_BREAK
+case 177:
+YY_RULE_SETUP
+#line 300 "lev_comp.l"
 { char *p = strchr(yytext, 'd');
                  savetoken(yytext);
                  if (p) {
@@ -2392,124 +2382,124 @@ YY_RULE_SETUP
                  return DICE;
                }
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 308 "lev_comp.l"
+#line 310 "lev_comp.l"
 { savetoken(yytext); yylval.i = atoi(yytext + 1);
                     if (yylval.i < 0 || yylval.i > 100)
                        lc_error("Unexpected percentile '%li%%'", yylval.i);
                     return PERCENT; }
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 312 "lev_comp.l"
+#line 314 "lev_comp.l"
 { savetoken(yytext); yylval.i=atoi(yytext); return MINUS_INTEGER; }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 313 "lev_comp.l"
+#line 315 "lev_comp.l"
 { savetoken(yytext); yylval.i=atoi(yytext); return PLUS_INTEGER; }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 314 "lev_comp.l"
+#line 316 "lev_comp.l"
 { savetoken(yytext); yylval.i = atoi(yytext);
                  if (yylval.i < 0 || yylval.i > 100)
                     lc_error("Unexpected percentile '%li%%'", yylval.i);
                  return SPERCENT; }
        YY_BREAK
-case 181:
+case 182:
 YY_RULE_SETUP
-#line 318 "lev_comp.l"
+#line 320 "lev_comp.l"
 { savetoken(yytext); yylval.i=atoi(yytext); return INTEGER; }
        YY_BREAK
-case 182:
-/* rule 182 can match eol */
+case 183:
+/* rule 183 can match eol */
 YY_RULE_SETUP
-#line 319 "lev_comp.l"
+#line 321 "lev_comp.l"
 { savetoken(yytext);
                  yytext[yyleng-1] = 0; /* Discard the trailing \" */
                  yylval.map = (char *) alloc(strlen(yytext+1)+1);
                  Strcpy(yylval.map, yytext+1); /* Discard the first \" */
                  return STRING; }
        YY_BREAK
-case 183:
+case 184:
 YY_RULE_SETUP
-#line 324 "lev_comp.l"
+#line 326 "lev_comp.l"
 { savetoken(yytext); return handle_varstring_check(); }
        YY_BREAK
-case 184:
+case 185:
 YY_RULE_SETUP
-#line 325 "lev_comp.l"
+#line 327 "lev_comp.l"
 { savetoken(yytext); yylval.i = SPO_JE; return COMPARE_TYPE; }
        YY_BREAK
-case 185:
+case 186:
 YY_RULE_SETUP
-#line 326 "lev_comp.l"
+#line 328 "lev_comp.l"
 { savetoken(yytext); yylval.i = SPO_JNE; return COMPARE_TYPE; }
        YY_BREAK
-case 186:
+case 187:
 YY_RULE_SETUP
-#line 327 "lev_comp.l"
+#line 329 "lev_comp.l"
 { savetoken(yytext); yylval.i = SPO_JNE; return COMPARE_TYPE; }
        YY_BREAK
-case 187:
+case 188:
 YY_RULE_SETUP
-#line 328 "lev_comp.l"
+#line 330 "lev_comp.l"
 { savetoken(yytext); yylval.i = SPO_JLE; return COMPARE_TYPE; }
        YY_BREAK
-case 188:
+case 189:
 YY_RULE_SETUP
-#line 329 "lev_comp.l"
+#line 331 "lev_comp.l"
 { savetoken(yytext); yylval.i = SPO_JGE; return COMPARE_TYPE; }
        YY_BREAK
-case 189:
+case 190:
 YY_RULE_SETUP
-#line 330 "lev_comp.l"
+#line 332 "lev_comp.l"
 { savetoken(yytext); yylval.i = SPO_JL; return COMPARE_TYPE; }
        YY_BREAK
-case 190:
+case 191:
 YY_RULE_SETUP
-#line 331 "lev_comp.l"
+#line 333 "lev_comp.l"
 { savetoken(yytext); yylval.i = SPO_JG; return COMPARE_TYPE; }
        YY_BREAK
-case 191:
-/* rule 191 can match eol */
+case 192:
+/* rule 192 can match eol */
 YY_RULE_SETUP
-#line 332 "lev_comp.l"
+#line 334 "lev_comp.l"
 { newline(); }
        YY_BREAK
-case 192:
+case 193:
 YY_RULE_SETUP
-#line 333 "lev_comp.l"
+#line 335 "lev_comp.l"
 { advancepos(yytext); }
        YY_BREAK
-case 193:
+case 194:
 YY_RULE_SETUP
-#line 334 "lev_comp.l"
+#line 336 "lev_comp.l"
 { savetoken(yytext); yylval.i = yytext[2]; return CHAR; }
        YY_BREAK
-case 194:
+case 195:
 YY_RULE_SETUP
-#line 335 "lev_comp.l"
+#line 337 "lev_comp.l"
 { savetoken(yytext); yylval.i = yytext[1]; return CHAR; }
        YY_BREAK
-case 195:
+case 196:
 YY_RULE_SETUP
-#line 336 "lev_comp.l"
+#line 338 "lev_comp.l"
 ST_RET(UNKNOWN_TYPE);
        YY_BREAK
-case 196:
+case 197:
 YY_RULE_SETUP
-#line 337 "lev_comp.l"
+#line 339 "lev_comp.l"
 { savetoken(yytext); return yytext[0]; }
        YY_BREAK
-case 197:
+case 198:
 YY_RULE_SETUP
-#line 338 "lev_comp.l"
+#line 340 "lev_comp.l"
 ECHO;
        YY_BREAK
-#line 2512 "lex.yy.c"
+#line 2503 "lex.yy.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(MAPC):
        yyterminate();
@@ -2804,7 +2794,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 >= 1049 )
+                       if ( yy_current_state >= 1038 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2832,11 +2822,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 >= 1049 )
+               if ( yy_current_state >= 1038 )
                        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 == 1048);
+       yy_is_jam = (yy_current_state == 1037);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -3508,7 +3498,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 337 "lev_comp.l"
+#line 339 "lev_comp.l"
 
 
 #ifdef AMIGA
index 376c487598c2e75a35b9de2a939a657bd0a9000a..d2280994c95c1d7a1e5227efdc3dca30310737a3 100644 (file)
@@ -64,7 +64,7 @@
 /* Copy the first part of user declarations.  */
 #line 1 "lev_comp.y" /* yacc.c:339  */
 
-/* NetHack 3.5  lev_comp.y     $NHDT-Date$  $NHDT-Branch$:$NHDT-Revision$ */
+/* NetHack 3.5  lev_comp.y     $NHDT-Date: 1428655167 2015/04/10 08:39:27 $  $NHDT-Branch: master $:$NHDT-Revision: 1.11 $ */
 /* NetHack 3.5  lev_comp.y     $Date: 2009/05/06 10:54:31 $  $Revision: 1.8 $ */
 /*     SCCS Id: @(#)lev_yacc.c 3.5     2007/08/01      */
 /*     Copyright (c) 1989 by Jean-Christophe Collet */
@@ -88,6 +88,7 @@
  #pragma alloca                /* keep leading space! */
 #endif
 
+#define SPEC_LEV    /* for USE_OLDARGS (sp_lev.h) */
 #include "hack.h"
 #include "sp_lev.h"
 
@@ -208,7 +209,7 @@ extern const char *fname;
 extern char curr_token[512];
 
 
-#line 212 "y.tab.c" /* yacc.c:339  */
+#line 213 "y.tab.c" /* yacc.c:339  */
 
 # ifndef YY_NULLPTR
 #  if defined __cplusplus && 201103L <= __cplusplus
@@ -600,7 +601,7 @@ extern int yydebug;
 typedef union YYSTYPE YYSTYPE;
 union YYSTYPE
 {
-#line 148 "lev_comp.y" /* yacc.c:355  */
+#line 149 "lev_comp.y" /* yacc.c:355  */
 
        long    i;
        char*   map;
@@ -637,7 +638,7 @@ union YYSTYPE
        char *varstr;
     } meth;
 
-#line 641 "y.tab.c" /* yacc.c:355  */
+#line 642 "y.tab.c" /* yacc.c:355  */
 };
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
@@ -652,7 +653,7 @@ int yyparse (void);
 
 /* Copy the second part of user declarations.  */
 
-#line 656 "y.tab.c" /* yacc.c:358  */
+#line 657 "y.tab.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -967,47 +968,47 @@ static const yytype_uint8 yytranslate[] =
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   275,   275,   276,   279,   280,   283,   305,   310,   326,
-     330,   336,   345,   354,   358,   384,   387,   394,   398,   405,
-     408,   415,   416,   420,   423,   429,   433,   440,   443,   449,
-     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
-     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
-     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
-     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
-     495,   496,   497,   498,   501,   502,   503,   504,   505,   506,
-     507,   508,   509,   512,   513,   514,   515,   516,   517,   518,
-     519,   520,   523,   524,   525,   528,   529,   532,   544,   550,
-     556,   562,   568,   574,   580,   586,   592,   599,   606,   613,
-     620,   627,   634,   643,   648,   655,   660,   667,   672,   679,
-     683,   689,   694,   701,   705,   711,   715,   722,   744,   721,
-     758,   803,   810,   813,   819,   825,   829,   838,   842,   837,
-     899,   900,   904,   903,   916,   915,   930,   940,   941,   944,
-     977,   976,  1002,  1001,  1031,  1030,  1061,  1060,  1086,  1095,
-    1094,  1121,  1127,  1131,  1135,  1141,  1148,  1157,  1165,  1176,
-    1175,  1191,  1190,  1207,  1210,  1216,  1226,  1232,  1241,  1247,
-    1252,  1258,  1263,  1269,  1278,  1284,  1285,  1288,  1289,  1292,
-    1296,  1302,  1303,  1306,  1312,  1318,  1326,  1327,  1330,  1331,
-    1334,  1339,  1338,  1352,  1359,  1365,  1373,  1378,  1383,  1388,
-    1393,  1398,  1403,  1408,  1413,  1418,  1423,  1428,  1433,  1438,
-    1443,  1448,  1455,  1462,  1466,  1479,  1486,  1485,  1501,  1509,
-    1515,  1523,  1528,  1533,  1538,  1543,  1548,  1553,  1558,  1563,
-    1568,  1579,  1584,  1589,  1594,  1599,  1606,  1612,  1639,  1644,
-    1651,  1655,  1661,  1667,  1673,  1683,  1693,  1708,  1718,  1721,
-    1727,  1733,  1739,  1745,  1750,  1757,  1763,  1769,  1775,  1782,
-    1781,  1805,  1808,  1814,  1820,  1824,  1829,  1836,  1842,  1849,
-    1853,  1859,  1867,  1870,  1880,  1884,  1887,  1893,  1897,  1904,
-    1908,  1912,  1918,  1919,  1922,  1923,  1926,  1927,  1928,  1934,
-    1935,  1936,  1942,  1943,  1946,  1955,  1960,  1967,  1977,  1983,
-    1987,  1991,  1998,  2007,  2013,  2017,  2023,  2027,  2035,  2039,
-    2046,  2055,  2066,  2070,  2077,  2086,  2095,  2106,  2110,  2117,
-    2126,  2135,  2144,  2153,  2159,  2163,  2170,  2179,  2189,  2198,
-    2207,  2214,  2215,  2221,  2222,  2223,  2224,  2232,  2240,  2241,
-    2242,  2243,  2244,  2245,  2248,  2254,  2262,  2291,  2292,  2295,
-    2296,  2299,  2303,  2310,  2317,  2328,  2331,  2339,  2343,  2347,
-    2351,  2355,  2360,  2364,  2368,  2372,  2376,  2380,  2384,  2388,
-    2392,  2396,  2400,  2404,  2408,  2415,  2421,  2425,  2431,  2437,
-    2438,  2439,  2442,  2446,  2450,  2454,  2460,  2461,  2464,  2465,
-    2468,  2469,  2472,  2473,  2476,  2480,  2498
+       0,   276,   276,   277,   280,   281,   284,   306,   311,   332,
+     336,   342,   352,   363,   369,   398,   401,   408,   412,   419,
+     422,   429,   430,   434,   437,   443,   447,   454,   457,   463,
+     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
+     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
+     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
+     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
+     509,   510,   511,   512,   515,   516,   517,   518,   519,   520,
+     521,   522,   523,   526,   527,   528,   529,   530,   531,   532,
+     533,   534,   537,   538,   539,   542,   543,   546,   558,   564,
+     570,   576,   582,   588,   594,   600,   606,   614,   622,   630,
+     638,   646,   654,   664,   669,   676,   681,   688,   693,   700,
+     704,   710,   715,   722,   726,   732,   736,   743,   765,   742,
+     779,   827,   834,   837,   843,   850,   854,   863,   867,   862,
+     929,   930,   934,   933,   946,   945,   960,   970,   971,   974,
+    1013,  1012,  1046,  1045,  1075,  1074,  1105,  1104,  1130,  1139,
+    1138,  1165,  1171,  1176,  1181,  1188,  1195,  1204,  1212,  1224,
+    1223,  1242,  1241,  1260,  1263,  1269,  1279,  1285,  1294,  1300,
+    1305,  1311,  1316,  1322,  1333,  1339,  1340,  1343,  1344,  1347,
+    1351,  1357,  1358,  1361,  1368,  1376,  1384,  1385,  1388,  1389,
+    1392,  1397,  1396,  1410,  1417,  1423,  1431,  1436,  1442,  1448,
+    1454,  1460,  1465,  1470,  1475,  1480,  1485,  1490,  1495,  1500,
+    1505,  1510,  1518,  1525,  1529,  1542,  1549,  1548,  1564,  1572,
+    1578,  1586,  1592,  1597,  1602,  1607,  1612,  1617,  1622,  1627,
+    1632,  1643,  1648,  1653,  1658,  1663,  1670,  1676,  1705,  1710,
+    1718,  1724,  1730,  1737,  1744,  1754,  1764,  1779,  1790,  1793,
+    1799,  1805,  1811,  1817,  1822,  1829,  1836,  1842,  1848,  1855,
+    1854,  1879,  1882,  1888,  1895,  1899,  1904,  1911,  1917,  1924,
+    1928,  1935,  1943,  1946,  1956,  1960,  1963,  1969,  1973,  1980,
+    1984,  1988,  1994,  1995,  1998,  1999,  2002,  2003,  2004,  2010,
+    2011,  2012,  2018,  2019,  2022,  2031,  2036,  2043,  2053,  2059,
+    2063,  2067,  2074,  2083,  2089,  2093,  2099,  2103,  2111,  2115,
+    2122,  2131,  2142,  2146,  2153,  2162,  2171,  2182,  2186,  2193,
+    2202,  2211,  2220,  2229,  2235,  2239,  2246,  2255,  2265,  2274,
+    2283,  2290,  2291,  2297,  2301,  2305,  2309,  2317,  2326,  2330,
+    2334,  2338,  2342,  2346,  2349,  2356,  2365,  2393,  2394,  2397,
+    2398,  2401,  2405,  2412,  2419,  2430,  2433,  2441,  2445,  2449,
+    2453,  2457,  2462,  2466,  2470,  2475,  2480,  2485,  2489,  2494,
+    2499,  2503,  2507,  2512,  2516,  2523,  2529,  2533,  2539,  2546,
+    2547,  2548,  2551,  2555,  2559,  2563,  2569,  2570,  2573,  2574,
+    2577,  2578,  2581,  2582,  2585,  2589,  2607
 };
 #endif
 
@@ -2442,7 +2443,7 @@ yyreduce:
   switch (yyn)
     {
         case 6:
-#line 284 "lev_comp.y" /* yacc.c:1646  */
+#line 285 "lev_comp.y" /* yacc.c:1646  */
     {
                        if (fatal_error > 0) {
                                (void) fprintf(stderr,
@@ -2462,88 +2463,98 @@ yyreduce:
                        vardef_free_all(variable_definitions);
                        variable_definitions = NULL;
                  }
-#line 2466 "y.tab.c" /* yacc.c:1646  */
+#line 2467 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 7:
-#line 306 "lev_comp.y" /* yacc.c:1646  */
+#line 307 "lev_comp.y" /* yacc.c:1646  */
     {
                      start_level_def(&splev, (yyvsp[0].map));
                      (yyval.map) = (yyvsp[0].map);
                  }
-#line 2475 "y.tab.c" /* yacc.c:1646  */
+#line 2476 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 8:
-#line 311 "lev_comp.y" /* yacc.c:1646  */
+#line 312 "lev_comp.y" /* yacc.c:1646  */
     {
                      start_level_def(&splev, (yyvsp[-2].map));
                      if ((yyvsp[0].i) == -1) {
-                         add_opvars(splev, "iiiiiiiio", LVLINIT_MAZEGRID,HWALL,0,0, 0,0,0,0, SPO_INITLEVEL);
+                         add_opvars(splev, "iiiiiiiio",
+                                    VA_PASS9(LVLINIT_MAZEGRID,HWALL,0,0,
+                                             0,0,0,0, SPO_INITLEVEL));
                      } else {
                          long bg = what_map_char((char) (yyvsp[0].i));
-                         add_opvars(splev, "iiiiiiiio", LVLINIT_SOLIDFILL, bg, 0,0, 0,0,0,0, SPO_INITLEVEL);
+                         add_opvars(splev, "iiiiiiiio",
+                                    VA_PASS9(LVLINIT_SOLIDFILL, bg, 0,0,
+                                             0,0,0,0, SPO_INITLEVEL));
                      }
-                     add_opvars(splev, "io", MAZELEVEL, SPO_LEVEL_FLAGS);
+                     add_opvars(splev, "io",
+                                VA_PASS2(MAZELEVEL, SPO_LEVEL_FLAGS));
                      max_x_map = COLNO-1;
                      max_y_map = ROWNO;
                      (yyval.map) = (yyvsp[-2].map);
                  }
-#line 2493 "y.tab.c" /* yacc.c:1646  */
+#line 2499 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 9:
-#line 327 "lev_comp.y" /* yacc.c:1646  */
+#line 333 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = -1;
                  }
-#line 2501 "y.tab.c" /* yacc.c:1646  */
+#line 2507 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 10:
-#line 331 "lev_comp.y" /* yacc.c:1646  */
+#line 337 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = what_map_char((char) (yyvsp[0].i));
                  }
-#line 2509 "y.tab.c" /* yacc.c:1646  */
+#line 2515 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 11:
-#line 337 "lev_comp.y" /* yacc.c:1646  */
+#line 343 "lev_comp.y" /* yacc.c:1646  */
     {
                      long filling = (yyvsp[0].terr).ter;
                      if (filling == INVALID_TYPE || filling >= MAX_TYPE)
                          lc_error("INIT_MAP: Invalid fill char type.");
-                     add_opvars(splev, "iiiiiiiio", LVLINIT_SOLIDFILL,filling,0,(long)(yyvsp[0].terr).lit, 0,0,0,0, SPO_INITLEVEL);
+                     add_opvars(splev, "iiiiiiiio",
+                                LVLINIT_SOLIDFILL,filling,0,(long)(yyvsp[0].terr).lit, 0,0,0,0, SPO_INITLEVEL);
                      max_x_map = COLNO-1;
                      max_y_map = ROWNO;
                  }
-#line 2522 "y.tab.c" /* yacc.c:1646  */
+#line 2529 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 12:
-#line 346 "lev_comp.y" /* yacc.c:1646  */
+#line 353 "lev_comp.y" /* yacc.c:1646  */
     {
                      long filling = what_map_char((char) (yyvsp[0].i));
                      if (filling == INVALID_TYPE || filling >= MAX_TYPE)
                          lc_error("INIT_MAP: Invalid fill char type.");
-                     add_opvars(splev, "iiiiiiiio", LVLINIT_MAZEGRID,filling,0,0, 0,0,0,0, SPO_INITLEVEL);
+                     add_opvars(splev, "iiiiiiiio",
+                                VA_PASS9(LVLINIT_MAZEGRID,filling,0,0,
+                                         0,0,0,0, SPO_INITLEVEL));
                      max_x_map = COLNO-1;
                      max_y_map = ROWNO;
                  }
-#line 2535 "y.tab.c" /* yacc.c:1646  */
+#line 2544 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 13:
-#line 355 "lev_comp.y" /* yacc.c:1646  */
+#line 364 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "iiiiiiiio", LVLINIT_ROGUE,0,0,0,0,0,0,0, SPO_INITLEVEL);
+                     add_opvars(splev, "iiiiiiiio",
+                                VA_PASS9(LVLINIT_ROGUE,0,0,0,
+                                         0,0,0,0, SPO_INITLEVEL));
                  }
-#line 2543 "y.tab.c" /* yacc.c:1646  */
+#line 2554 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 14:
-#line 359 "lev_comp.y" /* yacc.c:1646  */
+#line 370 "lev_comp.y" /* yacc.c:1646  */
     {
                      long fg = what_map_char((char) (yyvsp[-11].i));
                      long bg = what_map_char((char) (yyvsp[-9].i));
@@ -2562,411 +2573,421 @@ yyreduce:
                      if (filling == INVALID_TYPE)
                          lc_error("INIT_MAP: Invalid fill char type.");
 
-                     add_opvars(splev, "iiiiiiiio", LVLINIT_MINES,filling,walled,lit, joined,smoothed,bg,fg, SPO_INITLEVEL);
+                     add_opvars(splev, "iiiiiiiio",
+                                VA_PASS9(LVLINIT_MINES,filling,walled,lit,
+                                         joined,smoothed,bg,fg,
+                                         SPO_INITLEVEL));
                        max_x_map = COLNO-1;
                        max_y_map = ROWNO;
                  }
-#line 2570 "y.tab.c" /* yacc.c:1646  */
+#line 2584 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 15:
-#line 384 "lev_comp.y" /* yacc.c:1646  */
+#line 398 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 0;
                  }
-#line 2578 "y.tab.c" /* yacc.c:1646  */
+#line 2592 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 16:
-#line 388 "lev_comp.y" /* yacc.c:1646  */
+#line 402 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = (yyvsp[0].i);
                  }
-#line 2586 "y.tab.c" /* yacc.c:1646  */
+#line 2600 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 17:
-#line 394 "lev_comp.y" /* yacc.c:1646  */
+#line 408 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_COPY);
+                     add_opvars(splev, "o", VA_PASS1(SPO_COPY));
                      (yyval.i) = 0;
                  }
-#line 2595 "y.tab.c" /* yacc.c:1646  */
+#line 2609 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 18:
-#line 399 "lev_comp.y" /* yacc.c:1646  */
+#line 413 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 1;
                  }
-#line 2603 "y.tab.c" /* yacc.c:1646  */
+#line 2617 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 19:
-#line 405 "lev_comp.y" /* yacc.c:1646  */
+#line 419 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = -1;
                  }
-#line 2611 "y.tab.c" /* yacc.c:1646  */
+#line 2625 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 20:
-#line 409 "lev_comp.y" /* yacc.c:1646  */
+#line 423 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = what_map_char((char) (yyvsp[0].i));
                  }
-#line 2619 "y.tab.c" /* yacc.c:1646  */
+#line 2633 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 23:
-#line 420 "lev_comp.y" /* yacc.c:1646  */
+#line 434 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", 0, SPO_LEVEL_FLAGS);
+                     add_opvars(splev, "io", VA_PASS2(0, SPO_LEVEL_FLAGS));
                  }
-#line 2627 "y.tab.c" /* yacc.c:1646  */
+#line 2641 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 24:
-#line 424 "lev_comp.y" /* yacc.c:1646  */
+#line 438 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", (yyvsp[0].i), SPO_LEVEL_FLAGS);
+                     add_opvars(splev, "io", VA_PASS2((yyvsp[0].i), SPO_LEVEL_FLAGS));
                  }
-#line 2635 "y.tab.c" /* yacc.c:1646  */
+#line 2649 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 25:
-#line 430 "lev_comp.y" /* yacc.c:1646  */
+#line 444 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = ((yyvsp[-2].i) | (yyvsp[0].i));
                  }
-#line 2643 "y.tab.c" /* yacc.c:1646  */
+#line 2657 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 26:
-#line 434 "lev_comp.y" /* yacc.c:1646  */
+#line 448 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = (yyvsp[0].i);
                  }
-#line 2651 "y.tab.c" /* yacc.c:1646  */
+#line 2665 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 27:
-#line 440 "lev_comp.y" /* yacc.c:1646  */
+#line 454 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 0;
                  }
-#line 2659 "y.tab.c" /* yacc.c:1646  */
+#line 2673 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 28:
-#line 444 "lev_comp.y" /* yacc.c:1646  */
+#line 458 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 1 + (yyvsp[0].i);
                  }
-#line 2667 "y.tab.c" /* yacc.c:1646  */
+#line 2681 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 29:
-#line 450 "lev_comp.y" /* yacc.c:1646  */
+#line 464 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = (yyvsp[-1].i);
                  }
-#line 2675 "y.tab.c" /* yacc.c:1646  */
+#line 2689 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 97:
-#line 533 "lev_comp.y" /* yacc.c:1646  */
+#line 547 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct lc_vardefs *vd;
                      if ((vd = vardef_defined(variable_definitions, (yyvsp[0].map), 1))) {
                          if (!(vd->var_type & SPOVAR_ARRAY))
                              lc_error("Trying to shuffle non-array variable '%s'", (yyvsp[0].map));
                      } else lc_error("Trying to shuffle undefined variable '%s'", (yyvsp[0].map));
-                     add_opvars(splev, "so", (yyvsp[0].map), SPO_SHUFFLE_ARRAY);
+                     add_opvars(splev, "so", VA_PASS2((yyvsp[0].map), SPO_SHUFFLE_ARRAY));
                      Free((yyvsp[0].map));
                  }
-#line 2689 "y.tab.c" /* yacc.c:1646  */
+#line 2703 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 98:
-#line 545 "lev_comp.y" /* yacc.c:1646  */
+#line 559 "lev_comp.y" /* yacc.c:1646  */
     {
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-2].map), SPOVAR_INT);
-                     add_opvars(splev, "iso", 0, (yyvsp[-2].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-2].map), SPO_VAR_INIT));
                      Free((yyvsp[-2].map));
                  }
-#line 2699 "y.tab.c" /* yacc.c:1646  */
+#line 2713 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 99:
-#line 551 "lev_comp.y" /* yacc.c:1646  */
+#line 565 "lev_comp.y" /* yacc.c:1646  */
     {
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_SEL);
-                     add_opvars(splev, "iso", 0, (yyvsp[-4].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-4].map), SPO_VAR_INIT));
                      Free((yyvsp[-4].map));
                  }
-#line 2709 "y.tab.c" /* yacc.c:1646  */
+#line 2723 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 100:
-#line 557 "lev_comp.y" /* yacc.c:1646  */
+#line 571 "lev_comp.y" /* yacc.c:1646  */
     {
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-2].map), SPOVAR_STRING);
-                     add_opvars(splev, "iso", 0, (yyvsp[-2].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-2].map), SPO_VAR_INIT));
                      Free((yyvsp[-2].map));
                  }
-#line 2719 "y.tab.c" /* yacc.c:1646  */
+#line 2733 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 101:
-#line 563 "lev_comp.y" /* yacc.c:1646  */
+#line 577 "lev_comp.y" /* yacc.c:1646  */
     {
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_MAPCHAR);
-                     add_opvars(splev, "iso", 0, (yyvsp[-4].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-4].map), SPO_VAR_INIT));
                      Free((yyvsp[-4].map));
                  }
-#line 2729 "y.tab.c" /* yacc.c:1646  */
+#line 2743 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 102:
-#line 569 "lev_comp.y" /* yacc.c:1646  */
+#line 583 "lev_comp.y" /* yacc.c:1646  */
     {
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_MONST);
-                     add_opvars(splev, "iso", 0, (yyvsp[-4].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-4].map), SPO_VAR_INIT));
                      Free((yyvsp[-4].map));
                  }
-#line 2739 "y.tab.c" /* yacc.c:1646  */
+#line 2753 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 103:
-#line 575 "lev_comp.y" /* yacc.c:1646  */
+#line 589 "lev_comp.y" /* yacc.c:1646  */
     {
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_OBJ);
-                     add_opvars(splev, "iso", 0, (yyvsp[-4].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-4].map), SPO_VAR_INIT));
                      Free((yyvsp[-4].map));
                  }
-#line 2749 "y.tab.c" /* yacc.c:1646  */
+#line 2763 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 104:
-#line 581 "lev_comp.y" /* yacc.c:1646  */
+#line 595 "lev_comp.y" /* yacc.c:1646  */
     {
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-2].map), SPOVAR_COORD);
-                     add_opvars(splev, "iso", 0, (yyvsp[-2].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-2].map), SPO_VAR_INIT));
                      Free((yyvsp[-2].map));
                  }
-#line 2759 "y.tab.c" /* yacc.c:1646  */
+#line 2773 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 105:
-#line 587 "lev_comp.y" /* yacc.c:1646  */
+#line 601 "lev_comp.y" /* yacc.c:1646  */
     {
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-2].map), SPOVAR_REGION);
-                     add_opvars(splev, "iso", 0, (yyvsp[-2].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-2].map), SPO_VAR_INIT));
                      Free((yyvsp[-2].map));
                  }
-#line 2769 "y.tab.c" /* yacc.c:1646  */
+#line 2783 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 106:
-#line 593 "lev_comp.y" /* yacc.c:1646  */
+#line 607 "lev_comp.y" /* yacc.c:1646  */
     {
                      long n_items = (yyvsp[-1].i);
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_INT|SPOVAR_ARRAY);
-                     add_opvars(splev, "iso", n_items, (yyvsp[-4].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso",
+                                VA_PASS3(n_items, (yyvsp[-4].map), SPO_VAR_INIT));
                      Free((yyvsp[-4].map));
                  }
-#line 2780 "y.tab.c" /* yacc.c:1646  */
+#line 2795 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 107:
-#line 600 "lev_comp.y" /* yacc.c:1646  */
+#line 615 "lev_comp.y" /* yacc.c:1646  */
     {
                      long n_items = (yyvsp[-1].i);
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_COORD|SPOVAR_ARRAY);
-                     add_opvars(splev, "iso", n_items, (yyvsp[-4].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso",
+                                VA_PASS3(n_items, (yyvsp[-4].map), SPO_VAR_INIT));
                      Free((yyvsp[-4].map));
                  }
-#line 2791 "y.tab.c" /* yacc.c:1646  */
+#line 2807 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 108:
-#line 607 "lev_comp.y" /* yacc.c:1646  */
+#line 623 "lev_comp.y" /* yacc.c:1646  */
     {
                      long n_items = (yyvsp[-1].i);
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_REGION|SPOVAR_ARRAY);
-                     add_opvars(splev, "iso", n_items, (yyvsp[-4].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso",
+                                VA_PASS3(n_items, (yyvsp[-4].map), SPO_VAR_INIT));
                      Free((yyvsp[-4].map));
                  }
-#line 2802 "y.tab.c" /* yacc.c:1646  */
+#line 2819 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 109:
-#line 614 "lev_comp.y" /* yacc.c:1646  */
+#line 631 "lev_comp.y" /* yacc.c:1646  */
     {
                      long n_items = (yyvsp[-1].i);
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-6].map), SPOVAR_MAPCHAR|SPOVAR_ARRAY);
-                     add_opvars(splev, "iso", n_items, (yyvsp[-6].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso",
+                                VA_PASS3(n_items, (yyvsp[-6].map), SPO_VAR_INIT));
                      Free((yyvsp[-6].map));
                  }
-#line 2813 "y.tab.c" /* yacc.c:1646  */
+#line 2831 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 110:
-#line 621 "lev_comp.y" /* yacc.c:1646  */
+#line 639 "lev_comp.y" /* yacc.c:1646  */
     {
                      long n_items = (yyvsp[-1].i);
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-6].map), SPOVAR_MONST|SPOVAR_ARRAY);
-                     add_opvars(splev, "iso", n_items, (yyvsp[-6].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso",
+                                VA_PASS3(n_items, (yyvsp[-6].map), SPO_VAR_INIT));
                      Free((yyvsp[-6].map));
                  }
-#line 2824 "y.tab.c" /* yacc.c:1646  */
+#line 2843 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 111:
-#line 628 "lev_comp.y" /* yacc.c:1646  */
+#line 647 "lev_comp.y" /* yacc.c:1646  */
     {
                      long n_items = (yyvsp[-1].i);
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-6].map), SPOVAR_OBJ|SPOVAR_ARRAY);
-                     add_opvars(splev, "iso", n_items, (yyvsp[-6].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso",
+                                VA_PASS3(n_items, (yyvsp[-6].map), SPO_VAR_INIT));
                      Free((yyvsp[-6].map));
                  }
-#line 2835 "y.tab.c" /* yacc.c:1646  */
+#line 2855 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 112:
-#line 635 "lev_comp.y" /* yacc.c:1646  */
+#line 655 "lev_comp.y" /* yacc.c:1646  */
     {
                      long n_items = (yyvsp[-1].i);
                      variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_STRING|SPOVAR_ARRAY);
-                     add_opvars(splev, "iso", n_items, (yyvsp[-4].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso",
+                                VA_PASS3(n_items, (yyvsp[-4].map), SPO_VAR_INIT));
                      Free((yyvsp[-4].map));
                  }
-#line 2846 "y.tab.c" /* yacc.c:1646  */
+#line 2867 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 113:
-#line 644 "lev_comp.y" /* yacc.c:1646  */
+#line 665 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "O", (yyvsp[0].i));
+                     add_opvars(splev, "O", VA_PASS1((yyvsp[0].i)));
                      (yyval.i) = 1;
                  }
-#line 2855 "y.tab.c" /* yacc.c:1646  */
+#line 2876 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 114:
-#line 649 "lev_comp.y" /* yacc.c:1646  */
+#line 670 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "O", (yyvsp[0].i));
+                     add_opvars(splev, "O", VA_PASS1((yyvsp[0].i)));
                      (yyval.i) = 1 + (yyvsp[-2].i);
                  }
-#line 2864 "y.tab.c" /* yacc.c:1646  */
+#line 2885 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 115:
-#line 656 "lev_comp.y" /* yacc.c:1646  */
+#line 677 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "M", (yyvsp[0].i));
+                     add_opvars(splev, "M", VA_PASS1((yyvsp[0].i)));
                      (yyval.i) = 1;
                  }
-#line 2873 "y.tab.c" /* yacc.c:1646  */
+#line 2894 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 116:
-#line 661 "lev_comp.y" /* yacc.c:1646  */
+#line 682 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "M", (yyvsp[0].i));
+                     add_opvars(splev, "M", VA_PASS1((yyvsp[0].i)));
                      (yyval.i) = 1 + (yyvsp[-2].i);
                  }
-#line 2882 "y.tab.c" /* yacc.c:1646  */
+#line 2903 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 117:
-#line 668 "lev_comp.y" /* yacc.c:1646  */
+#line 689 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "m", (yyvsp[0].i));
+                     add_opvars(splev, "m", VA_PASS1((yyvsp[0].i)));
                      (yyval.i) = 1;
                  }
-#line 2891 "y.tab.c" /* yacc.c:1646  */
+#line 2912 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 118:
-#line 673 "lev_comp.y" /* yacc.c:1646  */
+#line 694 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "m", (yyvsp[0].i));
+                     add_opvars(splev, "m", VA_PASS1((yyvsp[0].i)));
                      (yyval.i) = 1 + (yyvsp[-2].i);
                  }
-#line 2900 "y.tab.c" /* yacc.c:1646  */
+#line 2921 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 119:
-#line 680 "lev_comp.y" /* yacc.c:1646  */
+#line 701 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 1;
                  }
-#line 2908 "y.tab.c" /* yacc.c:1646  */
+#line 2929 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 120:
-#line 684 "lev_comp.y" /* yacc.c:1646  */
+#line 705 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 1 + (yyvsp[-2].i);
                  }
-#line 2916 "y.tab.c" /* yacc.c:1646  */
+#line 2937 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 121:
-#line 690 "lev_comp.y" /* yacc.c:1646  */
+#line 711 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "c", (yyvsp[0].i));
+                     add_opvars(splev, "c", VA_PASS1((yyvsp[0].i)));
                      (yyval.i) = 1;
                  }
-#line 2925 "y.tab.c" /* yacc.c:1646  */
+#line 2946 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 122:
-#line 695 "lev_comp.y" /* yacc.c:1646  */
+#line 716 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "c", (yyvsp[0].i));
+                     add_opvars(splev, "c", VA_PASS1((yyvsp[0].i)));
                      (yyval.i) = 1 + (yyvsp[-2].i);
                  }
-#line 2934 "y.tab.c" /* yacc.c:1646  */
+#line 2955 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 123:
-#line 702 "lev_comp.y" /* yacc.c:1646  */
+#line 723 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 1;
                  }
-#line 2942 "y.tab.c" /* yacc.c:1646  */
+#line 2963 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 124:
-#line 706 "lev_comp.y" /* yacc.c:1646  */
+#line 727 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 1 + (yyvsp[-2].i);
                  }
-#line 2950 "y.tab.c" /* yacc.c:1646  */
+#line 2971 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 125:
-#line 712 "lev_comp.y" /* yacc.c:1646  */
+#line 733 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 1;
                  }
-#line 2958 "y.tab.c" /* yacc.c:1646  */
+#line 2979 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 126:
-#line 716 "lev_comp.y" /* yacc.c:1646  */
+#line 737 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 1 + (yyvsp[-2].i);
                  }
-#line 2966 "y.tab.c" /* yacc.c:1646  */
+#line 2987 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 127:
-#line 722 "lev_comp.y" /* yacc.c:1646  */
+#line 743 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct lc_funcdefs *funcdef;
 
@@ -2988,32 +3009,32 @@ yyreduce:
                      function_tmp_var_defs = variable_definitions;
                      variable_definitions = NULL;
                  }
-#line 2992 "y.tab.c" /* yacc.c:1646  */
+#line 3013 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 128:
-#line 744 "lev_comp.y" /* yacc.c:1646  */
+#line 765 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* nothing */
                  }
-#line 3000 "y.tab.c" /* yacc.c:1646  */
+#line 3021 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 129:
-#line 748 "lev_comp.y" /* yacc.c:1646  */
+#line 769 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", 0, SPO_RETURN);
+                     add_opvars(splev, "io", VA_PASS2(0, SPO_RETURN));
                      splev = function_splev_backup;
                      in_function_definition--;
                      curr_function = NULL;
                      vardef_free_all(variable_definitions);
                      variable_definitions = function_tmp_var_defs;
                  }
-#line 3013 "y.tab.c" /* yacc.c:1646  */
+#line 3034 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 130:
-#line 759 "lev_comp.y" /* yacc.c:1646  */
+#line 780 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct lc_funcdefs *tmpfunc;
                      tmpfunc = funcdef_defined(function_definitions, (yyvsp[-3].map), 1);
@@ -3040,7 +3061,9 @@ yyreduce:
                              { /* init function parameter variables */
                                  struct lc_funcdefs_parm *tfp = tmpfunc->params;
                                  while (tfp) {
-                                     add_opvars(splev, "iso", 0, tfp->name, SPO_VAR_INIT);
+                                     add_opvars(splev, "iso",
+                                                VA_PASS3(0, tfp->name,
+                                                         SPO_VAR_INIT));
                                      tfp = tfp->next;
                                  }
                              }
@@ -3049,78 +3072,80 @@ yyreduce:
                              set_opvar_int(jmp, splev->n_opcodes - jmp->vardata.l);
                          }
                          l = tmpfunc->addr - splev->n_opcodes - 2;
-                         add_opvars(splev, "iio", nparams, l, SPO_CALL);
+                         add_opvars(splev, "iio",
+                                    VA_PASS3(nparams, l, SPO_CALL));
                          tmpfunc->n_called++;
                      } else {
                          lc_error("Function '%s' not defined.", (yyvsp[-3].map));
                      }
                      Free((yyvsp[-3].map));
                  }
-#line 3060 "y.tab.c" /* yacc.c:1646  */
+#line 3084 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 131:
-#line 804 "lev_comp.y" /* yacc.c:1646  */
+#line 828 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opcode(splev, SPO_EXIT, NULL);
                  }
-#line 3068 "y.tab.c" /* yacc.c:1646  */
+#line 3092 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 132:
-#line 810 "lev_comp.y" /* yacc.c:1646  */
+#line 834 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 100;
                  }
-#line 3076 "y.tab.c" /* yacc.c:1646  */
+#line 3100 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 133:
-#line 814 "lev_comp.y" /* yacc.c:1646  */
+#line 838 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = (yyvsp[0].i);
                  }
-#line 3084 "y.tab.c" /* yacc.c:1646  */
+#line 3108 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 134:
-#line 820 "lev_comp.y" /* yacc.c:1646  */
+#line 844 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* val > rn2(100) */
-                     add_opvars(splev, "iio", (long)(yyvsp[0].i), 100, SPO_RN2);
+                     add_opvars(splev, "iio",
+                                VA_PASS3((long)(yyvsp[0].i), 100, SPO_RN2));
                      (yyval.i) = SPO_JG;
                   }
-#line 3094 "y.tab.c" /* yacc.c:1646  */
+#line 3119 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 135:
-#line 826 "lev_comp.y" /* yacc.c:1646  */
+#line 851 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = (yyvsp[-2].i);
                   }
-#line 3102 "y.tab.c" /* yacc.c:1646  */
+#line 3127 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 136:
-#line 830 "lev_comp.y" /* yacc.c:1646  */
+#line 855 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* boolean, explicit foo != 0 */
-                     add_opvars(splev, "i", 0);
+                     add_opvars(splev, "i", VA_PASS1(0));
                      (yyval.i) = SPO_JNE;
                   }
-#line 3112 "y.tab.c" /* yacc.c:1646  */
+#line 3137 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 137:
-#line 838 "lev_comp.y" /* yacc.c:1646  */
+#line 863 "lev_comp.y" /* yacc.c:1646  */
     {
                      is_inconstant_number = 0;
                  }
-#line 3120 "y.tab.c" /* yacc.c:1646  */
+#line 3145 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 138:
-#line 842 "lev_comp.y" /* yacc.c:1646  */
+#line 867 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct opvar *chkjmp;
                      if (in_switch_statement > 0)
@@ -3132,7 +3157,7 @@ yyreduce:
                      switch_default_case = NULL;
 
                      if (!is_inconstant_number)
-                         add_opvars(splev, "o", SPO_RN2);
+                         add_opvars(splev, "o", VA_PASS1(SPO_RN2));
                      is_inconstant_number = 0;
 
                      chkjmp = New(struct opvar);
@@ -3142,11 +3167,11 @@ yyreduce:
                      add_opcode(splev, SPO_JMP, NULL);
                      break_stmt_start();
                  }
-#line 3146 "y.tab.c" /* yacc.c:1646  */
+#line 3171 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 139:
-#line 864 "lev_comp.y" /* yacc.c:1646  */
+#line 889 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct opvar *endjump = New(struct opvar);
                      int i;
@@ -3156,17 +3181,22 @@ yyreduce:
                      add_opcode(splev, SPO_PUSH, endjump);
                      add_opcode(splev, SPO_JMP, NULL);
 
-                     set_opvar_int(switch_check_jump, splev->n_opcodes - switch_check_jump->vardata.l);
+                     set_opvar_int(switch_check_jump,
+                            splev->n_opcodes - switch_check_jump->vardata.l);
 
                      for (i = 0; i < n_switch_case_list; i++) {
-                         add_opvars(splev, "oio", SPO_COPY, switch_case_value[i], SPO_CMP);
-                         set_opvar_int(switch_case_list[i], switch_case_list[i]->vardata.l - splev->n_opcodes-1);
+                         add_opvars(splev, "oio",
+                                    VA_PASS3(SPO_COPY,
+                                             switch_case_value[i], SPO_CMP));
+                         set_opvar_int(switch_case_list[i],
+                        switch_case_list[i]->vardata.l - splev->n_opcodes-1);
                          add_opcode(splev, SPO_PUSH, switch_case_list[i]);
                          add_opcode(splev, SPO_JE, NULL);
                      }
 
                      if (switch_default_case) {
-                         set_opvar_int(switch_default_case, switch_default_case->vardata.l - splev->n_opcodes-1);
+                         set_opvar_int(switch_default_case,
+                        switch_default_case->vardata.l - splev->n_opcodes-1);
                          add_opcode(splev, SPO_PUSH, switch_default_case);
                          add_opcode(splev, SPO_JMP, NULL);
                      }
@@ -3180,11 +3210,11 @@ yyreduce:
 
 
                  }
-#line 3184 "y.tab.c" /* yacc.c:1646  */
+#line 3214 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 142:
-#line 904 "lev_comp.y" /* yacc.c:1646  */
+#line 934 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (n_switch_case_list < MAX_SWITCH_CASES) {
                          struct opvar *tmppush = New(struct opvar);
@@ -3193,18 +3223,18 @@ yyreduce:
                          switch_case_list[n_switch_case_list++] = tmppush;
                      } else lc_error("Too many cases in a switch.");
                  }
-#line 3197 "y.tab.c" /* yacc.c:1646  */
+#line 3227 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 143:
-#line 913 "lev_comp.y" /* yacc.c:1646  */
+#line 943 "lev_comp.y" /* yacc.c:1646  */
     {
                  }
-#line 3204 "y.tab.c" /* yacc.c:1646  */
+#line 3234 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 144:
-#line 916 "lev_comp.y" /* yacc.c:1646  */
+#line 946 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct opvar *tmppush = New(struct opvar);
 
@@ -3214,18 +3244,18 @@ yyreduce:
                      set_opvar_int(tmppush, splev->n_opcodes);
                      switch_default_case = tmppush;
                  }
-#line 3218 "y.tab.c" /* yacc.c:1646  */
+#line 3248 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 145:
-#line 926 "lev_comp.y" /* yacc.c:1646  */
+#line 956 "lev_comp.y" /* yacc.c:1646  */
     {
                  }
-#line 3225 "y.tab.c" /* yacc.c:1646  */
+#line 3255 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 146:
-#line 931 "lev_comp.y" /* yacc.c:1646  */
+#line 961 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (!allow_break_statements)
                          lc_error("Cannot use BREAK outside a statement block.");
@@ -3233,11 +3263,11 @@ yyreduce:
                          break_stmt_new(splev, splev->n_opcodes);
                      }
                  }
-#line 3237 "y.tab.c" /* yacc.c:1646  */
+#line 3267 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 149:
-#line 945 "lev_comp.y" /* yacc.c:1646  */
+#line 975 "lev_comp.y" /* yacc.c:1646  */
     {
                      char buf[256], buf2[256];
 
@@ -3249,17 +3279,23 @@ yyreduce:
                      /* first, define a variable for the for-loop end value */
                      snprintf(buf, 255, "%s end", (yyvsp[-4].map));
                      /* the value of which is already in stack (the 2nd math_expr) */
-                     add_opvars(splev, "iso", 0, buf, SPO_VAR_INIT);
+                     add_opvars(splev, "iso", VA_PASS3(0, buf, SPO_VAR_INIT));
 
-                     variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_INT);
+                     variable_definitions = add_vardef_type(variable_definitions,
+                                                            (yyvsp[-4].map), SPOVAR_INT);
                      /* define the for-loop variable. value is in stack (1st math_expr) */
-                     add_opvars(splev, "iso", 0, (yyvsp[-4].map), SPO_VAR_INIT);
+                     add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-4].map), SPO_VAR_INIT));
 
                      /* calculate value for the loop "step" variable */
                      snprintf(buf2, 255, "%s step", (yyvsp[-4].map));
-                     add_opvars(splev, "vvo", buf, (yyvsp[-4].map), SPO_MATH_SUB); /* end - start */
-                     add_opvars(splev, "o", SPO_MATH_SIGN); /* sign of that */
-                     add_opvars(splev, "iso", 0, buf2, SPO_VAR_INIT); /* save the sign into the step var */
+                     /* end - start */
+                     add_opvars(splev, "vvo",
+                                VA_PASS3(buf, (yyvsp[-4].map), SPO_MATH_SUB));
+                     /* sign of that */
+                     add_opvars(splev, "o", VA_PASS1(SPO_MATH_SIGN));
+                     /* save the sign into the step var */
+                     add_opvars(splev, "iso",
+                                VA_PASS3(0, buf2, SPO_VAR_INIT));
 
                      forloop_list[n_forloops].varname = strdup((yyvsp[-4].map));
                      forloop_list[n_forloops].jmp_point = splev->n_opcodes;
@@ -3267,42 +3303,50 @@ yyreduce:
                      n_forloops++;
                      Free((yyvsp[-4].map));
                  }
-#line 3271 "y.tab.c" /* yacc.c:1646  */
+#line 3307 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 150:
-#line 977 "lev_comp.y" /* yacc.c:1646  */
+#line 1013 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* nothing */
                      break_stmt_start();
                  }
-#line 3280 "y.tab.c" /* yacc.c:1646  */
+#line 3316 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 151:
-#line 982 "lev_comp.y" /* yacc.c:1646  */
+#line 1018 "lev_comp.y" /* yacc.c:1646  */
     {
                      char buf[256], buf2[256];
                      n_forloops--;
                      snprintf(buf, 255, "%s step", forloop_list[n_forloops].varname);
                      snprintf(buf2, 255, "%s end", forloop_list[n_forloops].varname);
                      /* compare for-loop var to end value */
-                     add_opvars(splev, "vvo", forloop_list[n_forloops].varname, buf2, SPO_CMP);
+                     add_opvars(splev, "vvo",
+                                VA_PASS3(forloop_list[n_forloops].varname,
+                                         buf2, SPO_CMP));
                      /* var + step */
-                     add_opvars(splev, "vvo", buf,
-                                forloop_list[n_forloops].varname, SPO_MATH_ADD);
+                     add_opvars(splev, "vvo",
+                               VA_PASS3(buf, forloop_list[n_forloops].varname,
+                                        SPO_MATH_ADD));
                      /* for-loop var = (for-loop var + step) */
-                     add_opvars(splev, "iso", 0, forloop_list[n_forloops].varname, SPO_VAR_INIT);
+                     add_opvars(splev, "iso",
+                                VA_PASS3(0, forloop_list[n_forloops].varname,
+                                         SPO_VAR_INIT));
                      /* jump back if compared values were not equal */
-                     add_opvars(splev, "io", forloop_list[n_forloops].jmp_point - splev->n_opcodes - 1, SPO_JNE);
+                     add_opvars(splev, "io",
+                                VA_PASS2(
+                   forloop_list[n_forloops].jmp_point - splev->n_opcodes - 1,
+                                         SPO_JNE));
                      Free(forloop_list[n_forloops].varname);
                      break_stmt_end(splev);
                  }
-#line 3302 "y.tab.c" /* yacc.c:1646  */
+#line 3346 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 152:
-#line 1002 "lev_comp.y" /* yacc.c:1646  */
+#line 1046 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct opvar *tmppush = New(struct opvar);
 
@@ -3313,18 +3357,18 @@ yyreduce:
                      set_opvar_int(tmppush, splev->n_opcodes);
                      if_list[n_if_list++] = tmppush;
 
-                     add_opvars(splev, "o", SPO_DEC);
+                     add_opvars(splev, "o", VA_PASS1(SPO_DEC));
                      break_stmt_start();
                  }
-#line 3320 "y.tab.c" /* yacc.c:1646  */
+#line 3364 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 153:
-#line 1016 "lev_comp.y" /* yacc.c:1646  */
+#line 1060 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct opvar *tmppush;
 
-                     add_opvars(splev, "oio", SPO_COPY, 0, SPO_CMP);
+                     add_opvars(splev, "oio", VA_PASS3(SPO_COPY, 0, SPO_CMP));
 
                      tmppush = (struct opvar *) if_list[--n_if_list];
                      set_opvar_int(tmppush, tmppush->vardata.l - splev->n_opcodes-1);
@@ -3333,11 +3377,11 @@ yyreduce:
                      add_opcode(splev, SPO_POP, NULL); /* get rid of the count value in stack */
                      break_stmt_end(splev);
                  }
-#line 3337 "y.tab.c" /* yacc.c:1646  */
+#line 3381 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 154:
-#line 1031 "lev_comp.y" /* yacc.c:1646  */
+#line 1075 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct opvar *tmppush2 = New(struct opvar);
 
@@ -3357,11 +3401,11 @@ yyreduce:
                      add_opcode(splev, reverse_jmp_opcode( (yyvsp[-1].i) ), NULL);
 
                  }
-#line 3361 "y.tab.c" /* yacc.c:1646  */
+#line 3405 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 155:
-#line 1051 "lev_comp.y" /* yacc.c:1646  */
+#line 1095 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (n_if_list > 0) {
                          struct opvar *tmppush;
@@ -3369,11 +3413,11 @@ yyreduce:
                          set_opvar_int(tmppush, splev->n_opcodes - tmppush->vardata.l);
                      } else lc_error("IF: Huh?!  No start address?");
                  }
-#line 3373 "y.tab.c" /* yacc.c:1646  */
+#line 3417 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 156:
-#line 1061 "lev_comp.y" /* yacc.c:1646  */
+#line 1105 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct opvar *tmppush2 = New(struct opvar);
 
@@ -3393,19 +3437,19 @@ yyreduce:
                      add_opcode(splev, reverse_jmp_opcode( (yyvsp[0].i) ), NULL);
 
                  }
-#line 3397 "y.tab.c" /* yacc.c:1646  */
+#line 3441 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 157:
-#line 1081 "lev_comp.y" /* yacc.c:1646  */
+#line 1125 "lev_comp.y" /* yacc.c:1646  */
     {
                     /* do nothing */
                  }
-#line 3405 "y.tab.c" /* yacc.c:1646  */
+#line 3449 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 158:
-#line 1087 "lev_comp.y" /* yacc.c:1646  */
+#line 1131 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (n_if_list > 0) {
                          struct opvar *tmppush;
@@ -3413,11 +3457,11 @@ yyreduce:
                          set_opvar_int(tmppush, splev->n_opcodes - tmppush->vardata.l);
                      } else lc_error("IF: Huh?!  No start address?");
                  }
-#line 3417 "y.tab.c" /* yacc.c:1646  */
+#line 3461 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 159:
-#line 1095 "lev_comp.y" /* yacc.c:1646  */
+#line 1139 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (n_if_list > 0) {
                          struct opvar *tmppush = New(struct opvar);
@@ -3434,11 +3478,11 @@ yyreduce:
                          if_list[n_if_list++] = tmppush;
                      } else lc_error("IF: Huh?!  No else-part address?");
                  }
-#line 3438 "y.tab.c" /* yacc.c:1646  */
+#line 3482 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 160:
-#line 1112 "lev_comp.y" /* yacc.c:1646  */
+#line 1156 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (n_if_list > 0) {
                          struct opvar *tmppush;
@@ -3446,146 +3490,155 @@ yyreduce:
                          set_opvar_int(tmppush, splev->n_opcodes - tmppush->vardata.l);
                      } else lc_error("IF: Huh?! No end address?");
                  }
-#line 3450 "y.tab.c" /* yacc.c:1646  */
+#line 3494 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 161:
-#line 1122 "lev_comp.y" /* yacc.c:1646  */
+#line 1166 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_MESSAGE);
+                     add_opvars(splev, "o", VA_PASS1(SPO_MESSAGE));
                  }
-#line 3458 "y.tab.c" /* yacc.c:1646  */
+#line 3502 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 162:
-#line 1128 "lev_comp.y" /* yacc.c:1646  */
+#line 1172 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "iiiiiio", -1,  0, -1, -1, -1, -1, SPO_CORRIDOR);
+                     add_opvars(splev, "iiiiiio",
+                             VA_PASS7(-1,  0, -1, -1, -1, -1, SPO_CORRIDOR));
                  }
-#line 3466 "y.tab.c" /* yacc.c:1646  */
+#line 3511 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 163:
-#line 1132 "lev_comp.y" /* yacc.c:1646  */
+#line 1177 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "iiiiiio", -1, (yyvsp[0].i), -1, -1, -1, -1, SPO_CORRIDOR);
+                     add_opvars(splev, "iiiiiio",
+                             VA_PASS7(-1, (yyvsp[0].i), -1, -1, -1, -1, SPO_CORRIDOR));
                  }
-#line 3474 "y.tab.c" /* yacc.c:1646  */
+#line 3520 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 164:
-#line 1136 "lev_comp.y" /* yacc.c:1646  */
+#line 1182 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "iiiiiio", -1, -1, -1, -1, -1, -1, SPO_CORRIDOR);
+                     add_opvars(splev, "iiiiiio",
+                             VA_PASS7(-1, -1, -1, -1, -1, -1, SPO_CORRIDOR));
                  }
-#line 3482 "y.tab.c" /* yacc.c:1646  */
+#line 3529 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 165:
-#line 1142 "lev_comp.y" /* yacc.c:1646  */
+#line 1189 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opvars(splev, "iiiiiio",
-                                (yyvsp[-2].corpos).room, (yyvsp[-2].corpos).door, (yyvsp[-2].corpos).wall,
-                                (yyvsp[0].corpos).room, (yyvsp[0].corpos).door, (yyvsp[0].corpos).wall,
-                                SPO_CORRIDOR);
+                                VA_PASS7((yyvsp[-2].corpos).room, (yyvsp[-2].corpos).door, (yyvsp[-2].corpos).wall,
+                                         (yyvsp[0].corpos).room, (yyvsp[0].corpos).door, (yyvsp[0].corpos).wall,
+                                         SPO_CORRIDOR));
                  }
-#line 3493 "y.tab.c" /* yacc.c:1646  */
+#line 3540 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 166:
-#line 1149 "lev_comp.y" /* yacc.c:1646  */
+#line 1196 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opvars(splev, "iiiiiio",
-                                (yyvsp[-2].corpos).room, (yyvsp[-2].corpos).door, (yyvsp[-2].corpos).wall,
-                                -1, -1, (long)(yyvsp[0].i),
-                                SPO_CORRIDOR);
+                                VA_PASS7((yyvsp[-2].corpos).room, (yyvsp[-2].corpos).door, (yyvsp[-2].corpos).wall,
+                                         -1, -1, (long)(yyvsp[0].i),
+                                         SPO_CORRIDOR));
                  }
-#line 3504 "y.tab.c" /* yacc.c:1646  */
+#line 3551 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 167:
-#line 1158 "lev_comp.y" /* yacc.c:1646  */
+#line 1205 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.corpos).room = (yyvsp[-5].i);
                        (yyval.corpos).wall = (yyvsp[-3].i);
                        (yyval.corpos).door = (yyvsp[-1].i);
                  }
-#line 3514 "y.tab.c" /* yacc.c:1646  */
+#line 3561 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 168:
-#line 1166 "lev_comp.y" /* yacc.c:1646  */
+#line 1213 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (((yyvsp[-2].i) < 100) && ((yyvsp[-3].i) == OROOM))
                          lc_error("Only typed rooms can have a chance.");
                      else {
-                         add_opvars(splev, "iii", (long)(yyvsp[-3].i), (long)(yyvsp[-2].i), (long)(yyvsp[0].i));
+                         add_opvars(splev, "iii",
+                                    VA_PASS3((long)(yyvsp[-3].i), (long)(yyvsp[-2].i), (long)(yyvsp[0].i)));
                      }
                   }
-#line 3526 "y.tab.c" /* yacc.c:1646  */
+#line 3574 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 169:
-#line 1176 "lev_comp.y" /* yacc.c:1646  */
+#line 1224 "lev_comp.y" /* yacc.c:1646  */
     {
-                     long flags = (yyvsp[0].i);
-                     if (flags == -1) flags = (1 << 0);
-                     add_opvars(splev, "iiiiiiio", flags, ERR, ERR,
-                                (yyvsp[-3].crd).x, (yyvsp[-3].crd).y, (yyvsp[-1].sze).width, (yyvsp[-1].sze).height, SPO_SUBROOM);
+                     long rflags = (yyvsp[0].i);
+
+                     if (rflags == -1) rflags = (1 << 0);
+                     add_opvars(splev, "iiiiiiio",
+                                VA_PASS8(rflags, ERR, ERR,
+                                         (yyvsp[-3].crd).x, (yyvsp[-3].crd).y, (yyvsp[-1].sze).width, (yyvsp[-1].sze).height,
+                                         SPO_SUBROOM));
                      break_stmt_start();
                  }
-#line 3538 "y.tab.c" /* yacc.c:1646  */
+#line 3589 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 170:
-#line 1184 "lev_comp.y" /* yacc.c:1646  */
+#line 1235 "lev_comp.y" /* yacc.c:1646  */
     {
                      break_stmt_end(splev);
                      add_opcode(splev, SPO_ENDROOM, NULL);
                  }
-#line 3547 "y.tab.c" /* yacc.c:1646  */
+#line 3598 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 171:
-#line 1191 "lev_comp.y" /* yacc.c:1646  */
+#line 1242 "lev_comp.y" /* yacc.c:1646  */
     {
-                     long flags = (yyvsp[-2].i);
-                     if (flags == -1) flags = (1 << 0);
-                     add_opvars(splev, "iiiiiiio", flags,
-                                (yyvsp[-3].crd).x, (yyvsp[-3].crd).y, (yyvsp[-5].crd).x, (yyvsp[-5].crd).y,
-                                (yyvsp[-1].sze).width, (yyvsp[-1].sze).height, SPO_ROOM);
+                     long rflags = (yyvsp[-2].i);
+
+                     if (rflags == -1) rflags = (1 << 0);
+                     add_opvars(splev, "iiiiiiio",
+                                VA_PASS8(rflags,
+                                         (yyvsp[-3].crd).x, (yyvsp[-3].crd).y, (yyvsp[-5].crd).x, (yyvsp[-5].crd).y,
+                                         (yyvsp[-1].sze).width, (yyvsp[-1].sze).height, SPO_ROOM));
                      break_stmt_start();
                  }
-#line 3560 "y.tab.c" /* yacc.c:1646  */
+#line 3613 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 172:
-#line 1200 "lev_comp.y" /* yacc.c:1646  */
+#line 1253 "lev_comp.y" /* yacc.c:1646  */
     {
                      break_stmt_end(splev);
                      add_opcode(splev, SPO_ENDROOM, NULL);
                  }
-#line 3569 "y.tab.c" /* yacc.c:1646  */
+#line 3622 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 173:
-#line 1207 "lev_comp.y" /* yacc.c:1646  */
+#line 1260 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.i) = 1;
                  }
-#line 3577 "y.tab.c" /* yacc.c:1646  */
+#line 3630 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 174:
-#line 1211 "lev_comp.y" /* yacc.c:1646  */
+#line 1264 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.i) = (yyvsp[0].i);
                  }
-#line 3585 "y.tab.c" /* yacc.c:1646  */
+#line 3638 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 175:
-#line 1217 "lev_comp.y" /* yacc.c:1646  */
+#line 1270 "lev_comp.y" /* yacc.c:1646  */
     {
                        if ( (yyvsp[-3].i) < 1 || (yyvsp[-3].i) > 5 ||
                            (yyvsp[-1].i) < 1 || (yyvsp[-1].i) > 5 ) {
@@ -3595,19 +3648,19 @@ yyreduce:
                            (yyval.crd).y = (yyvsp[-1].i);
                        }
                  }
-#line 3599 "y.tab.c" /* yacc.c:1646  */
+#line 3652 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 176:
-#line 1227 "lev_comp.y" /* yacc.c:1646  */
+#line 1280 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.crd).x = (yyval.crd).y = ERR;
                  }
-#line 3607 "y.tab.c" /* yacc.c:1646  */
+#line 3660 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 177:
-#line 1233 "lev_comp.y" /* yacc.c:1646  */
+#line 1286 "lev_comp.y" /* yacc.c:1646  */
     {
                        if ( (yyvsp[-3].i) < 0 || (yyvsp[-1].i) < 0) {
                            lc_error("Invalid subroom position (%li,%li)!", (yyvsp[-3].i), (yyvsp[-1].i));
@@ -3616,340 +3669,350 @@ yyreduce:
                            (yyval.crd).y = (yyvsp[-1].i);
                        }
                  }
-#line 3620 "y.tab.c" /* yacc.c:1646  */
+#line 3673 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 178:
-#line 1242 "lev_comp.y" /* yacc.c:1646  */
+#line 1295 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.crd).x = (yyval.crd).y = ERR;
                  }
-#line 3628 "y.tab.c" /* yacc.c:1646  */
+#line 3681 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 179:
-#line 1248 "lev_comp.y" /* yacc.c:1646  */
+#line 1301 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.crd).x = (yyvsp[-3].i);
                      (yyval.crd).y = (yyvsp[-1].i);
                  }
-#line 3637 "y.tab.c" /* yacc.c:1646  */
+#line 3690 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 180:
-#line 1253 "lev_comp.y" /* yacc.c:1646  */
+#line 1306 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.crd).x = (yyval.crd).y = ERR;
                  }
-#line 3645 "y.tab.c" /* yacc.c:1646  */
+#line 3698 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 181:
-#line 1259 "lev_comp.y" /* yacc.c:1646  */
+#line 1312 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.sze).width = (yyvsp[-3].i);
                        (yyval.sze).height = (yyvsp[-1].i);
                  }
-#line 3654 "y.tab.c" /* yacc.c:1646  */
+#line 3707 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 182:
-#line 1264 "lev_comp.y" /* yacc.c:1646  */
+#line 1317 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.sze).height = (yyval.sze).width = ERR;
                  }
-#line 3662 "y.tab.c" /* yacc.c:1646  */
+#line 3715 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 183:
-#line 1270 "lev_comp.y" /* yacc.c:1646  */
+#line 1323 "lev_comp.y" /* yacc.c:1646  */
     {
                        /* ERR means random here */
                        if ((yyvsp[-2].i) == ERR && (yyvsp[0].i) != ERR) {
                            lc_error("If the door wall is random, so must be its pos!");
                        } else {
-                           add_opvars(splev, "iiiio", (long)(yyvsp[0].i), (long)(yyvsp[-4].i), (long)(yyvsp[-6].i), (long)(yyvsp[-2].i), SPO_ROOM_DOOR);
+                           add_opvars(splev, "iiiio",
+                                      VA_PASS5((long)(yyvsp[0].i), (long)(yyvsp[-4].i), (long)(yyvsp[-6].i),
+                                               (long)(yyvsp[-2].i), SPO_ROOM_DOOR));
                        }
                  }
-#line 3675 "y.tab.c" /* yacc.c:1646  */
+#line 3730 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 184:
-#line 1279 "lev_comp.y" /* yacc.c:1646  */
+#line 1334 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", (long)(yyvsp[-2].i), SPO_DOOR);
+                     add_opvars(splev, "io", VA_PASS2((long)(yyvsp[-2].i), SPO_DOOR));
                  }
-#line 3683 "y.tab.c" /* yacc.c:1646  */
+#line 3738 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 189:
-#line 1293 "lev_comp.y" /* yacc.c:1646  */
+#line 1348 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = (yyvsp[0].i);
                  }
-#line 3691 "y.tab.c" /* yacc.c:1646  */
+#line 3746 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 190:
-#line 1297 "lev_comp.y" /* yacc.c:1646  */
+#line 1352 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = ((yyvsp[-2].i) | (yyvsp[0].i));
                  }
-#line 3699 "y.tab.c" /* yacc.c:1646  */
+#line 3754 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 193:
-#line 1307 "lev_comp.y" /* yacc.c:1646  */
+#line 1362 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ciisiio", 0, 0, 1, (char *)0, 0, 0, SPO_MAP);
+                     add_opvars(splev, "ciisiio",
+                                VA_PASS7(0, 0, 1, (char *)0, 0, 0, SPO_MAP));
                      max_x_map = COLNO-1;
                      max_y_map = ROWNO;
                  }
-#line 3709 "y.tab.c" /* yacc.c:1646  */
+#line 3765 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 194:
-#line 1313 "lev_comp.y" /* yacc.c:1646  */
+#line 1369 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "cii", SP_COORD_PACK(((yyvsp[-4].i)),((yyvsp[-2].i))), 1, (long)(yyvsp[-1].i));
+                     add_opvars(splev, "cii",
+                                VA_PASS3(SP_COORD_PACK(((yyvsp[-4].i)),((yyvsp[-2].i))),
+                                         1, (long)(yyvsp[-1].i)));
                      scan_map((yyvsp[0].map), splev);
                      Free((yyvsp[0].map));
                  }
-#line 3719 "y.tab.c" /* yacc.c:1646  */
+#line 3777 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 195:
-#line 1319 "lev_comp.y" /* yacc.c:1646  */
+#line 1377 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 2, (long)(yyvsp[-1].i));
+                     add_opvars(splev, "ii", VA_PASS2(2, (long)(yyvsp[-1].i)));
                      scan_map((yyvsp[0].map), splev);
                      Free((yyvsp[0].map));
                  }
-#line 3729 "y.tab.c" /* yacc.c:1646  */
+#line 3787 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 200:
-#line 1335 "lev_comp.y" /* yacc.c:1646  */
+#line 1393 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", 0, SPO_MONSTER);
+                     add_opvars(splev, "io", VA_PASS2(0, SPO_MONSTER));
                  }
-#line 3737 "y.tab.c" /* yacc.c:1646  */
+#line 3795 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 201:
-#line 1339 "lev_comp.y" /* yacc.c:1646  */
+#line 1397 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", 1, SPO_MONSTER);
+                     add_opvars(splev, "io", VA_PASS2(1, SPO_MONSTER));
                      in_container_obj++;
                      break_stmt_start();
                  }
-#line 3747 "y.tab.c" /* yacc.c:1646  */
+#line 3805 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 202:
-#line 1345 "lev_comp.y" /* yacc.c:1646  */
+#line 1403 "lev_comp.y" /* yacc.c:1646  */
     {
                     break_stmt_end(splev);
                     in_container_obj--;
-                    add_opvars(splev, "o", SPO_END_MONINVENT);
+                    add_opvars(splev, "o", VA_PASS1(SPO_END_MONINVENT));
                 }
-#line 3757 "y.tab.c" /* yacc.c:1646  */
+#line 3815 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 203:
-#line 1353 "lev_comp.y" /* yacc.c:1646  */
+#line 1411 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* nothing */
                  }
-#line 3765 "y.tab.c" /* yacc.c:1646  */
+#line 3823 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 204:
-#line 1359 "lev_comp.y" /* yacc.c:1646  */
+#line 1417 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct opvar *stopit = New(struct opvar);
                      set_opvar_int(stopit, SP_M_V_END);
                      add_opcode(splev, SPO_PUSH, stopit);
                      (yyval.i) = 0x0000;
                  }
-#line 3776 "y.tab.c" /* yacc.c:1646  */
+#line 3834 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 205:
-#line 1366 "lev_comp.y" /* yacc.c:1646  */
+#line 1424 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (( (yyvsp[-2].i) & (yyvsp[0].i) ))
                          lc_error("MONSTER extra info defined twice.");
                      (yyval.i) = ( (yyvsp[-2].i) | (yyvsp[0].i) );
                  }
-#line 3786 "y.tab.c" /* yacc.c:1646  */
+#line 3844 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 206:
-#line 1374 "lev_comp.y" /* yacc.c:1646  */
+#line 1432 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_M_V_NAME);
+                     add_opvars(splev, "i", VA_PASS1(SP_M_V_NAME));
                      (yyval.i) = 0x0001;
                  }
-#line 3795 "y.tab.c" /* yacc.c:1646  */
+#line 3853 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 207:
-#line 1379 "lev_comp.y" /* yacc.c:1646  */
+#line 1437 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", (long)(yyvsp[0].i), SP_M_V_PEACEFUL);
+                     add_opvars(splev, "ii",
+                                VA_PASS2((long)(yyvsp[0].i), SP_M_V_PEACEFUL));
                      (yyval.i) = 0x0002;
                  }
-#line 3804 "y.tab.c" /* yacc.c:1646  */
+#line 3863 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 208:
-#line 1384 "lev_comp.y" /* yacc.c:1646  */
+#line 1443 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", (long)(yyvsp[0].i), SP_M_V_ASLEEP);
+                     add_opvars(splev, "ii",
+                                VA_PASS2((long)(yyvsp[0].i), SP_M_V_ASLEEP));
                      (yyval.i) = 0x0004;
                  }
-#line 3813 "y.tab.c" /* yacc.c:1646  */
+#line 3873 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 209:
-#line 1389 "lev_comp.y" /* yacc.c:1646  */
+#line 1449 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", (long)(yyvsp[0].i), SP_M_V_ALIGN);
+                     add_opvars(splev, "ii",
+                                VA_PASS2((long)(yyvsp[0].i), SP_M_V_ALIGN));
                      (yyval.i) = 0x0008;
                  }
-#line 3822 "y.tab.c" /* yacc.c:1646  */
+#line 3883 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 210:
-#line 1394 "lev_comp.y" /* yacc.c:1646  */
+#line 1455 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", (long)(yyvsp[-1].i), SP_M_V_APPEAR);
+                     add_opvars(splev, "ii",
+                                VA_PASS2((long)(yyvsp[-1].i), SP_M_V_APPEAR));
                      (yyval.i) = 0x0010;
                  }
-#line 3831 "y.tab.c" /* yacc.c:1646  */
+#line 3893 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 211:
-#line 1399 "lev_comp.y" /* yacc.c:1646  */
+#line 1461 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_M_V_FEMALE);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_FEMALE));
                      (yyval.i) = 0x0020;
                  }
-#line 3840 "y.tab.c" /* yacc.c:1646  */
+#line 3902 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 212:
-#line 1404 "lev_comp.y" /* yacc.c:1646  */
+#line 1466 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_M_V_INVIS);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_INVIS));
                      (yyval.i) = 0x0040;
                  }
-#line 3849 "y.tab.c" /* yacc.c:1646  */
+#line 3911 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 213:
-#line 1409 "lev_comp.y" /* yacc.c:1646  */
+#line 1471 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_M_V_CANCELLED);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_CANCELLED));
                      (yyval.i) = 0x0080;
                  }
-#line 3858 "y.tab.c" /* yacc.c:1646  */
+#line 3920 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 214:
-#line 1414 "lev_comp.y" /* yacc.c:1646  */
+#line 1476 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_M_V_REVIVED);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_REVIVED));
                      (yyval.i) = 0x0100;
                  }
-#line 3867 "y.tab.c" /* yacc.c:1646  */
+#line 3929 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 215:
-#line 1419 "lev_comp.y" /* yacc.c:1646  */
+#line 1481 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_M_V_AVENGE);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_AVENGE));
                      (yyval.i) = 0x0200;
                  }
-#line 3876 "y.tab.c" /* yacc.c:1646  */
+#line 3938 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 216:
-#line 1424 "lev_comp.y" /* yacc.c:1646  */
+#line 1486 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_M_V_FLEEING);
+                     add_opvars(splev, "i", VA_PASS1(SP_M_V_FLEEING));
                      (yyval.i) = 0x0400;
                  }
-#line 3885 "y.tab.c" /* yacc.c:1646  */
+#line 3947 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 217:
-#line 1429 "lev_comp.y" /* yacc.c:1646  */
+#line 1491 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_M_V_BLINDED);
+                     add_opvars(splev, "i", VA_PASS1(SP_M_V_BLINDED));
                      (yyval.i) = 0x0800;
                  }
-#line 3894 "y.tab.c" /* yacc.c:1646  */
+#line 3956 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 218:
-#line 1434 "lev_comp.y" /* yacc.c:1646  */
+#line 1496 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_M_V_PARALYZED);
+                     add_opvars(splev, "i", VA_PASS1(SP_M_V_PARALYZED));
                      (yyval.i) = 0x1000;
                  }
-#line 3903 "y.tab.c" /* yacc.c:1646  */
+#line 3965 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 219:
-#line 1439 "lev_comp.y" /* yacc.c:1646  */
+#line 1501 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_M_V_STUNNED);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_STUNNED));
                      (yyval.i) = 0x2000;
                  }
-#line 3912 "y.tab.c" /* yacc.c:1646  */
+#line 3974 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 220:
-#line 1444 "lev_comp.y" /* yacc.c:1646  */
+#line 1506 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_M_V_CONFUSED);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_CONFUSED));
                      (yyval.i) = 0x4000;
                  }
-#line 3921 "y.tab.c" /* yacc.c:1646  */
+#line 3983 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 221:
-#line 1449 "lev_comp.y" /* yacc.c:1646  */
+#line 1511 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", (long)(yyvsp[0].i), SP_M_V_SEENTRAPS);
+                     add_opvars(splev, "ii",
+                                VA_PASS2((long)(yyvsp[0].i), SP_M_V_SEENTRAPS));
                      (yyval.i) = 0x8000;
                  }
-#line 3930 "y.tab.c" /* yacc.c:1646  */
+#line 3993 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 222:
-#line 1456 "lev_comp.y" /* yacc.c:1646  */
+#line 1519 "lev_comp.y" /* yacc.c:1646  */
     {
                      int token = get_trap_type((yyvsp[0].map));
                      if (token == ERR || token == 0)
                          lc_error("Unknown trap type '%s'!", (yyvsp[0].map));
                      (yyval.i) = (1L << (token - 1));
                  }
-#line 3941 "y.tab.c" /* yacc.c:1646  */
+#line 4004 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 223:
-#line 1463 "lev_comp.y" /* yacc.c:1646  */
+#line 1526 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = (long) ~0;
                  }
-#line 3949 "y.tab.c" /* yacc.c:1646  */
+#line 4012 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 224:
-#line 1467 "lev_comp.y" /* yacc.c:1646  */
+#line 1530 "lev_comp.y" /* yacc.c:1646  */
     {
                      int token = get_trap_type((yyvsp[-2].map));
                      if (token == ERR || token == 0)
@@ -3960,231 +4023,233 @@ yyreduce:
 
                      (yyval.i) = ((1L << (token - 1)) | (yyvsp[0].i));
                  }
-#line 3964 "y.tab.c" /* yacc.c:1646  */
+#line 4027 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 225:
-#line 1480 "lev_comp.y" /* yacc.c:1646  */
+#line 1543 "lev_comp.y" /* yacc.c:1646  */
     {
                      long cnt = 0;
                      if (in_container_obj) cnt |= SP_OBJ_CONTENT;
-                     add_opvars(splev, "io", cnt, SPO_OBJECT);
+                     add_opvars(splev, "io", VA_PASS2(cnt, SPO_OBJECT));
                  }
-#line 3974 "y.tab.c" /* yacc.c:1646  */
+#line 4037 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 226:
-#line 1486 "lev_comp.y" /* yacc.c:1646  */
+#line 1549 "lev_comp.y" /* yacc.c:1646  */
     {
                      long cnt = SP_OBJ_CONTAINER;
                      if (in_container_obj) cnt |= SP_OBJ_CONTENT;
-                     add_opvars(splev, "io", cnt, SPO_OBJECT);
+                     add_opvars(splev, "io", VA_PASS2(cnt, SPO_OBJECT));
                      in_container_obj++;
                      break_stmt_start();
                  }
-#line 3986 "y.tab.c" /* yacc.c:1646  */
+#line 4049 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 227:
-#line 1494 "lev_comp.y" /* yacc.c:1646  */
+#line 1557 "lev_comp.y" /* yacc.c:1646  */
     {
                     break_stmt_end(splev);
                     in_container_obj--;
                     add_opcode(splev, SPO_POP_CONTAINER, NULL);
                 }
-#line 3996 "y.tab.c" /* yacc.c:1646  */
+#line 4059 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 228:
-#line 1502 "lev_comp.y" /* yacc.c:1646  */
+#line 1565 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (( (yyvsp[0].i) & 0x4000) && in_container_obj) lc_error("Object cannot have a coord when contained.");
                      else if (!( (yyvsp[0].i) & 0x4000) && !in_container_obj) lc_error("Object needs a coord when not contained.");
                  }
-#line 4005 "y.tab.c" /* yacc.c:1646  */
+#line 4068 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 229:
-#line 1509 "lev_comp.y" /* yacc.c:1646  */
+#line 1572 "lev_comp.y" /* yacc.c:1646  */
     {
                      struct opvar *stopit = New(struct opvar);
                      set_opvar_int(stopit, SP_O_V_END);
                      add_opcode(splev, SPO_PUSH, stopit);
                      (yyval.i) = 0x00;
                  }
-#line 4016 "y.tab.c" /* yacc.c:1646  */
+#line 4079 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 230:
-#line 1516 "lev_comp.y" /* yacc.c:1646  */
+#line 1579 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (( (yyvsp[-2].i) & (yyvsp[0].i) ))
                          lc_error("OBJECT extra info '%s' defined twice.", curr_token);
                      (yyval.i) = ( (yyvsp[-2].i) | (yyvsp[0].i) );
                  }
-#line 4026 "y.tab.c" /* yacc.c:1646  */
+#line 4089 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 231:
-#line 1524 "lev_comp.y" /* yacc.c:1646  */
+#line 1587 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", (long)(yyvsp[0].i), SP_O_V_CURSE);
+                     add_opvars(splev, "ii",
+                                VA_PASS2((long)(yyvsp[0].i), SP_O_V_CURSE));
                      (yyval.i) = 0x0001;
                  }
-#line 4035 "y.tab.c" /* yacc.c:1646  */
+#line 4099 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 232:
-#line 1529 "lev_comp.y" /* yacc.c:1646  */
+#line 1593 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_O_V_CORPSENM);
+                     add_opvars(splev, "i", VA_PASS1(SP_O_V_CORPSENM));
                      (yyval.i) = 0x0002;
                  }
-#line 4044 "y.tab.c" /* yacc.c:1646  */
+#line 4108 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 233:
-#line 1534 "lev_comp.y" /* yacc.c:1646  */
+#line 1598 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_O_V_SPE);
+                     add_opvars(splev, "i", VA_PASS1(SP_O_V_SPE));
                      (yyval.i) = 0x0004;
                  }
-#line 4053 "y.tab.c" /* yacc.c:1646  */
+#line 4117 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 234:
-#line 1539 "lev_comp.y" /* yacc.c:1646  */
+#line 1603 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_O_V_NAME);
+                     add_opvars(splev, "i", VA_PASS1(SP_O_V_NAME));
                      (yyval.i) = 0x0008;
                  }
-#line 4062 "y.tab.c" /* yacc.c:1646  */
+#line 4126 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 235:
-#line 1544 "lev_comp.y" /* yacc.c:1646  */
+#line 1608 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_O_V_QUAN);
+                     add_opvars(splev, "i", VA_PASS1(SP_O_V_QUAN));
                      (yyval.i) = 0x0010;
                  }
-#line 4071 "y.tab.c" /* yacc.c:1646  */
+#line 4135 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 236:
-#line 1549 "lev_comp.y" /* yacc.c:1646  */
+#line 1613 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_O_V_BURIED);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_BURIED));
                      (yyval.i) = 0x0020;
                  }
-#line 4080 "y.tab.c" /* yacc.c:1646  */
+#line 4144 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 237:
-#line 1554 "lev_comp.y" /* yacc.c:1646  */
+#line 1618 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", (long)(yyvsp[0].i), SP_O_V_LIT);
+                     add_opvars(splev, "ii", VA_PASS2((long)(yyvsp[0].i), SP_O_V_LIT));
                      (yyval.i) = 0x0040;
                  }
-#line 4089 "y.tab.c" /* yacc.c:1646  */
+#line 4153 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 238:
-#line 1559 "lev_comp.y" /* yacc.c:1646  */
+#line 1623 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_O_V_ERODED);
+                     add_opvars(splev, "i", VA_PASS1(SP_O_V_ERODED));
                      (yyval.i) = 0x0080;
                  }
-#line 4098 "y.tab.c" /* yacc.c:1646  */
+#line 4162 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 239:
-#line 1564 "lev_comp.y" /* yacc.c:1646  */
+#line 1628 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", -1, SP_O_V_ERODED);
+                     add_opvars(splev, "ii", VA_PASS2(-1, SP_O_V_ERODED));
                      (yyval.i) = 0x0080;
                  }
-#line 4107 "y.tab.c" /* yacc.c:1646  */
+#line 4171 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 240:
-#line 1569 "lev_comp.y" /* yacc.c:1646  */
+#line 1633 "lev_comp.y" /* yacc.c:1646  */
     {
                      if ((yyvsp[0].i) == D_LOCKED) {
-                         add_opvars(splev, "ii", 1, SP_O_V_LOCKED);
+                         add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_LOCKED));
                          (yyval.i) = 0x0100;
                      } else if ((yyvsp[0].i) == D_BROKEN) {
-                         add_opvars(splev, "ii", 1, SP_O_V_BROKEN);
+                         add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_BROKEN));
                          (yyval.i) = 0x0200;
                      } else
-                         lc_error("OBJECT state can only be locked or broken.");
+                         lc_error("DOOR state can only be locked or broken.");
                  }
-#line 4122 "y.tab.c" /* yacc.c:1646  */
+#line 4186 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 241:
-#line 1580 "lev_comp.y" /* yacc.c:1646  */
+#line 1644 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_O_V_TRAPPED);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_TRAPPED));
                      (yyval.i) = 0x0400;
                  }
-#line 4131 "y.tab.c" /* yacc.c:1646  */
+#line 4195 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 242:
-#line 1585 "lev_comp.y" /* yacc.c:1646  */
+#line 1649 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_O_V_RECHARGED);
+                     add_opvars(splev, "i", VA_PASS1(SP_O_V_RECHARGED));
                      (yyval.i) = 0x0800;
                  }
-#line 4140 "y.tab.c" /* yacc.c:1646  */
+#line 4204 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 243:
-#line 1590 "lev_comp.y" /* yacc.c:1646  */
+#line 1654 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_O_V_INVIS);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_INVIS));
                      (yyval.i) = 0x1000;
                  }
-#line 4149 "y.tab.c" /* yacc.c:1646  */
+#line 4213 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 244:
-#line 1595 "lev_comp.y" /* yacc.c:1646  */
+#line 1659 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "ii", 1, SP_O_V_GREASED);
+                     add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_GREASED));
                      (yyval.i) = 0x2000;
                  }
-#line 4158 "y.tab.c" /* yacc.c:1646  */
+#line 4222 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 245:
-#line 1600 "lev_comp.y" /* yacc.c:1646  */
+#line 1664 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", SP_O_V_COORD);
+                     add_opvars(splev, "i", VA_PASS1(SP_O_V_COORD));
                      (yyval.i) = 0x4000;
                  }
-#line 4167 "y.tab.c" /* yacc.c:1646  */
+#line 4231 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 246:
-#line 1607 "lev_comp.y" /* yacc.c:1646  */
+#line 1671 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", (long)(yyvsp[-2].i), SPO_TRAP);
+                     add_opvars(splev, "io", VA_PASS2((long)(yyvsp[-2].i), SPO_TRAP));
                  }
-#line 4175 "y.tab.c" /* yacc.c:1646  */
+#line 4239 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 247:
-#line 1613 "lev_comp.y" /* yacc.c:1646  */
+#line 1677 "lev_comp.y" /* yacc.c:1646  */
     {
-                      long d, state = 0;
+                      long dir, state = 0;
+
                       /* convert dir from a DIRECTION to a DB_DIR */
-                      d = (yyvsp[-2].i);
-                      switch(d) {
-                      case W_NORTH: d = DB_NORTH; break;
-                      case W_SOUTH: d = DB_SOUTH; break;
-                      case W_EAST:  d = DB_EAST;  break;
-                      case W_WEST:  d = DB_WEST;  break;
+                      dir = (yyvsp[-2].i);
+                      switch (dir) {
+                      case W_NORTH: dir = DB_NORTH; break;
+                      case W_SOUTH: dir = DB_SOUTH; break;
+                      case W_EAST:  dir = DB_EAST;  break;
+                      case W_WEST:  dir = DB_WEST;  break;
                       default:
                           lc_error("Invalid drawbridge direction.");
                           break;
@@ -4198,222 +4263,231 @@ yyreduce:
                           state = -1;
                       else
                           lc_error("A drawbridge can only be open, closed or random!");
-                      add_opvars(splev, "iio", state, d, SPO_DRAWBRIDGE);
+                      add_opvars(splev, "iio",
+                                 VA_PASS3(state, dir, SPO_DRAWBRIDGE));
                   }
-#line 4204 "y.tab.c" /* yacc.c:1646  */
+#line 4270 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 248:
-#line 1640 "lev_comp.y" /* yacc.c:1646  */
+#line 1706 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opvars(splev, "iiio",
-                                (long)(yyvsp[0].i), 1, 0, SPO_MAZEWALK);
+                                VA_PASS4((long)(yyvsp[0].i), 1, 0, SPO_MAZEWALK));
                  }
-#line 4213 "y.tab.c" /* yacc.c:1646  */
+#line 4279 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 249:
-#line 1645 "lev_comp.y" /* yacc.c:1646  */
+#line 1711 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opvars(splev, "iiio",
-                                (long)(yyvsp[-3].i), (long)(yyvsp[-1].i), (long)(yyvsp[0].i), SPO_MAZEWALK);
+                                VA_PASS4((long)(yyvsp[-3].i), (long)(yyvsp[-1].i),
+                                         (long)(yyvsp[0].i), SPO_MAZEWALK));
                  }
-#line 4222 "y.tab.c" /* yacc.c:1646  */
+#line 4289 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 250:
-#line 1652 "lev_comp.y" /* yacc.c:1646  */
+#line 1719 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "rio", SP_REGION_PACK(-1,-1,-1,-1), 0, SPO_WALLIFY);
+                     add_opvars(splev, "rio",
+                                VA_PASS3(SP_REGION_PACK(-1,-1,-1,-1),
+                                         0, SPO_WALLIFY));
                  }
-#line 4230 "y.tab.c" /* yacc.c:1646  */
+#line 4299 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 251:
-#line 1656 "lev_comp.y" /* yacc.c:1646  */
+#line 1725 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", 1, SPO_WALLIFY);
+                     add_opvars(splev, "io", VA_PASS2(1, SPO_WALLIFY));
                  }
-#line 4238 "y.tab.c" /* yacc.c:1646  */
+#line 4307 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 252:
-#line 1662 "lev_comp.y" /* yacc.c:1646  */
+#line 1731 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", (long)(yyvsp[0].i), SPO_LADDER);
+                     add_opvars(splev, "io",
+                                VA_PASS2((long)(yyvsp[0].i), SPO_LADDER));
                  }
-#line 4246 "y.tab.c" /* yacc.c:1646  */
+#line 4316 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 253:
-#line 1668 "lev_comp.y" /* yacc.c:1646  */
+#line 1738 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", (long)(yyvsp[0].i), SPO_STAIR);
+                     add_opvars(splev, "io",
+                                VA_PASS2((long)(yyvsp[0].i), SPO_STAIR));
                  }
-#line 4254 "y.tab.c" /* yacc.c:1646  */
+#line 4325 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 254:
-#line 1674 "lev_comp.y" /* yacc.c:1646  */
+#line 1745 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opvars(splev, "iiiii iiiii iiso",
-                                (yyvsp[-4].lregn).x1, (yyvsp[-4].lregn).y1, (yyvsp[-4].lregn).x2, (yyvsp[-4].lregn).y2, (yyvsp[-4].lregn).area,
-                                (yyvsp[-2].lregn).x1, (yyvsp[-2].lregn).y1, (yyvsp[-2].lregn).x2, (yyvsp[-2].lregn).y2, (yyvsp[-2].lregn).area,
-                                (long)(((yyvsp[0].i)) ? LR_UPSTAIR : LR_DOWNSTAIR),
-                                0, (char *)0, SPO_LEVREGION);
+                                VA_PASS14((yyvsp[-4].lregn).x1, (yyvsp[-4].lregn).y1, (yyvsp[-4].lregn).x2, (yyvsp[-4].lregn).y2, (yyvsp[-4].lregn).area,
+                                          (yyvsp[-2].lregn).x1, (yyvsp[-2].lregn).y1, (yyvsp[-2].lregn).x2, (yyvsp[-2].lregn).y2, (yyvsp[-2].lregn).area,
+                                     (long)(((yyvsp[0].i)) ? LR_UPSTAIR : LR_DOWNSTAIR),
+                                          0, (char *)0, SPO_LEVREGION));
                  }
-#line 4266 "y.tab.c" /* yacc.c:1646  */
+#line 4337 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 255:
-#line 1684 "lev_comp.y" /* yacc.c:1646  */
+#line 1755 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opvars(splev, "iiiii iiiii iiso",
-                                (yyvsp[-4].lregn).x1, (yyvsp[-4].lregn).y1, (yyvsp[-4].lregn).x2, (yyvsp[-4].lregn).y2, (yyvsp[-4].lregn).area,
-                                (yyvsp[-2].lregn).x1, (yyvsp[-2].lregn).y1, (yyvsp[-2].lregn).x2, (yyvsp[-2].lregn).y2, (yyvsp[-2].lregn).area,
-                                LR_PORTAL, 0, (yyvsp[0].map), SPO_LEVREGION);
+                                VA_PASS14((yyvsp[-4].lregn).x1, (yyvsp[-4].lregn).y1, (yyvsp[-4].lregn).x2, (yyvsp[-4].lregn).y2, (yyvsp[-4].lregn).area,
+                                          (yyvsp[-2].lregn).x1, (yyvsp[-2].lregn).y1, (yyvsp[-2].lregn).x2, (yyvsp[-2].lregn).y2, (yyvsp[-2].lregn).area,
+                                          LR_PORTAL, 0, (yyvsp[0].map), SPO_LEVREGION));
                      Free((yyvsp[0].map));
                  }
-#line 4278 "y.tab.c" /* yacc.c:1646  */
+#line 4349 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 256:
-#line 1694 "lev_comp.y" /* yacc.c:1646  */
+#line 1765 "lev_comp.y" /* yacc.c:1646  */
     {
-                     long rtype = 0;
+                     long rtyp = 0;
                      switch((yyvsp[0].i)) {
-                     case -1: rtype = LR_TELE; break;
-                     case  0: rtype = LR_DOWNTELE; break;
-                     case  1: rtype = LR_UPTELE; break;
+                     case -1: rtyp = LR_TELE; break;
+                     case  0: rtyp = LR_DOWNTELE; break;
+                     case  1: rtyp = LR_UPTELE; break;
                      }
                      add_opvars(splev, "iiiii iiiii iiso",
-                                (yyvsp[-3].lregn).x1, (yyvsp[-3].lregn).y1, (yyvsp[-3].lregn).x2, (yyvsp[-3].lregn).y2, (yyvsp[-3].lregn).area,
-                                (yyvsp[-1].lregn).x1, (yyvsp[-1].lregn).y1, (yyvsp[-1].lregn).x2, (yyvsp[-1].lregn).y2, (yyvsp[-1].lregn).area,
-                                rtype, 0, (char *)0, SPO_LEVREGION);
+                                VA_PASS14((yyvsp[-3].lregn).x1, (yyvsp[-3].lregn).y1, (yyvsp[-3].lregn).x2, (yyvsp[-3].lregn).y2, (yyvsp[-3].lregn).area,
+                                          (yyvsp[-1].lregn).x1, (yyvsp[-1].lregn).y1, (yyvsp[-1].lregn).x2, (yyvsp[-1].lregn).y2, (yyvsp[-1].lregn).area,
+                                          rtyp, 0, (char *)0, SPO_LEVREGION));
                  }
-#line 4295 "y.tab.c" /* yacc.c:1646  */
+#line 4366 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 257:
-#line 1709 "lev_comp.y" /* yacc.c:1646  */
+#line 1780 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opvars(splev, "iiiii iiiii iiso",
-                                (yyvsp[-2].lregn).x1, (yyvsp[-2].lregn).y1, (yyvsp[-2].lregn).x2, (yyvsp[-2].lregn).y2, (yyvsp[-2].lregn).area,
-                                (yyvsp[0].lregn).x1, (yyvsp[0].lregn).y1, (yyvsp[0].lregn).x2, (yyvsp[0].lregn).y2, (yyvsp[0].lregn).area,
-                                (long)LR_BRANCH, 0, (char *)0, SPO_LEVREGION);
+                                VA_PASS14((yyvsp[-2].lregn).x1, (yyvsp[-2].lregn).y1, (yyvsp[-2].lregn).x2, (yyvsp[-2].lregn).y2, (yyvsp[-2].lregn).area,
+                                          (yyvsp[0].lregn).x1, (yyvsp[0].lregn).y1, (yyvsp[0].lregn).x2, (yyvsp[0].lregn).y2, (yyvsp[0].lregn).area,
+                                          (long)LR_BRANCH, 0,
+                                          (char *)0, SPO_LEVREGION));
                  }
-#line 4306 "y.tab.c" /* yacc.c:1646  */
+#line 4378 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 258:
-#line 1718 "lev_comp.y" /* yacc.c:1646  */
+#line 1790 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.i) = -1;
                  }
-#line 4314 "y.tab.c" /* yacc.c:1646  */
+#line 4386 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 259:
-#line 1722 "lev_comp.y" /* yacc.c:1646  */
+#line 1794 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.i) = (yyvsp[0].i);
                  }
-#line 4322 "y.tab.c" /* yacc.c:1646  */
+#line 4394 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 260:
-#line 1728 "lev_comp.y" /* yacc.c:1646  */
+#line 1800 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_FOUNTAIN);
+                     add_opvars(splev, "o", VA_PASS1(SPO_FOUNTAIN));
                  }
-#line 4330 "y.tab.c" /* yacc.c:1646  */
+#line 4402 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 261:
-#line 1734 "lev_comp.y" /* yacc.c:1646  */
+#line 1806 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_SINK);
+                     add_opvars(splev, "o", VA_PASS1(SPO_SINK));
                  }
-#line 4338 "y.tab.c" /* yacc.c:1646  */
+#line 4410 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 262:
-#line 1740 "lev_comp.y" /* yacc.c:1646  */
+#line 1812 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_POOL);
+                     add_opvars(splev, "o", VA_PASS1(SPO_POOL));
                  }
-#line 4346 "y.tab.c" /* yacc.c:1646  */
+#line 4418 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 263:
-#line 1746 "lev_comp.y" /* yacc.c:1646  */
+#line 1818 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.terr).lit = -2;
                      (yyval.terr).ter = what_map_char((char) (yyvsp[0].i));
                  }
-#line 4355 "y.tab.c" /* yacc.c:1646  */
+#line 4427 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 264:
-#line 1751 "lev_comp.y" /* yacc.c:1646  */
+#line 1823 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.terr).lit = (yyvsp[-1].i);
                      (yyval.terr).ter = what_map_char((char) (yyvsp[-3].i));
                  }
-#line 4364 "y.tab.c" /* yacc.c:1646  */
+#line 4436 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 265:
-#line 1758 "lev_comp.y" /* yacc.c:1646  */
+#line 1830 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", (yyvsp[0].i), SPO_REPLACETERRAIN);
+                     add_opvars(splev, "io",
+                                VA_PASS2((yyvsp[0].i), SPO_REPLACETERRAIN));
                  }
-#line 4372 "y.tab.c" /* yacc.c:1646  */
+#line 4445 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 266:
-#line 1764 "lev_comp.y" /* yacc.c:1646  */
+#line 1837 "lev_comp.y" /* yacc.c:1646  */
     {
-                    add_opvars(splev, "o", SPO_TERRAIN);
+                    add_opvars(splev, "o", VA_PASS1(SPO_TERRAIN));
                 }
-#line 4380 "y.tab.c" /* yacc.c:1646  */
+#line 4453 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 267:
-#line 1770 "lev_comp.y" /* yacc.c:1646  */
+#line 1843 "lev_comp.y" /* yacc.c:1646  */
     {
-                    add_opvars(splev, "o", SPO_NON_DIGGABLE);
+                     add_opvars(splev, "o", VA_PASS1(SPO_NON_DIGGABLE));
                  }
-#line 4388 "y.tab.c" /* yacc.c:1646  */
+#line 4461 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 268:
-#line 1776 "lev_comp.y" /* yacc.c:1646  */
+#line 1849 "lev_comp.y" /* yacc.c:1646  */
     {
-                    add_opvars(splev, "o", SPO_NON_PASSWALL);
+                     add_opvars(splev, "o", VA_PASS1(SPO_NON_PASSWALL));
                  }
-#line 4396 "y.tab.c" /* yacc.c:1646  */
+#line 4469 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 269:
-#line 1782 "lev_comp.y" /* yacc.c:1646  */
+#line 1855 "lev_comp.y" /* yacc.c:1646  */
     {
                      long irr;
                      long rt = (yyvsp[-1].i);
-                     long flags = (yyvsp[0].i);
-                     if (flags == -1) flags = (1 << 0);
-                     if (!(( flags ) & 1)) rt += MAXRTYPE+1;
-                     irr = ((( flags ) & 2) != 0);
+                     long rflags = (yyvsp[0].i);
+
+                     if (rflags == -1) rflags = (1 << 0);
+                     if (!(rflags & 1)) rt += MAXRTYPE+1;
+                     irr = ((rflags & 2) != 0);
                      add_opvars(splev, "iiio",
-                                (long)(yyvsp[-3].i), rt, flags, SPO_REGION);
-                     (yyval.i) = (irr || (flags & 1) || rt != OROOM);
+                                VA_PASS4((long)(yyvsp[-3].i), rt, rflags, SPO_REGION));
+                     (yyval.i) = (irr || (rflags & 1) || rt != OROOM);
                      break_stmt_start();
                  }
-#line 4413 "y.tab.c" /* yacc.c:1646  */
+#line 4487 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 270:
-#line 1795 "lev_comp.y" /* yacc.c:1646  */
+#line 1869 "lev_comp.y" /* yacc.c:1646  */
     {
                      break_stmt_end(splev);
                      if ( (yyvsp[-1].i) ) {
@@ -4421,94 +4495,96 @@ yyreduce:
                      } else if ( (yyvsp[0].i) )
                          lc_error("Cannot use lev statements in non-permanent REGION");
                  }
-#line 4425 "y.tab.c" /* yacc.c:1646  */
+#line 4499 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 271:
-#line 1805 "lev_comp.y" /* yacc.c:1646  */
+#line 1879 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = 0;
                  }
-#line 4433 "y.tab.c" /* yacc.c:1646  */
+#line 4507 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 272:
-#line 1809 "lev_comp.y" /* yacc.c:1646  */
+#line 1883 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = (yyvsp[0].i);
                  }
-#line 4441 "y.tab.c" /* yacc.c:1646  */
+#line 4515 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 273:
-#line 1815 "lev_comp.y" /* yacc.c:1646  */
+#line 1889 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "iio", (long)(yyvsp[0].i), (long)(yyvsp[-2].i), SPO_ALTAR);
+                     add_opvars(splev, "iio",
+                                VA_PASS3((long)(yyvsp[0].i), (long)(yyvsp[-2].i), SPO_ALTAR));
                  }
-#line 4449 "y.tab.c" /* yacc.c:1646  */
+#line 4524 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 274:
-#line 1821 "lev_comp.y" /* yacc.c:1646  */
+#line 1896 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", 2, SPO_GRAVE);
+                     add_opvars(splev, "io", VA_PASS2(2, SPO_GRAVE));
                  }
-#line 4457 "y.tab.c" /* yacc.c:1646  */
+#line 4532 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 275:
-#line 1825 "lev_comp.y" /* yacc.c:1646  */
+#line 1900 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opvars(splev, "sio",
-                                (char *)0, 1, SPO_GRAVE);
+                                VA_PASS3((char *)0, 1, SPO_GRAVE));
                  }
-#line 4466 "y.tab.c" /* yacc.c:1646  */
+#line 4541 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 276:
-#line 1830 "lev_comp.y" /* yacc.c:1646  */
+#line 1905 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opvars(splev, "sio",
-                                (char *)0, 0, SPO_GRAVE);
+                                VA_PASS3((char *)0, 0, SPO_GRAVE));
                  }
-#line 4475 "y.tab.c" /* yacc.c:1646  */
+#line 4550 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 277:
-#line 1837 "lev_comp.y" /* yacc.c:1646  */
+#line 1912 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_GOLD);
+                     add_opvars(splev, "o", VA_PASS1(SPO_GOLD));
                  }
-#line 4483 "y.tab.c" /* yacc.c:1646  */
+#line 4558 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 278:
-#line 1843 "lev_comp.y" /* yacc.c:1646  */
+#line 1918 "lev_comp.y" /* yacc.c:1646  */
     {
                      add_opvars(splev, "io",
-                                (long)(yyvsp[-2].i), SPO_ENGRAVING);
+                                VA_PASS2((long)(yyvsp[-2].i), SPO_ENGRAVING));
                  }
-#line 4492 "y.tab.c" /* yacc.c:1646  */
+#line 4567 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 279:
-#line 1850 "lev_comp.y" /* yacc.c:1646  */
+#line 1925 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_MINERALIZE);
+                     add_opvars(splev, "o", VA_PASS1(SPO_MINERALIZE));
                  }
-#line 4500 "y.tab.c" /* yacc.c:1646  */
+#line 4575 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 280:
-#line 1854 "lev_comp.y" /* yacc.c:1646  */
+#line 1929 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "iiiio", -1L, -1L, -1L, -1L, SPO_MINERALIZE);
+                     add_opvars(splev, "iiiio",
+                                VA_PASS5(-1L, -1L, -1L, -1L, SPO_MINERALIZE));
                  }
-#line 4508 "y.tab.c" /* yacc.c:1646  */
+#line 4584 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 281:
-#line 1860 "lev_comp.y" /* yacc.c:1646  */
+#line 1936 "lev_comp.y" /* yacc.c:1646  */
     {
                        int token = get_trap_type((yyvsp[0].map));
                        if (token == ERR)
@@ -4516,11 +4592,11 @@ yyreduce:
                        (yyval.i) = token;
                        Free((yyvsp[0].map));
                  }
-#line 4520 "y.tab.c" /* yacc.c:1646  */
+#line 4596 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 283:
-#line 1871 "lev_comp.y" /* yacc.c:1646  */
+#line 1947 "lev_comp.y" /* yacc.c:1646  */
     {
                        int token = get_room_type((yyvsp[0].map));
                        if (token == ERR) {
@@ -4530,288 +4606,288 @@ yyreduce:
                                (yyval.i) = token;
                        Free((yyvsp[0].map));
                  }
-#line 4534 "y.tab.c" /* yacc.c:1646  */
+#line 4610 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 285:
-#line 1884 "lev_comp.y" /* yacc.c:1646  */
+#line 1960 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.i) = -1;
                  }
-#line 4542 "y.tab.c" /* yacc.c:1646  */
+#line 4618 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 286:
-#line 1888 "lev_comp.y" /* yacc.c:1646  */
+#line 1964 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.i) = (yyvsp[0].i);
                  }
-#line 4550 "y.tab.c" /* yacc.c:1646  */
+#line 4626 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 287:
-#line 1894 "lev_comp.y" /* yacc.c:1646  */
+#line 1970 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.i) = (yyvsp[0].i);
                  }
-#line 4558 "y.tab.c" /* yacc.c:1646  */
+#line 4634 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 288:
-#line 1898 "lev_comp.y" /* yacc.c:1646  */
+#line 1974 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.i) = (yyvsp[-2].i) | (yyvsp[0].i);
                  }
-#line 4566 "y.tab.c" /* yacc.c:1646  */
+#line 4642 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 289:
-#line 1905 "lev_comp.y" /* yacc.c:1646  */
+#line 1981 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = ((yyvsp[0].i) << 0);
                  }
-#line 4574 "y.tab.c" /* yacc.c:1646  */
+#line 4650 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 290:
-#line 1909 "lev_comp.y" /* yacc.c:1646  */
+#line 1985 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = ((yyvsp[0].i) << 1);
                  }
-#line 4582 "y.tab.c" /* yacc.c:1646  */
+#line 4658 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 291:
-#line 1913 "lev_comp.y" /* yacc.c:1646  */
+#line 1989 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = ((yyvsp[0].i) << 2);
                  }
-#line 4590 "y.tab.c" /* yacc.c:1646  */
+#line 4666 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 298:
-#line 1929 "lev_comp.y" /* yacc.c:1646  */
+#line 2005 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.i) = - MAX_REGISTERS - 1;
                  }
-#line 4598 "y.tab.c" /* yacc.c:1646  */
+#line 4674 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 301:
-#line 1937 "lev_comp.y" /* yacc.c:1646  */
+#line 2013 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.i) = - MAX_REGISTERS - 1;
                  }
-#line 4606 "y.tab.c" /* yacc.c:1646  */
+#line 4682 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 304:
-#line 1947 "lev_comp.y" /* yacc.c:1646  */
+#line 2023 "lev_comp.y" /* yacc.c:1646  */
     {
                        if ( (yyvsp[-1].i) >= 3 )
                                lc_error("Register Index overflow!");
                        else
                                (yyval.i) = - (yyvsp[-1].i) - 1;
                  }
-#line 4617 "y.tab.c" /* yacc.c:1646  */
+#line 4693 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 305:
-#line 1956 "lev_comp.y" /* yacc.c:1646  */
+#line 2032 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "s", (yyvsp[0].map));
+                     add_opvars(splev, "s", VA_PASS1((yyvsp[0].map)));
                      Free((yyvsp[0].map));
                  }
-#line 4626 "y.tab.c" /* yacc.c:1646  */
+#line 4702 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 306:
-#line 1961 "lev_comp.y" /* yacc.c:1646  */
+#line 2037 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_STRING);
                      vardef_used(variable_definitions, (yyvsp[0].map));
-                     add_opvars(splev, "v", (yyvsp[0].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[0].map)));
                      Free((yyvsp[0].map));
                  }
-#line 4637 "y.tab.c" /* yacc.c:1646  */
+#line 4713 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 307:
-#line 1968 "lev_comp.y" /* yacc.c:1646  */
+#line 2044 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_STRING|SPOVAR_ARRAY);
                      vardef_used(variable_definitions, (yyvsp[-3].map));
-                     add_opvars(splev, "v", (yyvsp[-3].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map)));
                      Free((yyvsp[-3].map));
                  }
-#line 4648 "y.tab.c" /* yacc.c:1646  */
+#line 4724 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 308:
-#line 1978 "lev_comp.y" /* yacc.c:1646  */
+#line 2054 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* nothing */
                  }
-#line 4656 "y.tab.c" /* yacc.c:1646  */
+#line 4732 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 309:
-#line 1984 "lev_comp.y" /* yacc.c:1646  */
+#line 2060 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "c", (yyvsp[0].i));
+                     add_opvars(splev, "c", VA_PASS1((yyvsp[0].i)));
                  }
-#line 4664 "y.tab.c" /* yacc.c:1646  */
+#line 4740 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 310:
-#line 1988 "lev_comp.y" /* yacc.c:1646  */
+#line 2064 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_SEL_RNDCOORD);
+                     add_opvars(splev, "o", VA_PASS1(SPO_SEL_RNDCOORD));
                  }
-#line 4672 "y.tab.c" /* yacc.c:1646  */
+#line 4748 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 311:
-#line 1992 "lev_comp.y" /* yacc.c:1646  */
+#line 2068 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_COORD);
                      vardef_used(variable_definitions, (yyvsp[0].map));
-                     add_opvars(splev, "v", (yyvsp[0].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[0].map)));
                      Free((yyvsp[0].map));
                  }
-#line 4683 "y.tab.c" /* yacc.c:1646  */
+#line 4759 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 312:
-#line 1999 "lev_comp.y" /* yacc.c:1646  */
+#line 2075 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_COORD|SPOVAR_ARRAY);
                      vardef_used(variable_definitions, (yyvsp[-3].map));
-                     add_opvars(splev, "v", (yyvsp[-3].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map)));
                      Free((yyvsp[-3].map));
                  }
-#line 4694 "y.tab.c" /* yacc.c:1646  */
+#line 4770 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 313:
-#line 2008 "lev_comp.y" /* yacc.c:1646  */
+#line 2084 "lev_comp.y" /* yacc.c:1646  */
     {
                      if ((yyvsp[-3].i) < 0 || (yyvsp[-1].i) < 0 || (yyvsp[-3].i) >= COLNO || (yyvsp[-1].i) >= ROWNO)
                          lc_error("Coordinates (%li,%li) out of map range!", (yyvsp[-3].i), (yyvsp[-1].i));
                      (yyval.i) = SP_COORD_PACK((yyvsp[-3].i), (yyvsp[-1].i));
                  }
-#line 4704 "y.tab.c" /* yacc.c:1646  */
+#line 4780 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 314:
-#line 2014 "lev_comp.y" /* yacc.c:1646  */
+#line 2090 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = SP_COORD_PACK_RANDOM(0);
                  }
-#line 4712 "y.tab.c" /* yacc.c:1646  */
+#line 4788 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 315:
-#line 2018 "lev_comp.y" /* yacc.c:1646  */
+#line 2094 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = SP_COORD_PACK_RANDOM( (yyvsp[-1].i) );
                  }
-#line 4720 "y.tab.c" /* yacc.c:1646  */
+#line 4796 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 316:
-#line 2024 "lev_comp.y" /* yacc.c:1646  */
+#line 2100 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = (yyvsp[0].i);
                  }
-#line 4728 "y.tab.c" /* yacc.c:1646  */
+#line 4804 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 317:
-#line 2028 "lev_comp.y" /* yacc.c:1646  */
+#line 2104 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (((yyvsp[-2].i) & (yyvsp[0].i)))
                          lc_warning("Humidity flag used twice.");
                      (yyval.i) = ((yyvsp[-2].i) | (yyvsp[0].i));
                  }
-#line 4738 "y.tab.c" /* yacc.c:1646  */
+#line 4814 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 318:
-#line 2036 "lev_comp.y" /* yacc.c:1646  */
+#line 2112 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* nothing */
                  }
-#line 4746 "y.tab.c" /* yacc.c:1646  */
+#line 4822 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 319:
-#line 2040 "lev_comp.y" /* yacc.c:1646  */
+#line 2116 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_REGION);
                      vardef_used(variable_definitions, (yyvsp[0].map));
-                     add_opvars(splev, "v", (yyvsp[0].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[0].map)));
                      Free((yyvsp[0].map));
                  }
-#line 4757 "y.tab.c" /* yacc.c:1646  */
+#line 4833 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 320:
-#line 2047 "lev_comp.y" /* yacc.c:1646  */
+#line 2123 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_REGION|SPOVAR_ARRAY);
                      vardef_used(variable_definitions, (yyvsp[-3].map));
-                     add_opvars(splev, "v", (yyvsp[-3].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map)));
                      Free((yyvsp[-3].map));
                  }
-#line 4768 "y.tab.c" /* yacc.c:1646  */
+#line 4844 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 321:
-#line 2056 "lev_comp.y" /* yacc.c:1646  */
+#line 2132 "lev_comp.y" /* yacc.c:1646  */
     {
                      long r = SP_REGION_PACK((yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i));
                      if ( (yyvsp[-7].i) > (yyvsp[-3].i) || (yyvsp[-5].i) > (yyvsp[-1].i) )
                          lc_error("Region start > end: (%li,%li,%li,%li)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i));
 
-                     add_opvars(splev, "r", r);
+                     add_opvars(splev, "r", VA_PASS1(r));
                      (yyval.i) = r;
                  }
-#line 4781 "y.tab.c" /* yacc.c:1646  */
+#line 4857 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 322:
-#line 2067 "lev_comp.y" /* yacc.c:1646  */
+#line 2143 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "m", (yyvsp[0].i));
+                     add_opvars(splev, "m", VA_PASS1((yyvsp[0].i)));
                  }
-#line 4789 "y.tab.c" /* yacc.c:1646  */
+#line 4865 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 323:
-#line 2071 "lev_comp.y" /* yacc.c:1646  */
+#line 2147 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_MAPCHAR);
                      vardef_used(variable_definitions, (yyvsp[0].map));
-                     add_opvars(splev, "v", (yyvsp[0].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[0].map)));
                      Free((yyvsp[0].map));
                  }
-#line 4800 "y.tab.c" /* yacc.c:1646  */
+#line 4876 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 324:
-#line 2078 "lev_comp.y" /* yacc.c:1646  */
+#line 2154 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_MAPCHAR|SPOVAR_ARRAY);
                      vardef_used(variable_definitions, (yyvsp[-3].map));
-                     add_opvars(splev, "v", (yyvsp[-3].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map)));
                      Free((yyvsp[-3].map));
                  }
-#line 4811 "y.tab.c" /* yacc.c:1646  */
+#line 4887 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 325:
-#line 2087 "lev_comp.y" /* yacc.c:1646  */
+#line 2163 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (what_map_char((char) (yyvsp[0].i)) != INVALID_TYPE)
                          (yyval.i) = SP_MAPCHAR_PACK(what_map_char((char) (yyvsp[0].i)), -2);
@@ -4820,11 +4896,11 @@ yyreduce:
                          (yyval.i) = SP_MAPCHAR_PACK(STONE, -2);
                      }
                  }
-#line 4824 "y.tab.c" /* yacc.c:1646  */
+#line 4900 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 326:
-#line 2096 "lev_comp.y" /* yacc.c:1646  */
+#line 2172 "lev_comp.y" /* yacc.c:1646  */
     {
                      if (what_map_char((char) (yyvsp[-3].i)) != INVALID_TYPE)
                          (yyval.i) = SP_MAPCHAR_PACK(what_map_char((char) (yyvsp[-3].i)), (yyvsp[-1].i));
@@ -4833,41 +4909,41 @@ yyreduce:
                          (yyval.i) = SP_MAPCHAR_PACK(STONE, (yyvsp[-1].i));
                      }
                  }
-#line 4837 "y.tab.c" /* yacc.c:1646  */
+#line 4913 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 327:
-#line 2107 "lev_comp.y" /* yacc.c:1646  */
+#line 2183 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "M", (yyvsp[0].i));
+                     add_opvars(splev, "M", VA_PASS1((yyvsp[0].i)));
                  }
-#line 4845 "y.tab.c" /* yacc.c:1646  */
+#line 4921 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 328:
-#line 2111 "lev_comp.y" /* yacc.c:1646  */
+#line 2187 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_MONST);
                      vardef_used(variable_definitions, (yyvsp[0].map));
-                     add_opvars(splev, "v", (yyvsp[0].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[0].map)));
                      Free((yyvsp[0].map));
                  }
-#line 4856 "y.tab.c" /* yacc.c:1646  */
+#line 4932 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 329:
-#line 2118 "lev_comp.y" /* yacc.c:1646  */
+#line 2194 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_MONST|SPOVAR_ARRAY);
                      vardef_used(variable_definitions, (yyvsp[-3].map));
-                     add_opvars(splev, "v", (yyvsp[-3].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map)));
                      Free((yyvsp[-3].map));
                  }
-#line 4867 "y.tab.c" /* yacc.c:1646  */
+#line 4943 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 330:
-#line 2127 "lev_comp.y" /* yacc.c:1646  */
+#line 2203 "lev_comp.y" /* yacc.c:1646  */
     {
                       long m = get_monster_id((yyvsp[0].map), (char)0);
                       if (m == ERR) {
@@ -4876,11 +4952,11 @@ yyreduce:
                       } else
                           (yyval.i) = SP_MONST_PACK(m, def_monsyms[(int)mons[m].mlet].sym);
                   }
-#line 4880 "y.tab.c" /* yacc.c:1646  */
+#line 4956 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 331:
-#line 2136 "lev_comp.y" /* yacc.c:1646  */
+#line 2212 "lev_comp.y" /* yacc.c:1646  */
     {
                         if (check_monster_char((char) (yyvsp[0].i)))
                             (yyval.i) = SP_MONST_PACK(-1, (yyvsp[0].i));
@@ -4889,11 +4965,11 @@ yyreduce:
                             (yyval.i) = -1;
                         }
                   }
-#line 4893 "y.tab.c" /* yacc.c:1646  */
+#line 4969 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 332:
-#line 2145 "lev_comp.y" /* yacc.c:1646  */
+#line 2221 "lev_comp.y" /* yacc.c:1646  */
     {
                       long m = get_monster_id((yyvsp[-1].map), (char) (yyvsp[-3].i));
                       if (m == ERR) {
@@ -4902,49 +4978,49 @@ yyreduce:
                       } else
                           (yyval.i) = SP_MONST_PACK(m, (yyvsp[-3].i));
                   }
-#line 4906 "y.tab.c" /* yacc.c:1646  */
+#line 4982 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 333:
-#line 2154 "lev_comp.y" /* yacc.c:1646  */
+#line 2230 "lev_comp.y" /* yacc.c:1646  */
     {
                       (yyval.i) = -1;
                   }
-#line 4914 "y.tab.c" /* yacc.c:1646  */
+#line 4990 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 334:
-#line 2160 "lev_comp.y" /* yacc.c:1646  */
+#line 2236 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "O", (yyvsp[0].i));
+                     add_opvars(splev, "O", VA_PASS1((yyvsp[0].i)));
                  }
-#line 4922 "y.tab.c" /* yacc.c:1646  */
+#line 4998 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 335:
-#line 2164 "lev_comp.y" /* yacc.c:1646  */
+#line 2240 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_OBJ);
                      vardef_used(variable_definitions, (yyvsp[0].map));
-                     add_opvars(splev, "v", (yyvsp[0].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[0].map)));
                      Free((yyvsp[0].map));
                  }
-#line 4933 "y.tab.c" /* yacc.c:1646  */
+#line 5009 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 336:
-#line 2171 "lev_comp.y" /* yacc.c:1646  */
+#line 2247 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_OBJ|SPOVAR_ARRAY);
                      vardef_used(variable_definitions, (yyvsp[-3].map));
-                     add_opvars(splev, "v", (yyvsp[-3].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map)));
                      Free((yyvsp[-3].map));
                  }
-#line 4944 "y.tab.c" /* yacc.c:1646  */
+#line 5020 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 337:
-#line 2180 "lev_comp.y" /* yacc.c:1646  */
+#line 2256 "lev_comp.y" /* yacc.c:1646  */
     {
                      long m = get_object_id((yyvsp[0].map), (char)0);
                      if (m == ERR) {
@@ -4954,11 +5030,11 @@ yyreduce:
                          (yyval.i) = SP_OBJ_PACK(m, 1); /* obj class != 0 to force generation of a specific item */
 
                  }
-#line 4958 "y.tab.c" /* yacc.c:1646  */
+#line 5034 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 338:
-#line 2190 "lev_comp.y" /* yacc.c:1646  */
+#line 2266 "lev_comp.y" /* yacc.c:1646  */
     {
                        if (check_object_char((char) (yyvsp[0].i)))
                            (yyval.i) = SP_OBJ_PACK(-1, (yyvsp[0].i));
@@ -4967,11 +5043,11 @@ yyreduce:
                            (yyval.i) = -1;
                        }
                  }
-#line 4971 "y.tab.c" /* yacc.c:1646  */
+#line 5047 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 339:
-#line 2199 "lev_comp.y" /* yacc.c:1646  */
+#line 2275 "lev_comp.y" /* yacc.c:1646  */
     {
                      long m = get_object_id((yyvsp[-1].map), (char) (yyvsp[-3].i));
                      if (m == ERR) {
@@ -4980,188 +5056,207 @@ yyreduce:
                      } else
                          (yyval.i) = SP_OBJ_PACK(m, (yyvsp[-3].i));
                  }
-#line 4984 "y.tab.c" /* yacc.c:1646  */
+#line 5060 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 340:
-#line 2208 "lev_comp.y" /* yacc.c:1646  */
+#line 2284 "lev_comp.y" /* yacc.c:1646  */
     {
                      (yyval.i) = -1;
                  }
-#line 4992 "y.tab.c" /* yacc.c:1646  */
+#line 5068 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 341:
-#line 2214 "lev_comp.y" /* yacc.c:1646  */
+#line 2290 "lev_comp.y" /* yacc.c:1646  */
     { }
-#line 4998 "y.tab.c" /* yacc.c:1646  */
+#line 5074 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 342:
-#line 2216 "lev_comp.y" /* yacc.c:1646  */
+#line 2292 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_MATH_ADD);
+                     add_opvars(splev, "o", VA_PASS1(SPO_MATH_ADD));
                  }
-#line 5006 "y.tab.c" /* yacc.c:1646  */
+#line 5082 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 343:
-#line 2221 "lev_comp.y" /* yacc.c:1646  */
-    { add_opvars(splev, "i", (yyvsp[0].i) ); }
-#line 5012 "y.tab.c" /* yacc.c:1646  */
+#line 2298 "lev_comp.y" /* yacc.c:1646  */
+    {
+                     add_opvars(splev, "i", VA_PASS1((yyvsp[0].i)));
+                 }
+#line 5090 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 344:
-#line 2222 "lev_comp.y" /* yacc.c:1646  */
-    { is_inconstant_number = 1; }
-#line 5018 "y.tab.c" /* yacc.c:1646  */
+#line 2302 "lev_comp.y" /* yacc.c:1646  */
+    {
+                     is_inconstant_number = 1;
+                 }
+#line 5098 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 345:
-#line 2223 "lev_comp.y" /* yacc.c:1646  */
-    { add_opvars(splev, "i", (yyvsp[-1].i) ); }
-#line 5024 "y.tab.c" /* yacc.c:1646  */
+#line 2306 "lev_comp.y" /* yacc.c:1646  */
+    {
+                     add_opvars(splev, "i", VA_PASS1((yyvsp[-1].i)));
+                 }
+#line 5106 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 346:
-#line 2225 "lev_comp.y" /* yacc.c:1646  */
+#line 2310 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_INT);
                      vardef_used(variable_definitions, (yyvsp[0].map));
-                     add_opvars(splev, "v", (yyvsp[0].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[0].map)));
                      Free((yyvsp[0].map));
                      is_inconstant_number = 1;
                  }
-#line 5036 "y.tab.c" /* yacc.c:1646  */
+#line 5118 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 347:
-#line 2233 "lev_comp.y" /* yacc.c:1646  */
+#line 2318 "lev_comp.y" /* yacc.c:1646  */
     {
-                     check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_INT|SPOVAR_ARRAY);
+                     check_vardef_type(variable_definitions,
+                                       (yyvsp[-3].map), SPOVAR_INT|SPOVAR_ARRAY);
                      vardef_used(variable_definitions, (yyvsp[-3].map));
-                     add_opvars(splev, "v", (yyvsp[-3].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map)));
                      Free((yyvsp[-3].map));
                      is_inconstant_number = 1;
                  }
-#line 5048 "y.tab.c" /* yacc.c:1646  */
+#line 5131 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 348:
-#line 2240 "lev_comp.y" /* yacc.c:1646  */
-    { add_opvars(splev, "o", SPO_MATH_ADD); }
-#line 5054 "y.tab.c" /* yacc.c:1646  */
+#line 2327 "lev_comp.y" /* yacc.c:1646  */
+    {
+                     add_opvars(splev, "o", VA_PASS1(SPO_MATH_ADD));
+                 }
+#line 5139 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 349:
-#line 2241 "lev_comp.y" /* yacc.c:1646  */
-    { add_opvars(splev, "o", SPO_MATH_SUB); }
-#line 5060 "y.tab.c" /* yacc.c:1646  */
+#line 2331 "lev_comp.y" /* yacc.c:1646  */
+    {
+                     add_opvars(splev, "o", VA_PASS1(SPO_MATH_SUB));
+                 }
+#line 5147 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 350:
-#line 2242 "lev_comp.y" /* yacc.c:1646  */
-    { add_opvars(splev, "o", SPO_MATH_MUL); }
-#line 5066 "y.tab.c" /* yacc.c:1646  */
+#line 2335 "lev_comp.y" /* yacc.c:1646  */
+    {
+                     add_opvars(splev, "o", VA_PASS1(SPO_MATH_MUL));
+                 }
+#line 5155 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 351:
-#line 2243 "lev_comp.y" /* yacc.c:1646  */
-    { add_opvars(splev, "o", SPO_MATH_DIV); }
-#line 5072 "y.tab.c" /* yacc.c:1646  */
+#line 2339 "lev_comp.y" /* yacc.c:1646  */
+    {
+                     add_opvars(splev, "o", VA_PASS1(SPO_MATH_DIV));
+                 }
+#line 5163 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 352:
-#line 2244 "lev_comp.y" /* yacc.c:1646  */
-    { add_opvars(splev, "o", SPO_MATH_MOD); }
-#line 5078 "y.tab.c" /* yacc.c:1646  */
+#line 2343 "lev_comp.y" /* yacc.c:1646  */
+    {
+                     add_opvars(splev, "o", VA_PASS1(SPO_MATH_MOD));
+                 }
+#line 5171 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 353:
-#line 2245 "lev_comp.y" /* yacc.c:1646  */
+#line 2346 "lev_comp.y" /* yacc.c:1646  */
     { }
-#line 5084 "y.tab.c" /* yacc.c:1646  */
+#line 5177 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 354:
-#line 2249 "lev_comp.y" /* yacc.c:1646  */
+#line 2350 "lev_comp.y" /* yacc.c:1646  */
     {
-                             if (!strcmp("int", (yyvsp[0].map)) || !strcmp("integer", (yyvsp[0].map))) {
-                                 (yyval.i) = (int)'i';
-                             } else lc_error("Unknown function parameter type '%s'", (yyvsp[0].map));
-                         }
-#line 5094 "y.tab.c" /* yacc.c:1646  */
+                     if (!strcmp("int", (yyvsp[0].map)) || !strcmp("integer", (yyvsp[0].map))) {
+                         (yyval.i) = (int)'i';
+                     } else
+                         lc_error("Unknown function parameter type '%s'", (yyvsp[0].map));
+                 }
+#line 5188 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 355:
-#line 2255 "lev_comp.y" /* yacc.c:1646  */
+#line 2357 "lev_comp.y" /* yacc.c:1646  */
     {
-                             if (!strcmp("str", (yyvsp[0].map)) || !strcmp("string", (yyvsp[0].map))) {
-                                 (yyval.i) = (int)'s';
-                             } else lc_error("Unknown function parameter type '%s'", (yyvsp[0].map));
-                         }
-#line 5104 "y.tab.c" /* yacc.c:1646  */
+                     if (!strcmp("str", (yyvsp[0].map)) || !strcmp("string", (yyvsp[0].map))) {
+                         (yyval.i) = (int)'s';
+                     } else
+                         lc_error("Unknown function parameter type '%s'", (yyvsp[0].map));
+                 }
+#line 5199 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 356:
-#line 2263 "lev_comp.y" /* yacc.c:1646  */
-    {
-                             struct lc_funcdefs_parm *tmp = New(struct lc_funcdefs_parm);
-
-                             if (!curr_function)
-                                 lc_error("Function parameters outside function definition.");
-                             else if (!tmp)
-                                 lc_error("Could not alloc function params.");
-                             else {
-                                 tmp->name = strdup((yyvsp[-2].map));
-                                 tmp->parmtype = (char) (yyvsp[0].i);
-                                 tmp->next = curr_function->params;
-                                 curr_function->params = tmp;
-                                 curr_function->n_params++;
-                                 {
-                                     long vt;
-                                     switch (tmp->parmtype) {
-                                     case 'i': vt = SPOVAR_INT; break;
-                                     case 's': vt = SPOVAR_STRING; break;
-                                     default: lc_error("Unknown func param conversion."); break;
-                                     }
-                                     variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-2].map), vt);
-                                 }
-                             }
-                             Free((yyvsp[-2].map));
+#line 2366 "lev_comp.y" /* yacc.c:1646  */
+    {
+                     struct lc_funcdefs_parm *tmp = New(struct lc_funcdefs_parm);
+
+                     if (!curr_function) {
+                         lc_error("Function parameters outside function definition.");
+                     } else if (!tmp) {
+                         lc_error("Could not alloc function params.");
+                     } else {
+                         long vt;
+                         tmp->name = strdup((yyvsp[-2].map));
+                         tmp->parmtype = (char) (yyvsp[0].i);
+                         tmp->next = curr_function->params;
+                         curr_function->params = tmp;
+                         curr_function->n_params++;
+                         switch (tmp->parmtype) {
+                         case 'i': vt = SPOVAR_INT; break;
+                         case 's': vt = SPOVAR_STRING; break;
+                         default: lc_error("Unknown func param conversion."); break;
                          }
-#line 5134 "y.tab.c" /* yacc.c:1646  */
+                         variable_definitions = add_vardef_type(
+                                                        variable_definitions,
+                                                                (yyvsp[-2].map), vt);
+                     }
+                     Free((yyvsp[-2].map));
+                 }
+#line 5229 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 361:
-#line 2300 "lev_comp.y" /* yacc.c:1646  */
+#line 2402 "lev_comp.y" /* yacc.c:1646  */
     {
                              (yyval.i) = (int)'i';
                          }
-#line 5142 "y.tab.c" /* yacc.c:1646  */
+#line 5237 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 362:
-#line 2304 "lev_comp.y" /* yacc.c:1646  */
+#line 2406 "lev_comp.y" /* yacc.c:1646  */
     {
                              (yyval.i) = (int)'s';
                          }
-#line 5150 "y.tab.c" /* yacc.c:1646  */
+#line 5245 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 363:
-#line 2311 "lev_comp.y" /* yacc.c:1646  */
+#line 2413 "lev_comp.y" /* yacc.c:1646  */
     {
                              char tmpbuf[2];
                              tmpbuf[0] = (char) (yyvsp[0].i);
                              tmpbuf[1] = '\0';
                              (yyval.map) = strdup(tmpbuf);
                          }
-#line 5161 "y.tab.c" /* yacc.c:1646  */
+#line 5256 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 364:
-#line 2318 "lev_comp.y" /* yacc.c:1646  */
+#line 2420 "lev_comp.y" /* yacc.c:1646  */
     {
                              long len = strlen( (yyvsp[-2].map) );
                              char *tmp = (char *)alloc(len + 2);
@@ -5169,249 +5264,256 @@ yyreduce:
                              Free( (yyvsp[-2].map) );
                              (yyval.map) = tmp;
                          }
-#line 5173 "y.tab.c" /* yacc.c:1646  */
+#line 5268 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 365:
-#line 2328 "lev_comp.y" /* yacc.c:1646  */
+#line 2430 "lev_comp.y" /* yacc.c:1646  */
     {
                              (yyval.map) = strdup("");
                          }
-#line 5181 "y.tab.c" /* yacc.c:1646  */
+#line 5276 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 366:
-#line 2332 "lev_comp.y" /* yacc.c:1646  */
+#line 2434 "lev_comp.y" /* yacc.c:1646  */
     {
                              char *tmp = strdup( (yyvsp[0].map) );
                              Free( (yyvsp[0].map) );
                              (yyval.map) = tmp;
                          }
-#line 5191 "y.tab.c" /* yacc.c:1646  */
+#line 5286 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 367:
-#line 2340 "lev_comp.y" /* yacc.c:1646  */
+#line 2442 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_SEL_POINT);
+                     add_opvars(splev, "o", VA_PASS1(SPO_SEL_POINT));
                  }
-#line 5199 "y.tab.c" /* yacc.c:1646  */
+#line 5294 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 368:
-#line 2344 "lev_comp.y" /* yacc.c:1646  */
+#line 2446 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_SEL_RECT);
+                     add_opvars(splev, "o", VA_PASS1(SPO_SEL_RECT));
                  }
-#line 5207 "y.tab.c" /* yacc.c:1646  */
+#line 5302 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 369:
-#line 2348 "lev_comp.y" /* yacc.c:1646  */
+#line 2450 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_SEL_FILLRECT);
+                     add_opvars(splev, "o", VA_PASS1(SPO_SEL_FILLRECT));
                  }
-#line 5215 "y.tab.c" /* yacc.c:1646  */
+#line 5310 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 370:
-#line 2352 "lev_comp.y" /* yacc.c:1646  */
+#line 2454 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_SEL_LINE);
+                     add_opvars(splev, "o", VA_PASS1(SPO_SEL_LINE));
                  }
-#line 5223 "y.tab.c" /* yacc.c:1646  */
+#line 5318 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 371:
-#line 2356 "lev_comp.y" /* yacc.c:1646  */
+#line 2458 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* randline (x1,y1),(x2,y2), roughness */
-                     add_opvars(splev, "o", SPO_SEL_RNDLINE);
+                     add_opvars(splev, "o", VA_PASS1(SPO_SEL_RNDLINE));
                  }
-#line 5232 "y.tab.c" /* yacc.c:1646  */
+#line 5327 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 372:
-#line 2361 "lev_comp.y" /* yacc.c:1646  */
+#line 2463 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", W_ANY, SPO_SEL_GROW);
+                     add_opvars(splev, "io", VA_PASS2(W_ANY, SPO_SEL_GROW));
                  }
-#line 5240 "y.tab.c" /* yacc.c:1646  */
+#line 5335 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 373:
-#line 2365 "lev_comp.y" /* yacc.c:1646  */
+#line 2467 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", (yyvsp[-3].i), SPO_SEL_GROW);
+                     add_opvars(splev, "io", VA_PASS2((yyvsp[-3].i), SPO_SEL_GROW));
                  }
-#line 5248 "y.tab.c" /* yacc.c:1646  */
+#line 5343 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 374:
-#line 2369 "lev_comp.y" /* yacc.c:1646  */
+#line 2471 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "iio", (yyvsp[-3].i), SPOFILTER_PERCENT, SPO_SEL_FILTER);
+                     add_opvars(splev, "iio",
+                            VA_PASS3((yyvsp[-3].i), SPOFILTER_PERCENT, SPO_SEL_FILTER));
                  }
-#line 5256 "y.tab.c" /* yacc.c:1646  */
+#line 5352 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 375:
-#line 2373 "lev_comp.y" /* yacc.c:1646  */
+#line 2476 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", SPOFILTER_SELECTION, SPO_SEL_FILTER);
+                     add_opvars(splev, "io",
+                              VA_PASS2(SPOFILTER_SELECTION, SPO_SEL_FILTER));
                  }
-#line 5264 "y.tab.c" /* yacc.c:1646  */
+#line 5361 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 376:
-#line 2377 "lev_comp.y" /* yacc.c:1646  */
+#line 2481 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", SPOFILTER_MAPCHAR, SPO_SEL_FILTER);
+                     add_opvars(splev, "io",
+                                VA_PASS2(SPOFILTER_MAPCHAR, SPO_SEL_FILTER));
                  }
-#line 5272 "y.tab.c" /* yacc.c:1646  */
+#line 5370 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 377:
-#line 2381 "lev_comp.y" /* yacc.c:1646  */
+#line 2486 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_SEL_FLOOD);
+                     add_opvars(splev, "o", VA_PASS1(SPO_SEL_FLOOD));
                  }
-#line 5280 "y.tab.c" /* yacc.c:1646  */
+#line 5378 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 378:
-#line 2385 "lev_comp.y" /* yacc.c:1646  */
+#line 2490 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "oio", SPO_COPY, 1, SPO_SEL_ELLIPSE);
+                     add_opvars(splev, "oio",
+                                VA_PASS3(SPO_COPY, 1, SPO_SEL_ELLIPSE));
                  }
-#line 5288 "y.tab.c" /* yacc.c:1646  */
+#line 5387 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 379:
-#line 2389 "lev_comp.y" /* yacc.c:1646  */
+#line 2495 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "oio", SPO_COPY, (yyvsp[-1].i), SPO_SEL_ELLIPSE);
+                     add_opvars(splev, "oio",
+                                VA_PASS3(SPO_COPY, (yyvsp[-1].i), SPO_SEL_ELLIPSE));
                  }
-#line 5296 "y.tab.c" /* yacc.c:1646  */
+#line 5396 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 380:
-#line 2393 "lev_comp.y" /* yacc.c:1646  */
+#line 2500 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", 1, SPO_SEL_ELLIPSE);
+                     add_opvars(splev, "io", VA_PASS2(1, SPO_SEL_ELLIPSE));
                  }
-#line 5304 "y.tab.c" /* yacc.c:1646  */
+#line 5404 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 381:
-#line 2397 "lev_comp.y" /* yacc.c:1646  */
+#line 2504 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "io", (yyvsp[-1].i), SPO_SEL_ELLIPSE);
+                     add_opvars(splev, "io", VA_PASS2((yyvsp[-1].i), SPO_SEL_ELLIPSE));
                  }
-#line 5312 "y.tab.c" /* yacc.c:1646  */
+#line 5412 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 382:
-#line 2401 "lev_comp.y" /* yacc.c:1646  */
+#line 2508 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "iio", (yyvsp[-5].i), (yyvsp[-11].i), SPO_SEL_GRADIENT);
+                     add_opvars(splev, "iio",
+                                VA_PASS3((yyvsp[-5].i), (yyvsp[-11].i), SPO_SEL_GRADIENT));
                  }
-#line 5320 "y.tab.c" /* yacc.c:1646  */
+#line 5421 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 383:
-#line 2405 "lev_comp.y" /* yacc.c:1646  */
+#line 2513 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_SEL_COMPLEMENT);
+                     add_opvars(splev, "o", VA_PASS1(SPO_SEL_COMPLEMENT));
                  }
-#line 5328 "y.tab.c" /* yacc.c:1646  */
+#line 5429 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 384:
-#line 2409 "lev_comp.y" /* yacc.c:1646  */
+#line 2517 "lev_comp.y" /* yacc.c:1646  */
     {
                      check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_SEL);
                      vardef_used(variable_definitions, (yyvsp[0].map));
-                     add_opvars(splev, "v", (yyvsp[0].map));
+                     add_opvars(splev, "v", VA_PASS1((yyvsp[0].map)));
                      Free((yyvsp[0].map));
                  }
-#line 5339 "y.tab.c" /* yacc.c:1646  */
+#line 5440 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 385:
-#line 2416 "lev_comp.y" /* yacc.c:1646  */
+#line 2524 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* nothing */
                  }
-#line 5347 "y.tab.c" /* yacc.c:1646  */
+#line 5448 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 386:
-#line 2422 "lev_comp.y" /* yacc.c:1646  */
+#line 2530 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* nothing */
                  }
-#line 5355 "y.tab.c" /* yacc.c:1646  */
+#line 5456 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 387:
-#line 2426 "lev_comp.y" /* yacc.c:1646  */
+#line 2534 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "o", SPO_SEL_ADD);
+                     add_opvars(splev, "o", VA_PASS1(SPO_SEL_ADD));
                  }
-#line 5363 "y.tab.c" /* yacc.c:1646  */
+#line 5464 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 388:
-#line 2432 "lev_comp.y" /* yacc.c:1646  */
+#line 2540 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "iio", (yyvsp[0].dice).num, (yyvsp[0].dice).die, SPO_DICE);
+                     add_opvars(splev, "iio",
+                                VA_PASS3((yyvsp[0].dice).num, (yyvsp[0].dice).die, SPO_DICE));
                  }
-#line 5371 "y.tab.c" /* yacc.c:1646  */
+#line 5473 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 392:
-#line 2443 "lev_comp.y" /* yacc.c:1646  */
+#line 2552 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", (yyvsp[0].i) );
+                     add_opvars(splev, "i", VA_PASS1((yyvsp[0].i)));
                  }
-#line 5379 "y.tab.c" /* yacc.c:1646  */
+#line 5481 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 393:
-#line 2447 "lev_comp.y" /* yacc.c:1646  */
+#line 2556 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", (yyvsp[0].i) );
+                     add_opvars(splev, "i", VA_PASS1((yyvsp[0].i)));
                  }
-#line 5387 "y.tab.c" /* yacc.c:1646  */
+#line 5489 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 394:
-#line 2451 "lev_comp.y" /* yacc.c:1646  */
+#line 2560 "lev_comp.y" /* yacc.c:1646  */
     {
-                     add_opvars(splev, "i", (yyvsp[0].i) );
+                     add_opvars(splev, "i", VA_PASS1((yyvsp[0].i)));
                  }
-#line 5395 "y.tab.c" /* yacc.c:1646  */
+#line 5497 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 395:
-#line 2455 "lev_comp.y" /* yacc.c:1646  */
+#line 2564 "lev_comp.y" /* yacc.c:1646  */
     {
                      /* nothing */
                  }
-#line 5403 "y.tab.c" /* yacc.c:1646  */
+#line 5505 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 404:
-#line 2477 "lev_comp.y" /* yacc.c:1646  */
+#line 2586 "lev_comp.y" /* yacc.c:1646  */
     {
                        (yyval.lregn) = (yyvsp[0].lregn);
                  }
-#line 5411 "y.tab.c" /* yacc.c:1646  */
+#line 5513 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 405:
-#line 2481 "lev_comp.y" /* yacc.c:1646  */
+#line 2590 "lev_comp.y" /* yacc.c:1646  */
     {
                        if ((yyvsp[-7].i) <= 0 || (yyvsp[-7].i) >= COLNO)
                            lc_error("Region (%li,%li,%li,%li) out of level range (x1)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i));
@@ -5427,11 +5529,11 @@ yyreduce:
                        (yyval.lregn).y2 = (yyvsp[-1].i);
                        (yyval.lregn).area = 1;
                  }
-#line 5431 "y.tab.c" /* yacc.c:1646  */
+#line 5533 "y.tab.c" /* yacc.c:1646  */
     break;
 
   case 406:
-#line 2499 "lev_comp.y" /* yacc.c:1646  */
+#line 2608 "lev_comp.y" /* yacc.c:1646  */
     {
 /* This series of if statements is a hack for MSC 5.1.  It seems that its
    tiny little brain cannot compile if these are all one big if statement. */
@@ -5449,11 +5551,11 @@ yyreduce:
                        (yyval.lregn).x2 = (yyvsp[-3].i);
                        (yyval.lregn).y2 = (yyvsp[-1].i);
                  }
-#line 5453 "y.tab.c" /* yacc.c:1646  */
+#line 5555 "y.tab.c" /* yacc.c:1646  */
     break;
 
 
-#line 5457 "y.tab.c" /* yacc.c:1646  */
+#line 5559 "y.tab.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -5681,7 +5783,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 2519 "lev_comp.y" /* yacc.c:1906  */
+#line 2628 "lev_comp.y" /* yacc.c:1906  */
 
 
 /*lev_comp.y*/