]> granicus.if.org Git - yasm/commitdiff
Start C conversion. Eliminate bootstrap files.
authorPeter Johnson <peter@tortall.net>
Sun, 7 Apr 2002 22:46:31 +0000 (22:46 -0000)
committerPeter Johnson <peter@tortall.net>
Sun, 7 Apr 2002 22:46:31 +0000 (22:46 -0000)
svn path=/trunk/yasm/; revision=577

13 files changed:
tools/re2c/actions.c [moved from tools/re2c/actions.cc with 100% similarity]
tools/re2c/bootstrap/parser.cc [deleted file]
tools/re2c/bootstrap/scanner.cc [deleted file]
tools/re2c/bootstrap/y.tab.h [deleted file]
tools/re2c/code.c [moved from tools/re2c/code.cc with 100% similarity]
tools/re2c/dfa.c [moved from tools/re2c/dfa.cc with 100% similarity]
tools/re2c/main.c [moved from tools/re2c/main.cc with 100% similarity]
tools/re2c/parser.cc [deleted file]
tools/re2c/re2c.c [new file with mode: 0644]
tools/re2c/scanner.cc [deleted file]
tools/re2c/substr.c [moved from tools/re2c/substr.cc with 100% similarity]
tools/re2c/translate.c [moved from tools/re2c/translate.cc with 100% similarity]
tools/re2c/y.tab.h [deleted file]

