]> granicus.if.org Git - flex/commitdiff
Replaced FLEX_STD macro with std::.
authorAkim Demaille <akim@lrde.epita.fr>
Fri, 4 Dec 2015 15:39:39 +0000 (16:39 +0100)
committerWill Estes <westes575@gmail.com>
Sat, 5 Dec 2015 10:46:19 +0000 (05:46 -0500)
The std:: construct exists as of C++98, so we can simply assume it is
supported.

examples/testxxLexer.l
src/FlexLexer.h
src/flex.skl
src/main.c

index e2aed333c57e88a6e169d3c3013ee310d132318c..a3c47355e718f578ca6cf7235d6ac7ed0378db7f 100644 (file)
@@ -39,13 +39,13 @@ number      {num1}|{num2}
                        }
                }
 
-{number}       FLEX_STD cout << "number " << YYText() << '\n';
+{number}       std::cout << "number " << YYText() << '\n';
 
 \n             mylineno++;
 
-{name}         FLEX_STD cout << "name " << YYText() << '\n';
+{name}         std::cout << "name " << YYText() << '\n';
 
-{string}       FLEX_STD cout << "string " << YYText() << '\n';
+{string}       std::cout << "string " << YYText() << '\n';
 
 %%
 
index b725b1f7d3a27c40bad66c895b45ad4166ff441e..a10d95bfb8a53ef94df5a2ea35570933f42c36b0 100644 (file)
@@ -49,9 +49,6 @@
 #define __FLEX_LEXER_H
 
 #include <iostream>
-#  ifndef FLEX_STD
-#    define FLEX_STD std::
-#  endif
 
 extern "C++" {
 
@@ -60,53 +57,53 @@ typedef int yy_state_type;
 
 class FlexLexer {
 public:
-       virtual ~FlexLexer()    { }
-
-       const char* YYText() const      { return yytext; }
-       int YYLeng()    const   { return yyleng; }
-
-       virtual void
-               yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
-       virtual struct yy_buffer_state*
-               yy_create_buffer( FLEX_STD istream* s, int size ) = 0;
-       virtual struct yy_buffer_state*
-               yy_create_buffer( FLEX_STD istream& s, int size ) = 0;
-       virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;
-       virtual void yyrestart( FLEX_STD istream* s ) = 0;      
-       virtual void yyrestart( FLEX_STD istream& s ) = 0;
-
-       virtual int yylex() = 0;
-
-       // Call yylex with new input/output sources.
-       int yylex( FLEX_STD istream& new_in, FLEX_STD ostream& new_out )
-       {
-               switch_streams( new_in, new_out );
-               return yylex();
-       }
-       
-       int yylex( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0)
-       {
-               switch_streams( new_in, new_out );
-               return yylex();
-       }
-
-       // Switch to new input/output streams.  A nil stream pointer
-       // indicates "keep the current one".
-       virtual void switch_streams( FLEX_STD istream* new_in,
-                                       FLEX_STD ostream* new_out ) = 0;
-       virtual void switch_streams( FLEX_STD istream& new_in,
-                                       FLEX_STD ostream& new_out ) = 0;
-
-       int lineno() const              { return yylineno; }
-
-       int debug() const               { return yy_flex_debug; }
-       void set_debug( int flag )      { yy_flex_debug = flag; }
+        virtual ~FlexLexer()   { }
+
+        const char* YYText() const     { return yytext; }
+        int YYLeng()   const   { return yyleng; }
+
+        virtual void
+                yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
+        virtual struct yy_buffer_state*
+                yy_create_buffer( std::istream* s, int size ) = 0;
+        virtual struct yy_buffer_state*
+                yy_create_buffer( std::istream& s, int size ) = 0;
+        virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;
+        virtual void yyrestart( std::istream* s ) = 0;
+        virtual void yyrestart( std::istream& s ) = 0;
+
+        virtual int yylex() = 0;
+
+        // Call yylex with new input/output sources.
+        int yylex( std::istream& new_in, std::ostream& new_out )
+        {
+                switch_streams( new_in, new_out );
+                return yylex();
+        }
+
+        int yylex( std::istream* new_in, std::ostream* new_out = 0)
+        {
+                switch_streams( new_in, new_out );
+                return yylex();
+        }
+
+        // Switch to new input/output streams.  A nil stream pointer
+        // indicates "keep the current one".
+        virtual void switch_streams( std::istream* new_in,
+                                        std::ostream* new_out ) = 0;
+        virtual void switch_streams( std::istream& new_in,
+                                        std::ostream& new_out ) = 0;
+
+        int lineno() const             { return yylineno; }
+
+        int debug() const              { return yy_flex_debug; }
+        void set_debug( int flag )     { yy_flex_debug = flag; }
 
 protected:
-       char* yytext;
-       int yyleng;
-       int yylineno;           // only maintained if you use %option yylineno
-       int yy_flex_debug;      // only has effect with -d or "%option debug"
+        char* yytext;
+        int yyleng;
+        int yylineno;          // only maintained if you use %option yylineno
+        int yy_flex_debug;     // only has effect with -d or "%option debug"
 };
 
 }
