diff regexParser/regexParser.h @ 190:3e8e5780ad4a pairPro

change node::State to State
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Fri, 25 Dec 2015 15:30:52 +0900
parents 109d22faf7b5
children 02031fb73af8
line wrap: on
line diff
--- a/regexParser/regexParser.h	Fri Dec 25 14:42:31 2015 +0900
+++ b/regexParser/regexParser.h	Fri Dec 25 15:30:52 2015 +0900
@@ -32,17 +32,20 @@
     BitVector nextState;
 } CharClass, *CharClassPtr;
 
+struct node;
+
+typedef struct state {
+    BitVector bitState;
+    CharClassPtr cc;
+    struct node *node;
+    struct state *next;
+} State, *StatePtr;
+
 typedef struct node {
     unsigned char tokenType;
     CharClassPtr cc;
     int stateNum;
     int nextStateNum;
-    typedef struct state {
-        BitVector bitState;
-        CharClassPtr cc;
-        struct node *node;
-        struct state *next;
-    } State, *StatePtr;
     StatePtr state;
     struct node *left;
     struct node *right;
@@ -56,11 +59,11 @@
 typedef struct transitionGenerator {
     long stateMax;
     StateStackPtr stack;
-    node::StatePtr state;
-    node::StatePtr stateArray;
-    node::StatePtr currentState;
-    node::StatePtr startState;
-    node::StatePtr endState;
+    StatePtr state;
+    StatePtr stateArray;
+    StatePtr currentState;
+    StatePtr startState;
+    StatePtr endState;
 } TransitionGenerator, *TransitionGeneratorPtr;
 
 typedef struct tgValue {
@@ -68,7 +71,7 @@
     int stateNum;
     int stateBegin;
     int stateEnd;
-    node::StatePtr tgState;
+    StatePtr tgState;
     TransitionGeneratorPtr tg;
 } TGValue, *TGValuePtr;
 
@@ -97,5 +100,7 @@
     int stateNumber;
 } RegexInfo, *RegexInfoPtr;
 #endif
-NodePtr createNode(RegexInfoPtr ri,unsigned char type,CharClassPtr cc, NodePtr left, NodePtr right);
+
+extern NodePtr createNode(RegexInfoPtr ri,unsigned char type,CharClassPtr cc, NodePtr left, NodePtr right);
 extern CharClassPtr createCharClassRange(unsigned long begin, unsigned long end,unsigned long state, CharClassPtr left, CharClassPtr right);
+extern NodePtr regex(RegexInfoPtr);