summaryrefslogtreecommitdiff
path: root/ide/config_parser.mly
diff options
context:
space:
mode:
Diffstat (limited to 'ide/config_parser.mly')
-rw-r--r--ide/config_parser.mly43
1 files changed, 43 insertions, 0 deletions
diff --git a/ide/config_parser.mly b/ide/config_parser.mly
new file mode 100644
index 00000000..48005efe
--- /dev/null
+++ b/ide/config_parser.mly
@@ -0,0 +1,43 @@
+/***********************************************************************)
+(* v * The Coq Proof Assistant / The Coq Development Team *)
+(* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
+(* \VV/ **************************************************************)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(***********************************************************************/
+
+/* $Id: config_parser.mly,v 1.2.2.1 2004/07/16 19:30:20 herbelin Exp $ */
+
+%{
+
+ open Parsing
+ open Util
+
+%}
+
+%token <string> IDENT STRING
+%token EQUAL EOF
+
+%type <(string list) Util.Stringmap.t> prefs
+%start prefs
+
+%%
+
+prefs:
+ pref_list EOF { $1 }
+;
+
+pref_list:
+ pref_list pref { let (k,d) = $2 in Stringmap.add k d $1 }
+ | /* epsilon */ { Stringmap.empty }
+;
+
+pref:
+ IDENT EQUAL string_list { ($1, List.rev $3) }
+;
+
+string_list:
+ string_list STRING { $2 :: $1 }
+ | /* epsilon */ { [] }
+;
+