@@ -122,104 +119,103 @@ extern "C++" {
 
 class yyFlexLexer : public FlexLexer {
 public:
-       // arg_yyin and arg_yyout default to the cin and cout, but we
-       // only make that assignment when initializing in yylex().
-       yyFlexLexer( FLEX_STD istream& arg_yyin, FLEX_STD ostream& arg_yyout );
-       yyFlexLexer( FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0 );
+        // arg_yyin and arg_yyout default to the cin and cout, but we
+        // only make that assignment when initializing in yylex().
+        yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout );
+        yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 );
 private:
-       void ctor_common();
+        void ctor_common();
 
 public:
 
-       virtual ~yyFlexLexer();
+        virtual ~yyFlexLexer();
 
-       void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
-       struct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size );      
-       struct yy_buffer_state* yy_create_buffer( FLEX_STD istream& s, int size );
-       void yy_delete_buffer( struct yy_buffer_state* b );
-       void yyrestart( FLEX_STD istream* s );
-       void yyrestart( FLEX_STD istream& s );
+        void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
+        struct yy_buffer_state* yy_create_buffer( std::istream* s, int size );
+        struct yy_buffer_state* yy_create_buffer( std::istream& s, int size );
+        void yy_delete_buffer( struct yy_buffer_state* b );
+        void yyrestart( std::istream* s );
+        void yyrestart( std::istream& s );
 
-       void yypush_buffer_state( struct yy_buffer_state* new_buffer );
-       void yypop_buffer_state();
+        void yypush_buffer_state( struct yy_buffer_state* new_buffer );
+        void yypop_buffer_state();
 
-       virtual int yylex();
-       virtual void switch_streams( FLEX_STD istream& new_in, FLEX_STD ostream& new_out );
-       virtual void switch_streams( FLEX_STD istream* new_in = 0, FLEX_STD ostream* new_out = 0 );
-       virtual int yywrap();
+        virtual int yylex();
+        virtual void switch_streams( std::istream& new_in, std::ostream& new_out );
+        virtual void switch_streams( std::istream* new_in = 0, std::ostream* new_out = 0 );
+        virtual int yywrap();
 
 protected:
-       virtual int LexerInput( char* buf, int max_size );
-       virtual void LexerOutput( const char* buf, int size );
-       virtual void LexerError( const char* msg );
+        virtual int LexerInput( char* buf, int max_size );
+        virtual void LexerOutput( const char* buf, int size );
+        virtual void LexerError( const char* msg );
 
-       void yyunput( int c, char* buf_ptr );
-       int yyinput();
+        void yyunput( int c, char* buf_ptr );
+        int yyinput();
 
-       void yy_load_buffer_state();
-       void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream& s );
-       void yy_flush_buffer( struct yy_buffer_state* b );
+        void yy_load_buffer_state();
+        void yy_init_buffer( struct yy_buffer_state* b, std::istream& s );
+        void yy_flush_buffer( struct yy_buffer_state* b );
 
-       int yy_start_stack_ptr;
-       int yy_start_stack_depth;
-       int* yy_start_stack;
+        int yy_start_stack_ptr;
+        int yy_start_stack_depth;
+        int* yy_start_stack;
 
-       void yy_push_state( int new_state );
-       void yy_pop_state();
-       int yy_top_state();
+        void yy_push_state( int new_state );
+        void yy_pop_state();
+        int yy_top_state();
 
