Module kdl_script::parse
source · 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.
- All of this gunk is only used for function bodies, which only exist in the meme
feature=eval
mode. - All of this gunk is only used for function bodies, which only exist in the meme
feature=eval
mode. - A c-like enum decl.
- A variant of an
EnumDecl
. - A function declaration
- An integer expression (literal)
- An error that occured during parsing
- All of this gunk is only used for function bodies, which only exist in the meme
feature=eval
mode. - All of this gunk is only used for function bodies, which only exist in the meme
feature=eval
mode. - A Parsed KDLScript program
- All of this gunk is only used for function bodies, which only exist in the meme
feature=eval
mode. - All of this gunk is only used for function bodies, which only exist in the meme
feature=eval
mode. - A block for a
PunDecl
. - A type pun between different languages.
- The environment required to resolve a
PunSelector
. - All of this gunk is only used for function bodies, which only exist in the meme
feature=eval
mode. - 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.
- All of this gunk is only used for function bodies, which only exist in the meme
feature=eval
mode. - All of this gunk is only used for function bodies, which only exist in the meme
feature=eval
mode. - A selector for a
PunBlock
- All of this gunk is only used for function bodies, which only exist in the meme
feature=eval
mode. - A Type declaration
- A type “name” (which may be structural like
[u32; 4]
).
Functions
- Parse a KdlScript program!
Type Aliases
- A string that may refer to another item like a type of function