extern crate indexmap;
-use indexmap::IndexSet;
+use crate::indexmap::IndexSet;
use std::env;
use std::fs::{File, copy, read_dir};
let mut libraries = File::create(&dest_path).unwrap();
let mut library_index = IndexSet::new();
- let paths = read_dir("./src/prolog/lib").unwrap();
+ let paths = read_dir("./src/lib").unwrap();
for item in paths {
let item = item.unwrap().path();
-use prolog_parser::ast::*;
+use crate::prolog_parser::ast::*;
-use crate::prolog::fixtures::*;
-use crate::prolog::forms::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::targets::*;
+use crate::fixtures::*;
+use crate::forms::*;
+use crate::machine::machine_indices::*;
+use crate::targets::*;
use std::cell::Cell;
use std::rc::Rc;
-use prolog_parser::ast::*;
+use crate::prolog_parser::ast::*;
-use crate::prolog::clause_types::*;
-use crate::prolog::fixtures::*;
-use crate::prolog::forms::*;
-use crate::prolog::instructions::*;
-use crate::prolog::iterators::*;
+use crate::clause_types::*;
+use crate::fixtures::*;
+use crate::forms::*;
+use crate::instructions::*;
+use crate::iterators::*;
-use crate::prolog::machine::heap::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
+use crate::machine::heap::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
-use crate::prolog::ordered_float::*;
-use crate::prolog::rug::ops::PowAssign;
-use crate::prolog::rug::{Assign, Integer, Rational};
+use crate::ordered_float::*;
+use crate::rug::ops::PowAssign;
+use crate::rug::{Assign, Integer, Rational};
use std::cell::Cell;
use std::cmp::{max, min, Ordering};
-use prolog_parser::ast::*;
+use crate::prolog_parser::ast::*;
-use crate::prolog::forms::Number;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::rug::rand::RandState;
+use crate::forms::Number;
+use crate::machine::machine_indices::*;
+use crate::rug::rand::RandState;
-use ref_thread_local::RefThreadLocal;
+use crate::ref_thread_local::RefThreadLocal;
use std::collections::BTreeMap;
-use prolog_parser::ast::*;
-
-use crate::prolog::allocator::*;
-use crate::prolog::arithmetic::*;
-use crate::prolog::clause_types::*;
-use crate::prolog::fixtures::*;
-use crate::prolog::forms::*;
-use crate::prolog::indexing::*;
-use crate::prolog::instructions::*;
-use crate::prolog::iterators::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::targets::*;
-
-use indexmap::{IndexMap, IndexSet};
+use crate::prolog_parser::ast::*;
+
+use crate::allocator::*;
+use crate::arithmetic::*;
+use crate::clause_types::*;
+use crate::fixtures::*;
+use crate::forms::*;
+use crate::indexing::*;
+use crate::instructions::*;
+use crate::iterators::*;
+use crate::machine::machine_indices::*;
+use crate::targets::*;
+
+use crate::indexmap::{IndexMap, IndexSet};
use std::cell::Cell;
use std::rc::Rc;
-use indexmap::IndexMap;
+use crate::indexmap::IndexMap;
-use prolog_parser::ast::*;
+use crate::prolog_parser::ast::*;
-use crate::prolog::allocator::*;
-use crate::prolog::fixtures::*;
-use crate::prolog::forms::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::targets::*;
+use crate::allocator::*;
+use crate::fixtures::*;
+use crate::forms::*;
+use crate::machine::machine_indices::*;
+use crate::targets::*;
use std::cell::Cell;
use std::collections::BTreeSet;
-use prolog_parser::ast::*;
+use crate::prolog_parser::ast::*;
-use crate::prolog::forms::*;
-use crate::prolog::instructions::*;
-use crate::prolog::iterators::*;
+use crate::forms::*;
+use crate::instructions::*;
+use crate::iterators::*;
-use indexmap::{IndexMap, IndexSet};
+use crate::indexmap::{IndexMap, IndexSet};
use std::cell::Cell;
use std::collections::BTreeSet;
-use prolog_parser::ast::*;
-use prolog_parser::parser::OpDesc;
-use prolog_parser::tabled_rc::*;
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::parser::OpDesc;
+use crate::prolog_parser::tabled_rc::*;
-use crate::prolog::clause_types::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::ordered_float::OrderedFloat;
-use crate::prolog::rug::{Integer, Rational};
+use crate::clause_types::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
+use crate::ordered_float::OrderedFloat;
+use crate::rug::{Integer, Rational};
-use indexmap::IndexMap;
+use crate::indexmap::IndexMap;
use std::cell::Cell;
use std::collections::VecDeque;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::machine_state::*;
+use crate::machine::machine_indices::*;
+use crate::machine::machine_state::*;
-use indexmap::IndexSet;
+use crate::indexmap::IndexSet;
use std::cmp::Ordering;
use std::ops::Deref;
-use prolog_parser::ast::*;
-
-use crate::prolog::clause_types::*;
-use crate::prolog::forms::*;
-use crate::prolog::heap_iter::*;
-use crate::prolog::machine::heap::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::machine_state::*;
-use crate::prolog::machine::streams::*;
-use crate::prolog::ordered_float::OrderedFloat;
-use crate::prolog::rug::{Integer, Rational};
-
-use indexmap::{IndexMap, IndexSet};
+use crate::prolog_parser::ast::*;
+
+use crate::clause_types::*;
+use crate::forms::*;
+use crate::heap_iter::*;
+use crate::machine::heap::*;
+use crate::machine::machine_indices::*;
+use crate::machine::machine_state::*;
+use crate::machine::streams::*;
+use crate::ordered_float::OrderedFloat;
+use crate::rug::{Integer, Rational};
+
+use crate::indexmap::{IndexMap, IndexSet};
use std::cell::Cell;
use std::convert::TryFrom;
-use prolog_parser::ast::*;
-use prolog_parser::tabled_rc::*;
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::tabled_rc::*;
-use crate::prolog::instructions::*;
-use crate::prolog::rug::Integer;
+use crate::instructions::*;
+use crate::rug::Integer;
-use indexmap::IndexMap;
+use crate::indexmap::IndexMap;
use std::collections::VecDeque;
use std::convert::TryFrom;
-use prolog_parser::ast::*;
+use crate::prolog_parser::ast::*;
-use crate::prolog::clause_types::*;
-use crate::prolog::forms::*;
-use crate::prolog::machine::heap::*;
-use crate::prolog::machine::machine_errors::MachineStub;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::rug::Integer;
+use crate::clause_types::*;
+use crate::forms::*;
+use crate::machine::heap::*;
+use crate::machine::machine_errors::MachineStub;
+use crate::machine::machine_indices::*;
+use crate::rug::Integer;
-use indexmap::IndexMap;
+use crate::indexmap::IndexMap;
use std::collections::VecDeque;
use std::rc::Rc;
-use prolog_parser::ast::*;
+use crate::prolog_parser::ast::*;
-use crate::prolog::clause_types::*;
-use crate::prolog::forms::*;
-use crate::prolog::machine::machine_indices::*;
+use crate::clause_types::*;
+use crate::forms::*;
+use crate::machine::machine_indices::*;
use std::cell::Cell;
use std::collections::VecDeque;
use crate::prolog_parser::ast::*;
-use crate::prolog::arithmetic::*;
-use crate::prolog::clause_types::*;
-use crate::prolog::forms::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::machine_state::*;
-use crate::prolog::ordered_float::*;
-use crate::prolog::rug::{Integer, Rational};
+use crate::arithmetic::*;
+use crate::clause_types::*;
+use crate::forms::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
+use crate::machine::machine_state::*;
+use crate::ordered_float::*;
+use crate::rug::{Integer, Rational};
use std::cmp;
use std::convert::TryFrom;
-use crate::prolog::heap_iter::*;
-use crate::prolog::machine::*;
+use crate::heap_iter::*;
+use crate::machine::*;
use crate::indexmap::IndexSet;
-use crate::prolog::clause_types::*;
-use crate::prolog::codegen::*;
-use crate::prolog::debray_allocator::*;
-use crate::prolog::forms::*;
-use crate::prolog::instructions::*;
-use crate::prolog::machine::compile::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
-
-use indexmap::IndexSet;
+use crate::clause_types::*;
+use crate::codegen::*;
+use crate::debray_allocator::*;
+use crate::forms::*;
+use crate::instructions::*;
+use crate::machine::compile::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
+
+use crate::indexmap::IndexSet;
use std::collections::VecDeque;
use std::mem;
-use crate::prolog::instructions::*;
+use crate::instructions::*;
use std::collections::VecDeque;
-use prolog_parser::ast::*;
-use prolog_parser::parser::get_desc;
-use prolog_parser::tabled_rc::TabledData;
-
-use crate::prolog::codegen::*;
-use crate::prolog::debray_allocator::*;
-use crate::prolog::forms::*;
-use crate::prolog::instructions::*;
-use crate::prolog::iterators::*;
-use crate::prolog::machine::code_walker::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::term_expansion::ExpansionAdditionResult;
-use crate::prolog::machine::toplevel::*;
-use crate::prolog::machine::*;
-
-use indexmap::{IndexMap, IndexSet};
-
-use ref_thread_local::RefThreadLocal;
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::parser::get_desc;
+use crate::prolog_parser::tabled_rc::TabledData;
+
+use crate::codegen::*;
+use crate::debray_allocator::*;
+use crate::forms::*;
+use crate::instructions::*;
+use crate::iterators::*;
+use crate::machine::code_walker::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
+use crate::machine::term_expansion::ExpansionAdditionResult;
+use crate::machine::toplevel::*;
+use crate::machine::*;
+
+use crate::indexmap::{IndexMap, IndexSet};
+
+use crate::ref_thread_local::RefThreadLocal;
use std::cell::Cell;
use std::collections::VecDeque;
vec![Box::new(head.clone()), Box::new(tail.clone())],
None,
);
+
PredicateClause::Fact(clause, 0, 0)
})
.collect(),
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::stack::*;
+use crate::machine::machine_indices::*;
+use crate::machine::stack::*;
use std::mem;
use std::ops::IndexMut;
-use prolog_parser::ast::*;
+use crate::prolog_parser::ast::*;
-use crate::prolog::heap_print::*;
-use crate::prolog::machine::*;
-use crate::prolog::machine::compile::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::streams::*;
+use crate::heap_print::*;
+use crate::machine::*;
+use crate::machine::compile::*;
+use crate::machine::machine_errors::*;
+use crate::machine::streams::*;
use std::convert::TryFrom;
use crate::prolog_parser::ast::Constant;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::partial_string::*;
-use crate::prolog::machine::raw_block::*;
+use crate::machine::machine_indices::*;
+use crate::machine::partial_string::*;
+use crate::machine::raw_block::*;
use std::convert::TryFrom;
use std::mem;
-use prolog_parser::ast::*;
+use crate::prolog_parser::ast::*;
-use crate::prolog::forms::{ModuleSource, Number, PredicateKey};
-use crate::prolog::machine::heap::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::machine_state::*;
-use crate::prolog::rug::Integer;
+use crate::forms::{ModuleSource, Number, PredicateKey};
+use crate::machine::heap::*;
+use crate::machine::machine_indices::*;
+use crate::machine::machine_state::*;
+use crate::rug::Integer;
use std::rc::Rc;
-use prolog_parser::ast::*;
-use prolog_parser::tabled_rc::*;
-
-use crate::prolog::clause_types::*;
-use crate::prolog::fixtures::*;
-use crate::prolog::forms::*;
-use crate::prolog::machine::code_repo::CodeRepo;
-use crate::prolog::machine::Ball;
-use crate::prolog::machine::heap::*;
-use crate::prolog::machine::machine_state::*;
-use crate::prolog::machine::partial_string::*;
-use crate::prolog::machine::raw_block::RawBlockTraits;
-use crate::prolog::machine::streams::Stream;
-use crate::prolog::instructions::*;
-use crate::prolog::ordered_float::OrderedFloat;
-use crate::prolog::rug::{Integer, Rational};
-
-use indexmap::IndexMap;
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::tabled_rc::*;
+
+use crate::clause_types::*;
+use crate::fixtures::*;
+use crate::forms::*;
+use crate::machine::code_repo::CodeRepo;
+use crate::machine::Ball;
+use crate::machine::heap::*;
+use crate::machine::machine_state::*;
+use crate::machine::partial_string::*;
+use crate::machine::raw_block::RawBlockTraits;
+use crate::machine::streams::Stream;
+use crate::instructions::*;
+use crate::ordered_float::OrderedFloat;
+use crate::rug::{Integer, Rational};
+
+use crate::indexmap::IndexMap;
use std::cell::RefCell;
use std::cmp::Ordering;
}
}
-// for use in MachineState::bind.
+// for use crate::in MachineState::bind.
impl PartialOrd<Ref> for Addr {
fn partial_cmp(&self, r: &Ref) -> Option<Ordering> {
match self {
-use prolog_parser::ast::*;
-use prolog_parser::tabled_rc::*;
-
-use crate::prolog::clause_types::*;
-use crate::prolog::forms::*;
-use crate::prolog::heap_print::*;
-use crate::prolog::machine::attributed_variables::*;
-use crate::prolog::machine::copier::*;
-use crate::prolog::machine::heap::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::modules::*;
-use crate::prolog::machine::stack::*;
-use crate::prolog::machine::streams::*;
-use crate::prolog::rug::Integer;
-
-use downcast::Any;
-
-use indexmap::{IndexMap, IndexSet};
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::tabled_rc::*;
+
+use crate::clause_types::*;
+use crate::forms::*;
+use crate::heap_print::*;
+use crate::machine::attributed_variables::*;
+use crate::machine::copier::*;
+use crate::machine::heap::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
+use crate::machine::modules::*;
+use crate::machine::stack::*;
+use crate::machine::streams::*;
+use crate::rug::Integer;
+
+use crate::downcast::Any;
+
+use crate::indexmap::{IndexMap, IndexSet};
use std::cmp::Ordering;
use std::convert::TryFrom;
-use prolog_parser::ast::*;
-use prolog_parser::tabled_rc::*;
-
-use crate::prolog::clause_types::*;
-use crate::prolog::forms::*;
-use crate::prolog::heap_iter::*;
-use crate::prolog::instructions::*;
-use crate::prolog::machine::INTERRUPT;
-use crate::prolog::machine::attributed_variables::*;
-use crate::prolog::machine::code_repo::CodeRepo;
-use crate::prolog::machine::copier::*;
-use crate::prolog::machine::heap::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::machine_state::*;
-use crate::prolog::machine::stack::*;
-use crate::prolog::machine::streams::*;
-use crate::prolog::ordered_float::*;
-use crate::prolog::rug::Integer;
-
-use indexmap::{IndexMap, IndexSet};
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::tabled_rc::*;
+
+use crate::clause_types::*;
+use crate::forms::*;
+use crate::heap_iter::*;
+use crate::instructions::*;
+use crate::machine::INTERRUPT;
+use crate::machine::attributed_variables::*;
+use crate::machine::code_repo::CodeRepo;
+use crate::machine::copier::*;
+use crate::machine::heap::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
+use crate::machine::machine_state::*;
+use crate::machine::stack::*;
+use crate::machine::streams::*;
+use crate::ordered_float::*;
+use crate::rug::Integer;
+
+use crate::indexmap::{IndexMap, IndexSet};
use std::cmp::Ordering;
use std::convert::TryFrom;
-use prolog_parser::ast::*;
-use prolog_parser::tabled_rc::*;
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::tabled_rc::*;
-use crate::prolog::clause_types::*;
-use crate::prolog::forms::*;
-use crate::prolog::heap_print::*;
-use crate::prolog::instructions::*;
-use crate::prolog::machine::heap::*;
-use crate::prolog::read::*;
+use crate::clause_types::*;
+use crate::forms::*;
+use crate::heap_print::*;
+use crate::instructions::*;
+use crate::machine::heap::*;
+use crate::read::*;
mod attributed_variables;
pub(super) mod code_repo;
mod machine_state_impl;
mod system_calls;
-use crate::prolog::machine::attributed_variables::*;
-use crate::prolog::machine::code_repo::*;
-use crate::prolog::machine::compile::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::machine_state::*;
-use crate::prolog::machine::modules::*;
-use crate::prolog::machine::streams::*;
-use crate::prolog::machine::toplevel::*;
-
-use indexmap::IndexMap;
+use crate::machine::attributed_variables::*;
+use crate::machine::code_repo::*;
+use crate::machine::compile::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
+use crate::machine::machine_state::*;
+use crate::machine::modules::*;
+use crate::machine::streams::*;
+use crate::machine::toplevel::*;
+
+use crate::indexmap::IndexMap;
use std::collections::VecDeque;
use std::convert::TryFrom;
-use prolog_parser::ast::*;
-use prolog_parser::tabled_rc::*;
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::tabled_rc::*;
-use crate::prolog::forms::*;
-use crate::prolog::machine::code_repo::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
+use crate::forms::*;
+use crate::machine::code_repo::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
use std::collections::VecDeque;
use std::mem;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::raw_block::*;
-
use core::marker::PhantomData;
+use crate::machine::machine_indices::*;
+use crate::machine::raw_block::*;
+
use std::mem;
use std::ops::{Index, IndexMut};
use std::ptr;
use crate::prolog_parser::ast::*;
-use crate::prolog::read::PrologStream;
-use crate::prolog::read::readline::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::machine_state::*;
+use crate::read::PrologStream;
+use crate::read::readline::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
+use crate::machine::machine_state::*;
use std::cmp::Ordering;
use std::cell::RefCell;
use std::ops::DerefMut;
use std::rc::Rc;
-use native_tls::TlsStream;
+use crate::native_tls::TlsStream;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum StreamType {
#[inline]
pub(crate)
fn peek_char(&mut self) -> std::io::Result<char> {
- use unicode_reader::CodePoints;
+ use crate::unicode_reader::CodePoints;
match self.stream_inst.0.borrow_mut().1 {
StreamInstance::InputFile(_, ref mut file) => {
-use prolog_parser::ast::*;
-use prolog_parser::parser::*;
-use prolog_parser::tabled_rc::*;
-
-use crate::prolog::clause_types::*;
-use crate::prolog::forms::*;
-use crate::prolog::heap_print::*;
-use crate::prolog::instructions::*;
-use crate::prolog::machine::code_repo::CodeRepo;
-use crate::prolog::machine::copier::*;
-use crate::prolog::machine::code_walker::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::machine_state::*;
-use crate::prolog::machine::streams::*;
-use crate::prolog::machine::toplevel::to_op_decl;
-use crate::prolog::ordered_float::OrderedFloat;
-use crate::prolog::read::readline;
-use crate::prolog::rug::Integer;
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::parser::*;
+use crate::prolog_parser::tabled_rc::*;
+
+use crate::clause_types::*;
+use crate::forms::*;
+use crate::heap_print::*;
+use crate::instructions::*;
+use crate::machine::code_repo::CodeRepo;
+use crate::machine::copier::*;
+use crate::machine::code_walker::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
+use crate::machine::machine_state::*;
+use crate::machine::streams::*;
+use crate::machine::toplevel::to_op_decl;
+use crate::ordered_float::OrderedFloat;
+use crate::read::readline;
+use crate::rug::Integer;
use crate::indexmap::IndexSet;
use std::num::NonZeroU32;
use std::time::{Duration, SystemTime};
-use cpu_time::ProcessTime;
-use chrono::{offset::Local,DateTime};
+use crate::cpu_time::ProcessTime;
+use crate::chrono::{offset::Local,DateTime};
use crate::crossterm::event::{read, Event, KeyCode, KeyEvent, KeyModifiers};
use crate::crossterm::terminal::{enable_raw_mode, disable_raw_mode};
-use ring::rand::{SecureRandom, SystemRandom};
-use ring::{digest,hkdf,pbkdf2,aead,signature::{self,KeyPair}};
-use ripemd160::{Ripemd160, Digest};
-use sha3::{Sha3_224, Sha3_256, Sha3_384, Sha3_512};
-use blake2::{Blake2s, Blake2b};
+use crate::ring::rand::{SecureRandom, SystemRandom};
+use crate::ring::{digest,hkdf,pbkdf2,aead,signature::{self,KeyPair}};
+use crate::ripemd160::{Ripemd160, Digest};
+use crate::sha3::{Sha3_224, Sha3_256, Sha3_384, Sha3_512};
+use crate::blake2::{Blake2s, Blake2b};
-use openssl::ec::{EcGroup, EcPoint};
-use openssl::bn::{BigNum, BigNumContext};
-use openssl::nid::Nid;
+use crate::openssl::ec::{EcGroup, EcPoint};
+use crate::openssl::bn::{BigNum, BigNumContext};
+use crate::openssl::nid::Nid;
-use native_tls::TlsConnector;
+use crate::native_tls::TlsConnector;
pub fn get_key() -> KeyEvent {
let key;
-use prolog_parser::ast::*;
-use prolog_parser::parser::*;
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::parser::*;
-use crate::prolog::machine::machine_indices::HeapCellValue;
-use crate::prolog::machine::*;
-use crate::prolog::rug::ops::Pow;
-use crate::prolog::rug::Integer;
+use crate::machine::machine_indices::HeapCellValue;
+use crate::machine::*;
+use crate::rug::ops::Pow;
+use crate::rug::Integer;
use std::cell::Cell;
use std::collections::VecDeque;
-use prolog_parser::ast::*;
-use prolog_parser::tabled_rc::*;
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::tabled_rc::*;
-use crate::prolog::forms::*;
-use crate::prolog::iterators::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::term_expansion::*;
-use crate::prolog::machine::*;
+use crate::forms::*;
+use crate::iterators::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
+use crate::machine::term_expansion::*;
+use crate::machine::*;
-use indexmap::{IndexMap, IndexSet};
+use crate::indexmap::{IndexMap, IndexSet};
use std::borrow::BorrowMut;
use std::cell::Cell;
+extern crate blake2;
+extern crate chrono;
+extern crate cpu_time;
extern crate crossterm;
extern crate divrem;
#[macro_use]
#[macro_use]
extern crate lazy_static;
extern crate libc;
+extern crate native_tls;
extern crate nix;
+extern crate openssl;
+extern crate ordered_float;
#[macro_use]
extern crate prolog_parser;
#[macro_use]
extern crate ref_thread_local;
+extern crate ring;
+extern crate ripemd160;
+extern crate rug;
+extern crate rustyline;
+extern crate sha3;
+extern crate unicode_reader;
-use nix::sys::signal;
+use crate::nix::sys::signal;
-mod prolog;
+#[macro_use]
+mod macros;
+mod allocator;
+mod arithmetic;
+mod codegen;
+mod clause_types;
+mod debray_allocator;
+mod fixtures;
+mod forms;
+mod heap_iter;
+mod heap_print;
+mod indexing;
+mod instructions;
+mod iterators;
+mod machine;
+mod read;
+mod targets;
+mod write;
-use crate::prolog::machine::*;
-use crate::prolog::machine::streams::*;
-use crate::prolog::read::*;
+use machine::*;
+use machine::streams::*;
+use read::*;
use std::sync::atomic::Ordering;
extern crate rug;
#[cfg(feature = "num-rug-adapter")]
extern crate num_rug_adapter as rug;
-extern crate rustyline;
#[macro_use]
mod macros;
-use prolog_parser::ast::*;
-use prolog_parser::parser::*;
-use prolog_parser::tabled_rc::TabledData;
+use crate::prolog_parser::ast::*;
+use crate::prolog_parser::parser::*;
+use crate::prolog_parser::tabled_rc::TabledData;
-use crate::prolog::forms::*;
-use crate::prolog::iterators::*;
-use crate::prolog::machine::machine_indices::*;
-use crate::prolog::machine::machine_state::MachineState;
-use crate::prolog::machine::streams::Stream;
+use crate::forms::*;
+use crate::iterators::*;
+use crate::machine::machine_indices::*;
+use crate::machine::machine_state::MachineState;
+use crate::machine::streams::Stream;
use std::collections::VecDeque;
pub type PrologStream = ParsingStream<Stream>;
pub mod readline {
- use crate::prolog::machine::streams::Stream;
- use crate::prolog::rustyline::error::ReadlineError;
- use crate::prolog::rustyline::{Cmd, Editor, KeyPress};
+ use crate::machine::streams::Stream;
+ use crate::rustyline::error::ReadlineError;
+ use crate::rustyline::{Cmd, Editor, KeyPress};
use std::io::{Cursor, Error, ErrorKind, Read};
static mut PROMPT: bool = false;
-use prolog_parser::ast::*;
+use crate::prolog_parser::ast::*;
-use crate::prolog::clause_types::*;
-use crate::prolog::forms::*;
-use crate::prolog::instructions::*;
-use crate::prolog::iterators::*;
+use crate::clause_types::*;
+use crate::forms::*;
+use crate::instructions::*;
+use crate::iterators::*;
pub trait CompilationTarget<'a> {
type Iterator: Iterator<Item = TermRef<'a>>;
-use crate::prolog::clause_types::*;
-use crate::prolog::forms::*;
-use crate::prolog::instructions::*;
-use crate::prolog::machine::machine_errors::*;
-use crate::prolog::machine::machine_indices::*;
+use crate::clause_types::*;
+use crate::forms::*;
+use crate::instructions::*;
+use crate::machine::machine_errors::*;
+use crate::machine::machine_indices::*;
use std::fmt;