tangibl 0.1.0

A parser for generating an AST from a set of predefined TopCodes
Documentation
use tangibl::{
    ast::{BooleanMethodKind, Command, Condition, ConditionalKind, IntegerMethodKind, Value},
    JsonPrinter,
};

fn main() {
    let ast = tangibl::start()
        .with_command(Command::Shoot)
        .with_conditional(
            ConditionalKind::Blocked,
            tangibl::flow().with_command(Command::TurnLeft).build(),
        )
        .with_command(Command::MoveBackwards)
        .with_boolean_method(
            BooleanMethodKind::While,
            Some(Condition::IsBlocked),
            tangibl::flow().with_command(Command::TurnRight).build(),
        )
        .with_command(Command::MoveForwards)
        .with_integer_method(
            IntegerMethodKind::Repeat,
            Some(Value::Three),
            tangibl::flow().with_command(Command::TurnLeft).build(),
        )
        .with_command(Command::MoveForwards)
        .build();
    let mut json_printer = JsonPrinter::new();

    println!("{}", json_printer.print(&ast));
}