Logo
Explore Help
Register Sign In
Miko/LSL-PyOptimizer
1
0
Fork 0
You've already forked LSL-PyOptimizer
Code Issues Pull Requests Actions Packages Projects Releases Wiki Activity
Files
03cc7230c5d72bfe9795330dd830c2c8cd389427
LSL-PyOptimizer/main.py

24 lines
497 B
Python
Raw Normal View History

Initial commit. Status so far: - Parser and output modules are thoroughly tested and working. - Most LSL immutable functions are working; some not tested; llJsonSetValue not implemented. - Parser recognizes the following flags that alter syntax: extendedglobalexpr: Allow full expression syntax in globals. extendedtypecast: Allow full unary expressions in typecasts e.g. (float)~i. extendedassignment: Enable the C assignment operators &=, ^=, |=, <<=, >>=. explicitcast: Add explicit casts wherever they are done implicitly, e.g. float f=3; -> float f=(float)3;. Of them, only extendedglobalexpr is useless so far, as it requires the optimizer to be working.
2014-07-26 02:43:44 +02:00
#!/usr/bin/env python
from lslopt.lslparse import parser,EParse
from lslopt.lsloutput import outscript
import sys
def main():
if len(sys.argv) > 1:
p = parser()
try:
symtab = p.parsefile(sys.argv[1])
except EParse as e:
print e.message
return 1
del p
outs = outscript()
script = outs.output(symtab)
del outs
del symtab
print script.decode('utf8'),
return 0
sys.exit(main())
Reference in New Issue Copy Permalink
Powered by Gitea Version: 1.25.3 Page: 52ms Template: 5ms
English
Bahasa Indonesia Deutsch English Español Français Gaeilge Italiano Latviešu Magyar nyelv Nederlands Polski Português de Portugal Português do Brasil Suomi Svenska Türkçe Čeština Ελληνικά Български Русский Українська فارسی മലയാളം 日本語 简体中文 繁體中文(台灣) 繁體中文(香港) 한국어
Licenses API