Tokens added or something

This commit is contained in:
able 2021-04-11 17:22:06 -05:00
parent 5cf69e933d
commit 2c4154025f
4 changed files with 41 additions and 38 deletions

View file

@ -1,6 +1,4 @@
functio hello(words){ functio hello(words){
words print; words print;
} }
hello("wonk"); hello("wonk");

View file

@ -4,6 +4,7 @@ use clap::{App, Arg};
mod base_55; mod base_55;
mod parser; mod parser;
pub mod tokens; pub mod tokens;
fn main() { fn main() {
let matches = App::new("AbleScript") let matches = App::new("AbleScript")
.version(env!("CARGO_PKG_VERSION")) .version(env!("CARGO_PKG_VERSION"))
@ -18,11 +19,9 @@ fn main() {
.takes_value(true), .takes_value(true),
) )
.get_matches(); .get_matches();
match matches.value_of("file") { match matches.value_of("file") {
Some(file_path) => { Some(file_path) => {
// Start parsing that file // Start parsing that file
parser::parse(file_path.to_string());
} }
None => { None => {
println!("hi"); println!("hi");

View file

@ -1,15 +1,17 @@
use crate::tokens; use crate::tokens::{ABOOL, TOKENS};
pub fn parse(line: String) { pub fn abool2num(abool: ABOOL) -> i32 {
//match the tokens match abool {
//This will not work ABOOL::NEVER => -1,
let iter = line.split_whitespace(); ABOOL::SOMETIMES => 0,
for x in iter { ABOOL::ALWAYS => 1,
match x { }
"#" => { }
println!("hi"); pub fn num2abool(number: i32) -> ABOOL {
} match number {
_ => {} -1 => ABOOL::NEVER,
} 0 => ABOOL::SOMETIMES,
1 => ABOOL::ALWAYS,
_ => ABOOL::SOMETIMES,
} }
} }

View file

@ -1,23 +1,27 @@
pub enum tokens { pub enum TOKENS {
LEFT_PARENTHESIS, // ( LEFT_PARENTHESIS, // (
RIGHT_PARENTHESIS, // ) RIGHT_PARENTHESIS, // )
LEFT_BRACKET, // [ LEFT_BRACKET, // [
RIGHT_BRACKET, // ] RIGHT_BRACKET, // ]
LEFT_BRACE, // { LEFT_BRACE, // {
RIGHT_BRACE, // } RIGHT_BRACE, // }
COMMENT, // # COMMENT { value: String }, // #
SUBTRACT, // - SUBTRACT, // -
ADDITION, // + ADDITION, // +
MULTIPLY, // * MULTIPLY, // *
DIVIDE, // / DIVIDE, // /
CHAR, // Base52 based character CHAR, // Base52 based character
FUNCTION, // functio FUNCTION, // functio
CONSTANT, // constant.e BF_FUNCTION { name: String, functio: String }, // Brain fuck FFI
BF_FUNCTION, // Brain fuck FFI VARIABLE, // Variable bro
VARIABLE, // Variable bro BOOLEAN { state: bool }, // True, False
BOOLEAN, // True, False ABOOLEAN { state: u8 }, // Always, Sometimes, Never
ABOOLEAN, // Always, Sometimes, Never PRINT, // Prints the preceding things
PRINT, // Prints the preceding things MELO, // Ban the following variable from ever being used again
MELO, // Ban the following variable from ever being used again T_DARK,
T_DARK, // }
pub enum ABOOL {
NEVER = -1,
SOMETIMES = 0,
ALWAYS = 1,
} }