From 376b39a4ef8a063acb48cc59db3098362be37fcc Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 29 Sep 2019 10:16:27 -0600 Subject: [PATCH] support loading of modules from files specified at the command line --- src/prolog/machine/compile.rs | 1 + src/prolog/machine/mod.rs | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/prolog/machine/compile.rs b/src/prolog/machine/compile.rs index 0568e26c..ee0392b1 100644 --- a/src/prolog/machine/compile.rs +++ b/src/prolog/machine/compile.rs @@ -81,6 +81,7 @@ fn load_module(wam: &mut Machine, name: &str, stream: ParsingStream) } } +pub(super) fn load_module_from_file(wam: &mut Machine, filename: &str) -> Result { let path = fix_filename(wam.indices.atom_tbl.clone(), filename)?; diff --git a/src/prolog/machine/mod.rs b/src/prolog/machine/mod.rs index a7b093a4..56bfa3b9 100644 --- a/src/prolog/machine/mod.rs +++ b/src/prolog/machine/mod.rs @@ -217,6 +217,13 @@ impl Machine { } pub fn run_toplevel(&mut self) { + use std::env; + use prolog::machine::compile::load_module_from_file; + + for filename in env::args() { + load_module_from_file(self, &filename); + } + self.machine_st.p = CodePtr::Local(LocalCodePtr::DirEntry(self.toplevel_idx)); self.run_query(&AllocVarDict::new()); } -- 2.54.0