From 3c163eabc78ddbd26bb250ef5ad6da28cd61adc6 Mon Sep 17 00:00:00 2001 From: Sophie Forrest Date: Fri, 30 Aug 2024 23:35:45 +1200 Subject: feat: split engine into crates --- src/utility.rs | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 src/utility.rs (limited to 'src/utility.rs') diff --git a/src/utility.rs b/src/utility.rs deleted file mode 100644 index 514343c..0000000 --- a/src/utility.rs +++ /dev/null @@ -1,50 +0,0 @@ -//! Utility functions for working with the Brainfuck interpreter. - -use std::path::Path; - -use crate::{engine::Engine, executor::execute, lex, parse, Error}; - -/// Utility function to execute a Brainfuck file. Lexes, parses and executes the -/// input file. -/// -/// # Errors -/// -/// This function will return an error if reading the input file, parsing or -/// execution fails. See documentation for [`crate::parser::parse`] and -/// [`crate::executor::execute`]. -pub fn execute_from_file( - path: impl AsRef, - tape: &mut [E::TapeInner], -) -> Result<(), Error> { - let input = fs_err::read_to_string(path.as_ref())?; - - let operator_codes = lex(&input); - - let instructions = parse(&input, &operator_codes)?; - - let mut data_pointer = 0; - - execute::(&instructions, tape, &mut data_pointer)?; - - Ok(()) -} - -/// Utility function to execute Brainfuck code. Lexes, parses and executes the -/// input. -/// -/// # Errors -/// -/// This function will return an error if parsing or -/// execution fails. See documentation for [`crate::parser::parse`] and -/// [`crate::executor::execute`]. -pub fn execute_from_str(input: &str, tape: &mut [E::TapeInner]) -> Result<(), Error> { - let operator_codes = lex(input); - - let instructions = parse(input, &operator_codes)?; - - let mut data_pointer = 0; - - execute::(&instructions, tape, &mut data_pointer)?; - - Ok(()) -} -- cgit 1.4.1