Browse Source

prebuild-bison

David Rose 21 years ago
parent
commit
359c111231

+ 183 - 164
direct/src/dcparser/dcLexer.cxx.prebuilt

@@ -300,28 +300,29 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 	*yy_cp = '\0'; \
 	yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 42
-#define YY_END_OF_BUFFER 43
-static yyconst short int yy_accept[165] =
+#define YY_NUM_RULES 44
+#define YY_END_OF_BUFFER 45
+static yyconst short int yy_accept[173] =
     {   0,
-        0,    0,   43,   41,    2,    1,   38,   41,   41,   41,
-       35,   35,   39,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,    1,    0,   35,   37,
-        4,    3,   37,   36,   40,   40,   40,   40,   40,   30,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-        0,    3,   36,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   28,   29,   40,   40,   40,    0,   37,
-       40,   16,   40,   40,   40,   40,   40,   40,   40,   40,
-        6,   25,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,    7,    8,    9,   40,   40,   40,   40,
-
-       40,   40,   40,   10,   34,   17,   40,   32,   31,    5,
-       40,   40,   40,   40,   40,   40,   15,   11,   12,   13,
-       40,   40,   14,   40,   40,   40,   33,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   26,   40,   40,   40,
-       40,   27,   40,   40,   18,   40,   40,   40,   40,   19,
-       20,   40,   40,   40,   21,   22,   23,   40,   40,   40,
-       40,   40,   24,    0
+        0,    0,   45,   43,    2,    1,   40,   43,   43,   43,
+       37,   37,   41,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,    1,    0,   37,   39,
+        4,    3,   39,   38,   42,   42,   42,   42,   42,   32,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,    0,    3,   38,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   30,   31,   42,
+       42,   42,    0,   39,   42,   18,   42,   42,   42,   42,
+       42,    6,   42,   42,   42,   42,    8,   27,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+
+        9,   10,   11,   42,   42,   42,   42,   42,   42,   42,
+       12,   36,   19,   42,   34,   33,    5,   42,    7,   42,
+       42,   42,   42,   42,   17,   13,   14,   15,   42,   42,
+       16,   42,   42,   42,   35,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   28,   42,   42,   42,   42,   29,
+       42,   42,   20,   42,   42,   42,   42,   21,   22,   42,
+       42,   42,   23,   24,   25,   42,   42,   42,   42,   42,
+       26,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -365,112 +366,114 @@ static yyconst int yy_meta[43] =
         7,    7
     } ;
 
-static yyconst short int yy_base[172] =
+static yyconst short int yy_base[180] =
     {   0,
-        0,    0,  207,  208,  208,    0,  208,  199,    0,   38,
-       37,  198,  208,    0,  176,   16,  174,   25,  173,  170,
-      168,  159,  187,   28,  160,  168,    0,    0,  188,   31,
-      208,    0,    0,    0,    0,  159,  161,  160,   19,    0,
-      162,  158,  152,  159,  156,  153,  155,  150,  148,  151,
-      175,    0,    0,  155,  157,  157,  152,  151,  154,  153,
-       47,   70,  137,    0,    0,  134,  143,  133,  163,  162,
-      144,  154,  141,  141,  132,  126,  124,  145,  148,  145,
-      136,    0,  131,  127,  123,   54,  114,  141,  128,  111,
-      125,  112,  132,  125,  124,    0,  109,  112,  107,  114,
-
-      125,  128,  125,  116,    0,    0,  115,    0,    0,    0,
-      122,   99,   98,   97,  107,  105,    0,  108,   37,    0,
-       93,   91,    0,   91,   90,  103,    0,   99,   87,   86,
-       92,   84,   81,   96,   95,   73,    0,   79,   78,   81,
-       90,    0,   67,   58,    0,   67,   56,   39,   32,    0,
-        0,   31,   30,   55,    0,    0,    0,   47,   32,   30,
-       40,   18,    0,  208,   86,   90,   47,   91,   98,  101,
-      105
+        0,    0,  215,  216,  216,    0,  216,  207,    0,   38,
+       37,  206,  216,    0,  184,   16,  182,   25,   20,   22,
+      178,  169,  197,   29,  170,  178,    0,    0,  198,   37,
+      216,    0,    0,    0,    0,  169,  171,  170,   22,    0,
+      172,  168,  167,  165,  160,  167,  164,  161,  163,  158,
+      156,  159,  183,    0,    0,  163,  165,  165,  160,  159,
+      162,  161,  151,  148,   49,   70,  143,    0,    0,  140,
+      149,  139,  169,  168,  150,  160,  147,  147,  138,  132,
+      130,    0,  131,  150,  153,  150,  141,    0,  136,  132,
+      128,   56,  119,  146,  133,  116,  130,  117,  137,  114,
+
+      129,  128,    0,  113,  116,  111,  118,  129,  132,  129,
+      120,    0,    0,  119,    0,    0,    0,  126,    0,  103,
+      102,  101,  111,  109,    0,  112,   39,    0,   97,   95,
+        0,   95,   94,  107,    0,  103,   91,   90,   96,   88,
+       85,  100,   99,   77,    0,   83,   82,   85,   94,    0,
+       72,   71,    0,   91,   90,   72,   58,    0,    0,   46,
+       34,   59,    0,    0,    0,   53,   38,   35,   48,   25,
+        0,  216,   86,   90,   58,   91,   98,  101,  105
     } ;
 
-static yyconst short int yy_def[172] =
+static yyconst short int yy_def[180] =
     {   0,
-      164,    1,  164,  164,  164,  165,  164,  166,  167,  164,
-      166,  166,  164,  168,  168,  168,  168,  168,  168,  168,
-      168,  168,  168,  168,  168,  168,  165,  167,  166,  167,
-      164,  169,   30,  170,  168,  168,  168,  168,  168,  168,
-      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
-      171,  169,  170,  168,  168,  168,  168,  168,  168,  168,
-      168,  168,  168,  168,  168,  168,  168,  168,  171,  171,
-      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
-      168,   62,  168,  168,  168,  168,  168,  168,  168,  168,
-      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
-
-      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
-      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
-      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
-      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
-      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
-      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
-      168,  168,  168,    0,  164,  164,  164,  164,  164,  164,
-      164
+      172,    1,  172,  172,  172,  173,  172,  174,  175,  172,
+      174,  174,  172,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  173,  175,  174,  175,
+      172,  177,   30,  178,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  179,  177,  178,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  179,  179,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,   66,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,    0,  172,  172,  172,  172,  172,  172,  172
     } ;
 
