From d9c354685f088c50b9788883e64607d606708f92 Mon Sep 17 00:00:00 2001 From: Dummi26 Date: Wed, 26 Apr 2023 22:52:31 +0200 Subject: [PATCH] changed syntax from var::type = statement to var: type = statement --- mers/src/parse/parse.rs | 60 ++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/mers/src/parse/parse.rs b/mers/src/parse/parse.rs index 0416761..44e7526 100755 --- a/mers/src/parse/parse.rs +++ b/mers/src/parse/parse.rs @@ -463,40 +463,38 @@ fn parse_statement_adv( }; match nchar { Some(':') => { - if let Some(':') = file.peek() { - _ = file.next(); - let file_pos_before_pot_type = *file.get_pos(); - let parsed_type = parse_type(file); - file.skip_whitespaces(); - if let Some('=') = file.next() { - let err_equals_sign = *file.get_pos(); - let start = start.trim(); - let derefs = start.chars().take_while(|c| *c == '*').count(); - match parse_statement(file) { - Ok(v) => break v - .output_to(start[derefs..].to_owned(), derefs) - .force_output_type(Some(match parsed_type { - Ok(v) => v, - Err(mut e) => { - e.context.push(( - format!("interpreted this as an assignment to a variable with the format :: = "), Some((err_start_of_statement, Some(err_equals_sign))) - )); - return Err(e); - } - })), - Err(mut e) => { - e.context.push(( - format!( - "statement was supposed to be assigned to variable {start}" - ), - Some((err_start_of_statement, Some(err_equals_sign))), - )); - return Err(e); - } + _ = file.next(); + let file_pos_before_pot_type = *file.get_pos(); + let parsed_type = parse_type(file); + file.skip_whitespaces(); + if let Some('=') = file.next() { + let err_equals_sign = *file.get_pos(); + let start = start.trim(); + let derefs = start.chars().take_while(|c| *c == '*').count(); + match parse_statement(file) { + Ok(v) => break v + .output_to(start[derefs..].to_owned(), derefs) + .force_output_type(Some(match parsed_type { + Ok(v) => v, + Err(mut e) => { + e.context.push(( + format!("interpreted this as an assignment to a variable with the format :: = "), Some((err_start_of_statement, Some(err_equals_sign))) + )); + return Err(e); + } + })), + Err(mut e) => { + e.context.push(( + format!( + "statement was supposed to be assigned to variable {start}" + ), + Some((err_start_of_statement, Some(err_equals_sign))), + )); + return Err(e); } } - file.set_pos(file_pos_before_pot_type); } + file.set_pos(file_pos_before_pot_type); return Ok(SStatement::new(SStatementEnum::EnumVariant( start, parse_statement(file)?,