From 35382dc53b9da8d104678dc1a4439ab49d7d71e3 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Mon, 14 Sep 2015 11:06:06 +0200 Subject: [PATCH] [MSVC] cleaner solution to the lack of unistd for flex parsers --- src/xbt/automaton/automaton_lexer.yy.c | 70 ++++++++++++++------------ src/xbt/automaton/parserPromela.lex | 10 ++-- 2 files changed, 44 insertions(+), 36 deletions(-) diff --git a/src/xbt/automaton/automaton_lexer.yy.c b/src/xbt/automaton/automaton_lexer.yy.c index 4811b46c20..da2a760074 100644 --- a/src/xbt/automaton/automaton_lexer.yy.c +++ b/src/xbt/automaton/automaton_lexer.yy.c @@ -531,9 +531,13 @@ char *xbt_automaton_parser_text; #include "simgrid_config.h" #ifndef HAVE_UNISTD_H #define YY_NO_UNISTD_H /* hello Windows */ -static int isatty(int fd) { - return 0; -} + +#ifdef _MSC_VER +# include +# include +# define _CRT_SECURE_NO_WARNINGS +# define _CRT_NONSTDC_NO_WARNINGS +#endif #endif #include @@ -541,7 +545,7 @@ static int isatty(int fd) { extern YYSTYPE yylval; -#line 545 "automaton_lexer.yy.c" +#line 549 "automaton_lexer.yy.c" #define INITIAL 0 @@ -755,10 +759,10 @@ YY_DECL } { -#line 41 "parserPromela.lex" +#line 45 "parserPromela.lex" -#line 762 "automaton_lexer.yy.c" +#line 766 "automaton_lexer.yy.c" while ( 1 ) /* loops until end-of-file is reached */ { @@ -817,118 +821,118 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 43 "parserPromela.lex" +#line 47 "parserPromela.lex" { return (NEVER); } YY_BREAK case 2: YY_RULE_SETUP -#line 44 "parserPromela.lex" +#line 48 "parserPromela.lex" { return (IF); } YY_BREAK case 3: YY_RULE_SETUP -#line 45 "parserPromela.lex" +#line 49 "parserPromela.lex" { return (FI); } YY_BREAK case 4: YY_RULE_SETUP -#line 46 "parserPromela.lex" +#line 50 "parserPromela.lex" { return (IMPLIES); } YY_BREAK case 5: YY_RULE_SETUP -#line 47 "parserPromela.lex" +#line 51 "parserPromela.lex" { return (GOTO); } YY_BREAK case 6: YY_RULE_SETUP -#line 48 "parserPromela.lex" +#line 52 "parserPromela.lex" { return (AND); } YY_BREAK case 7: YY_RULE_SETUP -#line 49 "parserPromela.lex" +#line 53 "parserPromela.lex" { return (OR); } YY_BREAK case 8: YY_RULE_SETUP -#line 50 "parserPromela.lex" +#line 54 "parserPromela.lex" { return (NOT); } YY_BREAK case 9: YY_RULE_SETUP -#line 51 "parserPromela.lex" +#line 55 "parserPromela.lex" { return (LEFT_PAR); } YY_BREAK case 10: YY_RULE_SETUP -#line 52 "parserPromela.lex" +#line 56 "parserPromela.lex" { return (RIGHT_PAR); } YY_BREAK case 11: YY_RULE_SETUP -#line 53 "parserPromela.lex" +#line 57 "parserPromela.lex" { return (CASE); } YY_BREAK case 12: YY_RULE_SETUP -#line 54 "parserPromela.lex" +#line 58 "parserPromela.lex" { return (COLON); } YY_BREAK case 13: YY_RULE_SETUP -#line 55 "parserPromela.lex" +#line 59 "parserPromela.lex" { return (SEMI_COLON); } YY_BREAK case 14: YY_RULE_SETUP -#line 56 "parserPromela.lex" +#line 60 "parserPromela.lex" { return (CASE_TRUE); } YY_BREAK case 15: YY_RULE_SETUP -#line 57 "parserPromela.lex" +#line 61 "parserPromela.lex" { return (LEFT_BRACE); } YY_BREAK case 16: YY_RULE_SETUP -#line 58 "parserPromela.lex" +#line 62 "parserPromela.lex" { return (RIGHT_BRACE); } YY_BREAK case 17: /* rule 17 can match eol */ YY_RULE_SETUP -#line 61 "parserPromela.lex" +#line 65 "parserPromela.lex" { } YY_BREAK case 18: YY_RULE_SETUP -#line 63 "parserPromela.lex" +#line 67 "parserPromela.lex" { } YY_BREAK case 19: YY_RULE_SETUP -#line 66 "parserPromela.lex" +#line 70 "parserPromela.lex" { sscanf(xbt_automaton_parser_text,"%lf",&yylval.real); return (LITT_REEL); } YY_BREAK case 20: YY_RULE_SETUP -#line 69 "parserPromela.lex" +#line 73 "parserPromela.lex" { sscanf(xbt_automaton_parser_text,"%d",&yylval.integer); return (LITT_ENT); } YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP -#line 72 "parserPromela.lex" +#line 76 "parserPromela.lex" { yylval.string=(char *)malloc(strlen(xbt_automaton_parser_text)+1); sscanf(xbt_automaton_parser_text,"%s",yylval.string); return (LITT_CHAINE); } YY_BREAK case 22: YY_RULE_SETUP -#line 76 "parserPromela.lex" +#line 80 "parserPromela.lex" { yylval.string=(char *)malloc(strlen(xbt_automaton_parser_text)+1); sscanf(xbt_automaton_parser_text,"%s",yylval.string); return (ID); } @@ -936,20 +940,20 @@ YY_RULE_SETUP case 23: /* rule 23 can match eol */ YY_RULE_SETUP -#line 80 "parserPromela.lex" +#line 84 "parserPromela.lex" { } YY_BREAK case 24: YY_RULE_SETUP -#line 82 "parserPromela.lex" +#line 86 "parserPromela.lex" { } YY_BREAK case 25: YY_RULE_SETUP -#line 84 "parserPromela.lex" +#line 88 "parserPromela.lex" ECHO; YY_BREAK -#line 953 "automaton_lexer.yy.c" +#line 957 "automaton_lexer.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1944,7 +1948,7 @@ void xbt_automaton_parser_free (void * ptr ) #define YYTABLES_NAME "yytables" -#line 83 "parserPromela.lex" +#line 87 "parserPromela.lex" diff --git a/src/xbt/automaton/parserPromela.lex b/src/xbt/automaton/parserPromela.lex index 04384ea842..b93895b4e8 100644 --- a/src/xbt/automaton/parserPromela.lex +++ b/src/xbt/automaton/parserPromela.lex @@ -11,9 +11,13 @@ #include "simgrid_config.h" #ifndef HAVE_UNISTD_H #define YY_NO_UNISTD_H /* hello Windows */ -static int isatty(int fd) { - return 0; -} + +#ifdef _MSC_VER +# include +# include +# define _CRT_SECURE_NO_WARNINGS +# define _CRT_NONSTDC_NO_WARNINGS +#endif #endif #include -- 2.20.1