diff options
Diffstat (limited to 'indra/lscript/lscript_compile/lscript_tree.h')
-rw-r--r-- | indra/lscript/lscript_compile/lscript_tree.h | 86 |
1 files changed, 56 insertions, 30 deletions
diff --git a/indra/lscript/lscript_compile/lscript_tree.h b/indra/lscript/lscript_compile/lscript_tree.h index f80d7fdf24..bf29f44518 100644 --- a/indra/lscript/lscript_compile/lscript_tree.h +++ b/indra/lscript/lscript_compile/lscript_tree.h @@ -2,30 +2,25 @@ * @file lscript_tree.h * @brief provides the classes required to build lscript's abstract syntax tree and symbol table * - * $LicenseInfo:firstyear=2002&license=viewergpl$ - * - * Copyright (c) 2002-2007, Linden Research, Inc. - * + * $LicenseInfo:firstyear=2002&license=viewerlgpl$ * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * Copyright (C) 2010, Linden Research, Inc. * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -758,12 +753,12 @@ class LLScriptHTTPResponseEvent : public LLScriptEvent { public: LLScriptHTTPResponseEvent(S32 line, S32 col, - LLScriptIdentifier *reqeust_id, + LLScriptIdentifier *request_id, LLScriptIdentifier *status, LLScriptIdentifier *metadata, LLScriptIdentifier *body) : LLScriptEvent(line, col, LSTT_HTTP_RESPONSE), - mRequestId(reqeust_id), mStatus(status), mMetadata(metadata), mBody(body) + mRequestId(request_id), mStatus(status), mMetadata(metadata), mBody(body) { } @@ -782,6 +777,32 @@ public: LLScriptIdentifier *mBody; }; +class LLScriptHTTPRequestEvent : public LLScriptEvent +{ +public: + LLScriptHTTPRequestEvent(S32 line, S32 col, + LLScriptIdentifier *request_id, + LLScriptIdentifier *method, + LLScriptIdentifier *body) + : LLScriptEvent(line, col, LSTT_HTTP_REQUEST), + mRequestId(request_id), mMethod(method), mBody(body) + { + } + + void recurse(LLFILE *fp, S32 tabs, S32 tabsize, LSCRIPTCompilePass pass, + LSCRIPTPruneType ptype, BOOL &prunearg, LLScriptScope *scope, + LSCRIPTType &type, LSCRIPTType basetype, U64 &count, + LLScriptByteCodeChunk *chunk, LLScriptByteCodeChunk *heap, + S32 stacksize, LLScriptScopeEntry *entry, + S32 entrycount, LLScriptLibData **ldata); + + S32 getSize(); + + LLScriptIdentifier *mRequestId; + LLScriptIdentifier *mMethod; + LLScriptIdentifier *mBody; +}; + class LLScriptRezEvent : public LLScriptEvent { public: @@ -1849,7 +1870,7 @@ class LLScriptStateChange : public LLScriptStatement { public: LLScriptStateChange(S32 line, S32 col, LLScriptIdentifier *identifier) - : LLScriptStatement(line, col, LSSMT_STATE_CHANGE), mIdentifier(identifier) + : LLScriptStatement(line, col, LSSMT_STATE_CHANGE), mIdentifier(identifier), mReturnType(LST_NULL) { } @@ -1861,6 +1882,7 @@ public: S32 getSize(); LLScriptIdentifier *mIdentifier; + LSCRIPTType mReturnType; }; class LLScriptJump : public LLScriptStatement @@ -2182,7 +2204,7 @@ class LLScriptState : public LLScriptFilePosition { public: LLScriptState(S32 line, S32 col, LSCRIPTStateType type, LLScriptIdentifier *identifier, LLScriptEventHandler *event) - : LLScriptFilePosition(line, col), mType(type), mIdentifier(identifier), mEvent(event), mNextp(NULL) + : LLScriptFilePosition(line, col), mType(type), mIdentifier(identifier), mEvent(event), mNextp(NULL), mStateScope(NULL) { } @@ -2197,11 +2219,11 @@ public: void recurse(LLFILE *fp, S32 tabs, S32 tabsize, LSCRIPTCompilePass pass, LSCRIPTPruneType ptype, BOOL &prunearg, LLScriptScope *scope, LSCRIPTType &type, LSCRIPTType basetype, U64 &count, LLScriptByteCodeChunk *chunk, LLScriptByteCodeChunk *heap, S32 stacksize, LLScriptScopeEntry *entry, S32 entrycount, LLScriptLibData **ldata); S32 getSize(); - LSCRIPTStateType mType; - LLScriptIdentifier *mIdentifier; - LLScriptEventHandler *mEvent; - LLScriptState *mNextp; - + LSCRIPTStateType mType; + LLScriptIdentifier *mIdentifier; + LLScriptEventHandler *mEvent; + LLScriptState *mNextp; + LLScriptScope *mStateScope; }; class LLScritpGlobalStorage : public LLScriptFilePosition @@ -2262,6 +2284,9 @@ public: void setBytecodeDest(const char* dst_filename); + void setClassName(const char* class_name); + const char* getClassName() {return mClassName;} + LLScriptState *mStates; LLScriptScope *mGlobalScope; LLScriptGlobalVariable *mGlobals; @@ -2269,7 +2294,8 @@ public: BOOL mGodLike; private: - char mBytecodeDest[MAX_STRING]; /*Flawfinder: ignore*/ + std::string mBytecodeDest; + char mClassName[MAX_STRING]; }; class LLScriptAllocationManager |