+ case S_surfxml_platform_description_5: case S_surfxml_platform_description: case S_surfxml_platform_description_4: SET(S_surfxml_platform_description_5); break;
+ case ROOT_surfxml_host: SET(EPILOG); break;
+ }
+ }
+ "</"{Name}{s}">" FAIL("Unexpected end-tag `%s': `</host>' expected.",yytext);
+ . FAIL("Unexpected character `%c': `</host>' expected.",yytext[0]);
+ <<EOF>> FAIL("Premature EOF: `</host>' expected.");
+}
+
+<ROOT_surfxml_prop,S_surfxml_host,S_surfxml_link_1,S_surfxml_link_2,S_surfxml_host_1,S_surfxml_link,S_surfxml_process_1,S_surfxml_process,S_surfxml_host_2,S_surfxml_process_2>"<prop"{s} {
+ AX_surfxml_prop_id = 0;
+ AX_surfxml_prop_value = 0;
+ ENTER(AL_surfxml_prop); pushbuffer(0);
+ }
+
+<AL_surfxml_prop>{
+ "id"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
+ "id"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
+
+ "value"{Eq}\' ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
+ "value"{Eq}\" ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
+
+ ">" {
+ if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
+ if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
+ LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
+ }
+ "/>" {
+ if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
+ if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
+ LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
+ switch (YY_START) {
+ case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
+ case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
+ case ROOT_surfxml_prop: SET(EPILOG); break;
+ case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;