glance

Types

pub type AssignmentKind {
  Let
  LetAssert(message: option.Option(Expression))
}

Constructors

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

pub type Constant {
  Constant(name: String, publicity: Publicity, annotation: option.Option(
    Type,
  ), value: Expression)
}

Constructors

pub type CustomType {
  CustomType(location: Span, name: String, publicity: Publicity, opaque_: Bool, parameters: List(
    String,
  ), variants: List(Variant))
}

Constructors

  • CustomType(location: Span, name: String, publicity: Publicity, opaque_: Bool, parameters: List(
      String,
    ), variants: List(Variant))
pub type Definition(definition) {
  Definition(attributes: List(Attribute), definition: definition)
}

Constructors

  • Definition(attributes: List(Attribute), definition: definition)
pub type Error {
  UnexpectedEndOfInput
  UnexpectedToken(token: token.Token, position: glexer.Position)
}

Constructors

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

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

pub type Function {
  Function(location: Span, name: String, publicity: Publicity, parameters: List(
    FunctionParameter,
  ), return: option.Option(Type), body: List(Statement))
}

Constructors

pub type FunctionParameter {
  FunctionParameter(label: option.Option(String), name: AssignmentName, type_: option.Option(
    Type,
  ))
}

Constructors

pub type Import {
  Import(location: Span, module: String, alias: option.Option(
    AssignmentName,
  ), unqualified_types: List(UnqualifiedImport), unqualified_values: List(
    UnqualifiedImport,
  ))
}

Constructors

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

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

pub type Publicity {
  Public
  Private
}

Constructors

  • Public
  • Private
pub type RecordUpdateField(t) {
  RecordUpdateField(label: String, item: option.Option(t))
}

Constructors

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

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))
  • TupleType(location: Span, elements: List(Type))
  • FunctionType(location: Span, parameters: List(Type), return: Type)
  • VariableType(location: Span, name: String)
  • HoleType(location: Span, name: String)
pub type TypeAlias {
  TypeAlias(location: Span, name: String, publicity: Publicity, parameters: List(
    String,
  ), aliased: Type)
}

Constructors

  • TypeAlias(location: Span, name: String, publicity: Publicity, parameters: List(
      String,
    ), aliased: Type)
pub type UnqualifiedImport {
  UnqualifiedImport(name: String, alias: option.Option(String))
}

Constructors

pub type UsePattern {
  UsePattern(pattern: Pattern, annotation: option.Option(Type))
}

Constructors

pub type Variant {
  Variant(name: String, fields: List(VariantField), attributes: List(
    Attribute,
  ))
}

Constructors

pub type VariantField {
  LabelledVariantField(item: Type, label: String)
  UnlabelledVariantField(item: Type)
}

Constructors

  • LabelledVariantField(item: Type, label: String)
  • UnlabelledVariantField(item: Type)

Values

pub fn module(src: String) -> Result(Module, Error)
pub fn precedence(operator: BinaryOperator) -> Int
Search Document