Module Frontend

module Ast : sig ... end

Abstract syntax tree for Stan. Defined with the 'two-level types' pattern, where the variant types are not directly recursive, but rather parametric in some other type.

module Ast_to_Mir : sig ... end
module Canonicalize : sig ... end

Re-write ASTs to remove deprecated features and clean up extra parenthesis, etc

module Debugging : sig ... end

Some helpers for debugging

module Deprecation_analysis : sig ... end

Utilities for emitting deprecation warnings and finding proper replacements for deprecated features

module Environment : sig ... end

Type environments used during typechecking. Maps from strings to function or variable information

module Errors : sig ... end

Some plumbing for our compiler errors

module Info : sig ... end

Implementation of the --info option which outputs on the standard output a JSON object containing information about the model.

module Input_warnings : sig ... end

A module to contain the mutable state used to track warnings from the parser and lexer.

module Lexer : sig ... end
module Parse : sig ... end

Some complicated stuff to get the custom syntax errors out of Menhir's Incremental API

module Parser : sig ... end
module Parsing_errors : sig ... end
module Preprocessor : sig ... end

Preprocessor for handling include directives

module Pretty_print_prog : sig ... end

Pretty print a complete Stan program.

module Pretty_printing : sig ... end

Some helpers to produce nice error messages and for auto-formatting Stan programs

module Promotion : sig ... end
module Semantic_error : sig ... end
module SignatureMismatch : sig ... end
module Typechecker : sig ... end

a type/semantic checker for Stan ASTs

module Warnings : sig ... end

Used for user-facing warning messages