///|
pub suberror ParseError {
UnexpectedEnd(position~ : SourcePosition)
UnexpectedCharacter(position~ : SourcePosition, character~ : Char)
Expected(position~ : SourcePosition, token~ : String)
InvalidNumber(position~ : SourcePosition, text~ : String)
InvalidReference(position~ : SourcePosition, text~ : String)
InvalidEntity(position~ : SourcePosition, text~ : String)
InvalidHeader(position~ : SourcePosition, text~ : String)
UnsupportedFile(text~ : String)
} derive(Debug)
///|
fn make_position(offset : Int, line : Int, column : Int) -> SourcePosition {
SourcePosition::{ offset, line, column }
}
///|
fn unexpected_end(offset : Int, line : Int, column : Int) -> ParseError {
ParseError::UnexpectedEnd(position=make_position(offset, line, column))
}
///|
fn expected(
offset : Int,
line : Int,
column : Int,
token : String,
) -> ParseError {
ParseError::Expected(position=make_position(offset, line, column), token~)
}