eyg/parser/parser
Types
pub type Match =
#(
#(String, #(Int, Int)),
option.Option(#(#(Int, Int), #(String, #(Int, Int)))),
)
pub type Pattern {
Assign(String)
Destructure(
List(
#(
#(String, #(Int, Int)),
option.Option(#(#(Int, Int), #(String, #(Int, Int)))),
),
),
)
}
Constructors
-
Assign(String) -
Destructure( List( #( #(String, #(Int, Int)), option.Option(#(#(Int, Int), #(String, #(Int, Int)))), ), ), )
pub type Reason {
UnexpectEnd
UnexpectedToken(token: token.Token, position: Int)
MissingEquals(position: Int)
MissingArrow(position: Int)
UnclosedFunctionBody(open_at: Int)
ExpectedEffectName(keyword: String, position: Int)
ExpectedBuiltinName(position: Int)
InvalidCidReference(position: Int)
InvalidImportPath(position: Int)
TrailingTokens(token: token.Token, position: Int)
InvalidCharacter(char: String, position: Int)
UnterminatedStringLiteral(position: Int)
InvalidEscapeSequence(escape_char: String, position: Int)
}
Constructors
-
UnexpectEnd -
UnexpectedToken(token: token.Token, position: Int) -
MissingEquals(position: Int) -
MissingArrow(position: Int) -
UnclosedFunctionBody(open_at: Int) -
ExpectedEffectName(keyword: String, position: Int) -
ExpectedBuiltinName(position: Int) -
InvalidCidReference(position: Int) -
InvalidImportPath(position: Int) -
TrailingTokens(token: token.Token, position: Int) -
InvalidCharacter(char: String, position: Int) -
UnterminatedStringLiteral(position: Int) -
InvalidEscapeSequence(escape_char: String, position: Int)
Values
pub fn block(
tokens: List(#(token.Token, Int)),
) -> Result(
#(
#(tree.Expression(#(Int, Int)), #(Int, Int)),
List(#(token.Token, Int)),
),
Reason,
)
pub fn build_list(
reversed: List(
#(Int, #(tree.Expression(#(Int, Int)), #(Int, Int))),
),
acc: #(tree.Expression(#(Int, Int)), #(Int, Int)),
) -> #(tree.Expression(#(Int, Int)), #(Int, Int))
pub fn build_overwrite(
reversed: List(
#(#(a, b), String, #(tree.Expression(#(a, b)), #(a, b))),
),
acc: #(tree.Expression(#(a, b)), #(a, b)),
) -> #(tree.Expression(#(a, b)), #(a, b))
pub fn build_record(
reversed: List(
#(#(a, b), String, #(tree.Expression(#(a, b)), #(a, b))),
),
acc: #(tree.Expression(#(a, b)), #(a, b)),
) -> #(tree.Expression(#(a, b)), #(a, b))
pub fn describe_reason(reason: Reason) -> String
pub fn destructured(
matches: List(
#(
#(String, #(Int, Int)),
option.Option(#(#(Int, Int), #(String, #(Int, Int)))),
),
),
term: #(tree.Expression(#(Int, Int)), #(Int, Int)),
) -> #(tree.Expression(#(Int, Int)), #(Int, Int))
pub fn do_patterns(
tokens: List(#(token.Token, Int)),
acc: List(Pattern),
) -> Result(#(List(Pattern), List(#(token.Token, Int))), Reason)
pub fn expression(
tokens: List(#(token.Token, Int)),
) -> Result(
#(
#(tree.Expression(#(Int, Int)), #(Int, Int)),
List(#(token.Token, Int)),
),
Reason,
)