Czervik LSL Computer

From Second Life Wiki
Revision as of 10:19, 14 September 2007 by Xaviar Czervik (talk | contribs) (New page: The below code is some code being written by ~~~. It isn't even partly done, and I were a programmer It'd be version 0.00.0.000.0.01, although I don't do that... So, if you're interested o...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The below code is some code being written by Xaviar Czervik. It isn't even partly done, and I were a programmer It'd be version 0.00.0.000.0.01, although I don't do that... So, if you're interested on crashing the LSL compiler (This code doesn't compile 99% of the time) check out the code below. And incase you couldn't tell, I don't believe in comments.


key kQuery;
integer iLine = 0;

list stringsName;
list strings;
list intsName;
list ints;

string getType(string s) {
    if ((string)((integer)s) == s)
	return "int";
    return "str";
}

fail(string error) {
    llOwnerSay("Run-time Error: " + error);
    llResetScript();
}

default {
    touch_start(integer i) {
        llSay(0, "Starting Program...");
        kQuery = llGetNotecardLine("Program", iLine);
    }

    dataserver(key query_id, string data) {
        if (query_id == kQuery) {
            if (data == EOF) {    
                llSay(0, "Ending Program.");
            } else {
		list ld = llParseString2List(data, [" "], []);
		if (llList2String(ld, 0) == "str") {
		    stringsName += llList2String(ld, 1);
		    strings += llList2String(ld, 2);
		} else if (llList2String(ld, 0) == "int") {
		    intsName += (integer)llList2String(ld, 1);
		    ints += (integer)llList2String(ld, 2);
		} else if (llList2String(ld, 0) == "?") {
		    string typeFirst  = getType(llList2String(ld, 1));
		    string typeSecond = getType(llList2String(ld, 3));
		    integer pass = 0;
		    if (typeFirst == "str" || typeSecond == "str")
			if (llList2String(ld, 2) == "==") {
			    if (llList2String(ld, 1) == llList2String(ld, 3)
				pass = 1;
			} else if (llList2String(ld, 2) == "!=") {
			    if (llList2String(ld, 1) != llList2String(ld, 3)
				pass = 1;

			} else {
			    fail("Can not compare two strings using the " + llList2String(ld, 2) + " opperator.");
			}
		    }
			
                ++iLine;
                kQuery = llGetNotecardLine("My Notecard", iLine);

            }
        }
    }
}