mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-01 23:58:20 +00:00
Revert _Pragma operator
Revert "Add support for C11-style _Pragma operator on processpre". Revert "Add unit test for the _Pragma operator". This reverts commits31fcb331c7
ande261ac2121
. This should rather be the job of the preprocessor, which should generate #pragma lines. gcc does that.
This commit is contained in:
parent
fba40123e1
commit
36ed90c9ba
4 changed files with 5 additions and 58 deletions
|
@ -465,7 +465,7 @@ class parser(object):
|
||||||
else:
|
else:
|
||||||
self.SetOpt(opt, True)
|
self.SetOpt(opt, True)
|
||||||
|
|
||||||
def GetToken(self, pragma=False):
|
def GetToken(self):
|
||||||
"""Lexer"""
|
"""Lexer"""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -580,23 +580,6 @@ class parser(object):
|
||||||
ident += self.script[self.pos]
|
ident += self.script[self.pos]
|
||||||
self.pos += 1
|
self.pos += 1
|
||||||
|
|
||||||
if self.processpre and ident == '_Pragma' and not pragma:
|
|
||||||
savepos = self.pos
|
|
||||||
errorpos = self.errorpos
|
|
||||||
tok = self.tok
|
|
||||||
|
|
||||||
if (self.GetToken(True)[0] == '('
|
|
||||||
and self.NextToken(True)[0] == 'STRING_VALUE'
|
|
||||||
and self.GetToken(True)[0] == ')'
|
|
||||||
):
|
|
||||||
self.ProcessDirective("#pragma "
|
|
||||||
+ self.tok[1])
|
|
||||||
return self.GetToken()
|
|
||||||
else:
|
|
||||||
self.pos = savepos
|
|
||||||
self.errorpos = errorpos
|
|
||||||
self.tok = tok
|
|
||||||
|
|
||||||
# Got an identifier - check if it's a reserved word
|
# Got an identifier - check if it's a reserved word
|
||||||
if ident in self.keywords:
|
if ident in self.keywords:
|
||||||
return (ident.upper(),)
|
return (ident.upper(),)
|
||||||
|
@ -723,10 +706,9 @@ class parser(object):
|
||||||
|
|
||||||
return ('EOF',)
|
return ('EOF',)
|
||||||
|
|
||||||
def NextToken(self, pragma=False):
|
def NextToken(self):
|
||||||
"""Calls GetToken and sets the internal token."""
|
"""Calls GetToken and sets the internal token."""
|
||||||
self.tok = self.GetToken(pragma)
|
self.tok = self.GetToken()
|
||||||
return self.tok
|
|
||||||
|
|
||||||
# Recursive-descendent parser. The result is an AST and a symbol table.
|
# Recursive-descendent parser. The result is an AST and a symbol table.
|
||||||
|
|
||||||
|
@ -2956,8 +2938,7 @@ list lazy_list_set(list L, integer i, list v)
|
||||||
self.scanglobals = True # Tell the lexer not to process directives
|
self.scanglobals = True # Tell the lexer not to process directives
|
||||||
self.pos = self.errorpos = 0
|
self.pos = self.errorpos = 0
|
||||||
self.linestart = True
|
self.linestart = True
|
||||||
self.tok = None
|
self.tok = self.GetToken()
|
||||||
self.NextToken()
|
|
||||||
|
|
||||||
self.globals = self.BuildTempGlobalsTable() if not lslcommon.IsCalc \
|
self.globals = self.BuildTempGlobalsTable() if not lslcommon.IsCalc \
|
||||||
else self.funclibrary.copy()
|
else self.funclibrary.copy()
|
||||||
|
@ -2967,8 +2948,7 @@ list lazy_list_set(list L, integer i, list v)
|
||||||
self.scanglobals = False
|
self.scanglobals = False
|
||||||
self.pos = self.errorpos = 0
|
self.pos = self.errorpos = 0
|
||||||
self.linestart = True
|
self.linestart = True
|
||||||
self.tok = None
|
self.tok = self.GetToken()
|
||||||
self.NextToken()
|
|
||||||
|
|
||||||
# Reserve spots at the beginning for functions we add
|
# Reserve spots at the beginning for functions we add
|
||||||
self.tree = [nr(nt='LAMBDA', t=None)]
|
self.tree = [nr(nt='LAMBDA', t=None)]
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
_Pragma("OPT inline")
|
|
||||||
|
|
||||||
string f(integer x) inline
|
|
||||||
{
|
|
||||||
return "ok";
|
|
||||||
}
|
|
||||||
|
|
||||||
default
|
|
||||||
{
|
|
||||||
state_entry()
|
|
||||||
{
|
|
||||||
llOwnerSay(f(5));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
default
|
|
||||||
{
|
|
||||||
state_entry()
|
|
||||||
{
|
|
||||||
string ___ret__00001;
|
|
||||||
{
|
|
||||||
integer x = 5;
|
|
||||||
{
|
|
||||||
{
|
|
||||||
___ret__00001 = "ok";
|
|
||||||
jump ___rtl__00001;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@___rtl__00001;
|
|
||||||
llOwnerSay(___ret__00001);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
main.py - -O clear,processpre
|
|
Loading…
Add table
Add a link
Reference in a new issue