mirror of
https://codeberg.org/unspeaker/tengri.git
synced 2025-12-06 11:46:42 +01:00
fix(dsl): tail condition
This commit is contained in:
parent
85c305385b
commit
9e0b7be9a9
1 changed files with 13 additions and 10 deletions
|
|
@ -6,19 +6,13 @@
|
|||
extern crate const_panic;
|
||||
use const_panic::PanicFmt;
|
||||
use std::fmt::Debug;
|
||||
|
||||
pub(crate) use std::error::Error;
|
||||
pub(crate) use std::sync::Arc;
|
||||
|
||||
pub(crate) use konst::string::{str_range, char_indices};
|
||||
pub(crate) use thiserror::Error;
|
||||
pub(crate) use ::tengri_core::*;
|
||||
|
||||
pub(crate) use self::DslError::*;
|
||||
|
||||
mod dsl_conv;
|
||||
pub use self::dsl_conv::*;
|
||||
|
||||
mod dsl_conv; pub use self::dsl_conv::*;
|
||||
mod dsl_parse;
|
||||
pub(crate) use self::dsl_parse::*;
|
||||
pub mod parse { pub use crate::dsl_parse::*; }
|
||||
|
|
@ -47,11 +41,20 @@ pub trait DslExp: Dsl {
|
|||
Ok(exp_peek(self.src())?)
|
||||
}
|
||||
fn head (&self) -> DslPerhaps<&str> {
|
||||
Ok(peek(&self.src()[1..])?)
|
||||
let start = 1;
|
||||
let src = self.src();
|
||||
let src = &src[start.min(src.len().saturating_sub(1))..];
|
||||
peek(src)
|
||||
}
|
||||
fn tail (&self) -> DslPerhaps<&str> {
|
||||
Ok(if let Some((head_start, head_len)) = seek(&self.src()[1..])? {
|
||||
peek(&self.src()[(1+head_start+head_len)..])?
|
||||
let start = 1;
|
||||
let src = self.src();
|
||||
let src = &src[start.min(src.len().saturating_sub(1))..];
|
||||
Ok(if let Some((head_start, head_len)) = seek(src)? {
|
||||
let start = 1 + head_start + head_len;
|
||||
let src = self.src();
|
||||
let src = &src[start.min(src.len().saturating_sub(1))..];
|
||||
peek(src)?
|
||||
} else {
|
||||
None
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue