> This said, I don't see any hand parsing or pre/post processing tricks
> when reading SerAPI's sexps: I only see the prin1-to-sexp hack which
> works around the nil-vs-() difference.  So maybe the syntax is closer to
> that of Elisp than shown in the README.md.

Indeed; in practice it works OK.
There's a minimal example of an IDE implementation based on SerAPI at 
https://github.com/cpitclaudel/elcoq/blob/master/elcoq.el

Clément.

On 30/11/2018 10.46, Stefan Monnier wrote:
> Looking at SerAPI, I'm wondering about the choice of "sexp".  I know it
> may sound odd to want something else than sexps when working in Elisp,
> but in reality sexps only work well if they use *exactly* the same
> syntax.  E.g. in https://github.com/ejgallego/coq-serapi I see:
> 
>     (Query ((sid 3) (pp ((pp_format PpStr)))) Goals)
>       > (Answer 3 Ack)
>       > (Answer 3 (ObjList ((CoqString
>       >   "\
>       >    \n  n : nat\
>       >    \n============================\
>       >    \nn + 0 = n"))))
>       > (Answer 3 Completed)
> 
> which seems to show that the strings don't use the same escape syntax as
> Elisp.  This little detail will likely end up forcing the Elisp side to
> either re-implement a sexp-reader by hand (in Elisp, which will be
> slowish), or require ugly hacks to try and pre-process the answer before
> passing it to the sexp reader (or post-process the sexp), which will
> likely always end up flaky.
> 
> Same thing when it comes to turning Elisp sexps into the print
> representation of SerAPI sexps, of course.
> 
> This said, I don't see any hand parsing or pre/post processing tricks
> when reading SerAPI's sexps: I only see the prin1-to-sexp hack which
> works around the nil-vs-() difference.  So maybe the syntax is closer to
> that of Elisp than shown in the README.md.
> 
> Otherwise I see 2 convenient options: tweak the sexp syntax so it is
> a 100% subset of that of Elisp or use some other widespread standard
> such as XML or JSON (modern Emacsen can link to efficient parsers of
> those two).  The first option is of course more convenient for Emacs,
> but I understand that the second is more convenient for all the
> non-Emacs clients and it's not that bad for Emacs.
> 
> 
>         Stefan
> 

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

Reply via email to