synterm 0.3.1

A Rust library for making beautiful REPLs and Shells with fish like as you type syntax highlighting
use std::process::exit;
use synterm::{gen_lexer, gen_parse, syntax_highlight_gen, Color, CommandLineTool};

struct MyTool;

impl CommandLineTool for MyTool {
    const PROMPT: &'static str = "\x01\x1b[1;33m\x02>>> \x01\x1b[m\x02";
    fn evaluator_function(line: &String) -> String {
        match line.as_str() {
            "exit" => {
                exit(0);
            }
            _ => format!("Line: {}", line),
        }
    }
    fn syntax_highlight(string: &str) {
        syntax_highlight_gen!(
            TheLexer,
            parser,
            (Red, Color::Red, "red"),
            (Green, Color::Green, "green"),
            (Blue, Color::Blue, "blue"),
            (NoHighlight, Color::White, "[a-zA-Z0-9_$]+")
        );
        parser(TheLexer::lexer(string));
    }
}

fn main() {
    MyTool.start();
}