X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/538180328b36f798ccc1e5085f6831092edadfe9..f0886ea4ab50491bd7cf056d8ed576cd939acd3e:/src/xbt/graphxml.c diff --git a/src/xbt/graphxml.c b/src/xbt/graphxml.c index 68d922d5da..2b1a8efbb6 100644 --- a/src/xbt/graphxml.c +++ b/src/xbt/graphxml.c @@ -1,6 +1,5 @@ -#line 2 "xbt/graphxml.c" -#line 4 "xbt/graphxml.c" +#line 3 "xbt/graphxml.c" #define YY_INT_ALIGNED short int @@ -1012,13 +1011,13 @@ int xbt_graph_parse__flex_debug = 0; #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *xbt_graph_parse_text; -#line 1 "xbt/graphxml.l" -/* Validating XML processor for graphxml.dtd. - * Generated 2006/03/28 12:29:32. +/* Validating XML processor for xbt/graphxml.dtd. + * Generated 2007/08/09 10:57:49. * * 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.47 2006/03/21 11:12:57 legranda Exp). + * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved. + * FleXML is Copyright (C) 2003-2006 Martin Quinson. All rights reserved. + * (Id: flexml.pl,v 1.61 2006/09/13 16:34:33 wdowling Exp). * * There are two, intertwined parts to this program, part A and part B. * @@ -1026,8 +1025,8 @@ char *xbt_graph_parse_text; * ------ * * Some parts, here collectively called "Part A", are found in the - * FleXML package. They are Copyright © 1999-2005 Kristoffer Rose. - * All rights reserved. + * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose + * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved. * * You can redistribute, use, perform, display and/or modify "Part A" * provided the following two conditions hold: @@ -1058,41 +1057,69 @@ char *xbt_graph_parse_text; * by the author of or contributors to FleXML. * */ -#line 48 "xbt/graphxml.l" /* Version strings. */ const char rcs_graphxml_flexml_skeleton[] = - "$" "Id: skel,v 1.28 2006/03/21 12:04:13 legranda Exp $"; + "$" "Id: skel,v 1.38 2006/09/12 18:05:45 wdowling Exp $"; const char rcs_graphxml_flexml[] = - "$" "Id: flexml.pl,v 1.47 2006/03/21 11:12:57 legranda Exp $"; + "$" "Id: flexml.pl,v 1.61 2006/09/13 16:34:33 wdowling Exp $"; /* ANSI headers. */ -#include +/* ANSI headers. */ +#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__) +# ifndef __STRICT_ANSI__ +# include +# include +# endif +#else +# include +#endif #include #include #include #include #include +#ifndef FLEXML_INDEXSTACKSIZE +#define FLEXML_INDEXSTACKSIZE 1000 +#endif + /* Generated definitions. */ #define FLEXML_yylineno +#ifndef FLEXML_BUFFERSTACKSIZE #define FLEXML_BUFFERSTACKSIZE 1000000 +#endif +#define FLEXML_NEED_BUFFERLIT /* XML processor api. */ /* FleXML-provided data. */ -const char* pcdata; -AT_graphxml_node_name A_graphxml_node_name; -AT_graphxml_edge_source A_graphxml_edge_source; -AT_graphxml_node_position_y A_graphxml_node_position_y; -AT_graphxml_node_position_x A_graphxml_node_position_x; -AT_graphxml_edge_data A_graphxml_edge_data; -AT_graphxml_edge_target A_graphxml_edge_target; -AT_graphxml_graph_isDirected A_graphxml_graph_isDirected; -AT_graphxml_node_label A_graphxml_node_label; -AT_graphxml_node_data A_graphxml_node_data; -AT_graphxml_edge_label A_graphxml_edge_label; -AT_graphxml_edge_length A_graphxml_edge_length; -AT_graphxml_edge_name A_graphxml_edge_name; +int graphxml_pcdata_ix; +extern char *graphxml_bufferstack; +#define graphxml_pcdata (graphxml_bufferstack + graphxml_pcdata_ix) +AT_graphxml_node_name AX_graphxml_node_name; +#define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name) +AT_graphxml_edge_source AX_graphxml_edge_source; +#define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source) +AT_graphxml_node_position_y AX_graphxml_node_position_y; +#define A_graphxml_node_position_y (graphxml_bufferstack + AX_graphxml_node_position_y) +AT_graphxml_node_position_x AX_graphxml_node_position_x; +#define A_graphxml_node_position_x (graphxml_bufferstack + AX_graphxml_node_position_x) +AT_graphxml_edge_data AX_graphxml_edge_data; +#define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data) +AT_graphxml_edge_target AX_graphxml_edge_target; +#define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target) +AT_graphxml_graph_isDirected AX_graphxml_graph_isDirected; +#define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected +AT_graphxml_node_label AX_graphxml_node_label; +#define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label) +AT_graphxml_node_data AX_graphxml_node_data; +#define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data) +AT_graphxml_edge_label AX_graphxml_edge_label; +#define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label) +AT_graphxml_edge_length AX_graphxml_edge_length; +#define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length) +AT_graphxml_edge_name AX_graphxml_edge_name; +#define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name) /* XML state. */ #ifdef FLEX_DEBUG @@ -1114,64 +1141,97 @@ AT_graphxml_edge_name A_graphxml_edge_name; #define FAIL return fail static int fail(const char*, ...); -const char * graphxml_parse_err_msg(void); + +enum {flexml_max_err_msg_size = 512}; +static char flexml_err_msg[flexml_max_err_msg_size]; +const char * graphxml_parse_err_msg() +{ + return flexml_err_msg; +} +static void reset_graphxml_parse_err_msg() +{ + flexml_err_msg[0] = '\0'; +} /* Cleanup */ static void cleanup(void); #define CLEANUP cleanup() /* Text buffer stack handling. */ -char bufferstack[FLEXML_BUFFERSTACKSIZE]; -static char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE; -typedef struct BufferLast_s { - struct BufferLast_s *old; char* saved; char new1[1]; -} BufferLast; -#ifdef FLEXML_HasMixed -static BufferLast* last = (BufferLast*)0; -#endif -static char* next = bufferstack; +char *graphxml_bufferstack = NULL; +static int blimit = FLEXML_BUFFERSTACKSIZE; +static int bnext = 1; -#define BUFFERSET(P) (P = next) -#define BUFFERPUTC(C) (assert(next= blimit) { + blimit += FLEXML_BUFFERSTACKSIZE + 2; + { + char *temp = (char *) realloc(graphxml_bufferstack, blimit); + assert(temp); + graphxml_bufferstack = temp; + } + } + return 0; +} + +/* after this is called, there are at least 2 slots left in the stack */ +static int ck_ilimit() +{ + if (inext >= ilimit) { + ilimit += FLEXML_INDEXSTACKSIZE + 2; + { + int *temp = (int *) realloc(indexstack, ilimit); + assert(temp); + indexstack = temp; + } + } + return 0; +} + +#ifdef FLEXML_NEED_BUFFERLIT +static void graphxml_bufferliteral(char c, int* pp, const char* text) +{ + const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c); assert(s <= e); BUFFERSET(*pp); while (++sold = last; - l->saved = p; - next = l->new1; - last = l; + ck_ilimit(); + indexstack[inext++] = p; + indexstack[inext++] = bnext; } -static char* popbuffer(void) +static int popbuffer(void) { - BufferLast* l = last; - assert(last != (BufferLast*)0); - last = l->old; - next = (char*)l; - return l->saved; + assert(inext >= 2); + bnext = indexstack[--inext]; + return indexstack[--inext]; } -#endif /* General internal entities are `unput' back onto the input stream... */ #define ENTITYTEXT(T) \ { char *s = (T), *e = s+strlen(s);\ while (--e >= s) { unput(*e); }} + /* Flex standard options. */ #define YY_NO_INPUT 1 /* Flex user-requested options. */ @@ -1195,14 +1255,8 @@ static char* popbuffer(void) * IMPOSSIBLE dummy to permit disabling rules; must be last */ - - - - -#line 215 "xbt/graphxml.l" /* State names. */ const char* *graphxml_statenames=NULL; -#line 1206 "xbt/graphxml.c" #define INITIAL 0 #define PROLOG 1 @@ -1235,7 +1289,15 @@ const char* *graphxml_statenames=NULL; * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ -#include +/* ANSI headers. */ +#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__) +# ifndef __STRICT_ANSI__ +# include +# include +# endif +#else +# include +#endif #endif #ifndef YY_EXTRA_TYPE @@ -1385,13 +1447,29 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 219 "xbt/graphxml.l" - - /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */ SET(PROLOG); + reset_graphxml_parse_err_msg(); + graphxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE); + assert(graphxml_bufferstack); + #ifdef FLEX_DEBUG + { + int i; + for (i = 0; i < blimit; i++) { + graphxml_bufferstack[i] = '\377'; + } + } + #endif + graphxml_bufferstack[0] = '\0'; + indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int)); + assert(indexstack); + indexstack[0] = 0; + /* FleXML_init */ - next = bufferstack; + bnext = inext = 1; + graphxml_bufferliteral('\0', &bnext, "-1.0"); + graphxml_bufferliteral('\0', &bnext, "-1.0"); + graphxml_bufferliteral('\0', &bnext, "-1.0"); if(!graphxml_statenames) {graphxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*)); graphxml_statenames[PROLOG] = NULL; graphxml_statenames[DOCTYPE] = NULL; @@ -1420,8 +1498,6 @@ YY_DECL /* COMMENTS and PIs: handled uniformly for efficiency. */ -#line 1424 "xbt/graphxml.c" - if ( !(yy_init) ) { (yy_init) = 1; @@ -1515,52 +1591,39 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 254 "xbt/graphxml.l" ENTER(INCOMMENT); YY_BREAK case 2: YY_RULE_SETUP -#line 255 "xbt/graphxml.l" ENTER(INPI); YY_BREAK - case 3: YY_RULE_SETUP -#line 258 "xbt/graphxml.l" LEAVE; YY_BREAK case 4: -#line 260 "xbt/graphxml.l" case 5: -#line 261 "xbt/graphxml.l" case 6: /* rule 6 can match eol */ YY_RULE_SETUP -#line 261 "xbt/graphxml.l" SKIP; YY_BREAK case YY_STATE_EOF(INCOMMENT): -#line 262 "xbt/graphxml.l" FAIL("EOF in comment."); YY_BREAK - case 7: YY_RULE_SETUP -#line 265 "xbt/graphxml.l" LEAVE; YY_BREAK case 8: -#line 267 "xbt/graphxml.l" case 9: /* rule 9 can match eol */ YY_RULE_SETUP -#line 267 "xbt/graphxml.l" SKIP; YY_BREAK case YY_STATE_EOF(INPI): -#line 268 "xbt/graphxml.l" FAIL("EOF in PI (processing instruction)."); YY_BREAK @@ -1568,7 +1631,6 @@ FAIL("EOF in PI (processing instruction)."); case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 273 "xbt/graphxml.l" SKIP; YY_BREAK /* PROLOG: determine root element and process it. */ @@ -1576,49 +1638,40 @@ SKIP; case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 278 "xbt/graphxml.l" SET(DOCTYPE); YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP -#line 279 "xbt/graphxml.l" FAIL("Bad declaration %s.",xbt_graph_parse_text); YY_BREAK - case 13: /* rule 13 can match eol */ YY_RULE_SETUP -#line 283 "xbt/graphxml.l" SET(ROOT_graphxml_edge); YY_BREAK case 14: /* rule 14 can match eol */ YY_RULE_SETUP -#line 284 "xbt/graphxml.l" SET(ROOT_graphxml_node); YY_BREAK case 15: /* rule 15 can match eol */ YY_RULE_SETUP -#line 285 "xbt/graphxml.l" SET(ROOT_graphxml_graph); YY_BREAK case 16: /* rule 16 can match eol */ YY_RULE_SETUP -#line 286 "xbt/graphxml.l" FAIL("Bad declaration %s.",xbt_graph_parse_text); YY_BREAK case 17: YY_RULE_SETUP -#line 287 "xbt/graphxml.l" FAIL("Unexpected character `%c' in prolog.", xbt_graph_parse_text[0]); YY_BREAK case YY_STATE_EOF(PROLOG): case YY_STATE_EOF(DOCTYPE): -#line 288 "xbt/graphxml.l" FAIL("EOF in prolog."); YY_BREAK @@ -1629,43 +1682,36 @@ FAIL("EOF in prolog."); case 18: /* rule 18 can match eol */ YY_RULE_SETUP -#line 298 "xbt/graphxml.l" { - A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true; - ENTER(AL_graphxml_graph); + AX_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true; + ENTER(AL_graphxml_graph); pushbuffer(0); } YY_BREAK case 19: /* rule 19 can match eol */ -#line 305 "xbt/graphxml.l" case 20: /* rule 20 can match eol */ YY_RULE_SETUP -#line 305 "xbt/graphxml.l" A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true; YY_BREAK case 21: /* rule 21 can match eol */ -#line 307 "xbt/graphxml.l" case 22: /* rule 22 can match eol */ YY_RULE_SETUP -#line 307 "xbt/graphxml.l" A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_false; YY_BREAK case 23: YY_RULE_SETUP -#line 309 "xbt/graphxml.l" { - LEAVE; STag_graphxml_graph();pcdata = NULL; ENTER(S_graphxml_graph); + LEAVE; STag_graphxml_graph();graphxml_pcdata_ix = 0; ENTER(S_graphxml_graph); } YY_BREAK case 24: YY_RULE_SETUP -#line 312 "xbt/graphxml.l" { - LEAVE; STag_graphxml_graph(); pcdata = NULL; ETag_graphxml_graph(); + LEAVE; STag_graphxml_graph(); graphxml_pcdata_ix = 0; ETag_graphxml_graph(); popbuffer(); /* attribute */ switch (YY_START) { case ROOT_graphxml_graph: SET(EPILOG); break; } @@ -1673,27 +1719,23 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 318 "xbt/graphxml.l" FAIL("Unexpected character `%c' in attribute list of graph element.", xbt_graph_parse_text[0]); YY_BREAK case 26: YY_RULE_SETUP -#line 319 "xbt/graphxml.l" FAIL("Bad attribute `%s' in `graph' element start tag.",xbt_graph_parse_text); YY_BREAK case YY_STATE_EOF(AL_graphxml_graph): -#line 320 "xbt/graphxml.l" FAIL("EOF in attribute list of `graph' element."); YY_BREAK - case 27: /* rule 27 can match eol */ YY_RULE_SETUP -#line 324 "xbt/graphxml.l" { LEAVE; ETag_graphxml_graph(); + popbuffer(); /* attribute */ switch (YY_START) { case ROOT_graphxml_graph: SET(EPILOG); break; } @@ -1702,12 +1744,10 @@ YY_RULE_SETUP case 28: /* rule 28 can match eol */ YY_RULE_SETUP -#line 331 "xbt/graphxml.l" FAIL("Unexpected end-tag `%s': `' expected.",xbt_graph_parse_text); YY_BREAK case 29: YY_RULE_SETUP -#line 332 "xbt/graphxml.l" FAIL("Unexpected character `%c': `' expected.",xbt_graph_parse_text[0]); YY_BREAK case YY_STATE_EOF(S_graphxml_graph_1): @@ -1715,7 +1755,6 @@ case YY_STATE_EOF(E_graphxml_graph): case YY_STATE_EOF(S_graphxml_graph_3): case YY_STATE_EOF(S_graphxml_graph_5): case YY_STATE_EOF(S_graphxml_graph): -#line 333 "xbt/graphxml.l" FAIL("Premature EOF: `' expected."); YY_BREAK @@ -1728,91 +1767,78 @@ FAIL("Premature EOF: `' expected."); case 30: /* rule 30 can match eol */ YY_RULE_SETUP -#line 343 "xbt/graphxml.l" { - A_graphxml_node_label = NULL; - A_graphxml_node_name = NULL; - A_graphxml_node_data = NULL; - A_graphxml_node_position_x = "-1.0"; - A_graphxml_node_position_y = "-1.0"; - ENTER(AL_graphxml_node); + AX_graphxml_node_label = 0; + AX_graphxml_node_name = 0; + AX_graphxml_node_data = 0; + AX_graphxml_node_position_x = 1; + AX_graphxml_node_position_y = 6; + ENTER(AL_graphxml_node); pushbuffer(0); } YY_BREAK case 31: /* rule 31 can match eol */ YY_RULE_SETUP -#line 353 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_node_label); +ENTER(VALUE1); BUFFERSET(AX_graphxml_node_label); YY_BREAK case 32: /* rule 32 can match eol */ YY_RULE_SETUP -#line 354 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_node_label); +ENTER(VALUE2); BUFFERSET(AX_graphxml_node_label); YY_BREAK case 33: /* rule 33 can match eol */ YY_RULE_SETUP -#line 356 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_node_name); +ENTER(VALUE1); BUFFERSET(AX_graphxml_node_name); YY_BREAK case 34: /* rule 34 can match eol */ YY_RULE_SETUP -#line 357 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_node_name); +ENTER(VALUE2); BUFFERSET(AX_graphxml_node_name); YY_BREAK case 35: /* rule 35 can match eol */ YY_RULE_SETUP -#line 359 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_node_data); +ENTER(VALUE1); BUFFERSET(AX_graphxml_node_data); YY_BREAK case 36: /* rule 36 can match eol */ YY_RULE_SETUP -#line 360 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_node_data); +ENTER(VALUE2); BUFFERSET(AX_graphxml_node_data); YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP -#line 362 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_node_position_x); +ENTER(VALUE1); BUFFERSET(AX_graphxml_node_position_x); YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP -#line 363 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_node_position_x); +ENTER(VALUE2); BUFFERSET(AX_graphxml_node_position_x); YY_BREAK case 39: /* rule 39 can match eol */ YY_RULE_SETUP -#line 365 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_node_position_y); +ENTER(VALUE1); BUFFERSET(AX_graphxml_node_position_y); YY_BREAK case 40: /* rule 40 can match eol */ YY_RULE_SETUP -#line 366 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_node_position_y); +ENTER(VALUE2); BUFFERSET(AX_graphxml_node_position_y); YY_BREAK case 41: YY_RULE_SETUP -#line 368 "xbt/graphxml.l" { - if (!A_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element."); - LEAVE; STag_graphxml_node();pcdata = NULL; ENTER(E_graphxml_node); + if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element."); + LEAVE; STag_graphxml_node();graphxml_pcdata_ix = 0; ENTER(E_graphxml_node); } YY_BREAK case 42: YY_RULE_SETUP -#line 372 "xbt/graphxml.l" { - if (!A_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element."); - LEAVE; STag_graphxml_node(); pcdata = NULL; ETag_graphxml_node(); + if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element."); + LEAVE; STag_graphxml_node(); graphxml_pcdata_ix = 0; ETag_graphxml_node(); popbuffer(); /* attribute */ switch (YY_START) { case S_graphxml_graph_2: case S_graphxml_graph_3: case S_graphxml_graph: SET(S_graphxml_graph_3); break; case ROOT_graphxml_node: SET(EPILOG); break; @@ -1821,27 +1847,23 @@ YY_RULE_SETUP YY_BREAK case 43: YY_RULE_SETUP -#line 380 "xbt/graphxml.l" FAIL("Unexpected character `%c' in attribute list of node element.", xbt_graph_parse_text[0]); YY_BREAK case 44: YY_RULE_SETUP -#line 381 "xbt/graphxml.l" FAIL("Bad attribute `%s' in `node' element start tag.",xbt_graph_parse_text); YY_BREAK case YY_STATE_EOF(AL_graphxml_node): -#line 382 "xbt/graphxml.l" FAIL("EOF in attribute list of `node' element."); YY_BREAK - case 45: /* rule 45 can match eol */ YY_RULE_SETUP -#line 386 "xbt/graphxml.l" { LEAVE; ETag_graphxml_node(); + popbuffer(); /* attribute */ switch (YY_START) { case S_graphxml_graph_2: case S_graphxml_graph_3: case S_graphxml_graph: SET(S_graphxml_graph_3); break; case ROOT_graphxml_node: SET(EPILOG); break; @@ -1851,16 +1873,13 @@ YY_RULE_SETUP case 46: /* rule 46 can match eol */ YY_RULE_SETUP -#line 394 "xbt/graphxml.l" FAIL("Unexpected end-tag `%s': `' expected.",xbt_graph_parse_text); YY_BREAK case 47: YY_RULE_SETUP -#line 395 "xbt/graphxml.l" FAIL("Unexpected character `%c': `' expected.",xbt_graph_parse_text[0]); YY_BREAK case YY_STATE_EOF(E_graphxml_node): -#line 396 "xbt/graphxml.l" FAIL("Premature EOF: `' expected."); YY_BREAK @@ -1874,106 +1893,91 @@ FAIL("Premature EOF: `' expected."); case 48: /* rule 48 can match eol */ YY_RULE_SETUP -#line 407 "xbt/graphxml.l" { - A_graphxml_edge_label = NULL; - A_graphxml_edge_name = NULL; - A_graphxml_edge_source = NULL; - A_graphxml_edge_target = NULL; - A_graphxml_edge_length = "-1.0"; - A_graphxml_edge_data = NULL; - ENTER(AL_graphxml_edge); + AX_graphxml_edge_label = 0; + AX_graphxml_edge_name = 0; + AX_graphxml_edge_source = 0; + AX_graphxml_edge_target = 0; + AX_graphxml_edge_length = 11; + AX_graphxml_edge_data = 0; + ENTER(AL_graphxml_edge); pushbuffer(0); } YY_BREAK case 49: /* rule 49 can match eol */ YY_RULE_SETUP -#line 418 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_edge_label); +ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_label); YY_BREAK case 50: /* rule 50 can match eol */ YY_RULE_SETUP -#line 419 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_edge_label); +ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_label); YY_BREAK case 51: /* rule 51 can match eol */ YY_RULE_SETUP -#line 421 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_edge_name); +ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_name); YY_BREAK case 52: /* rule 52 can match eol */ YY_RULE_SETUP -#line 422 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_edge_name); +ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_name); YY_BREAK case 53: /* rule 53 can match eol */ YY_RULE_SETUP -#line 424 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_edge_source); +ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_source); YY_BREAK case 54: /* rule 54 can match eol */ YY_RULE_SETUP -#line 425 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_edge_source); +ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_source); YY_BREAK case 55: /* rule 55 can match eol */ YY_RULE_SETUP -#line 427 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_edge_target); +ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_target); YY_BREAK case 56: /* rule 56 can match eol */ YY_RULE_SETUP -#line 428 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_edge_target); +ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_target); YY_BREAK case 57: /* rule 57 can match eol */ YY_RULE_SETUP -#line 430 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_edge_length); +ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_length); YY_BREAK case 58: /* rule 58 can match eol */ YY_RULE_SETUP -#line 431 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_edge_length); +ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_length); YY_BREAK case 59: /* rule 59 can match eol */ YY_RULE_SETUP -#line 433 "xbt/graphxml.l" -ENTER(VALUE1); BUFFERSET(A_graphxml_edge_data); +ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_data); YY_BREAK case 60: /* rule 60 can match eol */ YY_RULE_SETUP -#line 434 "xbt/graphxml.l" -ENTER(VALUE2); BUFFERSET(A_graphxml_edge_data); +ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_data); YY_BREAK case 61: YY_RULE_SETUP -#line 436 "xbt/graphxml.l" { - if (!A_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element."); - if (!A_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element."); - LEAVE; STag_graphxml_edge();pcdata = NULL; ENTER(E_graphxml_edge); + if (!AX_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element."); + if (!AX_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element."); + LEAVE; STag_graphxml_edge();graphxml_pcdata_ix = 0; ENTER(E_graphxml_edge); } YY_BREAK case 62: YY_RULE_SETUP -#line 441 "xbt/graphxml.l" { - if (!A_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element."); - if (!A_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element."); - LEAVE; STag_graphxml_edge(); pcdata = NULL; ETag_graphxml_edge(); + if (!AX_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element."); + if (!AX_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element."); + LEAVE; STag_graphxml_edge(); graphxml_pcdata_ix = 0; ETag_graphxml_edge(); popbuffer(); /* attribute */ switch (YY_START) { case S_graphxml_graph_1: case S_graphxml_graph_3: case S_graphxml_graph_5: case S_graphxml_graph_4: case S_graphxml_graph: SET(S_graphxml_graph_5); break; case ROOT_graphxml_edge: SET(EPILOG); break; @@ -1982,27 +1986,23 @@ YY_RULE_SETUP YY_BREAK case 63: YY_RULE_SETUP -#line 450 "xbt/graphxml.l" FAIL("Unexpected character `%c' in attribute list of edge element.", xbt_graph_parse_text[0]); YY_BREAK case 64: YY_RULE_SETUP -#line 451 "xbt/graphxml.l" FAIL("Bad attribute `%s' in `edge' element start tag.",xbt_graph_parse_text); YY_BREAK case YY_STATE_EOF(AL_graphxml_edge): -#line 452 "xbt/graphxml.l" FAIL("EOF in attribute list of `edge' element."); YY_BREAK - case 65: /* rule 65 can match eol */ YY_RULE_SETUP -#line 456 "xbt/graphxml.l" { LEAVE; ETag_graphxml_edge(); + popbuffer(); /* attribute */ switch (YY_START) { case S_graphxml_graph_1: case S_graphxml_graph_3: case S_graphxml_graph_5: case S_graphxml_graph_4: case S_graphxml_graph: SET(S_graphxml_graph_5); break; case ROOT_graphxml_edge: SET(EPILOG); break; @@ -2012,16 +2012,13 @@ YY_RULE_SETUP case 66: /* rule 66 can match eol */ YY_RULE_SETUP -#line 464 "xbt/graphxml.l" FAIL("Unexpected end-tag `%s': `' expected.",xbt_graph_parse_text); YY_BREAK case 67: YY_RULE_SETUP -#line 465 "xbt/graphxml.l" FAIL("Unexpected character `%c': `' expected.",xbt_graph_parse_text[0]); YY_BREAK case YY_STATE_EOF(E_graphxml_edge): -#line 466 "xbt/graphxml.l" FAIL("Premature EOF: `' expected."); YY_BREAK @@ -2029,11 +2026,9 @@ FAIL("Premature EOF: `' expected."); case 68: YY_RULE_SETUP -#line 472 "xbt/graphxml.l" {SET(PROLOG); yyless(0); CLEANUP; return -1;} YY_BREAK case YY_STATE_EOF(EPILOG): -#line 473 "xbt/graphxml.l" SUCCEED; YY_BREAK @@ -2042,119 +2037,91 @@ SUCCEED; /* Non-defined standard entities... */ case 69: YY_RULE_SETUP -#line 480 "xbt/graphxml.l" BUFFERPUTC('&'); YY_BREAK case 70: YY_RULE_SETUP -#line 481 "xbt/graphxml.l" BUFFERPUTC('<'); YY_BREAK case 71: YY_RULE_SETUP -#line 482 "xbt/graphxml.l" BUFFERPUTC('>'); YY_BREAK case 72: YY_RULE_SETUP -#line 483 "xbt/graphxml.l" BUFFERPUTC('\''); YY_BREAK case 73: YY_RULE_SETUP -#line 484 "xbt/graphxml.l" BUFFERPUTC('"'); YY_BREAK /* Character entities. */ case 74: YY_RULE_SETUP -#line 487 "xbt/graphxml.l" BUFFERPUTC((unsigned char)atoi(xbt_graph_parse_text+2)); YY_BREAK case 75: YY_RULE_SETUP -#line 488 "xbt/graphxml.l" BUFFERPUTC((unsigned char)strtol(xbt_graph_parse_text+3,NULL,16)); YY_BREAK - case 76: /* rule 76 can match eol */ -#line 493 "xbt/graphxml.l" case 77: /* rule 77 can match eol */ -#line 494 "xbt/graphxml.l" case 78: /* rule 78 can match eol */ -#line 495 "xbt/graphxml.l" case 79: /* rule 79 can match eol */ YY_RULE_SETUP -#line 495 "xbt/graphxml.l" BUFFERPUTC('\n'); YY_BREAK - case 80: YY_RULE_SETUP -#line 499 "xbt/graphxml.l" ENTER(CDATA); YY_BREAK case 81: YY_RULE_SETUP -#line 500 "xbt/graphxml.l" FAIL("Unexpected `]""]>' in character data."); YY_BREAK - case 82: YY_RULE_SETUP -#line 504 "xbt/graphxml.l" BUFFERDONE; LEAVE; YY_BREAK case YY_STATE_EOF(VALUE1): -#line 505 "xbt/graphxml.l" FAIL("EOF in literal (\"'\" expected)."); YY_BREAK - case 83: YY_RULE_SETUP -#line 509 "xbt/graphxml.l" BUFFERDONE; LEAVE; YY_BREAK case YY_STATE_EOF(VALUE2): -#line 510 "xbt/graphxml.l" FAIL("EOF in literal (`\"' expected)."); YY_BREAK - case 84: /* rule 84 can match eol */ YY_RULE_SETUP -#line 514 "xbt/graphxml.l" BUFFERPUTC(xbt_graph_parse_text[0]); YY_BREAK case 85: YY_RULE_SETUP -#line 515 "xbt/graphxml.l" FAIL("Spurious `%c' in character data.",xbt_graph_parse_text[0]); YY_BREAK - case 86: YY_RULE_SETUP -#line 519 "xbt/graphxml.l" LEAVE; YY_BREAK /* "]""]" BUFFERPUTC(xbt_graph_parse_text[0]); BUFFERPUTC(xbt_graph_parse_text[1]); */ case 87: YY_RULE_SETUP -#line 521 "xbt/graphxml.l" BUFFERPUTC(xbt_graph_parse_text[0]); YY_BREAK case YY_STATE_EOF(CDATA): -#line 522 "xbt/graphxml.l" FAIL("EOF in CDATA section."); YY_BREAK @@ -2165,16 +2132,13 @@ FAIL("EOF in CDATA section."); case 88: /* rule 88 can match eol */ YY_RULE_SETUP -#line 529 "xbt/graphxml.l" FAIL("Syntax error on character `%c'.", xbt_graph_parse_text[0]); YY_BREAK case 89: YY_RULE_SETUP -#line 532 "xbt/graphxml.l" ECHO; YY_BREAK -#line 2178 "xbt/graphxml.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(ROOT_graphxml_graph): case YY_STATE_EOF(S_graphxml_graph_2): @@ -2411,7 +2375,7 @@ static int yy_get_next_buffer (void) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); + (yy_n_chars), (size_t) num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } @@ -2690,7 +2654,7 @@ static void xbt_graph_parse__load_buffer_state (void) xbt_graph_parse_free((void *) b ); } -#ifndef __cplusplus +#if !defined(__cplusplus) && !defined(WIN32) extern int isatty (int ); #endif /* __cplusplus */ @@ -3178,10 +3142,6 @@ void xbt_graph_parse_free (void * ptr ) #define YYTABLES_NAME "yytables" -#line 532 "xbt/graphxml.l" - - - /* Element context stack lookup. */ int graphxml_element_context(int i) { @@ -3195,19 +3155,39 @@ void print_yy_stack(char* fmt, ...) { int i = 0; va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); - for (i=1; i