--- dfa.cc.old	Fri Feb  4 15:18:55 2000
+++ dfa.cc	Fri Feb  4 15:22:57 2000
@@ -109,6 +109,7 @@
     uint nc = ub - lb;
     GoTo *goTo = new GoTo[nc];
     Span *span = new Span[nc];
+    uint j;
     memset((char*) goTo, 0, nc*sizeof(GoTo));
     tail = &head;
     head = NULL;
@@ -123,7 +124,7 @@
 	uint nGoTos = 0;
 
 	s->rule = NULL;
-	for(iP = s->kernel; i = *iP; ++iP){
+	for(iP = s->kernel; (i = *iP) != NULL; ++iP){
 	    if(i->i.tag == CHAR){
 		for(Ins *j = i + 1; j < (Ins*) i->i.link; ++j){
 		    if(!(j->c.link = goTo[j->c.value - lb].to))
@@ -136,7 +137,7 @@
 	    }
 	}
 
-	for(uint j = 0; j < nGoTos; ++j){
+	for(j = 0; j < nGoTos; ++j){
 	    GoTo *go = &goTo[goTo[j].ch - lb];
 	    i = (Ins*) go->to;
 	    for(cP = work; i; i = (Ins*) i->c.link)
@@ -169,7 +170,7 @@
 
 DFA::~DFA(){
     State *s;
-    while(s = head){
+    while((s = head) != NULL){
 	head = s->next;
 	delete s;
     }
@@ -185,11 +186,12 @@
 
 State *DFA::findState(Ins **kernel, uint kCount){
     Ins **cP, **iP, *i;
+	State *s;
 
     kernel[kCount] = NULL;
 
     cP = kernel;
-    for(iP = kernel; i = *iP; ++iP){
+    for(iP = kernel; (i = *iP) != NULL; ++iP){
 	 if(i->i.tag == CHAR || i->i.tag == TERM){
 	     *cP++ = i;
 	} else {
@@ -199,9 +201,9 @@
     kCount = cP - kernel;
     kernel[kCount] = NULL;
 
-    for(State *s = head; s; s = s->next){
+    for(s = head; s; s = s->next){
 	 if(s->kCount == kCount){
-	     for(iP = s->kernel; i = *iP; ++iP)
+	     for(iP = s->kernel; (i = *iP) != NULL; ++iP)
 		 if(!isMarked(i))
 		     goto nextState;
 	     goto unmarkAll;
@@ -218,7 +220,7 @@
     toDo = s;
 
 unmarkAll:
-    for(iP = kernel; i = *iP; ++iP)
+    for(iP = kernel; (i = *iP) != NULL; ++iP)
 	 unmark(i);
 
     return s;
