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(name: String, publicity: Publicity, annotation: option.Option(
Type,
), value: Expression)
}
Constructors
-
Constant(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(String)
Float(String)
String(String)
Variable(String)
NegateInt(Expression)
NegateBool(Expression)
Block(List(Statement))
Panic(message: option.Option(Expression))
Todo(message: option.Option(Expression))
Tuple(elements: List(Expression))
List(elements: List(Expression), rest: option.Option(Expression))
Fn(arguments: List(FnParameter), return_annotation: option.Option(
Type,
), body: List(Statement))
RecordUpdate(module: option.Option(String), constructor: String, record: Expression, fields: List(
RecordUpdateField(Expression),
))
FieldAccess(container: Expression, label: String)
Call(function: Expression, arguments: List(Field(Expression)))
TupleIndex(tuple: Expression, index: Int)
FnCapture(label: option.Option(String), function: Expression, arguments_before: List(
Field(Expression),
), arguments_after: List(Field(Expression)))
BitString(segments: List(
#(Expression, List(BitStringSegmentOption(Expression))),
))
Case(subjects: List(Expression), clauses: List(Clause))
BinaryOperator(name: BinaryOperator, left: Expression, right: Expression)
Echo(expression: option.Option(Expression))
}
Constructors
-
Int(String) -
Float(String) -
String(String) -
Variable(String) -
NegateInt(Expression) -
NegateBool(Expression) -
Block(List(Statement)) -
Panic(message: option.Option(Expression)) -
Todo(message: option.Option(Expression)) -
Tuple(elements: List(Expression)) -
List(elements: List(Expression), rest: option.Option(Expression)) -
Fn(arguments: List(FnParameter), return_annotation: option.Option( Type, ), body: List(Statement)) -
RecordUpdate(module: option.Option(String), constructor: String, record: Expression, fields: List( RecordUpdateField(Expression), )) -
FieldAccess(container: Expression, label: String) -
Call(function: Expression, arguments: List(Field(Expression))) -
TupleIndex(tuple: Expression, index: Int) -
FnCapture(label: option.Option(String), function: Expression, arguments_before: List( Field(Expression), ), arguments_after: List(Field(Expression))) -
BitString(segments: List( #(Expression, List(BitStringSegmentOption(Expression))), )) -
Case(subjects: List(Expression), clauses: List(Clause)) -
BinaryOperator(name: BinaryOperator, left: Expression, right: Expression) -
Echo(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(value: String)
PatternFloat(value: String)
PatternString(value: String)
PatternDiscard(name: String)
PatternVariable(name: String)
PatternTuple(elements: List(Pattern))
PatternList(elements: List(Pattern), tail: option.Option(
Pattern,
))
PatternAssignment(pattern: Pattern, name: String)
PatternConcatenate(prefix: String, prefix_name: option.Option(
AssignmentName,
), rest_name: AssignmentName)
PatternBitString(segments: List(
#(Pattern, List(BitStringSegmentOption(Pattern))),
))
PatternVariant(module: option.Option(String), constructor: String, arguments: List(
Field(Pattern),
), with_spread: Bool)
}
Constructors
-
PatternInt(value: String) -
PatternFloat(value: String) -
PatternString(value: String) -
PatternDiscard(name: String) -
PatternVariable(name: String) -
PatternTuple(elements: List(Pattern)) -
PatternList(elements: List(Pattern), tail: option.Option(Pattern)) -
PatternAssignment(pattern: Pattern, name: String) -
PatternConcatenate(prefix: String, prefix_name: option.Option( AssignmentName, ), rest_name: AssignmentName) -
PatternBitString(segments: List( #(Pattern, List(BitStringSegmentOption(Pattern))), )) -
PatternVariant(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(patterns: List(UsePattern), function: Expression)
Assignment(kind: AssignmentKind, pattern: Pattern, annotation: option.Option(
Type,
), value: Expression)
Assert(expression: Expression, message: option.Option(
Expression,
))
Expression(Expression)
}
Constructors
-
Use(patterns: List(UsePattern), function: Expression) -
Assignment(kind: AssignmentKind, pattern: Pattern, annotation: option.Option( Type, ), value: Expression) -
Assert(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