From 1b64321fda0bbf1f5a678671c1344eb2b87b5c74 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Thu, 10 Sep 2015 22:29:24 +0200 Subject: Use Hint classes for hints from the last commit Also move the language-specific hint method for Prolog to prolog.common. --- prolog/common.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 prolog/common.py (limited to 'prolog/common.py') diff --git a/prolog/common.py b/prolog/common.py new file mode 100644 index 0000000..afba98f --- /dev/null +++ b/prolog/common.py @@ -0,0 +1,21 @@ +# coding=utf-8 + +import operator +import prolog.engine +from server.hints import Hint, HintSequence + +hint_defs = { + 'no_hint': HintSequence('no_hint', 4), + 'test_results': Hint('test_results'), + 'syntax_error': Hint('syntax_error'), +} + +def hint(program): + # Check program for syntax errors. + engine_id, output = prolog.engine.create(code=program) + if engine_id is not None: + prolog.engine.destroy(engine_id) + if 'error' in map(operator.itemgetter(0), output): + errors_msg = '\n'.join(['{}: {}'.format(m_type, m_text) for m_type, m_text in output]) + return [{'id': 'syntax_error', 'args': {'messages': errors_msg}}] + return [] -- cgit v1.2.1