From 0216bf5e52ce141f5a1f5eaaf3e699eb07fed0b1 Mon Sep 17 00:00:00 2001 From: ghostly_zsh Date: Fri, 9 Aug 2024 18:28:40 -0500 Subject: [PATCH] fix issue with not ppopping to clear stack with an expression statement --- Cargo.lock | 201 +++++++++++++++++- Cargo.toml | 2 +- kabel/Cargo.toml | 2 + kabel/src/codegen.rs | 7 + kabel/src/debug.rs | 18 +- kabel/src/lib.rs | 1 + {kabel_test => kabel}/src/main.rs | 21 +- kabel/src/opcodes.rs | 3 + kabel/src/parser.rs | 8 +- kabel/src/semantic_analysis.rs | 3 + kabel_test/src/lib.rs => kabel/src/test.rs | 11 +- kabel/src/vm.rs | 3 + .../test/lexer/arithmetic.kab | 0 .../test/lexer/arithmetic.out | 0 .../test/lexer/declaration.kab | 0 .../test/lexer/declaration.out | 0 {kabel_test => kabel}/test/lexer/keywords.kab | 0 {kabel_test => kabel}/test/lexer/keywords.out | 0 .../test/runtime/arithmetic_run.kab | 0 .../test/runtime/arithmetic_run.out | 0 .../test/runtime/fn_absent_block.kab | 0 .../test/runtime/fn_absent_block.out | 0 .../test/runtime/if_statement.kab | 0 .../test/runtime/if_statement.out | 0 {kabel_test => kabel}/test/runtime/logic.kab | 0 {kabel_test => kabel}/test/runtime/logic.out | 0 .../test/runtime/turbo_oop.kab | 0 .../test/runtime/turbo_oop.out | 0 .../test/syntax/assignment.kab | 0 .../test/syntax/assignment.out | 0 .../test/syntax/function.kab | 0 .../test/syntax/function.out | 0 {kabel_test => kabel}/test/syntax/if_else.kab | 0 {kabel_test => kabel}/test/syntax/if_else.out | 0 .../test/syntax/no_semicolon.kab | 0 .../test/syntax/no_semicolon.out | 0 kabel_test/Cargo.toml | 9 - 37 files changed, 250 insertions(+), 39 deletions(-) rename {kabel_test => kabel}/src/main.rs (75%) rename kabel_test/src/lib.rs => kabel/src/test.rs (78%) rename {kabel_test => kabel}/test/lexer/arithmetic.kab (100%) rename {kabel_test => kabel}/test/lexer/arithmetic.out (100%) rename {kabel_test => kabel}/test/lexer/declaration.kab (100%) rename {kabel_test => kabel}/test/lexer/declaration.out (100%) rename {kabel_test => kabel}/test/lexer/keywords.kab (100%) rename {kabel_test => kabel}/test/lexer/keywords.out (100%) rename {kabel_test => kabel}/test/runtime/arithmetic_run.kab (100%) rename {kabel_test => kabel}/test/runtime/arithmetic_run.out (100%) rename {kabel_test => kabel}/test/runtime/fn_absent_block.kab (100%) rename {kabel_test => kabel}/test/runtime/fn_absent_block.out (100%) rename {kabel_test => kabel}/test/runtime/if_statement.kab (100%) rename {kabel_test => kabel}/test/runtime/if_statement.out (100%) rename {kabel_test => kabel}/test/runtime/logic.kab (100%) rename {kabel_test => kabel}/test/runtime/logic.out (100%) rename {kabel_test => kabel}/test/runtime/turbo_oop.kab (100%) rename {kabel_test => kabel}/test/runtime/turbo_oop.out (100%) rename {kabel_test => kabel}/test/syntax/assignment.kab (100%) rename {kabel_test => kabel}/test/syntax/assignment.out (100%) rename {kabel_test => kabel}/test/syntax/function.kab (100%) rename {kabel_test => kabel}/test/syntax/function.out (100%) rename {kabel_test => kabel}/test/syntax/if_else.kab (100%) rename {kabel_test => kabel}/test/syntax/if_else.out (100%) rename {kabel_test => kabel}/test/syntax/no_semicolon.kab (100%) rename {kabel_test => kabel}/test/syntax/no_semicolon.out (100%) delete mode 100644 kabel_test/Cargo.toml diff --git a/Cargo.lock b/Cargo.lock index abcd48c76596cc04b535e08cea4660752ce8f298..fe1ce73f427a1c008ad2db581b1686000f969b7f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -353,6 +353,18 @@ dependencies = [ "libc", ] +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + [[package]] name = "approx" version = "0.5.1" @@ -1369,6 +1381,12 @@ dependencies = [ "thiserror", ] +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + [[package]] name = "cc" version = "1.1.8" @@ -1397,6 +1415,58 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clap" +version = "4.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c937d4061031a6d0c8da4b9a4f98a172fc2976dfb1c19213a9cf7d0d3c837e36" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85379ba512b21a328adf887e85f7742d12e96eb31f3ef077df4ffc26b506ffed" +dependencies = [ + "anstyle", + "clap_lex", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + [[package]] name = "codespan-reporting" version = "0.11.1" @@ -1581,6 +1651,42 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "is-terminal", + "itertools", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools", +] + [[package]] name = "crossbeam" version = "0.8.4" @@ -1637,6 +1743,12 @@ version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-common" version = "0.1.6" @@ -2220,6 +2332,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hashbrown" version = "0.14.5" @@ -2383,6 +2505,15 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -2447,12 +2578,8 @@ dependencies = [ [[package]] name = "kabel" version = "0.1.0" - -[[package]] -name = "kabel_test" -version = "0.1.0" dependencies = [ - "kabel", + "criterion", "test_each_file", ] @@ -2972,6 +3099,12 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "oorandom" +version = "11.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" + [[package]] name = "orbclient" version = "0.3.47" @@ -3118,6 +3251,34 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +[[package]] +name = "plotters" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7" + +[[package]] +name = "plotters-svg" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705" +dependencies = [ + "plotters-backend", +] + [[package]] name = "polling" version = "3.7.2" @@ -3313,6 +3474,26 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "rectangle-pack" version = "0.4.2" @@ -3968,6 +4149,16 @@ dependencies = [ "time-core", ] +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "tinyvec" version = "1.8.0" diff --git a/Cargo.toml b/Cargo.toml index beeb3401ed1642cbdb6affabc1a7096826f92ce7..15ae45c05eb4e5cbd731abd65222eac4bbc144a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = [ "starkingdoms-backplane", "starkingdoms-common", "savefile_decoder" -, "starkingdoms-api", "kabel", "kabel_test"] +, "starkingdoms-api", "kabel"] resolver = "2" [profile.dev.package."*"] diff --git a/kabel/Cargo.toml b/kabel/Cargo.toml index 7217d6975ae83c38389fcca264c1cad5cc42cae4..2d7329e786a8b8b44ac16b362c173f0347d63b1f 100644 --- a/kabel/Cargo.toml +++ b/kabel/Cargo.toml @@ -4,6 +4,8 @@ version = "0.1.0" edition = "2021" [dependencies] +criterion = "0.5.1" +test_each_file = "0.3.3" [features] timer = [] diff --git a/kabel/src/codegen.rs b/kabel/src/codegen.rs index 6674af2fe2f0ade7a269cc239eb9856537890f55..2eb0f5738fd54c13af891e8d2bf4eab9bf4285a3 100644 --- a/kabel/src/codegen.rs +++ b/kabel/src/codegen.rs @@ -25,6 +25,9 @@ impl Codegen { Block(stmts) => { self.visit_block(stmts); } + Expr(expr) => { + self.visit_expr_stmt(*expr); + } // REMOVE LATER Print(ref expr) => { self.visit_print(&ast, *expr.clone()); @@ -82,6 +85,10 @@ impl Codegen { self.visit(stmt); } } + pub fn visit_expr_stmt(&mut self, expr: AST) { + self.visit(expr); + self.vm.chunk.push(OpCode::POP.into()); + } // REMOVE LATER pub fn visit_print(&mut self, ast: &AST, expr: AST) { self.visit(expr); diff --git a/kabel/src/debug.rs b/kabel/src/debug.rs index e8349a23bb5a8397f65fe9a7e22cbce3e60771f0..ed780a0ed7acd612e4ed47fc0d77d5fb14e5ad2a 100644 --- a/kabel/src/debug.rs +++ b/kabel/src/debug.rs @@ -1,4 +1,4 @@ -use crate::{lexer::Token, parser::AST, push_output}; +use crate::{lexer::Token, parser::AST, push_output, vm::Value}; pub fn debug_token_array(tokens: Vec) -> String { let mut output = "".to_string(); @@ -97,6 +97,11 @@ pub fn debug_ast(ast: AST, level: usize) -> String { output += &debug_ast(ast, level+1); } } + Expr(expr) => { + output += &"| ".repeat(level); + output += "Expr\n"; + output += &debug_ast(*expr, level+1); + } // REMOVE LATER Print(expr) => { output += &"| ".repeat(level); @@ -196,7 +201,7 @@ pub fn debug_ast(ast: AST, level: usize) -> String { output } -pub fn debug_bytecode(code: Vec) -> String { +pub fn debug_bytecode(code: &Vec) -> String { use crate::opcodes::OpCode::*; let mut ip = 0; let mut output = "".to_string(); @@ -247,6 +252,7 @@ pub fn debug_bytecode(code: Vec) -> String { output += &(byte_one | byte_two).to_string(); output += "\n"; } + POP => { output += &ip.to_string(); output += " POP\n" } PRINT => { output += &ip.to_string(); output += " PRINT\n" } ERR => output += "ERR\n", } @@ -254,3 +260,11 @@ pub fn debug_bytecode(code: Vec) -> String { } output } +pub fn debug_stack(stack: &Vec) -> String { + let mut output = "".to_string(); + for value in stack.iter().rev() { + output += &format!("{:?}", value); + output += "\n"; + } + output +} diff --git a/kabel/src/lib.rs b/kabel/src/lib.rs index 220b3a3ee5b04d67a4b7da42c4231b260f0dba7e..ee5b7ddefbe3f386b000276614a2145adf372be3 100644 --- a/kabel/src/lib.rs +++ b/kabel/src/lib.rs @@ -16,6 +16,7 @@ pub mod semantic_analysis; pub mod opcodes; pub mod codegen; pub mod vm; +pub mod test; pub fn run_lexer(input: String) -> Lexer { let mut lexer = Lexer::new(input); diff --git a/kabel_test/src/main.rs b/kabel/src/main.rs similarity index 75% rename from kabel_test/src/main.rs rename to kabel/src/main.rs index d325170cb3e5de31c608eb98eb68ad1cec2872ba..069f95269c9d1015d65554d4b051b813587262f2 100644 --- a/kabel_test/src/main.rs +++ b/kabel/src/main.rs @@ -2,23 +2,16 @@ use std::{env, fs}; -use kabel::{debug::{debug_ast, debug_bytecode, debug_token_array}, run_codegen, run_lexer, run_parser, run_semantic_analysis}; +use kabel::{debug::{debug_ast, debug_bytecode, debug_stack, debug_token_array}, run_codegen, run_lexer, run_parser, run_semantic_analysis}; fn main() { - let args: Vec = env::args().collect(); + /*let args: Vec = env::args().collect(); let program = - fs::read_to_string(args[1].clone()).unwrap(); + fs::read_to_string(args[1].clone()).unwrap();*/ - /*let program = -"if(true) { - print \"if\"; -} else if(true) { - print \"elseif\"; -} else { - print \"else\"; -} -print \"after\"; -".to_string();*/ + let program = +"2+2; +".to_string(); let mut output = "".to_string(); @@ -61,7 +54,7 @@ print \"after\"; let codegen = run_codegen(program, ast); let mut vm = codegen.vm; - output += &debug_bytecode(vm.chunk.clone()); + output += &debug_bytecode(&vm.chunk); output += "\n"; match vm.run(&mut output) { Ok(()) => {} diff --git a/kabel/src/opcodes.rs b/kabel/src/opcodes.rs index ad547dfd93b35657ec73903ba1a2a135ab0a95e2..36fe3cf202dda9f8250f1d235e6a815eb7767661 100644 --- a/kabel/src/opcodes.rs +++ b/kabel/src/opcodes.rs @@ -26,6 +26,7 @@ pub enum OpCode { JMP, IF_NE, + POP, PRINT, ERR, } @@ -59,6 +60,7 @@ impl From for u8 { JMP => 0x13, IF_NE => 0x14, + POP => 0xFD, PRINT => 0xFE, ERR => 0xFF } @@ -93,6 +95,7 @@ impl From for OpCode { 0x13 => JMP, 0x14 => IF_NE, + 0xFD => POP, 0xFE => PRINT, _ => ERR } diff --git a/kabel/src/parser.rs b/kabel/src/parser.rs index 5305a165717666a98f83f9f9de83e22bcccab369..77f9940112b432b9f5c56ae2b450f9948ca78c1a 100644 --- a/kabel/src/parser.rs +++ b/kabel/src/parser.rs @@ -322,7 +322,8 @@ impl Parser { } let semicolon = self.read_token()?; if let TokenType::Semicolon = semicolon.token_type { - return Ok(expression); + return Ok(ast_from_ast_token!(ASTType::Expr(Box::new(expression.clone())), + expression, semicolon)); } else { self.current -= 1; return Err(unexpected_token!(self, "Expected ; found {}", semicolon)); @@ -1083,8 +1084,9 @@ pub enum ASTType { ), // expr1, expr2, expr3, block Break, Continue, - If(Box, Box, Box>), // condition, block, else/else if - Block(Vec), // statements + If(Box, Box, Box>), // condition, block, else/else if + Block(Vec), // statements + Expr(Box), // expr // REMOVE LATER Print(Box), diff --git a/kabel/src/semantic_analysis.rs b/kabel/src/semantic_analysis.rs index 45e6d39d59398741801f5ec55ea339da3c6914b9..5eaf83f0c0c187a8e64d38085d3e77164027acb1 100644 --- a/kabel/src/semantic_analysis.rs +++ b/kabel/src/semantic_analysis.rs @@ -43,6 +43,9 @@ impl Analyzer { Block(stmts) => { self.visit_block(stmts); } + Expr(expr) => { + self.visit(*expr); + } // REMOVE LATER Print(expr) => { self.visit_print(*expr); diff --git a/kabel_test/src/lib.rs b/kabel/src/test.rs similarity index 78% rename from kabel_test/src/lib.rs rename to kabel/src/test.rs index 7cdd6df1e8cd2ec0daa6930ab86da3344cdbfaea..84ad3da42ef8fbd4986c63eea75764413e940805 100644 --- a/kabel_test/src/lib.rs +++ b/kabel/src/test.rs @@ -1,9 +1,10 @@ -use kabel::{debug::{debug_ast, debug_token_array}, run_lexer, run_parser, run_semantic_analysis}; use test_each_file::test_each_file; -test_each_file! { for ["kab", "out"] in "./kabel_test/test/runtime/" => test } -test_each_file! { for ["kab", "out"] in "./kabel_test/test/lexer/" => test_lexer } -test_each_file! { for ["kab", "out"] in "./kabel_test/test/syntax/" => test_parser } +use crate::{debug::{debug_ast, debug_token_array}, run_lexer, run_parser}; + +test_each_file! { for ["kab", "out"] in "./kabel/test/runtime/" => test } +test_each_file! { for ["kab", "out"] in "./kabel/test/lexer/" => test_lexer } +test_each_file! { for ["kab", "out"] in "./kabel/test/syntax/" => test_parser } fn test_lexer([program, out]: [&str; 2]) { let mut output = "".to_string(); @@ -55,5 +56,5 @@ fn test_parser([program, out]: [&str; 2]) { assert_eq!(output.trim(), out.trim()); } fn test([program, out]: [&str; 2]) { - assert_eq!(kabel::compile(program.to_string()).trim(), out.trim()); + assert_eq!(crate::compile(program.to_string()).trim(), out.trim()); } diff --git a/kabel/src/vm.rs b/kabel/src/vm.rs index 62341098b2f92b3c34e23a4f23ba602181c6e7eb..6b4863bf7474e5c78ece4610cdbcd6b90c4b6e1d 100644 --- a/kabel/src/vm.rs +++ b/kabel/src/vm.rs @@ -249,6 +249,9 @@ impl VM { } } + 0xFD => { // POP + self.stack.pop().unwrap(); + } 0xFE => { // PRINT let value = self.stack.pop().unwrap(); match value { diff --git a/kabel_test/test/lexer/arithmetic.kab b/kabel/test/lexer/arithmetic.kab similarity index 100% rename from kabel_test/test/lexer/arithmetic.kab rename to kabel/test/lexer/arithmetic.kab diff --git a/kabel_test/test/lexer/arithmetic.out b/kabel/test/lexer/arithmetic.out similarity index 100% rename from kabel_test/test/lexer/arithmetic.out rename to kabel/test/lexer/arithmetic.out diff --git a/kabel_test/test/lexer/declaration.kab b/kabel/test/lexer/declaration.kab similarity index 100% rename from kabel_test/test/lexer/declaration.kab rename to kabel/test/lexer/declaration.kab diff --git a/kabel_test/test/lexer/declaration.out b/kabel/test/lexer/declaration.out similarity index 100% rename from kabel_test/test/lexer/declaration.out rename to kabel/test/lexer/declaration.out diff --git a/kabel_test/test/lexer/keywords.kab b/kabel/test/lexer/keywords.kab similarity index 100% rename from kabel_test/test/lexer/keywords.kab rename to kabel/test/lexer/keywords.kab diff --git a/kabel_test/test/lexer/keywords.out b/kabel/test/lexer/keywords.out similarity index 100% rename from kabel_test/test/lexer/keywords.out rename to kabel/test/lexer/keywords.out diff --git a/kabel_test/test/runtime/arithmetic_run.kab b/kabel/test/runtime/arithmetic_run.kab similarity index 100% rename from kabel_test/test/runtime/arithmetic_run.kab rename to kabel/test/runtime/arithmetic_run.kab diff --git a/kabel_test/test/runtime/arithmetic_run.out b/kabel/test/runtime/arithmetic_run.out similarity index 100% rename from kabel_test/test/runtime/arithmetic_run.out rename to kabel/test/runtime/arithmetic_run.out diff --git a/kabel_test/test/runtime/fn_absent_block.kab b/kabel/test/runtime/fn_absent_block.kab similarity index 100% rename from kabel_test/test/runtime/fn_absent_block.kab rename to kabel/test/runtime/fn_absent_block.kab diff --git a/kabel_test/test/runtime/fn_absent_block.out b/kabel/test/runtime/fn_absent_block.out similarity index 100% rename from kabel_test/test/runtime/fn_absent_block.out rename to kabel/test/runtime/fn_absent_block.out diff --git a/kabel_test/test/runtime/if_statement.kab b/kabel/test/runtime/if_statement.kab similarity index 100% rename from kabel_test/test/runtime/if_statement.kab rename to kabel/test/runtime/if_statement.kab diff --git a/kabel_test/test/runtime/if_statement.out b/kabel/test/runtime/if_statement.out similarity index 100% rename from kabel_test/test/runtime/if_statement.out rename to kabel/test/runtime/if_statement.out diff --git a/kabel_test/test/runtime/logic.kab b/kabel/test/runtime/logic.kab similarity index 100% rename from kabel_test/test/runtime/logic.kab rename to kabel/test/runtime/logic.kab diff --git a/kabel_test/test/runtime/logic.out b/kabel/test/runtime/logic.out similarity index 100% rename from kabel_test/test/runtime/logic.out rename to kabel/test/runtime/logic.out diff --git a/kabel_test/test/runtime/turbo_oop.kab b/kabel/test/runtime/turbo_oop.kab similarity index 100% rename from kabel_test/test/runtime/turbo_oop.kab rename to kabel/test/runtime/turbo_oop.kab diff --git a/kabel_test/test/runtime/turbo_oop.out b/kabel/test/runtime/turbo_oop.out similarity index 100% rename from kabel_test/test/runtime/turbo_oop.out rename to kabel/test/runtime/turbo_oop.out diff --git a/kabel_test/test/syntax/assignment.kab b/kabel/test/syntax/assignment.kab similarity index 100% rename from kabel_test/test/syntax/assignment.kab rename to kabel/test/syntax/assignment.kab diff --git a/kabel_test/test/syntax/assignment.out b/kabel/test/syntax/assignment.out similarity index 100% rename from kabel_test/test/syntax/assignment.out rename to kabel/test/syntax/assignment.out diff --git a/kabel_test/test/syntax/function.kab b/kabel/test/syntax/function.kab similarity index 100% rename from kabel_test/test/syntax/function.kab rename to kabel/test/syntax/function.kab diff --git a/kabel_test/test/syntax/function.out b/kabel/test/syntax/function.out similarity index 100% rename from kabel_test/test/syntax/function.out rename to kabel/test/syntax/function.out diff --git a/kabel_test/test/syntax/if_else.kab b/kabel/test/syntax/if_else.kab similarity index 100% rename from kabel_test/test/syntax/if_else.kab rename to kabel/test/syntax/if_else.kab diff --git a/kabel_test/test/syntax/if_else.out b/kabel/test/syntax/if_else.out similarity index 100% rename from kabel_test/test/syntax/if_else.out rename to kabel/test/syntax/if_else.out diff --git a/kabel_test/test/syntax/no_semicolon.kab b/kabel/test/syntax/no_semicolon.kab similarity index 100% rename from kabel_test/test/syntax/no_semicolon.kab rename to kabel/test/syntax/no_semicolon.kab diff --git a/kabel_test/test/syntax/no_semicolon.out b/kabel/test/syntax/no_semicolon.out similarity index 100% rename from kabel_test/test/syntax/no_semicolon.out rename to kabel/test/syntax/no_semicolon.out diff --git a/kabel_test/Cargo.toml b/kabel_test/Cargo.toml deleted file mode 100644 index 94800accfb66d21afabc4e47ab3ea5f5ad081caa..0000000000000000000000000000000000000000 --- a/kabel_test/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "kabel_test" -version = "0.1.0" -edition = "2021" - -[dependencies] -kabel = { path = "../kabel" } - -test_each_file = "0.3.3"