glance
Types
pub type AssignmentKind {
Let
LetAssert(message: option.Option(Expression))
}
Constructors
-
Let
-
LetAssert(message: option.Option(Expression))
pub type AssignmentName {
Named(String)
Discarded(String)
}
Constructors
-
Named(String)
-
Discarded(String)
pub type Attribute {
Attribute(name: String, arguments: List(Expression))
}
Constructors
-
Attribute(name: String, arguments: List(Expression))
pub type BinaryOperator {
And
Or
Eq
NotEq
LtInt
LtEqInt
LtFloat
LtEqFloat
GtEqInt
GtInt
GtEqFloat
GtFloat
Pipe
AddInt
AddFloat
SubInt
SubFloat
MultInt
MultFloat
DivInt
DivFloat
RemainderInt
Concatenate
}
Constructors
-
And
-
Or
-
Eq
-
NotEq
-
LtInt
-
LtEqInt
-
LtFloat
-
LtEqFloat
-
GtEqInt
-
GtInt
-
GtEqFloat
-
GtFloat
-
Pipe
-
AddInt
-
AddFloat
-
SubInt
-
SubFloat
-
MultInt
-
MultFloat
-
DivInt
-
DivFloat
-
RemainderInt
-
Concatenate
pub type BitStringSegmentOption(t) {
BytesOption
IntOption
FloatOption
BitsOption
Utf8Option
Utf16Option
Utf32Option
Utf8CodepointOption
Utf16CodepointOption
Utf32CodepointOption
SignedOption
UnsignedOption
BigOption
LittleOption
NativeOption
SizeValueOption(t)
SizeOption(Int)
UnitOption(Int)
}
Constructors
-
BytesOption
-
IntOption
-
FloatOption
-
BitsOption
-
Utf8Option
-
Utf16Option
-
Utf32Option
-
Utf8CodepointOption
-
Utf16CodepointOption
-
Utf32CodepointOption
-
SignedOption
-
UnsignedOption
-
BigOption
-
LittleOption
-
NativeOption
-
SizeValueOption(t)
-
SizeOption(Int)
-
UnitOption(Int)
pub type Clause {
Clause(
patterns: List(List(Pattern)),
guard: option.Option(Expression),
body: Expression,
)
}
Constructors
-
Clause( patterns: List(List(Pattern)), guard: option.Option(Expression), body: Expression, )
pub type Constant {
Constant(
location: Span,
name: String,
publicity: Publicity,
annotation: option.Option(Type),
value: Expression,
)
}
Constructors
-
Constant( location: Span, name: String, publicity: Publicity, annotation: option.Option(Type), value: Expression, )
pub type Error {
UnexpectedEndOfInput
UnexpectedToken(token: token.Token, position: glexer.Position)
}
Constructors
-
UnexpectedEndOfInput
-
UnexpectedToken(token: token.Token, position: glexer.Position)
pub type Expression {
Int(location: Span, value: String)
Float(location: Span, value: String)
String(location: Span, value: String)
Variable(location: Span, name: String)
NegateInt(location: Span, value: Expression)
NegateBool(location: Span, value: Expression)
Block(location: Span, statements: List(Statement))
Panic(location: Span, message: option.Option(Expression))
Todo(location: Span, message: option.Option(Expression))
Tuple(location: Span, elements: List(Expression))
List(
location: Span,
elements: List(Expression),
rest: option.Option(Expression),
)
Fn(
location: Span,
arguments: List(FnParameter),
return_annotation: option.Option(Type),
body: List(Statement),
)
RecordUpdate(
location: Span,
module: option.Option(String),
constructor: String,
record: Expression,
fields: List(RecordUpdateField(Expression)),
)
FieldAccess(
location: Span,
container: Expression,
label: String,
)
Call(
location: Span,
function: Expression,
arguments: List(Field(Expression)),
)
TupleIndex(location: Span, tuple: Expression, index: Int)
FnCapture(
location: Span,
label: option.Option(String),
function: Expression,
arguments_before: List(Field(Expression)),
arguments_after: List(Field(Expression)),
)
BitString(
location: Span,
segments: List(
#(Expression, List(BitStringSegmentOption(Expression))),
),
)
Case(
location: Span,
subjects: List(Expression),
clauses: List(Clause),
)
BinaryOperator(
location: Span,
name: BinaryOperator,
left: Expression,
right: Expression,
)
Echo(location: Span, expression: option.Option(Expression))
}
Constructors
-
Int(location: Span, value: String)
-
Float(location: Span, value: String)
-
String(location: Span, value: String)
-
Variable(location: Span, name: String)
-
NegateInt(location: Span, value: Expression)
-
NegateBool(location: Span, value: Expression)
-
-
Panic(location: Span, message: option.Option(Expression))
-
Todo(location: Span, message: option.Option(Expression))
-
Tuple(location: Span, elements: List(Expression))
-
List( location: Span, elements: List(Expression), rest: option.Option(Expression), )
-
Fn( location: Span, arguments: List(FnParameter), return_annotation: option.Option(Type), body: List(Statement), )
-
RecordUpdate( location: Span, module: option.Option(String), constructor: String, record: Expression, fields: List(RecordUpdateField(Expression)), )
-
FieldAccess(location: Span, container: Expression, label: String)
-
Call( location: Span, function: Expression, arguments: List(Field(Expression)), )
-
TupleIndex(location: Span, tuple: Expression, index: Int)
-
FnCapture( location: Span, label: option.Option(String), function: Expression, arguments_before: List(Field(Expression)), arguments_after: List(Field(Expression)), )
-
BitString( location: Span, segments: List( #(Expression, List(BitStringSegmentOption(Expression))), ), )
-
Case( location: Span, subjects: List(Expression), clauses: List(Clause), )
-
BinaryOperator( location: Span, name: BinaryOperator, left: Expression, right: Expression, )
-
Echo(location: Span, expression: option.Option(Expression))
pub type Field(t) {
LabelledField(label: String, item: t)
ShorthandField(label: String)
UnlabelledField(item: t)
}
Constructors
-
LabelledField(label: String, item: t)
-
ShorthandField(label: String)
-
UnlabelledField(item: t)
pub type FnParameter {
FnParameter(name: AssignmentName, type_: option.Option(Type))
}
Constructors
-
FnParameter(name: AssignmentName, type_: option.Option(Type))
pub type Function {
Function(
location: Span,
name: String,
publicity: Publicity,
parameters: List(FunctionParameter),
return: option.Option(Type),
body: List(Statement),
)
}
Constructors
-
Function( location: Span, name: String, publicity: Publicity, parameters: List(FunctionParameter), return: option.Option(Type), body: List(Statement), )
pub type FunctionParameter {
FunctionParameter(
label: option.Option(String),
name: AssignmentName,
type_: option.Option(Type),
)
}
Constructors
-
FunctionParameter( label: option.Option(String), name: AssignmentName, type_: option.Option(Type), )
pub type Import {
Import(
location: Span,
module: String,
alias: option.Option(AssignmentName),
unqualified_types: List(UnqualifiedImport),
unqualified_values: List(UnqualifiedImport),
)
}
Constructors
-
Import( location: Span, module: String, alias: option.Option(AssignmentName), unqualified_types: List(UnqualifiedImport), unqualified_values: List(UnqualifiedImport), )
pub type Module {
Module(
imports: List(Definition(Import)),
custom_types: List(Definition(CustomType)),
type_aliases: List(Definition(TypeAlias)),
constants: List(Definition(Constant)),
functions: List(Definition(Function)),
)
}
Constructors
-
Module( imports: List(Definition(Import)), custom_types: List(Definition(CustomType)), type_aliases: List(Definition(TypeAlias)), constants: List(Definition(Constant)), functions: List(Definition(Function)), )
pub type Pattern {
PatternInt(location: Span, value: String)
PatternFloat(location: Span, value: String)
PatternString(location: Span, value: String)
PatternDiscard(location: Span, name: String)
PatternVariable(location: Span, name: String)
PatternTuple(location: Span, elements: List(Pattern))
PatternList(
location: Span,
elements: List(Pattern),
tail: option.Option(Pattern),
)
PatternAssignment(
location: Span,
attern: Pattern,
name: String,
)
PatternConcatenate(
location: Span,
prefix: String,
prefix_name: option.Option(AssignmentName),
rest_name: AssignmentName,
)
PatternBitString(
location: Span,
segments: List(
#(Pattern, List(BitStringSegmentOption(Pattern))),
),
)
PatternVariant(
location: Span,
module: option.Option(String),
constructor: String,
arguments: List(Field(Pattern)),
with_spread: Bool,
)
}
Constructors
-
PatternInt(location: Span, value: String)
-
PatternFloat(location: Span, value: String)
-
PatternString(location: Span, value: String)
-
PatternDiscard(location: Span, name: String)
-
PatternVariable(location: Span, name: String)
-
-
PatternList( location: Span, elements: List(Pattern), tail: option.Option(Pattern), )
-
-
PatternConcatenate( location: Span, prefix: String, prefix_name: option.Option(AssignmentName), rest_name: AssignmentName, )
-
PatternBitString( location: Span, segments: List( #(Pattern, List(BitStringSegmentOption(Pattern))), ), )
-
PatternVariant( location: Span, module: option.Option(String), constructor: String, arguments: List(Field(Pattern)), with_spread: Bool, )
pub type RecordUpdateField(t) {
RecordUpdateField(label: String, item: option.Option(t))
}
Constructors
-
RecordUpdateField(label: String, item: option.Option(t))
pub type Span {
Span(start: Int, end: Int)
}
Constructors
-
Span(start: Int, end: Int)
A span within a file, indicated by byte offsets.
pub type Statement {
Use(
location: Span,
patterns: List(UsePattern),
function: Expression,
)
Assignment(
location: Span,
kind: AssignmentKind,
pattern: Pattern,
annotation: option.Option(Type),
value: Expression,
)
Assert(
location: Span,
expression: Expression,
message: option.Option(Expression),
)
Expression(Expression)
}
Constructors
-
Use( location: Span, patterns: List(UsePattern), function: Expression, )
-
Assignment( location: Span, kind: AssignmentKind, pattern: Pattern, annotation: option.Option(Type), value: Expression, )
-
Assert( location: Span, expression: Expression, message: option.Option(Expression), )
-
Expression(Expression)
pub type Type {
NamedType(
location: Span,
name: String,
module: option.Option(String),
parameters: List(Type),
)
TupleType(location: Span, elements: List(Type))
FunctionType(
location: Span,
parameters: List(Type),
return: Type,
)
VariableType(location: Span, name: String)
HoleType(location: Span, name: String)
}
Constructors
-
NamedType( location: Span, name: String, module: option.Option(String), parameters: List(Type), )
-
-
-
VariableType(location: Span, name: String)
-
HoleType(location: Span, name: String)
pub type UnqualifiedImport {
UnqualifiedImport(name: String, alias: option.Option(String))
}
Constructors
-
UnqualifiedImport(name: String, alias: option.Option(String))
pub type UsePattern {
UsePattern(pattern: Pattern, annotation: option.Option(Type))
}
Constructors
-
UsePattern(pattern: Pattern, annotation: option.Option(Type))
pub type Variant {
Variant(
name: String,
fields: List(VariantField),
attributes: List(Attribute),
)
}
Constructors
-
Variant( name: String, fields: List(VariantField), attributes: List(Attribute), )
Values
pub fn precedence(operator: BinaryOperator) -> Int