mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-23 13:09:33 -07:00
First, a string does not have its own context, it's a regular expression, therefore if there isn't a matching closing quote until EOF, it's not an unterminated string. It plainly *isn't* a string. Second, the string lexer searches for either the regexp '[^"\\]' (any character except a double quote or a backslash) or the regexp '\\.', that is, a backslash followed by an "any character" meta. But the "any character" meta does NOT match a newline. The consequence is that a '\' followed by a newline cancels the matching, and the whole thing is not considered a string. Isolated double quotes are then plain ignored as many other characters. An example illustrating both cases: ``` default { state_entry() { string msg = "Hello, Avatar!"; llOwnerSay"(msg); // the opening quote will be ignored // the following backslash at EOL cancels the previous double quote: \ llOwnerSay(llGetKey(")); // Unterminated string; unmatched so ignored. } } ``` |
||
---|---|---|
.. | ||
__init__.py | ||
lslbasefuncs.py | ||
lslcommon.py | ||
lsldeadcode.py | ||
lslextrafuncs.py | ||
lslfoldconst.py | ||
lslfuncs.py | ||
lsljson.py | ||
lsloptimizer.py | ||
lsloutput.py | ||
lslparse.py | ||
lslrenamer.py |