added better error messages inspired by rustc/cargo

but not as good
This commit is contained in:
Mark
2023-10-23 21:48:15 +02:00
parent 62ed8fc2bd
commit ea95a16c30
30 changed files with 557 additions and 260 deletions

View File

@@ -1,10 +1,10 @@
use crate::{parsing::SourcePos, program};
use crate::program::{self, run::SourceRange};
use super::{CompInfo, MersStatement};
#[derive(Debug)]
pub struct AssignTo {
pub pos_in_src: SourcePos,
pub pos_in_src: SourceRange,
pub target: Box<dyn MersStatement>,
pub source: Box<dyn MersStatement>,
}

View File

@@ -1,10 +1,13 @@
use crate::{info, parsing::SourcePos, program};
use crate::{
info,
program::{self, run::SourceRange},
};
use super::{CompInfo, MersStatement};
#[derive(Debug)]
pub struct Block {
pub pos_in_src: SourcePos,
pub pos_in_src: SourceRange,
pub statements: Vec<Box<dyn MersStatement>>,
}
impl MersStatement for Block {

View File

@@ -1,11 +1,11 @@
use crate::parsing::SourcePos;
use crate::program::run::SourceRange;
use crate::{info, program};
use super::{CompInfo, MersStatement};
#[derive(Debug)]
pub struct Chain {
pub pos_in_src: SourcePos,
pub pos_in_src: SourceRange,
pub first: Box<dyn MersStatement>,
pub chained: Box<dyn MersStatement>,
}

View File

@@ -1,4 +1,4 @@
use crate::parsing::SourcePos;
use crate::program::run::SourceRange;
use std::sync::{Arc, Mutex};
use crate::{
@@ -10,7 +10,7 @@ use super::{CompInfo, MersStatement};
#[derive(Debug)]
pub struct Function {
pub pos_in_src: SourcePos,
pub pos_in_src: SourceRange,
pub arg: Box<dyn MersStatement>,
pub run: Box<dyn MersStatement>,
}

View File

@@ -1,10 +1,10 @@
use crate::{parsing::SourcePos, program};
use crate::program::{self, run::SourceRange};
use super::{CompInfo, MersStatement};
#[derive(Debug)]
pub struct If {
pub pos_in_src: SourcePos,
pub pos_in_src: SourceRange,
pub condition: Box<dyn MersStatement>,
pub on_true: Box<dyn MersStatement>,
pub on_false: Option<Box<dyn MersStatement>>,

View File

@@ -1,11 +1,11 @@
use crate::parsing::SourcePos;
use crate::program;
use crate::program::run::SourceRange;
use super::{CompInfo, MersStatement};
#[derive(Debug)]
pub struct InitTo {
pub pos_in_src: SourcePos,
pub pos_in_src: SourceRange,
pub target: Box<dyn MersStatement>,
pub source: Box<dyn MersStatement>,
}

View File

@@ -1,10 +1,13 @@
use crate::{info, parsing::SourcePos, program};
use crate::{
info,
program::{self, run::SourceRange},
};
use super::{CompInfo, MersStatement};
#[derive(Debug)]
pub struct Tuple {
pub pos_in_src: SourcePos,
pub pos_in_src: SourceRange,
pub elems: Vec<Box<dyn MersStatement>>,
}
impl MersStatement for Tuple {

View File

@@ -1,11 +1,11 @@
use crate::parsing::SourcePos;
use crate::program::run::SourceRange;
use crate::{data::Data, program};
use super::{CompInfo, MersStatement};
#[derive(Debug)]
pub struct Value {
pub pos_in_src: SourcePos,
pub pos_in_src: SourceRange,
pub data: Data,
}

View File

@@ -1,10 +1,13 @@
use crate::{info::Local, parsing::SourcePos, program};
use crate::{
info::Local,
program::{self, run::SourceRange},
};
use super::{CompInfo, MersStatement};
#[derive(Debug)]
pub struct Variable {
pub pos_in_src: SourcePos,
pub pos_in_src: SourceRange,
pub is_ref: bool,
pub var: String,
}