... still not that interesting, but at this point slightly divergent from the book: The book embraces mutability for interpreter state, initially for tracking whether an error condition has occured. I avoid this by instead defining an error type and collecting the error values, to be handled later on. Notes: So far nothing special, but this is just the beginning of the book. I like the style it is written in and it has pointed to some interesting resources, such as a 1965 paper titled "The Next 700 Languages". Change-Id: I030b38438fec9eb55372bf547af225138908230a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2144 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
14 lines
262 B
Rust
14 lines
262 B
Rust
#[derive(Debug)]
|
|
pub enum ErrorKind {
|
|
UnexpectedChar(char),
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
pub struct Error {
|
|
pub line: usize,
|
|
pub kind: ErrorKind,
|
|
}
|
|
|
|
pub fn report(loc: &str, err: &Error) {
|
|
eprintln!("[line {}] Error {}: {:?}", err.line, loc, err.kind);
|
|
}
|