# coding=utf-8 import operator import prolog.engine from server.hints import Hint, HintSequence id = 1 hint_type = { 'no_hint': Hint('no_hint'), 'program_already_correct': Hint('program_already_correct'), 'system_error': Hint('system_error'), 'test_results': Hint('test_results'), 'syntax_error': Hint('syntax_error'), } def hint(program, solved_problems): # 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 []