mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-01 15:48:21 +00:00
Give more meaningful errors when break/continue parameter is wrong.
Adds a new EParseInvalidBrkContArg exception. Previously it raised EParseInvalidBreak or EParseInvalidCont, whose text was misleading for this type of error.
This commit is contained in:
parent
84e4543300
commit
f1b05dd2ff
1 changed files with 11 additions and 6 deletions
|
@ -157,8 +157,7 @@ class EParseInvalidBreak(EParse):
|
|||
super(EParseInvalidBreak, self).__init__(parser,
|
||||
u"'break' used outside a loop or switch"
|
||||
if parser.enableswitch and parser.breakcont
|
||||
else u"'break' used outside a switch"
|
||||
if parser.enableswitch
|
||||
else u"'break' used outside a switch" if parser.enableswitch
|
||||
else u"'break' used outside a loop")
|
||||
|
||||
class EParseInvalidCont(EParse):
|
||||
|
@ -166,6 +165,12 @@ class EParseInvalidCont(EParse):
|
|||
super(EParseInvalidCont, self).__init__(parser,
|
||||
u"'continue' used outside a loop")
|
||||
|
||||
class EParseInvalidBrkContArg(EParse):
|
||||
def __init__(self, parser):
|
||||
super(EParseInvalidBrkContArg, self).__init__(parser,
|
||||
u"Invalid argument to 'break' or 'continue'" if parser.breakcont
|
||||
else u"Invalid argument to 'break'")
|
||||
|
||||
class EParseInvalidBackslash(EParse):
|
||||
def __init__(self, parser):
|
||||
super(EParseInvalidBackslash, self).__init__(parser,
|
||||
|
@ -1925,7 +1930,7 @@ list lazy_list_set(list L, integer i, list v)
|
|||
n = -1
|
||||
if self.tok[0] == 'INTEGER_VALUE':
|
||||
if self.tok[1] <= 0:
|
||||
raise EParseInvalidBreak(self)
|
||||
raise EParseInvalidBrkContArg(self)
|
||||
n = -self.tok[1]
|
||||
self.NextToken()
|
||||
self.expect(';')
|
||||
|
@ -1933,7 +1938,7 @@ list lazy_list_set(list L, integer i, list v)
|
|||
try:
|
||||
self.breakstack[n][2] = True
|
||||
except IndexError:
|
||||
raise EParseInvalidBreak(self)
|
||||
raise EParseInvalidBrkContArg(self)
|
||||
return {'nt':'JUMP', 't':None, 'name':self.breakstack[n][0],
|
||||
'scope':self.breakstack[n][1]}
|
||||
|
||||
|
@ -1944,7 +1949,7 @@ list lazy_list_set(list L, integer i, list v)
|
|||
n = -1
|
||||
if self.tok[0] == 'INTEGER_VALUE':
|
||||
if self.tok[1] <= 0:
|
||||
raise EParseInvalidCont(self)
|
||||
raise EParseInvalidBrkContArg(self)
|
||||
n = -self.tok[1]
|
||||
self.NextToken()
|
||||
self.expect(';')
|
||||
|
@ -1964,7 +1969,7 @@ list lazy_list_set(list L, integer i, list v)
|
|||
return {'nt':'JUMP', 't':None, 'name':self.breakstack[n][0],
|
||||
'scope':self.breakstack[n][1]}
|
||||
except IndexError:
|
||||
raise EParseInvalidCont(self)
|
||||
raise EParseInvalidBrkContArg(self)
|
||||
self.continuestack[n][2] = True
|
||||
return {'nt':'JUMP', 't':None, 'name':self.continuestack[n][0],
|
||||
'scope':self.continuestack[n][1]}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue