dnl This file is input of the m4 macro processor. `# Specifications for the "camlp4" preprocessor:' `requires = ""' `version = "[distributed with Ocaml]"' `description = "Base for Camlp4 syntax extensions"' `directory = "'camlp4_dir`"' `# For the toploop:' `archive(byte,toploop,camlp4o) = "camlp4o.cma"' `archive(byte,toploop,camlp4r) = "camlp4r.cma"' `# For the preprocessor itself:' `archive(syntax,preprocessor,camlp4o) = "-parser o -parser op -printer p"' `archive(syntax,preprocessor,camlp4r) = "-parser r -parser rp -printer p"' `preprocessor = "'camlp4_cmd`"' `package "lib" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Camlp4 library"' ` archive(byte) = "camlp4lib.cma"' ` archive(byte,toploop) = "" # already contained in camlp4*.cma' ` archive(native) = "camlp4lib.cmxa"' `)' `package "gramlib" (' ` requires = "camlp4.lib"' ` version = "[distributed with Ocaml]"' ` description = "Compatibilty name for camlp4.lib"' `)' `package "quotations" (' ` version = "[distributed with Ocaml]"' ` description = "Syntax extension: Quotations to create AST nodes"' ` requires = "camlp4.quotations.r" # backward compat' dnl We must have a non-empty archive, otherwise this pkg is ignored dnl for constructing the preprocessor command. We can pass -ignore arg dnl to camlp4 as dummy argument: ` archive(syntax,preprocessor) = "-ignore foo"' ` package "o" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax extension: Quotations to create AST nodes (original syntax)"' ` archive(syntax,preprocessor) = "-parser Camlp4QuotationCommon -parser Camlp4OCamlOriginalQuotationExpander"' ` archive(syntax,toploop) = "Camlp4Parsers/Camlp4QuotationCommon.cmo Camlp4Parsers/Camlp4OCamlOriginalQuotationExpander.cmo"' ` )' ` package "r" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax extension: Quotations to create AST nodes (revised syntax)"' ` archive(syntax,preprocessor) = "-parser Camlp4QuotationCommon -parser Camlp4OCamlRevisedQuotationExpander"' ` archive(syntax,toploop) = "Camlp4Parsers/Camlp4QuotationCommon.cmo Camlp4Parsers/Camlp4OCamlRevisedQuotationExpander.cmo"' ` )' `)' `package "extend" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax extension: EXTEND the camlp4 grammar"' ` archive(syntax,preprocessor) = "-parser Camlp4GrammarParser"' ` archive(syntax,toploop) = "Camlp4Parsers/Camlp4GrammarParser.cmo"' `)' `package "listcomprehension" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax extension for list comprehensions"' ` archive(syntax,preprocessor) = "-parser Camlp4ListComprehension"' ` archive(syntax,toploop) = "Camlp4Parsers/Camlp4ListComprehension.cmo"' `)' `package "macro" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax extension: Conditional compilation"' ` archive(syntax,preprocessor) = "-parser Camlp4MacroParser"' ` archive(syntax,toploop) = "Camlp4Parsers/Camlp4MacroParser.cmo"' `)' `package "mapgenerator" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax filter: Traverse data structure (map style)"' ` archive(syntax,preprocessor) = "-filter Camlp4MapGenerator"' ` archive(syntax,toploop) = "Camlp4Filters/Camlp4MapGenerator.cmo"' `)' `package "foldgenerator" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax filter: Traverse data structure (fold style)"' ` archive(syntax,preprocessor) = "-filter Camlp4FoldGenerator"' ` archive(syntax,toploop) = "Camlp4Filters/Camlp4FoldGenerator.cmo"' `)' `package "metagenerator" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax filter: Generate AST generator for data structure"' ` archive(syntax,preprocessor) = "-filter Camlp4MetaGenerator"' ` archive(syntax,toploop) = "Camlp4Filters/Camlp4MetaGenerator.cmo"' `)' `package "locationstripper" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax filter: Remove location info from AST"' ` archive(syntax,preprocessor) = "-filter Camlp4LocationStripper"' ` archive(syntax,toploop) = "Camlp4Filters/Camlp4LocationStripper.cmo"' `)' `package "tracer" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax filter: Trace execution"' ` archive(syntax,preprocessor) = "-filter Camlp4Tracer"' ` archive(syntax,toploop) = "Camlp4Filters/Camlp4Tracer.cmo"' `)' `package "exceptiontracer" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax filter: Trace exception execution"' ` archive(syntax,preprocessor) = "-filter Camlp4ExceptionTracer"' ` archive(syntax,toploop) = "Camlp4Filters/Camlp4ExceptionTracer.cmo"' `)' `package "profiler" (' ` requires = "camlp4"' ` version = "[distributed with Ocaml]"' ` description = "Syntax filter: Count events during execution"' ` archive(syntax,preprocessor) = "-filter Camlp4Profiler"' ` archive(syntax,toploop) = "Camlp4Filters/Camlp4Profiler.cmo"' ` archive(byte) = "camlp4prof.cmo"' ` archive(native) = "camlp4prof.cmx"' `)'