-static yyconst short int yy_nxt[251] =
+static yyconst short int yy_nxt[259] =
     {   0,
         4,    5,    6,    7,    4,    8,    9,   10,   11,   12,
        12,   12,   12,   12,   12,   12,   13,   14,   14,   14,
        15,   16,   17,   18,   14,   19,   14,   20,   14,   21,
        14,   22,   23,   14,   24,   25,   14,   26,   14,   14,
-       14,   14,   31,   33,   37,   32,   40,   41,   47,   51,
-       38,   30,   48,   57,   58,   51,   78,  130,   79,  163,
-      162,   80,   81,  101,  161,  102,  160,  159,  103,  104,
-      158,  157,  156,  155,  131,  154,  153,   34,   82,   82,
-       82,   82,   82,   82,   82,   82,   27,  152,   27,   27,
-       27,   27,   27,   29,   29,   35,   35,   35,   52,  151,
-
-       52,   52,   52,   52,   52,   53,   53,   70,  150,   70,
-      149,  148,  147,  146,  145,  144,  143,  142,  141,  140,
-      139,  138,  137,  136,  135,  134,  133,  132,  129,  128,
-      127,  126,  125,  124,  123,  122,  121,  120,  119,  118,
-      117,  116,  115,  114,  113,  112,  111,  110,  109,  108,
-      107,  106,  105,  100,   99,   98,   97,   96,   95,   94,
-       93,   92,   91,   90,   89,   88,   87,  164,  164,   86,
-       85,   84,   83,   77,   76,   75,   74,   73,   72,   71,
-       69,   68,   67,   66,   65,   64,   63,   62,   61,   60,
-       59,   56,   55,   54,   33,   50,   49,   46,   45,   44,
-
-       43,   42,   39,   36,   33,   28,  164,    3,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  164,  164
+       14,   14,   31,   33,   37,   32,   40,   41,   42,   49,
+       38,   44,   45,   50,   43,   53,   59,   60,   84,  138,
+       85,   53,   30,   86,   87,  108,  171,  109,  170,  169,
+      110,  111,  168,  167,  166,  165,  139,   34,   88,   88,
+       88,   88,   88,   88,   88,   88,   27,  164,   27,   27,
+       27,   27,   27,   29,   29,   35,   35,   35,   54,  163,
+
+       54,   54,   54,   54,   54,   55,   55,   74,  162,   74,
+      161,  160,  159,  158,  157,  156,  155,  154,  153,  152,
+      151,  150,  149,  148,  147,  146,  145,  144,  143,  142,
+      141,  140,  137,  136,  135,  134,  133,  132,  131,  130,
+      129,  128,  127,  126,  125,  124,  123,  122,  121,  120,
+      119,  118,  117,  116,  115,  114,  113,  112,  107,  106,
+      105,  104,  103,  102,  101,  100,   99,   98,   97,   96,
+       95,   94,   93,  172,  172,   92,   91,   90,   89,   83,
+       82,   81,   80,   79,   78,   77,   76,   75,   73,   72,
+       71,   70,   69,   68,   67,   66,   65,   64,   63,   62,
+
+       61,   58,   57,   56,   33,   52,   51,   48,   47,   46,
+       39,   36,   33,   28,  172,    3,  172,  172,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172
     } ;
 
-static yyconst short int yy_chk[251] =
+static yyconst short int yy_chk[259] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,   10,   11,   16,   10,   18,   18,   24,   30,
-       16,  167,   24,   39,   39,   30,   61,  119,   61,  162,
-      161,   61,   61,   86,  160,   86,  159,  158,   86,   86,
-      154,  153,  152,  149,  119,  148,  147,   11,   62,   62,
-       62,   62,   62,   62,   62,   62,  165,  146,  165,  165,
-      165,  165,  165,  166,  166,  168,  168,  168,  169,  144,
-
-      169,  169,  169,  169,  169,  170,  170,  171,  143,  171,
-      141,  140,  139,  138,  136,  135,  134,  133,  132,  131,
-      130,  129,  128,  126,  125,  124,  122,  121,  118,  116,
-      115,  114,  113,  112,  111,  107,  104,  103,  102,  101,
-      100,   99,   98,   97,   95,   94,   93,   92,   91,   90,
-       89,   88,   87,   85,   84,   83,   81,   80,   79,   78,
-       77,   76,   75,   74,   73,   72,   71,   70,   69,   68,
-       67,   66,   63,   60,   59,   58,   57,   56,   55,   54,
+        1,    1,   10,   11,   16,   10,   18,   18,   19,   24,
+       16,   20,   20,   24,   19,   30,   39,   39,   65,  127,
+       65,   30,  175,   65,   65,   92,  170,   92,  169,  168,
+       92,   92,  167,  166,  162,  161,  127,   11,   66,   66,
+       66,   66,   66,   66,   66,   66,  173,  160,  173,  173,
+      173,  173,  173,  174,  174,  176,  176,  176,  177,  157,
+
+      177,  177,  177,  177,  177,  178,  178,  179,  156,  179,
+      155,  154,  152,  151,  149,  148,  147,  146,  144,  143,
+      142,  141,  140,  139,  138,  137,  136,  134,  133,  132,
+      130,  129,  126,  124,  123,  122,  121,  120,  118,  114,
+      111,  110,  109,  108,  107,  106,  105,  104,  102,  101,
+      100,   99,   98,   97,   96,   95,   94,   93,   91,   90,
+       89,   87,   86,   85,   84,   83,   81,   80,   79,   78,
+       77,   76,   75,   74,   73,   72,   71,   70,   67,   64,
+       63,   62,   61,   60,   59,   58,   57,   56,   53,   52,
        51,   50,   49,   48,   47,   46,   45,   44,   43,   42,
-       41,   38,   37,   36,   29,   26,   25,   23,   22,   21,
 
-       20,   19,   17,   15,   12,    8,    3,  164,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  164,  164
+       41,   38,   37,   36,   29,   26,   25,   23,   22,   21,
+       17,   15,   12,    8,    3,  172,  172,  172,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -773,7 +776,7 @@ inline void accept() {
   col_number += yyleng;
 }
 
-#line 778 "lex.yy.c"
+#line 781 "lex.yy.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -930,7 +933,7 @@ YY_DECL
 
 
 
-#line 935 "lex.yy.c"
+#line 938 "lex.yy.c"
 
 	if ( yy_init )
 		{
@@ -981,13 +984,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 >= 165 )
+				if ( yy_current_state >= 173 )
 					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] != 208 );
+		while ( yy_base[yy_current_state] != 216 );
 
 yy_find_action:
 		yy_act = yy_accept[yy_current_state];
@@ -1068,7 +1071,7 @@ YY_RULE_SETUP
 #line 336 "dcLexer.lxx"
 {
   accept();
-  return KW_INT8;
+  return KW_FROM;
 }
 	YY_BREAK
 case 7:
@@ -1076,7 +1079,7 @@ YY_RULE_SETUP
 #line 341 "dcLexer.lxx"
 {
   accept();
-  return KW_INT16;
+  return KW_IMPORT;
 }
 	YY_BREAK
 case 8:
@@ -1084,7 +1087,7 @@ YY_RULE_SETUP
 #line 346 "dcLexer.lxx"
 {
   accept();
-  return KW_INT32;
+  return KW_INT8;
 }
 	YY_BREAK
 case 9:
@@ -1092,7 +1095,7 @@ YY_RULE_SETUP
 #line 351 "dcLexer.lxx"
 {
   accept();
-  return KW_INT64;
+  return KW_INT16;
 }
 	YY_BREAK
 case 10:
@@ -1100,7 +1103,7 @@ YY_RULE_SETUP
 #line 356 "dcLexer.lxx"
 {
   accept();
-  return KW_UINT8;
+  return KW_INT32;
 }
 	YY_BREAK
 case 11:
@@ -1108,7 +1111,7 @@ YY_RULE_SETUP
 #line 361 "dcLexer.lxx"
 {
   accept();
-  return KW_UINT16;
+  return KW_INT64;
 }
 	YY_BREAK
 case 12:
@@ -1116,7 +1119,7 @@ YY_RULE_SETUP
 #line 366 "dcLexer.lxx"
 {
   accept();
-  return KW_UINT32;
+  return KW_UINT8;
 }
 	YY_BREAK
 case 13:
@@ -1124,7 +1127,7 @@ YY_RULE_SETUP
 #line 371 "dcLexer.lxx"
 {
   accept();
-  return KW_UINT64;
+  return KW_UINT16;
 }
 	YY_BREAK
 case 14:
@@ -1132,7 +1135,7 @@ YY_RULE_SETUP
 #line 376 "dcLexer.lxx"
 {
   accept();
-  return KW_FLOAT64;
+  return KW_UINT32;
 }
 	YY_BREAK
 case 15:
@@ -1140,7 +1143,7 @@ YY_RULE_SETUP
 #line 381 "dcLexer.lxx"
 {
   accept();
-  return KW_STRING;
+  return KW_UINT64;
 }
 	YY_BREAK
 case 16:
