diff --git a/trinitry/.gitignore b/trinitry/.gitignore
deleted file mode 100644
index 4424904..0000000
--- a/trinitry/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-# build
-/target
-/result
-
-# It is a library
-Cargo.lock
diff --git a/trinitry/Cargo.toml b/trinitry/Cargo.toml
deleted file mode 100644
index 7e5737c..0000000
--- a/trinitry/Cargo.toml
+++ /dev/null
@@ -1,14 +0,0 @@
-[package]
-name = "trinitry"
-version = "0.1.0"
-edition = "2021"
-
-# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
-
-[dependencies]
-pest = "2.7.5"
-pest_derive = {version = "2.7.5", features = ["grammar-extras"]}
-
-# The header imports katex, a js latex parser, into the doc comments
-[package.metadata.docs.rs]
-rustdoc-args = [ "--html-in-header", "./docs-header.html" ]
diff --git a/trinitry/docs-header.html b/trinitry/docs-header.html
deleted file mode 100644
index beafd4d..0000000
--- a/trinitry/docs-header.html
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/trinitry/src/lib.rs b/trinitry/src/lib.rs
deleted file mode 100644
index 2af4dd3..0000000
--- a/trinitry/src/lib.rs
+++ /dev/null
@@ -1,192 +0,0 @@
-//! This crate is a parser for the 'Trinitry' (not 'Trinity') language, used to map all sort of
-//! Functions to a memorable command.
-//!
-//! This parser is more of a validator, as Trinitry does not support any language features besides
-//! the aforementioned commands and arguments. That includes some simple constructs like: '||' (OR)
-//! or '&&' (AND). If you need these features, simple write them in the language, you've written your
-//! Function in.
-//!
-//! # General specification
-//! ## Command
-//! Basically every command can be a series of alphanumeric ASCII values.
-//!
-//! Correctly spoken, the Language, containing all valid command names, is just the Kleene closure
-//! over an Alphabet $\Sigma$, which contains all alphanumeric characters:
-//! $$ \Sigma_{cmd} = \\{x | 0 \leqslant x \leqslant 9\\} \cup \\{x | "a" \leqslant x \leqslant "z"\\} \cup \\{x | "A" \leqslant x \leqslant "Z"\\} \cup \\{"\\_", "\text{-}", "."\\} $$
-//!
-//! ## Argument
-//! Arguments are similar to the command, although they can also contain spaces and quotes,
-//! if it's quoted and additional characters (here notated as "$\\dots{}$"):
-//! $$ \Sigma_{args-quoted} = \Sigma_{cmd} \cup \\{"\\text{"}", "\\ ", \\dots{}\\} $$
-//! $$ \Sigma_{args-single-quoted} = \Sigma_{cmd} \cup \\{"'", "\\ ", \\dots{}\\} $$
-//! $$ \Sigma_{args} = \Sigma_{cmd} \cup \\{\\dots{}\\} $$
-//! Look at the [trinitry.pest](../../../src/trinitry.pest) file for a full list of the additional
-//! allowed characters.
-//!
-//! # Examples
-//! ## Command
-//! A valid command would be something like that:
-//! ```text
-//! quit
-//! ```
-//! something like that would not be valid however, as Trinitry does not support these 'complex'
-//! language features:
-//! ```text
-//! write && quit
-//! ```
-//! ## Arguments
-//! A valid argumented command would be:
-//! ```text
-//! lua "function() print('Hi!') end"
-//! ```
-//! Whilst this would not be valid (that is, it would very likely not be what you want):
-//! ```text
-//! lua "function() print("Hi!") end"
-//! ```
-//! as the double quotes in the print statement actually unquote the argument, leaving you with
-//! three arguments:
-//! 1. `function() print(`
-//! 1. `Hi!`
-//! 1. `) end`
-use std::fmt::Display;
-
-use pest::{error::Error, Parser};
-use pest_derive::Parser;
-
-#[derive(Parser)]
-#[grammar = "trinitry.pest"]
-pub struct Trinitry {
- command: String,
- arguments: Vec,
-}
-
-impl Trinitry {
- pub fn new(input: &str) -> Result> {
- let parsed = Self::parse(Rule::trinitry, input)?;
-
- let command = {
- let command: Vec<_> = parsed.clone().find_tagged("command").collect();
-
- // Ensure that we have only one command
- // This should be ensured by the grammar, thus the 'debug_assert'
- debug_assert_eq!(command.len(), 1);
-
- // PERFORMANCE(@soispha): Replace this with `mem::take` (when pairs implements Default)
- // <2023-11-01>
- command
- .first()
- .expect("This should contain exactly one element")
- .to_owned()
- };
- let arguments: Vec<_> = parsed.clone().find_tagged("argument").collect();
-
- Ok(Trinitry {
- command: command.as_str().to_owned(),
- arguments: arguments
- .iter()
- .map(|arg| {
- let mut arg = arg.as_str().trim();
- arg = if let Some(new_arg) = arg.strip_prefix("\"") {
- new_arg
- } else {
- arg
- };
- arg = if let Some(new_arg) = arg.strip_suffix("\"") {
- new_arg
- } else {
- arg
- };
-
- arg = if let Some(new_arg) = arg.strip_prefix("'") {
- new_arg
- } else {
- arg
- };
- arg = if let Some(new_arg) = arg.strip_suffix("'") {
- new_arg
- } else {
- arg
- };
- arg.to_owned()
- })
- .collect(),
- })
- }
-}
-
-impl Display for Trinitry {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- if self.arguments.is_empty() {
- f.write_str(&self.command)
- } else {
- f.write_fmt(format_args!(
- "{} {}",
- &self.command,
- &self.arguments.join(" ")
- ))
- }
- }
-}
-
-mod tests;
-
-#[cfg(test)]
-mod test {
- use crate::Trinitry;
-
- #[test]
- fn parse_cmd() {
- let string = "quit";
- let p = Trinitry::new(string).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(&p.command, "quit");
- assert!(&p.arguments.is_empty());
- }
-
- #[test]
- fn parse_arg_clean() {
- let string = r##"lua print("Hi")"##;
- let p = Trinitry::new(string).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(&p.command, "lua");
- assert_eq!(&p.arguments[0], r#"print("Hi")"#);
- }
-
- #[test]
- fn parse_arg_quote() {
- let string = r##"write "some 'file' name""##;
- let p = Trinitry::new(string).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(&p.command, "write");
- assert_eq!(&p.arguments[0], "some 'file' name");
- }
-
- #[test]
- fn parse_arg_single_quote() {
- let string = r##"write 'some "file" name'"##;
- let p = Trinitry::new(string).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(&p.command, "write");
- assert_eq!(&p.arguments[0], "some \"file\" name");
- }
-
- #[test]
- fn parse_arg_multi() {
- let string = r##"write 'some "file" name' "other name" last"##;
- let p = Trinitry::new(string).unwrap_or_else(|e| {
- panic!("{}", e);
- });
-
- let expected_args = vec!["some \"file\" name", "other name", "last"]
- .iter()
- .map(|str| (*str).to_owned())
- .collect::>();
-
- assert_eq!(&p.command, "write");
- assert_eq!(&p.arguments, &expected_args);
- }
-}
diff --git a/trinitry/src/tests.rs b/trinitry/src/tests.rs
deleted file mode 100644
index 4a65b94..0000000
--- a/trinitry/src/tests.rs
+++ /dev/null
@@ -1,1365 +0,0 @@
-// DO NOT EDIT
-// This file is automatically generated by the 'update.sh' file, with data from:
-// https://raw.githubusercontent.com/minimaxir/big-list-of-naughty-strings/master/blns.txt
-
-#[cfg(test)]
-mod test {
- use crate::Trinitry;
- #[test]
- fn parse_0() {
- let p = Trinitry::new(r##"undefined"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"undefined"##, &p.to_string());
- }
- #[test]
- fn parse_1() {
- let p = Trinitry::new(r##"undef"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"undef"##, &p.to_string());
- }
- #[test]
- fn parse_2() {
- let p = Trinitry::new(r##"null"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"null"##, &p.to_string());
- }
- #[test]
- fn parse_3() {
- let p = Trinitry::new(r##"NULL"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"NULL"##, &p.to_string());
- }
- #[test]
- fn parse_4() {
- let p = Trinitry::new(r##"(null)"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_5() {
- let p = Trinitry::new(r##"nil"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"nil"##, &p.to_string());
- }
- #[test]
- fn parse_6() {
- let p = Trinitry::new(r##"NIL"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"NIL"##, &p.to_string());
- }
- #[test]
- fn parse_7() {
- let p = Trinitry::new(r##"true"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"true"##, &p.to_string());
- }
- #[test]
- fn parse_8() {
- let p = Trinitry::new(r##"True"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"True"##, &p.to_string());
- }
- #[test]
- fn parse_9() {
- let p = Trinitry::new(r##"TRUE"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"TRUE"##, &p.to_string());
- }
- #[test]
- fn parse_10() {
- let p = Trinitry::new(r##"FALSE"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"FALSE"##, &p.to_string());
- }
- #[test]
- fn parse_11() {
- let p = Trinitry::new(r##"None"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"None"##, &p.to_string());
- }
- #[test]
- fn parse_12() {
- let p = Trinitry::new(r##"then"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"then"##, &p.to_string());
- }
- #[test]
- fn parse_13() {
- let p = Trinitry::new(r##"\"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_14() {
- let p = Trinitry::new(r##"\\"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_15() {
- let p = Trinitry::new(r##"0"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"0"##, &p.to_string());
- }
- #[test]
- fn parse_16() {
- let p = Trinitry::new(r##"1"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"1"##, &p.to_string());
- }
- #[test]
- fn parse_17() {
- let p = Trinitry::new(r##"1.00"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"1.00"##, &p.to_string());
- }
- #[test]
- fn parse_18() {
- let p = Trinitry::new(r##"$1.00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_19() {
- let p = Trinitry::new(r##"1/2"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_20() {
- let p = Trinitry::new(r##"1E2"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"1E2"##, &p.to_string());
- }
- #[test]
- fn parse_21() {
- let p = Trinitry::new(r##"1E02"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"1E02"##, &p.to_string());
- }
- #[test]
- fn parse_22() {
- let p = Trinitry::new(r##"1E+02"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_23() {
- let p = Trinitry::new(r##"-1"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"-1"##, &p.to_string());
- }
- #[test]
- fn parse_24() {
- let p = Trinitry::new(r##"-1.00"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"-1.00"##, &p.to_string());
- }
- #[test]
- fn parse_25() {
- let p = Trinitry::new(r##"-$1.00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_26() {
- let p = Trinitry::new(r##"-1/2"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_27() {
- let p = Trinitry::new(r##"-1E2"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"-1E2"##, &p.to_string());
- }
- #[test]
- fn parse_28() {
- let p = Trinitry::new(r##"-1E02"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"-1E02"##, &p.to_string());
- }
- #[test]
- fn parse_29() {
- let p = Trinitry::new(r##"-1E+02"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_30() {
- let p = Trinitry::new(r##"1/0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_31() {
- let p = Trinitry::new(r##"0/0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_32() {
- let p = Trinitry::new(r##"-2147483648/-1"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_33() {
- let p = Trinitry::new(r##"-9223372036854775808/-1"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_34() {
- let p = Trinitry::new(r##"-0"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"-0"##, &p.to_string());
- }
- #[test]
- fn parse_35() {
- let p = Trinitry::new(r##"-0.0"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"-0.0"##, &p.to_string());
- }
- #[test]
- fn parse_36() {
- let p = Trinitry::new(r##"+0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_37() {
- let p = Trinitry::new(r##"+0.0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_38() {
- let p = Trinitry::new(r##"0.00"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"0.00"##, &p.to_string());
- }
- #[test]
- fn parse_39() {
- let p = Trinitry::new(r##"0..0"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"0..0"##, &p.to_string());
- }
- #[test]
- fn parse_40() {
- let p = Trinitry::new(r##"."##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"."##, &p.to_string());
- }
- #[test]
- fn parse_41() {
- let p = Trinitry::new(r##"0.0.0"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"0.0.0"##, &p.to_string());
- }
- #[test]
- fn parse_42() {
- let p = Trinitry::new(r##"0,00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_43() {
- let p = Trinitry::new(r##"0,,0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_44() {
- let p = Trinitry::new(r##","##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_45() {
- let p = Trinitry::new(r##"0,0,0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_46() {
- let p = Trinitry::new(r##"0.0/0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_47() {
- let p = Trinitry::new(r##"1.0/0.0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_48() {
- let p = Trinitry::new(r##"0.0/0.0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_49() {
- let p = Trinitry::new(r##"1,0/0,0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_50() {
- let p = Trinitry::new(r##"0,0/0,0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_51() {
- let p = Trinitry::new(r##"--1"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"--1"##, &p.to_string());
- }
- #[test]
- fn parse_52() {
- let p = Trinitry::new(r##"-"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"-"##, &p.to_string());
- }
- #[test]
- fn parse_53() {
- let p = Trinitry::new(r##"-."##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"-."##, &p.to_string());
- }
- #[test]
- fn parse_54() {
- let p = Trinitry::new(r##"-,"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_55() {
- let p = Trinitry::new(r##"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"##, &p.to_string());
- }
- #[test]
- fn parse_56() {
- let p = Trinitry::new(r##"NaN"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"NaN"##, &p.to_string());
- }
- #[test]
- fn parse_57() {
- let p = Trinitry::new(r##"Infinity"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"Infinity"##, &p.to_string());
- }
- #[test]
- fn parse_58() {
- let p = Trinitry::new(r##"-Infinity"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"-Infinity"##, &p.to_string());
- }
- #[test]
- fn parse_59() {
- let p = Trinitry::new(r##"INF"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"INF"##, &p.to_string());
- }
- #[test]
- fn parse_60() {
- let p = Trinitry::new(r##"1#INF"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_61() {
- let p = Trinitry::new(r##"-1#IND"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_62() {
- let p = Trinitry::new(r##"1#QNAN"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_63() {
- let p = Trinitry::new(r##"1#SNAN"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_64() {
- let p = Trinitry::new(r##"1#IND"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_65() {
- let p = Trinitry::new(r##"0x0"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"0x0"##, &p.to_string());
- }
- #[test]
- fn parse_66() {
- let p = Trinitry::new(r##"0xffffffff"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"0xffffffff"##, &p.to_string());
- }
- #[test]
- fn parse_67() {
- let p = Trinitry::new(r##"0xffffffffffffffff"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"0xffffffffffffffff"##, &p.to_string());
- }
- #[test]
- fn parse_68() {
- let p = Trinitry::new(r##"0xabad1dea"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"0xabad1dea"##, &p.to_string());
- }
- #[test]
- fn parse_69() {
- let p = Trinitry::new(r##"123456789012345678901234567890123456789"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"123456789012345678901234567890123456789"##, &p.to_string());
- }
- #[test]
- fn parse_70() {
- let p = Trinitry::new(r##"1,000.00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_71() {
- let p = Trinitry::new(r##"1 000.00"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"1 000.00"##, &p.to_string());
- }
- #[test]
- fn parse_72() {
- let p = Trinitry::new(r##"1'000.00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_73() {
- let p = Trinitry::new(r##"1,000,000.00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_74() {
- let p = Trinitry::new(r##"1 000 000.00"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"1 000 000.00"##, &p.to_string());
- }
- #[test]
- fn parse_75() {
- let p = Trinitry::new(r##"1'000'000.00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_76() {
- let p = Trinitry::new(r##"1.000,00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_77() {
- let p = Trinitry::new(r##"1 000,00"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"1 000,00"##, &p.to_string());
- }
- #[test]
- fn parse_78() {
- let p = Trinitry::new(r##"1'000,00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_79() {
- let p = Trinitry::new(r##"1.000.000,00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_80() {
- let p = Trinitry::new(r##"1 000 000,00"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"1 000 000,00"##, &p.to_string());
- }
- #[test]
- fn parse_81() {
- let p = Trinitry::new(r##"1'000'000,00"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_82() {
- let p = Trinitry::new(r##"01000"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"01000"##, &p.to_string());
- }
- #[test]
- fn parse_83() {
- let p = Trinitry::new(r##"08"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"08"##, &p.to_string());
- }
- #[test]
- fn parse_84() {
- let p = Trinitry::new(r##"09"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"09"##, &p.to_string());
- }
- #[test]
- fn parse_85() {
- let p = Trinitry::new(r##"2.2250738585072011e-308"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"2.2250738585072011e-308"##, &p.to_string());
- }
- #[test]
- fn parse_86() {
- let p = Trinitry::new(r##",./;'[]\-="##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_87() {
- let p = Trinitry::new(r##"<>?:"{}|_+"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_88() {
- let p = Trinitry::new(r##"!@#$%^&*()`~"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_89() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_90() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_91() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_92() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_93() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_94() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_95() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_96() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_97() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_98() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_99() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_100() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_101() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_102() {
- let p = Trinitry::new(r##"`"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_103() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_104() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_105() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_106() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_107() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_108() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_109() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_110() {
- let p = Trinitry::new(r##"'"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_111() {
- let p = Trinitry::new(r##"""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_112() {
- let p = Trinitry::new(r##"''"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_113() {
- let p = Trinitry::new(r##""""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_114() {
- let p = Trinitry::new(r##"'"'"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_115() {
- let p = Trinitry::new(r##""''''"'""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_116() {
- let p = Trinitry::new(r##""'"'"''''""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_117() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_118() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_119() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_120() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_121() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_122() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_123() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_124() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_125() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_126() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_127() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_128() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_129() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_130() {
- let p = Trinitry::new(r##"/"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_131() {
- let p = Trinitry::new(r##"A"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"A"##, &p.to_string());
- }
- #[test]
- fn parse_132() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_133() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_134() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_135() {
- let p = Trinitry::new(r##"( )"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_136() {
- let p = Trinitry::new(r##"("##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_137() {
- let p = Trinitry::new(r##"__(,_,*)"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_138() {
- let p = Trinitry::new(r##"():*:"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_139() {
- let p = Trinitry::new(r##"()"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_140() {
- let p = Trinitry::new(r##",:*:( ):*:"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_141() {
- let p = Trinitry::new(r##"( )"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_142() {
- let p = Trinitry::new(r##"("##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_143() {
- let p = Trinitry::new(r##"( _ )"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_144() {
- let p = Trinitry::new(r##"( )"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_145() {
- let p = Trinitry::new(r##"\_()_/"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_146() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_147() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_148() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_149() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_150() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_151() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_152() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_153() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_154() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_155() {
- let p = Trinitry::new(r##"0 1 2 3 4 5 6 7 8 9"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"0 1 2 3 4 5 6 7 8 9"##, &p.to_string());
- }
- #[test]
- fn parse_156() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_157() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_158() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_159() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_160() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_161() {
- let p = Trinitry::new(r##", . . - . , , ."##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_162() {
- let p = Trinitry::new(r##", , ,"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_163() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_164() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_165() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_166() {
- let p = Trinitry::new(r##"(5)"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_167() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_168() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_169() {
- let p = Trinitry::new(r##"ZGO"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"ZGO"##, &p.to_string());
- }
- #[test]
- fn parse_170() {
- let p = Trinitry::new(r##"00$-"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_171() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_172() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_173() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_174() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_175() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_176() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_177() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_178() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_179() {
- let p = Trinitry::new(r##"";alert(15);t=""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_180() {
- let p = Trinitry::new(r##"';alert(16);t='"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_181() {
- let p = Trinitry::new(r##"JavaSCript:alert(17)"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_182() {
- let p = Trinitry::new(r##";alert(18);"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_183() {
- let p = Trinitry::new(r##"">"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_184() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_185() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_186() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_187() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_188() {
- let p = Trinitry::new(r##"<"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_189() {
- let p = Trinitry::new(r##"\";alert('223');//"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_190() {
- let p = Trinitry::new(r##" Copy me"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_191() {
- let p = Trinitry::new(r##" Scroll over me "##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_192() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_193() {
- let p = Trinitry::new(r##"http://a/%%30%30"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_194() {
- let p = Trinitry::new(r##"' OR 1=1 -- 1"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_195() {
- let p = Trinitry::new(r##"' OR '1'='1"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_196() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_197() {
- let p = Trinitry::new(r##"%"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_198() {
- let p = Trinitry::new(r##"_"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"_"##, &p.to_string());
- }
- #[test]
- fn parse_199() {
- let p = Trinitry::new(r##"-"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"-"##, &p.to_string());
- }
- #[test]
- fn parse_200() {
- let p = Trinitry::new(r##"--"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"--"##, &p.to_string());
- }
- #[test]
- fn parse_201() {
- let p = Trinitry::new(r##"--help"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"--help"##, &p.to_string());
- }
- #[test]
- fn parse_202() {
- let p = Trinitry::new(r##"$USER"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_203() {
- let p = Trinitry::new(r##"Kernel.exit(1)"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_204() {
- let p = Trinitry::new(r##"$HOME"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_205() {
- let p = Trinitry::new(r##"$ENV{'HOME'}"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_206() {
- let p = Trinitry::new(r##"%d"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_207() {
- let p = Trinitry::new(r##"{0}"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_208() {
- let p = Trinitry::new(r##"%@"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_209() {
- let p = Trinitry::new(r##"%n"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_210() {
- let p = Trinitry::new(r##"File:///"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_211() {
- let p = Trinitry::new(r##"+++ATH0"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_212() {
- let p = Trinitry::new(r##"CON"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"CON"##, &p.to_string());
- }
- #[test]
- fn parse_213() {
- let p = Trinitry::new(r##"PRN"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"PRN"##, &p.to_string());
- }
- #[test]
- fn parse_214() {
- let p = Trinitry::new(r##"AUX"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"AUX"##, &p.to_string());
- }
- #[test]
- fn parse_215() {
- let p = Trinitry::new(r##"CLOCK$"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_216() {
- let p = Trinitry::new(r##"NUL"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"NUL"##, &p.to_string());
- }
- #[test]
- fn parse_217() {
- let p = Trinitry::new(r##"A:"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_218() {
- let p = Trinitry::new(r##"ZZ:"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_219() {
- let p = Trinitry::new(r##"COM1"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"COM1"##, &p.to_string());
- }
- #[test]
- fn parse_220() {
- let p = Trinitry::new(r##"LPT1"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"LPT1"##, &p.to_string());
- }
- #[test]
- fn parse_221() {
- let p = Trinitry::new(r##"LPT2"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"LPT2"##, &p.to_string());
- }
- #[test]
- fn parse_222() {
- let p = Trinitry::new(r##"LPT3"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"LPT3"##, &p.to_string());
- }
- #[test]
- fn parse_223() {
- let p = Trinitry::new(r##"COM2"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"COM2"##, &p.to_string());
- }
- #[test]
- fn parse_224() {
- let p = Trinitry::new(r##"COM3"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"COM3"##, &p.to_string());
- }
- #[test]
- fn parse_225() {
- let p = Trinitry::new(r##"COM4"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"COM4"##, &p.to_string());
- }
- #[test]
- fn parse_226() {
- let p = Trinitry::new(r##"DCC SEND STARTKEYLOGGER 0 0 0"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"DCC SEND STARTKEYLOGGER 0 0 0"##, &p.to_string());
- }
- #[test]
- fn parse_227() {
- let p = Trinitry::new(r##"Lightwater Country Park"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"Lightwater Country Park"##, &p.to_string());
- }
- #[test]
- fn parse_228() {
- let p = Trinitry::new(r##"Jimmy Clitheroe"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"Jimmy Clitheroe"##, &p.to_string());
- }
- #[test]
- fn parse_229() {
- let p = Trinitry::new(r##"http://www.cum.qc.ca/"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_230() {
- let p = Trinitry::new(r##"Linda Callahan"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"Linda Callahan"##, &p.to_string());
- }
- #[test]
- fn parse_231() {
- let p = Trinitry::new(r##"magna cum laude"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"magna cum laude"##, &p.to_string());
- }
- #[test]
- fn parse_232() {
- let p = Trinitry::new(r##"Super Bowl XXX"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"Super Bowl XXX"##, &p.to_string());
- }
- #[test]
- fn parse_233() {
- let p = Trinitry::new(r##"evaluate"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"evaluate"##, &p.to_string());
- }
- #[test]
- fn parse_234() {
- let p = Trinitry::new(r##"mocha"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"mocha"##, &p.to_string());
- }
- #[test]
- fn parse_235() {
- let p = Trinitry::new(r##"Dick Van Dyke"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"Dick Van Dyke"##, &p.to_string());
- }
- #[test]
- fn parse_236() {
- let p = Trinitry::new(r##"The quick brown fox... [Beeeep]"##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_237() {
- let p = Trinitry::new(r##"0"##).unwrap_or_else(|e| {
- panic!("{}", e);
- });
- assert_eq!(r##"0"##, &p.to_string());
- }
- #[test]
- fn parse_238() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_239() {
- let p = Trinitry::new(r##""##);
- assert!(p.is_err());
- }
- #[test]
- fn parse_240() {
- let p = Trinitry::new(r##"{% print 'x' * 64 * 1024**3 %}"##);
- assert!(p.is_err());
- }
-}
diff --git a/trinitry/src/trinitry.pest b/trinitry/src/trinitry.pest
deleted file mode 100644
index c868a6d..0000000
--- a/trinitry/src/trinitry.pest
+++ /dev/null
@@ -1,25 +0,0 @@
-chars = { ASCII_ALPHANUMERIC | "_" | "-" | "." }
-
-// TODO(@soispha): Are these all the valid characters? <2023-11-01>
-argument_chars = { chars | "(" | ")" | "{" | "}" | "<" | ">" | "?" | "!" | "+" | "^" | "@"
-| "&" | "*" | "~" | "|" | "=" | "," | "\\" | "/" }
-whitespace = _{ " " } // lower case to avoid special treatment of 'WHITESPACE'
-
-quote = _{ "\"" }
-q = _{ quote }
-
-single_quote = _{ "'" }
-sq = _{ single_quote }
-
-
-
-command = { chars+ }
-
-arg_quoted = { q ~ (!q ~ (argument_chars | " " | "'" ))+ ~ q }
-arg_single_quoted = { sq ~ (!sq ~ (argument_chars | " " | "\"" ))+ ~ sq }
-arg = { (argument_chars | "\"" | "'")+ }
-
-argument = { whitespace+ ~ (arg_quoted | arg_single_quoted | arg )}
-
-
-trinitry = { SOI ~ #command = command ~ (#argument = argument)* ~ EOI }
diff --git a/trinitry/update.sh b/trinitry/update.sh
deleted file mode 100755
index 51f1f58..0000000
--- a/trinitry/update.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env sh
-
-# Library {{{
-mktmp() {
- ensure_tmp_dir
- mktemp -p "$LIB_TEMP_DIR_FOR_SCRIPT"
-}
-ensure_tmp_dir() {
- if ! [ -d "$LIB_TEMP_DIR_FOR_SCRIPT" ]; then
- LIB_TEMP_DIR_FOR_SCRIPT="$(mktemp -d)"
- export LIB_TEMP_DIR_FOR_SCRIPT
- fi
-}
-remove_tmp_dir() {
- # The test is here because some scripts still delete this on their own
- if [ -d "$LIB_TEMP_DIR_FOR_SCRIPT" ]; then
- rm -r "$LIB_TEMP_DIR_FOR_SCRIPT"
- fi
-}
-
-trap remove_tmp_dir EXIT
-ensure_tmp_dir # ensure that the variable has been set, even in subshells
-# }}}
-
-tmp="$(mktmp)"
-
-curl https://raw.githubusercontent.com/minimaxir/big-list-of-naughty-strings/master/blns.txt |
- awk '!/^#/' |
- awk '!/^[\s\t]*$/' |
- awk -v s="'" '!/.*s.*/' |
-
- # This entry contains duplicated spaces, just ignore it
- awk '!/Power/' |
- iconv -c -f utf-8 -t ascii \
- >"$tmp"
-
-counter=0
-
-cat <"$tmp2"
- if rg '^[A-Za-z0-9_.-]+$' "$tmp2" -q; then
- cat <?!+^@&*~|=,/\\ -]*$' "$tmp2" -q; then
- cat < ./src/tests.rs
-cd ..
git add Cargo.lock Cargo.toml flake.lock