mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-02 08:08:20 +00:00
Introduce 'c' (constant) as symbol kind
This is preparatory work for addressing issue #30. It also fixes a bug where --prettify made the constants writable.
This commit is contained in:
parent
c924f3ae5c
commit
5841c2c17a
2 changed files with 70 additions and 13 deletions
42
run-tests.py
42
run-tests.py
|
@ -418,6 +418,48 @@ class UnitTestRegression(UnitTestCase):
|
|||
self.assertRaises(lslparse.EParseTypeMismatch, parser.parse,
|
||||
'default{timer(){if(1)return 1;}}')
|
||||
|
||||
# Constants with 'c' in symbol table (introduced to solve issue #30)
|
||||
# Some errors are not the expected ones. Most (all?) should be syntax.
|
||||
parser.parse('integer a=LOOP;default{timer(){llOwnerSay(NAK+EOF);}}')
|
||||
parser.parse('integer a=LOOP;default{timer(){llOwnerSay(NAK+EOF);}}',
|
||||
('prettify',))
|
||||
parser.parse('default{timer(){LOOP;}}')
|
||||
parser.parse('default{timer(){LOOP;}}', ('prettify',))
|
||||
self.assertRaises(lslparse.EParseSyntax, parser.parse,
|
||||
'default{touch(integer LOOP){}}', ('prettify',))
|
||||
self.assertRaises(lslparse.EParseSyntax, parser.parse,
|
||||
'default{timer(){ZERO_VECTOR.x;}}', ('prettify',))
|
||||
self.assertRaises(lslparse.EParseSyntax, parser.parse,
|
||||
'default{timer(){LOOP.x;}}', ('prettify',))
|
||||
self.assertRaises(lslparse.EParseSyntax, parser.parse,
|
||||
'default{timer(){LOOP=1;}}', ('prettify',))
|
||||
self.assertRaises(lslparse.EParseSyntax, parser.parse,
|
||||
'default{timer(){LOOP++;}}', ('prettify',))
|
||||
# should raise EParseSyntax instead
|
||||
self.assertRaises(lslparse.EParseUndefined, parser.parse,
|
||||
'default{timer(){++LOOP;}}', ('prettify',))
|
||||
# should raise EParseSyntax instead
|
||||
self.assertRaises(lslparse.EParseAlreadyDefined, parser.parse,
|
||||
'integer LOOP=0;', ('prettify',))
|
||||
# should raise EParseSyntax instead
|
||||
self.assertRaises(lslparse.EParseAlreadyDefined, parser.parse,
|
||||
'integer LOOP(){}', ('prettify',))
|
||||
self.assertRaises(lslparse.EParseSyntax, parser.parse,
|
||||
'default{timer(){integer LOOP=1;}}', ('prettify',))
|
||||
self.assertRaises(lslparse.EParseSyntax, parser.parse,
|
||||
'default{timer(){integer LOOP;}}', ('prettify',))
|
||||
# should raise EParseSyntax instead
|
||||
self.assertRaises(lslparse.EParseAlreadyDefined, parser.parse,
|
||||
'default{timer(){}}state LOOP{timer(){}}', ('prettify',))
|
||||
# should raise EParseSyntax instead
|
||||
self.assertRaises(lslparse.EParseUndefined, parser.parse,
|
||||
'default{timer(){state LOOP;}}', ('prettify',))
|
||||
self.assertRaises(lslparse.EParseSyntax, parser.parse,
|
||||
'default{timer(){@LOOP;}}', ('prettify',))
|
||||
self.assertRaises(lslparse.EParseSyntax, parser.parse,
|
||||
'default{timer(){integer LOOP;}}', ('prettify',))
|
||||
|
||||
|
||||
class UnitTestCoverage(UnitTestCase):
|
||||
def test_coverage_misc(self):
|
||||
"""Miscellaneous tests that can't be computed or are too difficult
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue