omcg/module
Types
pub type CaseBranchData {
CaseBranchData(
expression: Node,
guard: option.Option(Node),
body: List(Node),
)
}
Constructors
-
CaseBranchData( expression: Node, guard: option.Option(Node), body: List(Node), )
pub type Field {
Field(name: option.Option(String), type_: Node)
}
Constructors
-
Field(name: option.Option(String), type_: Node)
pub type FunctionCallParameter {
FunctionCallParameter(
alias: option.Option(String),
value: Node,
)
}
Constructors
-
FunctionCallParameter(alias: option.Option(String), value: Node)
pub type FunctionDefinitionNS {
FunctionDefinitionNS(
create: fn() -> Module,
public: fn(Module) -> Module,
with_name: fn(Module, String) -> Module,
add_parameter: fn(Module, String, Module) -> Module,
add_untyped_parameter: fn(Module, String) -> Module,
add_aliased_parameter: fn(Module, String, String, Module) -> Module,
with_return_type: fn(Module, Module) -> Module,
add: fn(Module, Module) -> Module,
)
}
Constructors
-
FunctionDefinitionNS( create: fn() -> Module, public: fn(Module) -> Module, with_name: fn(Module, String) -> Module, add_parameter: fn(Module, String, Module) -> Module, add_untyped_parameter: fn(Module, String) -> Module, add_aliased_parameter: fn(Module, String, String, Module) -> Module, with_return_type: fn(Module, Module) -> Module, add: fn(Module, Module) -> Module, )
pub type FunctionDefinitionParameter {
FunctionDefinitionParameter(
alias: option.Option(String),
name: String,
type_: option.Option(Node),
)
}
Constructors
-
FunctionDefinitionParameter( alias: option.Option(String), name: String, type_: option.Option(Node), )
pub type Import {
Import(
path: List(String),
items: List(ImportItem),
alias: option.Option(String),
)
}
Constructors
-
Import( path: List(String), items: List(ImportItem), alias: option.Option(String), )
pub type ImportItem {
ImportType(name: String, alias: option.Option(String))
ImportItem(name: String, alias: option.Option(String))
}
Constructors
-
ImportType(name: String, alias: option.Option(String)) -
ImportItem(name: String, alias: option.Option(String))
pub type Node {
Root(body: List(Node))
FunctionDefinition(
public: Bool,
name: option.Option(String),
parameters: List(FunctionDefinitionParameter),
return_type: option.Option(Node),
body: List(Node),
)
BinaryOperation(lhs: Node, operator: Operator, rhs: Node)
Identifier(name: String)
FunctionCall(
lhs: Node,
parameters: List(FunctionCallParameter),
)
TypeVariant(data: TypeVariantData)
TypeDefinition(
public: Bool,
name: String,
generics: List(String),
variants: List(TypeVariantData),
)
ConstDefinition(
public: Bool,
as_type: Bool,
name: String,
value: Node,
)
CaseBranch(data: CaseBranchData)
CaseExpression(
expression: Node,
branches: List(CaseBranchData),
)
UseExpression(parameters: List(String), rhs: Node)
Literal(literal: Literal)
SectionComment(comment: String)
LetDefinition(
pattern: Node,
type_: option.Option(Node),
value: Node,
)
}
Constructors
-
Root(body: List(Node)) -
FunctionDefinition( public: Bool, name: option.Option(String), parameters: List(FunctionDefinitionParameter), return_type: option.Option(Node), body: List(Node), ) -
-
Identifier(name: String) -
FunctionCall(lhs: Node, parameters: List(FunctionCallParameter)) -
TypeVariant(data: TypeVariantData) -
TypeDefinition( public: Bool, name: String, generics: List(String), variants: List(TypeVariantData), ) -
ConstDefinition( public: Bool, as_type: Bool, name: String, value: Node, ) -
CaseBranch(data: CaseBranchData) -
CaseExpression(expression: Node, branches: List(CaseBranchData)) -
UseExpression(parameters: List(String), rhs: Node) -
Literal(literal: Literal) -
SectionComment(comment: String) -
LetDefinition( pattern: Node, type_: option.Option(Node), value: Node, )
pub type Operator {
Access
Add
Subtract
Multiply
Divide
FloatAdd
FloatSubtract
FloatDivide
FloatMultiply
StringConcat
Pipe
}
Constructors
-
Access -
Add -
Subtract -
Multiply -
Divide -
FloatAdd -
FloatSubtract -
FloatDivide -
FloatMultiply -
StringConcat -
Pipe
pub type TypeVariantNS {
TypeVariantNS(
create: fn(String) -> Module,
field: fn(Module, option.Option(String), Module) -> Module,
)
}
Constructors
-
TypeVariantNS( create: fn(String) -> Module, field: fn(Module, option.Option(String), Module) -> Module, )
Values
pub fn add_aliased_import(
module module: Module,
path path: List(String),
alias alias: String,
) -> Module
pub fn add_aliased_item_import(
module module: Module,
path path: List(String),
name name: String,
alias alias: String,
) -> Module
pub fn add_aliased_type_import(
module module: Module,
path path: List(String),
name name: String,
alias alias: String,
) -> Module
pub fn add_item_import(
module module: Module,
path path: List(String),
name name: String,
) -> Module
pub fn add_type_import(
module module: Module,
path path: List(String),
name name: String,
) -> Module
pub const binop: BinaryOperationNS
pub const case_branch: CaseBranchNS
pub const case_expression: CaseExpressionNS
pub const const_definition: ConstDefinitionNS
pub const function_call: FunctionCallNS
pub const function_definition: FunctionDefinitionNS
pub const identifier: IdentifierNS
pub const let_definition: LetDefinitionNS
pub fn node_to_string(node: Node, indent: Int) -> String
pub fn section_comment(comment: String) -> Module
pub fn to_string2(module: Module) -> String
pub const type_definition: TypeDefinitionNS
pub const type_variant: TypeVariantNS
pub const types: BuiltinTypesNS
pub const use_expression: UseExpressionNS