@@ -1148,7 +1151,7 @@ YY_RULE_SETUP
 #line 386 "dcLexer.lxx"
 {
   accept();
-  return KW_BLOB;
+  return KW_FLOAT64;
 }
 	YY_BREAK
 case 17:
@@ -1156,7 +1159,7 @@ YY_RULE_SETUP
 #line 391 "dcLexer.lxx"
 {
   accept();
-  return KW_BLOB32;
+  return KW_STRING;
 }
 	YY_BREAK
 case 18:
@@ -1164,7 +1167,7 @@ YY_RULE_SETUP
 #line 396 "dcLexer.lxx"
 {
   accept();
-  return KW_INT8ARRAY;
+  return KW_BLOB;
 }
 	YY_BREAK
 case 19:
@@ -1172,7 +1175,7 @@ YY_RULE_SETUP
 #line 401 "dcLexer.lxx"
 {
   accept();
-  return KW_INT16ARRAY;
+  return KW_BLOB32;
 }
 	YY_BREAK
 case 20:
@@ -1180,7 +1183,7 @@ YY_RULE_SETUP
 #line 406 "dcLexer.lxx"
 {
   accept();
-  return KW_INT32ARRAY;
+  return KW_INT8ARRAY;
 }
 	YY_BREAK
 case 21:
@@ -1188,7 +1191,7 @@ YY_RULE_SETUP
 #line 411 "dcLexer.lxx"
 {
   accept();
-  return KW_UINT8ARRAY;
+  return KW_INT16ARRAY;
 }
 	YY_BREAK
 case 22:
@@ -1196,7 +1199,7 @@ YY_RULE_SETUP
 #line 416 "dcLexer.lxx"
 {
   accept();
-  return KW_UINT16ARRAY;
+  return KW_INT32ARRAY;
 }
 	YY_BREAK
 case 23:
@@ -1204,7 +1207,7 @@ YY_RULE_SETUP
 #line 421 "dcLexer.lxx"
 {
   accept();
-  return KW_UINT32ARRAY;
+  return KW_UINT8ARRAY;
 }
 	YY_BREAK
 case 24:
@@ -1212,34 +1215,34 @@ YY_RULE_SETUP
 #line 426 "dcLexer.lxx"
 {
   accept();
-  return KW_UINT32UINT8ARRAY;
+  return KW_UINT16ARRAY;
 }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
 #line 431 "dcLexer.lxx"
 {
-  // A molecular keyword.
   accept();
-  dcyylval.u.integer = atoi(dcyytext + 3); 
-  dcyylval.str = yytext;
-  return KW_MOL; 
+  return KW_UINT32ARRAY;
 }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 439 "dcLexer.lxx"
+#line 436 "dcLexer.lxx"
 {
   accept();
-  return KW_REQUIRED;
+  return KW_UINT32UINT8ARRAY;
 }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 444 "dcLexer.lxx"
+#line 441 "dcLexer.lxx"
 {
+  // A molecular keyword.
   accept();
-  return KW_BROADCAST;
+  dcyylval.u.integer = atoi(dcyytext + 3); 
+  dcyylval.str = yytext;
+  return KW_MOL; 
 }
 	YY_BREAK
 case 28:
@@ -1247,7 +1250,7 @@ YY_RULE_SETUP
 #line 449 "dcLexer.lxx"
 {
   accept();
-  return KW_P2P;
+  return KW_REQUIRED;
 }
 	YY_BREAK
 case 29:
@@ -1255,7 +1258,7 @@ YY_RULE_SETUP
 #line 454 "dcLexer.lxx"
 {
   accept();
-  return KW_RAM;
+  return KW_BROADCAST;
 }
 	YY_BREAK
 case 30:
@@ -1263,7 +1266,7 @@ YY_RULE_SETUP
 #line 459 "dcLexer.lxx"
 {
   accept();
-  return KW_DB;
+  return KW_P2P;
 }
 	YY_BREAK
 case 31:
@@ -1271,7 +1274,7 @@ YY_RULE_SETUP
 #line 464 "dcLexer.lxx"
 {
   accept();
-  return KW_CLSEND;
+  return KW_RAM;
 }
 	YY_BREAK
 case 32:
@@ -1279,7 +1282,7 @@ YY_RULE_SETUP
 #line 469 "dcLexer.lxx"
 {
   accept();
-  return KW_CLRECV;
+  return KW_DB;
 }
 	YY_BREAK
 case 33:
@@ -1287,7 +1290,7 @@ YY_RULE_SETUP
 #line 474 "dcLexer.lxx"
 {
   accept();
-  return KW_OWNSEND;
+  return KW_CLSEND;
 }
 	YY_BREAK
 case 34:
@@ -1295,12 +1298,28 @@ YY_RULE_SETUP
 #line 479 "dcLexer.lxx"
 {
   accept();
-  return KW_AIRECV;
+  return KW_CLRECV;
 }
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
 #line 484 "dcLexer.lxx"
+{
+  accept();
+  return KW_OWNSEND;
+}
+	YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 489 "dcLexer.lxx"
+{
+  accept();
+  return KW_AIRECV;
+}
+	YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 494 "dcLexer.lxx"
 { 
   // An integer number.
   accept(); 
@@ -1309,9 +1328,9 @@ YY_RULE_SETUP
   return INTEGER; 
 }
 	YY_BREAK
-case 36:
+case 38:
 YY_RULE_SETUP
-#line 492 "dcLexer.lxx"
+#line 502 "dcLexer.lxx"
 {
   // A hexadecimal integer number.
   accept(); 
@@ -1320,9 +1339,9 @@ YY_RULE_SETUP
   return INTEGER; 
 }
 	YY_BREAK
-case 37:
+case 39:
 YY_RULE_SETUP
-#line 500 "dcLexer.lxx"
+#line 510 "dcLexer.lxx"
 { 
   // A floating-point number.
   accept(); 
@@ -1331,9 +1350,9 @@ YY_RULE_SETUP
   return REAL; 
 }
 	YY_BREAK
-case 38:
+case 40:
 YY_RULE_SETUP
-#line 508 "dcLexer.lxx"
+#line 518 "dcLexer.lxx"
 {
   // Quoted string.
   accept();
@@ -1341,9 +1360,9 @@ YY_RULE_SETUP
   return STRING;
 }
 	YY_BREAK
-case 39:
+case 41:
 YY_RULE_SETUP
-#line 515 "dcLexer.lxx"
+#line 525 "dcLexer.lxx"
 {
   // Long hex string.
   accept();
@@ -1351,9 +1370,9 @@ YY_RULE_SETUP
   return HEX_STRING;
 }
 	YY_BREAK
-case 40:
+case 42:
 YY_RULE_SETUP
-#line 522 "dcLexer.lxx"
+#line 532 "dcLexer.lxx"
 { 
   // Identifier.
   accept();
@@ -1361,21 +1380,21 @@ YY_RULE_SETUP
   return IDENTIFIER;
 }
 	YY_BREAK
-case 41:
+case 43:
 YY_RULE_SETUP
-#line 530 "dcLexer.lxx"
+#line 540 "dcLexer.lxx"
 {
   // Send any other printable character as itself.
   accept(); 
   return dcyytext[0];
 }
 	YY_BREAK
-case 42:
+case 44:
 YY_RULE_SETUP
-#line 536 "dcLexer.lxx"
+#line 546 "dcLexer.lxx"
 ECHO;
 	YY_BREAK
-#line 1380 "lex.yy.c"
+#line 1399 "lex.yy.c"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -1667,7 +1686,7 @@ static yy_state_type yy_get_previous_state()
 		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 >= 165 )
