mirror of
https://github.com/Dummi26/mers.git
synced 2025-04-29 18:36:05 +02:00
changed syntax from var::type = statement to var: type = statement
This commit is contained in:
parent
dd017ffea4
commit
d9c354685f
@ -463,40 +463,38 @@ fn parse_statement_adv(
|
|||||||
};
|
};
|
||||||
match nchar {
|
match nchar {
|
||||||
Some(':') => {
|
Some(':') => {
|
||||||
if let Some(':') = file.peek() {
|
_ = file.next();
|
||||||
_ = file.next();
|
let file_pos_before_pot_type = *file.get_pos();
|
||||||
let file_pos_before_pot_type = *file.get_pos();
|
let parsed_type = parse_type(file);
|
||||||
let parsed_type = parse_type(file);
|
file.skip_whitespaces();
|
||||||
file.skip_whitespaces();
|
if let Some('=') = file.next() {
|
||||||
if let Some('=') = file.next() {
|
let err_equals_sign = *file.get_pos();
|
||||||
let err_equals_sign = *file.get_pos();
|
let start = start.trim();
|
||||||
let start = start.trim();
|
let derefs = start.chars().take_while(|c| *c == '*').count();
|
||||||
let derefs = start.chars().take_while(|c| *c == '*').count();
|
match parse_statement(file) {
|
||||||
match parse_statement(file) {
|
Ok(v) => break v
|
||||||
Ok(v) => break v
|
.output_to(start[derefs..].to_owned(), derefs)
|
||||||
.output_to(start[derefs..].to_owned(), derefs)
|
.force_output_type(Some(match parsed_type {
|
||||||
.force_output_type(Some(match parsed_type {
|
Ok(v) => v,
|
||||||
Ok(v) => v,
|
Err(mut e) => {
|
||||||
Err(mut e) => {
|
e.context.push((
|
||||||
e.context.push((
|
format!("interpreted this as an assignment to a variable with the format <var>::<var_type> = <statement>"), Some((err_start_of_statement, Some(err_equals_sign)))
|
||||||
format!("interpreted this as an assignment to a variable with the format <var>::<var_type> = <statement>"), Some((err_start_of_statement, Some(err_equals_sign)))
|
));
|
||||||
));
|
return Err(e);
|
||||||
return Err(e);
|
}
|
||||||
}
|
})),
|
||||||
})),
|
Err(mut e) => {
|
||||||
Err(mut e) => {
|
e.context.push((
|
||||||
e.context.push((
|
format!(
|
||||||
format!(
|
"statement was supposed to be assigned to variable {start}"
|
||||||
"statement was supposed to be assigned to variable {start}"
|
),
|
||||||
),
|
Some((err_start_of_statement, Some(err_equals_sign))),
|
||||||
Some((err_start_of_statement, Some(err_equals_sign))),
|
));
|
||||||
));
|
return Err(e);
|
||||||
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(
|
return Ok(SStatement::new(SStatementEnum::EnumVariant(
|
||||||
start,
|
start,
|
||||||
parse_statement(file)?,
|
parse_statement(file)?,
|
||||||
|
Loading…
Reference in New Issue
Block a user