From 0dcde1bc43a680a95a7004a4ae15227736ff085b Mon Sep 17 00:00:00 2001 From: thurston Date: Sat, 15 Nov 2008 03:43:38 +0000 Subject: [PATCH] More cleanup ... dot and ruby file names. git-svn-id: http://svn.complang.org/ragel/trunk@570 052ea7fc-9027-0410-9066-f65837a77df0 --- ragel/Makefile.in | 6 +- ragel/{dot-gvdotgen.cpp => dot-codegen.cpp} | 2 +- ragel/{dot-gvdotgen.h => dot-codegen.h} | 0 ...uby-rbx-gotocodegen.cpp => rbx-gotocodegen.cpp} | 5 +- .../{ruby-rbx-gotocodegen.h => rbx-gotocodegen.h} | 0 ragel/ruby-codegen.cpp | 127 +++++++++++++++- ragel/ruby-flatcodegen.cpp | 2 +- ragel/ruby-ftabcodegen.cpp | 2 +- ragel/ruby-main.cpp | 162 --------------------- ragel/ruby-tabcodegen.cpp | 2 +- 10 files changed, 136 insertions(+), 172 deletions(-) rename ragel/{dot-gvdotgen.cpp => dot-codegen.cpp} (99%) rename ragel/{dot-gvdotgen.h => dot-codegen.h} (100%) rename ragel/{ruby-rbx-gotocodegen.cpp => rbx-gotocodegen.cpp} (99%) rename ragel/{ruby-rbx-gotocodegen.h => rbx-gotocodegen.h} (100%) delete mode 100644 ragel/ruby-main.cpp diff --git a/ragel/Makefile.in b/ragel/Makefile.in index 9a19a3a..1e405ad 100644 --- a/ragel/Makefile.in +++ b/ragel/Makefile.in @@ -34,12 +34,12 @@ CC_SRCS = \ cd-fflatcodegen.cpp cd-gotocodegen.cpp cd-fgotocodegen.cpp \ cd-ipgotocodegen.cpp cd-splitcodegen.cpp \ java-codegen.cpp \ - ruby-main.cpp ruby-codegen.cpp ruby-tabcodegen.cpp ruby-ftabcodegen.cpp \ - ruby-flatcodegen.cpp ruby-fflatcodegen.cpp ruby-rbx-gotocodegen.cpp \ + ruby-codegen.cpp ruby-tabcodegen.cpp ruby-ftabcodegen.cpp \ + ruby-flatcodegen.cpp ruby-fflatcodegen.cpp rbx-gotocodegen.cpp \ cs-fsmcodegen.cpp cs-tabcodegen.cpp cs-ftabcodegen.cpp cs-flatcodegen.cpp \ cs-fflatcodegen.cpp cs-gotocodegen.cpp cs-fgotocodegen.cpp \ cs-ipgotocodegen.cpp cs-splitcodegen.cpp \ - dot-gvdotgen.cpp + dot-codegen.cpp GEN_SRC = version.h rlscan.cpp rlparse.h rlparse.cpp \ xmltags.cpp xmlscan.cpp xmlparse.cpp xmlparse.h diff --git a/ragel/dot-gvdotgen.cpp b/ragel/dot-codegen.cpp similarity index 99% rename from ragel/dot-gvdotgen.cpp rename to ragel/dot-codegen.cpp index f6a86c5..2a3a991 100644 --- a/ragel/dot-gvdotgen.cpp +++ b/ragel/dot-codegen.cpp @@ -20,7 +20,7 @@ */ #include "ragel.h" -#include "dot-gvdotgen.h" +#include "dot-codegen.h" #include "gendata.h" using std::istream; diff --git a/ragel/dot-gvdotgen.h b/ragel/dot-codegen.h similarity index 100% rename from ragel/dot-gvdotgen.h rename to ragel/dot-codegen.h diff --git a/ragel/ruby-rbx-gotocodegen.cpp b/ragel/rbx-gotocodegen.cpp similarity index 99% rename from ragel/ruby-rbx-gotocodegen.cpp rename to ragel/rbx-gotocodegen.cpp index 6aa42e2..fe86a9a 100644 --- a/ragel/ruby-rbx-gotocodegen.cpp +++ b/ragel/rbx-gotocodegen.cpp @@ -22,8 +22,9 @@ #include #include -#include "ruby-rlgen-ruby.h" -#include "ruby-rbx-gotocodegen.h" + +#include "rbx-gotocodegen.h" +#include "ragel.h" #include "redfsm.h" #include "bstmap.h" #include "gendata.h" diff --git a/ragel/ruby-rbx-gotocodegen.h b/ragel/rbx-gotocodegen.h similarity index 100% rename from ragel/ruby-rbx-gotocodegen.h rename to ragel/rbx-gotocodegen.h diff --git a/ragel/ruby-codegen.cpp b/ragel/ruby-codegen.cpp index 8680387..4e8fab3 100644 --- a/ragel/ruby-codegen.cpp +++ b/ragel/ruby-codegen.cpp @@ -24,14 +24,139 @@ #include #include "redfsm.h" #include "gendata.h" -#include "ruby-rlgen-ruby.h" +#include "ragel.h" #include "ruby-codegen.h" +#include "xmlparse.h" +#include "pcheck.h" +#include "vector.h" +#include "version.h" +#include "common.h" + +#include "ragel.h" +#include "ruby-tabcodegen.h" +#include "ruby-ftabcodegen.h" +#include "ruby-flatcodegen.h" +#include "ruby-fflatcodegen.h" +#include "rbx-gotocodegen.h" using std::ostream; using std::ostringstream; using std::string; using std::cerr; using std::endl; +using std::istream; +using std::ifstream; +using std::ostream; +using std::ios; +using std::cin; +using std::cout; +using std::cerr; +using std::endl; + +/* Target ruby impl */ +extern RubyImplEnum rubyImpl; + +/* Target language and output style. */ +extern CodeStyleEnum codeStyle; + +/* Io globals. */ +extern istream *inStream; +extern ostream *outStream; +extern output_filter *outFilter; +extern const char *outputFileName; + +/* Graphviz dot file generation. */ +extern bool graphvizDone; + +extern int numSplitPartitions; + +/* + * Callbacks invoked by the XML data parser. + */ + +/* Invoked by the parser when the root element is opened. */ +ostream *rubyOpenOutput( const char *inputFile ) +{ + if ( hostLang->lang != HostLang::Ruby ) { + error() << "this code generator is for Ruby only" << endl; + exit(1); + } + + /* If the output format is code and no output file name is given, then + * make a default. */ + if ( outputFileName == 0 ) { + const char *ext = findFileExtension( inputFile ); + if ( ext != 0 && strcmp( ext, ".rh" ) == 0 ) + outputFileName = fileNameFromStem( inputFile, ".h" ); + else + outputFileName = fileNameFromStem( inputFile, ".rb" ); + } + + /* Make sure we are not writing to the same file as the input file. */ + if ( outputFileName != 0 && strcmp( inputFile, outputFileName ) == 0 ) { + error() << "output file \"" << outputFileName << + "\" is the same as the input file" << endl; + } + + if ( outputFileName != 0 ) { + /* Create the filter on the output and open it. */ + outFilter = new output_filter( outputFileName ); + outFilter->open( outputFileName, ios::out|ios::trunc ); + if ( !outFilter->is_open() ) { + error() << "error opening " << outputFileName << " for writing" << endl; + exit(1); + } + + /* Open the output stream, attaching it to the filter. */ + outStream = new ostream( outFilter ); + } + else { + /* Writing out ot std out. */ + outStream = &cout; + } + return outStream; +} + +/* Invoked by the parser when a ragel definition is opened. */ +CodeGenData *rubyMakeCodeGen( const char *sourceFileName, const char *fsmName, + ostream &out, bool wantComplete ) +{ + CodeGenData *codeGen = 0; + switch ( codeStyle ) { + case GenTables: + codeGen = new RubyTabCodeGen(out); + break; + case GenFTables: + codeGen = new RubyFTabCodeGen(out); + break; + case GenFlat: + codeGen = new RubyFlatCodeGen(out); + break; + case GenFFlat: + codeGen = new RubyFFlatCodeGen(out); + break; + case GenGoto: + if ( rubyImpl == Rubinius ) { + codeGen = new RbxGotoCodeGen(out); + } else { + cout << "Goto style is still _very_ experimental " + "and only supported using Rubinius.\n" + "You may want to enable the --rbx flag " + " to give it a try.\n"; + exit(1); + } + break; + default: + cout << "Invalid code style\n"; + exit(1); + break; + } + codeGen->sourceFileName = sourceFileName; + codeGen->fsmName = fsmName; + codeGen->wantComplete = wantComplete; + + return codeGen; +} void rubyLineDirective( ostream &out, const char *fileName, int line ) diff --git a/ragel/ruby-flatcodegen.cpp b/ragel/ruby-flatcodegen.cpp index 8925aae..3265baa 100644 --- a/ragel/ruby-flatcodegen.cpp +++ b/ragel/ruby-flatcodegen.cpp @@ -21,7 +21,7 @@ */ #include "ruby-flatcodegen.h" -#include "ruby-rlgen-ruby.h" +#include "ragel.h" #include "redfsm.h" #include "gendata.h" diff --git a/ragel/ruby-ftabcodegen.cpp b/ragel/ruby-ftabcodegen.cpp index a1dd613..d5bce48 100644 --- a/ragel/ruby-ftabcodegen.cpp +++ b/ragel/ruby-ftabcodegen.cpp @@ -24,7 +24,7 @@ #include #include "redfsm.h" #include "gendata.h" -#include "ruby-rlgen-ruby.h" +#include "ragel.h" #include "ruby-ftabcodegen.h" using std::ostream; diff --git a/ragel/ruby-main.cpp b/ragel/ruby-main.cpp deleted file mode 100644 index a7272c0..0000000 --- a/ragel/ruby-main.cpp +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright 2007 Victor Hugo Borja - * Copyright 2001-2007 Adrian Thurston - */ - -/* This file is part of Ragel. - * - * Ragel is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Ragel is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Ragel; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include -#include -#include -#include -#include - -#include "xmlparse.h" -#include "pcheck.h" -#include "vector.h" -#include "version.h" -#include "common.h" -#include "ruby-rlgen-ruby.h" -#include "ruby-tabcodegen.h" -#include "ruby-ftabcodegen.h" -#include "ruby-flatcodegen.h" -#include "ruby-fflatcodegen.h" -#include "ruby-rbx-gotocodegen.h" - -using std::istream; -using std::ifstream; -using std::ostream; -using std::ios; -using std::cin; -using std::cout; -using std::cerr; -using std::endl; - -/* Target ruby impl */ -extern RubyImplEnum rubyImpl; - -/* Target language and output style. */ -extern CodeStyleEnum codeStyle; - -/* Io globals. */ -extern istream *inStream; -extern ostream *outStream; -extern output_filter *outFilter; -extern const char *outputFileName; - -/* Graphviz dot file generation. */ -extern bool graphvizDone; - -extern int numSplitPartitions; - -/* - * Callbacks invoked by the XML data parser. - */ - -/* Invoked by the parser when the root element is opened. */ -ostream *rubyOpenOutput( const char *inputFile ) -{ - if ( hostLang->lang != HostLang::Ruby ) { - error() << "this code generator is for Ruby only" << endl; - exit(1); - } - - /* If the output format is code and no output file name is given, then - * make a default. */ - if ( outputFileName == 0 ) { - const char *ext = findFileExtension( inputFile ); - if ( ext != 0 && strcmp( ext, ".rh" ) == 0 ) - outputFileName = fileNameFromStem( inputFile, ".h" ); - else - outputFileName = fileNameFromStem( inputFile, ".rb" ); - } - - /* Make sure we are not writing to the same file as the input file. */ - if ( outputFileName != 0 && strcmp( inputFile, outputFileName ) == 0 ) { - error() << "output file \"" << outputFileName << - "\" is the same as the input file" << endl; - } - - if ( outputFileName != 0 ) { - /* Create the filter on the output and open it. */ - outFilter = new output_filter( outputFileName ); - outFilter->open( outputFileName, ios::out|ios::trunc ); - if ( !outFilter->is_open() ) { - error() << "error opening " << outputFileName << " for writing" << endl; - exit(1); - } - - /* Open the output stream, attaching it to the filter. */ - outStream = new ostream( outFilter ); - } - else { - /* Writing out ot std out. */ - outStream = &cout; - } - return outStream; -} - -/* Invoked by the parser when a ragel definition is opened. */ -CodeGenData *rubyMakeCodeGen( const char *sourceFileName, const char *fsmName, - ostream &out, bool wantComplete ) -{ - CodeGenData *codeGen = 0; - switch ( codeStyle ) { - case GenTables: - codeGen = new RubyTabCodeGen(out); - break; - case GenFTables: - codeGen = new RubyFTabCodeGen(out); - break; - case GenFlat: - codeGen = new RubyFlatCodeGen(out); - break; - case GenFFlat: - codeGen = new RubyFFlatCodeGen(out); - break; - case GenGoto: - if ( rubyImpl == Rubinius ) { - codeGen = new RbxGotoCodeGen(out); - } else { - cout << "Goto style is still _very_ experimental " - "and only supported using Rubinius.\n" - "You may want to enable the --rbx flag " - " to give it a try.\n"; - exit(1); - } - break; - default: - cout << "Invalid code style\n"; - exit(1); - break; - } - codeGen->sourceFileName = sourceFileName; - codeGen->fsmName = fsmName; - codeGen->wantComplete = wantComplete; - - return codeGen; -} - -/* - * Local Variables: - * mode: c++ - * indent-tabs-mode: 1 - * c-file-style: "bsd" - * End: - */ diff --git a/ragel/ruby-tabcodegen.cpp b/ragel/ruby-tabcodegen.cpp index af50841..ed43e69 100644 --- a/ragel/ruby-tabcodegen.cpp +++ b/ragel/ruby-tabcodegen.cpp @@ -24,7 +24,7 @@ #include #include "redfsm.h" #include "gendata.h" -#include "ruby-rlgen-ruby.h" +#include "ragel.h" #include "ruby-tabcodegen.h" using std::ostream; -- 2.7.4