1mod lex_context;
2mod stream;
3pub(crate) mod token; pub use lex_context::{LexContext, Phase};
6pub use stream::Stream;
7pub use token::Token;
8
9#[derive(Debug)]
10pub enum ParseError {
11 Eof,
12 VariableIsntUtf8,
13 UnknownTokenStart(char),
14 BadEscape(&'static str),
15 InvalidEscape(char),
16 CliArgTooLarge,
17 InvalidDollarSign,
18 BadFloat,
19 MissingEndingBrace,
20 InvalidCliPosition(isize),
21 MissingEnvVar(std::ffi::OsString),
22 BadPath(crate::pathglob::PathParseError),
23 MissingEndQuote,
24 NotAndEndOfExpression,
25 MissingEndRegex,
26 NoClosingRightParen,
27 MissingRhsToAssignment,
28 MissingRhsToOp,
29 MissingRhsToLogicOp,
30 FileSizeLiteralTooLarge,
31 CliArgMissing,
32 AssignToNonVariable,
33 InvalidRegex(crate::regex::RegexParseError),
34}
35
36impl From<crate::regex::RegexParseError> for ParseError {
37 fn from(err: crate::regex::RegexParseError) -> Self {
38 Self::InvalidRegex(err)
39 }
40}