From 517d9c7694208cc19f446d050258af134d652da8 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 21 Sep 2015 15:55:38 +0200 Subject: Added exception text to sl.py. --- python/common.py | 19 ++++++++++++++++ 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': '''\ -

Namig ne obstaja! Poskusi uporabiti misli.

-''', - - 'test_results': '''\ -

Program je opravil [%=passed%] / [%=total%] testov.

-''', - - 'syntax_error': '''\ -

Program vsebuje sintaktično napako v vrstici [%=lineno%]:

-
-[%=message%]
-
-''', -} general_msg = { 'error_head' : '''\ @@ -25,18 +9,55 @@ general_msg = { ''', - 'general_exception': ''' + 'general_exception': '''\

Glej lokacijo napake (line ...) in za kakšno napako gre (zadnja vrstica).

''', - 'name_error' : ''' -

Napaka NameError pomeni, da uporabljate nedefinirano vrednost: -ali vrednost spremenljivke ni določena ali uporabljate funkcijo, ki ni uvožena.

+ 'name_error' : '''\ +

Napaka NameError pomeni, da uporabljaš nedefinirano vrednost: +ali vrednost spremenljivke ni določena ali funkcija ni definirana oz. uvožena.

''', - 'type_error': ''' -

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. .

+ 'type_error': '''\ +

TypeError napaka pomeni, da želiš izvesti operacijo na neprimernih tipih. +Npr., sešteti niz in število ali klicati funkcijo, čeprav tisto ni funkcija, itd. .

''', + 'eof_error':'''\ +

Poskušaš prebrati preveč vrednosti.

''', + + 'timed_out':'''\ +

Program se izvaja predolgo.

''' + +} + +hint = { + 'no_hint': ['''\ +

Namig ne obstaja! Poskusi uporabiti misli.

+'''], + + 'test_results': ['''\ +

Program je opravil [%=passed%] / [%=total%] testov.

+'''], + + 'syntax_error': ['''\ +

Program vsebuje sintaktično napako v vrstici [%=lineno%]:

+
+[%=message%]
+
+'''], + + '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']] } -- cgit v1.2.1