]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/hxp/hxpParser.mly
hxp: performes several tasks among which some metadata extraction
[helm.git] / helm / hxp / hxpParser.mly
diff --git a/helm/hxp/hxpParser.mly b/helm/hxp/hxpParser.mly
new file mode 100644 (file)
index 0000000..aed627a
--- /dev/null
@@ -0,0 +1,56 @@
+/* Copyright (C) 2000, HELM Team.
+ * 
+ * This file is part of HELM, an Hypertextual, Electronic
+ * Library of Mathematics, developed at the Computer Science
+ * Department, University of Bologna, Italy.
+ * 
+ * HELM is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * HELM is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HELM; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA  02111-1307, USA.
+ * 
+ * For details, see the HELM World-Wide-Web page,
+ * http://cs.unibo.it/helm/.
+ */
+
+/*  AUTOR: Ferruccio Guidi <fguidi@cs.unibo.it>
+ */ 
+
+%{
+   module T = HxpTypes
+%}
+   %token DONE
+   %token <string> NAME VAL
+   %token OPEN CLOSE EQ SL /* < > = / */
+   %start xml
+   %type <HxpTypes.xml_object> xml
+
+   %token <float> DATA
+   %token CLN
+   %start time
+   %type <float * float> time
+%%
+   xml :
+        OPEN NAME          { T.XML_Open $2 }
+      | NAME EQ VAL        { T.XML_Attribute ($1, $3) }
+      | CLOSE              { T.XML_End }
+      | OPEN SL NAME CLOSE { T.XML_Close $3 }
+      | SL CLOSE           { T.XML_Close "" }
+      | NAME NAME VAL      { T.XML_Attribute ($1 ^ " " ^ $2, $3) }
+      | DONE               { T.XML_Done }
+   ;
+   time :
+        EQ DATA CLN DATA      { ($2, $4)   }
+      | DATA EQ DATA CLN DATA { ($3, $5)   }
+      | DONE                  { (-1., -1.) }
+   ;