changeset 112:ec485345daf9 pairPro

some function use static
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Mon, 23 Nov 2015 15:54:19 +0900
parents 1d30f70702df
children ffef79514d3c
files c/regexParser/createRegexParser.cc c/regexParser/node.cc c/regexParser/transition.cc c/regexParser/transition.h
diffstat 4 files changed, 28 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/c/regexParser/createRegexParser.cc	Sat Nov 21 18:04:25 2015 +0900
+++ b/c/regexParser/createRegexParser.cc	Mon Nov 23 15:54:19 2015 +0900
@@ -2,11 +2,11 @@
 #include <stdio.h>
 #include "regexParser.h"
 
-NodePtr createNode(RegexInfoPtr,unsigned char,NodePtr,NodePtr);
-NodePtr charClass(RegexInfoPtr);
-NodePtr group(RegexInfoPtr);
-void token(RegexInfoPtr);
-NodePtr regexAtom(RegexInfoPtr);
+static NodePtr createNode(RegexInfoPtr,unsigned char,NodePtr,NodePtr);
+static NodePtr charClass(RegexInfoPtr);
+static NodePtr group(RegexInfoPtr);
+static void token(RegexInfoPtr);
+static NodePtr regexAtom(RegexInfoPtr);
 NodePtr regex(RegexInfoPtr);
 
 /**
@@ -15,11 +15,12 @@
  *     regexPosition(state)
  *     stateTransitionTable
  */
+
+static
 NodePtr createNode(RegexInfoPtr ri,unsigned char character, NodePtr left, NodePtr right) {
     NodePtr n = (NodePtr)malloc(sizeof(Node));
     if (n == NULL) {
-        fprintf(stderr, "Failed to allocate memory.\n");
-        exit(-1);
+        mallocFailedMessage();
     }
 
     n->tokenType = ri->tokenType;
@@ -44,11 +45,11 @@
 }
 
 // <charClass> ::= '['<literal>'-'<literal>']'
+static
 NodePtr charClass(RegexInfoPtr ri) {
     NodePtr n = (NodePtr)malloc(sizeof(Node));
     if (n == NULL) {
-        fprintf(stderr, "Failed to allocate memory.\n");
-        exit(-1);
+        mallocFailedMessage();
     }
     while (ri->ptr[0] == '-') {
         ri->ptr++;
@@ -57,6 +58,7 @@
 }
 
 // <literal> ::= [a-z][A-Z][0-9]
+static
 NodePtr literal(RegexInfoPtr ri) {
     NodePtr n = createNode(ri,ri->ptr[0],0,0);
     ri->ptr++;
@@ -64,12 +66,12 @@
 }
 
 // <group> ::= '('<regex>')'
+static
 NodePtr group(RegexInfoPtr ri) {
     return regex(ri);
 }
 
-
-
+static
 void token(RegexInfoPtr ri) {
     while (ri->ptr[0] != '\0') {
         if (ri->ptr[0] == '('){
@@ -124,6 +126,7 @@
 }
 
 // <regexAtom> ::= <literal>|<charClass>|<group>
+static
 NodePtr regexAtom(RegexInfoPtr ri) {
 
     token(ri);
--- a/c/regexParser/node.cc	Sat Nov 21 18:04:25 2015 +0900
+++ b/c/regexParser/node.cc	Mon Nov 23 15:54:19 2015 +0900
@@ -1,10 +1,12 @@
 #include <stdio.h>
 #include "regexParser.h"
 
-void descendTree(NodePtr n, int d) {
+static void descendTree(NodePtr,int);
+void printTree(NodePtr);
+
+static void descendTree(NodePtr n, int d) {
     if (n->right != NULL) {
-        d++;
-        descendTree(n->right, d);
+        descendTree(n->right, d+1);
         d--;
     }
     if (n->tokenType == 'a') {
@@ -14,8 +16,7 @@
     }
 
     if (n->left != NULL) {
-        d++;
-        descendTree(n->left, d);
+        descendTree(n->left, d+1);
         d--;
     }
 }
--- a/c/regexParser/transition.cc	Sat Nov 21 18:04:25 2015 +0900
+++ b/c/regexParser/transition.cc	Mon Nov 23 15:54:19 2015 +0900
@@ -1,5 +1,9 @@
 #include "transition.h"
 
+TransitionPtr createTransition(CharClass,BitVectorPtr);
+TransitionPtr appendTransition0(TransitionPtr,TransitionPtr);
+TransitionPtr appendTransition(TransitionPtr,TransitionPtr);
+
 TransitionPtr createTransition(CharClassPtr cc, BitVectorPtr state) {
     TransitionPtr transition = (TransitionPtr)malloc(sizeof(Transition));
     transition->condition = cc;
--- a/c/regexParser/transition.h	Sat Nov 21 18:04:25 2015 +0900
+++ b/c/regexParser/transition.h	Mon Nov 23 15:54:19 2015 +0900
@@ -11,17 +11,16 @@
 } State; StatePtr;
 /*
   正規表現木を辿って transition のList をつくる
-  HcarClass のかさなりを判定して重なりのない新しいCharClassをつくる
+  CharClass のかさなりを判定して重なりのない新しいCharClassをつくる
   重なっている状態はbitvectorのorをとる
   重なっている状態はそれぞれの状態について木をたどる
-  
+
   nextState == 0 は正規表現の末端を表す
   nextState == 1 は受理状態を表す
   正規表現のノードの番号 n に対応する 2^n のbitをセットした状態
-  
-  
+
   | の場合は両方のListを結合する
   + の場合は左のノードに * がある場合は右のリストも結合する
-  左のノードにあすたがない場合は、右のほうだけみる
+  左のノードに*がない場合は、右のほうだけみる
   * は直下のリストを使って、次の状態を自分自身にする
  */