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

View File

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

View File

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