diff options
author | Jérémie Dimino <jeremie@dimino.org> | 2013-11-21 16:23:28 +0000 |
---|---|---|
committer | Jérémie Dimino <jeremie@dimino.org> | 2013-11-21 16:23:28 +0000 |
commit | 5d917633adeee07f19848d737a6825bd7a462cf8 (patch) | |
tree | 47e7f11440fc4be2cf1014abd371f915f885d06d /camlp4/examples/lambda_quot_expr.ml | |
parent | 94f29d29c3d58d29d160a53694e9c301157d9f79 (diff) |
remove camlp4
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/minus-camlp4@14309 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'camlp4/examples/lambda_quot_expr.ml')
-rw-r--r-- | camlp4/examples/lambda_quot_expr.ml | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/camlp4/examples/lambda_quot_expr.ml b/camlp4/examples/lambda_quot_expr.ml deleted file mode 100644 index d3eb22fe1..000000000 --- a/camlp4/examples/lambda_quot_expr.ml +++ /dev/null @@ -1,55 +0,0 @@ -(****************************************************************************) -(* *) -(* OCaml *) -(* *) -(* INRIA Rocquencourt *) -(* *) -(* Copyright 2007 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License, with the special *) -(* exception on linking described in LICENSE at the top of the OCaml *) -(* source tree. *) -(* *) -(****************************************************************************) - -(* Please keep me in sync with brion.inria.fr/gallium/index.php/Lambda_calculus_quotations *) - -open Camlp4.PreCast;; -module CamlSyntax = Camlp4OCamlParser.Make(Camlp4OCamlRevisedParser.Make(Syntax));; - -let expr_of_string = CamlSyntax.Gram.parse_string CamlSyntax.expr_eoi;; - -module LambdaGram = MakeGram(Lexer);; - -let term = LambdaGram.Entry.mk "term";; -let term_eoi = LambdaGram.Entry.mk "lambda term quotation";; - -Camlp4_config.antiquotations := true;; - -EXTEND LambdaGram - GLOBAL: term term_eoi; - term: - [ "top" - [ "fun"; v = var; "->"; t = term -> <:expr< `Lam($v$, $t$) >> ] - | "app" - [ t1 = SELF; t2 = SELF -> <:expr< `App($t1$, $t2$) >> ] - | "simple" - [ `ANTIQUOT((""|"term"), a) -> expr_of_string _loc a - | v = var -> <:expr< `Var($v$) >> - | "("; t = term; ")" -> t ] - ]; - var: - [[ v = LIDENT -> <:expr< $str:v$ >> - | `ANTIQUOT((""|"var"), a) -> expr_of_string _loc a - ]]; - term_eoi: - [[ t = term; `EOI -> t ]]; -END;; - -let expand_lambda_quot_expr loc _loc_name_opt quotation_contents = - LambdaGram.parse_string term_eoi loc quotation_contents;; - -(* to have this syntax <:lam< fun k -> k >> *) -Syntax.Quotation.add "lam" Syntax.Quotation.DynAst.expr_tag expand_lambda_quot_expr;; - -Syntax.Quotation.default := "lam";; |