Skip to content
Snippets Groups Projects
main.rs 1.72 KiB
Newer Older
Carlos Valencia's avatar
Carlos Valencia committed
//use std::fs;
Carlos Valencia's avatar
Carlos Valencia committed

mod parser;
use parser::{Parser};
Carlos Valencia's avatar
Carlos Valencia committed

mod combinators;
Carlos Valencia's avatar
Carlos Valencia committed
//use combinators::common::integers::{Digit, Int};
Carlos Valencia's avatar
Carlos Valencia committed
use crate::combinators::other::expressions::Expr;
use crate::combinators::other::expressions::{ExprOutput};
Carlos Valencia's avatar
Carlos Valencia committed
fn main() {
Carlos Valencia's avatar
Carlos Valencia committed

Carlos Valencia's avatar
Carlos Valencia committed

    // let source = "src/examples/example_programs/arithmetic/example1.txt";
    // let _file = fs::read_to_string(source).expect("File was not found or could not be read");
Carlos Valencia's avatar
Carlos Valencia committed

    // let res = Expr.parse(_file.as_str());
    // println!("{:#?}", res);
Carlos Valencia's avatar
Carlos Valencia committed

Carlos Valencia's avatar
Carlos Valencia committed
    let mut count = 1;
Carlos Valencia's avatar
Carlos Valencia committed
    let max = 100000;
Carlos Valencia's avatar
Carlos Valencia committed

Carlos Valencia's avatar
Carlos Valencia committed
    // loop {
    //     if count == max {break};
    //     ExprOpt.parse(format!("221 + {} + 8 - 11077770", count).as_str());
Carlos Valencia's avatar
Carlos Valencia committed
    //     count += 1
    // }

Carlos Valencia's avatar
Carlos Valencia committed
    loop {
        if count == max {break};
        match Expr.parse(format!("{} + 6 - 67", count).as_str()).unwrap() {
            ExprOutput::E(b) => println!("{}", b.left),
            ExprOutput::I(b) => print!("{}", b)
            
        }
        //println!("{}", format!("{}", count).parse::<i32>().unwrap());
Carlos Valencia's avatar
Carlos Valencia committed
        //println!("{:#?}", Int.parse(format!("{}", count).as_str()));
Carlos Valencia's avatar
Carlos Valencia committed
        count += 1
    }
    //print!("{:#?}", Expr2.parse(format!("0{} - 0009787 + 67 ", 5343).as_str()));
    //println!("{:#?}", Digit_opt_more.parse(format!("9").as_str()));

    // println!("{:#?}", Expr.parse(format!("221 - {} + 8 + 11077770", 4).as_str()));
    // println!("{:#?}", ExprOpt.parse(format!("221 - {} + 8 + 11077770", 4).as_str()));

    // let source = "src/examples/brainflakes/hello_world.bf";
    // let file = fs::read_to_string(source).expect("File was not found or could not be read");
    // let res = brainflakes_parser::BrainFuck.parse(file.as_str()).expect("Incorrect parse");
    // println!("{}", res);