From f52022fc6f4cf0e9d93ae396798a0a6c15ec2f0c Mon Sep 17 00:00:00 2001 From: Luigi Rizzo Date: Wed, 26 Apr 2006 23:18:03 +0000 Subject: remove common blocks of code with a macro (waiting for a better solution). git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@22679 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- pbx/ael/ael.flex | 89 +++++++++++---------- pbx/ael/ael_lex.c | 229 +++++++++++++++++++++++++++--------------------------- 2 files changed, 162 insertions(+), 156 deletions(-) (limited to 'pbx/ael') diff --git a/pbx/ael/ael.flex b/pbx/ael/ael.flex index 9466c6c45..6748135fd 100644 --- a/pbx/ael/ael.flex +++ b/pbx/ael/ael.flex @@ -56,6 +56,12 @@ struct stackelement { static struct stackelement include_stack[MAX_INCLUDE_DEPTH]; static int include_stack_index = 0; +#define STORE_POS do { \ + yylloc->first_line = yylloc->last_line = my_lineno; \ + yylloc->last_column=my_col+yyleng-1; \ + yylloc->first_column=my_col; \ + my_col+=yyleng; \ + } while (0) %} %x paren semic argg @@ -69,55 +75,52 @@ static int include_stack_index = 0; %option noyywrap %% -\{ {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return LC;} -\} {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return RC;} -\( {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return LP;} -\) {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return RP;} -\; {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return SEMI;} -\= {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return EQ;} -\, {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return COMMA;} -\: {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return COLON;} -\& {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return AMPER;} -\| {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return BAR;} -\=\> {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return EXTENMARK;} -\@ {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return AT;} -\/\/[^\n]* {/*comment*/} -context {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CONTEXT;} -abstract {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_ABSTRACT;} -macro {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_MACRO;}; -globals {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_GLOBALS;} -ignorepat {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_IGNOREPAT;} -switch {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_SWITCH;} -if {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_IF;} -ifTime {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_IFTIME;} -random {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_RANDOM;} -regexten {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_REGEXTEN;} -hint {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_HINT;} -else {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_ELSE;} -goto {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_GOTO;} -jump {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_JUMP;} -return {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_RETURN;} -break {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_BREAK;} -continue {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CONTINUE;} -for {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_FOR;} -while {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_WHILE;} -case {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CASE;} -default {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_DEFAULT;} -pattern {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_PATTERN;} -catch {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CATCH;} -switches {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_SWITCHES;} -eswitches {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_ESWITCHES;} -includes {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_INCLUDES;} +\{ { STORE_POS; return LC;} +\} { STORE_POS; return RC;} +\( { STORE_POS; return LP;} +\) { STORE_POS; return RP;} +\; { STORE_POS; return SEMI;} +\= { STORE_POS; return EQ;} +\, { STORE_POS; return COMMA;} +\: { STORE_POS; return COLON;} +\& { STORE_POS; return AMPER;} +\| { STORE_POS; return BAR;} +\=\> { STORE_POS; return EXTENMARK;} +\@ { STORE_POS; return AT;} +\/\/[^\n]* {/*comment*/} +context { STORE_POS; return KW_CONTEXT;} +abstract { STORE_POS; return KW_ABSTRACT;} +macro { STORE_POS; return KW_MACRO;}; +globals { STORE_POS; return KW_GLOBALS;} +ignorepat { STORE_POS; return KW_IGNOREPAT;} +switch { STORE_POS; return KW_SWITCH;} +if { STORE_POS; return KW_IF;} +ifTime { STORE_POS; return KW_IFTIME;} +random { STORE_POS; return KW_RANDOM;} +regexten { STORE_POS; return KW_REGEXTEN;} +hint { STORE_POS; return KW_HINT;} +else { STORE_POS; return KW_ELSE;} +goto { STORE_POS; return KW_GOTO;} +jump { STORE_POS; return KW_JUMP;} +return { STORE_POS; return KW_RETURN;} +break { STORE_POS; return KW_BREAK;} +continue { STORE_POS; return KW_CONTINUE;} +for { STORE_POS; return KW_FOR;} +while { STORE_POS; return KW_WHILE;} +case { STORE_POS; return KW_CASE;} +default { STORE_POS; return KW_DEFAULT;} +pattern { STORE_POS; return KW_PATTERN;} +catch { STORE_POS; return KW_CATCH;} +switches { STORE_POS; return KW_SWITCHES;} +eswitches { STORE_POS; return KW_ESWITCHES;} +includes { STORE_POS; return KW_INCLUDES;} \n {my_lineno++;my_col=0;} [ ]+ {/* nothing */ my_col+=yyleng;} [ ]+ {/* nothing */ int wid = 8-(my_col%8); my_col+=wid;} [-a-zA-Z0-9'"_/.\<\>\*\+!$#\[\]][-a-zA-Z0-9'"_/.!\*\+\<\>\{\}$#\[\]]* { - yylloc->first_line = yylloc->last_line = my_lineno; - yylloc->last_column=my_col+yyleng-1; - yylloc->first_column=my_col; /* set up the ptr */ - my_col+=yyleng; + STORE_POS; yylval->str = strdup(yytext); /* printf("\nGot WORD %s[%d][%d:%d]\n", yylval->str, my_lineno ,yylloc->first_column,yylloc->last_column ); */ prev_word = yylval->str; diff --git a/pbx/ael/ael_lex.c b/pbx/ael/ael_lex.c index 3e6ced136..aa53ebf96 100644 --- a/pbx/ael/ael_lex.c +++ b/pbx/ael/ael_lex.c @@ -691,9 +691,15 @@ struct stackelement { static struct stackelement include_stack[MAX_INCLUDE_DEPTH]; static int include_stack_index = 0; +#define STORE_POS do { \ + yylloc->first_line = yylloc->last_line = my_lineno; \ + yylloc->last_column=my_col+yyleng-1; \ + yylloc->first_column=my_col; \ + my_col+=yyleng; \ + } while (0) /* %option yylineno I've tried hard, but haven't been able to use this */ -#line 697 "ael_lex.c" +#line 703 "ael_lex.c" #define INITIAL 0 #define paren 1 @@ -933,9 +939,9 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 71 "ael.flex" +#line 77 "ael.flex" -#line 939 "ael_lex.c" +#line 945 "ael_lex.c" yylval = yylval_param; @@ -1026,223 +1032,220 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 72 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return LC;} +#line 78 "ael.flex" +{ STORE_POS; return LC;} YY_BREAK case 2: YY_RULE_SETUP -#line 73 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return RC;} +#line 79 "ael.flex" +{ STORE_POS; return RC;} YY_BREAK case 3: YY_RULE_SETUP -#line 74 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return LP;} +#line 80 "ael.flex" +{ STORE_POS; return LP;} YY_BREAK case 4: YY_RULE_SETUP -#line 75 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return RP;} +#line 81 "ael.flex" +{ STORE_POS; return RP;} YY_BREAK case 5: YY_RULE_SETUP -#line 76 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return SEMI;} +#line 82 "ael.flex" +{ STORE_POS; return SEMI;} YY_BREAK case 6: YY_RULE_SETUP -#line 77 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return EQ;} +#line 83 "ael.flex" +{ STORE_POS; return EQ;} YY_BREAK case 7: YY_RULE_SETUP -#line 78 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return COMMA;} +#line 84 "ael.flex" +{ STORE_POS; return COMMA;} YY_BREAK case 8: YY_RULE_SETUP -#line 79 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return COLON;} +#line 85 "ael.flex" +{ STORE_POS; return COLON;} YY_BREAK case 9: YY_RULE_SETUP -#line 80 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return AMPER;} +#line 86 "ael.flex" +{ STORE_POS; return AMPER;} YY_BREAK case 10: YY_RULE_SETUP -#line 81 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return BAR;} +#line 87 "ael.flex" +{ STORE_POS; return BAR;} YY_BREAK case 11: YY_RULE_SETUP -#line 82 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return EXTENMARK;} +#line 88 "ael.flex" +{ STORE_POS; return EXTENMARK;} YY_BREAK case 12: YY_RULE_SETUP -#line 83 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return AT;} +#line 89 "ael.flex" +{ STORE_POS; return AT;} YY_BREAK case 13: YY_RULE_SETUP -#line 84 "ael.flex" +#line 90 "ael.flex" {/*comment*/} YY_BREAK case 14: YY_RULE_SETUP -#line 85 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CONTEXT;} +#line 91 "ael.flex" +{ STORE_POS; return KW_CONTEXT;} YY_BREAK case 15: YY_RULE_SETUP -#line 86 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_ABSTRACT;} +#line 92 "ael.flex" +{ STORE_POS; return KW_ABSTRACT;} YY_BREAK case 16: YY_RULE_SETUP -#line 87 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_MACRO;}; +#line 93 "ael.flex" +{ STORE_POS; return KW_MACRO;}; YY_BREAK case 17: YY_RULE_SETUP -#line 88 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_GLOBALS;} +#line 94 "ael.flex" +{ STORE_POS; return KW_GLOBALS;} YY_BREAK case 18: YY_RULE_SETUP -#line 89 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_IGNOREPAT;} +#line 95 "ael.flex" +{ STORE_POS; return KW_IGNOREPAT;} YY_BREAK case 19: YY_RULE_SETUP -#line 90 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_SWITCH;} +#line 96 "ael.flex" +{ STORE_POS; return KW_SWITCH;} YY_BREAK case 20: YY_RULE_SETUP -#line 91 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_IF;} +#line 97 "ael.flex" +{ STORE_POS; return KW_IF;} YY_BREAK case 21: YY_RULE_SETUP -#line 92 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_IFTIME;} +#line 98 "ael.flex" +{ STORE_POS; return KW_IFTIME;} YY_BREAK case 22: YY_RULE_SETUP -#line 93 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_RANDOM;} +#line 99 "ael.flex" +{ STORE_POS; return KW_RANDOM;} YY_BREAK case 23: YY_RULE_SETUP -#line 94 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_REGEXTEN;} +#line 100 "ael.flex" +{ STORE_POS; return KW_REGEXTEN;} YY_BREAK case 24: YY_RULE_SETUP -#line 95 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_HINT;} +#line 101 "ael.flex" +{ STORE_POS; return KW_HINT;} YY_BREAK case 25: YY_RULE_SETUP -#line 96 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_ELSE;} +#line 102 "ael.flex" +{ STORE_POS; return KW_ELSE;} YY_BREAK case 26: YY_RULE_SETUP -#line 97 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_GOTO;} +#line 103 "ael.flex" +{ STORE_POS; return KW_GOTO;} YY_BREAK case 27: YY_RULE_SETUP -#line 98 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_JUMP;} +#line 104 "ael.flex" +{ STORE_POS; return KW_JUMP;} YY_BREAK case 28: YY_RULE_SETUP -#line 99 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_RETURN;} +#line 105 "ael.flex" +{ STORE_POS; return KW_RETURN;} YY_BREAK case 29: YY_RULE_SETUP -#line 100 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_BREAK;} +#line 106 "ael.flex" +{ STORE_POS; return KW_BREAK;} YY_BREAK case 30: YY_RULE_SETUP -#line 101 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CONTINUE;} +#line 107 "ael.flex" +{ STORE_POS; return KW_CONTINUE;} YY_BREAK case 31: YY_RULE_SETUP -#line 102 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_FOR;} +#line 108 "ael.flex" +{ STORE_POS; return KW_FOR;} YY_BREAK case 32: YY_RULE_SETUP -#line 103 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_WHILE;} +#line 109 "ael.flex" +{ STORE_POS; return KW_WHILE;} YY_BREAK case 33: YY_RULE_SETUP -#line 104 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CASE;} +#line 110 "ael.flex" +{ STORE_POS; return KW_CASE;} YY_BREAK case 34: YY_RULE_SETUP -#line 105 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_DEFAULT;} +#line 111 "ael.flex" +{ STORE_POS; return KW_DEFAULT;} YY_BREAK case 35: YY_RULE_SETUP -#line 106 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_PATTERN;} +#line 112 "ael.flex" +{ STORE_POS; return KW_PATTERN;} YY_BREAK case 36: YY_RULE_SETUP -#line 107 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CATCH;} +#line 113 "ael.flex" +{ STORE_POS; return KW_CATCH;} YY_BREAK case 37: YY_RULE_SETUP -#line 108 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_SWITCHES;} +#line 114 "ael.flex" +{ STORE_POS; return KW_SWITCHES;} YY_BREAK case 38: YY_RULE_SETUP -#line 109 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_ESWITCHES;} +#line 115 "ael.flex" +{ STORE_POS; return KW_ESWITCHES;} YY_BREAK case 39: YY_RULE_SETUP -#line 110 "ael.flex" -{yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_INCLUDES;} +#line 116 "ael.flex" +{ STORE_POS; return KW_INCLUDES;} YY_BREAK case 40: /* rule 40 can match eol */ YY_RULE_SETUP -#line 112 "ael.flex" +#line 118 "ael.flex" {my_lineno++;my_col=0;} YY_BREAK case 41: YY_RULE_SETUP -#line 113 "ael.flex" +#line 119 "ael.flex" {/* nothing */ my_col+=yyleng;} YY_BREAK case 42: YY_RULE_SETUP -#line 114 "ael.flex" +#line 120 "ael.flex" {/* nothing */ int wid = 8-(my_col%8); my_col+=wid;} YY_BREAK case 43: YY_RULE_SETUP -#line 116 "ael.flex" +#line 122 "ael.flex" { - yylloc->first_line = yylloc->last_line = my_lineno; - yylloc->last_column=my_col+yyleng-1; - yylloc->first_column=my_col; /* set up the ptr */ - my_col+=yyleng; + STORE_POS; yylval->str = strdup(yytext); /* printf("\nGot WORD %s[%d][%d:%d]\n", yylval->str, my_lineno ,yylloc->first_column,yylloc->last_column ); */ prev_word = yylval->str; @@ -1252,7 +1255,7 @@ YY_RULE_SETUP case 44: /* rule 44 can match eol */ YY_RULE_SETUP -#line 127 "ael.flex" +#line 130 "ael.flex" { yylloc->first_line = my_lineno; yylloc->first_column=my_col; @@ -1292,7 +1295,7 @@ YY_RULE_SETUP case 45: /* rule 45 can match eol */ YY_RULE_SETUP -#line 163 "ael.flex" +#line 166 "ael.flex" { yylloc->first_line = my_lineno; yylloc->first_column=my_col; parencount++; @@ -1303,13 +1306,13 @@ YY_RULE_SETUP case 46: /* rule 46 can match eol */ YY_RULE_SETUP -#line 170 "ael.flex" +#line 173 "ael.flex" {yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('['); } YY_BREAK case 47: /* rule 47 can match eol */ YY_RULE_SETUP -#line 172 "ael.flex" +#line 175 "ael.flex" { yylloc->first_line = my_lineno;yylloc->first_column=my_col; if ( pbcpop(']') ) { @@ -1331,13 +1334,13 @@ YY_RULE_SETUP case 48: /* rule 48 can match eol */ YY_RULE_SETUP -#line 190 "ael.flex" +#line 193 "ael.flex" {yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('{'); } YY_BREAK case 49: /* rule 49 can match eol */ YY_RULE_SETUP -#line 192 "ael.flex" +#line 195 "ael.flex" { yylloc->first_line = my_lineno; yylloc->first_column=my_col; @@ -1360,7 +1363,7 @@ YY_RULE_SETUP case 50: /* rule 50 can match eol */ YY_RULE_SETUP -#line 211 "ael.flex" +#line 214 "ael.flex" { /* printf("ARGG:%s\n",yytext); */ int linecount = 0; @@ -1420,7 +1423,7 @@ YY_RULE_SETUP case 51: /* rule 51 can match eol */ YY_RULE_SETUP -#line 267 "ael.flex" +#line 270 "ael.flex" { /* printf("ARGG:%s\n",yytext); */ /* printf("GOT AN LP!!!\n"); */ @@ -1434,7 +1437,7 @@ YY_RULE_SETUP case 52: /* rule 52 can match eol */ YY_RULE_SETUP -#line 277 "ael.flex" +#line 280 "ael.flex" { /* printf("ARGG:%s\n",yytext); */ if( parencount != 0) { @@ -1484,7 +1487,7 @@ YY_RULE_SETUP case 53: /* rule 53 can match eol */ YY_RULE_SETUP -#line 323 "ael.flex" +#line 326 "ael.flex" { /*printf("ARGG:%s\n",yytext);*/ yylloc->first_line = my_lineno; @@ -1495,7 +1498,7 @@ YY_RULE_SETUP case 54: /* rule 54 can match eol */ YY_RULE_SETUP -#line 330 "ael.flex" +#line 333 "ael.flex" { /*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; if ( pbcpop('}') ) { @@ -1517,13 +1520,13 @@ YY_RULE_SETUP case 55: /* rule 55 can match eol */ YY_RULE_SETUP -#line 348 "ael.flex" +#line 351 "ael.flex" {/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('['); } YY_BREAK case 56: /* rule 56 can match eol */ YY_RULE_SETUP -#line 350 "ael.flex" +#line 353 "ael.flex" {/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; if ( pbcpop(']') ) { /* error */ @@ -1544,13 +1547,13 @@ YY_RULE_SETUP case 57: /* rule 57 can match eol */ YY_RULE_SETUP -#line 367 "ael.flex" +#line 370 "ael.flex" {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('['); } YY_BREAK case 58: /* rule 58 can match eol */ YY_RULE_SETUP -#line 369 "ael.flex" +#line 372 "ael.flex" {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; if ( pbcpop(']') ) { /* error */ @@ -1571,13 +1574,13 @@ YY_RULE_SETUP case 59: /* rule 59 can match eol */ YY_RULE_SETUP -#line 386 "ael.flex" +#line 389 "ael.flex" {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('{');} YY_BREAK case 60: /* rule 60 can match eol */ YY_RULE_SETUP -#line 388 "ael.flex" +#line 391 "ael.flex" {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; if ( pbcpop('}') ) { /* error */ @@ -1598,13 +1601,13 @@ YY_RULE_SETUP case 61: /* rule 61 can match eol */ YY_RULE_SETUP -#line 405 "ael.flex" +#line 408 "ael.flex" {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('(');} YY_BREAK case 62: /* rule 62 can match eol */ YY_RULE_SETUP -#line 407 "ael.flex" +#line 410 "ael.flex" {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; if ( pbcpop(')') ) { /* error */ @@ -1625,7 +1628,7 @@ YY_RULE_SETUP case 63: /* rule 63 can match eol */ YY_RULE_SETUP -#line 424 "ael.flex" +#line 427 "ael.flex" { int linecount = 0; int colcount = my_col; @@ -1656,7 +1659,7 @@ YY_RULE_SETUP case 64: /* rule 64 can match eol */ YY_RULE_SETUP -#line 451 "ael.flex" +#line 454 "ael.flex" { FILE *in1; char fnamebuf[1024],*p1,*p2; @@ -1723,7 +1726,7 @@ case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(paren): case YY_STATE_EOF(semic): case YY_STATE_EOF(argg): -#line 513 "ael.flex" +#line 516 "ael.flex" { if ( --include_stack_index < 0 ) { yyterminate(); @@ -1739,10 +1742,10 @@ case YY_STATE_EOF(argg): YY_BREAK case 65: YY_RULE_SETUP -#line 526 "ael.flex" +#line 529 "ael.flex" ECHO; YY_BREAK -#line 1746 "ael_lex.c" +#line 1749 "ael_lex.c" case YY_END_OF_BUFFER: { @@ -2872,7 +2875,7 @@ void ael_yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 526 "ael.flex" +#line 529 "ael.flex" -- cgit v1.2.3