Split the XML parsing, reduced fsm, and the code generation data structures out
authorthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Fri, 2 Feb 2007 03:50:18 +0000 (03:50 +0000)
committerthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Fri, 2 Feb 2007 03:50:18 +0000 (03:50 +0000)
of rlcodegen.

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

12 files changed:
configure
configure.in
redfsm/Makefile.in [new file with mode: 0644]
redfsm/gendata.cpp [moved from rlcodegen/gendata.cpp with 100% similarity]
redfsm/gendata.h [moved from rlcodegen/gendata.h with 100% similarity]
redfsm/redfsm.cpp [moved from rlcodegen/redfsm.cpp with 100% similarity]
redfsm/redfsm.h [moved from rlcodegen/redfsm.h with 100% similarity]
redfsm/xmlparse.kh [moved from rlcodegen/xmlparse.kh with 100% similarity]
redfsm/xmlparse.kl [moved from rlcodegen/xmlparse.kl with 100% similarity]
redfsm/xmlscan.rl [moved from rlcodegen/xmlscan.rl with 100% similarity]
redfsm/xmltags.gperf [moved from rlcodegen/xmltags.gperf with 100% similarity]
rlcodegen/Makefile.in

index 7b8764b..f763687 100755 (executable)
--- a/configure
+++ b/configure
@@ -2856,7 +2856,7 @@ _ACEOF
 
 fi
 
-                                                            ac_config_files="$ac_config_files Makefile common/Makefile ragel/Makefile rlcodegen/Makefile doc/Makefile test/Makefile"
+                                                                      ac_config_files="$ac_config_files Makefile common/Makefile ragel/Makefile redfsm/Makefile rlcodegen/Makefile doc/Makefile test/Makefile"
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
@@ -3384,6 +3384,7 @@ do
   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
   "common/Makefile" ) CONFIG_FILES="$CONFIG_FILES common/Makefile" ;;
   "ragel/Makefile" ) CONFIG_FILES="$CONFIG_FILES ragel/Makefile" ;;
+  "redfsm/Makefile" ) CONFIG_FILES="$CONFIG_FILES redfsm/Makefile" ;;
   "rlcodegen/Makefile" ) CONFIG_FILES="$CONFIG_FILES rlcodegen/Makefile" ;;
   "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
   "test/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
index a441f39..3a19d53 100644 (file)
@@ -105,6 +105,6 @@ if test -n "$TXL"; then
 fi
 
 dnl write output files
-AC_OUTPUT(Makefile common/Makefile ragel/Makefile rlcodegen/Makefile doc/Makefile test/Makefile)
+AC_OUTPUT(Makefile common/Makefile ragel/Makefile redfsm/Makefile rlcodegen/Makefile doc/Makefile test/Makefile)
 
 echo "configuration of ragel complete"
