package mopsa

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Clang_parser - Extracting Clang AST to OCaml

Interface to Clang AST: we call Clang to parse files and convert the AST into OCaml. This is a low-level interface: the returned AST stays close to Clang. Thus, the interface may evolve from Clang versions to versions.

See Clang_AST for the definition of the AST types, as well as the parts that we don't support yet.

Version

val version : string

Target information

val get_default_target_options : unit -> Clang_AST.target_options

Returns the default target, which corresponds to the host.

Gets the target informations (type width and alignment, ...) for the given target.

Parsing

type parse_result = {
  1. parse_decl : Clang_AST.decl;
    (*

    AST.

    *)
  2. parse_diag : Clang_AST.diagnostic list;
    (*

    Warnings and errors.

    *)
  3. parse_comments : Clang_AST.comment list;
    (*

    C/C++ comments.

    *)
  4. parse_macros : Clang_AST.macro list;
    (*

    Macros.

    *)
  5. parse_files : string list;
    (*

    Files read during parsing.

    *)
}
val parse : command:string -> target:Clang_AST.target_options -> filename:string -> args:string array -> parse_result

Parse the source file with the specified command (e.g., "clang" or "clang++") for the specified target, given the the specified compile-time options.

OCaml

Innovation. Community. Security.