+			if ( yy_current_state >= 173 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1702,11 +1721,11 @@ yy_state_type yy_current_state;
 	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 >= 165 )
+		if ( yy_current_state >= 173 )
 			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 == 164);
+	yy_is_jam = (yy_current_state == 172);
 
 	return yy_is_jam ? 0 : yy_current_state;
 	}
@@ -2256,4 +2275,4 @@ int main()
 	return 0;
 	}
 #endif
-#line 536 "dcLexer.lxx"
+#line 546 "dcLexer.lxx"

+ 307 - 269
direct/src/dcparser/dcParser.cxx.prebuilt

@@ -16,35 +16,37 @@
 # define	HEX_STRING	260
 # define	IDENTIFIER	261
 # define	KW_DCLASS	262
-# define	KW_INT8	263
-# define	KW_INT16	264
-# define	KW_INT32	265
-# define	KW_INT64	266
-# define	KW_UINT8	267
-# define	KW_UINT16	268
-# define	KW_UINT32	269
-# define	KW_UINT64	270
-# define	KW_FLOAT64	271
-# define	KW_STRING	272
-# define	KW_BLOB	273
-# define	KW_BLOB32	274
-# define	KW_INT8ARRAY	275
-# define	KW_INT16ARRAY	276
-# define	KW_INT32ARRAY	277
-# define	KW_UINT8ARRAY	278
-# define	KW_UINT16ARRAY	279
-# define	KW_UINT32ARRAY	280
-# define	KW_UINT32UINT8ARRAY	281
-# define	KW_MOL	282
-# define	KW_REQUIRED	283
-# define	KW_BROADCAST	284
-# define	KW_P2P	285
-# define	KW_RAM	286
-# define	KW_DB	287
-# define	KW_CLSEND	288
-# define	KW_CLRECV	289
-# define	KW_OWNSEND	290
-# define	KW_AIRECV	291
+# define	KW_FROM	263
+# define	KW_IMPORT	264
+# define	KW_INT8	265
+# define	KW_INT16	266
+# define	KW_INT32	267
+# define	KW_INT64	268
+# define	KW_UINT8	269
+# define	KW_UINT16	270
+# define	KW_UINT32	271
+# define	KW_UINT64	272
+# define	KW_FLOAT64	273
+# define	KW_STRING	274
+# define	KW_BLOB	275
+# define	KW_BLOB32	276
+# define	KW_INT8ARRAY	277
+# define	KW_INT16ARRAY	278
+# define	KW_INT32ARRAY	279
+# define	KW_UINT8ARRAY	280
+# define	KW_UINT16ARRAY	281
+# define	KW_UINT32ARRAY	282
+# define	KW_UINT32UINT8ARRAY	283
+# define	KW_MOL	284
+# define	KW_REQUIRED	285
+# define	KW_BROADCAST	286
+# define	KW_P2P	287
+# define	KW_RAM	288
+# define	KW_DB	289
+# define	KW_CLSEND	290
+# define	KW_CLRECV	291
+# define	KW_OWNSEND	292
+# define	KW_AIRECV	293
 
 #line 6 "dcParser.yxx"
 
@@ -90,12 +92,12 @@ dc_cleanup_parser() {
 
 
 
-#define	YYFINAL		103
+#define	YYFINAL		116
 #define	YYFLAG		-32768
-#define	YYNTBASE	48
+#define	YYNTBASE	50
 
 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
-#define YYTRANSLATE(x) ((unsigned)(x) <= 291 ? yytranslate[x] : 73)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 293 ? yytranslate[x] : 79)
 
 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
 static const char yytranslate[] =
@@ -104,15 +106,15 @@ static const char yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-      43,    44,    47,     2,    42,     2,     2,    45,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    41,    38,
-       2,    46,     2,     2,     2,     2,     2,     2,     2,     2,
+      46,    47,    43,     2,    44,     2,     2,    48,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    45,    40,
+       2,    49,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    39,     2,    40,     2,     2,     2,     2,
+       2,     2,     2,    41,     2,    42,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -129,45 +131,48 @@ static const char yytranslate[] =
        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37
+      36,    37,    38,    39
 };
 
 #if YYDEBUG
 static const short yyprhs[] =
 {
-       0,     0,     2,     5,     8,     9,    17,    19,    21,    24,
-      26,    30,    32,    35,    38,    41,    42,    49,    51,    53,
-      55,    57,    61,    62,    66,    68,    72,    75,    79,    83,
-      87,    91,    97,    99,   102,   104,   106,   108,   112,   114,
-     116,   118,   120,   124,   128,   132,   134,   136,   138,   140,
-     142,   144,   146,   148,   150,   152,   154,   156,   158,   160,
-     162,   164,   166,   168,   170,   172,   175,   178,   181,   184,
-     187,   190,   193,   196,   199,   200,   205,   207,   211
+       0,     0,     2,     5,     8,    11,    12,    20,    22,    25,
+      26,    32,    34,    36,    38,    42,    44,    47,    49,    53,
+      55,    58,    61,    64,    65,    72,    74,    76,    78,    80,
+      84,    85,    89,    91,    95,    98,   102,   106,   110,   114,
+     120,   122,   125,   127,   129,   131,   135,   137,   139,   141,
+     143,   147,   151,   155,   157,   159,   161,   163,   165,   167,
+     169,   171,   173,   175,   177,   179,   181,   183,   185,   187,
+     189,   191,   193,   195,   198,   201,   204,   207,   210,   213,
+     216,   219,   222,   223,   228,   230,   234
 };
 static const short yyrhs[] =
 {
-      72,     0,    48,    38,     0,    48,    49,     0,     0,     8,
-       7,    50,    52,    39,    54,    40,     0,     7,     0,    72,
-       0,    41,    53,     0,    51,     0,    53,    42,    51,     0,
-      72,     0,    54,    38,     0,    54,    55,     0,    54,    69,
-       0,     0,     7,    43,    56,    58,    44,    68,     0,     7,
-       0,    72,     0,    59,     0,    60,     0,    59,    42,    60,
-       0,     0,    67,    61,    62,     0,    72,     0,    62,    45,
-       3,     0,    62,     7,     0,    62,    46,     3,     0,    62,
-      46,     4,     0,    62,    46,     5,     0,    62,    46,     6,
-       0,    62,    46,    39,    63,    40,     0,    72,     0,    65,
-      64,     0,    72,     0,    42,     0,    66,     0,    65,    42,
-      66,     0,     3,     0,     4,     0,     5,     0,     6,     0,
-       3,    47,     3,     0,     4,    47,     3,     0,     6,    47,
-       3,     0,     9,     0,    10,     0,    11,     0,    12,     0,
-      13,     0,    14,     0,    15,     0,    16,     0,    17,     0,
-      18,     0,    19,     0,    20,     0,    21,     0,    22,     0,
-      23,     0,    24,     0,    25,     0,    26,     0,    27,     0,
-      72,     0,    68,    29,     0,    68,    30,     0,    68,    31,
-       0,    68,    32,     0,    68,    33,     0,    68,    34,     0,
-      68,    35,     0,    68,    36,     0,    68,    37,     0,     0,
-       7,    41,    70,    71,     0,    57,     0,    71,    42,    57,
-       0,     0
+      78,     0,    50,    40,     0,    50,    51,     0,    50,    54,
+       0,     0,     8,     7,    52,    58,    41,    60,    42,     0,
+       7,     0,    10,     7,     0,     0,     9,     7,    10,    55,
+      56,     0,    57,     0,    43,     0,     7,     0,    57,    44,
+       7,     0,    78,     0,    45,    59,     0,    53,     0,    59,
+      44,    53,     0,    78,     0,    60,    40,     0,    60,    61,
+       0,    60,    75,     0,     0,     7,    46,    62,    64,    47,
+      74,     0,     7,     0,    78,     0,    65,     0,    66,     0,
+      65,    44,    66,     0,     0,    73,    67,    68,     0,    78,
+       0,    68,    48,     3,     0,    68,     7,     0,    68,    49,
+       3,     0,    68,    49,     4,     0,    68,    49,     5,     0,
+      68,    49,     6,     0,    68,    49,    41,    69,    42,     0,
+      78,     0,    71,    70,     0,    78,     0,    44,     0,    72,
+       0,    71,    44,    72,     0,     3,     0,     4,     0,     5,
+       0,     6,     0,     3,    43,     3,     0,     4,    43,     3,
+       0,     6,    43,     3,     0,    11,     0,    12,     0,    13,
+       0,    14,     0,    15,     0,    16,     0,    17,     0,    18,
+       0,    19,     0,    20,     0,    21,     0,    22,     0,    23,
+       0,    24,     0,    25,     0,    26,     0,    27,     0,    28,
+       0,    29,     0,    78,     0,    74,    31,     0,    74,    32,
+       0,    74,    33,     0,    74,    34,     0,    74,    35,     0,
+      74,    36,     0,    74,    37,     0,    74,    38,     0,    74,
+      39,     0,     0,     7,    45,    76,    77,     0,    63,     0,
+      77,    44,    63,     0,     0
 };
 
 #endif
