prepare for batch processing.

This commit is contained in:
Mark Thom
2018-01-29 22:04:51 -07:00
parent bb49f35027
commit 73714e8aa2
7 changed files with 112 additions and 48 deletions

View File

@@ -16,21 +16,31 @@ pub struct CodeGenerator<'a, TermMarker> {
var_count: HashMap<&'a Var, usize>
}
pub enum EvalSession<'a> {
pub enum EvalError {
OpIsInfixAndPostFix,
NamelessEntry,
ParserError(ParserError),
ImpermissibleEntry(String),
EntrySuccess,
InitialQuerySuccess(AllocVarDict<'a>, HeapVarDict<'a>),
QueryFailure,
QueryFailureWithException(String),
QueryFailureWithException(String)
}
pub enum EvalSession<'a> {
EntrySuccess,
Error(EvalError),
InitialQuerySuccess(AllocVarDict<'a>, HeapVarDict<'a>),
SubsequentQuerySuccess,
}
impl<'a> From<EvalError> for EvalSession<'a> {
fn from(err: EvalError) -> Self {
EvalSession::Error(err)
}
}
impl<'a> From<ParserError> for EvalSession<'a> {
fn from(err: ParserError) -> Self {
EvalSession::ParserError(err)
EvalSession::from(EvalError::ParserError(err))
}
}