|
106 | 106 |
|
107 | 107 | (* Syntax **************************************************************** *) |
108 | 108 |
|
109 | | -VERNAC COMMAND EXTEND Elpi CLASSIFIED AS SIDEFF |
| 109 | +{ |
| 110 | +let classify_named_vernac (_,p) = Vernacextend.VtSideff([Names.Id.of_string_soft @@ String.concat "." p],VtNow) |
| 111 | +} |
| 112 | + |
| 113 | +VERNAC COMMAND EXTEND ElpiNamed |
| 114 | +| #[ atts = any_attribute ] [ "Elpi" "Program" qualified_name(p) elpi_string(s) ] => { classify_named_vernac p } SYNTERP AS atts |
| 115 | + { |
| 116 | + let atts = validate_attributes raw_args_attributes atts in |
| 117 | + EV.Synterp.create_program ~atts ~init:s p; |
| 118 | + atts |
| 119 | + } -> { |
| 120 | + EV.Interp.create_program ~atts ~init:s p |
| 121 | + } |
| 122 | +| #[ atts = any_attribute ] [ "Elpi" "Command" qualified_name(p) ] => { classify_named_vernac p } SYNTERP AS atts |
| 123 | + { |
| 124 | + let atts = validate_attributes raw_args_attributes atts in |
| 125 | + EV.Synterp.create_command ~atts p; |
| 126 | + atts |
| 127 | + } -> { |
| 128 | + EV.Interp.create_command ~atts p } |
| 129 | +| #[ atts = any_attribute ] [ "Elpi" "Tactic" qualified_name(p) ] => { classify_named_vernac p } SYNTERP AS _ |
| 130 | + { |
| 131 | + let () = ignore_unknown_attributes atts in |
| 132 | + EV.Synterp.create_tactic p |
| 133 | + } -> { |
| 134 | + EV.Interp.create_tactic p } |
| 135 | +| #[ atts = any_attribute ] [ "Elpi" "Db" qualified_name(d) elpi_string(s) ] => { classify_named_vernac d } SYNTERP AS atts |
| 136 | + { |
| 137 | + let atts = validate_attributes synterp_attribute atts in |
| 138 | + EV.Synterp.create_db ~atts d ~init:s; |
| 139 | + atts |
| 140 | + } -> { |
| 141 | + EV.Interp.create_db ~atts d ~init:s } |
| 142 | +END |
| 143 | + |
| 144 | +VERNAC COMMAND EXTEND ElpiUnnamed CLASSIFIED AS SIDEFF |
110 | 145 | | #[ atts = any_attribute ] [ "Elpi" "Accumulate" "File" ne_ident_list(ids) ] SYNTERP AS atts { |
111 | 146 | let atts = validate_attributes skip_and_synterp_attributes atts in |
112 | 147 | EV.Synterp.accumulate_extra_deps ~atts ids; |
@@ -262,35 +297,6 @@ VERNAC COMMAND EXTEND Elpi CLASSIFIED AS SIDEFF |
262 | 297 | } -> { |
263 | 298 | EV.Interp.print ~atts (snd p) s } |
264 | 299 |
|
265 | | -| #[ atts = any_attribute ] [ "Elpi" "Program" qualified_name(p) elpi_string(s) ] SYNTERP AS atts |
266 | | - { |
267 | | - let atts = validate_attributes raw_args_attributes atts in |
268 | | - EV.Synterp.create_program ~atts ~init:s p; |
269 | | - atts |
270 | | - } -> { |
271 | | - EV.Interp.create_program ~atts ~init:s p |
272 | | - } |
273 | | -| #[ atts = any_attribute ] [ "Elpi" "Command" qualified_name(p) ] SYNTERP AS atts |
274 | | - { |
275 | | - let atts = validate_attributes raw_args_attributes atts in |
276 | | - EV.Synterp.create_command ~atts p; |
277 | | - atts |
278 | | - } -> { |
279 | | - EV.Interp.create_command ~atts p } |
280 | | -| #[ atts = any_attribute ] [ "Elpi" "Tactic" qualified_name(p) ] SYNTERP AS _ |
281 | | - { |
282 | | - let () = ignore_unknown_attributes atts in |
283 | | - EV.Synterp.create_tactic p |
284 | | - } -> { |
285 | | - EV.Interp.create_tactic p } |
286 | | -| #[ atts = any_attribute ] [ "Elpi" "Db" qualified_name(d) elpi_string(s) ] SYNTERP AS atts |
287 | | - { |
288 | | - let atts = validate_attributes synterp_attribute atts in |
289 | | - EV.Synterp.create_db ~atts d ~init:s; |
290 | | - atts |
291 | | - } -> { |
292 | | - EV.Interp.create_db ~atts d ~init:s } |
293 | | - |
294 | 300 | | #[ atts = any_attribute ] [ "Elpi" "Typecheck" ] SYNTERP AS _ |
295 | 301 | { |
296 | 302 | let () = ignore_unknown_attributes atts in |
|
0 commit comments