diff options
-rw-r--r-- | python/common.py | 19 | ||||
-rw-r--r-- | python/sl.py | 67 |
2 files changed, 63 insertions, 23 deletions
diff --git a/python/common.py b/python/common.py index 5ce2eb3..7d4eaab 100644 --- a/python/common.py +++ b/python/common.py @@ -7,6 +7,11 @@ hint_type = { 'no_hint': Hint('no_hint'), 'test_results': Hint('test_results'), 'syntax_error': Hint('syntax_error'), + 'name_error': Hint('name_error'), + 'type_error': Hint('name'), + 'error': Hint('error'), + 'eof_error': Hint('eof_error'), + 'timed_out': Hint('timed_out'), } def hint(python, program): @@ -17,3 +22,17 @@ def hint(python, program): error_msg = '{}{}^\n{}'.format(ex.text, ' '*(ex.offset-1), ex.msg) return [{'id': 'syntax_error', 'args': {'lineno': ex.lineno, 'message': error_msg}}] return [] + + +def exception(exc_string): + if exc_string: + if 'EOFError' in exc_string: + return [{'id':'eof_error'}] + if 'timed out' in exc: + return [{'id':'timed_out'}] + if 'NameError' in exc: + return [{'id':'name_error', 'args': {'message': exc}}] + elif 'TypeError' in exc: + return [{'id':'type_error', 'args': {'message': exc}}] + else: + return [{'id':'error', 'args': {'message': exc}}] diff --git a/python/sl.py b/python/sl.py index db9931b..a4d4065 100644 --- a/python/sl.py +++ b/python/sl.py @@ -1,21 +1,5 @@ # coding=utf-8 -hint = { - 'no_hint': '''\ -<p>Namig ne obstaja! Poskusi uporabiti misli.</p> -''', - - 'test_results': '''\ -<p>Program je opravil [%=passed%] / [%=total%] testov.</p> -''', - - 'syntax_error': '''\ -<p>Program vsebuje sintaktično napako v vrstici [%=lineno%]:</p> -<pre> -[%=message%] -</pre> -''', -} general_msg = { 'error_head' : '''\ @@ -25,18 +9,55 @@ general_msg = { </pre> ''', - 'general_exception': ''' + 'general_exception': '''\ <p>Glej lokacijo napake (line ...) in za kakšno napako gre (zadnja vrstica).</p> ''', - 'name_error' : ''' -<p>Napaka <code>NameError</code> pomeni, da uporabljate nedefinirano vrednost: -ali vrednost spremenljivke ni določena ali uporabljate funkcijo, ki ni uvožena.</p> + 'name_error' : '''\ +<p>Napaka <code>NameError</code> pomeni, da uporabljaš nedefinirano vrednost: +ali vrednost spremenljivke ni določena ali funkcija ni definirana oz. uvožena.</p> ''', - 'type_error': ''' -<p>TypeError napaka pomeni, da želite izvesti operacijo na neprimernih tipih. -Npr., če želite sešteti niz in število ali klicati funkcijo, čeprav tisto ni funkcija, itd. .</p> + 'type_error': '''\ +<p>TypeError napaka pomeni, da želiš izvesti operacijo na neprimernih tipih. +Npr., sešteti niz in število ali klicati funkcijo, čeprav tisto ni funkcija, itd. .</p> ''', + 'eof_error':'''\ +<p>Poskušaš prebrati preveč vrednosti.</p>''', + + 'timed_out':'''\ +<p>Program se izvaja predolgo.</p>''' + +} + +hint = { + 'no_hint': ['''\ +<p>Namig ne obstaja! Poskusi uporabiti misli.</p> +'''], + + 'test_results': ['''\ +<p>Program je opravil [%=passed%] / [%=total%] testov.</p> +'''], + + 'syntax_error': ['''\ +<p>Program vsebuje sintaktično napako v vrstici [%=lineno%]:</p> +<pre> +[%=message%] +</pre> +'''], + + 'name_error' : [general_msg['error_head'], + general_msg['general_exception'], + general_msg['name_error']], + + 'type_error' : [general_msg['error_head'], + general_msg['general_exception'], + general_msg['type_error']], + + 'error' : [general_msg['error_head'], general_msg['general_exception']], + + 'eof_error' : [general_msg['eof_error']], + + 'timed_out' : [general_msg['timed_out']] } |