From 25533df336888df4255e3882e21d5d5420e5de28 Mon Sep 17 00:00:00 2001 From: letouzey Date: Fri, 9 Jul 2010 17:40:36 +0000 Subject: Finish adding out-of-the-box support for camlp4 If you want to try, it should be now as simple as: make clean && ./configure -local -usecamlp4 && make For the moment, the default stays camlp5, hence ./configure -usecamlp5 and ./configure are equivalent. Thanks to a suggestion by N. Pouillard, the remaining incompatibilities are now handled via some token filtering in camlp4. See compat5*.mlp. Morally, these files should be named .ml4, but I prefer having them not in $(...ML4) variables, it might confuse the Makefile... The empty compat5*.ml are used to build empty .cmo for making camlp5 happy. For camlp4, - tools/compat5.cmo changes GEXTEND into EXTEND. Safe, always loaded - tools/compat5b.cmo changes EXTEND into EXTEND Gram. Interact badly with syntax such that VERNAC EXTEND, we only load it for a few files via camlp4deps TODO: check that my quick adaptation of camlp5-specific code in tactics/extratactics.ml4 is ok. It seems the code by Chung-Kil Hur is hiding information in the locations ?! git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13274 85f007b7-540e-0410-9357-904b9bb8a0f7 --- tools/compat5.ml | 13 +++++++++++++ tools/compat5.mlp | 23 +++++++++++++++++++++++ tools/compat5b.ml | 13 +++++++++++++ tools/compat5b.mlp | 23 +++++++++++++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 tools/compat5.ml create mode 100644 tools/compat5.mlp create mode 100644 tools/compat5b.ml create mode 100644 tools/compat5b.mlp (limited to 'tools') diff --git a/tools/compat5.ml b/tools/compat5.ml new file mode 100644 index 0000000000..6a76895cd9 --- /dev/null +++ b/tools/compat5.ml @@ -0,0 +1,13 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* ] -> + [< '(KEYWORD "EXTEND", loc); my_token_filter s >] + | [< 'tokloc; s >] -> [< 'tokloc; my_token_filter s >] + | [< >] -> [< >] + +let _ = + Token.Filter.define_filter (Gram.get_filter()) + (fun prev strm -> prev (my_token_filter strm)) diff --git a/tools/compat5b.ml b/tools/compat5b.ml new file mode 100644 index 0000000000..03bdb358b0 --- /dev/null +++ b/tools/compat5b.ml @@ -0,0 +1,13 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* ] -> + [< 't; '(UIDENT "Gram", Loc.ghost); my_token_filter s >] + | [< 'tokloc; s >] -> [< 'tokloc; my_token_filter s >] + | [< >] -> [< >] + +let _ = + Token.Filter.define_filter (Gram.get_filter()) + (fun prev strm -> prev (my_token_filter strm)) -- cgit v1.2.3