diff --git a/redfsm/Makefile.in b/redfsm/Makefile.in
new file mode 100644 (file)
index 0000000..f086338
--- /dev/null
@@ -0,0 +1,81 @@
+#
+#   Copyright 2001-2006 Adrian Thurston <thurston@cs.queensu.ca>
+#
+
+#   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 
+
+INCS += -I../common -I../aapl
+DEFS +=
+
+CFLAGS += -g -Wall
+LDFLAGS +=
+
+CC_SRCS = redfsm.cpp gendata.cpp xmltags.cpp xmlscan.cpp xmlparse.cpp
+
+GEN_SRC = xmltags.cpp xmlscan.cpp xmlparse.cpp xmlparse.h
+
+BUILD_PARSERS = @BUILD_PARSERS@
+
+#*************************************
+
+# Programs
+CXX = @CXX@
+
+# Get objects and dependencies from sources.
+OBJS = $(CC_SRCS:%.cpp=%.o)
+DEPS = $(CC_SRCS:%.cpp=.%.d)
+
+# Get the version info.
+include ../version.mk
+
+# Rules.
+all: redfsm.a
+
+redfsm.a: $(GEN_SRC) $(OBJS)
+       ar -cr $@ $(OBJS) 
+
+ifeq ($(BUILD_PARSERS),true)
+
+xmlparse.h: xmlparse.kh
+       kelbt -o $@ $<
+
+xmlparse.cpp: xmlparse.kl xmlparse.kh
+       kelbt -o $@ $<
+
+xmlscan.cpp: xmlscan.rl
+       ragel xmlscan.rl | rlcodegen -G2 -o xmlscan.cpp
+
+xmltags.cpp: xmltags.gperf
+       gperf -L C++ -t $< > $@
+
+endif
+
+%.o: %.cpp
+       @$(CXX) -M $(DEFS) $(INCS) $< > .$*.d
+       $(CXX) -c $(CFLAGS) $(DEFS) $(INCS) -o $@ $<
+
+distclean: clean
+       rm -f Makefile
+
+ifeq ($(BUILD_PARSERS),true)
+EXTRA_CLEAN = $(GEN_SRC)
+endif
+
+clean:
+       rm -f tags .*.d *.o rlcodegen $(EXTRA_CLEAN)
+
+-include $(DEPS)
similarity index 100%
rename from rlcodegen/gendata.cpp
rename to redfsm/gendata.cpp
similarity index 100%
rename from rlcodegen/gendata.h
rename to redfsm/gendata.h
similarity index 100%
rename from rlcodegen/redfsm.cpp
rename to redfsm/redfsm.cpp
similarity index 100%
rename from rlcodegen/redfsm.h
rename to redfsm/redfsm.h
similarity index 100%
rename from rlcodegen/xmlparse.kh
rename to redfsm/xmlparse.kh
similarity index 100%
rename from rlcodegen/xmlparse.kl
rename to redfsm/xmlparse.kl
similarity index 100%
rename from rlcodegen/xmlscan.rl
rename to redfsm/xmlscan.rl
similarity index 100%
rename from rlcodegen/xmltags.gperf
rename to redfsm/xmltags.gperf
index c6a9838..6060456 100644 (file)
 #   along with Ragel; if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 
-INCS += -I../common -I../aapl
+INCS += -I../common -I../redfsm -I../aapl
 DEFS +=
 
 CFLAGS += -g -Wall
 LDFLAGS +=
 
-CC_SRCS = \
-       gendata.cpp xmltags.cpp xmlscan.cpp xmlparse.cpp \
-       main.cpp redfsm.cpp gvdotgen.cpp fsmcodegen.cpp \
+CC_SRCS = main.cpp gvdotgen.cpp fsmcodegen.cpp \
        tabcodegen.cpp ftabcodegen.cpp flatcodegen.cpp \
        fflatcodegen.cpp gotocodegen.cpp fgotocodegen.cpp \
        ipgotocodegen.cpp splitcodegen.cpp javacodegen.cpp
 
 GEN_SRC = xmltags.cpp xmlscan.cpp xmlparse.cpp xmlparse.h
 
+REDFSM = ../redfsm/redfsm.a
+
 LIBS += @LIBS@
 PREFIX += @prefix@
 
-BUILD_PARSERS = @BUILD_PARSERS@
-
 #*************************************
 
 # Programs
@@ -51,26 +49,15 @@ DEPS = $(CC_SRCS:%.cpp=.%.d)
 include ../version.mk
 
 # Rules.
-all: rlcodegen
-
-rlcodegen: $(GEN_SRC) $(OBJS)
-       $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
-
-ifeq ($(BUILD_PARSERS),true)
+all: redfsm rlcodegen
 
-xmlparse.h: xmlparse.kh
-       kelbt -o $@ $<
+rlcodegen: $(REDFSM) $(OBJS)
+       $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(REDFSM) $(LIBS)
 
-xmlparse.cpp: xmlparse.kl xmlparse.kh
-       kelbt -o $@ $<
+.PHONY: redfsm
 
-xmlscan.cpp: xmlscan.rl
-       ragel xmlscan.rl | rlcodegen -G2 -o xmlscan.cpp
-
-xmltags.cpp: xmltags.gperf
-       gperf -L C++ -t $< > $@
-
-endif
+redfsm:
+       @cd ../redfsm && $(MAKE) 
 
 %.o: %.cpp
        @$(CXX) -M $(DEFS) $(INCS) $< > .$*.d
@@ -79,10 +66,6 @@ endif
 distclean: clean
        rm -f Makefile
 
-ifeq ($(BUILD_PARSERS),true)
-EXTRA_CLEAN = $(GEN_SRC)
-endif
-
 clean:
        rm -f tags .*.d *.o rlcodegen $(EXTRA_CLEAN)