]> granicus.if.org Git - re2c/commitdiff
Fixed things so they compile.
authornuffer <nuffer@642ea486-5414-0410-9d7f-a0204ed87703>
Sat, 31 Jan 2004 17:02:47 +0000 (17:02 +0000)
committernuffer <nuffer@642ea486-5414-0410-9d7f-a0204ed87703>
Sat, 31 Jan 2004 17:02:47 +0000 (17:02 +0000)
Makefile
README
bootstrap/scanner.cc
parser.cc
re2c.1
scanner.cc
scanner.h
scanner.re
y.tab.h

index b1be0d522b090d12267f8a7803badcb8fdfbfe72..0a537cc33e63d71235d06fffac532c7e1bfa8e6c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@ RE2C_VERSION = 0.9.2
 %.cc:  %.re
        -@if test -x re2c; then \
                echo "re2c -s $< >$@"; \
-               re2c -s $< >$@; \
+               ./re2c -s $< >$@; \
        else \
                echo "cp -f bootstrap/$@ $@"; \
                cp -f bootstrap/$@ $@; \
@@ -40,7 +40,7 @@ parser.cc:    parser.y
        mv -f y.tab.c parser.cc
 
 re2c:  README re2c.1 $(OBJS)
-       $(CC) -o $@ $(OBJS) $(LDFLAGS) -lstdc++
+       $(CC) -o $@ $(OBJS) $(LDFLAGS)
 
 re2c.ps:
        gunzip -c doc/loplas.ps.gz > re2c.ps
diff --git a/README b/README
index a16c4712207333441bb389b80809af9e8e59e32f..862a9614e5ae3ae2d34e8abcc82b3092a67ab3b2 100644 (file)
--- a/README
+++ b/README
@@ -1,23 +1,33 @@
-re2c
-----
+re2c Version 0.9.2
+------------------
 
-Version 0.9.1
 Originally written by Peter Bumbulis (peter@csg.uwaterloo.ca)
 Currently maintained by Brian Young (bayoung@acm.org)
 
 The re2c distribution can be found at:
 
-    http://www.tildeslash.org/re2c/index.html
-
-The source distribution is available from:
-
-    http://www.tildeslash.org/re2c/re2c-0.9.1.tar.gz
+    http://sourceforge.net/projects/re2c/
 
 This distribution is a cleaned up version of the 0.5 release
 maintained by me (Brian Young).  Several bugs were fixed as well
 as code cleanup for warning free compilation.  It has been developed
-and tested with egcs 1.0.2 and gcc 2.7.2.3 on Linux x86.  Peter
-Bumbulis' original release can be found at:
+and tested with egcs 1.0.2 and gcc 2.7.2.3, 2.96 and 3.3.1 on Linux 
+x86. You can compile your own version with other gcc version if you 
+have yacc or any working bison version (tested up to bison 1.875).
+
+You can install this software by simple typing the following commands:
+    make
+    make install
+
+Or you can create a rpm package and install it by the following commands:
+    make makerpm
+    ./makerpm <release>
+    rpm -Uhv <packagedir>/re2c-0.9.2-<release>.rpm
+
+Here <realease> should be a number like 1. And <packagedir> must equal 
+the directory where the makerpm step has written the generated rpm to.
+
+Peter Bumbulis' original release can be found at:
 
     ftp://csg.uwaterloo.ca/pub/peter/re2c.0.5.tar.gz
 
@@ -27,7 +37,7 @@ maintained more actively.  re2c is on the order of 2-3 times faster
 than a flex based scanner, and its input model is much more
 flexible.
 
-Patches and requests for features will be entertained.  Areas of
+Patches and requests for features will be entertained. Areas of
 particular interest to me are porting (a Solaris and an NT
 version will be forthcoming) and wide character support.  Note
 that the code is already quite portable and should be buildable
index 19b42597744b28ccd6868b4f110d90dfc96f5b1e..53fcb08d2052746841c96cfe7ba3130ef8003bab 100644 (file)
@@ -12,7 +12,7 @@ extern YYSTYPE yylval;
 
 #define        BSIZE   8192
 
-#define        YYCTYPE         uchar
+#define        YYCTYPE         char
 #define        YYCURSOR        cursor
 #define        YYLIMIT         lim
 #define        YYMARKER        ptr
@@ -27,7 +27,7 @@ Scanner::Scanner(int i) : in(i),
     ;
 }
 
