X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/87c39468f57b12651ab8700eba05a2a11cfeaddb..56c92988c6bf8a4e5c1df4a5af4388310f879353:/src/surf/surfxml.l diff --git a/src/surf/surfxml.l b/src/surf/surfxml.l index fd6d4248f1..c9f1a1ece5 100644 --- a/src/surf/surfxml.l +++ b/src/surf/surfxml.l @@ -1,12 +1,21 @@ /* Validating XML processor for surfxml.dtd. - * Generated 2005/01/24 16:35:24. + * Generated 2006/05/29 23:03:05. * - * This program was generated with the FleXML XML processor generator, - * (Id: flexml.pl,v 1.35 2005/01/05 06:29:58 legranda Exp). - * Copyright © 1999 Kristoffer Rose. All rights reserved. + * This program was generated with the FleXML XML processor generator. + * FleXML is Copyright © 1999-2005 Kristoffer Rose. All rights reserved. + * (Id: flexml.pl,v 1.48 2006/03/21 13:09:12 mquinson Exp). + * + * There are two, intertwined parts to this program, part A and part B. * - * You can redistribute and/or modify this program provided the following - * two conditions hold: + * Part A + * ------ + * + * Some parts, here collectively called "Part A", are found in the + * FleXML package. They are Copyright © 1999-2005 Kristoffer Rose. + * All rights reserved. + * + * You can redistribute, use, perform, display and/or modify "Part A" + * provided the following two conditions hold: * * 1. The program is distributed WITHOUT ANY WARRANTY from the author of * FleXML; without even the implied warranty of MERCHANTABILITY or @@ -19,15 +28,29 @@ * Notice that these are explicit rights granted to you for files * generated by the FleXML system. For your rights in connection with * the FleXML system itself please consult the GNU General Public License. + * + * Part B + * ------ + * + * The other parts, here collectively called "Part B", and which came + * from the DTD used by FleXML to generate this program, can be + * distributed (or not, as the case may be) under the terms of whoever + * wrote them, provided these terms respect and obey the two conditions + * above under the heading "Part A". + * + * The author of and contributors to FleXML specifically disclaim + * any copyright interest in "Part B", unless "Part B" was written + * by the author of or contributors to FleXML. + * */ %{ /* Version strings. */ -const char rcs_flexml_skeleton[] = - "$" "Id: skel,v 1.19 2005/01/05 18:49:27 legranda Exp $"; -const char rcs_flexml[] = - "$" "Id: flexml.pl,v 1.35 2005/01/05 06:29:58 legranda Exp $"; +const char rcs_surfxml_flexml_skeleton[] = + "$" "Id: skel,v 1.28 2006/03/21 12:04:13 legranda Exp $"; +const char rcs_surfxml_flexml[] = + "$" "Id: flexml.pl,v 1.48 2006/03/21 13:09:12 mquinson Exp $"; /* ANSI headers. */ #include @@ -39,41 +62,43 @@ const char rcs_flexml[] = /* Generated definitions. */ #define FLEXML_yylineno -#define FLEXML_BUFFERSTACKSIZE 10000000 +#define FLEXML_BUFFERSTACKSIZE 1000000 /* XML processor api. */ -#include "surfxml.h" - /* FleXML-provided data. */ -const char* pcdata; -AT_network_link_bandwidth A_network_link_bandwidth; -AT_cpu_name A_cpu_name; -AT_network_link_state A_network_link_state; -AT_argument_value A_argument_value; -AT_cpu_availability_file A_cpu_availability_file; -AT_process_host A_process_host; -AT_route_impact_on_src A_route_impact_on_src; -AT_route_src A_route_src; -AT_network_link_latency_file A_network_link_latency_file; -AT_cpu_max_outgoing_rate A_cpu_max_outgoing_rate; -AT_route_impact_on_dst_with_other_send A_route_impact_on_dst_with_other_send; -AT_cpu_interference_send_recv A_cpu_interference_send_recv; -AT_cpu_availability A_cpu_availability; -AT_route_impact_on_dst A_route_impact_on_dst; -AT_cpu_interference_recv A_cpu_interference_recv; -AT_route_impact_on_src_with_other_recv A_route_impact_on_src_with_other_recv; -AT_network_link_name A_network_link_name; -AT_route_element_name A_route_element_name; -AT_cpu_power A_cpu_power; -AT_include_file A_include_file; -AT_process_function A_process_function; -AT_route_dst A_route_dst; -AT_cpu_state A_cpu_state; -AT_network_link_latency A_network_link_latency; -AT_network_link_state_file A_network_link_state_file; -AT_cpu_interference_send A_cpu_interference_send; -AT_cpu_state_file A_cpu_state_file; -AT_network_link_bandwidth_file A_network_link_bandwidth_file; +const char* surfxml_pcdata; +AT_surfxml_network_link_bandwidth A_surfxml_network_link_bandwidth; +AT_surfxml_process_host A_surfxml_process_host; +AT_surfxml_network_link_latency_file A_surfxml_network_link_latency_file; +AT_surfxml_route_impact_on_dst_with_other_send A_surfxml_route_impact_on_dst_with_other_send; +AT_surfxml_cpu_interference_send_recv A_surfxml_cpu_interference_send_recv; +AT_surfxml_route_impact_on_dst A_surfxml_route_impact_on_dst; +AT_surfxml_platform_description_version A_surfxml_platform_description_version; +AT_surfxml_route_impact_on_src_with_other_recv A_surfxml_route_impact_on_src_with_other_recv; +AT_surfxml_route_element_name A_surfxml_route_element_name; +AT_surfxml_process_start_time A_surfxml_process_start_time; +AT_surfxml_process_function A_surfxml_process_function; +AT_surfxml_cpu_state A_surfxml_cpu_state; +AT_surfxml_cpu_interference_send A_surfxml_cpu_interference_send; +AT_surfxml_network_link_bandwidth_file A_surfxml_network_link_bandwidth_file; +AT_surfxml_cpu_name A_surfxml_cpu_name; +AT_surfxml_process_kill_time A_surfxml_process_kill_time; +AT_surfxml_network_link_state A_surfxml_network_link_state; +AT_surfxml_cpu_availability_file A_surfxml_cpu_availability_file; +AT_surfxml_argument_value A_surfxml_argument_value; +AT_surfxml_route_src A_surfxml_route_src; +AT_surfxml_route_impact_on_src A_surfxml_route_impact_on_src; +AT_surfxml_cpu_max_outgoing_rate A_surfxml_cpu_max_outgoing_rate; +AT_surfxml_cpu_availability A_surfxml_cpu_availability; +AT_surfxml_cpu_interference_recv A_surfxml_cpu_interference_recv; +AT_surfxml_network_link_name A_surfxml_network_link_name; +AT_surfxml_cpu_power A_surfxml_cpu_power; +AT_surfxml_include_file A_surfxml_include_file; +AT_surfxml_network_link_sharing_policy A_surfxml_network_link_sharing_policy; +AT_surfxml_route_dst A_surfxml_route_dst; +AT_surfxml_network_link_latency A_surfxml_network_link_latency; +AT_surfxml_cpu_state_file A_surfxml_cpu_state_file; +AT_surfxml_network_link_state_file A_surfxml_network_link_state_file; /* XML state. */ #ifdef FLEX_DEBUG @@ -91,19 +116,26 @@ AT_network_link_bandwidth_file A_network_link_bandwidth_file; /* Generic actions. */ #define SKIP /*skip*/ -#define SUCCEED return 0 +#define SUCCEED CLEANUP; return 0 #define FAIL return fail static int fail(const char*, ...); +const char * surfxml_parse_err_msg(void); + +/* Cleanup */ +static void cleanup(void); +#define CLEANUP cleanup() /* Text buffer stack handling. */ -char bufferstack[FLEXML_BUFFERSTACKSIZE]; -char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE; +static char bufferstack[FLEXML_BUFFERSTACKSIZE]; +static char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE; typedef struct BufferLast_s { - struct BufferLast_s *old; char* saved; char new[1]; + struct BufferLast_s *old; char* saved; char new1[1]; } BufferLast; -BufferLast* last = (BufferLast*)0; -char* next = bufferstack; +#ifdef FLEXML_HasMixed +static BufferLast* last = (BufferLast*)0; +#endif +static char* next = bufferstack; #define BUFFERSET(P) (P = next) #define BUFFERPUTC(C) (assert(nextold = last; l->saved = p; - next = l->new; + next = l->new1; last = l; } @@ -187,82 +219,84 @@ Literal \'[^'']*\'|\"[^""]*\" * INPI inside an XML PI * VALUE1 inside a '...'-delimited literal * VALUE2 inside a "..."-delimited literal - * CDATA inside a section. + * CDATA inside a section. * ROOT_ expect root element * AL_ inside the attribute list for * IN_ inside a with element contents (ready for end tag) * IMPOSSIBLE dummy to permit disabling rules; must be last */ %x PROLOG DOCTYPE EPILOG INCOMMENT INPI VALUE1 VALUE2 CDATA -%x ROOT_platform_description AL_platform_description S_platform_description S_platform_description_1 S_platform_description_2 E_platform_description -%x ROOT_include AL_include S_include S_include_1 S_include_2 E_include -%x ROOT_cpu AL_cpu E_cpu -%x ROOT_network_link AL_network_link E_network_link -%x ROOT_route AL_route S_route S_route_1 S_route_2 E_route -%x ROOT_route_element AL_route_element E_route_element -%x ROOT_process AL_process S_process S_process_1 S_process_2 E_process -%x ROOT_argument AL_argument E_argument +%x ROOT_surfxml_platform_description AL_surfxml_platform_description S_surfxml_platform_description S_surfxml_platform_description_1 S_surfxml_platform_description_2 E_surfxml_platform_description +%x ROOT_surfxml_include AL_surfxml_include S_surfxml_include S_surfxml_include_1 S_surfxml_include_2 E_surfxml_include +%x ROOT_surfxml_cpu AL_surfxml_cpu E_surfxml_cpu +%x ROOT_surfxml_network_link AL_surfxml_network_link E_surfxml_network_link +%x ROOT_surfxml_route AL_surfxml_route S_surfxml_route S_surfxml_route_1 S_surfxml_route_2 E_surfxml_route +%x ROOT_surfxml_route_element AL_surfxml_route_element E_surfxml_route_element +%x ROOT_surfxml_process AL_surfxml_process S_surfxml_process S_surfxml_process_1 S_surfxml_process_2 E_surfxml_process +%x ROOT_surfxml_argument AL_surfxml_argument E_surfxml_argument %x IMPOSSIBLE %{ /* State names. */ -const char* *statenames=NULL; +const char* *surfxml_statenames=NULL; %} %% /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */ - SET(PROLOG); + SET(PROLOG); /* FleXML_init */ - if(!statenames) statenames=calloc(IMPOSSIBLE,sizeof(char*)); - statenames[PROLOG] = NULL; - statenames[DOCTYPE] = NULL; - statenames[EPILOG] = NULL; - statenames[INCOMMENT] = NULL; - statenames[INPI] = NULL; - statenames[VALUE1] = NULL; - statenames[VALUE2] = NULL; - statenames[CDATA] = NULL; - statenames[ROOT_platform_description] = NULL; - statenames[AL_platform_description] = NULL; - statenames[S_platform_description] = "platform_description"; - statenames[S_platform_description_1] = "platform_description"; - statenames[S_platform_description_2] = "platform_description"; - statenames[E_platform_description] = "platform_description"; - statenames[ROOT_include] = NULL; - statenames[AL_include] = NULL; - statenames[S_include] = "include"; - statenames[S_include_1] = "include"; - statenames[S_include_2] = "include"; - statenames[E_include] = "include"; - statenames[ROOT_cpu] = NULL; - statenames[AL_cpu] = NULL; - statenames[E_cpu] = "cpu"; - statenames[ROOT_network_link] = NULL; - statenames[AL_network_link] = NULL; - statenames[E_network_link] = "network_link"; - statenames[ROOT_route] = NULL; - statenames[AL_route] = NULL; - statenames[S_route] = "route"; - statenames[S_route_1] = "route"; - statenames[S_route_2] = "route"; - statenames[E_route] = "route"; - statenames[ROOT_route_element] = NULL; - statenames[AL_route_element] = NULL; - statenames[E_route_element] = "route_element"; - statenames[ROOT_process] = NULL; - statenames[AL_process] = NULL; - statenames[S_process] = "process"; - statenames[S_process_1] = "process"; - statenames[S_process_2] = "process"; - statenames[E_process] = "process"; - statenames[ROOT_argument] = NULL; - statenames[AL_argument] = NULL; - statenames[E_argument] = "argument"; + next = bufferstack; + if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*)); + surfxml_statenames[PROLOG] = NULL; + surfxml_statenames[DOCTYPE] = NULL; + surfxml_statenames[EPILOG] = NULL; + surfxml_statenames[INCOMMENT] = NULL; + surfxml_statenames[INPI] = NULL; + surfxml_statenames[VALUE1] = NULL; + surfxml_statenames[VALUE2] = NULL; + surfxml_statenames[CDATA] = NULL; + surfxml_statenames[ROOT_surfxml_platform_description] = NULL; + surfxml_statenames[AL_surfxml_platform_description] = NULL; + surfxml_statenames[S_surfxml_platform_description] = "platform_description"; + surfxml_statenames[S_surfxml_platform_description_1] = "platform_description"; + surfxml_statenames[S_surfxml_platform_description_2] = "platform_description"; + surfxml_statenames[E_surfxml_platform_description] = "platform_description"; + surfxml_statenames[ROOT_surfxml_include] = NULL; + surfxml_statenames[AL_surfxml_include] = NULL; + surfxml_statenames[S_surfxml_include] = "include"; + surfxml_statenames[S_surfxml_include_1] = "include"; + surfxml_statenames[S_surfxml_include_2] = "include"; + surfxml_statenames[E_surfxml_include] = "include"; + surfxml_statenames[ROOT_surfxml_cpu] = NULL; + surfxml_statenames[AL_surfxml_cpu] = NULL; + surfxml_statenames[E_surfxml_cpu] = "cpu"; + surfxml_statenames[ROOT_surfxml_network_link] = NULL; + surfxml_statenames[AL_surfxml_network_link] = NULL; + surfxml_statenames[E_surfxml_network_link] = "network_link"; + surfxml_statenames[ROOT_surfxml_route] = NULL; + surfxml_statenames[AL_surfxml_route] = NULL; + surfxml_statenames[S_surfxml_route] = "route"; + surfxml_statenames[S_surfxml_route_1] = "route"; + surfxml_statenames[S_surfxml_route_2] = "route"; + surfxml_statenames[E_surfxml_route] = "route"; + surfxml_statenames[ROOT_surfxml_route_element] = NULL; + surfxml_statenames[AL_surfxml_route_element] = NULL; + surfxml_statenames[E_surfxml_route_element] = "route_element"; + surfxml_statenames[ROOT_surfxml_process] = NULL; + surfxml_statenames[AL_surfxml_process] = NULL; + surfxml_statenames[S_surfxml_process] = "process"; + surfxml_statenames[S_surfxml_process_1] = "process"; + surfxml_statenames[S_surfxml_process_2] = "process"; + surfxml_statenames[E_surfxml_process] = "process"; + surfxml_statenames[ROOT_surfxml_argument] = NULL; + surfxml_statenames[AL_surfxml_argument] = NULL; + surfxml_statenames[E_surfxml_argument] = "argument"; + } /* COMMENTS and PIs: handled uniformly for efficiency. */ -{ +{ " */ -""{ +{ + "version"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_platform_description_version); + "version"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_platform_description_version); + ">" { - LEAVE; STag_platform_description();pcdata = NULL; ENTER(S_platform_description); + LEAVE; STag_surfxml_platform_description();surfxml_pcdata = NULL; ENTER(S_surfxml_platform_description); } "/>" { - LEAVE; STag_platform_description(); pcdata = NULL; ETag_platform_description(); + LEAVE; STag_surfxml_platform_description(); surfxml_pcdata = NULL; ETag_surfxml_platform_description(); switch (YY_START) { - case ROOT_platform_description: SET(EPILOG); break; + case ROOT_surfxml_platform_description: SET(EPILOG); break; } } . FAIL("Unexpected character `%c' in attribute list of platform_description element.", yytext[0]); @@ -328,12 +366,12 @@ const char* *statenames=NULL; <> FAIL("EOF in attribute list of `platform_description' element."); } -{ +{ "" { LEAVE; - ETag_platform_description(); + ETag_surfxml_platform_description(); switch (YY_START) { - case ROOT_platform_description: SET(EPILOG); break; + case ROOT_surfxml_platform_description: SET(EPILOG); break; } } "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); @@ -341,26 +379,26 @@ const char* *statenames=NULL; <> FAIL("Premature EOF: `' expected."); } -""{ - "file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_include_file); - "file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_include_file); +{ + "file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_include_file); + "file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_include_file); ">" { - if (!A_include_file) FAIL("Required attribute `file' not set for `include' element."); - LEAVE; STag_include();pcdata = NULL; ENTER(S_include); + if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element."); + LEAVE; STag_surfxml_include();surfxml_pcdata = NULL; ENTER(S_surfxml_include); } "/>" { - if (!A_include_file) FAIL("Required attribute `file' not set for `include' element."); - LEAVE; STag_include(); pcdata = NULL; ETag_include(); + if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element."); + LEAVE; STag_surfxml_include(); surfxml_pcdata = NULL; ETag_surfxml_include(); switch (YY_START) { - case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break; - case S_include: case S_include_2: case S_include_1: SET(S_include_2); break; - case ROOT_include: SET(EPILOG); break; + case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break; + case ROOT_surfxml_include: SET(EPILOG); break; + case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; } } . FAIL("Unexpected character `%c' in attribute list of include element.", yytext[0]); @@ -368,14 +406,14 @@ const char* *statenames=NULL; <> FAIL("EOF in attribute list of `include' element."); } -{ +{ "" { LEAVE; - ETag_include(); + ETag_surfxml_include(); switch (YY_START) { - case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break; - case S_include: case S_include_2: case S_include_1: SET(S_include_2); break; - case ROOT_include: SET(EPILOG); break; + case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break; + case ROOT_surfxml_include: SET(EPILOG); break; + case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; } } "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); @@ -383,66 +421,66 @@ const char* *statenames=NULL; <> FAIL("Premature EOF: `' expected."); } -""{ - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cpu_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cpu_name); +{ + "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_name); + "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_name); - "power"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cpu_power); - "power"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cpu_power); + "power"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_power); + "power"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_power); - "availability"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cpu_availability); - "availability"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cpu_availability); + "availability"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability); + "availability"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability); - "availability_file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cpu_availability_file); - "availability_file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cpu_availability_file); + "availability_file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability_file); + "availability_file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability_file); "state"{Eq}"'ON'" | - "state"{Eq}"\"ON\"" A_cpu_state = A_cpu_state_ON; + "state"{Eq}"\"ON\"" A_surfxml_cpu_state = A_surfxml_cpu_state_ON; "state"{Eq}"'OFF'" | - "state"{Eq}"\"OFF\"" A_cpu_state = A_cpu_state_OFF; + "state"{Eq}"\"OFF\"" A_surfxml_cpu_state = A_surfxml_cpu_state_OFF; - "state_file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cpu_state_file); - "state_file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cpu_state_file); + "state_file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_state_file); + "state_file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_state_file); - "interference_send"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cpu_interference_send); - "interference_send"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cpu_interference_send); + "interference_send"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send); + "interference_send"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send); - "interference_recv"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cpu_interference_recv); - "interference_recv"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cpu_interference_recv); + "interference_recv"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_recv); + "interference_recv"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_recv); - "interference_send_recv"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cpu_interference_send_recv); - "interference_send_recv"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cpu_interference_send_recv); + "interference_send_recv"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send_recv); + "interference_send_recv"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send_recv); - "max_outgoing_rate"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cpu_max_outgoing_rate); - "max_outgoing_rate"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cpu_max_outgoing_rate); + "max_outgoing_rate"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_max_outgoing_rate); + "max_outgoing_rate"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_max_outgoing_rate); ">" { - if (!A_cpu_name) FAIL("Required attribute `name' not set for `cpu' element."); - if (!A_cpu_power) FAIL("Required attribute `power' not set for `cpu' element."); - LEAVE; STag_cpu();pcdata = NULL; ENTER(E_cpu); + if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element."); + if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element."); + LEAVE; STag_surfxml_cpu();surfxml_pcdata = NULL; ENTER(E_surfxml_cpu); } "/>" { - if (!A_cpu_name) FAIL("Required attribute `name' not set for `cpu' element."); - if (!A_cpu_power) FAIL("Required attribute `power' not set for `cpu' element."); - LEAVE; STag_cpu(); pcdata = NULL; ETag_cpu(); + if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element."); + if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element."); + LEAVE; STag_surfxml_cpu(); surfxml_pcdata = NULL; ETag_surfxml_cpu(); switch (YY_START) { - case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break; - case S_include: case S_include_2: case S_include_1: SET(S_include_2); break; - case ROOT_cpu: SET(EPILOG); break; + case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break; + case ROOT_surfxml_cpu: SET(EPILOG); break; + case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; } } . FAIL("Unexpected character `%c' in attribute list of cpu element.", yytext[0]); @@ -450,14 +488,14 @@ const char* *statenames=NULL; <> FAIL("EOF in attribute list of `cpu' element."); } -{ +{ "" { LEAVE; - ETag_cpu(); + ETag_surfxml_cpu(); switch (YY_START) { - case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break; - case S_include: case S_include_2: case S_include_1: SET(S_include_2); break; - case ROOT_cpu: SET(EPILOG); break; + case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break; + case ROOT_surfxml_cpu: SET(EPILOG); break; + case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; } } "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); @@ -465,54 +503,60 @@ const char* *statenames=NULL; <> FAIL("Premature EOF: `' expected."); } -""{ - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_network_link_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_network_link_name); +{ + "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_name); + "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_name); - "bandwidth"{Eq}\' ENTER(VALUE1); BUFFERSET(A_network_link_bandwidth); - "bandwidth"{Eq}\" ENTER(VALUE2); BUFFERSET(A_network_link_bandwidth); + "bandwidth"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth); + "bandwidth"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth); - "bandwidth_file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_network_link_bandwidth_file); - "bandwidth_file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_network_link_bandwidth_file); + "bandwidth_file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth_file); + "bandwidth_file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth_file); - "latency"{Eq}\' ENTER(VALUE1); BUFFERSET(A_network_link_latency); - "latency"{Eq}\" ENTER(VALUE2); BUFFERSET(A_network_link_latency); + "latency"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency); + "latency"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency); - "latency_file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_network_link_latency_file); - "latency_file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_network_link_latency_file); + "latency_file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency_file); + "latency_file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency_file); "state"{Eq}"'ON'" | - "state"{Eq}"\"ON\"" A_network_link_state = A_network_link_state_ON; + "state"{Eq}"\"ON\"" A_surfxml_network_link_state = A_surfxml_network_link_state_ON; "state"{Eq}"'OFF'" | - "state"{Eq}"\"OFF\"" A_network_link_state = A_network_link_state_OFF; + "state"{Eq}"\"OFF\"" A_surfxml_network_link_state = A_surfxml_network_link_state_OFF; + + "state_file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_state_file); + "state_file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_state_file); - "state_file"{Eq}\' ENTER(VALUE1); BUFFERSET(A_network_link_state_file); - "state_file"{Eq}\" ENTER(VALUE2); BUFFERSET(A_network_link_state_file); + "sharing_policy"{Eq}"'SHARED'" | + "sharing_policy"{Eq}"\"SHARED\"" A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED; + "sharing_policy"{Eq}"'FATPIPE'" | + "sharing_policy"{Eq}"\"FATPIPE\"" A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_FATPIPE; ">" { - if (!A_network_link_name) FAIL("Required attribute `name' not set for `network_link' element."); - if (!A_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element."); - LEAVE; STag_network_link();pcdata = NULL; ENTER(E_network_link); + if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element."); + if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element."); + LEAVE; STag_surfxml_network_link();surfxml_pcdata = NULL; ENTER(E_surfxml_network_link); } "/>" { - if (!A_network_link_name) FAIL("Required attribute `name' not set for `network_link' element."); - if (!A_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element."); - LEAVE; STag_network_link(); pcdata = NULL; ETag_network_link(); + if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element."); + if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element."); + LEAVE; STag_surfxml_network_link(); surfxml_pcdata = NULL; ETag_surfxml_network_link(); switch (YY_START) { - case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break; - case S_include: case S_include_2: case S_include_1: SET(S_include_2); break; - case ROOT_network_link: SET(EPILOG); break; + case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break; + case ROOT_surfxml_network_link: SET(EPILOG); break; + case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; } } . FAIL("Unexpected character `%c' in attribute list of network_link element.", yytext[0]); @@ -520,14 +564,14 @@ const char* *statenames=NULL; <> FAIL("EOF in attribute list of `network_link' element."); } -{ +{ "" { LEAVE; - ETag_network_link(); + ETag_surfxml_network_link(); switch (YY_START) { - case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break; - case S_include: case S_include_2: case S_include_1: SET(S_include_2); break; - case ROOT_network_link: SET(EPILOG); break; + case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break; + case ROOT_surfxml_network_link: SET(EPILOG); break; + case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; } } "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); @@ -535,48 +579,48 @@ const char* *statenames=NULL; <> FAIL("Premature EOF: `' expected."); } -""{ - "src"{Eq}\' ENTER(VALUE1); BUFFERSET(A_route_src); - "src"{Eq}\" ENTER(VALUE2); BUFFERSET(A_route_src); +{ + "src"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_route_src); + "src"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_route_src); - "dst"{Eq}\' ENTER(VALUE1); BUFFERSET(A_route_dst); - "dst"{Eq}\" ENTER(VALUE2); BUFFERSET(A_route_dst); + "dst"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_route_dst); + "dst"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_route_dst); - "impact_on_src"{Eq}\' ENTER(VALUE1); BUFFERSET(A_route_impact_on_src); - "impact_on_src"{Eq}\" ENTER(VALUE2); BUFFERSET(A_route_impact_on_src); + "impact_on_src"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src); + "impact_on_src"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src); - "impact_on_dst"{Eq}\' ENTER(VALUE1); BUFFERSET(A_route_impact_on_dst); - "impact_on_dst"{Eq}\" ENTER(VALUE2); BUFFERSET(A_route_impact_on_dst); + "impact_on_dst"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst); + "impact_on_dst"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst); - "impact_on_src_with_other_recv"{Eq}\' ENTER(VALUE1); BUFFERSET(A_route_impact_on_src_with_other_recv); - "impact_on_src_with_other_recv"{Eq}\" ENTER(VALUE2); BUFFERSET(A_route_impact_on_src_with_other_recv); + "impact_on_src_with_other_recv"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv); + "impact_on_src_with_other_recv"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv); - "impact_on_dst_with_other_send"{Eq}\' ENTER(VALUE1); BUFFERSET(A_route_impact_on_dst_with_other_send); - "impact_on_dst_with_other_send"{Eq}\" ENTER(VALUE2); BUFFERSET(A_route_impact_on_dst_with_other_send); + "impact_on_dst_with_other_send"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send); + "impact_on_dst_with_other_send"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send); ">" { - if (!A_route_src) FAIL("Required attribute `src' not set for `route' element."); - if (!A_route_dst) FAIL("Required attribute `dst' not set for `route' element."); - LEAVE; STag_route();pcdata = NULL; ENTER(S_route); + if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element."); + if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element."); + LEAVE; STag_surfxml_route();surfxml_pcdata = NULL; ENTER(S_surfxml_route); } "/>" { - if (!A_route_src) FAIL("Required attribute `src' not set for `route' element."); - if (!A_route_dst) FAIL("Required attribute `dst' not set for `route' element."); - LEAVE; STag_route(); pcdata = NULL; ETag_route(); + if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element."); + if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element."); + LEAVE; STag_surfxml_route(); surfxml_pcdata = NULL; ETag_surfxml_route(); switch (YY_START) { - case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break; - case S_include: case S_include_2: case S_include_1: SET(S_include_2); break; - case ROOT_route: SET(EPILOG); break; + case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break; + case ROOT_surfxml_route: SET(EPILOG); break; + case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; } } . FAIL("Unexpected character `%c' in attribute list of route element.", yytext[0]); @@ -584,14 +628,14 @@ const char* *statenames=NULL; <> FAIL("EOF in attribute list of `route' element."); } -{ +{ "" { LEAVE; - ETag_route(); + ETag_surfxml_route(); switch (YY_START) { - case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break; - case S_include: case S_include_2: case S_include_1: SET(S_include_2); break; - case ROOT_route: SET(EPILOG); break; + case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break; + case ROOT_surfxml_route: SET(EPILOG); break; + case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; } } "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); @@ -599,25 +643,25 @@ const char* *statenames=NULL; <> FAIL("Premature EOF: `' expected."); } -""{ - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_route_element_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_route_element_name); +{ + "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_route_element_name); + "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_route_element_name); ">" { - if (!A_route_element_name) FAIL("Required attribute `name' not set for `route_element' element."); - LEAVE; STag_route_element();pcdata = NULL; ENTER(E_route_element); + if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element."); + LEAVE; STag_surfxml_route_element();surfxml_pcdata = NULL; ENTER(E_surfxml_route_element); } "/>" { - if (!A_route_element_name) FAIL("Required attribute `name' not set for `route_element' element."); - LEAVE; STag_route_element(); pcdata = NULL; ETag_route_element(); + if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element."); + LEAVE; STag_surfxml_route_element(); surfxml_pcdata = NULL; ETag_surfxml_route_element(); switch (YY_START) { - case S_route_1: case S_route: case S_route_2: SET(S_route_2); break; - case ROOT_route_element: SET(EPILOG); break; + case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break; + case ROOT_surfxml_route_element: SET(EPILOG); break; } } . FAIL("Unexpected character `%c' in attribute list of route_element element.", yytext[0]); @@ -625,13 +669,13 @@ const char* *statenames=NULL; <> FAIL("EOF in attribute list of `route_element' element."); } -{ +{ "" { LEAVE; - ETag_route_element(); + ETag_surfxml_route_element(); switch (YY_START) { - case S_route_1: case S_route: case S_route_2: SET(S_route_2); break; - case ROOT_route_element: SET(EPILOG); break; + case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break; + case ROOT_surfxml_route_element: SET(EPILOG); break; } } "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); @@ -639,32 +683,40 @@ const char* *statenames=NULL; <> FAIL("Premature EOF: `' expected."); } -""{ - "host"{Eq}\' ENTER(VALUE1); BUFFERSET(A_process_host); - "host"{Eq}\" ENTER(VALUE2); BUFFERSET(A_process_host); +{ + "host"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_process_host); + "host"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_process_host); + + "function"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_process_function); + "function"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_process_function); + + "start_time"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_process_start_time); + "start_time"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_process_start_time); - "function"{Eq}\' ENTER(VALUE1); BUFFERSET(A_process_function); - "function"{Eq}\" ENTER(VALUE2); BUFFERSET(A_process_function); + "kill_time"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_process_kill_time); + "kill_time"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_process_kill_time); ">" { - if (!A_process_host) FAIL("Required attribute `host' not set for `process' element."); - if (!A_process_function) FAIL("Required attribute `function' not set for `process' element."); - LEAVE; STag_process();pcdata = NULL; ENTER(S_process); + if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element."); + if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element."); + LEAVE; STag_surfxml_process();surfxml_pcdata = NULL; ENTER(S_surfxml_process); } "/>" { - if (!A_process_host) FAIL("Required attribute `host' not set for `process' element."); - if (!A_process_function) FAIL("Required attribute `function' not set for `process' element."); - LEAVE; STag_process(); pcdata = NULL; ETag_process(); + if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element."); + if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element."); + LEAVE; STag_surfxml_process(); surfxml_pcdata = NULL; ETag_surfxml_process(); switch (YY_START) { - case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break; - case S_include: case S_include_2: case S_include_1: SET(S_include_2); break; - case ROOT_process: SET(EPILOG); break; + case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break; + case ROOT_surfxml_process: SET(EPILOG); break; + case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; } } . FAIL("Unexpected character `%c' in attribute list of process element.", yytext[0]); @@ -672,14 +724,14 @@ const char* *statenames=NULL; <> FAIL("EOF in attribute list of `process' element."); } -{ +{ "" { LEAVE; - ETag_process(); + ETag_surfxml_process(); switch (YY_START) { - case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break; - case S_include: case S_include_2: case S_include_1: SET(S_include_2); break; - case ROOT_process: SET(EPILOG); break; + case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break; + case ROOT_surfxml_process: SET(EPILOG); break; + case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; } } "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); @@ -687,25 +739,25 @@ const char* *statenames=NULL; <> FAIL("Premature EOF: `' expected."); } -""{ - "value"{Eq}\' ENTER(VALUE1); BUFFERSET(A_argument_value); - "value"{Eq}\" ENTER(VALUE2); BUFFERSET(A_argument_value); +{ + "value"{Eq}\' ENTER(VALUE1); BUFFERSET(A_surfxml_argument_value); + "value"{Eq}\" ENTER(VALUE2); BUFFERSET(A_surfxml_argument_value); ">" { - if (!A_argument_value) FAIL("Required attribute `value' not set for `argument' element."); - LEAVE; STag_argument();pcdata = NULL; ENTER(E_argument); + if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element."); + LEAVE; STag_surfxml_argument();surfxml_pcdata = NULL; ENTER(E_surfxml_argument); } "/>" { - if (!A_argument_value) FAIL("Required attribute `value' not set for `argument' element."); - LEAVE; STag_argument(); pcdata = NULL; ETag_argument(); + if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element."); + LEAVE; STag_surfxml_argument(); surfxml_pcdata = NULL; ETag_surfxml_argument(); switch (YY_START) { - case ROOT_argument: SET(EPILOG); break; - case S_process_1: case S_process: case S_process_2: SET(S_process_2); break; + case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break; + case ROOT_surfxml_argument: SET(EPILOG); break; } } . FAIL("Unexpected character `%c' in attribute list of argument element.", yytext[0]); @@ -713,13 +765,13 @@ const char* *statenames=NULL; <> FAIL("EOF in attribute list of `argument' element."); } -{ +{ "" { LEAVE; - ETag_argument(); + ETag_surfxml_argument(); switch (YY_START) { - case ROOT_argument: SET(EPILOG); break; - case S_process_1: case S_process: case S_process_2: SET(S_process_2); break; + case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break; + case ROOT_surfxml_argument: SET(EPILOG); break; } } "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); @@ -730,7 +782,7 @@ const char* *statenames=NULL; /* EPILOG: after the root element. */ { - . FAIL("Unexpected character `%c' after document.", yytext[0]); + . {SET(PROLOG); yyless(0); CLEANUP; return -1;} <> SUCCEED; } @@ -778,21 +830,22 @@ const char* *statenames=NULL; { "]""]>" LEAVE; - "]""]" BUFFERPUTC(yytext[0]); BUFFERPUTC(yytext[1]); + /* "]""]" BUFFERPUTC(yytext[0]); BUFFERPUTC(yytext[1]); */ . BUFFERPUTC(yytext[0]); <> FAIL("EOF in CDATA section."); } /* Impossible rules to avoid warnings from flex(1). */ - -{ - .|[\n] FAIL("The Impossible Happened: INITIAL or IMPOSSIBLE state entered?"); + /* Ideally, this should be replaced by code in flexml.pl that + generates just the states not covered by other rules. */ +<*>{ + .|[\n] FAIL("Syntax error on character `%c'.", yytext[0]); } %% /* Element context stack lookup. */ -int element_context(int i) +int surfxml_element_context(int i) { return (0