Hoi,

this brings our lex up to the c++ standards our gcc wants (namespaces).
Obtained from FreeBSD.
Is needed to compile kdesdk.


Andy

http://ftp.fortunaty.net/DragonFly/inofficial/patches/lex.patch

Index: usr.bin/lex/FlexLexer.h
===================================================================
RCS file: /home/dcvs/src/usr.bin/lex/FlexLexer.h,v
retrieving revision 1.2
diff -u -p -r1.2 FlexLexer.h
--- usr.bin/lex/FlexLexer.h     17 Jun 2003 04:29:27 -0000      1.2
+++ usr.bin/lex/FlexLexer.h     17 Aug 2005 20:21:15 -0000
@@ -1,5 +1,5 @@
 // $Header: /home/daffy/u0/vern/flex/RCS/FlexLexer.h,v 1.19 96/05/25 20:43:02 
vern Exp $
-// $FreeBSD: src/usr.bin/lex/FlexLexer.h,v 1.3 1999/10/27 07:56:43 obrien Exp $
+// $FreeBSD: src/usr.bin/lex/FlexLexer.h,v 1.4 2004/03/11 10:43:35 josef Exp $
 // $DragonFly: src/usr.bin/lex/FlexLexer.h,v 1.2 2003/06/17 04:29:27 dillon 
Exp $
 
 // FlexLexer.h -- define interfaces for lexical analyzer classes generated
@@ -45,7 +45,7 @@
 #ifndef __FLEX_LEXER_H
 // Never included before - need to define base class.
 #define __FLEX_LEXER_H
-#include <iostream.h>
+#include <iostream>
 
 extern "C++" {
 
@@ -62,14 +62,14 @@ public:
        virtual void
                yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
        virtual struct yy_buffer_state*
-               yy_create_buffer( istream* s, int size ) = 0;
+               yy_create_buffer( std::istream* s, int size ) = 0;
        virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;
-       virtual void yyrestart( istream* s ) = 0;
+       virtual void yyrestart( std::istream* s ) = 0;
 
        virtual int yylex() = 0;
 
        // Call yylex with new input/output sources.
-       int yylex( istream* new_in, ostream* new_out = 0 )
+       int yylex( std::istream* new_in, std::ostream* new_out = 0 )
                {
                switch_streams( new_in, new_out );
                return yylex();
@@ -77,8 +77,8 @@ public:
 
        // Switch to new input/output streams.  A nil stream pointer
        // indicates "keep the current one".
-       virtual void switch_streams( istream* new_in = 0,
-                                       ostream* new_out = 0 ) = 0;
+       virtual void switch_streams( std::istream* new_in = 0,
+                                       std::ostream* new_out = 0 ) = 0;
 
        int lineno() const              { return yylineno; }
 
@@ -105,17 +105,17 @@ 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( istream* arg_yyin = 0, ostream* arg_yyout = 0 );
+       yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 );
 
        virtual ~yyFlexLexer();
 
        void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
-       struct yy_buffer_state* yy_create_buffer( 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( istream* s );
+       void yyrestart( std::istream* s );
 
        virtual int yylex();
-       virtual void switch_streams( istream* new_in, ostream* new_out );
+       virtual void switch_streams( std::istream* new_in, std::ostream* 
new_out );
 
 protected:
        virtual int LexerInput( char* buf, int max_size );
@@ -126,7 +126,7 @@ protected:
        int yyinput();
 
        void yy_load_buffer_state();
-       void yy_init_buffer( struct yy_buffer_state* b, istream* s );
+       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;
@@ -141,8 +141,8 @@ protected:
        yy_state_type yy_try_NUL_trans( yy_state_type current_state );
        int yy_get_next_buffer();
 
-       istream* yyin;  // input source for default LexerInput
-       ostream* yyout; // output sink for default LexerOutput
+       std::istream* yyin;     // input source for default LexerInput
+       std::ostream* yyout;    // output sink for default LexerOutput
 
        struct yy_buffer_state* yy_current_buffer;
 
Index: usr.bin/lex/flex.skl
===================================================================
RCS file: /home/dcvs/src/usr.bin/lex/flex.skl,v
retrieving revision 1.4
diff -u -p -r1.4 flex.skl
--- usr.bin/lex/flex.skl        2 Mar 2005 07:09:38 -0000       1.4
+++ usr.bin/lex/flex.skl        17 Aug 2005 20:28:22 -0000
@@ -27,7 +27,8 @@
 
 #include <stdlib.h>
 %+
-class istream;
+#include <iosfwd>
+using namespace std;
 %*
 #include <unistd.h>
 
@@ -1170,6 +1171,12 @@ void yyFlexLexer::yy_delete_buffer( YY_B
 
 
 %-
+#ifndef YY_ALWAYS_INTERACTIVE
+#ifndef YY_NEVER_INTERACTIVE
+extern int isatty YY_PROTO(( int ));
+#endif
+#endif
+
 #ifdef YY_USE_PROTOS
 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
 #else
Index: usr.bin/lex/yylex.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/lex/yylex.c,v
retrieving revision 1.3
diff -u -p -r1.3 yylex.c
--- usr.bin/lex/yylex.c 4 Oct 2003 20:36:47 -0000       1.3
+++ usr.bin/lex/yylex.c 17 Aug 2005 20:29:01 -0000
@@ -37,7 +37,7 @@
 
 /* yylex - scan for a regular expression token */
 
-int yylex(void)
+int yylex()
        {
        int toktype;
        static int beglin = false;

Reply via email to