2021-04-18 15:33:55 -05:00
|
|
|
use std::ops::Range;
|
|
|
|
|
2021-06-02 15:29:31 -05:00
|
|
|
use crate::brian::InterpretError;
|
|
|
|
|
2021-04-18 15:33:55 -05:00
|
|
|
#[derive(Debug, Clone)]
|
|
|
|
pub struct Error {
|
|
|
|
pub kind: ErrorKind,
|
|
|
|
pub position: Range<usize>,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Clone)]
|
|
|
|
pub enum ErrorKind {
|
2021-04-26 03:44:42 -05:00
|
|
|
SyntaxError(String),
|
|
|
|
EndOfTokenStream,
|
2021-04-27 04:09:19 -05:00
|
|
|
InvalidIdentifier,
|
2021-05-20 18:18:01 -05:00
|
|
|
UnknownVariable(String),
|
|
|
|
MeloVariable(String),
|
|
|
|
TypeError(String),
|
2021-05-25 21:22:38 -05:00
|
|
|
TopLevelBreak,
|
2021-05-27 10:05:57 -05:00
|
|
|
ArithmeticError,
|
2021-06-02 15:29:31 -05:00
|
|
|
BfInterpretError(InterpretError),
|
2021-04-27 06:48:56 -05:00
|
|
|
}
|