Difference between revisions of "Preprocessing"
Jump to navigation
Jump to search
Aeron Kohime (talk | contribs) (New page: I suggest the ability to add preprocessing to LSL, as this has no effect on LSL itself but can provide scripts which can do many different things, depending on. This would include. #Basic...) |
Aeron Kohime (talk | contribs) (added ifndef and etc) |
||
Line 3: | Line 3: | ||
This would include. | This would include. | ||
#Basic Define keyword, can be used to define custom static variables. (these may need to be typed) | #Basic Define keyword, can be used to define custom static variables. (these may need to be typed) | ||
#IF | #IF, ELSE, ENDIF preprocessor branches | ||
#IFDEF, IFNDEF preprocessors | |||
As such a script such as this: | As such a script such as this: | ||
<lsl> | <lsl> | ||
#define DEBUG | #define DEBUG | ||
# | #ifdef DEBUG | ||
string mode = "DEBUG"; | string mode = "DEBUG"; | ||
#else | #else | ||
Line 17: | Line 18: | ||
default | default | ||
{ | { | ||
# | #ifdef DEBUG | ||
on_rez(integer s) | on_rez(integer s) | ||
{ | { | ||
Line 27: | Line 28: | ||
{ | { | ||
llOwnerSay(mode); | llOwnerSay(mode); | ||
# | #ifdef DEBUG | ||
llOwnerSay(llGetDate(); | llOwnerSay(llGetDate(); | ||
} | } | ||
Line 38: | Line 39: | ||
Could produce two different scripts depending on the value of DEBUG, which would then get compiled/interpreted. | Could produce two different scripts depending on the value of DEBUG, which would then get compiled/interpreted. | ||
With DEBUG | With DEBUG defined | ||
<lsl> | <lsl> | ||
#define DEBUG | #define DEBUG | ||
string mode = "DEBUG"; | string mode = "DEBUG"; | ||
Line 59: | Line 60: | ||
</lsl> | </lsl> | ||
Without DEBUG defined | |||
<lsl> | <lsl> | ||
string mode = "NORMAL"; | string mode = "NORMAL"; | ||
Latest revision as of 20:09, 5 May 2009
I suggest the ability to add preprocessing to LSL, as this has no effect on LSL itself but can provide scripts which can do many different things, depending on.
This would include.
- Basic Define keyword, can be used to define custom static variables. (these may need to be typed)
- IF, ELSE, ENDIF preprocessor branches
- IFDEF, IFNDEF preprocessors
As such a script such as this: <lsl>
- define DEBUG
- ifdef DEBUG
string mode = "DEBUG";
- else
string mode = "NORMAL";
- endif
default {
- ifdef DEBUG
on_rez(integer s) { llResetScript() }
- endif
state_entry() { llOwnerSay(mode);
- ifdef DEBUG
llOwnerSay(llGetDate(); }
- else
}
- endif
} </lsl>
Could produce two different scripts depending on the value of DEBUG, which would then get compiled/interpreted.
With DEBUG defined <lsl>
- define DEBUG
string mode = "DEBUG";
default {
on_rez(integer s) { llResetScript() }
state_entry() { llOwnerSay(mode); llOwnerSay(llGetDate(); }
} </lsl>
Without DEBUG defined <lsl> string mode = "NORMAL";
default {
state_entry() { llOwnerSay(mode); }
} </lsl>