Skip to content

Commit

Permalink
Fix/Improve ReifiedAST input interface.
Browse files Browse the repository at this point in the history
  • Loading branch information
namcsi committed Jun 18, 2023
1 parent c29519e commit 3981f29
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
16 changes: 9 additions & 7 deletions src/renopro/reify.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,20 +47,22 @@ def _new_id(self) -> int:
def add_reified_facts(self, reified_facts:
Iterable[preds.AST_Predicate]) -> None:
"""Add factbase containing reified facts into internal factbase."""
self._reified.add(reified_facts)
self._reified.update(reified_facts)

def add_reified_program(self, reified_program: str) -> None:
def add_reified_string(self, reified_string: str) -> None:
"""Add string of reified facts into internal factbase."""
facts = parse_fact_string(reified_program, unifier=[preds.AST_Facts])
self._reified.add(facts)
facts = parse_fact_string(reified_string, unifier=preds.AST_Facts,
raise_nomatch=True, raise_nonfact=True)
self._reified.update(facts)

def add_reified_files(self, reified_files: Sequence[Path]) -> None:
"""Add files containing reified facts into internal factbase."""
reified_files = [str(f) for f in reified_files]
facts = parse_fact_files(reified_files, unifier=[preds.AST_Facts])
self._reified.add(facts)
facts = parse_fact_files(reified_files, unifier=preds.AST_Facts,
raise_nomatch=True, raise_nonfact=True)
self._reified.update(facts)

def reify_program(self, prog_str: str) -> None:
def reify_string(self, prog_str: str) -> None:
"""Reify input program string, adding reified facts to the
internal factbase."""
parse_string(prog_str, self._reify_ast)
Expand Down
2 changes: 1 addition & 1 deletion tests/test_reify.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def assertReifyReflectEqual(self,
with self.subTest(operation=operation):
if operation == "reification":
rast = ReifiedAST()
rast.reify_program(prog_str)
rast.reify_string(prog_str)
self.assertSetEqual(rast._reified, ast_facts)
elif operation == "reflection":
rast = ReifiedAST()
Expand Down

0 comments on commit 3981f29

Please sign in to comment.