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