Compare commits

..

2 Commits

Author SHA1 Message Date
Win 07b0f8b49a thing 2025-02-15 15:17:10 +07:00
Win 5e5e011413 rust changes 2025-02-15 15:16:04 +07:00
535 changed files with 253 additions and 64 deletions
spring-2025/sen-109/00020/eval
Cargo.toml
src
target
.rustc_info.json
debug
.fingerprint
expression-eval-0d2fa700df3d43c7
expression-eval-27af6f454ef437b5
expression-eval-2a65516eda1dd563
expression-eval-3c6f0788da62da87
expression-eval-544ea38dc231400a
expression-eval-7806cd1eea79beac
expression-eval-826cdc5f107bec24
expression-eval-8b71bc81cfe4b22a
expression-eval-8f5c5b8f4c54c5d3
expression-eval-9c15d92ec4d9725b
expression-eval-a249c16303c2edb4
expression-eval-b3252229c658c3de
expression-eval-c2d4e5f3d701d5bf
expression-eval-cb1cb603155897af
expression-eval-d48843313115bc0c
expression-eval-da6002ea2b247efd
expression-eval-de105a88ab61feba
expression-eval-e7c0cea6361b7493
deps
expression-evalexpression-eval.d

View File

@ -7,3 +7,7 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
[[test]]
name = "integration"
path = "tests/integration_test.rs"

View File

@ -0,0 +1 @@
pub mod parsemath;

View File

@ -2,20 +2,9 @@
// Standard library
use std::io;
// code for arithmetic expression evaluation is in parsemath module
// use evaluate library
mod parsemath;
use parsemath::ast;
use parsemath::parser::{ParseError, Parser};
// Function to invoke Parser and evaluate expression
fn evaluate(expr: String) -> Result<f64, ParseError> {
let expr = expr.split_whitespace().collect::<String>(); // remove whitespace chars
let mut math_parser = Parser::new(&expr)?;
let ast = math_parser.parse()?;
println!("The generated AST is {:?}", ast);
Ok(ast::eval(ast)?)
}
use parsemath::evaluate::evaluate;
// Main function reads arithmetic expression from command-line and displays result and error.
// It calls the evaluate function to perform computation.
@ -41,45 +30,4 @@ fn main() {
Err(error) => println!("error: {}", error),
}
}
}
#[cfg(test)]
mod tests
{
use super::*;
#[test]
fn test_expression_one()
{
let value = evaluate("2*3+(4-5)+2^3/4".to_string());
assert_eq!(value.unwrap(), 7.0);
}
#[test]
fn test_expression_two()
{
let value = evaluate("5^7+8-33".to_string());
assert_eq!(value.unwrap(), 78100.00);
}
#[test]
fn test_expression_three()
{
let value = evaluate("2+2/4+10^2".to_string());
assert_eq!(value.unwrap(), 102.5);
}
#[test]
fn test_expression_four()
{
let value = evaluate("7^2+4*7".to_string());
assert_eq!(value.unwrap(), 77.0);
}
#[test]
fn test_expression_five()
{
let value = evaluate("5*2+(5/2)+5".to_string());
assert_eq!(value.unwrap(), 17.5);
}
}

View File

@ -0,0 +1,12 @@
use super::ast;
use super::parser::{ParseError, Parser};
// Function to invoke Parser and evaluate expression
pub fn evaluate(expr: String) -> Result<f64, ParseError> {
let expr = expr.split_whitespace().collect::<String>(); // remove whitespace chars
let mut math_parser = Parser::new(&expr)?;
let ast = math_parser.parse()?;
println!("The generated AST is {:?}", ast);
Ok(ast::eval(ast)?)
}

View File

@ -3,3 +3,4 @@ pub mod ast;
pub mod parser;
pub mod token;
pub mod tokenizer;
pub mod evaluate;

View File

