add string table, StringList representation

This commit is contained in:
Mark Thom
2018-08-21 00:22:16 -06:00
parent 01d6ef099f
commit 013eb29e2b
11 changed files with 36 additions and 18 deletions

View File

@@ -2,6 +2,7 @@ use prolog::ast::*;
use prolog::machine::*;
use prolog::num::*;
use prolog::parser::parser::*;
use prolog::string_list::*;
use prolog::tabled_rc::*;
use std::collections::{HashSet, VecDeque};
@@ -606,8 +607,11 @@ pub struct TopLevelWorker<'a, R: Read> {
}
impl<'a, R: Read> TopLevelWorker<'a, R> {
pub fn new(inner: R, atom_tbl: TabledData<Atom>, indices: MachineCodeIndices<'a>) -> Self {
TopLevelWorker { parser: Parser::new(inner, atom_tbl), indices }
pub fn new(inner: R, atom_tbl: TabledData<Atom>, string_tbl: TabledData<StringListWrapper>,
indices: MachineCodeIndices<'a>)
-> Self
{
TopLevelWorker { parser: Parser::new(inner, atom_tbl, string_tbl), indices }
}
pub fn parse_code(&mut self) -> Result<TopLevelPacket, ParserError>
@@ -636,8 +640,10 @@ pub struct TopLevelBatchWorker<R: Read> {
}
impl<R: Read> TopLevelBatchWorker<R> {
pub fn new(inner: R, atom_tbl: TabledData<Atom>) -> Self {
TopLevelBatchWorker { parser: Parser::new(inner, atom_tbl),
pub fn new(inner: R, atom_tbl: TabledData<Atom>, string_tbl: TabledData<StringListWrapper>)
-> Self
{
TopLevelBatchWorker { parser: Parser::new(inner, atom_tbl, string_tbl),
rel_worker: RelationWorker::new(),
source_mod: clause_name!("user"),
results: vec![] }