guartcl 0.5.0-beta1

Enhanced Jim Tcl.
Documentation
#![doc = include_str!("../README.md")]

mod parse;
mod typedata;
pub mod usage;

pub use jimtcl as jim;
pub use jimtcl::{Interp, JimError, JimObject, JimResult};

/// Create an interpreter with added Guardian commands.
pub fn guardian_interp() -> JimResult<Interp> {
    let interp = Interp::new()?;

    interp.add_command("parse json", parse::parse_json)?;
    interp.add_command("parse toml", parse::parse_toml)?;
    interp.add_command("parse yaml", parse::parse_yaml)?;
    interp.eval("ensemble parse")?;

    interp.add_command("td type", typedata::td_type)?;
    interp.add_command("td length", typedata::td_length)?;

    interp.add_command("td null", typedata::td_null)?;
    interp.add_command("td boolean", typedata::td_boolean)?;
    interp.add_command("td integer", typedata::td_integer)?;
    interp.add_command("td float", typedata::td_float)?;
    interp.add_command("td string", typedata::td_string)?;
    interp.add_command("td list", typedata::td_list)?;
    interp.add_command("td record", typedata::td_record)?;

    interp.add_command("td get", typedata::td_get)?;
    interp.add_command("td set", typedata::td_set)?;
    interp.add_command("td lappend", typedata::td_lappend)?;
    interp.add_command("td native", typedata::td_native)?;

    interp.add_command("td parse json", typedata::td_parse_json)?;
    interp.add_command("td parse yaml", typedata::td_parse_yaml)?;
    interp.add_command("td parse toml", typedata::td_parse_toml)?;
    interp.eval("ensemble {td parse}")?;

    interp.eval("ensemble td")?;

    Ok(interp)
}