FML function 'strcmp' implemented. This function can be used to
[egate.git] / fml / fmltoken.c
index fc4d189..fb34f14 100644 (file)
@@ -2,7 +2,11 @@
  * FML interpreter. Europagate, 1995
  *
  * $Log: fmltoken.c,v $
- * Revision 1.3  1995/02/10 15:50:57  adam
+ * Revision 1.4  1995/02/10 18:15:53  adam
+ * FML function 'strcmp' implemented. This function can be used to
+ * test for existence of MARC fields.
+ *
+ * Revision 1.3  1995/02/10  15:50:57  adam
  * MARC interface implemented. Minor bugs fixed. fmltest can
  * be used to format single MARC records. New function '\list'
  * implemented.
@@ -42,6 +46,11 @@ struct fml_node *fml_tokenize (Fml fml)
         fml_pr_list (p);
         printf ("\n");
     }
+    if (look_char != fml->eof_mark)
+    {
+        fprintf (stderr, "Ill formed parantheses");
+        exit (1);
+    }
     return p;
 }
 
@@ -157,6 +166,24 @@ static void lexer (Fml fml)
         while (look_char != fml->eof_mark && look_char != '\'')
         {
             lex_buf[off++] = look_char;
+            if (look_char == '\\')
+            {
+                look_char = (*fml->read_func)();
+                switch (look_char)
+                {
+                case 'n':
+                    lex_buf[off-1] = '\n';
+                    break;
+                case 't':
+                    lex_buf[off-1] = '\n';
+                    break;
+                case '\'':
+                    lex_buf[off-1] = '\''; 
+                    break;
+                default:
+                    lex_buf[off-1] = look_char;
+                }
+            }
             look_char = (*fml->read_func)();
         } 
         lex_buf[off] = '\0';