mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-02 16:18:19 +00:00
Allow a code block instead of a ':' as terminator for 'case' and 'default'.
For Firestorm compatibility.
This commit is contained in:
parent
39b6036671
commit
535dc8434c
1 changed files with 10 additions and 5 deletions
|
@ -1299,7 +1299,8 @@ list lazy_list_set(list L, integer i, list v)
|
||||||
return_statement: RETURN ';' | RETURN expression ';'
|
return_statement: RETURN ';' | RETURN expression ';'
|
||||||
declaration_statement: TYPE lvalue ';' | TYPE lvalue '=' expression ';'
|
declaration_statement: TYPE lvalue ';' | TYPE lvalue '=' expression ';'
|
||||||
switch_statement: SWITCH '(' expression ')' code_block
|
switch_statement: SWITCH '(' expression ')' code_block
|
||||||
case_statement: CASE expression ':' | DEFAULT ':'
|
case_statement: CASE expression ':' | CASE expression code_block
|
||||||
|
| DEFAULT ':' | DEFAULT code_block
|
||||||
break_statement: BREAK ';'
|
break_statement: BREAK ';'
|
||||||
continue_statement: CONTINUE ';'
|
continue_statement: CONTINUE ';'
|
||||||
|
|
||||||
|
@ -1616,8 +1617,10 @@ list lazy_list_set(list L, integer i, list v)
|
||||||
raise EParseCaseNotAllowed(self, u"case")
|
raise EParseCaseNotAllowed(self, u"case")
|
||||||
self.NextToken()
|
self.NextToken()
|
||||||
expr = self.Parse_expression()
|
expr = self.Parse_expression()
|
||||||
self.expect(':')
|
if self.tok[0] == ':':
|
||||||
self.NextToken()
|
self.NextToken()
|
||||||
|
elif self.tok[0] != '{':
|
||||||
|
raise EParseSyntax(self)
|
||||||
return {'nt':'CASE', 't':None, 'ch':[expr]}
|
return {'nt':'CASE', 't':None, 'ch':[expr]}
|
||||||
|
|
||||||
if tok0 == 'DEFAULT':
|
if tok0 == 'DEFAULT':
|
||||||
|
@ -1630,8 +1633,10 @@ list lazy_list_set(list L, integer i, list v)
|
||||||
# labels. Nothing we can do about that.
|
# labels. Nothing we can do about that.
|
||||||
raise EParseCaseNotAllowed(self, u"default")
|
raise EParseCaseNotAllowed(self, u"default")
|
||||||
self.NextToken()
|
self.NextToken()
|
||||||
self.expect(':')
|
if self.tok[0] == ':':
|
||||||
self.NextToken()
|
self.NextToken()
|
||||||
|
elif self.tok[0] != '{':
|
||||||
|
raise EParseSyntax(self)
|
||||||
return {'nt':'DEFAULTCASE', 't':None}
|
return {'nt':'DEFAULTCASE', 't':None}
|
||||||
# else fall through to eventually fail
|
# else fall through to eventually fail
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue