From 277c412c683f2377ce5bf3186192b895939c551b Mon Sep 17 00:00:00 2001 From: Jean Mertz Date: Thu, 4 Feb 2021 20:13:34 +0100 Subject: [PATCH] chore(remap): update remap-cli crate to use remap-compiler Signed-off-by: Jean Mertz --- lib/remap-cli/src/cmd.rs | 18 +++++++++--------- lib/remap-cli/src/repl.rs | 18 ++++++------------ 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/lib/remap-cli/src/cmd.rs b/lib/remap-cli/src/cmd.rs index 0acc8c6541d54..6047921e3376a 100644 --- a/lib/remap-cli/src/cmd.rs +++ b/lib/remap-cli/src/cmd.rs @@ -1,5 +1,5 @@ use super::{repl, Error}; -use remap::{state, Formatter, Object, Program, Runtime, Value}; +use remap::{diagnostic::Formatter, state, Program, Runtime, Target, Value}; use std::collections::BTreeMap; use std::fs::File; use std::io::{self, Read}; @@ -83,15 +83,15 @@ fn repl(_: Vec) -> Result<(), Error> { Err(Error::ReplFeature) } -fn execute(object: &mut impl Object, source: String) -> Result { - let state = state::Program::default(); +fn execute(object: &mut impl Target, source: String) -> Result { + let state = state::Runtime::default(); let mut runtime = Runtime::new(state); - let (program, _) = Program::new(source.clone(), &remap_functions::all(), None, true).map_err( - |diagnostics| Error::Parse(Formatter::new(&source, diagnostics).colored().to_string()), - )?; + let program = remap::compile(&source, &remap_functions::all()).map_err(|diagnostics| { + Error::Parse(Formatter::new(&source, diagnostics).colored().to_string()) + })?; runtime - .run(object, &program) + .resolve(object, &program) .map_err(|err| Error::Runtime(err.to_string())) } @@ -112,7 +112,7 @@ fn read_into_objects(input: Option<&PathBuf>) -> Result, Error> { }?; match input.as_str() { - "" => Ok(vec![Value::Map(BTreeMap::default())]), + "" => Ok(vec![Value::Object(BTreeMap::default())]), _ => input .lines() .map(|line| Ok(serde_to_remap(serde_json::from_str(&line)?))) @@ -150,5 +150,5 @@ fn should_open_repl(opts: &Opts) -> bool { } fn default_objects() -> Vec { - vec![Value::Map(BTreeMap::new())] + vec![Value::Object(BTreeMap::new())] } diff --git a/lib/remap-cli/src/repl.rs b/lib/remap-cli/src/repl.rs index e7391818aa94b..a95bd6bbdb10b 100644 --- a/lib/remap-cli/src/repl.rs +++ b/lib/remap-cli/src/repl.rs @@ -1,7 +1,7 @@ use crate::Error; use prettytable::{format, Cell, Row, Table}; use regex::Regex; -use remap::{state, Formatter, Object, Program, Runtime, Value}; +use remap::{diagnostic::Formatter, state, Program, Runtime, Target, Value}; use remap_functions::all as funcs; use rustyline::completion::Completer; use rustyline::error::ReadlineError; @@ -28,7 +28,7 @@ pub(crate) fn run(mut objects: Vec) -> Result<(), Error> { let func_docs_regex = Regex::new(r"^help\sdocs\s(\w{1,})$").unwrap(); let mut compiler_state = state::Compiler::default(); - let mut rt = Runtime::new(state::Program::default()); + let mut rt = Runtime::new(state::Runtime::default()); let mut rl = Editor::::new(); rl.set_helper(Some(Repl::new())); @@ -135,7 +135,7 @@ pub(crate) fn run(mut objects: Vec) -> Result<(), Error> { } fn resolve( - object: Option<&mut impl Object>, + object: Option<&mut impl Target>, runtime: &mut Runtime, program: &str, state: &mut state::Compiler, @@ -145,18 +145,12 @@ fn resolve( Some(object) => object, }; - let program = match Program::new_with_state( - program.to_owned(), - &remap_functions::all(), - None, - true, - state, - ) { - Ok((program, _)) => program, + let program = match remap::compile_with_state(program, &remap_functions::all(), state) { + Ok(program) => program, Err(diagnostics) => return Formatter::new(program, diagnostics).colored().to_string(), }; - match runtime.run(object, &program) { + match runtime.resolve(object, &program) { Ok(value) => value.to_string(), Err(err) => err.to_string(), }