prebuild-bison

This commit is contained in:
David Rose 2004-05-19 17:26:38 +00:00
parent b2bb4b5c08
commit 359c111231
3 changed files with 545 additions and 486 deletions

View File

@ -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,
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,
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
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,
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,
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
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,
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,
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
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,
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,
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,
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,
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
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,
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,
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,
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,12 +1215,28 @@ 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"
{
accept();
return KW_UINT32ARRAY;
}
YY_BREAK
case 26:
YY_RULE_SETUP
#line 436 "dcLexer.lxx"
{
accept();
return KW_UINT32UINT8ARRAY;
}
YY_BREAK
case 27:
YY_RULE_SETUP
#line 441 "dcLexer.lxx"
{
// A molecular keyword.
accept();
@ -1226,28 +1245,12 @@ YY_RULE_SETUP
return KW_MOL;
}
YY_BREAK
case 26:
YY_RULE_SETUP
#line 439 "dcLexer.lxx"
{
accept();
return KW_REQUIRED;
}
YY_BREAK
case 27:
YY_RULE_SETUP
#line 444 "dcLexer.lxx"
{
accept();
return KW_BROADCAST;
}
YY_BREAK
case 28:
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"

View File

@ -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"
{
if (yyvsp[0].u.dclass != (DCClass *)NULL) {
current_class->_parents.push_back(yyvsp[0].u.dclass);
}
dc_file->add_import_module(yyvsp[-1].str);
}
break;
case 10:
#line 134 "dcParser.yxx"
case 12:
#line 138 "dcParser.yxx"
{
if (yyvsp[0].u.dclass != (DCClass *)NULL) {
current_class->_parents.push_back(yyvsp[0].u.dclass);
}
dc_file->add_import_symbol("*");
}
break;
case 15:
#line 150 "dcParser.yxx"
case 13:
#line 145 "dcParser.yxx"
{
current_atomic = new DCAtomicField;
current_atomic->_name = yyvsp[-1].str;
if (!current_class->add_field(current_atomic)) {
yyerror("Duplicate field name: " + current_atomic->_name);
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 162 "dcParser.yxx"
#line 161 "dcParser.yxx"
{
if (yyvsp[0].u.dclass != (DCClass *)NULL) {
current_class->add_parent(yyvsp[0].u.dclass);
}
}
break;
case 18:
#line 167 "dcParser.yxx"
{
if (yyvsp[0].u.dclass != (DCClass *)NULL) {
current_class->add_parent(yyvsp[0].u.dclass);
}
}
break;
case 23:
#line 183 "dcParser.yxx"
{
current_atomic = new DCAtomicField(yyvsp[-1].str);
if (!current_class->add_field(current_atomic)) {
yyerror("Duplicate field name: " + current_atomic->get_name());
}
}
break;
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"
{
yyval.u.subatomic = ST_int8;
}
break;
case 46:
#line 317 "dcParser.yxx"
{
yyval.u.subatomic = ST_int16;
}
break;
case 47:
#line 321 "dcParser.yxx"
{
yyval.u.subatomic = ST_int32;
}
break;
case 48:
#line 325 "dcParser.yxx"
{
yyval.u.subatomic = ST_int64;
}
break;
case 49:
#line 329 "dcParser.yxx"
{
yyval.u.subatomic = ST_uint8;
}
break;
case 50:
#line 333 "dcParser.yxx"
{
yyval.u.subatomic = ST_uint16;
}
break;
case 51:
#line 337 "dcParser.yxx"
{
yyval.u.subatomic = ST_uint32;
}
break;
case 52:
#line 341 "dcParser.yxx"
{
yyval.u.subatomic = ST_uint64;
}
break;
case 53:
#line 345 "dcParser.yxx"
{
yyval.u.subatomic = ST_float64;
yyval.u.subatomic = ST_int8;
}
break;
case 54:
#line 349 "dcParser.yxx"
{
yyval.u.subatomic = ST_string;
yyval.u.subatomic = ST_int16;
}
break;
case 55:
#line 353 "dcParser.yxx"
{
yyval.u.subatomic = ST_blob;
yyval.u.subatomic = ST_int32;
}
break;
case 56:
#line 357 "dcParser.yxx"
{
yyval.u.subatomic = ST_blob32;
yyval.u.subatomic = ST_int64;
}
break;
case 57:
#line 361 "dcParser.yxx"
{
yyval.u.subatomic = ST_int8array;
yyval.u.subatomic = ST_uint8;
}
break;
case 58:
#line 365 "dcParser.yxx"
{
yyval.u.subatomic = ST_int16array;
yyval.u.subatomic = ST_uint16;
}
break;
case 59:
#line 369 "dcParser.yxx"
{
yyval.u.subatomic = ST_int32array;
yyval.u.subatomic = ST_uint32;
}
break;
case 60:
#line 373 "dcParser.yxx"
{
yyval.u.subatomic = ST_uint8array;
yyval.u.subatomic = ST_uint64;
}
break;
case 61:
#line 377 "dcParser.yxx"
{
yyval.u.subatomic = ST_uint16array;
yyval.u.subatomic = ST_float64;
}
break;
case 62:
#line 381 "dcParser.yxx"
{
yyval.u.subatomic = ST_uint32array;
yyval.u.subatomic = ST_string;
}
break;
case 63:
#line 385 "dcParser.yxx"
{
yyval.u.subatomic = ST_uint32uint8array;
yyval.u.subatomic = ST_blob;
}
break;
case 64:
#line 389 "dcParser.yxx"
{
yyval.u.subatomic = ST_blob32;
}
break;
case 65:
#line 393 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_required;
yyval.u.subatomic = ST_int8array;
}
break;
case 66:
#line 397 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_broadcast;
yyval.u.subatomic = ST_int16array;
}
break;
case 67:
#line 401 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_p2p;
yyval.u.subatomic = ST_int32array;
}
break;
case 68:
#line 405 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_ram;
yyval.u.subatomic = ST_uint8array;
}
break;
case 69:
#line 409 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_db;
yyval.u.subatomic = ST_uint16array;
}
break;
case 70:
#line 413 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_clsend;
yyval.u.subatomic = ST_uint32array;
}
break;
case 71:
#line 417 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_clrecv;
}
break;
case 72:
#line 421 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_ownsend;
yyval.u.subatomic = ST_uint32uint8array;
}
break;
case 73:
#line 425 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_airecv;
current_atomic->_flags |= DCAtomicField::F_required;
}
break;
case 74:
#line 432 "dcParser.yxx"
#line 429 "dcParser.yxx"
{
current_molecular = new DCMolecularField;
current_molecular->_name = yyvsp[-1].str;
if (!current_class->add_field(current_molecular)) {
yyerror("Duplicate field name: " + current_molecular->_name);
current_atomic->_flags |= DCAtomicField::F_broadcast;
}
break;
case 75:
#line 433 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_p2p;
}
break;
case 76:
#line 444 "dcParser.yxx"
#line 437 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_ram;
}
break;
case 77:
#line 441 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_db;
}
break;
case 78:
#line 445 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_clsend;
}
break;
case 79:
#line 449 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_clrecv;
}
break;
case 80:
#line 453 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_ownsend;
}
break;
case 81:
#line 457 "dcParser.yxx"
{
current_atomic->_flags |= DCAtomicField::F_airecv;
}
break;
case 82:
#line 464 "dcParser.yxx"
{
current_molecular = new DCMolecularField(yyvsp[-1].str);
if (!current_class->add_field(current_molecular)) {
yyerror("Duplicate field name: " + current_molecular->get_name());
}
}
break;
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"

View File

@ -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;