summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/common.py19
-rw-r--r--python/sl.py67
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']]
}