Lines
100 %
Functions
50 %
Branches
#[derive(PartialEq, Eq, Debug)]
pub(crate) struct TranslationUnit {
pub(crate) external_decls: Vec<Decl>,
}
pub(crate) enum Decl {
Var(VarDecl),
Func(FuncDecl),
pub(crate) struct VarDecl {
pub(crate) type_specifier: Type,
// TODO(feroldi): This cannot be a string for long, it has to be a Symbol thing.
pub(crate) identifier: String,
pub(crate) initializer: Option<IntegerLiteral>,
pub(crate) struct FuncDecl {
pub(crate) ret_type_specifier: Type,
pub(crate) parameters: Vec<Param>,
pub(crate) struct Param {
pub(crate) identifier: Option<String>,
pub(crate) struct IntegerLiteral {
pub(crate) value: u64,
pub(crate) ty: Type,
pub(crate) enum Type {
BuiltinType(BuiltinTypeKind),
pub(crate) enum BuiltinTypeKind {
Int,
Long,