-uchar *Scanner::fill(uchar *cursor){
+char *Scanner::fill(char *cursor){
     if(!eof){
        uint cnt = tok - bot;
        if(cnt){
@@ -39,7 +39,7 @@ uchar *Scanner::fill(uchar *cursor){
            lim -= cnt;
        }
        if((top - lim) < BSIZE){
-           uchar *buf = new uchar[(lim - bot) + BSIZE];
+           char *buf = new char[(lim - bot) + BSIZE];
            memcpy(buf, tok, lim - tok);
            tok = buf;
            ptr = &buf[ptr - bot];
@@ -62,7 +62,7 @@ uchar *Scanner::fill(uchar *cursor){
 
 
 int Scanner::echo(ostream &out){
-    uchar *cursor = cur;
+    char *cursor = cur;
     tok = cursor;
 echo:
 {
@@ -117,7 +117,7 @@ yy14:
 
 
 int Scanner::scan(){
-    uchar *cursor = cur;
+    char *cursor = cur;
     uint depth;
 
 scan:
index c2cce9db2cc9021749b070f0a701797e57ae567d..7c20d4173f092639c819e1a57a521c1ca8cafbae 100644 (file)
--- a/parser.cc
+++ b/parser.cc
@@ -12,6 +12,8 @@
 #line 1 "parser.y"
 
 
+/* $Id$ */
+
 #include <time.h>
 #include <iostream.h>
 #include <string.h>
@@ -31,8 +33,15 @@ static uint accept;
 static RegExp *spec;
 static Scanner *in;
 
+/* Bison version 1.875 emits a definition that is not working
+ * with several g++ version. Hence we disable it here.
+ */
+#if defined(__GNUC__)
+#define __attribute__(x)
+#endif
+
 
-#line 26 "parser.y"
+#line 35 "parser.y"
 #ifndef YYSTYPE
 typedef union {
     Symbol     *symbol;
@@ -111,9 +120,9 @@ static const short yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
 static const short yyrline[] =
 {
-       0,    44,    47,    49,    52,    58,    62,    64,    68,    70,
-      74,    76,    83,    85,    89,    91,   107,   109,   113,   117,
-     119,   121
+       0,    53,    56,    58,    61,    67,    71,    73,    77,    79,
+      83,    85,    92,    94,    98,   100,   116,   118,   122,   126,
+     128,   130
 };
 #endif
 
@@ -901,65 +910,65 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 45 "parser.y"
+#line 54 "parser.y"
 { accept = 0;
-                 spec = NULL; ;
-    break;}
+                 spec = NULL; }
+    break;
 case 2:
-#line 48 "parser.y"
-{ spec = spec? mkAlt(spec, yyvsp[0].regexp) : yyvsp[0].regexp; ;
-    break;}
+#line 57 "parser.y"
+{ spec = spec? mkAlt(spec, yyvsp[0].regexp) : yyvsp[0].regexp; }
+    break;
 case 4:
-#line 53 "parser.y"
+#line 62 "parser.y"
 { if(yyvsp[-3].symbol->re)
                      in->fatal("sym already defined");
-                 yyvsp[-3].symbol->re = yyvsp[-1].regexp; ;
-    break;}
+                 yyvsp[-3].symbol->re = yyvsp[-1].regexp; }
+    break;
 case 5:
-#line 59 "parser.y"
-{ yyval.regexp = new RuleOp(yyvsp[-2].regexp, yyvsp[-1].regexp, yyvsp[0].token, accept++); ;
-    break;}
+#line 68 "parser.y"
+{ yyval.regexp = new RuleOp(yyvsp[-2].regexp, yyvsp[-1].regexp, yyvsp[0].token, accept++); }
+    break;
 case 6:
-#line 63 "parser.y"
-{ yyval.regexp = new NullOp; ;
-    break;}
+#line 72 "parser.y"
+{ yyval.regexp = new NullOp; }
+    break;
 case 7:
-#line 65 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; ;
-    break;}
+#line 74 "parser.y"
+{ yyval.regexp = yyvsp[0].regexp; }
+    break;
 case 8:
-#line 69 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; ;
-    break;}
+#line 78 "parser.y"
+{ yyval.regexp = yyvsp[0].regexp; }
+    break;
 case 9:
-#line 71 "parser.y"
-{ yyval.regexp =  mkAlt(yyvsp[-2].regexp, yyvsp[0].regexp); ;
-    break;}
+#line 80 "parser.y"
+{ yyval.regexp =  mkAlt(yyvsp[-2].regexp, yyvsp[0].regexp); }
+    break;
 case 10:
-#line 75 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; ;
-    break;}
+#line 84 "parser.y"
+{ yyval.regexp = yyvsp[0].regexp; }
+    break;
 case 11:
-#line 77 "parser.y"
+#line 86 "parser.y"
 { yyval.regexp =  mkDiff(yyvsp[-2].regexp, yyvsp[0].regexp);
                  if(!yyval.regexp)
                       in->fatal("can only difference char sets");
-               ;
-    break;}
+               }
+    break;
 case 12:
-#line 84 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; ;
-    break;}
+#line 93 "parser.y"
+{ yyval.regexp = yyvsp[0].regexp; }
+    break;
 case 13:
-#line 86 "parser.y"
-{ yyval.regexp = new CatOp(yyvsp[-1].regexp, yyvsp[0].regexp); ;
-    break;}
+#line 95 "parser.y"
+{ yyval.regexp = new CatOp(yyvsp[-1].regexp, yyvsp[0].regexp); }
+    break;
 case 14:
-#line 90 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; ;
-    break;}
+#line 99 "parser.y"
+{ yyval.regexp = yyvsp[0].regexp; }
+    break;
 case 15:
-#line 92 "parser.y"
+#line 101 "parser.y"
 {
                    switch(yyvsp[0].op){
                    case '*':
@@ -972,34 +981,34 @@ case 15:
                        yyval.regexp = mkAlt(yyvsp[-1].regexp, new NullOp());
                        break;
                    }
-               ;
-    break;}
+               }
+    break;
 case 16:
-#line 108 "parser.y"
-{ yyval.op = yyvsp[0].op; ;
-    break;}
+#line 117 "parser.y"
+{ yyval.op = yyvsp[0].op; }
+    break;
 case 17:
-#line 110 "parser.y"
-{ yyval.op = (yyvsp[-1].op == yyvsp[0].op) ? yyvsp[-1].op : '*'; ;
-    break;}
+#line 119 "parser.y"
+{ yyval.op = (yyvsp[-1].op == yyvsp[0].op) ? yyvsp[-1].op : '*'; }
+    break;
 case 18:
-#line 114 "parser.y"
+#line 123 "parser.y"
 { if(!yyvsp[0].symbol->re)
                      in->fatal("can't find symbol");
-                 yyval.regexp = yyvsp[0].symbol->re; ;
-    break;}
+                 yyval.regexp = yyvsp[0].symbol->re; }
+    break;
 case 19:
