Error Messaging Redesign
This commit contains the following: * New data types to support full tracebacks * New traceback data type used across stl and ast * Updates to tests * fixes for error messaging in sym and some stl functions
This commit is contained in:
parent
91ad4eed12
commit
789349df48
24 changed files with 837 additions and 374 deletions
|
|
@ -20,6 +20,7 @@ use {
|
|||
ast::{
|
||||
eval, lex, run,
|
||||
Ctr, Seg, SymTable, Symbol,
|
||||
Traceback,
|
||||
},
|
||||
stdlib::{
|
||||
static_stdlib, dynamic_stdlib, load_defaults,
|
||||
|
|
@ -257,7 +258,7 @@ fn main() {
|
|||
// scope the below borrow of syms
|
||||
let cfg_file = env::var(CFG_FILE_VNAME).unwrap_or(cfg_file_name);
|
||||
run(cfg_file.clone(), &mut syms)
|
||||
.unwrap_or_else(|err: String| eprintln!("failed to load script {}\n{}", cfg_file, err));
|
||||
.unwrap_or_else(|err: Traceback| eprintln!("failed to load script {}\n{}", cfg_file, err));
|
||||
}
|
||||
dynamic_stdlib(&mut syms, Some(shell_state_bindings)).unwrap_or_else(|err: String| eprintln!("{}", err));
|
||||
|
||||
|
|
@ -332,19 +333,19 @@ fn main() {
|
|||
fn make_prompt(syms: &mut SymTable) -> CustomPrompt {
|
||||
let l_ctr = *syms
|
||||
.call_symbol(&L_PROMPT_VNAME.to_string(), &Seg::new(), true)
|
||||
.unwrap_or_else(|err: String| {
|
||||
.unwrap_or_else(|err: Traceback| {
|
||||
eprintln!("{}", err);
|
||||
Box::new(Ctr::String("<prompt broken!>".to_string()))
|
||||
});
|
||||
let r_ctr = *syms
|
||||
.call_symbol(&R_PROMPT_VNAME.to_string(), &Seg::new(), true)
|
||||
.unwrap_or_else(|err: String| {
|
||||
.unwrap_or_else(|err: Traceback| {
|
||||
eprintln!("{}", err);
|
||||
Box::new(Ctr::String("<prompt broken!>".to_string()))
|
||||
});
|
||||
let d_ctr = *syms
|
||||
.call_symbol(&PROMPT_DELIM_VNAME.to_string(), &Seg::new(), true)
|
||||
.unwrap_or_else(|err: String| {
|
||||
.unwrap_or_else(|err: Traceback| {
|
||||
eprintln!("{}", err);
|
||||
Box::new(Ctr::String("<prompt broken!>".to_string()))
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue