diff options
Diffstat (limited to 'camlp4/examples/lambda_quot.ml')
-rw-r--r-- | camlp4/examples/lambda_quot.ml | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/camlp4/examples/lambda_quot.ml b/camlp4/examples/lambda_quot.ml deleted file mode 100644 index cf6485ab3..000000000 --- a/camlp4/examples/lambda_quot.ml +++ /dev/null @@ -1,52 +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. *) -(* *) -(****************************************************************************) - -open Camlp4.PreCast; -module CamlSyntax = Camlp4OCamlParser.Make (Camlp4OCamlRevisedParser.Make Syntax); - -value expr_of_string = CamlSyntax.Gram.parse_string CamlSyntax.expr_eoi; - -module LambdaGram = MakeGram Lexer; - -value term = LambdaGram.Entry.mk "term"; -value term_eoi = LambdaGram.Entry.mk "lambda term quotation"; - -Camlp4_config.antiquotations.val := 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; - -value expand_lambda_quot_expr loc _loc_name_opt quotation_contents = - LambdaGram.parse_string term_eoi loc quotation_contents; - -Syntax.Quotation.add "lam" Syntax.Quotation.DynAst.expr_tag expand_lambda_quot_expr; - -Syntax.Quotation.default.val := "lam"; |