Crate kind_tree

source ·
Expand description

This crate describes two types of abstract syntax trees. one for sugared trees (that are useful to create documentation), to format and to locate “phisically” all of the nodes so we can generate a lot of error messages. The other one that is desugured is useful to interface with HVM and KDL.

Modules

  • The concrete AST. Describes the concrete AST with all of the sugars. It’s useful to pretty printing and resugarization from the type checker.
  • The desugared AST. This module describes an unsugared tree that is used by the type checker and by the targets.
  • Describes symbols (identifiers) on the language. It will be really useful when we change the Symbol to take a number instead of a string due to optimizations. Describes identifiers and symbols inside the language.
  • Telescope (Iterated sigma type representation)
  • The untyped AST. This module describes an unsugared and untyped tree that is a IR

Macros

Structs

  • Attributes describes some compiler specific aspects like inlining and derivations.

Enums