@@ -176,14 +181,15 @@ static const short yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
 static const short yyrline[] =
 {
-       0,    89,    91,    92,    95,    95,   107,   121,   123,   126,
-     133,   141,   143,   144,   145,   148,   148,   160,   176,   178,
-     181,   183,   186,   186,   198,   200,   204,   208,   214,   220,
-     226,   232,   242,   244,   247,   249,   252,   254,   257,   264,
-     270,   276,   282,   291,   300,   311,   316,   320,   324,   328,
-     332,   336,   340,   344,   348,   352,   356,   360,   364,   368,
-     372,   376,   380,   384,   390,   392,   396,   400,   404,   408,
-     412,   416,   420,   424,   430,   430,   442,   449,   462
+       0,    91,    93,    94,    95,    98,    98,   109,   123,   128,
+     128,   135,   137,   143,   148,   154,   156,   159,   166,   174,
+     176,   177,   178,   181,   181,   192,   208,   210,   213,   215,
+     218,   218,   230,   232,   236,   240,   246,   252,   258,   264,
+     274,   276,   279,   281,   284,   286,   289,   296,   302,   308,
+     314,   323,   332,   343,   348,   352,   356,   360,   364,   368,
+     372,   376,   380,   384,   388,   392,   396,   400,   404,   408,
+     412,   416,   422,   424,   428,   432,   436,   440,   444,   448,
+     452,   456,   462,   462,   473,   480,   493
 };
 #endif
 
