Return level number together with OPEN token.
authorPeter Verthez <Peter.Verthez@advalvas.be>
Sat, 1 Dec 2001 17:23:26 +0000 (17:23 +0000)
committerPeter Verthez <Peter.Verthez@advalvas.be>
Sat, 1 Dec 2001 17:23:26 +0000 (17:23 +0000)
gedcom.y
gedcom_1byte.lex
gedcom_hilo.lex
gedcom_lohi.lex

index e512aa6dd617665da3d53d60a61465971b041de5..98d36e2345e0fe2ee08e30b3b0232a2017cc72a9 100644 (file)
--- a/gedcom.y
+++ b/gedcom.y
@@ -223,13 +223,14 @@ int  compat_mode(int flags);
 
 %union {
   char *string;
+  int  number;
 }
 
 %token_table
 %expect 300
 
 %token <string> BADTOKEN
-%token <string> OPEN
+%token <number> OPEN
 %token <string> CLOSE
 %token <string> ESCAPE
 %token <string> DELIM
index 5705c1e0ba4e928ab05efb369e57fc8904f24407..df4559abc7da5b45b3f143700a2b6d674e2689dd 100644 (file)
@@ -97,6 +97,7 @@ if (level_diff < 1) {
 }
 else if (level_diff == 1) {
   level_diff++;
+  gedcom_lval.number = current_level;
   return OPEN;
 }
 else {
@@ -133,6 +134,7 @@ else {
                    }
                    else if (level_diff == 1) {
                      level_diff++;
+                     gedcom_lval.number = current_level;
                      return OPEN;
                    }
                    else {
@@ -355,7 +357,7 @@ int main()
   while (tok) {
     switch(tok) {
       case BADTOKEN: printf("BADTOKEN "); break;
-      case OPEN: printf("OPEN "); break;
+      case OPEN: printf("OPEN(%d) ", gedcom_lval.number); break;
       case CLOSE: printf("CLOSE "); break;
       case ESCAPE: printf("ESCAPE(%s) ", gedcom_lval.string); break;
       case DELIM: printf("DELIM "); break;
index 62b9645e0ca19812db5c06c1cd925cc70ecc421c..e5135dc68111cb8de1073b81a7b0deb52e09d3d2 100644 (file)
@@ -99,6 +99,7 @@ if (level_diff < 1) {
 }
 else if (level_diff == 1) {
   level_diff++;
+  gedcom_lval.number = current_level;
   return OPEN;
 }
 else {
@@ -135,6 +136,7 @@ else {
                    }
                    else if (level_diff == 1) {
                      level_diff++;
+                     gedcom_lval.number = current_level;
                      return OPEN;
                    }
                    else {
@@ -352,7 +354,7 @@ int main()
   while (tok) {
     switch(tok) {
       case BADTOKEN: printf("BADTOKEN "); break;
-      case OPEN: printf("OPEN "); break;
+      case OPEN: printf("OPEN(%d) ", gedcom_lval.number); break;
       case CLOSE: printf("CLOSE "); break;
       case ESCAPE: printf("ESCAPE(%s) ", gedcom_lval.string); break;
       case DELIM: printf("DELIM "); break;
index 2545343cb351e0e3137d53011f22533eccab1826..9b76ac9f19c94e6f618f6867275e67e904ab597f 100644 (file)
@@ -99,6 +99,7 @@ if (level_diff < 1) {
 }
 else if (level_diff == 1) {
   level_diff++;
+  gedcom_lval.number = current_level;
   return OPEN;
 }
 else {
@@ -135,6 +136,7 @@ else {
                    }
                    else if (level_diff == 1) {
                      level_diff++;
+                     gedcom_lval.number = current_level;
                      return OPEN;
                    }
                    else {
@@ -352,7 +354,7 @@ int main()
   while (tok) {
     switch(tok) {
       case BADTOKEN: printf("BADTOKEN "); break;
-      case OPEN: printf("OPEN "); break;
+      case OPEN: printf("OPEN(%d) ", gedcom_lval.number); break;
       case CLOSE: printf("CLOSE "); break;
       case ESCAPE: printf("ESCAPE(%s) ", gedcom_lval.string); break;
       case DELIM: printf("DELIM "); break;