Trickiest part is whether you want the code to run 'un-preprocessed' as well
#IF something
print("something")
#ELSE
print("something else")
#ENDIF
This will clearly fail, won't compile. If you mark with --# it will run but
incorrect, as it executes both lines
--#IF something
print("something")
--#ELSE
print("something else")
--#ENDIF
Now if you can make the IF ELSE switch based on --# as in
--#IF something
print("something")
--#ELSE
--# print("something else")
--#ENDIF
I would better use standard Lua syntax with a normal "if", but instead use a specially marked condition. Something like :
----
function COMPILE_TIME(cond) return cond end
if COMPILE_TIME(condition) then
print("something")
else
print("something else")
end
-----
The advantage is that it the script will run normally unprocessed, no matter what "condition" is.
Now, since Lua language is not very difficult to parse, it should then not be a big problem to write a filter that looks for "if (not)? COMPILE_TIME(.*) then .* end" pattern, evaluate the constant condition, and outputs a scripts without those runtime tests.