///|
pub enum LexicalError {
IllegalCharacter(Char)
UnterminatedString
UnterminatedStringInVariableInterploation
InterpInvalidMultilineString
InterpInvalidComment
InterpInvalidAttribute
InterpMissingExpression
InvalidDotInt(String)
MissingIdentifierAfterDot
InvalidByteLiteral(String)
Reserved_keyword(String)
InvalidMetavarSyntax(String)
}
///|
pub impl Show for LexicalError with fn output(self, logger) {
logger.write_string(
match self {
InvalidDotInt(s) => "invalid byte literal: \{s}"
InterpMissingExpression => "missing expression in string interpolation"
InterpInvalidAttribute => "invalid attribute in string interpolation"
InterpInvalidComment => "invalid comment in string interpolation"
InterpInvalidMultilineString =>
"invalid multiline string in string interpolation"
UnterminatedStringInVariableInterploation =>
"(unterminated string in variable interpolation)"
UnterminatedString => "(unterminated string)"
IllegalCharacter(c) => "unrecognized character u32: \{c}"
MissingIdentifierAfterDot => "missing identifier after dot"
InvalidByteLiteral(s) => "invalid byte literal: \{s}"
Reserved_keyword(s) => "reserved keyword: \{s}"
InvalidMetavarSyntax(s) => "invalid metavariable syntax: \{s}"
},
)
}