-#line 118 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; ;
-    break;}
+#line 127 "parser.y"
+{ yyval.regexp = yyvsp[0].regexp; }
+    break;
 case 20:
-#line 120 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; ;
-    break;}
+#line 129 "parser.y"
+{ yyval.regexp = yyvsp[0].regexp; }
+    break;
 case 21:
-#line 122 "parser.y"
-{ yyval.regexp = yyvsp[-1].regexp; ;
-    break;}
+#line 131 "parser.y"
+{ yyval.regexp = yyvsp[-1].regexp; }
+    break;
 }
 
 #line 705 "/usr/share/bison/bison.simple"
@@ -1233,7 +1242,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 125 "parser.y"
+#line 134 "parser.y"
 
 
 extern "C" {
diff --git a/re2c.1 b/re2c.1
index a2a580c4520dfce424dd9778c2ec7ce7fc10dbf2..aa239b6289ddd52013cae75f66e0b87225ca74ed 100644 (file)
--- a/re2c.1
+++ b/re2c.1
@@ -1,11 +1,17 @@
+./" 
+./" $Id$
+./"
+.TH RE2C 1 "8 April 1994" "Version 0.9.2"
 .ds re \fBre2c\fP
 .ds le \fBlex\fP
 .ds rx regular expression
 .ds lx \fIl\fP-expression
-.TH RE2C 1 "8 April 1994" "Version 0.5"
 \"$Log$
-\"Revision 1.1  2003/12/13 04:58:20  nuffer
-\"Initial revision
+\"Revision 1.2  2004/01/31 17:02:47  nuffer
+\"Fixed things so they compile.
+\"
+\"Revision 1.1  2004/01/31 15:44:39  nuffer
+\"Applied patch from Marcus Boerger
 \"
 \"Revision 1.2  1994/04/16  15:50:32  peter
 \"Fix bug in simple example.
index b8b03b9d96003ebcc0f5eed9178f15618339c630..53fcb08d2052746841c96cfe7ba3130ef8003bab 100644 (file)
@@ -1,6 +1,7 @@
-/* Generated by re2c 0.9.2 on Sun Jan 11 21:32:00 2004 */
+/* Generated by re2c 0.5 on Sat May 15 11:35:52 1999 */
 #line 1 "scanner.re"
-#include <stdlib.h> #include <string.h>
+#include <stdlib.h>
+#include <string.h>
 #include <iostream.h>
 #include <unistd.h>
 #include "scanner.h"
@@ -57,20 +58,13 @@ char *Scanner::fill(char *cursor){
     return cursor;
 }
 
-#line 67 "scanner.re"
+#line 68
 
 
 int Scanner::echo(ostream &out){
     char *cursor = cur;
-
-    // Catch EOF
-    if (eof && cursor == eof)
-       return 0;
-
     tok = cursor;
 echo:
-
-#line 7 "re2c-output.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept;
@@ -85,17 +79,15 @@ yy2:        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == '*') goto yy7;
 yy3:
-#line 86 "scanner.re"
-{ goto echo; }
-#line 24 "re2c-output.c"
+#line 82
+       { goto echo; }
 yy4:   yych = *++YYCURSOR;
 yy5:
-#line 82 "scanner.re"
-{ if(cursor == eof) RETURN(0);
-                                 out.write((char *)tok, cursor - tok);
+#line 78
+       { if(cursor == eof) RETURN(0);
+                                 out.write(tok, cursor - tok);
                                  tok = pos = cursor; cline++;
                                  goto echo; }
-#line 32 "re2c-output.c"
 yy6:   yych = *++YYCURSOR;
        goto yy3;
 yy7:   yych = *++YYCURSOR;
@@ -114,13 +106,12 @@ yy12:     yych = *++YYCURSOR;
        if(yych != 'c') goto yy8;
 yy13:  yych = *++YYCURSOR;
 yy14:
-#line 79 "scanner.re"
-{ out.write((char *)tok, &cursor[-7] - tok);
+#line 75
+       { out.write(tok, &cursor[-7] - tok);
                                  tok = cursor;
                                  RETURN(1); }
-#line 55 "re2c-output.c"
 }
-#line 87 "scanner.re"
+#line 83
 
 }
 
@@ -133,8 +124,6 @@ scan:
     tchar = cursor - pos;
     tline = cline;
     tok = cursor;
-
-#line 59 "re2c-output.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept;
@@ -190,38 +179,33 @@ yy15:
        }
 yy17:  yych = *++YYCURSOR;
 yy18:
