tizen 2.3.1 release
[external/ragel.git] / ragel / xmlcodegen.h
index 22d6dec..d20d6ea 100644 (file)
@@ -19,8 +19,8 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
  */
 
-#ifndef _XMLDOTGEN_H
-#define _XMLDOTGEN_H
+#ifndef _XMLCODEGEN_H
+#define _XMLCODEGEN_H
 
 #include <iostream>
 #include "avltree.h"
@@ -33,6 +33,7 @@ struct TransAp;
 struct FsmAp;
 struct ParseData;
 struct GenInlineList;
+struct CodeGenData;
 
 struct RedActionTable
 :
@@ -80,7 +81,7 @@ struct NextRedTrans
 
 struct GenBase
 {
-       GenBase( char *fsmName, ParseData *pd, FsmAp *fsm, XmlParser &xmlParser );
+       GenBase( char *fsmName, ParseData *pd, FsmAp *fsm );
 
        void appendTrans( TransListVect &outList, Key lowKey, Key highKey, TransAp *trans );
        void reduceActionTables();
@@ -88,7 +89,6 @@ struct GenBase
        char *fsmName;
        ParseData *pd;
        FsmAp *fsm;
-       XmlParser &xmlParser;
 
        ActionTableMap actionTableMap;
        int nextActionTableId;
@@ -97,8 +97,7 @@ struct GenBase
 class XMLCodeGen : protected GenBase
 {
 public:
-       XMLCodeGen( char *fsmName, ParseData *pd, FsmAp *fsm, 
-                       std::ostream &out, XmlParser &xmlParser );
+       XMLCodeGen( char *fsmName, ParseData *pd, FsmAp *fsm, std::ostream &out );
 
        void writeXML( );
 
@@ -142,7 +141,7 @@ private:
 class BackendGen : protected GenBase
 {
 public:
-       BackendGen( char *fsmName, ParseData *pd, FsmAp *fsm, XmlParser &xmlParser );
+       BackendGen( char *fsmName, ParseData *pd, FsmAp *fsm, CodeGenData *cgd );
        void makeBackend( );
 
 private:
@@ -158,7 +157,7 @@ private:
        void makeSetAct( GenInlineList *outList, long lmId );
        void makeSubList( GenInlineList *outList, InlineList *inlineList, 
                        GenInlineItem::Type type );
-       void makeTargetItem( GenInlineList *outList, long targetId, GenInlineItem::Type type );
+       void makeTargetItem( GenInlineList *outList, NameInst *nameTarg, GenInlineItem::Type type );
        void makeExecGetTokend( GenInlineList *outList );
        void makeExports();
        void makeMachine();
@@ -175,7 +174,19 @@ private:
        void makeStateConditions( StateAp *state );
        void makeTransList( StateAp *state );
        void makeTrans( Key lowKey, Key highKey, TransAp *trans );
-};
 
+       void close_ragel_def();
+
+       CodeGenData *cgd;
+
+       /* Collected during parsing. */
+       int curAction;
+       int curActionTable;
+       int curTrans;
+       int curState;
+       int curCondSpace;
+       int curStateCond;
+
+};
 
-#endif /* _XMLDOTGEN_H */
+#endif