diff --git a/Cargo.lock b/Cargo.lock index b8bb181..6e21067 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -25,6 +25,10 @@ dependencies = [ "serde_with", ] +[[package]] +name = "automata-cli" +version = "0.1.0" + [[package]] name = "automata-web" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 9c14234..377efa4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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" diff --git a/automata/Cargo.toml b/automata/Cargo.toml new file mode 100644 index 0000000..ad078e8 --- /dev/null +++ b/automata/Cargo.toml @@ -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"] \ No newline at end of file diff --git a/src/automatan/fa.rs b/automata/src/automatan/fa.rs similarity index 100% rename from src/automatan/fa.rs rename to automata/src/automatan/fa.rs diff --git a/src/automatan/mod.rs b/automata/src/automatan/mod.rs similarity index 100% rename from src/automatan/mod.rs rename to automata/src/automatan/mod.rs diff --git a/src/automatan/pda.rs b/automata/src/automatan/pda.rs similarity index 100% rename from src/automatan/pda.rs rename to automata/src/automatan/pda.rs diff --git a/src/automatan/tm.rs b/automata/src/automatan/tm.rs similarity index 100% rename from src/automatan/tm.rs rename to automata/src/automatan/tm.rs diff --git a/src/lib.rs b/automata/src/lib.rs similarity index 100% rename from src/lib.rs rename to automata/src/lib.rs diff --git a/src/loader/ast.rs b/automata/src/loader/ast.rs similarity index 100% rename from src/loader/ast.rs rename to automata/src/loader/ast.rs diff --git a/src/loader/lexer.rs b/automata/src/loader/lexer.rs similarity index 100% rename from src/loader/lexer.rs rename to automata/src/loader/lexer.rs diff --git a/src/loader/log.rs b/automata/src/loader/log.rs similarity index 100% rename from src/loader/log.rs rename to automata/src/loader/log.rs diff --git a/src/loader/mod.rs b/automata/src/loader/mod.rs similarity index 100% rename from src/loader/mod.rs rename to automata/src/loader/mod.rs diff --git a/src/loader/parser.rs b/automata/src/loader/parser.rs similarity index 100% rename from src/loader/parser.rs rename to automata/src/loader/parser.rs diff --git a/src/sim/dfa.rs b/automata/src/sim/dfa.rs similarity index 100% rename from src/sim/dfa.rs rename to automata/src/sim/dfa.rs diff --git a/src/sim/dpda.rs b/automata/src/sim/dpda.rs similarity index 100% rename from src/sim/dpda.rs rename to automata/src/sim/dpda.rs diff --git a/src/sim/mod.rs b/automata/src/sim/mod.rs similarity index 100% rename from src/sim/mod.rs rename to automata/src/sim/mod.rs diff --git a/src/sim/nfa.rs b/automata/src/sim/nfa.rs similarity index 100% rename from src/sim/nfa.rs rename to automata/src/sim/nfa.rs diff --git a/src/sim/npda.rs b/automata/src/sim/npda.rs similarity index 100% rename from src/sim/npda.rs rename to automata/src/sim/npda.rs diff --git a/src/sim/ntm.rs b/automata/src/sim/ntm.rs similarity index 100% rename from src/sim/ntm.rs rename to automata/src/sim/ntm.rs diff --git a/src/sim/tm.rs b/automata/src/sim/tm.rs similarity index 100% rename from src/sim/tm.rs rename to automata/src/sim/tm.rs diff --git a/cli/Cargo.toml b/cli/Cargo.toml new file mode 100644 index 0000000..3efa157 --- /dev/null +++ b/cli/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "automata-cli" +version = "0.1.0" +edition = "2024" + +[dependencies] +# automata = {path = "../automata"} + diff --git a/cli/src/main.rs b/cli/src/main.rs new file mode 100644 index 0000000..496680a --- /dev/null +++ b/cli/src/main.rs @@ -0,0 +1,5 @@ + + +pub fn main(){ + +} \ No newline at end of file diff --git a/example.npda b/example.npda deleted file mode 100644 index 60a9f6b..0000000 --- a/example.npda +++ /dev/null @@ -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) } \ No newline at end of file diff --git a/web/build.sh b/web/build.sh deleted file mode 100755 index 37727a3..0000000 --- a/web/build.sh +++ /dev/null @@ -1,2 +0,0 @@ - -wasm-pack build --release --target web --no-typescript --out-dir root/automata --no-pack \ No newline at end of file diff --git a/web/run.sh b/web/run.sh deleted file mode 100755 index 08eb2f1..0000000 --- a/web/run.sh +++ /dev/null @@ -1,2 +0,0 @@ -cd root -simple-http-server \ No newline at end of file diff --git a/web/tools/build.ts b/web/tools/build.ts index fa4834d..f0de5b7 100644 --- a/web/tools/build.ts +++ b/web/tools/build.ts @@ -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..."); diff --git a/web/tools/dev.ts b/web/tools/dev.ts index 7e1efae..8cfdd76 100644 --- a/web/tools/dev.ts +++ b/web/tools/dev.ts @@ -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" || diff --git a/web/Cargo.toml b/web_lib/Cargo.toml similarity index 86% rename from web/Cargo.toml rename to web_lib/Cargo.toml index fd26f16..4815b45 100644 --- a/web/Cargo.toml +++ b/web_lib/Cargo.toml @@ -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"] } diff --git a/web/src/lib.rs b/web_lib/src/lib.rs similarity index 100% rename from web/src/lib.rs rename to web_lib/src/lib.rs