@ -1 +1,5 @@
{"rustc_fingerprint":15625702514836887422,"outputs":{"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr/local/rustup/toolchains/1.83.0-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\nfmt_debug=\"full\"\noverflow_checks\npanic=\"unwind\"\nproc_macro\nrelocation_model=\"pic\"\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"unknown\"\nub_checks\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.83.0 (90b35a623 2024-11-26)\nbinary: rustc\ncommit-hash: 90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf\ncommit-date: 2024-11-26\nhost: x86_64-unknown-linux-gnu\nrelease: 1.83.0\nLLVM version: 19.1.1\n","stderr":""},"14371922958718593042":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr/local/rustup/toolchains/1.83.0-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""}},"successes":{}}
<<<<<<< HEAD
{"rustc_fingerprint":14404728096486143510,"outputs":{"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.83.0 (90b35a623 2024-11-26)\nbinary: rustc\ncommit-hash: 90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf\ncommit-date: 2024-11-26\nhost: x86_64-unknown-linux-gnu\nrelease: 1.83.0\nLLVM version: 19.1.1\n","stderr":""},"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr/local/rustup/toolchains/1.83.0-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""}},"successes":{}}
=======
{"rustc_fingerprint":15625702514836887422,"outputs":{"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr/local/rustup/toolchains/1.83.0-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\nfmt_debug=\"full\"\noverflow_checks\npanic=\"unwind\"\nproc_macro\nrelocation_model=\"pic\"\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"unknown\"\nub_checks\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.83.0 (90b35a623 2024-11-26)\nbinary: rustc\ncommit-hash: 90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf\ncommit-date: 2024-11-26\nhost: x86_64-unknown-linux-gnu\nrelease: 1.83.0\nLLVM version: 19.1.1\n","stderr":""},"14371922958718593042":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr/local/rustup/toolchains/1.83.0-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""}},"successes":{}}
>>>>>>> refs/remotes/origin/master

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1,9 @@
{"$message_type":"diagnostic","message":"failed to resolve: use of undeclared crate or module `parsemath`","code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared crate or module `ferris_wheel`\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"},"level":"error","spans":[{"file_name":"src/tests/integration_test.rs","byte_start":42,"byte_end":51,"line_start":4,"line_end":4,"column_start":5,"column_end":14,"is_primary":true,"text":[{"text":"use parsemath::evaluate::evaluate;","highlight_start":5,"highlight_end":14}],"label":"use of undeclared crate or module `parsemath`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0433]\u001b[0m\u001b[0m\u001b[1m: failed to resolve: use of undeclared crate or module `parsemath`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/tests/integration_test.rs:4:5\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m4\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse parsemath::evaluate::evaluate;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9muse of undeclared crate or module `parsemath`\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `evaluate` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n fn bar() {\n Self; // error: unresolved name `Self`\n }\n}\n\n// or:\n\nlet x = unknown_variable; // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/tests/integration_test.rs","byte_start":154,"byte_end":162,"line_start":12,"line_end":12,"column_start":21,"column_end":29,"is_primary":true,"text":[{"text":" let value = evaluate(\"2*3+(4-5)+2^3/4\".to_string());","highlight_start":21,"highlight_end":29}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0425]\u001b[0m\u001b[0m\u001b[1m: cannot find function `evaluate` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/tests/integration_test.rs:12:21\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m12\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let value = evaluate(\"2*3+(4-5)+2^3/4\".to_string());\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `evaluate` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n fn bar() {\n Self; // error: unresolved name `Self`\n }\n}\n\n// or:\n\nlet x = unknown_variable; // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/tests/integration_test.rs","byte_start":310,"byte_end":318,"line_start":19,"line_end":19,"column_start":21,"column_end":29,"is_primary":true,"text":[{"text":" let value = evaluate(\"5^7+8-33\".to_string());","highlight_start":21,"highlight_end":29}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0425]\u001b[0m\u001b[0m\u001b[1m: cannot find function `evaluate` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/tests/integration_test.rs:19:21\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m19\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let value = evaluate(\"5^7+8-33\".to_string());\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `evaluate` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n fn bar() {\n Self; // error: unresolved name `Self`\n }\n}\n\n// or:\n\nlet x = unknown_variable; // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/tests/integration_test.rs","byte_start":466,"byte_end":474,"line_start":26,"line_end":26,"column_start":21,"column_end":29,"is_primary":true,"text":[{"text":" let value = evaluate(\"2+2/4+10^2\".to_string());","highlight_start":21,"highlight_end":29}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0425]\u001b[0m\u001b[0m\u001b[1m: cannot find function `evaluate` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/tests/integration_test.rs:26:21\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m26\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let value = evaluate(\"2+2/4+10^2\".to_string());\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `evaluate` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n fn bar() {\n Self; // error: unresolved name `Self`\n }\n}\n\n// or:\n\nlet x = unknown_variable; // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/tests/integration_test.rs","byte_start":620,"byte_end":628,"line_start":33,"line_end":33,"column_start":21,"column_end":29,"is_primary":true,"text":[{"text":" let value = evaluate(\"7^2+4*7\".to_string());","highlight_start":21,"highlight_end":29}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0425]\u001b[0m\u001b[0m\u001b[1m: cannot find function `evaluate` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/tests/integration_test.rs:33:21\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m33\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let value = evaluate(\"7^2+4*7\".to_string());\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `evaluate` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n fn bar() {\n Self; // error: unresolved name `Self`\n }\n}\n\n// or:\n\nlet x = unknown_variable; // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/tests/integration_test.rs","byte_start":770,"byte_end":778,"line_start":40,"line_end":40,"column_start":21,"column_end":29,"is_primary":true,"text":[{"text":" let value = evaluate(\"5*2+(5/2)+5\".to_string());","highlight_start":21,"highlight_end":29}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0425]\u001b[0m\u001b[0m\u001b[1m: cannot find function `evaluate` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/tests/integration_test.rs:40:21\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m40\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let value = evaluate(\"5*2+(5/2)+5\".to_string());\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"aborting due to 6 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror\u001b[0m\u001b[0m\u001b[1m: aborting due to 6 previous errors\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0425, E0433.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1mSome errors have detailed explanations: E0425, E0433.\u001b[0m\n"}
{"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0425`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1mFor more information about an error, try `rustc --explain E0425`.\u001b[0m\n"}

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":7051068586824526309,"profile":11983525691607113661,"path":9690167576798117728,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-0d2fa700df3d43c7/dep-test-integration-test-integration","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":12185069945637818475,"profile":5601947868832436996,"path":17777289886553719987,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-27af6f454ef437b5/dep-lib-expression_eval","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":16868798319853099954,"profile":11983525691607113661,"path":8347095127940528381,"deps":[[9080037846466565314,"expression_eval",false,13617294453110733291]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-2a65516eda1dd563/dep-test-integration-test-integration_test","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":12185069945637818475,"profile":11597332650809196192,"path":17777289886553719987,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-3c6f0788da62da87/dep-lib-expression_eval","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":9339122733587503447,"profile":11983525691607113661,"path":10602529704205407992,"deps":[[9080037846466565314,"expression_eval",false,13617294453110733291]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-544ea38dc231400a/dep-test-bin-expression-eval","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1,5 @@
{"$message_type":"diagnostic","message":"file not found for module `parsemath`","code":{"code":"E0583","explanation":"A file wasn't found for an out-of-line module.\n\nErroneous code example:\n\n```compile_fail,E0583\nmod file_that_doesnt_exist; // error: file not found for module\n\nfn main() {}\n```\n\nPlease be sure that a file corresponding to the module exists. If you\nwant to use a module named `file_that_doesnt_exist`, you need to have a file\nnamed `file_that_doesnt_exist.rs` or `file_that_doesnt_exist/mod.rs` in the\nsame directory.\n"},"level":"error","spans":[{"file_name":"src/tests/integration_test.rs","byte_start":38,"byte_end":52,"line_start":4,"line_end":4,"column_start":1,"column_end":15,"is_primary":true,"text":[{"text":"mod parsemath;","highlight_start":1,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"to create the module `parsemath`, create file \"src/tests/parsemath.rs\" or \"src/tests/parsemath/mod.rs\"","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"if there is a `mod parsemath` elsewhere in the crate already, import it with `use crate::...` instead","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0583]\u001b[0m\u001b[0m\u001b[1m: file not found for module `parsemath`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/tests/integration_test.rs:4:1\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m4\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mmod parsemath;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mhelp\u001b[0m\u001b[0m: to create the module `parsemath`, create file \"src/tests/parsemath.rs\" or \"src/tests/parsemath/mod.rs\"\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: if there is a `mod parsemath` elsewhere in the crate already, import it with `use crate::...` instead\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"unresolved import `parsemath::evaluate`","code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"},"level":"error","spans":[{"file_name":"src/tests/integration_test.rs","byte_start":68,"byte_end":76,"line_start":5,"line_end":5,"column_start":16,"column_end":24,"is_primary":true,"text":[{"text":"use parsemath::evaluate::evaluate;","highlight_start":16,"highlight_end":24}],"label":"could not find `evaluate` in `parsemath`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0432]\u001b[0m\u001b[0m\u001b[1m: unresolved import `parsemath::evaluate`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/tests/integration_test.rs:5:16\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m5\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse parsemath::evaluate::evaluate;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mcould not find `evaluate` in `parsemath`\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"aborting due to 2 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror\u001b[0m\u001b[0m\u001b[1m: aborting due to 2 previous errors\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0432, E0583.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1mSome errors have detailed explanations: E0432, E0583.\u001b[0m\n"}
{"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0432`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1mFor more information about an error, try `rustc --explain E0432`.\u001b[0m\n"}

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":9339122733587503447,"profile":11597332650809196192,"path":10602529704205407992,"deps":[[9080037846466565314,"expression_eval",false,5091868152222187845]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-826cdc5f107bec24/dep-bin-expression-eval","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":16868798319853099954,"profile":15632368228915330634,"path":8347095127940528381,"deps":[[9080037846466565314,"expression_eval",false,5091868152222187845]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-9c15d92ec4d9725b/dep-test-integration-test-integration_test","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":9339122733587503447,"profile":15632368228915330634,"path":10602529704205407992,"deps":[[9080037846466565314,"expression_eval",false,5091868152222187845]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-a249c16303c2edb4/dep-test-bin-expression-eval","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":12185069945637818475,"profile":15632368228915330634,"path":17777289886553719987,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-b3252229c658c3de/dep-test-lib-expression_eval","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":9339122733587503447,"profile":5601947868832436996,"path":10602529704205407992,"deps":[[9080037846466565314,"expression_eval",false,13617294453110733291]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-c2d4e5f3d701d5bf/dep-bin-expression-eval","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":7051068586824526309,"profile":11983525691607113661,"path":8347095127940528381,"deps":[[9080037846466565314,"expression_eval",false,13617294453110733291]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-d48843313115bc0c/dep-test-integration-test-integration","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":7051068586824526309,"profile":15632368228915330634,"path":8347095127940528381,"deps":[[9080037846466565314,"expression_eval",false,5091868152222187845]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-da6002ea2b247efd/dep-test-integration-test-integration","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1 @@
{"rustc":11594289678289209806,"features":"[]","declared_features":"[]","target":12185069945637818475,"profile":11983525691607113661,"path":17777289886553719987,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/expression-eval-e7c0cea6361b7493/dep-test-lib-expression_eval","checksum":false}}],"rustflags":[],"metadata":2918638759235091062,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1,11 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libexpression_eval-27af6f454ef437b5.rmeta: src/lib.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-27af6f454ef437b5.d: src/lib.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/lib.rs:
src/parsemath/mod.rs:
src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -0,0 +1,13 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libexpression_eval-3c6f0788da62da87.rmeta: src/lib.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libexpression_eval-3c6f0788da62da87.rlib: src/lib.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-3c6f0788da62da87.d: src/lib.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/lib.rs:
src/parsemath/mod.rs:
src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -0,0 +1,11 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libexpression_eval-544ea38dc231400a.rmeta: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-544ea38dc231400a.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/main.rs:
src/parsemath/mod.rs:
src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -0,0 +1,11 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-826cdc5f107bec24: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-826cdc5f107bec24.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/main.rs:
src/parsemath/mod.rs:
src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -1,6 +1,6 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-8b71bc81cfe4b22a: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-8b71bc81cfe4b22a: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-8b71bc81cfe4b22a.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-8b71bc81cfe4b22a.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/main.rs:
src/parsemath/mod.rs:
@ -8,3 +8,4 @@ src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -1,6 +1,6 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libexpression_eval-8f5c5b8f4c54c5d3.rmeta: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libexpression_eval-8f5c5b8f4c54c5d3.rmeta: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-8f5c5b8f4c54c5d3.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-8f5c5b8f4c54c5d3.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/main.rs:
src/parsemath/mod.rs:
@ -8,3 +8,4 @@ src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -0,0 +1,11 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-a249c16303c2edb4: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-a249c16303c2edb4.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/main.rs:
src/parsemath/mod.rs:
src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -0,0 +1,11 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-b3252229c658c3de: src/lib.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-b3252229c658c3de.d: src/lib.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/lib.rs:
src/parsemath/mod.rs:
src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -0,0 +1,11 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libexpression_eval-c2d4e5f3d701d5bf.rmeta: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-c2d4e5f3d701d5bf.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/main.rs:
src/parsemath/mod.rs:
src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -1,6 +1,6 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libexpression_eval-cb1cb603155897af.rmeta: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libexpression_eval-cb1cb603155897af.rmeta: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-cb1cb603155897af.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-cb1cb603155897af.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/main.rs:
src/parsemath/mod.rs:
@ -8,3 +8,4 @@ src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -1,6 +1,6 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-de105a88ab61feba: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-de105a88ab61feba: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-de105a88ab61feba.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-de105a88ab61feba.d: src/main.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/main.rs:
src/parsemath/mod.rs:
@ -8,3 +8,4 @@ src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -0,0 +1,11 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libexpression_eval-e7c0cea6361b7493.rmeta: src/lib.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/expression_eval-e7c0cea6361b7493.d: src/lib.rs src/parsemath/mod.rs src/parsemath/ast.rs src/parsemath/parser.rs src/parsemath/token.rs src/parsemath/tokenizer.rs src/parsemath/evaluate.rs
src/lib.rs:
src/parsemath/mod.rs:
src/parsemath/ast.rs:
src/parsemath/parser.rs:
src/parsemath/token.rs:
src/parsemath/tokenizer.rs:
src/parsemath/evaluate.rs:

View File

@ -0,0 +1,5 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libintegration-0d2fa700df3d43c7.rmeta: src/tests/integration_test.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/integration-0d2fa700df3d43c7.d: src/tests/integration_test.rs
src/tests/integration_test.rs:

View File

@ -0,0 +1,5 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/integration-7806cd1eea79beac: src/tests/integration_test.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/integration-7806cd1eea79beac.d: src/tests/integration_test.rs
src/tests/integration_test.rs:

View File

@ -0,0 +1,5 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libintegration-d48843313115bc0c.rmeta: tests/integration_test.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/integration-d48843313115bc0c.d: tests/integration_test.rs
tests/integration_test.rs:

View File

@ -0,0 +1,5 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/integration-da6002ea2b247efd: tests/integration_test.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/integration-da6002ea2b247efd.d: tests/integration_test.rs
tests/integration_test.rs:

View File

@ -0,0 +1,5 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/libintegration_test-2a65516eda1dd563.rmeta: tests/integration_test.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/integration_test-2a65516eda1dd563.d: tests/integration_test.rs
tests/integration_test.rs:

View File

@ -0,0 +1,5 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/integration_test-9c15d92ec4d9725b: tests/integration_test.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/deps/integration_test-9c15d92ec4d9725b.d: tests/integration_test.rs
tests/integration_test.rs:

View File

@ -1 +1 @@
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/expression-eval: /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/main.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/ast.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/mod.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/parser.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/token.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/tokenizer.rs
/workspaces/cmkl/spring-2025/sen-109/00020/eval/target/debug/expression-eval: /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/main.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/ast.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/evaluate.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/mod.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/parser.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/token.rs /workspaces/cmkl/spring-2025/sen-109/00020/eval/src/parsemath/tokenizer.rs

Some files were not shown because too many files have changed in this diff Show More