reorganized project

This commit is contained in:
Parker TenBroeck 2026-01-09 21:18:25 -05:00
parent 34b20ec1fe
commit c57a95b7b5
29 changed files with 34 additions and 43 deletions

4
Cargo.lock generated
View file

@ -25,6 +25,10 @@ dependencies = [
"serde_with",
]
[[package]]
name = "automata-cli"
version = "0.1.0"
[[package]]
name = "automata-web"
version = "0.1.0"

View file

@ -1,16 +1,3 @@
[package]
name = "automata"
version = "0.1.0"
edition = "2024"
[dependencies]
serde = { version = "1.0", features = ["derive"], optional = true}
serde_with = { version = "3.0", features = ["default"], optional = true}
[features]
default = []
serde = ["dep:serde", "dep:serde_with"]
[workspace]
members = ["web"]
members = ["web_lib", "automata", "cli"]
resolver = "3"

12
automata/Cargo.toml Normal file
View file

@ -0,0 +1,12 @@
[package]
name = "automata"
version = "0.1.0"
edition = "2024"
[dependencies]
serde = { version = "1.0", features = ["derive"], optional = true}
serde_with = { version = "3.0", features = ["default"], optional = true}
[features]
default = []
serde = ["dep:serde", "dep:serde_with"]

8
cli/Cargo.toml Normal file
View file

@ -0,0 +1,8 @@
[package]
name = "automata-cli"
version = "0.1.0"
edition = "2024"
[dependencies]
# automata = {path = "../automata"}

5
cli/src/main.rs Normal file
View file

@ -0,0 +1,5 @@
pub fn main(){
}

View file

@ -1,21 +0,0 @@
//type=NPDA
Q = {q0, q1} // states
E = {a, b} // alphabet
T = {z0, A, B} // stack
q0 = q0
z0 = z0
// construct all possible permutations of A's and B's
d(q0, epsilon, z0) = { (q0, [A z0]), (q0, [B z0]) }
d(q0, epsilon, A) = { (q0, [A A]), (q0, [B A]) }
d(q0, epsilon, B) = { (q0, [A B]), (q0, [B B]) }
// transition to q1
d(q0, epsilon, z0) = { (q1, z0) }
d(q0, epsilon, A) = { (q1, A) }
d(q0, epsilon, B) = { (q1, B) }
// consume stack until empty
d(q1, a, A) = { (q1, epsilon) }
d(q1, b, B) = { (q1, epsilon) }

View file

@ -1,2 +0,0 @@
wasm-pack build --release --target web --no-typescript --out-dir root/automata --no-pack

View file

@ -1,2 +0,0 @@
cd root
simple-http-server

View file

@ -29,7 +29,7 @@ const result = sass.compile(String(new URL("style/style.scss", ROOT).pathname),
await Deno.writeTextFile(new URL("style.css", DIST), result.css);
console.log("Compiling wasm lib...");
await run(["wasm-pack", "build", "--target", "web", "--release", "--out-dir", "wasm"], "");
await run(["wasm-pack", "build", "--target", "web", "--release", "--out-dir", "../web/wasm"], "../web_lib");
await Deno.copyFile(new URL("automata_web_bg.wasm", WASM), new URL("automata_web_bg.wasm", DIST));
console.log("Compiling bundle...");

View file

@ -46,7 +46,7 @@ await startServer();
console.log("👀 watching for changes…");
const watcher = Deno.watchFs(["root", "src"]);
const watcher = Deno.watchFs(["root", "../automata", "../web_lib"]);
for await (const event of watcher) {
if (
event.kind === "modify" ||

View file

@ -10,7 +10,7 @@ crate-type = ["cdylib", "rlib"]
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
automata = {path="..", features = ["serde"]}
automata = {path="../automata", features = ["serde"]}
console_error_panic_hook = "0.1.7"
wasm-bindgen = "*"
web-sys = { version = "0.3.83", features = ["Window", "Document", "HtmlElement", "Text"] }