-#line 100 "scanner.re"
-{ depth = 1;
+#line 96
+       { depth = 1;
                                  goto code;
                                }
-#line 119 "re2c-output.c"
 yy19:  yych = *++YYCURSOR;
        if(yych == '*') goto yy54;
 yy20:
-#line 119 "scanner.re"
-{ RETURN(*tok); }
-#line 125 "re2c-output.c"
+#line 115
+       { RETURN(*tok); }
 yy21:  yych = *++YYCURSOR;
        if(yych == '/') goto yy52;
 yy22:
-#line 121 "scanner.re"
-{ yylval.op = *tok;
+#line 117
+       { yylval.op = *tok;
                                  RETURN(CLOSE); }
-#line 132 "re2c-output.c"
 yy23:  yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != '\n')        goto yy48;
 yy24:
-#line 112 "scanner.re"
-{ fatal("bad string"); }
-#line 139 "re2c-output.c"
+#line 108
+       { fatal("bad string"); }
 yy25:  yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych != '\n')        goto yy42;
 yy26:
-#line 117 "scanner.re"
-{ fatal("bad character constant"); }
-#line 146 "re2c-output.c"
+#line 113
+       { fatal("bad character constant"); }
 yy27:  yych = *++YYCURSOR;
        goto yy20;
 yy28:  yych = *++YYCURSOR;
@@ -229,32 +213,28 @@ yy28:     yych = *++YYCURSOR;
 yy29:  yych = *++YYCURSOR;
        goto yy40;
 yy30:
