From 3e4d3fad7d446e2bbdca3cd76d270981d9e5bc15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vili=20Sinerv=C3=A4?= Date: Wed, 26 Feb 2025 22:52:32 +0200 Subject: [PATCH] Minor fix to error handling --- src/compiler.rs | 5 ++++- src/compiler/parser/mod.rs | 4 +++- src/server.rs | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/compiler.rs b/src/compiler.rs index c1781c0..d2a7716 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -38,7 +38,10 @@ pub fn start_compiler() { for line in lines.map_while(Result::ok) { match compile(&line) { Ok(_) => println!("\nCompilation OK :)\n"), - Err(e) => println!("\n{}\n", e), + Err(e) => println!( + "{}", + format!("{{\"error\": {}}}", json::stringify(format!("{e}"))) + ), } } } diff --git a/src/compiler/parser/mod.rs b/src/compiler/parser/mod.rs index 446b652..6f04fa8 100644 --- a/src/compiler/parser/mod.rs +++ b/src/compiler/parser/mod.rs @@ -173,7 +173,9 @@ fn parse_term<'source>( TokenType::Punctuation => match token.text { "(" => parse_parenthesized(pos, tokens), "{" => parse_block(pos, tokens), - _ => unreachable!(), + _ => Err(ParserError { + msg: format!("Unexpected {}", token), + }), }, _ => Err(ParserError { msg: format!("Unexpected {}", token), diff --git a/src/server.rs b/src/server.rs index fd5187f..58326e0 100644 --- a/src/server.rs +++ b/src/server.rs @@ -39,7 +39,7 @@ fn handle_connection(mut stream: TcpStream) { let response = match output { Ok(output) => format!("{{\"program\": \"{output}\"}}"), - Err(e) => format!("{{\"error\": \"{e}\"}}"), + Err(e) => format!("{{\"error\": {}}}", json::stringify(format!("{e}"))), }; stream.write_all(response.as_bytes()).unwrap();