Enabled rlgen-ruby in the top-level makefile. Merged the remaining parts of the
authorthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Sat, 3 Feb 2007 01:47:50 +0000 (01:47 +0000)
committerthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Sat, 3 Feb 2007 01:47:50 +0000 (01:47 +0000)
patch from Victor.

git-svn-id: http://svn.complang.org/ragel/trunk@68 052ea7fc-9027-0410-9066-f65837a77df0

Makefile.in
common/common.cpp
common/common.h
ragel/main.cpp
ragel/parsedata.cpp

index 6d11f17..3ab5f4f 100644 (file)
@@ -19,7 +19,7 @@
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 
 
-BUILD_SUBDIRS = common ragel redfsm rlcodegen rlgen-java
+BUILD_SUBDIRS = common ragel redfsm rlcodegen rlgen-java rlgen-ruby
 ALL_SUBDIRS = $(BUILD_SUBDIRS) test examples doc
 
 #*************************************
index 60c49ff..94fb98c 100644 (file)
@@ -55,9 +55,18 @@ HostType hostTypesJava[] =
        { "int",      0,  true,   INT_MIN,   INT_MAX,     4 },
 };
 
+HostType hostTypesRuby[] = 
+{
+       { "byte",     0,  true,   CHAR_MIN,  CHAR_MAX,    1 },
+       { "short",    0,  true,   SHRT_MIN,  SHRT_MAX,    2 },
+       { "char",     0,  false,  0,         USHRT_MAX,   2 },
+       { "int",      0,  true,   INT_MIN,   INT_MAX,     4 },
+};
+
 HostLang hostLangC =    { hostTypesC,    8, hostTypesC+0,    true };
 HostLang hostLangD =    { hostTypesD,    9, hostTypesD+2,    true };
 HostLang hostLangJava = { hostTypesJava, 4, hostTypesJava+2, false };
+HostLang hostLangRuby = { hostTypesRuby, 4, hostTypesRuby+2, false };
 
 HostLang *hostLang = &hostLangC;
 HostLangType hostLangType = CCode;
index 077a3f6..ca24db0 100644 (file)
@@ -114,7 +114,8 @@ enum HostLangType
 {
        CCode,
        DCode,
-       JavaCode
+       JavaCode,
+       RubyCode
 };
 
 extern HostLang *hostLang;
@@ -123,6 +124,7 @@ extern HostLangType hostLangType;
 extern HostLang hostLangC;
 extern HostLang hostLangD;
 extern HostLang hostLangJava;
+extern HostLang hostLangRuby;
 
 /* An abstraction of the key operators that manages key operations such as
  * comparison and increment according the signedness of the key. */
index 29f28ca..ac90dd5 100644 (file)
@@ -77,6 +77,7 @@ void usage()
 "   -C                   The host language is C, C++, Obj-C or Obj-C++ (default)\n"
 "   -D                   The host language is D\n"
 "   -J                   The host language is Java\n"
+"   -R                   The host language is Ruby\n"
        ;       
 }
 
@@ -211,6 +212,10 @@ int main(int argc, char **argv)
                                hostLangType = JavaCode;
                                hostLang = &hostLangJava;
                                break;
+                       case 'R':
+                               hostLangType = RubyCode;
+                               hostLang = &hostLangRuby;
+                               break;
 
                        /* Version and help. */
                        case 'v':
index 3209e28..4dca439 100644 (file)
@@ -1363,6 +1363,7 @@ void writeLanguage( std::ostream &out )
                case CCode:    out << "C"; break;
                case DCode:    out << "D"; break;
                case JavaCode: out << "Java"; break;
+               case RubyCode: out << "Ruby"; break;
        }
        out << "\"";