-#line 124 "scanner.re"
-{ cur = cursor;
+#line 120
+       { cur = cursor;
                                  yylval.symbol = Symbol::find(token());
                                  return ID; }
-#line 158 "re2c-output.c"
 yy31:  yych = *++YYCURSOR;
        goto yy38;
 yy32:
-#line 128 "scanner.re"
-{ goto scan; }
-#line 164 "re2c-output.c"
+#line 124
+       { goto scan; }
 yy33:  yych = *++YYCURSOR;
 yy34:
-#line 130 "scanner.re"
-{ if(cursor == eof) RETURN(0);
+#line 126
+       { if(cursor == eof) RETURN(0);
                                  pos = cursor; cline++;
                                  goto scan;
                                }
-#line 172 "re2c-output.c"
 yy35:  yych = *++YYCURSOR;
 yy36:
-#line 135 "scanner.re"
-{ cerr << "unexpected character: " << *tok << endl;
+#line 131
+       { cerr << "unexpected character: " << *tok << endl;
                                  goto scan;
                                }
-#line 179 "re2c-output.c"
 yy37:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
@@ -296,11 +276,10 @@ yy44:     ++YYCURSOR;
        goto yy41;
 yy45:  yych = *++YYCURSOR;
 yy46:
-#line 114 "scanner.re"
-{ cur = cursor;
+#line 110
+       { cur = cursor;
                                  yylval.regexp = ranToRE(token());
                                  return RANGE; }
-#line 225 "re2c-output.c"
 yy47:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
@@ -318,30 +297,25 @@ yy49:     ++YYCURSOR;
        goto yy47;
 yy50:  yych = *++YYCURSOR;
 yy51:
-#line 109 "scanner.re"
-{ cur = cursor;
+#line 105
+       { cur = cursor;
                                  yylval.regexp = strToRE(token());
                                  return STRING; }
-#line 247 "re2c-output.c"
 yy52:  yych = *++YYCURSOR;
 yy53:
-#line 106 "scanner.re"
-{ tok = cursor;
+#line 102
+       { tok = cursor;
                                  RETURN(0); }
-#line 253 "re2c-output.c"
 yy54:  yych = *++YYCURSOR;
 yy55:
-#line 103 "scanner.re"
-{ depth = 1;
+#line 99
+       { depth = 1;
                                  goto comment; }
-#line 259 "re2c-output.c"
 }
-#line 138 "scanner.re"
+#line 134
 
 
 code:
-
-#line 263 "re2c-output.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept;
@@ -369,33 +343,29 @@ yy56:
        }
 yy58:  yych = *++YYCURSOR;
 yy59:
-#line 142 "scanner.re"
-{ if(--depth == 0){
+#line 138
+       { if(--depth == 0){
                                        cur = cursor;
                                        yylval.token = new Token(token(), tline);
                                        return CODE;
                                  }
                                  goto code; }
-#line 298 "re2c-output.c"
 yy60:  yych = *++YYCURSOR;
 yy61:
-#line 148 "scanner.re"
-{ ++depth;
+#line 144
+       { ++depth;
                                  goto code; }
-#line 304 "re2c-output.c"
 yy62:  yych = *++YYCURSOR;
 yy63:
-#line 150 "scanner.re"
-{ if(cursor == eof) fatal("missing '}'");
+#line 146
+       { if(cursor == eof) fatal("missing '}'");
                                  pos = cursor; cline++;
                                  goto code;
                                }
-#line 312 "re2c-output.c"
 yy64:  yych = *++YYCURSOR;
 yy65:
-#line 154 "scanner.re"
-{ goto code; }
-#line 317 "re2c-output.c"
+#line 150
+       { goto code; }
 yy66:  yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if(yych == '\n')        goto yy65;
@@ -439,12 +409,10 @@ yy74:     ++YYCURSOR;
        if(yych == '\n')        goto yy70;
        goto yy72;
 }
-#line 155 "scanner.re"
+#line 151
 
 
 comment:
-
-#line 363 "re2c-output.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept;
@@ -464,38 +432,34 @@ yy75:
 yy77:  yych = *++YYCURSOR;
        if(yych == '/') goto yy85;
 yy78:
-#line 169 "scanner.re"
-{ goto comment; }
-#line 385 "re2c-output.c"
+#line 165
+       { goto comment; }
 yy79:  yych = *++YYCURSOR;
        if(yych == '*') goto yy83;
        goto yy78;
 yy80:  yych = *++YYCURSOR;
 yy81:
-#line 165 "scanner.re"
-{ if(cursor == eof) RETURN(0);
+#line 161
+       { if(cursor == eof) RETURN(0);
                                  tok = pos = cursor; cline++;
                                  goto comment;
                                }
-#line 396 "re2c-output.c"
 yy82:  yych = *++YYCURSOR;
        goto yy78;
 yy83:  yych = *++YYCURSOR;
 yy84:
-#line 163 "scanner.re"
-{ ++depth;
+#line 159
+       { ++depth;
                                  goto comment; }
-#line 404 "re2c-output.c"
 yy85:  yych = *++YYCURSOR;
 yy86:
-#line 159 "scanner.re"
-{ if(--depth == 0)
+#line 155
+       { if(--depth == 0)
                                        goto scan;
                                    else
                                        goto comment; }
-#line 412 "re2c-output.c"
 }
-#line 170 "scanner.re"
+#line 166
 
 }
 
index 0032558c8111967c9168b51b1f835295d0678e6f..fa1b7ee1fd56e2a125844faf3de7a133fe9b834b 100644 (file)
--- a/scanner.h
+++ b/scanner.h
@@ -7,10 +7,10 @@
 class Scanner {
   private:
     int                        in;
-    uchar              *bot, *tok, *ptr, *cur, *pos, *lim, *top, *eof;
+    char               *bot, *tok, *ptr, *cur, *pos, *lim, *top, *eof;
     uint               tchar, tline, cline;
   private:
-    uchar *fill(uchar*);
+    char *fill(char*);
   public:
     Scanner(int);
     int echo(ostream&);
index ef572017035566e1954d65930894ac0094fc343b..e1f0a3cbf5328858eaef6a5510d6b65b7f456c7b 100644 (file)
@@ -11,7 +11,7 @@ extern YYSTYPE yylval;
 
 #define        BSIZE   8192
 
-#define        YYCTYPE         uchar
+#define        YYCTYPE         char
 #define        YYCURSOR        cursor
 #define        YYLIMIT         lim
 #define        YYMARKER        ptr
@@ -26,7 +26,7 @@ Scanner::Scanner(int i) : in(i),
     ;
 }
 
-uchar *Scanner::fill(uchar *cursor){
+char *Scanner::fill(char *cursor){
     if(!eof){
        uint cnt = tok - bot;
        if(cnt){
@@ -38,7 +38,7 @@ uchar *Scanner::fill(uchar *cursor){
            lim -= cnt;
        }
        if((top - lim) < BSIZE){
-           uchar *buf = new uchar[(lim - bot) + BSIZE];
+           char *buf = new char[(lim - bot) + BSIZE];
            memcpy(buf, tok, lim - tok);
            tok = buf;
            ptr = &buf[ptr - bot];
@@ -69,7 +69,7 @@ digit         = [0-9];
 */
 
 int Scanner::echo(ostream &out){
-    uchar *cursor = cur;
+    char *cursor = cur;
 
     // Catch EOF
     if (eof && cursor == eof)
@@ -91,7 +91,7 @@ echo:
 
 
 int Scanner::scan(){
-    uchar *cursor = cur;
+    char *cursor = cur;
     uint depth;
 
 scan:
diff --git a/y.tab.h b/y.tab.h
index d7b3702d136ba9cf8e654bc0f7c676939f153cef..ba8fc0167d2a81671e66ca65b72d9f416756496f 100644 (file)
--- a/y.tab.h
+++ b/y.tab.h
@@ -1,12 +1,23 @@
-#define CLOSE 257
-#define ID 258
-#define CODE 259
-#define RANGE 260
-#define STRING 261
+#ifndef BISON_Y_TAB_H
+# define BISON_Y_TAB_H
+
+#ifndef YYSTYPE
 typedef union {
     Symbol     *symbol;
     RegExp     *regexp;
     Token      *token;
     char       op;
-} YYSTYPE;
+} yystype;
+# define YYSTYPE yystype
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+# define       CLOSE   257
+# define       ID      258
+# define       CODE    259
+# define       RANGE   260
+# define       STRING  261
+
+
 extern YYSTYPE yylval;
+
+#endif /* not BISON_Y_TAB_H */