[][src]Module firm_construction::ast

Structs

Block

A Block in the AST is basically just a vector of statements.

ClassDeclaration

This AST node stores the Class declaration, which consists of a name and the members of the class.

ClassMember

This AST node describes a class member. Variants of class members are defined in ClassMemberKind. Every class member has a name.

Parameter

This AST node represents a method parameter. A parameter consists of a Type<'t> and a name.

Program

This is the top-level AST node. It stores all class declarations of the MiniJava program.

Type

A Type<'t> is basically a BasicType<'t>. Optional it can be an (n-dimensional) array type.

Enums

AST
ASTDiscriminants

Auto-generated discriminant enum variants

Attribute

Attributes can be given to a program with

BasicType

A BasicType<'t> is either one of

BasicTypeDiscriminants

Auto-generated discriminant enum variants

BinaryOp

Binary operations like comparisons (==, !=, <=, ...), logical operations (||, &&) or algebraic operation (+, -, *, /, %).

ClassMemberKind

A class member is either one of

ClassMemberKindDiscriminants

Auto-generated discriminant enum variants

Expr

An expression is either one of

ExprDiscriminants

Auto-generated discriminant enum variants

Stmt

A statement can have one of the kinds:

StmtDiscriminants

Auto-generated discriminant enum variants

UnaryOp

One of the unary operations ! and -

Type Definitions

ArgumentList
ParameterList