-       yy_state_type yy_get_previous_state();
-       yy_state_type yy_try_NUL_trans( yy_state_type current_state );
-       int yy_get_next_buffer();
+        yy_state_type yy_get_previous_state();
+        yy_state_type yy_try_NUL_trans( yy_state_type current_state );
+        int yy_get_next_buffer();
 
-       FLEX_STD istream yyin;  // input source for default LexerInput
-       FLEX_STD ostream yyout; // output sink for default LexerOutput
+        std::istream yyin;     // input source for default LexerInput
+        std::ostream yyout;    // output sink for default LexerOutput
 
-       // yy_hold_char holds the character lost when yytext is formed.
-       char yy_hold_char;
+        // yy_hold_char holds the character lost when yytext is formed.
+        char yy_hold_char;
 
-       // Number of characters read into yy_ch_buf.
-       int yy_n_chars;
+        // Number of characters read into yy_ch_buf.
+        int yy_n_chars;
 
-       // Points to current character in buffer.
-       char* yy_c_buf_p;
+        // Points to current character in buffer.
+        char* yy_c_buf_p;
 
-       int yy_init;            // whether we need to initialize
-       int yy_start;           // start state number
+        int yy_init;           // whether we need to initialize
+        int yy_start;          // start state number
 
-       // Flag which is used to allow yywrap()'s to do buffer switches
-       // instead of setting up a fresh yyin.  A bit of a hack ...
-       int yy_did_buffer_switch_on_eof;
+        // Flag which is used to allow yywrap()'s to do buffer switches
+        // instead of setting up a fresh yyin.  A bit of a hack ...
+        int yy_did_buffer_switch_on_eof;
 
 
-       size_t yy_buffer_stack_top; /**< index of top of stack. */
-       size_t yy_buffer_stack_max; /**< capacity of stack. */
-       struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */
-       void yyensure_buffer_stack(void);
+        size_t yy_buffer_stack_top; /**< index of top of stack. */
+        size_t yy_buffer_stack_max; /**< capacity of stack. */
+        struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */
+        void yyensure_buffer_stack(void);
 
-       // The following are not always needed, but may be depending
-       // on use of certain flex features (like REJECT or yymore()).
+        // The following are not always needed, but may be depending
+        // on use of certain flex features (like REJECT or yymore()).
 
-       yy_state_type yy_last_accepting_state;
-       char* yy_last_accepting_cpos;
+        yy_state_type yy_last_accepting_state;
+        char* yy_last_accepting_cpos;
 
-       yy_state_type* yy_state_buf;
-       yy_state_type* yy_state_ptr;
+        yy_state_type* yy_state_buf;
+        yy_state_type* yy_state_ptr;
 
-       char* yy_full_match;
-       int* yy_full_state;
-       int yy_full_lp;
+        char* yy_full_match;
+        int* yy_full_state;
+        int yy_full_lp;
 
-       int yy_lp;
-       int yy_looking_for_trail_begin;
+        int yy_lp;
+        int yy_looking_for_trail_begin;
 
-       int yy_more_flag;
-       int yy_more_len;
-       int yy_more_offset;
-       int yy_prev_more_offset;
+        int yy_more_flag;
+        int yy_more_len;
+        int yy_more_offset;
+        int yy_prev_more_offset;
 };
 
 }
 
 #endif // yyFlexLexer || ! yyFlexLexerOnce
-
index 73a0b9e7781d03ab195b877b9a68ec3aa4df9948..a5111be28d8f4af3e3d3e901cf3ef6d31e9647d5 100644 (file)
@@ -1533,7 +1533,7 @@ do_action:        /* This label is used only to access EOF actions. */
  * This constructor simply maintains backward compatibility.
  * DEPRECATED
  */
-yyFlexLexer::yyFlexLexer( FLEX_STD istream* arg_yyin, FLEX_STD ostream* arg_yyout ):
+yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ):
        yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()),
        yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf())
 {
index c4bf728e2e8695fc931ca57b0c8668d7e741c997..7d45cb3d3ac812cd263f2a5a28e6297ecdbb0133 100644 (file)
@@ -533,7 +533,6 @@ void flexend (int exit_status)
                 "EOB_ACT_END_OF_FILE",
                 "EOB_ACT_LAST_MATCH",
                 "FLEX_SCANNER",
-                "FLEX_STD",
                 "REJECT",
                 "YYFARGS0",
                 "YYFARGS1",