package forester

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

Module Forester_compilerSource

The forester compiler

Base types

Sourcemodule Xml_forester : sig ... end

Definition of the forester XML schema. This is the compilation target.

Compilation phases

Parsing

The lexer and parser are implemented with ocamllex and menhir

Sourcemodule Parse : sig ... end
Sourcemodule Imports : sig ... end
Sourcemodule Expand : sig ... end

Transform Code.trees into Syn.trees by folding over the import graph.

Sourcemodule Eval : sig ... end

Transform Syn.trees into articles.

High-level architecture

The compiler needs to support both batch-style and incremental compilation. To this end, we define a state type and transition functions that act on this state.

In the future, we want to record more knowledge in graphs of the state and derive the information we need for the language server via the query system.

Sourcemodule Forest : sig ... end

Augmented hash table used throughout compilation phases.

Sourcemodule Action : sig ... end
Sourcemodule State : sig ... end
Sourcemodule Phases : sig ... end
Sourcemodule Driver : sig ... end
Sourcemodule Asset_router : sig ... end
Sourcemodule URI_util : sig ... end

IO

LaTeX pipeline

Sourcemodule Build_latex : sig ... end
Sourcemodule LaTeX_pipeline : sig ... end
Sourcemodule LaTeX_template : sig ... end
Sourcemodule Job : sig ... end

Definition of LaTeX jobs

OCaml

Innovation. Community. Security.