similarity index 100%
rename from tools/re2c/actions.cc
rename to tools/re2c/actions.c
diff --git a/tools/re2c/bootstrap/parser.cc b/tools/re2c/bootstrap/parser.cc
deleted file mode 100644 (file)
index 6d66400..0000000
+++ /dev/null
@@ -1,531 +0,0 @@
-#ifndef lint
-static char yysccsid[] = "@(#)yaccpar  1.9 (Berkeley) 02/21/93";
-#endif
-#define YYBYACC 1
-#define YYMAJOR 1
-#define YYMINOR 9
-#define yyclearin (yychar=(-1))
-#define yyerrok (yyerrflag=0)
-#define YYRECOVERING (yyerrflag!=0)
-#define YYPREFIX "yy"
-#line 2 "parser.y"
-
-#include <time.h>
-#include <iostream.h>
-#include <string.h>
-#include <malloc.h>
-#include "globals.h"
-#include "parser.h"
-int yyparse();
-int yylex();
-void yyerror(char*);
-
-static uint accept;
-static RegExp *spec;
-static Scanner *in;
-
-#line 21 "parser.y"
-typedef union {
-    Symbol     *symbol;
-    RegExp     *regexp;
-    Token      *token;
-    char       op;
-} YYSTYPE;
-#line 35 "y.tab.c"
-#define CLOSE 257
-#define ID 258
-#define CODE 259
-#define RANGE 260
-#define STRING 261
-#define YYERRCODE 256
-short yylhs[] = {                                        -1,
-    0,    0,    0,    9,    2,    3,    3,    4,    4,    5,
-    5,    6,    6,    7,    7,    1,    1,    8,    8,    8,
-    8,
-};
-short yylen[] = {                                         2,
-    0,    2,    2,    4,    3,    0,    2,    1,    3,    1,
-    3,    1,    2,    1,    2,    1,    2,    1,    1,    1,
-    3,
-};
-short yydefred[] = {                                      1,
-    0,    0,   19,   20,    0,    2,    0,    0,    0,   12,
-    0,    3,    0,   18,    0,    0,    0,    0,    0,   13,
-   16,    0,    0,   21,    0,    0,    5,    0,   17,    4,
-};
-short yydgoto[] = {                                       1,
-   22,    6,   18,    7,    8,    9,   10,   11,   12,
-};
-short yysindex[] = {                                      0,
-  -27,  -49,    0,    0,  -23,    0,  -44,  -84,  -23,    0,
- -243,    0,  -23,    0,  -39,  -23,  -23, -244,  -23,    0,
-    0, -239,  -53,    0, -104,  -84,    0,  -23,    0,    0,
-};
-short yyrindex[] = {                                      0,
-    0,  -31,    0,    0,    0,    0, -227,  -17,  -20,    0,
-  -40,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,  -36,    0,    0, -226,  -16,    0,  -19,    0,    0,
-};
-short yygindex[] = {                                      0,
-    0,    0,    0,   21,   18,   17,    1,    0,    0,
-};
-#define YYTABLESIZE 243
-short yytable[] = {                                      14,
-   14,   24,   16,   15,   15,   30,   14,   19,   18,   20,
-   15,   13,    5,   21,   27,   18,    5,   29,   14,   17,
-   10,   11,   15,    8,    9,   15,   10,   11,   20,    8,
-    9,    6,    7,   23,   26,   28,   25,    0,   10,   11,
-    0,    8,    9,    0,    0,    0,    0,    0,    0,    0,
-    0,   14,    0,    0,    0,   15,    0,    0,    0,    0,
-   18,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   17,   10,   11,    0,    0,    0,    0,    0,    0,   17,
-    0,    0,    0,   14,   17,    0,    0,   15,    0,    0,
-    0,    0,   18,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   10,   11,    0,    8,    9,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   14,   14,   14,
-   14,   15,   15,   15,   15,   18,   18,   18,   18,   18,
-    2,    0,    3,    4,   14,    0,    3,    4,   10,   11,
-    0,    8,    9,
-};
-short yycheck[] = {                                      40,
-   41,   41,   47,   40,   41,   59,   47,   92,   40,    9,
-   47,   61,   40,  257,  259,   47,   40,  257,   59,  124,
-   41,   41,   59,   41,   41,    5,   47,   47,   28,   47,
-   47,  259,  259,   13,   17,   19,   16,   -1,   59,   59,
-   -1,   59,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   92,   -1,   -1,   -1,   92,   -1,   -1,   -1,   -1,
-   92,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-  124,   92,   92,   -1,   -1,   -1,   -1,   -1,   -1,  124,
-   -1,   -1,   -1,  124,  124,   -1,   -1,  124,   -1,   -1,
-   -1,   -1,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  124,  124,   -1,  124,  124,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  258,  259,  260,
-  261,  258,  259,  260,  261,  257,  258,  259,  260,  261,
-  258,   -1,  260,  261,  258,   -1,  260,  261,  259,  259,
-   -1,  259,  259,
-};
-#define YYFINAL 1
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 261
-#if YYDEBUG
-char *yyname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,"'('","')'",0,0,0,0,0,"'/'",0,0,0,0,0,0,0,0,0,0,0,"';'",0,"'='",0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'\\\\'",0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'|'",0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-"CLOSE","ID","CODE","RANGE","STRING",
-};
-char *yyrule[] = {
-"$accept : spec",
-"spec :",
-"spec : spec rule",
-"spec : spec decl",
-"decl : ID '=' expr ';'",
-"rule : expr look CODE",
-"look :",
-"look : '/' expr",
-"expr : diff",
-"expr : expr '|' diff",
-"diff : term",
-"diff : diff '\\\\' term",
-"term : factor",
-"term : term factor",
-"factor : primary",
-"factor : primary close",
-"close : CLOSE",
-"close : close CLOSE",
-"primary : ID",
-"primary : RANGE",
-"primary : STRING",
-"primary : '(' expr ')'",
-};
-#endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 500
-#define YYMAXDEPTH 500
-#endif
-#endif
-int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-short *yyssp;
-YYSTYPE *yyvsp;
-YYSTYPE yyval;
-YYSTYPE yylval;
-short yyss[YYSTACKSIZE];
-YYSTYPE yyvs[YYSTACKSIZE];
-#define yystacksize YYSTACKSIZE
-#line 121 "parser.y"
-
-void yyerror(char* s){
-    in->fatal(s);
-}
-
-int yylex(){
-    return in->scan();
-}
-
-void parse(int i, ostream &o){
-    char *     fnamebuf;
-    char *     token;
-
-    o << "/* Generated by re2c 0.5 on ";
-    time_t now = time(&now);
-    o.write(ctime(&now), 24);
-    o << " */\n";
-
-    in = new Scanner(i);
-
-    o << "#line " << in->line() << " \"";
-    if( fileName != NULL ) {
-       fnamebuf = strdup( fileName );
-    } else {
-       fnamebuf = strdup( "<stdin>" );
-    }
-    token = strtok( fnamebuf, "\\" );
-    for(;;) {
-       o << token;
-       token = strtok( NULL, "\\" );
-       if( token == NULL ) break;
-       o << "\\\\";
-    }
-    o << "\"\n";
-    free( fnamebuf );
-
-    while(in->echo(o)){
-       yyparse();
-       if(spec)
-           genCode(o, spec);
-       o << "#line " << in->line() << "\n";
-    }
-}
-#line 235 "y.tab.c"
-#define YYABORT goto yyabort
-#define YYREJECT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-int
-yyparse()
-{
-    register int yym, yyn, yystate;
-#if YYDEBUG
-    register char *yys;
-    extern char *getenv();
-
-    if (yys = getenv("YYDEBUG"))
-    {
-        yyn = *yys;
-        if (yyn >= '0' && yyn <= '9')
-            yydebug = yyn - '0';
-    }
-#endif
-
-    yynerrs = 0;
-    yyerrflag = 0;
-    yychar = (-1);
-
-    yyssp = yyss;
-    yyvsp = yyvs;
-    *yyssp = yystate = 0;
-
-yyloop:
-    if (yyn = yydefred[yystate]) goto yyreduce;
-    if (yychar < 0)
-    {
-        if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, reading %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-    }
-    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-    {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: state %d, shifting to state %d\n",
-                    YYPREFIX, yystate, yytable[yyn]);
-#endif
-        if (yyssp >= yyss + yystacksize - 1)
-        {
-            goto yyoverflow;
-        }
-        *++yyssp = yystate = yytable[yyn];
-        *++yyvsp = yylval;
-        yychar = (-1);
-        if (yyerrflag > 0)  --yyerrflag;
-        goto yyloop;
-    }
-    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-    {
-        yyn = yytable[yyn];
-        goto yyreduce;
-    }
-    if (yyerrflag) goto yyinrecovery;
-#ifdef lint
-    goto yynewerror;
-#endif
-yynewerror:
-    yyerror("syntax error");
-#ifdef lint
-    goto yyerrlab;
-#endif
-yyerrlab:
-    ++yynerrs;
-yyinrecovery:
-    if (yyerrflag < 3)
-    {
-        yyerrflag = 3;
-        for (;;)
-        {
-            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
-                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: state %d, error recovery shifting\
- to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
-#endif
-                if (yyssp >= yyss + yystacksize - 1)
-                {
-                    goto yyoverflow;
-                }
-                *++yyssp = yystate = yytable[yyn];
-                *++yyvsp = yylval;
-                goto yyloop;
-            }
-            else
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: error recovery discarding state %d\n",
-                            YYPREFIX, *yyssp);
-#endif
-                if (yyssp <= yyss) goto yyabort;
-                --yyssp;
-                --yyvsp;
-            }
-        }
-    }
-    else
-    {
-        if (yychar == 0) goto yyabort;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-        yychar = (-1);
-        goto yyloop;
-    }
-yyreduce:
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
-                YYPREFIX, yystate, yyn, yyrule[yyn]);
-#endif
-    yym = yylen[yyn];
-    yyval = yyvsp[1-yym];
-    switch (yyn)
-    {
-case 1:
-#line 40 "parser.y"
-{ accept = 0;
-                 spec = NULL; }
-break;
-case 2:
-#line 43 "parser.y"
-{ spec = spec? mkAlt(spec, yyvsp[0].regexp) : yyvsp[0].regexp; }
-break;
-case 4:
-#line 48 "parser.y"
-{ if(yyvsp[-3].symbol->re)
-                     in->fatal("sym already defined");
-                 yyvsp[-3].symbol->re = yyvsp[-1].regexp; }
-break;
-case 5:
-#line 54 "parser.y"
-{ yyval.regexp = new RuleOp(yyvsp[-2].regexp, yyvsp[-1].regexp, yyvsp[0].token, accept++); }
-break;
-case 6:
-#line 58 "parser.y"
-{ yyval.regexp = new NullOp; }
-break;
-case 7:
-#line 60 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 8:
-#line 64 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 9:
-#line 66 "parser.y"
-{ yyval.regexp =  mkAlt(yyvsp[-2].regexp, yyvsp[0].regexp); }
-break;
-case 10:
-#line 70 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 11:
-#line 72 "parser.y"
-{ yyval.regexp =  mkDiff(yyvsp[-2].regexp, yyvsp[0].regexp);
-                 if(!yyval.regexp)
-                      in->fatal("can only difference char sets");
-               }
-break;
-case 12:
-#line 79 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 13:
-#line 81 "parser.y"
-{ yyval.regexp = new CatOp(yyvsp[-1].regexp, yyvsp[0].regexp); }
-break;
-case 14:
-#line 85 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 15:
-#line 87 "parser.y"
-{
-                   switch(yyvsp[0].op){
-                   case '*':
-                       yyval.regexp = mkAlt(new CloseOp(yyvsp[-1].regexp), new NullOp());
-                       break;
-                   case '+':
-                       yyval.regexp = new CloseOp(yyvsp[-1].regexp);
-                       break;
-                   case '?':
-                       yyval.regexp = mkAlt(yyvsp[-1].regexp, new NullOp());
-                       break;
-                   }
-               }
-break;
-case 16:
-#line 103 "parser.y"
-{ yyval.op = yyvsp[0].op; }
-break;
-case 17:
-#line 105 "parser.y"
-{ yyval.op = (yyvsp[-1].op == yyvsp[0].op) ? yyvsp[-1].op : '*'; }
-break;
-case 18:
-#line 109 "parser.y"
-{ if(!yyvsp[0].symbol->re)
-                     in->fatal("can't find symbol");
-                 yyval.regexp = yyvsp[0].symbol->re; }
-break;
-case 19:
-#line 113 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 20:
-#line 115 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 21:
-#line 117 "parser.y"
-{ yyval.regexp = yyvsp[-1].regexp; }
-break;
-#line 476 "y.tab.c"
-    }
-    yyssp -= yym;
-    yystate = *yyssp;
-    yyvsp -= yym;
-    yym = yylhs[yyn];
-    if (yystate == 0 && yym == 0)
-    {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: after reduction, shifting from state 0 to\
- state %d\n", YYPREFIX, YYFINAL);
-#endif
-        yystate = YYFINAL;
-        *++yyssp = YYFINAL;
-        *++yyvsp = yyval;
-        if (yychar < 0)
-        {
-            if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-            if (yydebug)
-            {
-                yys = 0;
-                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-                if (!yys) yys = "illegal-symbol";
-                printf("%sdebug: state %d, reading %d (%s)\n",
-                        YYPREFIX, YYFINAL, yychar, yys);
-            }
-#endif
-        }
-        if (yychar == 0) goto yyaccept;
-        goto yyloop;
-    }
-    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
-        yystate = yytable[yyn];
-    else
-        yystate = yydgoto[yym];
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
-#endif
-    if (yyssp >= yyss + yystacksize - 1)
-    {
-        goto yyoverflow;
-    }
-    *++yyssp = yystate;
-    *++yyvsp = yyval;
-    goto yyloop;
-yyoverflow:
-    yyerror("yacc stack overflow");
-yyabort:
-    return (1);
-yyaccept:
-    return (0);
-}
diff --git a/tools/re2c/bootstrap/scanner.cc b/tools/re2c/bootstrap/scanner.cc
deleted file mode 100644 (file)
index 19b4259..0000000
+++ /dev/null
@@ -1,470 +0,0 @@
-/* Generated by re2c 0.5 on Sat May 15 11:35:52 1999 */
-#line 1 "scanner.re"
-#include <stdlib.h>
-#include <string.h>
-#include <iostream.h>
-#include <unistd.h>
-#include "scanner.h"
-#include "parser.h"
-#include "y.tab.h"
-
-extern YYSTYPE yylval;
-
-#define        BSIZE   8192
-
-#define        YYCTYPE         uchar
-#define        YYCURSOR        cursor
-#define        YYLIMIT         lim
-#define        YYMARKER        ptr
-#define        YYFILL(n)       {cursor = fill(cursor);}
-
-#define        RETURN(i)       {cur = cursor; return i;}
-
-
-Scanner::Scanner(int i) : in(i),
-       bot(NULL), tok(NULL), ptr(NULL), cur(NULL), pos(NULL), lim(NULL),
-       top(NULL), eof(NULL), tchar(0), tline(0), cline(1) {
-    ;
-}
-
-uchar *Scanner::fill(uchar *cursor){
-    if(!eof){
-       uint cnt = tok - bot;
-       if(cnt){
-           memcpy(bot, tok, lim - tok);
-           tok = bot;
-           ptr -= cnt;
-           cursor -= cnt;
-           pos -= cnt;
-           lim -= cnt;
-       }
-       if((top - lim) < BSIZE){
-           uchar *buf = new uchar[(lim - bot) + BSIZE];
-           memcpy(buf, tok, lim - tok);
-           tok = buf;
-           ptr = &buf[ptr - bot];
-           cursor = &buf[cursor - bot];
-           pos = &buf[pos - bot];
-           lim = &buf[lim - bot];
-           top = &lim[BSIZE];
-           delete [] bot;
-           bot = buf;
-       }
-       if((cnt = read(in, (char*) lim, BSIZE)) != BSIZE){
-           eof = &lim[cnt]; *eof++ = '\n';
-       }
-       lim += cnt;
-    }
-    return cursor;
-}
-
-#line 68
-
-
-int Scanner::echo(ostream &out){
-    uchar *cursor = cur;
-    tok = cursor;
-echo:
-{
-       YYCTYPE yych;
-       unsigned int yyaccept;
-       goto yy0;
-yy1:   ++YYCURSOR;
-yy0:
-       if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
-       yych = *YYCURSOR;
-       if(yych == '\n')        goto yy4;
-       if(yych != '/') goto yy6;
-yy2:   yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == '*') goto yy7;
-yy3:
-#line 82
-       { goto echo; }
-yy4:   yych = *++YYCURSOR;
-yy5:
-#line 78
-       { if(cursor == eof) RETURN(0);
-                                 out.write(tok, cursor - tok);
-                                 tok = pos = cursor; cline++;
-                                 goto echo; }
-yy6:   yych = *++YYCURSOR;
-       goto yy3;
-yy7:   yych = *++YYCURSOR;
-       if(yych == '!') goto yy9;
-yy8:   YYCURSOR = YYMARKER;
-       switch(yyaccept){
-       case 0: goto yy3;
-       }
-yy9:   yych = *++YYCURSOR;
-       if(yych != 'r') goto yy8;
-yy10:  yych = *++YYCURSOR;
-       if(yych != 'e') goto yy8;
-yy11:  yych = *++YYCURSOR;
-       if(yych != '2') goto yy8;
-yy12:  yych = *++YYCURSOR;
-       if(yych != 'c') goto yy8;
-yy13:  yych = *++YYCURSOR;
-yy14:
-#line 75
-       { out.write(tok, &cursor[-7] - tok);
-                                 tok = cursor;
-                                 RETURN(1); }
-}
-#line 83
-
-}
-
-
-int Scanner::scan(){
-    uchar *cursor = cur;
-    uint depth;
-
-scan:
-    tchar = cursor - pos;
-    tline = cline;
-    tok = cursor;
-{
-       YYCTYPE yych;
-       unsigned int yyaccept;
-       goto yy15;
-yy16:  ++YYCURSOR;
-yy15:
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if(yych <= ':'){
-               if(yych <= '"'){
-                       if(yych <= '\n'){
-                               if(yych <= '\b')        goto yy35;
-                               if(yych <= '\t')        goto yy31;
-                               goto yy33;
-                       } else {
-                               if(yych == ' ') goto yy31;
-                               if(yych <= '!') goto yy35;
-                               goto yy23;
-                       }
-               } else {
-                       if(yych <= '*'){
-                               if(yych <= '\'')        goto yy35;
-                               if(yych <= ')') goto yy27;
-                               goto yy21;
-                       } else {
-                               if(yych <= '+') goto yy28;
-                               if(yych == '/') goto yy19;
-                               goto yy35;
-                       }
-               }
-       } else {
-               if(yych <= 'Z'){
-                       if(yych <= '='){
-                               if(yych == '<') goto yy35;
-                               goto yy27;
-                       } else {
-                               if(yych == '?') goto yy28;
-                               if(yych <= '@') goto yy35;
-                               goto yy29;
-                       }
-               } else {
-                       if(yych <= '`'){
-                               if(yych <= '[') goto yy25;
-                               if(yych <= '\\')        goto yy27;
-                               goto yy35;
-                       } else {
-                               if(yych <= 'z') goto yy29;
-                               if(yych <= '{') goto yy17;
-                               if(yych <= '|') goto yy27;
-                               goto yy35;
-                       }
-               }
-       }
-yy17:  yych = *++YYCURSOR;
-yy18:
-#line 96
-       { depth = 1;
-                                 goto code;
-                               }
-yy19:  yych = *++YYCURSOR;
-       if(yych == '*') goto yy54;
-yy20:
-#line 115
-       { RETURN(*tok); }
-yy21:  yych = *++YYCURSOR;
-       if(yych == '/') goto yy52;
-yy22:
-#line 117
-       { yylval.op = *tok;
-                                 RETURN(CLOSE); }
-yy23:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych != '\n')        goto yy48;
-yy24:
-#line 108
-       { fatal("bad string"); }
-yy25:  yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych != '\n')        goto yy42;
-yy26:
-#line 113
-       { fatal("bad character constant"); }
-yy27:  yych = *++YYCURSOR;
-       goto yy20;
-yy28:  yych = *++YYCURSOR;
-       goto yy22;
-yy29:  yych = *++YYCURSOR;
-       goto yy40;
-yy30:
-#line 120
-       { cur = cursor;
-                                 yylval.symbol = Symbol::find(token());
-                                 return ID; }
-yy31:  yych = *++YYCURSOR;
-       goto yy38;
-yy32:
-#line 124
-       { goto scan; }
-yy33:  yych = *++YYCURSOR;
-yy34:
-#line 126
-       { if(cursor == eof) RETURN(0);
-                                 pos = cursor; cline++;
-                                 goto scan;
-                               }
-yy35:  yych = *++YYCURSOR;
-yy36:
-#line 131
-       { cerr << "unexpected character: " << *tok << endl;
-                                 goto scan;
-                               }
-yy37:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy38:  if(yych == '\t')        goto yy37;
-       if(yych == ' ') goto yy37;
-       goto yy32;
-yy39:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy40:  if(yych <= '@'){
-               if(yych <= '/') goto yy30;
-               if(yych <= '9') goto yy39;
-               goto yy30;
-       } else {
-               if(yych <= 'Z') goto yy39;
-               if(yych <= '`') goto yy30;
-               if(yych <= 'z') goto yy39;
-               goto yy30;
-       }
-yy41:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy42:  if(yych <= '['){
-               if(yych != '\n')        goto yy41;
-       } else {
-               if(yych <= '\\')        goto yy44;
-               if(yych <= ']') goto yy45;
-               goto yy41;
-       }
-yy43:  YYCURSOR = YYMARKER;
-       switch(yyaccept){
-       case 0: goto yy24;
-       case 1: goto yy26;
-       }
-yy44:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if(yych == '\n')        goto yy43;
-       goto yy41;
-yy45:  yych = *++YYCURSOR;
-yy46:
-#line 110
-       { cur = cursor;
-                                 yylval.regexp = ranToRE(token());
-                                 return RANGE; }
-yy47:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy48:  if(yych <= '!'){
-               if(yych == '\n')        goto yy43;
-               goto yy47;
-       } else {
-               if(yych <= '"') goto yy50;
-               if(yych != '\\')        goto yy47;
-       }
-yy49:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if(yych == '\n')        goto yy43;
-       goto yy47;
-yy50:  yych = *++YYCURSOR;
-yy51:
-#line 105
-       { cur = cursor;
-                                 yylval.regexp = strToRE(token());
-                                 return STRING; }
-yy52:  yych = *++YYCURSOR;
-yy53:
-#line 102
-       { tok = cursor;
-                                 RETURN(0); }
-yy54:  yych = *++YYCURSOR;
-yy55:
-#line 99
-       { depth = 1;
-                                 goto comment; }
-}
-#line 134
-
-
-code:
-{
-       YYCTYPE yych;
-       unsigned int yyaccept;
-       goto yy56;
-yy57:  ++YYCURSOR;
-yy56:
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if(yych <= '&'){
-               if(yych <= '\n'){
-                       if(yych <= '\t')        goto yy64;
-                       goto yy62;
-               } else {
-                       if(yych == '"') goto yy66;
-                       goto yy64;
-               }
-       } else {
-               if(yych <= '{'){
-                       if(yych <= '\'')        goto yy67;
-                       if(yych <= 'z') goto yy64;
-                       goto yy60;
-               } else {
-                       if(yych != '}') goto yy64;
-               }
-       }
-yy58:  yych = *++YYCURSOR;
-yy59:
-#line 138
-       { if(--depth == 0){
-                                       cur = cursor;
-                                       yylval.token = new Token(token(), tline);
-                                       return CODE;
-                                 }
-                                 goto code; }
-yy60:  yych = *++YYCURSOR;
-yy61:
-#line 144
-       { ++depth;
-                                 goto code; }
-yy62:  yych = *++YYCURSOR;
-yy63:
-#line 146
-       { if(cursor == eof) fatal("missing '}'");
-                                 pos = cursor; cline++;
-                                 goto code;
-                               }
-yy64:  yych = *++YYCURSOR;
-yy65:
-#line 150
-       { goto code; }
-yy66:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == '\n')        goto yy65;
-       goto yy73;
-yy67:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == '\n')        goto yy65;
-       goto yy69;
-yy68:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy69:  if(yych <= '&'){
-               if(yych != '\n')        goto yy68;
-       } else {
-               if(yych <= '\'')        goto yy64;
-               if(yych == '\\')        goto yy71;
-               goto yy68;
-       }
-yy70:  YYCURSOR = YYMARKER;
-       switch(yyaccept){
-       case 0: goto yy65;
-       }
-yy71:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if(yych == '\n')        goto yy70;
-       goto yy68;
-yy72:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy73:  if(yych <= '!'){
-               if(yych == '\n')        goto yy70;
-               goto yy72;
-       } else {
-               if(yych <= '"') goto yy64;
-               if(yych != '\\')        goto yy72;
-       }
-yy74:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if(yych == '\n')        goto yy70;
-       goto yy72;
-}
-#line 151
-
-
-comment:
-{
-       YYCTYPE yych;
-       unsigned int yyaccept;
-       goto yy75;
-yy76:  ++YYCURSOR;
-yy75:
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if(yych <= ')'){
-               if(yych == '\n')        goto yy80;
-               goto yy82;
-       } else {
-               if(yych <= '*') goto yy77;
-               if(yych == '/') goto yy79;
-               goto yy82;
-       }
-yy77:  yych = *++YYCURSOR;
-       if(yych == '/') goto yy85;
-yy78:
-#line 165
-       { goto comment; }
-yy79:  yych = *++YYCURSOR;
-       if(yych == '*') goto yy83;
-       goto yy78;
-yy80:  yych = *++YYCURSOR;
-yy81:
-#line 161
-       { if(cursor == eof) RETURN(0);
-                                 tok = pos = cursor; cline++;
-                                 goto comment;
-                               }
-yy82:  yych = *++YYCURSOR;
-       goto yy78;
-yy83:  yych = *++YYCURSOR;
-yy84:
-#line 159
-       { ++depth;
-                                 goto comment; }
-yy85:  yych = *++YYCURSOR;
-yy86:
-#line 155
-       { if(--depth == 0)
-                                       goto scan;
-                                   else
-                                       goto comment; }
-}
-#line 166
-
-}
-
-void Scanner::fatal(char *msg){
-    cerr << "line " << tline << ", column " << (tchar + 1) << ": "
-       << msg << endl;
-    exit(1);
-}
diff --git a/tools/re2c/bootstrap/y.tab.h b/tools/re2c/bootstrap/y.tab.h
deleted file mode 100644 (file)
index d7b3702..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#define CLOSE 257
-#define ID 258
-#define CODE 259
-#define RANGE 260
-#define STRING 261
-typedef union {
-    Symbol     *symbol;
-    RegExp     *regexp;
-    Token      *token;
-    char       op;
-} YYSTYPE;
-extern YYSTYPE yylval;
similarity index 100%
rename from tools/re2c/code.cc
rename to tools/re2c/code.c
similarity index 100%
rename from tools/re2c/dfa.cc
rename to tools/re2c/dfa.c
similarity index 100%
rename from tools/re2c/main.cc
rename to tools/re2c/main.c
diff --git a/tools/re2c/parser.cc b/tools/re2c/parser.cc
deleted file mode 100644 (file)
index 6d66400..0000000
+++ /dev/null
@@ -1,531 +0,0 @@
-#ifndef lint
-static char yysccsid[] = "@(#)yaccpar  1.9 (Berkeley) 02/21/93";
-#endif
-#define YYBYACC 1
-#define YYMAJOR 1
-#define YYMINOR 9
-#define yyclearin (yychar=(-1))
-#define yyerrok (yyerrflag=0)
-#define YYRECOVERING (yyerrflag!=0)
-#define YYPREFIX "yy"
-#line 2 "parser.y"
-
-#include <time.h>
-#include <iostream.h>
-#include <string.h>
-#include <malloc.h>
-#include "globals.h"
-#include "parser.h"
-int yyparse();
-int yylex();
-void yyerror(char*);
-
-static uint accept;
-static RegExp *spec;
-static Scanner *in;
-
-#line 21 "parser.y"
-typedef union {
-    Symbol     *symbol;
-    RegExp     *regexp;
-    Token      *token;
-    char       op;
-} YYSTYPE;
-#line 35 "y.tab.c"
-#define CLOSE 257
-#define ID 258
-#define CODE 259
-#define RANGE 260
-#define STRING 261
-#define YYERRCODE 256
-short yylhs[] = {                                        -1,
-    0,    0,    0,    9,    2,    3,    3,    4,    4,    5,
-    5,    6,    6,    7,    7,    1,    1,    8,    8,    8,
-    8,
-};
-short yylen[] = {                                         2,
-    0,    2,    2,    4,    3,    0,    2,    1,    3,    1,
-    3,    1,    2,    1,    2,    1,    2,    1,    1,    1,
-    3,
-};
-short yydefred[] = {                                      1,
-    0,    0,   19,   20,    0,    2,    0,    0,    0,   12,
-    0,    3,    0,   18,    0,    0,    0,    0,    0,   13,
-   16,    0,    0,   21,    0,    0,    5,    0,   17,    4,
-};
-short yydgoto[] = {                                       1,
-   22,    6,   18,    7,    8,    9,   10,   11,   12,
-};
-short yysindex[] = {                                      0,
-  -27,  -49,    0,    0,  -23,    0,  -44,  -84,  -23,    0,
- -243,    0,  -23,    0,  -39,  -23,  -23, -244,  -23,    0,
-    0, -239,  -53,    0, -104,  -84,    0,  -23,    0,    0,
-};
-short yyrindex[] = {                                      0,
-    0,  -31,    0,    0,    0,    0, -227,  -17,  -20,    0,
-  -40,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,  -36,    0,    0, -226,  -16,    0,  -19,    0,    0,
-};
-short yygindex[] = {                                      0,
-    0,    0,    0,   21,   18,   17,    1,    0,    0,
-};
-#define YYTABLESIZE 243
-short yytable[] = {                                      14,
-   14,   24,   16,   15,   15,   30,   14,   19,   18,   20,
-   15,   13,    5,   21,   27,   18,    5,   29,   14,   17,
-   10,   11,   15,    8,    9,   15,   10,   11,   20,    8,
-    9,    6,    7,   23,   26,   28,   25,    0,   10,   11,
-    0,    8,    9,    0,    0,    0,    0,    0,    0,    0,
-    0,   14,    0,    0,    0,   15,    0,    0,    0,    0,
-   18,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   17,   10,   11,    0,    0,    0,    0,    0,    0,   17,
-    0,    0,    0,   14,   17,    0,    0,   15,    0,    0,
-    0,    0,   18,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   10,   11,    0,    8,    9,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   14,   14,   14,
-   14,   15,   15,   15,   15,   18,   18,   18,   18,   18,
-    2,    0,    3,    4,   14,    0,    3,    4,   10,   11,
-    0,    8,    9,
-};
-short yycheck[] = {                                      40,
-   41,   41,   47,   40,   41,   59,   47,   92,   40,    9,
-   47,   61,   40,  257,  259,   47,   40,  257,   59,  124,
-   41,   41,   59,   41,   41,    5,   47,   47,   28,   47,
-   47,  259,  259,   13,   17,   19,   16,   -1,   59,   59,
-   -1,   59,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   92,   -1,   -1,   -1,   92,   -1,   -1,   -1,   -1,
-   92,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-  124,   92,   92,   -1,   -1,   -1,   -1,   -1,   -1,  124,
-   -1,   -1,   -1,  124,  124,   -1,   -1,  124,   -1,   -1,
-   -1,   -1,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  124,  124,   -1,  124,  124,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  258,  259,  260,
-  261,  258,  259,  260,  261,  257,  258,  259,  260,  261,
-  258,   -1,  260,  261,  258,   -1,  260,  261,  259,  259,
-   -1,  259,  259,
-};
-#define YYFINAL 1
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 261
-#if YYDEBUG
-char *yyname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,"'('","')'",0,0,0,0,0,"'/'",0,0,0,0,0,0,0,0,0,0,0,"';'",0,"'='",0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'\\\\'",0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'|'",0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-"CLOSE","ID","CODE","RANGE","STRING",
-};
-char *yyrule[] = {
-"$accept : spec",
-"spec :",
-"spec : spec rule",
-"spec : spec decl",
-"decl : ID '=' expr ';'",
-"rule : expr look CODE",
-"look :",
-"look : '/' expr",
-"expr : diff",
-"expr : expr '|' diff",
-"diff : term",
-"diff : diff '\\\\' term",
-"term : factor",
-"term : term factor",
-"factor : primary",
-"factor : primary close",
-"close : CLOSE",
-"close : close CLOSE",
-"primary : ID",
-"primary : RANGE",
-"primary : STRING",
-"primary : '(' expr ')'",
-};
-#endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 500
-#define YYMAXDEPTH 500
-#endif
-#endif
-int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-short *yyssp;
-YYSTYPE *yyvsp;
-YYSTYPE yyval;
-YYSTYPE yylval;
-short yyss[YYSTACKSIZE];
-YYSTYPE yyvs[YYSTACKSIZE];
-#define yystacksize YYSTACKSIZE
-#line 121 "parser.y"
-
-void yyerror(char* s){
-    in->fatal(s);
-}
-
-int yylex(){
-    return in->scan();
-}
-
-void parse(int i, ostream &o){
-    char *     fnamebuf;
-    char *     token;
-
-    o << "/* Generated by re2c 0.5 on ";
-    time_t now = time(&now);
-    o.write(ctime(&now), 24);
-    o << " */\n";
-
-    in = new Scanner(i);
-
-    o << "#line " << in->line() << " \"";
-    if( fileName != NULL ) {
-       fnamebuf = strdup( fileName );
-    } else {
-       fnamebuf = strdup( "<stdin>" );
-    }
-    token = strtok( fnamebuf, "\\" );
-    for(;;) {
-       o << token;
-       token = strtok( NULL, "\\" );
-       if( token == NULL ) break;
-       o << "\\\\";
-    }
-    o << "\"\n";
-    free( fnamebuf );
-
-    while(in->echo(o)){
-       yyparse();
-       if(spec)
-           genCode(o, spec);
-       o << "#line " << in->line() << "\n";
-    }
-}
-#line 235 "y.tab.c"
-#define YYABORT goto yyabort
-#define YYREJECT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-int
-yyparse()
-{
-    register int yym, yyn, yystate;
-#if YYDEBUG
-    register char *yys;
-    extern char *getenv();
-
-    if (yys = getenv("YYDEBUG"))
-    {
-        yyn = *yys;
-        if (yyn >= '0' && yyn <= '9')
-            yydebug = yyn - '0';
-    }
-#endif
-
-    yynerrs = 0;
-    yyerrflag = 0;
-    yychar = (-1);
-
-    yyssp = yyss;
-    yyvsp = yyvs;
-    *yyssp = yystate = 0;
-
-yyloop:
-    if (yyn = yydefred[yystate]) goto yyreduce;
-    if (yychar < 0)
-    {
-        if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, reading %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-    }
-    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-    {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: state %d, shifting to state %d\n",
-                    YYPREFIX, yystate, yytable[yyn]);
-#endif
-        if (yyssp >= yyss + yystacksize - 1)
-        {
-            goto yyoverflow;
-        }
-        *++yyssp = yystate = yytable[yyn];
-        *++yyvsp = yylval;
-        yychar = (-1);
-        if (yyerrflag > 0)  --yyerrflag;
-        goto yyloop;
-    }
-    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-    {
-        yyn = yytable[yyn];
-        goto yyreduce;
-    }
-    if (yyerrflag) goto yyinrecovery;
-#ifdef lint
-    goto yynewerror;
-#endif
-yynewerror:
-    yyerror("syntax error");
-#ifdef lint
-    goto yyerrlab;
-#endif
-yyerrlab:
-    ++yynerrs;
-yyinrecovery:
-    if (yyerrflag < 3)
-    {
-        yyerrflag = 3;
-        for (;;)
-        {
-            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
-                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: state %d, error recovery shifting\
- to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
-#endif
-                if (yyssp >= yyss + yystacksize - 1)
-                {
-                    goto yyoverflow;
-                }
-                *++yyssp = yystate = yytable[yyn];
-                *++yyvsp = yylval;
-                goto yyloop;
-            }
-            else
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: error recovery discarding state %d\n",
-                            YYPREFIX, *yyssp);
-#endif
-                if (yyssp <= yyss) goto yyabort;
-                --yyssp;
-                --yyvsp;
-            }
-        }
-    }
-    else
-    {
-        if (yychar == 0) goto yyabort;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-        yychar = (-1);
-        goto yyloop;
-    }
-yyreduce:
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
-                YYPREFIX, yystate, yyn, yyrule[yyn]);
-#endif
-    yym = yylen[yyn];
-    yyval = yyvsp[1-yym];
-    switch (yyn)
-    {
-case 1:
-#line 40 "parser.y"
-{ accept = 0;
-                 spec = NULL; }
-break;
-case 2:
-#line 43 "parser.y"
-{ spec = spec? mkAlt(spec, yyvsp[0].regexp) : yyvsp[0].regexp; }
-break;
-case 4:
-#line 48 "parser.y"
-{ if(yyvsp[-3].symbol->re)
-                     in->fatal("sym already defined");
-                 yyvsp[-3].symbol->re = yyvsp[-1].regexp; }
-break;
-case 5:
-#line 54 "parser.y"
-{ yyval.regexp = new RuleOp(yyvsp[-2].regexp, yyvsp[-1].regexp, yyvsp[0].token, accept++); }
-break;
-case 6:
-#line 58 "parser.y"
-{ yyval.regexp = new NullOp; }
-break;
-case 7:
-#line 60 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 8:
-#line 64 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 9:
-#line 66 "parser.y"
-{ yyval.regexp =  mkAlt(yyvsp[-2].regexp, yyvsp[0].regexp); }
-break;
-case 10:
-#line 70 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 11:
-#line 72 "parser.y"
-{ yyval.regexp =  mkDiff(yyvsp[-2].regexp, yyvsp[0].regexp);
-                 if(!yyval.regexp)
-                      in->fatal("can only difference char sets");
-               }
-break;
-case 12:
-#line 79 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 13:
-#line 81 "parser.y"
-{ yyval.regexp = new CatOp(yyvsp[-1].regexp, yyvsp[0].regexp); }
-break;
-case 14:
-#line 85 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 15:
-#line 87 "parser.y"
-{
-                   switch(yyvsp[0].op){
-                   case '*':
-                       yyval.regexp = mkAlt(new CloseOp(yyvsp[-1].regexp), new NullOp());
-                       break;
-                   case '+':
-                       yyval.regexp = new CloseOp(yyvsp[-1].regexp);
-                       break;
-                   case '?':
-                       yyval.regexp = mkAlt(yyvsp[-1].regexp, new NullOp());
-                       break;
-                   }
-               }
-break;
-case 16:
-#line 103 "parser.y"
-{ yyval.op = yyvsp[0].op; }
-break;
-case 17:
-#line 105 "parser.y"
-{ yyval.op = (yyvsp[-1].op == yyvsp[0].op) ? yyvsp[-1].op : '*'; }
-break;
-case 18:
-#line 109 "parser.y"
-{ if(!yyvsp[0].symbol->re)
-                     in->fatal("can't find symbol");
-                 yyval.regexp = yyvsp[0].symbol->re; }
-break;
-case 19:
-#line 113 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 20:
-#line 115 "parser.y"
-{ yyval.regexp = yyvsp[0].regexp; }
-break;
-case 21:
-#line 117 "parser.y"
-{ yyval.regexp = yyvsp[-1].regexp; }
-break;
-#line 476 "y.tab.c"
-    }
-    yyssp -= yym;
-    yystate = *yyssp;
-    yyvsp -= yym;
-    yym = yylhs[yyn];
-    if (yystate == 0 && yym == 0)
-    {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: after reduction, shifting from state 0 to\
- state %d\n", YYPREFIX, YYFINAL);
-#endif
-        yystate = YYFINAL;
-        *++yyssp = YYFINAL;
-        *++yyvsp = yyval;
-        if (yychar < 0)
-        {
-            if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-            if (yydebug)
-            {
-                yys = 0;
-                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-                if (!yys) yys = "illegal-symbol";
-                printf("%sdebug: state %d, reading %d (%s)\n",
-                        YYPREFIX, YYFINAL, yychar, yys);
-            }
-#endif
-        }
-        if (yychar == 0) goto yyaccept;
-        goto yyloop;
-    }
-    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
-        yystate = yytable[yyn];
-    else
-        yystate = yydgoto[yym];
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
-#endif
-    if (yyssp >= yyss + yystacksize - 1)
-    {
-        goto yyoverflow;
-    }
-    *++yyssp = yystate;
-    *++yyvsp = yyval;
-    goto yyloop;
-yyoverflow:
-    yyerror("yacc stack overflow");
-yyabort:
-    return (1);
-yyaccept:
-    return (0);
-}
diff --git a/tools/re2c/re2c.c b/tools/re2c/re2c.c
new file mode 100644 (file)
index 0000000..9e22c23
--- /dev/null
@@ -0,0 +1,54 @@
+#include <fstream.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "globals.h"
+#include "parser.h"
+#include "dfa.h"
+
+char *fileName;
+bool sFlag = false;
+bool bFlag = false;
+
+int main(unsigned argc, char *argv[]){
+    fileName = NULL;
+    if(argc == 1)
+       goto usage;
+    while(--argc > 1){
+       char *p = *++argv;
+       while(*++p != '\0'){
+           switch(*p){
+           case 'e':
+               xlat = asc2ebc;
+               talx = ebc2asc;
+               break;
+           case 's':
+               sFlag = true;
+               break;
+           case 'b':
+               sFlag = true;
+               bFlag = true;
+               break;
+           default:
+               goto usage;
+           }
+       }
+    }
+    fileName = *++argv;
+    int fd;
+    if(fileName[0] == '-' && fileName[1] == '\0'){
+       fileName = "<stdin>";
+       fd = 0;
+    } else {
+       if((fd = open(fileName, O_RDONLY)) < 0){
+           cerr << "can't open " << fileName << "\n";
+           return 1;
+       }
+    }
+    parse(fd, cout);
+    return 0;
+usage:
+    cerr << "usage: re2c [-esb] name\n";
+    return 2;
+}
diff --git a/tools/re2c/scanner.cc b/tools/re2c/scanner.cc
deleted file mode 100644 (file)
index 19b4259..0000000
+++ /dev/null
@@ -1,470 +0,0 @@
-/* Generated by re2c 0.5 on Sat May 15 11:35:52 1999 */
-#line 1 "scanner.re"
-#include <stdlib.h>
-#include <string.h>
-#include <iostream.h>
-#include <unistd.h>
-#include "scanner.h"
-#include "parser.h"
-#include "y.tab.h"
-
-extern YYSTYPE yylval;
-
-#define        BSIZE   8192
-
-#define        YYCTYPE         uchar
-#define        YYCURSOR        cursor
-#define        YYLIMIT         lim
-#define        YYMARKER        ptr
-#define        YYFILL(n)       {cursor = fill(cursor);}
-
-#define        RETURN(i)       {cur = cursor; return i;}
-
-
-Scanner::Scanner(int i) : in(i),
-       bot(NULL), tok(NULL), ptr(NULL), cur(NULL), pos(NULL), lim(NULL),
-       top(NULL), eof(NULL), tchar(0), tline(0), cline(1) {
-    ;
-}
-
-uchar *Scanner::fill(uchar *cursor){
-    if(!eof){
-       uint cnt = tok - bot;
-       if(cnt){
-           memcpy(bot, tok, lim - tok);
-           tok = bot;
-           ptr -= cnt;
-           cursor -= cnt;
-           pos -= cnt;
-           lim -= cnt;
-       }
-       if((top - lim) < BSIZE){
-           uchar *buf = new uchar[(lim - bot) + BSIZE];
-           memcpy(buf, tok, lim - tok);
-           tok = buf;
-           ptr = &buf[ptr - bot];
-           cursor = &buf[cursor - bot];
-           pos = &buf[pos - bot];
-           lim = &buf[lim - bot];
-           top = &lim[BSIZE];
-           delete [] bot;
-           bot = buf;
-       }
-       if((cnt = read(in, (char*) lim, BSIZE)) != BSIZE){
-           eof = &lim[cnt]; *eof++ = '\n';
-       }
-       lim += cnt;
-    }
-    return cursor;
-}
-
-#line 68
-
-
-int Scanner::echo(ostream &out){
-    uchar *cursor = cur;
-    tok = cursor;
-echo:
-{
-       YYCTYPE yych;
-       unsigned int yyaccept;
-       goto yy0;
-yy1:   ++YYCURSOR;
-yy0:
-       if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
-       yych = *YYCURSOR;
-       if(yych == '\n')        goto yy4;
-       if(yych != '/') goto yy6;
-yy2:   yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == '*') goto yy7;
-yy3:
-#line 82
-       { goto echo; }
-yy4:   yych = *++YYCURSOR;
-yy5:
-#line 78
-       { if(cursor == eof) RETURN(0);
-                                 out.write(tok, cursor - tok);
-                                 tok = pos = cursor; cline++;
-                                 goto echo; }
-yy6:   yych = *++YYCURSOR;
-       goto yy3;
-yy7:   yych = *++YYCURSOR;
-       if(yych == '!') goto yy9;
-yy8:   YYCURSOR = YYMARKER;
-       switch(yyaccept){
-       case 0: goto yy3;
-       }
-yy9:   yych = *++YYCURSOR;
-       if(yych != 'r') goto yy8;
-yy10:  yych = *++YYCURSOR;
-       if(yych != 'e') goto yy8;
-yy11:  yych = *++YYCURSOR;
-       if(yych != '2') goto yy8;
-yy12:  yych = *++YYCURSOR;
-       if(yych != 'c') goto yy8;
-yy13:  yych = *++YYCURSOR;
-yy14:
-#line 75
-       { out.write(tok, &cursor[-7] - tok);
-                                 tok = cursor;
-                                 RETURN(1); }
-}
-#line 83
-
-}
-
-
-int Scanner::scan(){
-    uchar *cursor = cur;
-    uint depth;
-
-scan:
-    tchar = cursor - pos;
-    tline = cline;
-    tok = cursor;
-{
-       YYCTYPE yych;
-       unsigned int yyaccept;
-       goto yy15;
-yy16:  ++YYCURSOR;
-yy15:
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if(yych <= ':'){
-               if(yych <= '"'){
-                       if(yych <= '\n'){
-                               if(yych <= '\b')        goto yy35;
-                               if(yych <= '\t')        goto yy31;
-                               goto yy33;
-                       } else {
-                               if(yych == ' ') goto yy31;
-                               if(yych <= '!') goto yy35;
-                               goto yy23;
-                       }
-               } else {
-                       if(yych <= '*'){
-                               if(yych <= '\'')        goto yy35;
-                               if(yych <= ')') goto yy27;
-                               goto yy21;
-                       } else {
-                               if(yych <= '+') goto yy28;
-                               if(yych == '/') goto yy19;
-                               goto yy35;
-                       }
-               }
-       } else {
-               if(yych <= 'Z'){
-                       if(yych <= '='){
-                               if(yych == '<') goto yy35;
-                               goto yy27;
-                       } else {
-                               if(yych == '?') goto yy28;
-                               if(yych <= '@') goto yy35;
-                               goto yy29;
-                       }
-               } else {
-                       if(yych <= '`'){
-                               if(yych <= '[') goto yy25;
-                               if(yych <= '\\')        goto yy27;
-                               goto yy35;
-                       } else {
-                               if(yych <= 'z') goto yy29;
-                               if(yych <= '{') goto yy17;
-                               if(yych <= '|') goto yy27;
-                               goto yy35;
-                       }
-               }
-       }
-yy17:  yych = *++YYCURSOR;
-yy18:
-#line 96
-       { depth = 1;
-                                 goto code;
-                               }
-yy19:  yych = *++YYCURSOR;
-       if(yych == '*') goto yy54;
-yy20:
-#line 115
-       { RETURN(*tok); }
-yy21:  yych = *++YYCURSOR;
-       if(yych == '/') goto yy52;
-yy22:
-#line 117
-       { yylval.op = *tok;
-                                 RETURN(CLOSE); }
-yy23:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych != '\n')        goto yy48;
-yy24:
-#line 108
-       { fatal("bad string"); }
-yy25:  yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych != '\n')        goto yy42;
-yy26:
-#line 113
-       { fatal("bad character constant"); }
-yy27:  yych = *++YYCURSOR;
-       goto yy20;
-yy28:  yych = *++YYCURSOR;
-       goto yy22;
-yy29:  yych = *++YYCURSOR;
-       goto yy40;
-yy30:
-#line 120
-       { cur = cursor;
-                                 yylval.symbol = Symbol::find(token());
-                                 return ID; }
-yy31:  yych = *++YYCURSOR;
-       goto yy38;
-yy32:
-#line 124
-       { goto scan; }
-yy33:  yych = *++YYCURSOR;
-yy34:
-#line 126
-       { if(cursor == eof) RETURN(0);
-                                 pos = cursor; cline++;
-                                 goto scan;
-                               }
-yy35:  yych = *++YYCURSOR;
-yy36:
-#line 131
-       { cerr << "unexpected character: " << *tok << endl;
-                                 goto scan;
-                               }
-yy37:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy38:  if(yych == '\t')        goto yy37;
-       if(yych == ' ') goto yy37;
-       goto yy32;
-yy39:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy40:  if(yych <= '@'){
-               if(yych <= '/') goto yy30;
-               if(yych <= '9') goto yy39;
-               goto yy30;
-       } else {
-               if(yych <= 'Z') goto yy39;
-               if(yych <= '`') goto yy30;
-               if(yych <= 'z') goto yy39;
-               goto yy30;
-       }
-yy41:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy42:  if(yych <= '['){
-               if(yych != '\n')        goto yy41;
-       } else {
-               if(yych <= '\\')        goto yy44;
-               if(yych <= ']') goto yy45;
-               goto yy41;
-       }
-yy43:  YYCURSOR = YYMARKER;
-       switch(yyaccept){
-       case 0: goto yy24;
-       case 1: goto yy26;
-       }
-yy44:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if(yych == '\n')        goto yy43;
-       goto yy41;
-yy45:  yych = *++YYCURSOR;
-yy46:
-#line 110
-       { cur = cursor;
-                                 yylval.regexp = ranToRE(token());
-                                 return RANGE; }
-yy47:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy48:  if(yych <= '!'){
-               if(yych == '\n')        goto yy43;
-               goto yy47;
-       } else {
-               if(yych <= '"') goto yy50;
-               if(yych != '\\')        goto yy47;
-       }
-yy49:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if(yych == '\n')        goto yy43;
-       goto yy47;
-yy50:  yych = *++YYCURSOR;
-yy51:
-#line 105
-       { cur = cursor;
-                                 yylval.regexp = strToRE(token());
-                                 return STRING; }
-yy52:  yych = *++YYCURSOR;
-yy53:
-#line 102
-       { tok = cursor;
-                                 RETURN(0); }
-yy54:  yych = *++YYCURSOR;
-yy55:
-#line 99
-       { depth = 1;
-                                 goto comment; }
-}
-#line 134
-
-
-code:
-{
-       YYCTYPE yych;
-       unsigned int yyaccept;
-       goto yy56;
-yy57:  ++YYCURSOR;
-yy56:
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if(yych <= '&'){
-               if(yych <= '\n'){
-                       if(yych <= '\t')        goto yy64;
-                       goto yy62;
-               } else {
-                       if(yych == '"') goto yy66;
-                       goto yy64;
-               }
-       } else {
-               if(yych <= '{'){
-                       if(yych <= '\'')        goto yy67;
-                       if(yych <= 'z') goto yy64;
-                       goto yy60;
-               } else {
-                       if(yych != '}') goto yy64;
-               }
-       }
-yy58:  yych = *++YYCURSOR;
-yy59:
-#line 138
-       { if(--depth == 0){
-                                       cur = cursor;
-                                       yylval.token = new Token(token(), tline);
-                                       return CODE;
-                                 }
-                                 goto code; }
-yy60:  yych = *++YYCURSOR;
-yy61:
-#line 144
-       { ++depth;
-                                 goto code; }
-yy62:  yych = *++YYCURSOR;
-yy63:
-#line 146
-       { if(cursor == eof) fatal("missing '}'");
-                                 pos = cursor; cline++;
-                                 goto code;
-                               }
-yy64:  yych = *++YYCURSOR;
-yy65:
-#line 150
-       { goto code; }
-yy66:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == '\n')        goto yy65;
-       goto yy73;
-yy67:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == '\n')        goto yy65;
-       goto yy69;
-yy68:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy69:  if(yych <= '&'){
-               if(yych != '\n')        goto yy68;
-       } else {
-               if(yych <= '\'')        goto yy64;
-               if(yych == '\\')        goto yy71;
-               goto yy68;
-       }
-yy70:  YYCURSOR = YYMARKER;
-       switch(yyaccept){
-       case 0: goto yy65;
-       }
-yy71:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if(yych == '\n')        goto yy70;
-       goto yy68;
-yy72:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy73:  if(yych <= '!'){
-               if(yych == '\n')        goto yy70;
-               goto yy72;
-       } else {
-               if(yych <= '"') goto yy64;
-               if(yych != '\\')        goto yy72;
-       }
-yy74:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if(yych == '\n')        goto yy70;
-       goto yy72;
-}
-#line 151
-
-
-comment:
-{
-       YYCTYPE yych;
-       unsigned int yyaccept;
-       goto yy75;
-yy76:  ++YYCURSOR;
-yy75:
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if(yych <= ')'){
-               if(yych == '\n')        goto yy80;
-               goto yy82;
-       } else {
-               if(yych <= '*') goto yy77;
-               if(yych == '/') goto yy79;
-               goto yy82;
-       }
-yy77:  yych = *++YYCURSOR;
-       if(yych == '/') goto yy85;
-yy78:
-#line 165
-       { goto comment; }
-yy79:  yych = *++YYCURSOR;
-       if(yych == '*') goto yy83;
-       goto yy78;
-yy80:  yych = *++YYCURSOR;
-yy81:
-#line 161
-       { if(cursor == eof) RETURN(0);
-                                 tok = pos = cursor; cline++;
-                                 goto comment;
-                               }
-yy82:  yych = *++YYCURSOR;
-       goto yy78;
-yy83:  yych = *++YYCURSOR;
-yy84:
-#line 159
-       { ++depth;
-                                 goto comment; }
-yy85:  yych = *++YYCURSOR;
-yy86:
-#line 155
-       { if(--depth == 0)
-                                       goto scan;
-                                   else
-                                       goto comment; }
-}
-#line 166
-
-}
-
-void Scanner::fatal(char *msg){
-    cerr << "line " << tline << ", column " << (tchar + 1) << ": "
-       << msg << endl;
-    exit(1);
-}
similarity index 100%
rename from tools/re2c/substr.cc
rename to tools/re2c/substr.c
diff --git a/tools/re2c/y.tab.h b/tools/re2c/y.tab.h
deleted file mode 100644 (file)
index d7b3702..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#define CLOSE 257
-#define ID 258
-#define CODE 259
-#define RANGE 260
-#define STRING 261
-typedef union {
-    Symbol     *symbol;
-    RegExp     *regexp;
-    Token      *token;
-    char       op;
-} YYSTYPE;
-extern YYSTYPE yylval;