Compare commits

...

2 Commits

Author SHA1 Message Date
0x4261756D
83537737f5 Merge branch 'main' of https://gittea.dev/0x4261756D/kurz 2023-01-09 12:23:43 +01:00
0x4261756D
df3e1b027f Time interpretation 2023-01-09 12:23:01 +01:00

View File

@ -6,6 +6,7 @@ use std::iter::Peekable;
use std::process::Command; use std::process::Command;
use std::process::Stdio; use std::process::Stdio;
use std::process::exit; use std::process::exit;
use std::time::Instant;
#[derive(Debug, Clone, PartialEq)] #[derive(Debug, Clone, PartialEq)]
enum Token enum Token
@ -216,15 +217,17 @@ fn compile(file_content: &String, intrinsics: &HashMap<&str, (Vec<Datatype>, Vec
println!("---Done validating function calls---"); println!("---Done validating function calls---");
typecheck(&operations, &functions, &intrinsics, &arrays, debug)?; typecheck(&operations, &functions, &intrinsics, &arrays, debug)?;
println!("---Done typechecking---"); println!("---Done typechecking---");
let start = Instant::now();
println!("---Starting to interpret the program---");
let output = if interpret let output = if interpret
{ {
println!("---Starting to interpret the program---");
Some(interpret_program(&operations, &mut Vec::new(), &functions, &mut arrays, &intrinsics, debug)?) Some(interpret_program(&operations, &mut Vec::new(), &functions, &mut arrays, &intrinsics, debug)?)
} }
else else
{ {
None None
}; };
println!("---Done after {:?}---", start.elapsed());
if !interpret if !interpret
{ {
if let Err(err) = generate_assembly_linux_x64(&operations, &functions, &intrinsics, &arrays, debug) if let Err(err) = generate_assembly_linux_x64(&operations, &functions, &intrinsics, &arrays, debug)