diff options
author | rizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-04-26 23:18:03 +0000 |
---|---|---|
committer | rizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-04-26 23:18:03 +0000 |
commit | 4d578ce209c406abad55bd641b7e94df162ef134 (patch) | |
tree | 2cccc81caea758ddc3584a7e2ff94299e2b40dca /pbx/ael/ael.flex | |
parent | cbb21c8e36c46b77c5c697a346eebc0a4a98c395 (diff) |
remove common blocks of code with a macro (waiting for a better
solution).
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@22679 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/ael/ael.flex')
-rw-r--r-- | pbx/ael/ael.flex | 89 |
1 files changed, 46 insertions, 43 deletions
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; |