@@ -194,47 +200,50 @@ static const short yyrline[] =
 static const char *const yytname[] =
 {
   "$", "error", "$undefined.", "INTEGER", "REAL", "STRING", "HEX_STRING", 
-  "IDENTIFIER", "KW_DCLASS", "KW_INT8", "KW_INT16", "KW_INT32", 
-  "KW_INT64", "KW_UINT8", "KW_UINT16", "KW_UINT32", "KW_UINT64", 
-  "KW_FLOAT64", "KW_STRING", "KW_BLOB", "KW_BLOB32", "KW_INT8ARRAY", 
-  "KW_INT16ARRAY", "KW_INT32ARRAY", "KW_UINT8ARRAY", "KW_UINT16ARRAY", 
-  "KW_UINT32ARRAY", "KW_UINT32UINT8ARRAY", "KW_MOL", "KW_REQUIRED", 
-  "KW_BROADCAST", "KW_P2P", "KW_RAM", "KW_DB", "KW_CLSEND", "KW_CLRECV", 
-  "KW_OWNSEND", "KW_AIRECV", "';'", "'{'", "'}'", "':'", "','", "'('", 
-  "')'", "'/'", "'='", "'*'", "dc", "dclass", "@1", "dclass_name", 
-  "dclass_derivation", "base_list", "dclass_fields", "atomic_field", "@2", 
-  "atomic_name", "parameter_list", "nonempty_parameter_list", 
-  "atomic_element", "@3", "atomic_element_definition", "default_array", 
-  "maybe_comma", "default_array_def", "default_array_element", 
-  "type_token", "atomic_flags", "molecular_field", "@4", 
-  "molecular_atom_list", "empty", 0
+  "IDENTIFIER", "KW_DCLASS", "KW_FROM", "KW_IMPORT", "KW_INT8", 
+  "KW_INT16", "KW_INT32", "KW_INT64", "KW_UINT8", "KW_UINT16", 
+  "KW_UINT32", "KW_UINT64", "KW_FLOAT64", "KW_STRING", "KW_BLOB", 
+  "KW_BLOB32", "KW_INT8ARRAY", "KW_INT16ARRAY", "KW_INT32ARRAY", 
+  "KW_UINT8ARRAY", "KW_UINT16ARRAY", "KW_UINT32ARRAY", 
+  "KW_UINT32UINT8ARRAY", "KW_MOL", "KW_REQUIRED", "KW_BROADCAST", 
+  "KW_P2P", "KW_RAM", "KW_DB", "KW_CLSEND", "KW_CLRECV", "KW_OWNSEND", 
+  "KW_AIRECV", "';'", "'{'", "'}'", "'*'", "','", "':'", "'('", "')'", 
+  "'/'", "'='", "dc", "dclass", "@1", "dclass_name", "import", "@2", 
+  "import_symbol_list_or_star", "import_symbol_list", "dclass_derivation", 
+  "base_list", "dclass_fields", "atomic_field", "@3", "atomic_name", 
+  "parameter_list", "nonempty_parameter_list", "atomic_element", "@4", 
+  "atomic_element_definition", "default_array", "maybe_comma", 
+  "default_array_def", "default_array_element", "type_token", 
+  "atomic_flags", "molecular_field", "@5", "molecular_atom_list", "empty", 0
 };
 #endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
 static const short yyr1[] =
 {
-       0,    48,    48,    48,    50,    49,    51,    52,    52,    53,
-      53,    54,    54,    54,    54,    56,    55,    57,    58,    58,
-      59,    59,    61,    60,    62,    62,    62,    62,    62,    62,
-      62,    62,    63,    63,    64,    64,    65,    65,    66,    66,
-      66,    66,    66,    66,    66,    67,    67,    67,    67,    67,
-      67,    67,    67,    67,    67,    67,    67,    67,    67,    67,
-      67,    67,    67,    67,    68,    68,    68,    68,    68,    68,
-      68,    68,    68,    68,    70,    69,    71,    71,    72
+       0,    50,    50,    50,    50,    52,    51,    53,    54,    55,
+      54,    56,    56,    57,    57,    58,    58,    59,    59,    60,
+      60,    60,    60,    62,    61,    63,    64,    64,    65,    65,
+      67,    66,    68,    68,    68,    68,    68,    68,    68,    68,
+      69,    69,    70,    70,    71,    71,    72,    72,    72,    72,
+      72,    72,    72,    73,    73,    73,    73,    73,    73,    73,
+      73,    73,    73,    73,    73,    73,    73,    73,    73,    73,
+      73,    73,    74,    74,    74,    74,    74,    74,    74,    74,
+      74,    74,    76,    75,    77,    77,    78
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
 static const short yyr2[] =
 {
-       0,     1,     2,     2,     0,     7,     1,     1,     2,     1,
-       3,     1,     2,     2,     2,     0,     6,     1,     1,     1,
-       1,     3,     0,     3,     1,     3,     2,     3,     3,     3,
-       3,     5,     1,     2,     1,     1,     1,     3,     1,     1,
-       1,     1,     3,     3,     3,     1,     1,     1,     1,     1,
+       0,     1,     2,     2,     2,     0,     7,     1,     2,     0,
+       5,     1,     1,     1,     3,     1,     2,     1,     3,     1,
+       2,     2,     2,     0,     6,     1,     1,     1,     1,     3,
+       0,     3,     1,     3,     2,     3,     3,     3,     3,     5,
+       1,     2,     1,     1,     1,     3,     1,     1,     1,     1,
+       3,     3,     3,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     0,     4,     1,     3,     0
+       1,     1,     1,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     0,     4,     1,     3,     0
 };
 
 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
@@ -242,76 +251,78 @@ static const short yyr2[] =
    error. */
 static const short yydefact[] =
 {
-      78,     0,     1,     0,     2,     3,     4,    78,     0,     0,
-       7,     6,     9,     8,    78,     0,     0,    11,    10,     0,
-      12,     5,    13,    14,    74,    15,     0,    78,    17,    76,
-      75,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-       0,    19,    20,    22,    18,     0,    78,     0,    78,    77,
-      16,    64,    21,    23,    24,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    26,     0,     0,    25,    27,    28,
-      29,    30,    78,    38,    39,    40,    41,     0,    78,    36,
-      32,     0,     0,     0,    31,    35,    33,    34,    42,    43,
-      44,    37,     0,     0
+      86,     0,     1,     0,     0,     0,     2,     3,     4,     5,
+       0,     8,    86,     9,     0,     0,    15,     0,     7,    17,
+      16,    86,    13,    12,    10,    11,     0,     0,    19,     0,
+      18,     0,    20,     6,    21,    22,    14,    82,    23,     0,
+      86,    25,    84,    83,    53,    54,    55,    56,    57,    58,
+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,    71,     0,    27,    28,    30,    26,     0,    86,
+       0,    86,    85,    24,    72,    29,    31,    32,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    34,     0,     0,
+      33,    35,    36,    37,    38,    86,    46,    47,    48,    49,
+       0,    86,    44,    40,     0,     0,     0,    39,    43,    41,
+      42,    50,    51,    52,    45,     0,     0
 };
 
 static const short yydefgoto[] =
 {
-       1,     5,     7,    12,     9,    13,    16,    22,    27,    29,
-      50,    51,    52,    58,    63,    87,    96,    88,    89,    53,
-      60,    23,    26,    30,     2
+       1,     7,    12,    19,     8,    17,    24,    25,    15,    20,
+      27,    34,    40,    42,    63,    64,    65,    71,    76,   100,
+     109,   101,   102,    66,    73,    35,    39,    43,     2
 };
 
 static const short yypact[] =
 {
-  -32768,     3,-32768,    -2,-32768,-32768,-32768,   -33,     2,   -29,
-  -32768,-32768,-32768,   -12,-32768,     2,    -5,-32768,-32768,   -37,
-  -32768,-32768,-32768,-32768,-32768,-32768,    24,    43,-32768,-32768,
-     -10,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+  -32768,     4,-32768,    -4,     3,    17,-32768,-32768,-32768,-32768,
+       1,-32768,   -40,-32768,    18,   -18,-32768,    -5,-32768,-32768,
+     -17,-32768,-32768,-32768,-32768,     2,    18,    -1,-32768,    19,
+  -32768,   -38,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    33,
+      49,-32768,-32768,     5,-32768,-32768,-32768,-32768,-32768,-32768,
   -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-      -1,    -4,-32768,-32768,-32768,    24,-32768,    43,-32768,-32768,
-      -8,-32768,-32768,    -6,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,    31,     9,-32768,-32768,-32768,
-  -32768,-32768,    13,   -11,    -3,-32768,     0,     5,     4,-32768,
-  -32768,    34,    39,    47,-32768,    13,-32768,-32768,-32768,-32768,
-  -32768,-32768,    71,-32768
+  -32768,-32768,-32768,     0,     6,-32768,-32768,-32768,    33,-32768,
+      49,-32768,-32768,    -2,-32768,-32768,    -6,-32768,-32768,-32768,
+  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    42,    12,
+  -32768,-32768,-32768,-32768,-32768,    16,     8,     9,-32768,    11,
+      13,    14,-32768,-32768,    45,    53,    76,-32768,    16,-32768,
+  -32768,-32768,-32768,-32768,-32768,    80,-32768
 };
 
 static const short yypgoto[] =
 {
-  -32768,-32768,-32768,    57,-32768,-32768,-32768,-32768,-32768,    18,
-  -32768,-32768,    17,-32768,-32768,-32768,-32768,-32768,   -19,-32768,
-  -32768,-32768,-32768,-32768,    -7
+  -32768,-32768,-32768,    55,-32768,-32768,-32768,-32768,-32768,-32768,
+  -32768,-32768,-32768,    20,-32768,-32768,    15,-32768,-32768,-32768,
+  -32768,-32768,   -26,-32768,-32768,-32768,-32768,-32768,   -12
 };
 
 
-#define	YYLAST		81
+#define	YYLAST		89
 
 
 static const short yytable[] =
 {
-      10,    74,    19,   102,    24,     6,    25,    17,     8,    11,
-      14,     3,    78,    79,    80,    81,    83,    84,    85,    86,
-      54,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      15,    28,    55,    20,    77,    21,    91,    98,    57,    75,
-      76,     4,    99,    56,    92,    94,    95,    93,    82,    61,
-     100,    64,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,   103,    18,    59,    62,    90,   101,     0,     0,     0,
-       0,    97
+      16,    87,    22,     9,   115,    14,    31,    37,    38,    28,
+      10,    13,     3,     4,     5,    91,    92,    93,    94,    96,
+      97,    98,    99,    21,    11,    18,    36,    26,    67,    78,
+      79,    80,    81,    82,    83,    84,    85,    86,    23,    32,
+      41,    33,    88,    89,     6,    90,    29,    69,   111,    68,
+      70,   104,   105,    95,   106,   107,   112,    74,   108,    77,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,   113,
+     116,    30,   114,   103,     0,    75,     0,     0,    72,   110
 };
 
 static const short yycheck[] =
 {
-       7,     7,     7,     0,    41,     7,    43,    14,    41,     7,
-      39,     8,     3,     4,     5,     6,     3,     4,     5,     6,
-      27,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-      42,     7,    42,    38,     3,    40,    47,     3,    42,    45,
-      46,    38,     3,    44,    47,    40,    42,    47,    39,    56,
-       3,    58,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,     0,    15,    55,    57,    82,    95,    -1,    -1,    -1,
-      -1,    88
+      12,     7,     7,     7,     0,    45,     7,    45,    46,    21,
+       7,    10,     8,     9,    10,     3,     4,     5,     6,     3,
+       4,     5,     6,    41,     7,     7,     7,    44,    40,    31,
+      32,    33,    34,    35,    36,    37,    38,    39,    43,    40,
+       7,    42,    48,    49,    40,     3,    44,    47,     3,    44,
+      44,    43,    43,    41,    43,    42,     3,    69,    44,    71,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,     3,
+       0,    26,   108,    95,    -1,    70,    -1,    -1,    68,   101
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/share/bison/bison.simple"
@@ -1020,18 +1031,17 @@ yyreduce:
 
   switch (yyn) {
 
-case 4:
-#line 97 "dcParser.yxx"
+case 5:
+#line 100 "dcParser.yxx"
 {
-  current_class = new DCClass;
-  current_class->_name = yyvsp[0].str;
+  current_class = new DCClass(yyvsp[0].str);
   if (!dc_file->add_class(current_class)) {
-    yyerror("Duplicate class name: " + current_class->_name);
+    yyerror("Duplicate class name: " + current_class->get_name());
   }
 }
     break;
-case 6:
-#line 109 "dcParser.yxx"
+case 7:
+#line 111 "dcParser.yxx"
 {
   DCFile::ClassesByName::const_iterator ni;
   ni = dc_file->_classes_by_name.find(yyvsp[0].str);
@@ -1043,34 +1053,63 @@ case 6:
   }
 }
     break;
+case 8:
+#line 125 "dcParser.yxx"
+{
+  dc_file->add_import_module(yyvsp[0].str);
+}
+    break;
 case 9:
-#line 128 "dcParser.yxx"
+#line 129 "dcParser.yxx"
+{
+  dc_file->add_import_module(yyvsp[-1].str);
+}
+    break;
+case 12:
+#line 138 "dcParser.yxx"
+{
+  dc_file->add_import_symbol("*");
+}
+    break;
+case 13:
+#line 145 "dcParser.yxx"
+{
+  dc_file->add_import_symbol(yyvsp[0].str);
+}
+    break;
+case 14:
+#line 149 "dcParser.yxx"
+{
+  dc_file->add_import_symbol(yyvsp[0].str);
+}
+    break;
+case 17:
+#line 161 "dcParser.yxx"
 {
   if (yyvsp[0].u.dclass != (DCClass *)NULL) {
-    current_class->_parents.push_back(yyvsp[0].u.dclass);
+    current_class->add_parent(yyvsp[0].u.dclass);
   }
 }
     break;
-case 10:
-#line 134 "dcParser.yxx"
+case 18:
+#line 167 "dcParser.yxx"
 {
   if (yyvsp[0].u.dclass != (DCClass *)NULL) {
-    current_class->_parents.push_back(yyvsp[0].u.dclass);
+    current_class->add_parent(yyvsp[0].u.dclass);
   }
 }
     break;
-case 15:
-#line 150 "dcParser.yxx"
+case 23:
+#line 183 "dcParser.yxx"
 {
-  current_atomic = new DCAtomicField;
-  current_atomic->_name = yyvsp[-1].str;
+  current_atomic = new DCAtomicField(yyvsp[-1].str);
   if (!current_class->add_field(current_atomic)) {
-    yyerror("Duplicate field name: " + current_atomic->_name);
+    yyerror("Duplicate field name: " + current_atomic->get_name());
   }
 }
     break;
-case 17:
-#line 162 "dcParser.yxx"
+case 25:
+#line 194 "dcParser.yxx"
 {
   DCField *field = current_class->get_field_by_name(yyvsp[0].str);
   yyval.u.atomic = (DCAtomicField *)NULL;
@@ -1084,65 +1123,65 @@ case 17:
   }
 }
     break;
-case 22:
-#line 188 "dcParser.yxx"
+case 30:
+#line 220 "dcParser.yxx"
 {
   atomic_element = DCAtomicField::ElementType();
   atomic_element._type = yyvsp[0].u.subatomic;
 }
     break;
-case 23:
-#line 193 "dcParser.yxx"
+case 31:
+#line 225 "dcParser.yxx"
 {
   current_atomic->_elements.push_back(atomic_element);
 }
     break;
-case 25:
-#line 201 "dcParser.yxx"
+case 33:
+#line 233 "dcParser.yxx"
 {
   atomic_element._divisor = yyvsp[0].u.integer;
 }
     break;
-case 26:
-#line 205 "dcParser.yxx"
+case 34:
+#line 237 "dcParser.yxx"
 {
   atomic_element._name = yyvsp[0].str;
 }
     break;
-case 27:
-#line 209 "dcParser.yxx"
+case 35:
+#line 241 "dcParser.yxx"
 {
   if (!atomic_element.set_default_value(yyvsp[0].u.integer)) {
     yyerror("Invalid default value: " + yyvsp[0].str);
   }
 }
     break;
-case 28:
-#line 215 "dcParser.yxx"
+case 36:
+#line 247 "dcParser.yxx"
 {
   if (!atomic_element.set_default_value(yyvsp[0].u.real)) {
     yyerror("Invalid default value: " + yyvsp[0].str);
   }
 }
     break;
-case 29:
-#line 221 "dcParser.yxx"
+case 37:
+#line 253 "dcParser.yxx"
 {
   if (!atomic_element.set_default_value(yyvsp[0].str)) {
     yyerror("Invalid default value: \"" + yyvsp[0].str + "\"");
   }
 }
     break;
-case 30:
-#line 227 "dcParser.yxx"
+case 38:
+#line 259 "dcParser.yxx"
 {
   if (!atomic_element.set_default_value_literal(yyvsp[0].str)) {
     yyerror("Invalid default hex string value");
   }
 }
     break;
-case 31:
-#line 233 "dcParser.yxx"
+case 39:
+#line 265 "dcParser.yxx"
 {
   if (!atomic_element.end_array()) {
     yyerror("Array default value inappropriate");
@@ -1151,40 +1190,40 @@ case 31:
   }
 }
     break;
-case 38:
-#line 259 "dcParser.yxx"
+case 46:
+#line 291 "dcParser.yxx"
 {
   if (!atomic_element.add_default_value(yyvsp[0].u.integer)) {
     yyerror("Invalid default value: " + yyvsp[0].str);
   }
 }
     break;
-case 39:
-#line 265 "dcParser.yxx"
+case 47:
+#line 297 "dcParser.yxx"
 {
   if (!atomic_element.add_default_value(yyvsp[0].u.real)) {
     yyerror("Invalid default value: " + yyvsp[0].str);
   }
 }
     break;
-case 40:
-#line 271 "dcParser.yxx"
+case 48:
+#line 303 "dcParser.yxx"
 {
   if (!atomic_element.add_default_value(yyvsp[0].str)) {
     yyerror("Invalid default value: " + yyvsp[0].str);
   }
 }
     break;
-case 41:
-#line 277 "dcParser.yxx"
+case 49:
+#line 309 "dcParser.yxx"
 {
   if (!atomic_element.add_default_value_literal(yyvsp[0].str)) {
     yyerror("Invalid hex literal in default array");
   }
 }
     break;
-case 42:
-#line 283 "dcParser.yxx"
+case 50:
+#line 315 "dcParser.yxx"
 {
   for (int i = 0; i < yyvsp[0].u.integer; i++) {
     if (!atomic_element.add_default_value(yyvsp[-2].u.integer)) {
@@ -1194,8 +1233,8 @@ case 42:
   }
 }
     break;
-case 43:
-#line 292 "dcParser.yxx"
+case 51:
+#line 324 "dcParser.yxx"
 {
   for (int i = 0; i < yyvsp[0].u.integer; i++) {
     if (!atomic_element.add_default_value(yyvsp[-2].u.real)) {
@@ -1205,8 +1244,8 @@ case 43:
   }
 }
     break;
-case 44:
-#line 301 "dcParser.yxx"
+case 52:
+#line 333 "dcParser.yxx"
 {
   for (int i = 0; i < yyvsp[0].u.integer; i++) {
     if (!atomic_element.add_default_value_literal(yyvsp[-2].str)) {
@@ -1216,201 +1255,200 @@ case 44:
   }
 }
     break;
-case 45:
-#line 313 "dcParser.yxx"
+case 53:
+#line 345 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_int8;
 }
     break;
-case 46:
-#line 317 "dcParser.yxx"
+case 54:
+#line 349 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_int16;
 }
     break;
-case 47:
-#line 321 "dcParser.yxx"
+case 55:
+#line 353 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_int32;
 }
     break;
-case 48:
-#line 325 "dcParser.yxx"
+case 56:
+#line 357 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_int64;
 }
     break;
