DEV: remove some unneccessary error output.

Working towards Issue #45
This commit is contained in:
Jeremy Wall 2019-05-28 20:53:13 -05:00
parent 07d132bebc
commit e5f406d4e9
3 changed files with 9 additions and 32 deletions

View File

@ -162,7 +162,6 @@ fn test_assert_just_keyword_compile_failures() {
Regex::new(r"line: 1, column: 1").unwrap(),
Regex::new(r"Expected Tuple \{ok=<bool>, desc=<str>\}: at <eval> line: 1, column: 8")
.unwrap(),
Regex::new(r"Expected Expression: at <eval> line: 1, column: 8").unwrap(),
],
);
}
@ -251,8 +250,6 @@ fn test_binary_operator_missing_operand_compile_failure() {
assert_build_failure(
"1 +",
vec![
Regex::new(r"Abort while parsing operator expression: at <eval> line: 1, column: 1")
.unwrap(),
Regex::new(r"Missing operand for binary expression: at <eval> line: 1, column: 4")
.unwrap(),
],
@ -385,7 +382,7 @@ fn test_incomplete_tuple_key_value_missing_value_compile_failure() {
assert_build_failure(
"{foo=",
vec![
Regex::new(r"Expected Expression").unwrap(),
Regex::new(r"Not a Bareword").unwrap(),
Regex::new(r"at <eval> line: 1, column: 6").unwrap(),
],
)
@ -485,7 +482,7 @@ fn test_let_missing_expression_compile_failure() {
assert_build_failure(
"let foo =",
vec![
Regex::new(r"Expected Expression").unwrap(),
Regex::new(r"Expected Expression to bind").unwrap(),
Regex::new(r"at <eval> line: 1, column: 10").unwrap(),
],
)

View File

@ -775,7 +775,7 @@ fn expression(input: SliceIter<Token>) -> ParseResult<Expression> {
let _input = input.clone();
match trace_parse!(_input, op_expression) {
Result::Incomplete(i) => Result::Incomplete(i),
Result::Fail(_) => trace_parse!(input, wrap_err!(non_op_expression, "Expected Expression")),
Result::Fail(_) => trace_parse!(input, non_op_expression),
Result::Abort(e) => Result::Abort(e),
Result::Complete(rest, expr) => Result::Complete(rest, expr),
}
@ -799,7 +799,7 @@ make_fn!(
pos => pos,
name => wrap_err!(match_type!(BAREWORD), "Expected name for binding"),
_ => punct!("="),
val => wrap_err!(trace_parse!(expression), "Expected Expression"),
val => trace_parse!(wrap_err!(expression, "Expected Expression to bind")),
_ => punct!(";"),
(Statement::Let(LetDef {
pos: pos,

View File

@ -400,39 +400,19 @@ pub fn parse_precedence(i: SliceIter<Element>) -> Result<SliceIter<Element>, Exp
pub fn op_expression<'a>(i: SliceIter<'a, Token>) -> Result<SliceIter<Token>, Expression> {
let preparse = parse_operand_list(i.clone());
match preparse {
Result::Fail(e) => {
let err = Error::caused_by(
"Failed while parsing operator expression",
Box::new(e),
Box::new(i),
);
Result::Fail(err)
}
Result::Abort(e) => {
let err = Error::caused_by(
"Abort while parsing operator expression",
Box::new(e),
Box::new(i),
);
Result::Abort(err)
}
Result::Fail(e) => Result::Fail(e),
Result::Abort(e) => Result::Abort(e),
Result::Incomplete(i) => Result::Incomplete(i),
Result::Complete(rest, oplist) => {
let i_ = SliceIter::new(&oplist);
let parse_result = parse_precedence(i_);
match parse_result {
Result::Fail(_e) => {
let err = Error::new(
"Failed while parsing operator expression",
Box::new(rest.clone()),
);
Result::Fail(e) => {
let err = Error::new(e.get_msg(), Box::new(rest.clone()));
Result::Fail(err)
}
Result::Abort(e) => {
let err = Error::new(
format!("Abort while parsing operator expression\n{}", e),
Box::new(rest.clone()),
);
let err = Error::new(e.get_msg(), Box::new(rest.clone()));
Result::Abort(err)
}
Result::Incomplete(_) => Result::Incomplete(i.clone()),