Fix bug.
This commit is contained in:
parent
7496c77ac9
commit
54d68c1061
@ -2702,6 +2702,8 @@ fn parse_custom_syntax(
|
|||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let parse_func = &syntax.parse;
|
||||||
|
|
||||||
let mut segments: StaticVec<_> = Default::default();
|
let mut segments: StaticVec<_> = Default::default();
|
||||||
segments.push(key.to_string());
|
segments.push(key.to_string());
|
||||||
|
|
||||||
@ -2709,7 +2711,6 @@ fn parse_custom_syntax(
|
|||||||
settings.pos = input.peek().unwrap().1;
|
settings.pos = input.peek().unwrap().1;
|
||||||
let settings = settings.level_up();
|
let settings = settings.level_up();
|
||||||
|
|
||||||
let parse_func = &syntax.parse;
|
|
||||||
let token =
|
let token =
|
||||||
if let Some(seg) = parse_func(&segments).map_err(|err| err.0.into_err(settings.pos))? {
|
if let Some(seg) = parse_func(&segments).map_err(|err| err.0.into_err(settings.pos))? {
|
||||||
seg
|
seg
|
||||||
@ -2738,8 +2739,8 @@ fn parse_custom_syntax(
|
|||||||
exprs.push(Expr::Stmt(Box::new((stmt, pos))));
|
exprs.push(Expr::Stmt(Box::new((stmt, pos))));
|
||||||
segments.push(MARKER_BLOCK.into());
|
segments.push(MARKER_BLOCK.into());
|
||||||
}
|
}
|
||||||
s => match input.peek().unwrap() {
|
s => match input.next().unwrap() {
|
||||||
(Token::LexError(err), pos) => return Err(err.into_err(*pos)),
|
(Token::LexError(err), pos) => return Err(err.into_err(pos)),
|
||||||
(t, _) if t.syntax().as_ref() == s => {
|
(t, _) if t.syntax().as_ref() == s => {
|
||||||
segments.push(t.syntax().into_owned());
|
segments.push(t.syntax().into_owned());
|
||||||
}
|
}
|
||||||
@ -2748,7 +2749,7 @@ fn parse_custom_syntax(
|
|||||||
s.to_string(),
|
s.to_string(),
|
||||||
format!("for '{}' expression", segments[0]),
|
format!("for '{}' expression", segments[0]),
|
||||||
)
|
)
|
||||||
.into_err(*pos))
|
.into_err(pos))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -52,9 +52,6 @@ fn test_custom_syntax() -> Result<(), Box<EvalAltResult>> {
|
|||||||
},
|
},
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
// 'while' is now a custom keyword so this it can no longer be a variable
|
|
||||||
engine.consume("let while = 0").expect_err("should error");
|
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
engine.eval::<INT>(
|
engine.eval::<INT>(
|
||||||
r"
|
r"
|
||||||
|
Loading…
Reference in New Issue
Block a user