#include <lex.h>
Inheritance diagram for NLAISCRIPT::yyFlexLexer:

Public Member Functions | |
| int | debug () const |
| int | lineno () const |
| void | set_debug (int flag) |
| virtual void | switch_streams (istream *new_in, ostream *new_out) |
| yy_buffer_state * | yy_create_buffer (istream *s, int size) |
| void | yy_delete_buffer (struct yy_buffer_state *b) |
| void | yy_switch_to_buffer (struct yy_buffer_state *new_buffer) |
| yyFlexLexer (istream *arg_yyin=0, ostream *arg_yyout=0) | |
| int | YYLeng () |
| int | yylex (istream *new_in, ostream *new_out=0) |
| virtual int | yylex () |
| void | yyrestart (istream *s) |
| const char * | YYText () |
| virtual | ~yyFlexLexer () |
Protected Member Functions | |
| virtual void | LexerError (const char *msg) |
| virtual int | LexerInput (char *buf, int max_size) |
| virtual void | LexerOutput (const char *buf, int size) |
| virtual void | setNewLine ()=0 |
| Tell the _lastBlock about a newLine (for Debug). | |
| void | yy_flush_buffer (struct yy_buffer_state *b) |
| int | yy_get_next_buffer () |
| yy_state_type | yy_get_previous_state () |
| void | yy_init_buffer (struct yy_buffer_state *b, istream *s) |
| void | yy_load_buffer_state () |
| void | yy_pop_state () |
| void | yy_push_state (int new_state) |
| int | yy_top_state () |
| yy_state_type | yy_try_NUL_trans (yy_state_type current_state) |
| int | yyinput () |
| void | yyunput (int c, char *buf_ptr) |
| virtual int | yywrap ()=0 |
Protected Attributes | |
| double | LastyyNum |
| char | LastyyText [2][1024 *4] |
| char * | yy_c_buf_p |
| yy_buffer_state * | yy_current_buffer |
| int | yy_did_buffer_switch_on_eof |
| int | yy_flex_debug |
| int | yy_full_lp |
| char * | yy_full_match |
| int * | yy_full_state |
| char | yy_hold_char |
| int | yy_init |
| char * | yy_last_accepting_cpos |
| yy_state_type | yy_last_accepting_state |
| int | yy_looking_for_trail_begin |
| int | yy_lp |
| int | yy_more_flag |
| int | yy_more_len |
| int | yy_n_chars |
| int | yy_start |
| int * | yy_start_stack |
| int | yy_start_stack_depth |
| int | yy_start_stack_ptr |
| yy_state_type * | yy_state_buf |
| yy_state_type * | yy_state_ptr |
| int | yyColone |
| istream * | yyin |
| int | yyleng |
| int | yyLine |
| int | yylineno |
| ostream * | yyout |
| char * | yytext |
|
||||||||||||
|
Definition at line 2762 of file lexlang.cpp. References YY_BUF_SIZE, yy_c_buf_p, yy_current_buffer, yy_did_buffer_switch_on_eof, NLAISCRIPT::FlexLexer::yy_flex_debug, yy_init, yy_looking_for_trail_begin, yy_more_flag, yy_more_len, yy_start, yy_state_buf, yy_state_type, yyin, and yyout.
02763 {
02764 yyin = arg_yyin;
02765 yyout = arg_yyout;
02766 yy_c_buf_p = 0;
02767 yy_init = 1;
02768 yy_start = 0;
02769 yy_flex_debug = 0;
02770 yylineno = 1; // this will only get updated if %option yylineno
02771
02772 yy_did_buffer_switch_on_eof = 0;
02773
02774 yy_looking_for_trail_begin = 0;
02775 yy_more_flag = 0;
02776 yy_more_len = 0;
02777
02778 yy_start_stack_ptr = yy_start_stack_depth = 0;
02779 yy_start_stack = 0;
02780
02781 yy_current_buffer = 0;
02782
02783 #ifdef YY_USES_REJECT
02784 yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2];
02785 #else
02786 yy_state_buf = 0;
02787 #endif
02788 }
|
|
|
Definition at line 2790 of file lexlang.cpp. References yy_current_buffer, yy_delete_buffer(), and yy_state_buf.
02791 {
02792 delete yy_state_buf;
02793 yy_delete_buffer( yy_current_buffer );
02794 }
|
|
|
Definition at line 71 of file lex.h. References NLAISCRIPT::FlexLexer::yy_flex_debug.
00071 { return yy_flex_debug; }
|
|
|
|
|
||||||||||||
|
Definition at line 2811 of file lexlang.cpp. References yyin.
02813 {
02814 if ( yyin->eof() || yyin->fail() )
02815 return 0;
02816
02817 #ifdef YY_INTERACTIVE
02818 yyin->get( buf[0] );
02819
02820 if ( yyin->eof() )
02821 return 0;
02822
02823 if ( yyin->bad() )
02824 return -1;
02825
02826 return 1;
02827
02828 #else
02829 (void) yyin->read( buf, max_size );
02830
02831 if ( yyin->bad() )
02832 return -1;
02833 else
02834 return yyin->gcount();
02835 #endif
02836 }
|
|
||||||||||||
|
Definition at line 2838 of file lexlang.cpp.
02839 {
02840 (void) yyout->write( buf, size );
02841 }
|
|
|
Definition at line 69 of file lex.h. References NLAISCRIPT::FlexLexer::yylineno.
00069 { return yylineno; }
|
|
|
Definition at line 72 of file lex.h. References NLAISCRIPT::FlexLexer::yy_flex_debug.
00072 { yy_flex_debug = flag; }
|
|
|
Tell the _lastBlock about a newLine (for Debug).
Implemented in NLAISCRIPT::CCompilateur. |
|
||||||||||||
|
Implements NLAISCRIPT::FlexLexer. Definition at line 2796 of file lexlang.cpp. References YY_BUF_SIZE, yy_create_buffer(), yy_current_buffer, yy_delete_buffer(), yy_switch_to_buffer(), and yyout.
02797 {
02798 if ( new_in )
02799 {
02800 yy_delete_buffer( yy_current_buffer );
02801 yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) );
02802 }
02803
02804 if ( new_out )
02805 yyout = new_out;
02806 }
|
|
||||||||||||
|
Implements NLAISCRIPT::FlexLexer. Definition at line 3180 of file lexlang.cpp. References file, size, yy_buffer_state::yy_buf_size, YY_BUFFER_STATE, yy_buffer_state::yy_ch_buf, YY_FATAL_ERROR, yy_flex_alloc(), yy_init_buffer(), and yy_buffer_state::yy_is_our_buffer. Referenced by switch_streams(), and yyrestart().
03181 {
03182 YY_BUFFER_STATE b;
03183
03184 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
03185 if ( ! b )
03186 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
03187
03188 b->yy_buf_size = size;
03189
03190 /* yy_ch_buf has to be 2 characters longer than the size given because
03191 * we need to put in 2 end-of-buffer characters.
03192 */
03193 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
03194 if ( ! b->yy_ch_buf )
03195 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
03196
03197 b->yy_is_our_buffer = 1;
03198
03199 yy_init_buffer( b, file );
03200
03201 return b;
03202 }
|
|
|
Implements NLAISCRIPT::FlexLexer. Referenced by switch_streams(), and ~yyFlexLexer(). |
|
|
|
|
|
Definition at line 2851 of file lexlang.cpp. References EOB_ACT_CONTINUE_SCAN, EOB_ACT_END_OF_FILE, EOB_ACT_LAST_MATCH, yy_buffer_state::yy_buf_size, YY_BUFFER_EOF_PENDING, YY_BUFFER_STATE, yy_buffer_state::yy_buffer_status, yy_c_buf_p, yy_buffer_state::yy_ch_buf, yy_current_buffer, YY_END_OF_BUFFER_CHAR, YY_FATAL_ERROR, yy_buffer_state::yy_fill_buffer, yy_flex_realloc(), YY_INPUT, yy_buffer_state::yy_is_our_buffer, YY_MORE_ADJ, YY_READ_BUF_SIZE, yyin, yyrestart(), and yytext_ptr. Referenced by yyinput().
02852 {
02853 register char *dest = yy_current_buffer->yy_ch_buf;
02854 register char *source = yytext_ptr;
02855 register int number_to_move, i;
02856 int ret_val;
02857
02858 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
02859 YY_FATAL_ERROR(
02860 "fatal flex scanner internal error--end of buffer missed" );
02861
02862 if ( yy_current_buffer->yy_fill_buffer == 0 )
02863 { /* Don't try to fill the buffer, so this is an EOF. */
02864 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
02865 {
02866 /* We matched a singled characater, the EOB, so
02867 * treat this as a final EOF.
02868 */
02869 return EOB_ACT_END_OF_FILE;
02870 }
02871
02872 else
02873 {
02874 /* We matched some text prior to the EOB, first
02875 * process it.
02876 */
02877 return EOB_ACT_LAST_MATCH;
02878 }
02879 }
02880
02881 /* Try to read more data. */
02882
02883 /* First move last chars to start of buffer. */
02884 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
02885
02886 for ( i = 0; i < number_to_move; ++i )
02887 *(dest++) = *(source++);
02888
02889 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02890 /* don't do the read, it's not guaranteed to return an EOF,
02891 * just force an EOF
02892 */
02893 yy_n_chars = 0;
02894
02895 else
02896 {
02897 int num_to_read =
02898 yy_current_buffer->yy_buf_size - number_to_move - 1;
02899
02900 while ( num_to_read <= 0 )
02901 { /* Not enough room in the buffer - grow it. */
02902 #ifdef YY_USES_REJECT
02903 YY_FATAL_ERROR(
02904 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
02905 #else
02906
02907 /* just a shorter name for the current buffer */
02908 YY_BUFFER_STATE b = yy_current_buffer;
02909
02910 int yy_c_buf_p_offset =
02911 (int) (yy_c_buf_p - b->yy_ch_buf);
02912
02913 if ( b->yy_is_our_buffer )
02914 {
02915 int new_size = b->yy_buf_size * 2;
02916
02917 if ( new_size <= 0 )
02918 b->yy_buf_size += b->yy_buf_size / 8;
02919 else
02920 b->yy_buf_size *= 2;
02921
02922 b->yy_ch_buf = (char *)
02923 /* Include room in for 2 EOB chars. */
02924 yy_flex_realloc( (void *) b->yy_ch_buf,
02925 b->yy_buf_size + 2 );
02926 }
02927 else
02928 /* Can't grow it, we don't own it. */
02929 b->yy_ch_buf = 0;
02930
02931 if ( ! b->yy_ch_buf )
02932 YY_FATAL_ERROR(
02933 "fatal error - scanner input buffer overflow" );
02934
02935 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
02936
02937 num_to_read = yy_current_buffer->yy_buf_size -
02938 number_to_move - 1;
02939 #endif
02940 }
02941
02942 if ( num_to_read > YY_READ_BUF_SIZE )
02943 num_to_read = YY_READ_BUF_SIZE;
02944
02945 /* Read in more data. */
02946 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
02947 yy_n_chars, num_to_read );
02948 }
02949
02950 if ( yy_n_chars == 0 )
02951 {
02952 if ( number_to_move == YY_MORE_ADJ )
02953 {
02954 ret_val = EOB_ACT_END_OF_FILE;
02955 yyrestart( yyin );
02956 }
02957
02958 else
02959 {
02960 ret_val = EOB_ACT_LAST_MATCH;
02961 yy_current_buffer->yy_buffer_status =
02962 YY_BUFFER_EOF_PENDING;
02963 }
02964 }
02965
02966 else
02967 ret_val = EOB_ACT_CONTINUE_SCAN;
02968
02969 yy_n_chars += number_to_move;
02970 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
02971 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
02972
02973 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
02974
02975 return ret_val;
02976 }
|
|
|
Definition at line 2981 of file lexlang.cpp. References yy_accept, yy_c_buf_p, yy_last_accepting_cpos, yy_last_accepting_state, YY_MORE_ADJ, yy_NUL_trans, yy_nxt, YY_SC_TO_UI, yy_start, yy_state_type, and yytext_ptr.
02982 {
02983 register yy_state_type yy_current_state;
02984 register char *yy_cp;
02985
02986 yy_current_state = yy_start;
02987
02988 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
02989 {
02990 if ( *yy_cp )
02991 {
02992 yy_current_state = yy_nxt[yy_current_state][YY_SC_TO_UI(*yy_cp)];
02993 }
02994 else
02995 yy_current_state = yy_NUL_trans[yy_current_state];
02996 if ( yy_accept[yy_current_state] )
02997 {
02998 yy_last_accepting_state = yy_current_state;
02999 yy_last_accepting_cpos = yy_cp;
03000 }
03001 }
03002
03003 return yy_current_state;
03004 }
|
|
||||||||||||
|
Referenced by yy_create_buffer(), and yyrestart(). |
|
|
Definition at line 3171 of file lexlang.cpp. References yy_buffer_state::yy_buf_pos, yy_c_buf_p, yy_current_buffer, yy_hold_char, yy_buffer_state::yy_input_file, yy_buffer_state::yy_n_chars, yyin, and yytext_ptr. Referenced by yyrestart().
03172 {
03173 yy_n_chars = yy_current_buffer->yy_n_chars;
03174 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
03175 yyin = yy_current_buffer->yy_input_file;
03176 yy_hold_char = *yy_c_buf_p;
03177 }
|
|
|
|
|
|
|
|
|
Implements NLAISCRIPT::FlexLexer. Referenced by switch_streams(). |
|
|
|
|
|
Definition at line 3013 of file lexlang.cpp. References yy_accept, yy_c_buf_p, yy_last_accepting_cpos, yy_last_accepting_state, yy_NUL_trans, and yy_state_type.
03014 {
03015 register int yy_is_jam;
03016 register char *yy_cp = yy_c_buf_p;
03017
03018 yy_current_state = yy_NUL_trans[yy_current_state];
03019 yy_is_jam = (yy_current_state == 0);
03020
03021 if ( ! yy_is_jam )
03022 {
03023 if ( yy_accept[yy_current_state] )
03024 {
03025 yy_last_accepting_state = yy_current_state;
03026 yy_last_accepting_cpos = yy_cp;
03027 }
03028 }
03029
03030 return yy_is_jam ? 0 : yy_current_state;
03031 }
|
|
|
Definition at line 3070 of file lexlang.cpp. References EOB_ACT_CONTINUE_SCAN, EOB_ACT_END_OF_FILE, EOB_ACT_LAST_MATCH, input(), yy_c_buf_p, yy_buffer_state::yy_ch_buf, yy_current_buffer, yy_did_buffer_switch_on_eof, YY_END_OF_BUFFER_CHAR, YY_FATAL_ERROR, yy_get_next_buffer(), yy_hold_char, YY_MORE_ADJ, YY_NEW_FILE, yytext_ptr, and yywrap().
03071 {
03072 int c;
03073
03074 *yy_c_buf_p = yy_hold_char;
03075
03076 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
03077 {
03078 /* yy_c_buf_p now points to the character we want to return.
03079 * If this occurs *before* the EOB characters, then it's a
03080 * valid NUL; if not, then we've hit the end of the buffer.
03081 */
03082 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
03083 /* This was really a NUL. */
03084 *yy_c_buf_p = '\0';
03085
03086 else
03087 { /* need more input */
03088 yytext_ptr = yy_c_buf_p;
03089 ++yy_c_buf_p;
03090
03091 switch ( yy_get_next_buffer() )
03092 {
03093 case EOB_ACT_END_OF_FILE:
03094 {
03095 if ( yywrap() )
03096 {
03097 yy_c_buf_p =
03098 yytext_ptr + YY_MORE_ADJ;
03099 return EOF;
03100 }
03101
03102 if ( ! yy_did_buffer_switch_on_eof )
03103 YY_NEW_FILE;
03104 #ifdef __cplusplus
03105 return yyinput();
03106 #else
03107 return input();
03108 #endif
03109 }
03110
03111 case EOB_ACT_CONTINUE_SCAN:
03112 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
03113 break;
03114
03115 case EOB_ACT_LAST_MATCH:
03116 #ifdef __cplusplus
03117 YY_FATAL_ERROR(
03118 "unexpected last match in yyinput()" );
03119 #else
03120 YY_FATAL_ERROR(
03121 "unexpected last match in input()" );
03122 #endif
03123 }
03124 }
03125 }
03126
03127 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
03128 *yy_c_buf_p = '\0'; /* preserve yytext */
03129 yy_hold_char = *++yy_c_buf_p;
03130
03131
03132 return c;
03133 }
|
|
|
Definition at line 46 of file lex.h. References NLAISCRIPT::FlexLexer::yyleng.
00046 { return yyleng; }
|
|
||||||||||||
|
Definition at line 58 of file lex.h. References NLAISCRIPT::FlexLexer::switch_streams(), and NLAISCRIPT::FlexLexer::yylex().
00059 {
00060 switch_streams( new_in, new_out );
00061 return yylex();
00062 }
|
|
|
Implements NLAISCRIPT::FlexLexer. Definition at line 1985 of file lexlang.cpp. References ACCOL_D, ACCOL_G, AND_BIN, AND_LOG, CHAINE, CROCHER_D, CROCHER_G, DIFF, DIV, ECHO, EG_LOG, EG_MATH, EOB_ACT_CONTINUE_SCAN, EOB_ACT_END_OF_FILE, EOB_ACT_LAST_MATCH, FOIS, NLAISCRIPT::GetIdentType(), NLAISCRIPT::GetNombre(), INF, INF_EG, INITIAL, INTERROGATION, LEPOINT, MOINS, NOMBRE, NON_BIN, OR_BIN, OR_LOG, PAR_D, PAR_G, PLUS, POINT_DEUX, POINT_VI, POWER, SCOP, SUP, SUP_EG, unput, VIRGULE, yy_accept, YY_BREAK, YY_BUF_SIZE, YY_BUFFER_NEW, YY_BUFFER_NORMAL, yy_create_buffer, YY_DECL, YY_DO_BEFORE_ACTION, YY_END_OF_BUFFER, YY_FATAL_ERROR, yy_get_next_buffer(), yy_get_previous_state(), yy_load_buffer_state, YY_MORE_ADJ, YY_NEW_FILE, yy_nxt, YY_RULE_SETUP, YY_SC_TO_UI, YY_START, YY_STATE_EOF, yy_state_type, yy_try_NUL_trans(), yyin, yyout, yyterminate, yytext, yytext_ptr, and yywrap. Referenced by NLAISCRIPT::CCompilateur::Compile().
01986 {
01987 register yy_state_type yy_current_state;
01988 register char *yy_cp, *yy_bp;
01989 register int yy_act;
01990
01991 #line 25 "lexicon.lex"
01992
01993 #line 1994 "lexyy.cc"
01994
01995 if ( yy_init )
01996 {
01997 yy_init = 0;
01998
01999 #ifdef YY_USER_INIT
02000 YY_USER_INIT;
02001 #endif
02002
02003 if ( ! yy_start )
02004 yy_start = 1; /* first start state */
02005
02006 if ( ! yyin )
02007 yyin = &cin;
02008
02009 if ( ! yyout )
02010 yyout = &cout;
02011
02012 if ( ! yy_current_buffer )
02013 yy_current_buffer =
02014 yy_create_buffer( yyin, YY_BUF_SIZE );
02015
02016 yy_load_buffer_state();
02017 }
02018
02019 while ( 1 ) /* loops until end-of-file is reached */
02020 {
02021 yy_cp = yy_c_buf_p;
02022
02023 /* Support of yytext. */
02024 *yy_cp = yy_hold_char;
02025
02026 /* yy_bp points to the position in yy_ch_buf of the start of
02027 * the current run.
02028 */
02029 yy_bp = yy_cp;
02030
02031 yy_current_state = yy_start;
02032 yy_match:
02033 while ( (yy_current_state = yy_nxt[yy_current_state][YY_SC_TO_UI(*yy_cp)]) > 0 )
02034 {
02035 if ( yy_accept[yy_current_state] )
02036 {
02037 yy_last_accepting_state = yy_current_state;
02038 yy_last_accepting_cpos = yy_cp;
02039 }
02040
02041 ++yy_cp;
02042 }
02043
02044 yy_current_state = -yy_current_state;
02045
02046 yy_find_action:
02047 yy_act = yy_accept[yy_current_state];
02048
02049 YY_DO_BEFORE_ACTION;
02050
02051
02052 do_action: /* This label is used only to access EOF actions. */
02053
02054
02055 switch ( yy_act )
02056 { /* beginning of action switch */
02057 case 0: /* must back up */
02058 /* undo the effects of YY_DO_BEFORE_ACTION */
02059 *yy_cp = yy_hold_char;
02060 yy_cp = yy_last_accepting_cpos + 1;
02061 yy_current_state = yy_last_accepting_state;
02062 goto yy_find_action;
02063
02064 case 1:
02065 YY_RULE_SETUP
02066 #line 26 "lexicon.lex"
02067 {
02068 /*On ignore les espasement*/
02069 yyColone += 5;
02070 }
02071 YY_BREAK
02072 case 2:
02073 YY_RULE_SETUP
02074 #line 30 "lexicon.lex"
02075 {
02076 /*On ignore les espasement*/
02077 yyColone ++;
02078 }
02079 YY_BREAK
02080 case 3:
02081 YY_RULE_SETUP
02082 #line 35 "lexicon.lex"
02083 {
02084 /*On ignore les espasement*/
02085 yyLine ++;
02086 yyColone = 0;
02087 setNewLine();
02088 }
02089 YY_BREAK
02090 case 4:
02091 YY_RULE_SETUP
02092 #line 42 "lexicon.lex"
02093 {
02094 strcpy(LastyyText[0], LastyyText[1]);
02095 strcpy(LastyyText[1], yytext);
02096 LastyyNum = NLAISCRIPT::GetNombre(LastyyText[1],2);
02097 yyColone += strlen(yytext);
02098 return NOMBRE;
02099 }
02100 YY_BREAK
02101 case 5:
02102 YY_RULE_SETUP
02103 #line 50 "lexicon.lex"
02104 {
02105 strcpy(LastyyText[0], LastyyText[1]);
02106 strcpy(LastyyText[1], yytext);
02107 LastyyNum = NLAISCRIPT::GetNombre(LastyyText[1],10);
02108 yyColone += strlen(yytext);
02109 return NOMBRE;
02110 }
02111 YY_BREAK
02112 case 6:
02113 YY_RULE_SETUP
02114 #line 57 "lexicon.lex"
02115 {
02116 strcpy(LastyyText[0], LastyyText[1]);
02117 strcpy(LastyyText[1], yytext);
02118 LastyyNum = NLAISCRIPT::GetNombre(LastyyText[1],16);
02119 yyColone += strlen(yytext);
02120 return NOMBRE;
02121 }
02122 YY_BREAK
02123 case 7:
02124 YY_RULE_SETUP
02125 #line 65 "lexicon.lex"
02126 {
02127 strcpy(LastyyText[0], LastyyText[1]);
02128 strcpy(LastyyText[1], yytext);
02129 LastyyNum = NLAISCRIPT::GetNombre(LastyyText[1],0);
02130 yyColone += strlen(yytext);
02131 return NOMBRE;
02132 }
02133 YY_BREAK
02134 case 8:
02135 YY_RULE_SETUP
02136 #line 73 "lexicon.lex"
02137 {
02138 strcpy(LastyyText[0], LastyyText[1]);
02139 strcpy(LastyyText[1], yytext);
02140 LastyyNum = NLAISCRIPT::GetNombre(LastyyText[1],0);
02141 yyColone += strlen(yytext);
02142 return NOMBRE;
02143 }
02144 YY_BREAK
02145 case 9:
02146 YY_RULE_SETUP
02147 #line 81 "lexicon.lex"
02148 {
02149 strcpy(LastyyText[0], LastyyText[1]);
02150 strcpy(LastyyText[1], yytext);
02151 LastyyNum = NLAISCRIPT::GetNombre(LastyyText[1],0);
02152 yyColone += strlen(yytext);
02153 return NOMBRE;
02154 }
02155 YY_BREAK
02156 case 10:
02157 YY_RULE_SETUP
02158 #line 89 "lexicon.lex"
02159 {
02160 strcpy(LastyyText[0], LastyyText[1]);
02161 strcpy(LastyyText[1], yytext);
02162 yyColone += strlen(yytext);
02163 int i = NLAISCRIPT::GetIdentType(yytext);
02164 return i;
02165
02166 }
02167 YY_BREAK
02168 case 11:
02169 YY_RULE_SETUP
02170 #line 98 "lexicon.lex"
02171 {
02172 yyColone ++;
02173 return LEPOINT;
02174 }
02175 YY_BREAK
02176 case 12:
02177 YY_RULE_SETUP
02178 #line 103 "lexicon.lex"
02179 {
02180 yyColone ++;
02181 return PAR_G;
02182 }
02183 YY_BREAK
02184 case 13:
02185 YY_RULE_SETUP
02186 #line 108 "lexicon.lex"
02187 {
02188 yyColone ++;
02189 return PAR_D;
02190 }
02191 YY_BREAK
02192 case 14:
02193 YY_RULE_SETUP
02194 #line 113 "lexicon.lex"
02195 {
02196 yyColone ++;
02197 int C = yyinput();
02198 if(C == '=')
02199 {
02200 yyColone ++;
02201 return EG_LOG;
02202 }
02203 else
02204 {
02205 unput(C);
02206 yytext[1] = 0;
02207 }
02208 return EG_MATH;
02209 }
02210 YY_BREAK
02211 case 15:
02212 YY_RULE_SETUP
02213 #line 129 "lexicon.lex"
02214 {
02215 yyColone ++;
02216 int C = yyinput();
02217 if(C == '=')
02218 {
02219 yyColone ++;
02220 return SUP_EG;
02221 }
02222 else
02223 {
02224 unput(C);
02225 yytext[1] = 0;
02226 }
02227 return SUP;
02228 }
02229 YY_BREAK
02230 case 16:
02231 YY_RULE_SETUP
02232 #line 145 "lexicon.lex"
02233 {
02234 yyColone ++;
02235 int C = yyinput();
02236 if(C == '=')
02237 {
02238 yyColone ++;
02239 return INF_EG;
02240 }
02241 else
02242 {
02243 unput(C);
02244 yytext[1] = 0;
02245 }
02246 return INF;
02247 }
02248 YY_BREAK
02249 case 17:
02250 YY_RULE_SETUP
02251 #line 162 "lexicon.lex"
02252 {
02253 yyColone ++;
02254 int C = yyinput();
02255 if(C == '=')
02256 {
02257 yyColone ++;
02258 return DIFF;
02259 }
02260 else
02261 {
02262 unput(C);
02263 yytext[1] = 0;
02264 }
02265 return NON_BIN;
02266 }
02267 YY_BREAK
02268 case 18:
02269 YY_RULE_SETUP
02270 #line 178 "lexicon.lex"
02271 {
02272 yyColone ++;
02273 int C = yyinput();
02274 if(C == '|')
02275 {
02276 yyColone ++;
02277 return OR_LOG;
02278 }
02279 else
02280 {
02281 unput(C);
02282 yytext[1] = 0;
02283 }
02284 return OR_BIN;
02285 }
02286 YY_BREAK
02287 case 19:
02288 YY_RULE_SETUP
02289 #line 194 "lexicon.lex"
02290 {
02291 yyColone ++;
02292 int C = yyinput();
02293 if(C == '&')
02294 {
02295 yyColone ++;
02296 return AND_LOG;
02297 }
02298 else
02299 {
02300 unput(C);
02301 yytext[1] = 0;
02302 }
02303 return AND_BIN;
02304 }
02305 YY_BREAK
02306 case 20:
02307 YY_RULE_SETUP
02308 #line 211 "lexicon.lex"
02309 {
02310 yyColone ++;
02311 return PLUS;
02312 }
02313 YY_BREAK
02314 case 21:
02315 YY_RULE_SETUP
02316 #line 216 "lexicon.lex"
02317 {
02318 yyColone ++;
02319 return MOINS;
02320 }
02321 YY_BREAK
02322 case 22:
02323 YY_RULE_SETUP
02324 #line 221 "lexicon.lex"
02325 {
02326 yyColone ++;
02327 return FOIS;
02328 }
02329 YY_BREAK
02330 case 23:
02331 YY_RULE_SETUP
02332 #line 226 "lexicon.lex"
02333 {
02334 yyColone ++;
02335
02336 int C = yyinput();
02337 if(C == '*')
02338 {
02339 yyColone ++;
02340 int NbrCom = 1;
02341 int BeginDebut = 0;
02342 int BeginFin = 0;
02343 #ifdef _DEBUG
02344 char DebugStr[2];
02345 DebugStr[1] = 0;
02346 #endif
02347 while(1)
02348 {
02349 C = yyinput();
02350 #ifdef _DEBUG
02351 DebugStr[0] = C;
02352 #endif
02353 yyColone ++;
02354 if(C == '\n')
02355 {
02356 yyLine ++;
02357 yyColone = 0;
02358 setNewLine();
02359 continue;
02360 }
02361 if(C == '*' )
02362 {
02363 yyColone ++;
02364 C = yyinput();
02365 #ifdef _DEBUG
02366 DebugStr[0] = C;
02367 #endif
02368 if(C == '/')
02369 {
02370 yyColone ++;
02371 yytext[1] = 0;
02372 NbrCom --;
02373 if(!NbrCom) break;
02374 }
02375 else
02376 {
02377 unput(C);
02378 }
02379 }
02380 else
02381 if(C == '/')
02382 {
02383 yyColone ++;
02384 C = yyinput();
02385 #ifdef _DEBUG
02386 DebugStr[0] = C;
02387 #endif
02388 if(C == '*')
02389 {
02390 yyColone ++;
02391 NbrCom ++;
02392 }
02393 else
02394 {
02395 unput(C);
02396
02397 }
02398 }
02399
02400 }
02401 }
02402 else
02403 if(C == '/')
02404 {
02405 yyColone ++;
02406 #ifdef _DEBUG
02407 char DebugStr[2];
02408 DebugStr[1] = 0;
02409 #endif
02410 while(1)
02411 {
02412 C = yyinput();
02413 #ifdef _DEBUG
02414 DebugStr[0] = C;
02415 #endif
02416 yyColone ++;
02417 if(C == '\n')
02418 {
02419 yyLine ++;
02420 yyColone = 0;
02421 setNewLine();
02422 yytext[1] = 0;
02423 break;
02424 }
02425 }
02426 }
02427 else
02428 {
02429 unput(C);
02430 yytext[1] = 0;
02431 return DIV;
02432 }
02433
02434 }
02435 YY_BREAK
02436 case 24:
02437 YY_RULE_SETUP
02438 #line 329 "lexicon.lex"
02439 {
02440 yyColone ++;
02441 return VIRGULE;
02442 }
02443 YY_BREAK
02444 case 25:
02445 YY_RULE_SETUP
02446 #line 334 "lexicon.lex"
02447 {
02448 yyColone ++;
02449 return POWER;
02450 }
02451 YY_BREAK
02452 case 26:
02453 YY_RULE_SETUP
02454 #line 339 "lexicon.lex"
02455 {
02456 yyColone ++;
02457 return POINT_VI;
02458 }
02459 YY_BREAK
02460 case 27:
02461 YY_RULE_SETUP
02462 #line 344 "lexicon.lex"
02463 {
02464 yyColone ++;
02465 int C = yyinput();
02466 if(C == ':')
02467 {
02468 yyColone ++;
02469 return SCOP;
02470 }
02471 else
02472 {
02473 unput(C);
02474 yytext[1] = 0;
02475 }
02476 return POINT_DEUX;
02477 }
02478 YY_BREAK
02479 case 28:
02480 YY_RULE_SETUP
02481 #line 360 "lexicon.lex"
02482 {
02483 yyColone ++;
02484 return ACCOL_G;
02485 }
02486 YY_BREAK
02487 case 29:
02488 YY_RULE_SETUP
02489 #line 364 "lexicon.lex"
02490 {
02491 yyColone ++;
02492 return ACCOL_D;
02493 }
02494 YY_BREAK
02495 case 30:
02496 YY_RULE_SETUP
02497 #line 368 "lexicon.lex"
02498 {
02499 yyColone ++;
02500 return INTERROGATION;
02501 }
02502 YY_BREAK
02503 case 31:
02504 YY_RULE_SETUP
02505 #line 372 "lexicon.lex"
02506 {
02507 yyColone ++;
02508 char c = 0;
02509 int i = 0;
02510 strcpy(LastyyText[0], LastyyText[1]);
02511 while(c != 34)
02512 {
02513 c = yyinput();
02514 yyColone ++;
02515 switch(c)
02516 {
02517
02518 case 34:
02519 c = yyinput();
02520 if(c == 34)
02521 {
02522 LastyyText[1][i] = c;
02523 i++;
02524 c = 0;
02525 }
02526 else
02527 {
02528 LastyyText[1][i] = 0;
02529 unput(c);
02530 c = 34;
02531 }
02532 break;
02533
02534 case '\n':
02535 case '\r':
02536 yyLine ++;
02537 yyColone = 0;
02538 break;
02539
02540 case '\t':
02541 yyColone +=5;
02542 break;
02543 case EOF:
02544 return 0;
02545
02546 default:
02547 LastyyText[1][i] = c;
02548 i ++;
02549 break;
02550 }
02551
02552 }
02553 return CHAINE;
02554 }
02555 YY_BREAK
02556 case 32:
02557 YY_RULE_SETUP
02558 #line 422 "lexicon.lex"
02559 {
02560 yyColone ++;
02561 char c = 0;
02562 int i = 0;
02563 strcpy(LastyyText[0], LastyyText[1]);
02564 while(c != 39)
02565 {
02566 c = yyinput();
02567 yyColone ++;
02568 switch(c)
02569 {
02570
02571 case 39:
02572 c = yyinput();
02573 if(c == 39)
02574 {
02575 LastyyText[1][i] = c;
02576 i++;
02577 c = 0;
02578 }
02579 else
02580 {
02581 LastyyText[1][i] = 0;
02582 unput(c);
02583 c = 39;
02584 }
02585 break;
02586
02587 case '\n':
02588 case '\r':
02589 yyLine ++;
02590 yyColone = 0;
02591 break;
02592
02593 case '\t':
02594 yyColone +=5;
02595 break;
02596 case EOF:
02597 return 0;
02598
02599 default:
02600 LastyyText[1][i] = c;
02601 i ++;
02602 break;
02603 }
02604
02605 }
02606 return CHAINE;
02607 }
02608 YY_BREAK
02609 case 33:
02610 YY_RULE_SETUP
02611 #line 471 "lexicon.lex"
02612 {
02613 yyColone ++;
02614 return CROCHER_D;
02615 }
02616 YY_BREAK
02617 case 34:
02618 YY_RULE_SETUP
02619 #line 475 "lexicon.lex"
02620 {
02621 yyColone ++;
02622 return CROCHER_G;
02623 }
02624 YY_BREAK
02625 case 35:
02626 YY_RULE_SETUP
02627 #line 480 "lexicon.lex"
02628 ECHO;
02629 YY_BREAK
02630 #line 2631 "lexyy.cc"
02631 case YY_STATE_EOF(INITIAL):
02632 yyterminate();
02633
02634 case YY_END_OF_BUFFER:
02635 {
02636 /* Amount of text matched not including the EOB char. */
02637 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
02638
02639 /* Undo the effects of YY_DO_BEFORE_ACTION. */
02640 *yy_cp = yy_hold_char;
02641
02642 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
02643 {
02644 /* We're scanning a new file or input source. It's
02645 * possible that this happened because the user
02646 * just pointed yyin at a new source and called
02647 * yylex(). If so, then we have to assure
02648 * consistency between yy_current_buffer and our
02649 * globals. Here is the right place to do so, because
02650 * this is the first action (other than possibly a
02651 * back-up) that will match for the new input source.
02652 */
02653 yy_n_chars = yy_current_buffer->yy_n_chars;
02654 yy_current_buffer->yy_input_file = yyin;
02655 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
02656 }
02657
02658 /* Note that here we test for yy_c_buf_p "<=" to the position
02659 * of the first EOB in the buffer, since yy_c_buf_p will
02660 * already have been incremented past the NUL character
02661 * (since all states make transitions on EOB to the
02662 * end-of-buffer state). Contrast this with the test
02663 * in input().
02664 */
02665 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
02666 { /* This was really a NUL. */
02667 yy_state_type yy_next_state;
02668
02669 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
02670
02671 yy_current_state = yy_get_previous_state();
02672
02673 /* Okay, we're now positioned to make the NUL
02674 * transition. We couldn't have
02675 * yy_get_previous_state() go ahead and do it
02676 * for us because it doesn't know how to deal
02677 * with the possibility of jamming (and we don't
02678 * want to build jamming into it because then it
02679 * will run more slowly).
02680 */
02681
02682 yy_next_state = yy_try_NUL_trans( yy_current_state );
02683
02684 yy_bp = yytext_ptr + YY_MORE_ADJ;
02685
02686 if ( yy_next_state )
02687 {
02688 /* Consume the NUL. */
02689 yy_cp = ++yy_c_buf_p;
02690 yy_current_state = yy_next_state;
02691 goto yy_match;
02692 }
02693
02694 else
02695 {
02696 yy_cp = yy_c_buf_p;
02697 goto yy_find_action;
02698 }
02699 }
02700
02701 else switch ( yy_get_next_buffer() )
02702 {
02703 case EOB_ACT_END_OF_FILE:
02704 {
02705 yy_did_buffer_switch_on_eof = 0;
02706
02707 if ( yywrap() )
02708 {
02709 /* Note: because we've taken care in
02710 * yy_get_next_buffer() to have set up
02711 * yytext, we can now set up
02712 * yy_c_buf_p so that if some total
02713 * hoser (like flex itself) wants to
02714 * call the scanner after we return the
02715 * YY_NULL, it'll still work - another
02716 * YY_NULL will get returned.
02717 */
02718 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
02719
02720 yy_act = YY_STATE_EOF(YY_START);
02721 goto do_action;
02722 }
02723
02724 else
02725 {
02726 if ( ! yy_did_buffer_switch_on_eof )
02727 YY_NEW_FILE;
02728 }
02729 break;
02730 }
02731
02732 case EOB_ACT_CONTINUE_SCAN:
02733 yy_c_buf_p =
02734 yytext_ptr + yy_amount_of_matched_text;
02735
02736 yy_current_state = yy_get_previous_state();
02737
02738 yy_cp = yy_c_buf_p;
02739 yy_bp = yytext_ptr + YY_MORE_ADJ;
02740 goto yy_match;
02741
02742 case EOB_ACT_LAST_MATCH:
02743 yy_c_buf_p =
02744 &yy_current_buffer->yy_ch_buf[yy_n_chars];
02745
02746 yy_current_state = yy_get_previous_state();
02747
02748 yy_cp = yy_c_buf_p;
02749 yy_bp = yytext_ptr + YY_MORE_ADJ;
02750 goto yy_find_action;
02751 }
02752 break;
02753 }
02754
02755 default:
02756 YY_FATAL_ERROR(
02757 "fatal flex scanner internal error--no action found" );
02758 } /* end of action switch */
02759 } /* end of scanning one token */
02760 } /* end of yylex */
|
|
|
Implements NLAISCRIPT::FlexLexer. Definition at line 3136 of file lexlang.cpp. References YY_BUF_SIZE, yy_create_buffer(), yy_current_buffer, yy_init_buffer(), yy_load_buffer_state(), and yyin. Referenced by yy_get_next_buffer().
03137 {
03138 if ( ! yy_current_buffer )
03139 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
03140
03141 yy_init_buffer( yy_current_buffer, input_file );
03142 yy_load_buffer_state();
03143 }
|
|
|
Definition at line 45 of file lex.h. References NLAISCRIPT::FlexLexer::yytext.
00045 { return yytext; }
|
|
||||||||||||
|
|
|
|
Implemented in NLAISCRIPT::CCompilateur. Referenced by yyinput(). |
|
|
|
|
|
|
|
|
Definition at line 138 of file lex.h. Referenced by yy_get_next_buffer(), yy_get_previous_state(), yy_load_buffer_state(), yy_try_NUL_trans(), yyFlexLexer(), and yyinput(). |
|
|
Definition at line 129 of file lex.h. Referenced by switch_streams(), yy_get_next_buffer(), yy_load_buffer_state(), yyFlexLexer(), yyinput(), yyrestart(), and ~yyFlexLexer(). |
|
|
Definition at line 145 of file lex.h. Referenced by yyFlexLexer(), and yyinput(). |
|
|
Definition at line 78 of file lex.h. Referenced by NLAISCRIPT::FlexLexer::debug(), NLAISCRIPT::FlexLexer::set_debug(), and yyFlexLexer(). |
|
|
|
|
|
|
|
|
|
|
|
Definition at line 132 of file lex.h. Referenced by yy_load_buffer_state(), and yyinput(). |
|
|
Definition at line 140 of file lex.h. Referenced by yyFlexLexer(). |
|
|
Definition at line 151 of file lex.h. Referenced by yy_get_previous_state(), and yy_try_NUL_trans(). |
|
|
Definition at line 150 of file lex.h. Referenced by yy_get_previous_state(), and yy_try_NUL_trans(). |
|
|
Definition at line 161 of file lex.h. Referenced by yyFlexLexer(). |
|
|
|
|
|
Definition at line 163 of file lex.h. Referenced by yyFlexLexer(). |
|
|
Definition at line 164 of file lex.h. Referenced by yyFlexLexer(). |
|
|
|
|
|
Definition at line 141 of file lex.h. Referenced by yy_get_previous_state(), and yyFlexLexer(). |
|
|
|
|
|
|
|
|
|
|
|
Definition at line 153 of file lex.h. Referenced by yyFlexLexer(), and ~yyFlexLexer(). |
|
|
|
|
|
|
|
|
Definition at line 126 of file lex.h. Referenced by yy_get_next_buffer(), yy_load_buffer_state(), yyFlexLexer(), yyrestart(), and NLAISCRIPT::CCompilateur::yywrap(). |
|
|
Definition at line 76 of file lex.h. Referenced by NLAISCRIPT::FlexLexer::YYLeng(). |
|
|
|
|
|
Definition at line 77 of file lex.h. Referenced by NLAISCRIPT::FlexLexer::lineno(). |
|
|
Definition at line 127 of file lex.h. Referenced by LexerOutput(), switch_streams(), and yyFlexLexer(). |
|
|
Definition at line 75 of file lex.h. Referenced by NLAISCRIPT::FlexLexer::YYText(). |
1.3.6