From bea961bbbd11a592e1e0140102ce6910e1e9f5d3 Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Thu, 7 Oct 2021 20:39:31 +0200 Subject: [PATCH] test program --- src/lex.rs | 2 +- src/lib.rs | 8 +++++++- src/main.rs | 14 +++++++++++++- test.sl | 7 +++++++ 4 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 test.sl diff --git a/src/lex.rs b/src/lex.rs index a17023e..20f61b5 100644 --- a/src/lex.rs +++ b/src/lex.rs @@ -20,7 +20,7 @@ impl Span { #[derive(Debug, Clone)] pub struct Token<'code> { span: Span, - kind: TokenType<'code>, + pub(crate) kind: TokenType<'code>, } impl<'code> Token<'code> { diff --git a/src/lib.rs b/src/lib.rs index 0ac613a..6579117 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,5 +5,11 @@ mod parse; pub fn run_program(program: &str) { let lexer = lex::Lexer::lex(program); let tokens: Result, _> = lexer.collect(); - println!("{:#?}", tokens); + println!( + "{:#?}", + tokens.map(|tokens| tokens + .into_iter() + .map(|token| token.kind) + .collect::>()) + ); } diff --git a/src/main.rs b/src/main.rs index e7a11a9..ff5d6ab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,15 @@ fn main() { - println!("Hello, world!"); + if let Some(filename) = std::env::args().skip(1).next() { + println!("'{}'", filename); + match std::fs::read_to_string(filename) { + Ok(contents) => { + script_lang::run_program(&contents); + } + Err(err) => { + eprintln!("{}", err); + } + } + } else { + eprintln!("Usage: ") + } } diff --git a/test.sl b/test.sl new file mode 100644 index 0000000..b6b2de4 --- /dev/null +++ b/test.sl @@ -0,0 +1,7 @@ +fn main() { + let number = 5 + let number2 = 5325 + let is_equal = number == number2 + + print("Is Equal: " + is_equal) +}