From f4bee33bfae518ac04e67232d301900bcf3ebd4e Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Mon, 8 Dec 2014 20:43:22 +0100 Subject: Start refactoring testing code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Testing logic now lives in PrologEngine. The engine now has some notion of problems and users, which is necessary to avoid repeatedly loading code into Prolog. TODO: - support library loading - fix PrologEngine.test for unusual cases (more than one solution, …) - memoization of correct answers --- prolog/util.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'prolog/util.py') diff --git a/prolog/util.py b/prolog/util.py index b7e536b..0ab3c8b 100644 --- a/prolog/util.py +++ b/prolog/util.py @@ -27,6 +27,15 @@ def stringify(tokens): return str(t) return ''.join(map(token_str, tokens)) +# Yield the sequence of rules in [code]. +def split(code): + tokens = tokenize(code) + start = 0 + for idx, token in enumerate(tokens): + if token.type == 'PERIOD' and idx - start > 1: + yield stringify(tokens[start:idx]) + start = idx + 1 + # return a list of lines in 'code', and a list of rule indexes def decompose(code): lines = [] -- cgit v1.2.1