-case 49:
-#line 329 "dcParser.yxx"
+case 57:
+#line 361 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_uint8;
 }
     break;
-case 50:
-#line 333 "dcParser.yxx"
+case 58:
+#line 365 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_uint16;
 }
     break;
-case 51:
-#line 337 "dcParser.yxx"
+case 59:
+#line 369 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_uint32;
 }
     break;
-case 52:
-#line 341 "dcParser.yxx"
+case 60:
+#line 373 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_uint64;
 }
     break;
-case 53:
-#line 345 "dcParser.yxx"
+case 61:
+#line 377 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_float64;
 }
     break;
-case 54:
-#line 349 "dcParser.yxx"
+case 62:
+#line 381 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_string;
 }
     break;
-case 55:
-#line 353 "dcParser.yxx"
+case 63:
+#line 385 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_blob;
 }
     break;
-case 56:
-#line 357 "dcParser.yxx"
+case 64:
+#line 389 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_blob32;
 }
     break;
-case 57:
-#line 361 "dcParser.yxx"
+case 65:
+#line 393 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_int8array;
 }
     break;
-case 58:
-#line 365 "dcParser.yxx"
+case 66:
+#line 397 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_int16array;
 }
     break;
-case 59:
-#line 369 "dcParser.yxx"
+case 67:
+#line 401 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_int32array;
 }
     break;
