Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Question about writing plugins/vercular commands extension

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Question about writing plugins/vercular commands extension


Chronological Thread 
  • From: Gaëtan Gilbert <gaetan.gilbert AT skyskimmer.net>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Question about writing plugins/vercular commands extension
  • Date: Fri, 31 Jan 2020 11:22:58 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=gaetan.gilbert AT skyskimmer.net; spf=Pass smtp.mailfrom=gaetan.gilbert AT skyskimmer.net; spf=None smtp.helo=postmaster AT relay1-d.mail.gandi.net
  • Ironport-phdr: 9a23:2+DwpBN5njIu5eIdvaol6mtUPXoX/o7sNwtQ0KIMzox0Ivr4rarrMEGX3/hxlliBBdydt6sYzbaO+Pm5ESxYuNDd6StEKMQNHzY+yuwu1zQ6B8CEDUCpZNXLVAcdWPp4aVl+4nugOlJUEsutL3fbo3m18CJAUk6nbVk9Kev6AJPdgNqq3O6u5ZLTfx9IhD2gar9uMRm6twrcutQZjId4Jas91hTFrmZVd+9LwW9kOU+fkwzz68ut8pNv6Thct+4k+8VdTaj0YqM0QKBCAj87KW41/srrtRfCTQuL+HQRV3gdnwRLDQbY8hz0R4/9vSTmuOVz3imaJtD2QqsvWTu+9adrSQTnhzkBOjUk7WzYkM1wjKZcoBK8uxxyxpPfbY+JOPZieK7WYNUXTndDUMlMTSxMGp6yYZUBD+QBPuhWoYfyqFQMohSiCgehH//vxzxSi3PqwaE33eYsHAfb1wIgBdIOt3HUoc30OqgITee10LPHzTPbYP1X2Df97JPHfQ47ofGQQLl9dsXRxlMxGAPZlFqQr5bpPzyU1uQJqGeU8fBgVf60hm48qAFwoiOvxsQtionMg4Ia1ErE+T9/wIkrOd21UUh2asOqHptXsiGVLYp2QsU6TmFnuSY61r0GuYOgcyQQ1JsnwBvfZvqaeIaL+hLuTPidLSp6iX5/er+zmwy+/VWjx+DyTMW4zVJHoyRdntTIq3wBzQHf58mGR/dn/kqs1yyD2x7P5uxFJ00/iLDVJIQ7wrEqk5oeqUTDETHymEXxlKKWbFsr+uyy5OXnf7nqv4KTO5Vxig7kM6QuntazAesiPQgIQmeb+P6w1Lv98k3lWLlKj/s2nbfFsJ3CO8gXu6y0DxVX34o/8RqzEjSr3doCkXUaKF9IdgqLj43zNFHPJPD4A+2/g1OpkDpzyPDJJKPuAonXIXjFirvhcrd960pHxwUt19Bf+4lZCqoCIPPzQU/xt93YDho8MwOq2ebrEtN92Z0CWW6XGK+WLLvSsUOU5uIoO+SDeIgVuC/kJ/c54/7ukGQ2lEQGfaip2JsXcGq3Eu5nI0Wfe3rsg80OHX0EvgokH6TWjwiJVicWbHKvVYo94Cs6AcSoF9TtXIeo1ZOIXzuyGKp5Z2RMB0qQWSPnfoiYUvFKZyOWKMJ7jhQfVqm6SI4k0By08gn31+w0faLv5iQEuMe7h5BO7OrJmERqrG0mP4Gmy2iIClpMsCYNTj4y0rp4pBUjmEyAwLN7gvldGMYV4f5VAF5jaMzsitdiAtW3YTrvO9eETFH8H4e8DDU4X4t0z5kLakd5XdqriBzCmSynH+1NzuDZNNkP6qvZmkPJCYNl0X+fivs6jEg9QcpKMGC8wKhy61qLCg==

Did you open Stdarg?

Gaëtan Gilbert

On 30/01/2020 21:18, Zoe Paraskevopoulou wrote:
Hi Coq Club,

I’ve been trying to write a vernacular command that parses some optional arguments, but I’m facing some issue and I’d appreciate some help.

The result I’m trying to achieve is:

CertiCoq Compile [options] <global_identifier>

where [options] is zero or more compilation flags like -debug.

For this I wrote the following code:

type command_args =
 | ANF
 | TIME
 | OPT of int
 | DEBUG
 | ARGS of int

VERNAC ARGUMENT EXTEND cargs
| [ "-anf" ] -> [ ANF ]
| [ "-time" ] -> [ TIME ]
| [ "-o1" ] -> [ OPT(1) ]
| [ "-debug" ] -> [ DEBUG ]
| [ "-args" int(n) ] -> [ ARGS(n) ]
END.

However, when I compile I get the following error:

File "g_certicoq.ml4", line 1, characters 0-0:
Error: This expression has type int -> Pp.t
       but an expression was expected of type
         'a Extend.entry = 'a Grammar.GMake(CLexer).Entry.e

This happens whenever I try to parse a non-terminal symbols (e.g. string()) in VERNAC ARGUMENT EXTEND, not just with int().

If I drop the last case of cargs and parse this option at the VERNAC COMMAND instead, everything works:

VERNAC COMMAND EXTEND CertiCoq_Compile CLASSIFIED AS QUERY
| [ "CertiCoq" "Compile" cargs_list(l) “-args” int(x) global(gr) ] -> [ ... do stuff ...  ]
END

Any idea about what is going on? I’m suspecting that I’m missing an import because I’ve seen this type of parsing in VERNAC ARGUMENT EXTEND before. For example here: https://github.com/coq/coq/blob/master/plugins/ltac/g_ltac.mlg. I tried to use the same imports but that didn’t help.

I am using Coq 8.9.1 and OCaml 4.07.0.

Cheers,
Zoe



Archive powered by MHonArc 2.6.18.

Top of Page