44Version. add " $Id: parsetptp.mly,v 1.9 2012-04-24 17:32:04 doligez Exp $" ;;
55
66open Expr ;;
7+ open Annotation
78
89let ns pre s = (if ! Globals. namespace_flag then pre else " " ) ^ s;;
910(* Renaming is now done during typechecking *)
@@ -73,6 +74,7 @@ let cnf_to_formula l =
7374% token XOR
7475% token NOR
7576% token NAND
77+ % token HASH
7678% token < string > ANNOT
7779
7880% nonassoc OPEN
@@ -100,55 +102,53 @@ phrase:
100102 | INCLUDE OPEN LIDENT COMMA LBRACKET name_list RBRACKET CLOSE DOT
101103 { Phrase. Include ($ 3 , Some ($ 6 )) }
102104 | INPUT_FORMULA OPEN name COMMA LIDENT COMMA formula annotations CLOSE DOT
103- { Phrase. Formula (ns_hyp $ 3 , $ 5 , $ 7 , None ) }
105+ { Phrase. Formula (ns_hyp $ 3 , $ 5 , $ 7 , $ 8 ) }
104106 | INPUT_CLAUSE OPEN name COMMA LIDENT COMMA cnf_formula annotations CLOSE DOT
105- { Phrase. Formula (ns_hyp $ 3 , $ 5 , cnf_to_formula $ 7 , None ) }
106- | INPUT_TFF_FORMULA OPEN name COMMA LIDENT COMMA formula COMMA LIDENT annotations CLOSE DOT
107- { Phrase. Formula (ns_hyp $ 3 , " tff_" ^ $ 5 , $ 7 , Some $ 9 ) }
107+ { Phrase. Formula (ns_hyp $ 3 , $ 5 , cnf_to_formula $ 7 , $ 8 ) }
108108 | INPUT_TFF_FORMULA OPEN name COMMA LIDENT COMMA formula annotations CLOSE DOT
109- { Phrase. Formula (ns_hyp $ 3 , " tff_" ^ $ 5 , $ 7 , None ) }
109+ { Phrase. Formula (ns_hyp $ 3 , " tff_" ^ $ 5 , $ 7 , $ 8 ) }
110110 | INPUT_TFF_FORMULA OPEN name COMMA LIDENT COMMA type_def annotations CLOSE DOT
111- { Phrase. Formula (ns_hyp $ 3 , " tff_" ^ $ 5 , $ 7 , None ) }
111+ { Phrase. Formula (ns_hyp $ 3 , " tff_" ^ $ 5 , $ 7 , $ 8 ) }
112112 | ANNOT { Phrase. Annotation $ 1 }
113113;
114114annotations:
115- | {}
116- | COMMA source optional_info {}
115+ | {None }
116+ | COMMA source optional_info {Some $ 2 }
117117;
118118
119119source:
120- general_term {}
120+ general_term {$ 1 }
121121;
122122
123123general_term:
124- general_data {}
125- | general_data COLON general_term {}
126- | general_list {}
124+ general_data {$ 1 }
125+ | general_data COLON general_term {Colon ( $ 1 , $ 3 ) }
126+ | general_list {List $ 1 }
127127;
128128
129129general_data:
130- LIDENT {}
131- | general_function {}
132- | UIDENT {}
133- | INT {}
134- | RAT {}
135- | REAL {}
136- | STRING {}
130+ LIDENT {Atom $ 1 }
131+ | general_function {$ 1 }
132+ | UIDENT {Atom $ 1 }
133+ | INT {Atom $ 1 }
134+ | RAT {Atom $ 1 }
135+ | REAL {Atom $ 1 }
136+ | STRING {Atom $ 1 }
137137/* | formula_data {} unsupported */
138138;
139139
140140general_function:
141- LIDENT OPEN general_terms CLOSE {}
141+ LIDENT OPEN general_terms CLOSE {Fun ( $ 1 , $ 3 ) }
142142;
143143
144144general_terms:
145- general_term {}
146- | general_term COMMA general_terms {}
145+ general_term { [ $ 1 ] }
146+ | general_term COMMA general_terms {$ 1 :: $ 3 }
147147;
148148
149149general_list:
150- LBRACKET RBRACKET {}
151- | LBRACKET general_terms RBRACKET {}
150+ LBRACKET RBRACKET {[] }
151+ | LBRACKET general_terms RBRACKET {$ 2 }
152152;
153153
154154optional_info:
@@ -168,6 +168,7 @@ expr:
168168 | expr EQSYM expr { eeq $ 1 $ 3 }
169169 | expr NEQSYM expr { enot (eeq $ 1 $ 3 ) }
170170 | OPEN expr CLOSE { $ 2 }
171+ | HASH LBRACKET var_list RBRACKET COLON unit_formula { etau (List. hd $ 3 , $ 6 ) }
171172;
172173arguments:
173174 | OPEN expr_list CLOSE { $ 2 }
0 commit comments