-case 60:
-#line 373 "dcParser.yxx"
+case 68:
+#line 405 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_uint8array;
 }
     break;
-case 61:
-#line 377 "dcParser.yxx"
+case 69:
+#line 409 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_uint16array;
 }
     break;
-case 62:
-#line 381 "dcParser.yxx"
+case 70:
+#line 413 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_uint32array;
 }
     break;
-case 63:
-#line 385 "dcParser.yxx"
+case 71:
+#line 417 "dcParser.yxx"
 {
   yyval.u.subatomic = ST_uint32uint8array;
 }
     break;
-case 65:
-#line 393 "dcParser.yxx"
+case 73:
+#line 425 "dcParser.yxx"
 {
   current_atomic->_flags |= DCAtomicField::F_required;
 }
     break;
-case 66:
-#line 397 "dcParser.yxx"
+case 74:
+#line 429 "dcParser.yxx"
 {
   current_atomic->_flags |= DCAtomicField::F_broadcast;
 }
     break;
-case 67:
-#line 401 "dcParser.yxx"
+case 75:
+#line 433 "dcParser.yxx"
 {
   current_atomic->_flags |= DCAtomicField::F_p2p;
 }
     break;
-case 68:
-#line 405 "dcParser.yxx"
+case 76:
+#line 437 "dcParser.yxx"
 {
   current_atomic->_flags |= DCAtomicField::F_ram;
 }
     break;
-case 69:
-#line 409 "dcParser.yxx"
+case 77:
+#line 441 "dcParser.yxx"
 {
   current_atomic->_flags |= DCAtomicField::F_db;
 }
     break;
-case 70:
-#line 413 "dcParser.yxx"
+case 78:
+#line 445 "dcParser.yxx"
 {
   current_atomic->_flags |= DCAtomicField::F_clsend;
 }
     break;
-case 71:
-#line 417 "dcParser.yxx"
+case 79:
+#line 449 "dcParser.yxx"
 {
   current_atomic->_flags |= DCAtomicField::F_clrecv;
 }
     break;
-case 72:
-#line 421 "dcParser.yxx"
+case 80:
+#line 453 "dcParser.yxx"
 {
   current_atomic->_flags |= DCAtomicField::F_ownsend;
 }
     break;
-case 73:
-#line 425 "dcParser.yxx"
+case 81:
+#line 457 "dcParser.yxx"
 {
   current_atomic->_flags |= DCAtomicField::F_airecv;
 }
     break;
-case 74:
-#line 432 "dcParser.yxx"
+case 82:
+#line 464 "dcParser.yxx"
 {
-  current_molecular = new DCMolecularField;
-  current_molecular->_name = yyvsp[-1].str;
+  current_molecular = new DCMolecularField(yyvsp[-1].str);
   if (!current_class->add_field(current_molecular)) {
-    yyerror("Duplicate field name: " + current_molecular->_name);
+    yyerror("Duplicate field name: " + current_molecular->get_name());
   }
 }
     break;
-case 76:
-#line 444 "dcParser.yxx"
+case 84:
+#line 475 "dcParser.yxx"
 {
   if (yyvsp[0].u.atomic != (DCAtomicField *)NULL) {
     current_molecular->_fields.push_back(yyvsp[0].u.atomic);
   }
 }
     break;
-case 77:
-#line 450 "dcParser.yxx"
+case 85:
+#line 481 "dcParser.yxx"
 {
   if (yyvsp[0].u.atomic != (DCAtomicField *)NULL) {
     current_molecular->_fields.push_back(yyvsp[0].u.atomic);
     if (current_molecular->_fields[0]->_flags != yyvsp[0].u.atomic->_flags) {
       yyerror("Mismatched flags in molecule between " + 
-              current_molecular->_fields[0]->_name + " and " +
-              yyvsp[0].u.atomic->_name);
+              current_molecular->_fields[0]->get_name() + " and " +
+              yyvsp[0].u.atomic->get_name());
     }
   }
 }
@@ -1648,4 +1686,4 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 464 "dcParser.yxx"
+#line 495 "dcParser.yxx"

+ 31 - 29
direct/src/dcparser/dcParser.h.prebuilt

@@ -7,35 +7,37 @@
 # define	HEX_STRING	260
 # define	IDENTIFIER	261
 # define	KW_DCLASS	262
-# define	KW_INT8	263
-# define	KW_INT16	264
-# define	KW_INT32	265
-# define	KW_INT64	266
-# define	KW_UINT8	267
-# define	KW_UINT16	268
-# define	KW_UINT32	269
-# define	KW_UINT64	270
-# define	KW_FLOAT64	271
-# define	KW_STRING	272
-# define	KW_BLOB	273
-# define	KW_BLOB32	274
-# define	KW_INT8ARRAY	275
-# define	KW_INT16ARRAY	276
-# define	KW_INT32ARRAY	277
-# define	KW_UINT8ARRAY	278
-# define	KW_UINT16ARRAY	279
-# define	KW_UINT32ARRAY	280
-# define	KW_UINT32UINT8ARRAY	281
-# define	KW_MOL	282
-# define	KW_REQUIRED	283
-# define	KW_BROADCAST	284
-# define	KW_P2P	285
-# define	KW_RAM	286
-# define	KW_DB	287
-# define	KW_CLSEND	288
-# define	KW_CLRECV	289
-# define	KW_OWNSEND	290
-# define	KW_AIRECV	291
+# define	KW_FROM	263
+# define	KW_IMPORT	264
+# define	KW_INT8	265
+# define	KW_INT16	266
+# define	KW_INT32	267
+# define	KW_INT64	268
+# define	KW_UINT8	269
+# define	KW_UINT16	270
+# define	KW_UINT32	271
+# define	KW_UINT64	272
+# define	KW_FLOAT64	273
+# define	KW_STRING	274
+# define	KW_BLOB	275
+# define	KW_BLOB32	276
+# define	KW_INT8ARRAY	277
+# define	KW_INT16ARRAY	278
+# define	KW_INT32ARRAY	279
+# define	KW_UINT8ARRAY	280
+# define	KW_UINT16ARRAY	281
+# define	KW_UINT32ARRAY	282
+# define	KW_UINT32UINT8ARRAY	283
+# define	KW_MOL	284
+# define	KW_REQUIRED	285
+# define	KW_BROADCAST	286
+# define	KW_P2P	287
+# define	KW_RAM	288
+# define	KW_DB	289
+# define	KW_CLSEND	290
+# define	KW_CLRECV	291
+# define	KW_OWNSEND	292
+# define	KW_AIRECV	293
 
 
 extern YYSTYPE dcyylval;