Expand description

Parsing and AST types.

The entrypoint is to invoke parse_kdl_script which is implicitly handled by Compiler::compile_path or Compiler::compile_string and will produce a ParsedProgram.

Things like name resolution are handled by the type checker.

Structs

A transparent type alias.
An attribute declaring a rust-style derive (unused, just for testing).
An attribute declaring this type should be packed (remove padding/align).
An attribute to passthrough to the target language.
A c-like enum decl.
A variant of an EnumDecl.
A function declaration
An integer expression (literal)
An error that occured during parsing
A Parsed KDLScript program
A block for a PunDecl.
A type pun between different languages.
The environment required to resolve a PunSelector.
A struct decl.
A tagged union (rust-like enum).
A variant of a TaggedDecl.
A (name, type) pair that occurs in many places like field/arg decls.
An untagged union decl.

Enums

An attribute that can be hung off a function or type.
A selector for a PunBlock
A Type declaration
A type “name” (which may be structural like [u32; 4]).

Functions

Parse a KdlScript program!

Type Definitions

A string that may refer to another item like a type of function