-#line 2 "xbt/graphxml.c"
-
-#line 4 "xbt/graphxml.c"
+#include "xbt/graphxml.h"
+
+#line 3 "xbt/graphxml.c"
#define YY_INT_ALIGNED short int
#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 xbt/graphxml.dtd.
- * Generated 2006/07/18 21:02:16.
+ * Generated 2006/09/28 14:50:43.
*
* This program was generated with the FleXML XML processor generator.
* FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
* by the author of or contributors to FleXML.
*
*/
-#line 49 "xbt/graphxml.l"
/* Version strings. */
const char rcs_graphxml_flexml_skeleton[] =
"$" "Id: flexml.pl,v 1.53 2006/07/18 12:12:06 mquinson Exp $";
/* ANSI headers. */
-#include <unistd.h>
+#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
+# ifndef __STRICT_ANSI__
+# include <io.h>
+# include <process.h>
+# endif
+#else
+# include <unistd.h>
+#endif
#include <stdio.h>
#include <string.h>
#include <assert.h>
* IMPOSSIBLE dummy to permit disabling rules; must be last
*/
-
-
-
-
-#line 216 "xbt/graphxml.l"
/* State names. */
const char* *graphxml_statenames=NULL;
-#line 1195 "xbt/graphxml.c"
#define INITIAL 0
#define PROLOG 1
* 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 <unistd.h>
+#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
+# ifndef __STRICT_ANSI__
+# include <io.h>
+# include <process.h>
+# endif
+#else
+# include <unistd.h>
+#endif
#endif
#ifndef YY_EXTRA_TYPE
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 220 "xbt/graphxml.l"
-
-
/* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
SET(PROLOG);
/* FleXML_init */
/* COMMENTS and PIs: handled uniformly for efficiency. */
-#line 1411 "xbt/graphxml.c"
-
if ( (yy_init) )
{
(yy_init) = 0;
case 1:
YY_RULE_SETUP
-#line 255 "xbt/graphxml.l"
ENTER(INCOMMENT);
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 256 "xbt/graphxml.l"
ENTER(INPI);
YY_BREAK
-
case 3:
YY_RULE_SETUP
-#line 259 "xbt/graphxml.l"
LEAVE;
YY_BREAK
case 4:
-#line 261 "xbt/graphxml.l"
case 5:
-#line 262 "xbt/graphxml.l"
case 6:
/* rule 6 can match eol */
YY_RULE_SETUP
-#line 262 "xbt/graphxml.l"
SKIP;
YY_BREAK
case YY_STATE_EOF(INCOMMENT):
-#line 263 "xbt/graphxml.l"
FAIL("EOF in comment.");
YY_BREAK
-
case 7:
YY_RULE_SETUP
-#line 266 "xbt/graphxml.l"
LEAVE;
YY_BREAK
case 8:
-#line 268 "xbt/graphxml.l"
case 9:
/* rule 9 can match eol */
YY_RULE_SETUP
-#line 268 "xbt/graphxml.l"
SKIP;
YY_BREAK
case YY_STATE_EOF(INPI):
-#line 269 "xbt/graphxml.l"
FAIL("EOF in PI (processing instruction).");
YY_BREAK
case 10:
/* rule 10 can match eol */
YY_RULE_SETUP
-#line 274 "xbt/graphxml.l"
SKIP;
YY_BREAK
/* PROLOG: determine root element and process it. */
case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
-#line 279 "xbt/graphxml.l"
SET(DOCTYPE);
YY_BREAK
case 12:
/* rule 12 can match eol */
YY_RULE_SETUP
-#line 280 "xbt/graphxml.l"
FAIL("Bad declaration %s.",xbt_graph_parse_text);
YY_BREAK
-
case 13:
/* rule 13 can match eol */
YY_RULE_SETUP
-#line 284 "xbt/graphxml.l"
SET(ROOT_graphxml_edge);
YY_BREAK
case 14:
/* rule 14 can match eol */
YY_RULE_SETUP
-#line 285 "xbt/graphxml.l"
SET(ROOT_graphxml_node);
YY_BREAK
case 15:
/* rule 15 can match eol */
YY_RULE_SETUP
-#line 286 "xbt/graphxml.l"
SET(ROOT_graphxml_graph);
YY_BREAK
case 16:
/* rule 16 can match eol */
YY_RULE_SETUP
-#line 287 "xbt/graphxml.l"
FAIL("Bad declaration %s.",xbt_graph_parse_text);
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 288 "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 289 "xbt/graphxml.l"
FAIL("EOF in prolog.");
YY_BREAK
case 18:
/* rule 18 can match eol */
YY_RULE_SETUP
-#line 299 "xbt/graphxml.l"
{
A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true;
ENTER(AL_graphxml_graph);
case 19:
/* rule 19 can match eol */
-#line 306 "xbt/graphxml.l"
case 20:
/* rule 20 can match eol */
YY_RULE_SETUP
-#line 306 "xbt/graphxml.l"
A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true;
YY_BREAK
case 21:
/* rule 21 can match eol */
-#line 308 "xbt/graphxml.l"
case 22:
/* rule 22 can match eol */
YY_RULE_SETUP
-#line 308 "xbt/graphxml.l"
A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_false;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 310 "xbt/graphxml.l"
{
LEAVE; STag_graphxml_graph();graphxml_pcdata = NULL; ENTER(S_graphxml_graph);
}
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 313 "xbt/graphxml.l"
{
LEAVE; STag_graphxml_graph(); graphxml_pcdata = NULL; ETag_graphxml_graph();
switch (YY_START) {
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 319 "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 320 "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 321 "xbt/graphxml.l"
FAIL("EOF in attribute list of `graph' element.");
YY_BREAK
-
case 27:
/* rule 27 can match eol */
YY_RULE_SETUP
-#line 325 "xbt/graphxml.l"
{
LEAVE;
ETag_graphxml_graph();
case 28:
/* rule 28 can match eol */
YY_RULE_SETUP
-#line 332 "xbt/graphxml.l"
FAIL("Unexpected end-tag `%s': `</graph>' expected.",xbt_graph_parse_text);
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 333 "xbt/graphxml.l"
FAIL("Unexpected character `%c': `</graph>' expected.",xbt_graph_parse_text[0]);
YY_BREAK
case YY_STATE_EOF(S_graphxml_graph_1):
case YY_STATE_EOF(S_graphxml_graph_3):
case YY_STATE_EOF(S_graphxml_graph_5):
case YY_STATE_EOF(S_graphxml_graph):
-#line 334 "xbt/graphxml.l"
FAIL("Premature EOF: `</graph>' expected.");
YY_BREAK
case 30:
/* rule 30 can match eol */
YY_RULE_SETUP
-#line 344 "xbt/graphxml.l"
{
A_graphxml_node_label = NULL;
A_graphxml_node_name = NULL;
case 31:
/* rule 31 can match eol */
YY_RULE_SETUP
-#line 354 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_node_label);
YY_BREAK
case 32:
/* rule 32 can match eol */
YY_RULE_SETUP
-#line 355 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_node_label);
YY_BREAK
case 33:
/* rule 33 can match eol */
YY_RULE_SETUP
-#line 357 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_node_name);
YY_BREAK
case 34:
/* rule 34 can match eol */
YY_RULE_SETUP
-#line 358 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_node_name);
YY_BREAK
case 35:
/* rule 35 can match eol */
YY_RULE_SETUP
-#line 360 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_node_data);
YY_BREAK
case 36:
/* rule 36 can match eol */
YY_RULE_SETUP
-#line 361 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_node_data);
YY_BREAK
case 37:
/* rule 37 can match eol */
YY_RULE_SETUP
-#line 363 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_node_position_x);
YY_BREAK
case 38:
/* rule 38 can match eol */
YY_RULE_SETUP
-#line 364 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_node_position_x);
YY_BREAK
case 39:
/* rule 39 can match eol */
YY_RULE_SETUP
-#line 366 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_node_position_y);
YY_BREAK
case 40:
/* rule 40 can match eol */
YY_RULE_SETUP
-#line 367 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_node_position_y);
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 369 "xbt/graphxml.l"
{
if (!A_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element.");
LEAVE; STag_graphxml_node();graphxml_pcdata = NULL; ENTER(E_graphxml_node);
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 373 "xbt/graphxml.l"
{
if (!A_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element.");
LEAVE; STag_graphxml_node(); graphxml_pcdata = NULL; ETag_graphxml_node();
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 381 "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 382 "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 383 "xbt/graphxml.l"
FAIL("EOF in attribute list of `node' element.");
YY_BREAK
-
case 45:
/* rule 45 can match eol */
YY_RULE_SETUP
-#line 387 "xbt/graphxml.l"
{
LEAVE;
ETag_graphxml_node();
case 46:
/* rule 46 can match eol */
YY_RULE_SETUP
-#line 395 "xbt/graphxml.l"
FAIL("Unexpected end-tag `%s': `</node>' expected.",xbt_graph_parse_text);
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 396 "xbt/graphxml.l"
FAIL("Unexpected character `%c': `</node>' expected.",xbt_graph_parse_text[0]);
YY_BREAK
case YY_STATE_EOF(E_graphxml_node):
-#line 397 "xbt/graphxml.l"
FAIL("Premature EOF: `</node>' expected.");
YY_BREAK
case 48:
/* rule 48 can match eol */
YY_RULE_SETUP
-#line 408 "xbt/graphxml.l"
{
A_graphxml_edge_label = NULL;
A_graphxml_edge_name = NULL;
case 49:
/* rule 49 can match eol */
YY_RULE_SETUP
-#line 419 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_edge_label);
YY_BREAK
case 50:
/* rule 50 can match eol */
YY_RULE_SETUP
-#line 420 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_edge_label);
YY_BREAK
case 51:
/* rule 51 can match eol */
YY_RULE_SETUP
-#line 422 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_edge_name);
YY_BREAK
case 52:
/* rule 52 can match eol */
YY_RULE_SETUP
-#line 423 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_edge_name);
YY_BREAK
case 53:
/* rule 53 can match eol */
YY_RULE_SETUP
-#line 425 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_edge_source);
YY_BREAK
case 54:
/* rule 54 can match eol */
YY_RULE_SETUP
-#line 426 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_edge_source);
YY_BREAK
case 55:
/* rule 55 can match eol */
YY_RULE_SETUP
-#line 428 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_edge_target);
YY_BREAK
case 56:
/* rule 56 can match eol */
YY_RULE_SETUP
-#line 429 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_edge_target);
YY_BREAK
case 57:
/* rule 57 can match eol */
YY_RULE_SETUP
-#line 431 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_edge_length);
YY_BREAK
case 58:
/* rule 58 can match eol */
YY_RULE_SETUP
-#line 432 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_edge_length);
YY_BREAK
case 59:
/* rule 59 can match eol */
YY_RULE_SETUP
-#line 434 "xbt/graphxml.l"
ENTER(VALUE1); BUFFERSET(A_graphxml_edge_data);
YY_BREAK
case 60:
/* rule 60 can match eol */
YY_RULE_SETUP
-#line 435 "xbt/graphxml.l"
ENTER(VALUE2); BUFFERSET(A_graphxml_edge_data);
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 437 "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.");
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 442 "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.");
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 451 "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 452 "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 453 "xbt/graphxml.l"
FAIL("EOF in attribute list of `edge' element.");
YY_BREAK
-
case 65:
/* rule 65 can match eol */
YY_RULE_SETUP
-#line 457 "xbt/graphxml.l"
{
LEAVE;
ETag_graphxml_edge();
case 66:
/* rule 66 can match eol */
YY_RULE_SETUP
-#line 465 "xbt/graphxml.l"
FAIL("Unexpected end-tag `%s': `</edge>' expected.",xbt_graph_parse_text);
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 466 "xbt/graphxml.l"
FAIL("Unexpected character `%c': `</edge>' expected.",xbt_graph_parse_text[0]);
YY_BREAK
case YY_STATE_EOF(E_graphxml_edge):
-#line 467 "xbt/graphxml.l"
FAIL("Premature EOF: `</edge>' expected.");
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 473 "xbt/graphxml.l"
{SET(PROLOG); yyless(0); CLEANUP; return -1;}
YY_BREAK
case YY_STATE_EOF(EPILOG):
-#line 474 "xbt/graphxml.l"
SUCCEED;
YY_BREAK
/* Non-defined standard entities... */
case 69:
YY_RULE_SETUP
-#line 481 "xbt/graphxml.l"
BUFFERPUTC('&');
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 482 "xbt/graphxml.l"
BUFFERPUTC('<');
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 483 "xbt/graphxml.l"
BUFFERPUTC('>');
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 484 "xbt/graphxml.l"
BUFFERPUTC('\'');
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 485 "xbt/graphxml.l"
BUFFERPUTC('"');
YY_BREAK
/* Character entities. */
case 74:
YY_RULE_SETUP
-#line 488 "xbt/graphxml.l"
BUFFERPUTC((unsigned char)atoi(xbt_graph_parse_text+2));
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 489 "xbt/graphxml.l"
BUFFERPUTC((unsigned char)strtol(xbt_graph_parse_text+3,NULL,16));
YY_BREAK
-
case 76:
/* rule 76 can match eol */
-#line 494 "xbt/graphxml.l"
case 77:
/* rule 77 can match eol */
-#line 495 "xbt/graphxml.l"
case 78:
/* rule 78 can match eol */
-#line 496 "xbt/graphxml.l"
case 79:
/* rule 79 can match eol */
YY_RULE_SETUP
-#line 496 "xbt/graphxml.l"
BUFFERPUTC('\n');
YY_BREAK
-
case 80:
YY_RULE_SETUP
-#line 500 "xbt/graphxml.l"
ENTER(CDATA);
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 501 "xbt/graphxml.l"
FAIL("Unexpected `]""]>' in character data.");
YY_BREAK
-
case 82:
YY_RULE_SETUP
-#line 505 "xbt/graphxml.l"
BUFFERDONE; LEAVE;
YY_BREAK
case YY_STATE_EOF(VALUE1):
-#line 506 "xbt/graphxml.l"
FAIL("EOF in literal (\"'\" expected).");
YY_BREAK
-
case 83:
YY_RULE_SETUP
-#line 510 "xbt/graphxml.l"
BUFFERDONE; LEAVE;
YY_BREAK
case YY_STATE_EOF(VALUE2):
-#line 511 "xbt/graphxml.l"
FAIL("EOF in literal (`\"' expected).");
YY_BREAK
-
case 84:
/* rule 84 can match eol */
YY_RULE_SETUP
-#line 515 "xbt/graphxml.l"
BUFFERPUTC(xbt_graph_parse_text[0]);
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 516 "xbt/graphxml.l"
FAIL("Spurious `%c' in character data.",xbt_graph_parse_text[0]);
YY_BREAK
-
case 86:
YY_RULE_SETUP
-#line 520 "xbt/graphxml.l"
LEAVE;
YY_BREAK
/* "]""]" BUFFERPUTC(xbt_graph_parse_text[0]); BUFFERPUTC(xbt_graph_parse_text[1]); */
case 87:
YY_RULE_SETUP
-#line 522 "xbt/graphxml.l"
BUFFERPUTC(xbt_graph_parse_text[0]);
YY_BREAK
case YY_STATE_EOF(CDATA):
-#line 523 "xbt/graphxml.l"
FAIL("EOF in CDATA section.");
YY_BREAK
case 88:
/* rule 88 can match eol */
YY_RULE_SETUP
-#line 530 "xbt/graphxml.l"
FAIL("Syntax error on character `%c'.", xbt_graph_parse_text[0]);
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 533 "xbt/graphxml.l"
ECHO;
YY_BREAK
-#line 2165 "xbt/graphxml.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(ROOT_graphxml_graph):
case YY_STATE_EOF(S_graphxml_graph_2):
}
#ifndef __cplusplus
+#ifndef _WIN32
extern int isatty (int );
+#endif
#endif /* __cplusplus */
/* Initializes or reinitializes a buffer.
#undef YY_DECL_IS_OURS
#undef YY_DECL
#endif
-#line 533 "xbt/graphxml.l"
-
-
/* Element context stack lookup. */
int graphxml_element_context(int i)
flexml_err_msg[0] = '\0';
}
-
static void cleanup(void)
{
if (graphxml_statenames) {
}
}
-
static int fail(const char* fmt, ...)
{
int chars_left, used;