From f1ede63d5f3beec93f73ca4abb57a539f3b853f2 Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Mon, 7 Dec 2020 11:56:35 +0100 Subject: [PATCH] Add greeter example --- .gitignore | 2 +- examples/greeter.sb | 7 +++++++ examples/hello_world.sb | 4 ++-- examples/playground.sb | 0 examples_out/out.asm | 7 ------- examples_out/out.js | 4 ---- src/lexer/mod.rs | 10 ++++++++-- src/main.rs | 2 +- 8 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 examples/greeter.sb create mode 100644 examples/playground.sb delete mode 100644 examples_out/out.asm delete mode 100644 examples_out/out.js diff --git a/.gitignore b/.gitignore index d05ddff..8a7eace 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ target/ .vscode/ -examples_out/ \ No newline at end of file +examples_out/ diff --git a/examples/greeter.sb b/examples/greeter.sb new file mode 100644 index 0000000..644a2d8 --- /dev/null +++ b/examples/greeter.sb @@ -0,0 +1,7 @@ +main :: () { + return greet("Garrit"); +} + +greet :: (name) { + return "Hello " + name; +} \ No newline at end of file diff --git a/examples/hello_world.sb b/examples/hello_world.sb index 3f65a9e..74a78e3 100644 --- a/examples/hello_world.sb +++ b/examples/hello_world.sb @@ -1,4 +1,4 @@ -main :: (n) { - return 2 * n; +main :: () { + return "Hello World"; } diff --git a/examples/playground.sb b/examples/playground.sb new file mode 100644 index 0000000..e69de29 diff --git a/examples_out/out.asm b/examples_out/out.asm deleted file mode 100644 index 961cfe4..0000000 --- a/examples_out/out.asm +++ /dev/null @@ -1,7 +0,0 @@ - - .globl main - main: - - .globl fib - fib: - \ No newline at end of file diff --git a/examples_out/out.js b/examples_out/out.js deleted file mode 100644 index c92ccfa..0000000 --- a/examples_out/out.js +++ /dev/null @@ -1,4 +0,0 @@ -function main(n) { -return 2 * n -} -console.log(main()) \ No newline at end of file diff --git a/src/lexer/mod.rs b/src/lexer/mod.rs index fff6fd4..fc4e486 100644 --- a/src/lexer/mod.rs +++ b/src/lexer/mod.rs @@ -165,11 +165,17 @@ impl Cursor<'_> { '-' => Minus, '*' => Star, '/' => match self.first() { - '/' => self.comment(), + '/' => { + self.bump(); + self.comment() + } _ => Slash, }, '=' => match self.first() { - '=' => Equals, + '=' => { + self.bump(); + Equals + } _ => Assign, }, ':' => match self.first() { diff --git a/src/main.rs b/src/main.rs index 7c9c77f..c1e2811 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,7 @@ mod parser; mod util; fn main() -> Result<(), String> { - let mut file = File::open("examples/hello_world.sb").expect("Could not open file"); + let mut file = File::open("examples/playground.sb").expect("Could not open file"); let mut contents = String::new(); file.read_to_string(&mut contents) .expect("Could not read file");