mirror of
https://codeberg.org/unspeaker/tengri.git
synced 2025-12-06 19:56:44 +01:00
This commit is contained in:
parent
a4a1066f18
commit
abc87d3234
7 changed files with 25 additions and 197 deletions
|
|
@ -42,7 +42,7 @@ from_dsl!(@a: Align<A>: |state, iter|if let Some(Token { value: Value::Key(key),
|
|||
"align/n"|"align/s"|"align/e"|"align/w"|
|
||||
"align/nw"|"align/sw"|"align/ne"|"align/se" => {
|
||||
let _ = iter.next().unwrap();
|
||||
let content = state.take_or_fail(&mut iter.clone(), "expected content")?;
|
||||
let content = state.take_or_fail(&mut iter.clone(), ||"expected content")?;
|
||||
return Ok(Some(match key {
|
||||
"align/c" => Self::c(content),
|
||||
"align/x" => Self::x(content),
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@ impl<State: Dsl<A> + Dsl<B> + std::fmt::Debug, A, B> Namespace<State> for Bsp<A,
|
|||
..
|
||||
}) = words.peek() {
|
||||
let base = words.clone();
|
||||
let a: A = state.take_or_fail(words, "expected content 1")?;
|
||||
let b: B = state.take_or_fail(words, "expected content 2")?;
|
||||
let a: A = state.take_or_fail(words, ||"expected content 1")?;
|
||||
let b: B = state.take_or_fail(words, ||"expected content 2")?;
|
||||
return Ok(Some(match words.next() {
|
||||
Some(Token { value: Value::Key("bsp/n"), .. }) => Self::n(a, b),
|
||||
Some(Token { value: Value::Key("bsp/s"), .. }) => Self::s(a, b),
|
||||
|
|
|
|||
|
|
@ -18,9 +18,9 @@ impl<A, B, T: Dsl<bool> + Dsl<A> + Dsl<B>> Namespace<T> for Either<A, B> {
|
|||
let base = token.clone();
|
||||
let _ = token.next().unwrap();
|
||||
return Ok(Some(Self(
|
||||
state.take_or_fail(token, "either: no condition")?,
|
||||
state.take_or_fail(token, "either: no content 1")?,
|
||||
state.take_or_fail(token, "either: no content 2")?,
|
||||
state.take_or_fail(token, ||"either: no condition")?,
|
||||
state.take_or_fail(token, ||"either: no content 1")?,
|
||||
state.take_or_fail(token, ||"either: no content 2")?,
|
||||
)))
|
||||
}
|
||||
Ok(None)
|
||||
|
|
|
|||
|
|
@ -41,11 +41,11 @@ macro_rules! transform_xy {
|
|||
let mut base = token.clone();
|
||||
return Ok(Some(match token.next() {
|
||||
Some(Token{value:Value::Key($x),..}) =>
|
||||
Self::x(state.take_or_fail(token, "x: no content")?),
|
||||
Self::x(state.take_or_fail(token, ||"x: no content")?),
|
||||
Some(Token{value:Value::Key($y),..}) =>
|
||||
Self::y(state.take_or_fail(token, "y: no content")?),
|
||||
Self::y(state.take_or_fail(token, ||"y: no content")?),
|
||||
Some(Token{value:Value::Key($xy),..}) =>
|
||||
Self::xy(state.take_or_fail(token, "xy: no content")?),
|
||||
Self::xy(state.take_or_fail(token, ||"xy: no content")?),
|
||||
_ => unreachable!()
|
||||
}))
|
||||
}
|
||||
|
|
@ -87,17 +87,17 @@ macro_rules! transform_xy_unit {
|
|||
let mut base = token.clone();
|
||||
Some(match token.next() {
|
||||
Some(Token { value: Value::Key($x), .. }) => Self::x(
|
||||
state.take_or_fail(token, "x: no unit")?,
|
||||
state.take_or_fail(token, "x: no content")?,
|
||||
state.take_or_fail(token, ||"x: no unit")?,
|
||||
state.take_or_fail(token, ||"x: no content")?,
|
||||
),
|
||||
Some(Token { value: Value::Key($y), .. }) => Self::y(
|
||||
state.take_or_fail(token, "y: no unit")?,
|
||||
state.take_or_fail(token, "y: no content")?,
|
||||
state.take_or_fail(token, ||"y: no unit")?,
|
||||
state.take_or_fail(token, ||"y: no content")?,
|
||||
),
|
||||
Some(Token { value: Value::Key($x), .. }) => Self::xy(
|
||||
state.take_or_fail(token, "xy: no unit x")?,
|
||||
state.take_or_fail(token, "xy: no unit y")?,
|
||||
state.take_or_fail(token, "xy: no content")?
|
||||
state.take_or_fail(token, ||"xy: no unit x")?,
|
||||
state.take_or_fail(token, ||"xy: no unit y")?,
|
||||
state.take_or_fail(token, ||"xy: no content")?
|
||||
),
|
||||
_ => unreachable!(),
|
||||
})
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ impl<A, T: Dsl<bool> + Dsl<A>> Namespace<T> for When<A> {
|
|||
}) = token.peek() {
|
||||
let base = token.clone();
|
||||
return Ok(Some(Self(
|
||||
state.take_or_fail(token, "cond: no condition")?,
|
||||
state.take_or_fail(token, "cond: no content")?,
|
||||
state.take_or_fail(token, ||"cond: no condition")?,
|
||||
state.take_or_fail(token, ||"cond: no content")?,
|
||||
)))
|
||||
} else {
|
||||
None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue