From f3875a4ec917b1ac835fa170316a74ace378ddef Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Wed, 15 Apr 2026 04:46:24 +0200 Subject: [PATCH] Separated parser --- Cargo.lock | 9 +++++++++ Cargo.toml | 3 +-- parser/Cargo.toml | 10 ++++++++++ {src/parser => parser/src}/ast.rs | 0 {src/parser => parser/src}/grammar.pest | 0 src/parser/mod.rs => parser/src/lib.rs | 2 +- src/compiler.rs | 2 +- src/main.rs | 1 - 8 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 parser/Cargo.toml rename {src/parser => parser/src}/ast.rs (100%) rename {src/parser => parser/src}/grammar.pest (100%) rename src/parser/mod.rs => parser/src/lib.rs (99%) diff --git a/Cargo.lock b/Cargo.lock index d08efc2..b134b8e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -77,6 +77,15 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "mist" version = "0.1.0" +dependencies = [ + "parser", + "serde", + "serde_json", +] + +[[package]] +name = "parser" +version = "0.1.0" dependencies = [ "pest", "pest_derive", diff --git a/Cargo.toml b/Cargo.toml index 3f1f1f9..9afc151 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,6 @@ version = "0.1.0" edition = "2024" [dependencies] -pest = "2.8.6" -pest_derive = "2.8.6" serde = { version = "1.0.228", features = ["serde_derive"] } serde_json = "1.0.149" +parser = { path = "./parser" } diff --git a/parser/Cargo.toml b/parser/Cargo.toml new file mode 100644 index 0000000..fcd7fd0 --- /dev/null +++ b/parser/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "parser" +version = "0.1.0" +edition = "2024" + +[dependencies] +pest = "2.8.6" +pest_derive = "2.8.6" +serde = { version = "1.0.228", features = ["serde_derive"] } +serde_json = "1.0.149" diff --git a/src/parser/ast.rs b/parser/src/ast.rs similarity index 100% rename from src/parser/ast.rs rename to parser/src/ast.rs diff --git a/src/parser/grammar.pest b/parser/src/grammar.pest similarity index 100% rename from src/parser/grammar.pest rename to parser/src/grammar.pest diff --git a/src/parser/mod.rs b/parser/src/lib.rs similarity index 99% rename from src/parser/mod.rs rename to parser/src/lib.rs index 152f95c..7b1a67a 100644 --- a/src/parser/mod.rs +++ b/parser/src/lib.rs @@ -5,7 +5,7 @@ pub mod ast; use ast::*; #[derive(Parser)] -#[grammar = "./src/parser/grammar.pest"] +#[grammar = "./src/grammar.pest"] pub struct MistParser; // convenience alias for pest errors diff --git a/src/compiler.rs b/src/compiler.rs index 136aed5..208bc4e 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -1,6 +1,6 @@ use std::{fs, path::PathBuf, process, time::Instant}; -use crate::{gogen, parser}; +use crate::gogen; use serde::Deserialize; diff --git a/src/main.rs b/src/main.rs index d2d17ea..5be2614 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,6 @@ pub mod compiler; pub mod errors; pub mod gogen; -pub mod parser; use std::fs; use std::path::PathBuf;