package catala

  1. Overview
  2. Docs
Compiler and library for the literate programming language for tax code specification

Install

dune-project
 Dependency

Authors

Maintainers

Sources

1.3.0.tar.gz
md5=59d0dd01df52c38a4d793b594f067d14
sha512=944b755f8b47cb14920994f03f022cc3ba6cdf5def1ae8ffda00a196fa97dcc5b57baf642a03068b79e949df2a98d5f0218e3358e549be1ff0f1cddda1e5f848

doc/scopelang.html

The scope language

This representation is the third in the compilation chain (see Architecture). Its main difference with the previous desugared representation is that inside a scope, the definitions are ordered according to their computational dependency order, and each definition is a Shared_ast.base_gexpr.EDefault tree instead of a flat list of rules.

Overloaded operators are also resolved during the translation to this representation.

The module describing the abstract syntax tree is:

Printing helpers can be found in Scopelang.Print.

This intermediate representation corresponds to the scope language presented in the Catala formalization.

The Scopelang.From_desugared pass performs a few important transformation:

The rest of the pass is performed on the scopelang ast:

  • Scopelang.Dependency analyses inter-scope dependencies as well as the well-foundedness of types
  • This is also where the main, full typing of the program takes place