+<S_surfxml_platform_2,S_surfxml_platform_3,S_surfxml_platform>"<trace"{s} {
+ AX_surfxml_trace_id = 0;
+ AX_surfxml_trace_file = 0;
+ AX_surfxml_trace_periodicity = 0;
+ ENTER(AL_surfxml_trace); pushbuffer(0);
+ }
+
+<AL_surfxml_trace>{
+ "id"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
+ "id"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
+
+ "file"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
+ "file"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
+
+ "periodicity"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
+ "periodicity"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
+
+ ">" {
+ if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
+ if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
+ LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
+ }
+ "/>" {
+ if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
+ if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
+ LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
+ switch (YY_START) {
+ case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
+ }
+ }
+ . FAIL("Unexpected character `%c' in attribute list of trace element.", yytext[0]);
+ {Name} FAIL("Bad attribute `%s' in `trace' element start tag.",yytext);
+ <<EOF>> FAIL("EOF in attribute list of `trace' element.");
+}
+
+<IN_trace>{
+ "</trace"{s}">" {
+ LEAVE;
+ BUFFERDONE;
+ ETag_surfxml_trace();
+ surfxml_pcdata_ix = popbuffer();
+ popbuffer(); /* attribute */
+ switch (YY_START) {
+ case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
+ }
+ }
+ "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</trace>' expected.",yytext);
+ <<EOF>> FAIL("Premature EOF: `</trace>' expected.");
+}
+
+<S_surfxml_platform_2,S_surfxml_platform_3,S_surfxml_platform>"<random"{s} {
+ AX_surfxml_random_id = 0;
+ AX_surfxml_random_min = 0;
+ AX_surfxml_random_max = 0;
+ AX_surfxml_random_mean = 0;
+ AX_surfxml_random_std_deviation = 0;
+ AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
+ ENTER(AL_surfxml_random); pushbuffer(0);
+ }
+
+<AL_surfxml_random>{
+ "id"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
+ "id"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
+
+ "min"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
+ "min"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
+
+ "max"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
+ "max"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
+
+ "mean"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
+ "mean"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
+
+ "std_deviation"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
+ "std_deviation"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
+
+ "generator"{Eq}"'DRAND48'" |
+ "generator"{Eq}"\"DRAND48\"" A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
+ "generator"{Eq}"'RAND'" |
+ "generator"{Eq}"\"RAND\"" A_surfxml_random_generator = A_surfxml_random_generator_RAND;
+
+ ">" {
+ if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
+ if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
+ if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
+ if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
+ if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
+ LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
+ }
+ "/>" {
+ if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
+ if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
+ if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
+ if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
+ if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
+ LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
+ switch (YY_START) {
+ case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
+ }
+ }
+ . FAIL("Unexpected character `%c' in attribute list of random element.", yytext[0]);
+ {Name} FAIL("Bad attribute `%s' in `random' element start tag.",yytext);
+ <<EOF>> FAIL("EOF in attribute list of `random' element.");
+}
+
+<S_surfxml_random_2,S_surfxml_random,E_surfxml_random>{
+ "</random"{s}">" {
+ LEAVE;
+ ETag_surfxml_random();
+ popbuffer(); /* attribute */
+ switch (YY_START) {
+ case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
+ }
+ }
+ "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</random>' expected.",yytext);
+ . FAIL("Unexpected character `%c': `</random>' expected.",yytext[0]);
+ <<EOF>> FAIL("Premature EOF: `</random>' expected.");
+}
+
+<S_surfxml_platform_5,S_surfxml_platform_2,S_surfxml_platform_1,S_surfxml_platform_3,S_surfxml_platform,S_surfxml_platform_4>"<trace:connect"{s} {
+ AX_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_AVAILABILITY;
+ AX_surfxml_trace_c_connect_trace_id = 0;
+ AX_surfxml_trace_c_connect_element = A_surfxml_trace_c_connect_element_HOST;
+ AX_surfxml_trace_c_connect_connector_id = 0;
+ ENTER(AL_surfxml_trace_c_connect); pushbuffer(0);
+ }
+
+<AL_surfxml_trace_c_connect>{
+ "kind"{Eq}"'AVAILABILITY'" |
+ "kind"{Eq}"\"AVAILABILITY\"" A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_AVAILABILITY;
+ "kind"{Eq}"'BANDWIDTH'" |
+ "kind"{Eq}"\"BANDWIDTH\"" A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_BANDWIDTH;
+ "kind"{Eq}"'LATENCY'" |
+ "kind"{Eq}"\"LATENCY\"" A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_LATENCY;
+ "kind"{Eq}"'POWER'" |
+ "kind"{Eq}"\"POWER\"" A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_POWER;
+
+ "trace_id"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_trace_id);
+ "trace_id"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_trace_id);
+
+ "element"{Eq}"'HOST'" |
+ "element"{Eq}"\"HOST\"" A_surfxml_trace_c_connect_element = A_surfxml_trace_c_connect_element_HOST;
+ "element"{Eq}"'LINK'" |
+ "element"{Eq}"\"LINK\"" A_surfxml_trace_c_connect_element = A_surfxml_trace_c_connect_element_LINK;
+
+ "connector_id"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_connector_id);
+ "connector_id"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_connector_id);
+
+ ">" {
+ if (!AX_surfxml_trace_c_connect_trace_id) FAIL("Required attribute `trace_id' not set for `trace:connect' element.");
+ if (!AX_surfxml_trace_c_connect_connector_id) FAIL("Required attribute `connector_id' not set for `trace:connect' element.");
+ LEAVE; STag_surfxml_trace_c_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_c_connect);
+ }
+ "/>" {
+ if (!AX_surfxml_trace_c_connect_trace_id) FAIL("Required attribute `trace_id' not set for `trace:connect' element.");
+ if (!AX_surfxml_trace_c_connect_connector_id) FAIL("Required attribute `connector_id' not set for `trace:connect' element.");
+ LEAVE; STag_surfxml_trace_c_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_c_connect(); popbuffer(); /* attribute */
+ switch (YY_START) {
+ case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
+ case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
+ }
+ }
+ . FAIL("Unexpected character `%c' in attribute list of trace:connect element.", yytext[0]);
+ {Name} FAIL("Bad attribute `%s' in `trace:connect' element start tag.",yytext);
+ <<EOF>> FAIL("EOF in attribute list of `trace:connect' element.");
+}
+
+<E_surfxml_trace_c_connect>{
+ "</trace:connect"{s}">" {
+ LEAVE;
+ ETag_surfxml_trace_c_connect();
+ popbuffer(); /* attribute */
+ switch (YY_START) {
+ case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
+ case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
+ }
+ }
+ "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</trace:connect>' expected.",yytext);
+ . FAIL("Unexpected character `%c': `</trace:connect>' expected.",yytext[0]);
+ <<EOF>> FAIL("Premature EOF: `</trace:connect>' expected.");
+}
+
+<S_surfxml_platform_2,S_surfxml_platform_3,S_surfxml_platform>"<set"{s} {
+ AX_surfxml_set_id = 0;
+ AX_surfxml_set_prefix = 0;
+ AX_surfxml_set_suffix = 0;
+ AX_surfxml_set_radical = 0;
+ ENTER(AL_surfxml_set); pushbuffer(0);
+ }
+
+<AL_surfxml_set>{
+ "id"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_set_id);
+ "id"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_set_id);
+
+ "prefix"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_set_prefix);
+ "prefix"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_set_prefix);
+
+ "suffix"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_set_suffix);
+ "suffix"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_set_suffix);
+
+ "radical"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_set_radical);
+ "radical"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_set_radical);
+
+ ">" {
+ if (!AX_surfxml_set_id) FAIL("Required attribute `id' not set for `set' element.");
+ if (!AX_surfxml_set_prefix) FAIL("Required attribute `prefix' not set for `set' element.");
+ if (!AX_surfxml_set_suffix) FAIL("Required attribute `suffix' not set for `set' element.");
+ if (!AX_surfxml_set_radical) FAIL("Required attribute `radical' not set for `set' element.");
+ LEAVE; STag_surfxml_set();surfxml_pcdata_ix = 0; ENTER(E_surfxml_set);
+ }
+ "/>" {
+ if (!AX_surfxml_set_id) FAIL("Required attribute `id' not set for `set' element.");
+ if (!AX_surfxml_set_prefix) FAIL("Required attribute `prefix' not set for `set' element.");
+ if (!AX_surfxml_set_suffix) FAIL("Required attribute `suffix' not set for `set' element.");
+ if (!AX_surfxml_set_radical) FAIL("Required attribute `radical' not set for `set' element.");
+ LEAVE; STag_surfxml_set(); surfxml_pcdata_ix = 0; ETag_surfxml_set(); popbuffer(); /* attribute */
+ switch (YY_START) {
+ case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
+ }
+ }
+ . FAIL("Unexpected character `%c' in attribute list of set element.", yytext[0]);
+ {Name} FAIL("Bad attribute `%s' in `set' element start tag.",yytext);
+ <<EOF>> FAIL("EOF in attribute list of `set' element.");
+}
+
+<E_surfxml_set>{
+ "</set"{s}">" {
+ LEAVE;
+ ETag_surfxml_set();
+ popbuffer(); /* attribute */
+ switch (YY_START) {
+ case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
+ }
+ }
+ "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</set>' expected.",yytext);
+ . FAIL("Unexpected character `%c': `</set>' expected.",yytext[0]);
+ <<EOF>> FAIL("Premature EOF: `</set>' expected.");
+}
+
+<S_surfxml_platform_2,S_surfxml_platform_3,S_surfxml_platform>"<foreach"{s} {
+ AX_surfxml_foreach_set_id = 0;
+ ENTER(AL_surfxml_foreach); pushbuffer(0);
+ }
+
+<AL_surfxml_foreach>{
+ "set_id"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_foreach_set_id);
+ "set_id"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_foreach_set_id);
+
+ ">" {
+ if (!AX_surfxml_foreach_set_id) FAIL("Required attribute `set_id' not set for `foreach' element.");
+ LEAVE; STag_surfxml_foreach();surfxml_pcdata_ix = 0; ENTER(S_surfxml_foreach);
+ }
+ "/>" FAIL("`foreach' element cannot be empty.");
+ . FAIL("Unexpected character `%c' in attribute list of foreach element.", yytext[0]);
+ {Name} FAIL("Bad attribute `%s' in `foreach' element start tag.",yytext);
+ <<EOF>> FAIL("EOF in attribute list of `foreach' element.");
+}
+
+<E_surfxml_foreach>{
+ "</foreach"{s}">" {
+ LEAVE;
+ ETag_surfxml_foreach();
+ popbuffer(); /* attribute */
+ switch (YY_START) {
+ case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
+ }
+ }
+ "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</foreach>' expected.",yytext);
+ . FAIL("Unexpected character `%c': `</foreach>' expected.",yytext[0]);
+ <<EOF>> FAIL("Premature EOF: `</foreach>' expected.");
+}
+
+<S_surfxml_foreach,S_surfxml_platform_2,S_surfxml_platform_3,S_surfxml_platform>"<host"{s} {
+ AX_surfxml_host_id = 0;
+ AX_surfxml_host_power = 0;
+ AX_surfxml_host_availability = 69;
+ AX_surfxml_host_availability_file = 0;
+ AX_surfxml_host_state = A_surfxml_host_state_ON;
+ AX_surfxml_host_state_file = 0;
+ AX_surfxml_host_interference_send = 73;
+ AX_surfxml_host_interference_recv = 77;
+ AX_surfxml_host_interference_send_recv = 81;
+ AX_surfxml_host_max_outgoing_rate = 85;
+ ENTER(AL_surfxml_host); pushbuffer(0);