Fixing ordering, using petgraph

This commit is contained in:
elvis
2025-07-03 23:44:10 +02:00
parent eb8455b84d
commit 62740cce84
6 changed files with 20 additions and 9 deletions

View File

@ -11,9 +11,9 @@ fn main() -> std::io::Result<()> {
// std::thread::sleep(std::time::Duration::new(2, 0));
// println!("{}", now.elapsed().as_micros());
examples::stats()?;
// examples::stats()?;
// examples::freq()?;
examples::freq()?;
// examples::hoop()?;
@ -23,7 +23,7 @@ fn main() -> std::io::Result<()> {
// examples::limit_freq()?;
examples::fast_freq()?;
// examples::fast_freq()?;
Ok(())
}

View File

@ -19,6 +19,16 @@ grammar(translator: &mut Translator);
// order
match {
"nill",
"{", "}",
"[", "]",
"(", ")",
"<", ">",
"r:", "i:", "p:",
"-", "^",
"true", "false",
"inW", "inR", "inI", "inP"
} else {
r"[0-9]+" => NUMBER
} else {
// r"([[:alpha:]]|\p{Emoji})([[:word:]]|\p{Emoji})*" => WORD
@ -98,6 +108,7 @@ Boxed_CTX_process: Rc<RSprocess> = {
}
CTX_process: RSprocess = {
"nill" => RSprocess::Nill,
<c: Set_of_entities> "." <k: CTX_process> =>
RSprocess::EntitySet{ entities: c, next_process: Rc::new(k) },
"(" <k: CTX_process> ")" => k,
@ -109,7 +120,6 @@ CTX_process: RSprocess = {
RSprocess::WaitEntity{ repeat: n,
repeated_process: Rc::new(k1),
next_process: Rc::new(k) },
"nill" => RSprocess::Nill,
<identifier: Literal> =>
RSprocess::RecursiveIdentifier{
identifier: translator.encode(identifier)

View File

@ -21,7 +21,7 @@ pub fn unfold(
if let Some(newprocess) = newprocess {
unfold(environment, newprocess)
} else {
Err(format!("Recursive call to missing symbol: {identifier}"))
Err(format!("Missing symbol in context: {identifier}"))
}
}
RSprocess::EntitySet {