/indra/lscript/lscript_compile/lscript_tree.h
C++ Header | 1775 lines | 1372 code | 369 blank | 34 comment | 0 complexity | 4f055ca2f4662a7c815d140d1f6b186f MD5 | raw file
Possible License(s): LGPL-2.1
Large files files are truncated, but you can click here to view the full file
- /**
- * @file lscript_tree.h
- * @brief provides the classes required to build lscript's abstract syntax tree and symbol table
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * 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.
- *
- * 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.
- *
- * 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$
- */
- #ifndef LL_LSCRIPT_TREE_H
- #define LL_LSCRIPT_TREE_H
- #include "v3math.h"
- #include "llquaternion.h"
- #include "linked_lists.h"
- #include "lscript_error.h"
- #include "lscript_typecheck.h"
- #include "lscript_byteformat.h"
- // Nota Bene: Class destructors don't delete pointed to classes because it isn't guaranteed that lex/yacc will build
- // complete data structures. Instead various chunks that are allocated are stored and deleted by allocation lists
- class LLScriptType : public LLScriptFilePosition
- {
- public:
- LLScriptType(S32 line, S32 col, LSCRIPTType type)
- : LLScriptFilePosition(line, col), mType(type)
- {
- }
- ~LLScriptType() {}
- 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();
- LSCRIPTType mType;
- };
- // contains a literal or constant value
- class LLScriptConstant : public LLScriptFilePosition
- {
- public:
- LLScriptConstant(S32 line, S32 col, LSCRIPTType type)
- : LLScriptFilePosition(line, col), mType(type)
- {
- }
- virtual ~LLScriptConstant() {}
- 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();
- LSCRIPTType mType;
- };
- class LLScriptConstantInteger : public LLScriptConstant
- {
- public:
- LLScriptConstantInteger(S32 line, S32 col, S32 value)
- : LLScriptConstant(line, col, LST_INTEGER), mValue(value)
- {
- }
- ~LLScriptConstantInteger() {}
- 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();
- S32 mValue;
- };
- class LLScriptConstantFloat : public LLScriptConstant
- {
- public:
- LLScriptConstantFloat(S32 line, S32 col, F32 value)
- : LLScriptConstant(line, col, LST_FLOATINGPOINT), mValue(value)
- {
- }
- ~LLScriptConstantFloat() {}
- 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();
- F32 mValue;
- };
- class LLScriptConstantString : public LLScriptConstant
- {
- public:
- LLScriptConstantString(S32 line, S32 col, char *value)
- : LLScriptConstant(line, col, LST_STRING), mValue(value)
- {
- }
- ~LLScriptConstantString()
- {
- delete [] mValue;
- mValue = NULL;
- }
- 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();
- char *mValue;
- };
- // container for individual identifiers
- class LLScriptIdentifier : public LLScriptFilePosition
- {
- public:
- LLScriptIdentifier(S32 line, S32 col, char *name, LLScriptType *type = NULL)
- : LLScriptFilePosition(line, col), mName(name), mScopeEntry(NULL), mType(type)
- {
- }
- ~LLScriptIdentifier()
- {
- delete [] mName;
- mName = NULL;
- }
- 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();
- char *mName;
- LLScriptScopeEntry *mScopeEntry;
- LLScriptType *mType;
- };
- typedef enum e_lscript_simple_assignable_type
- {
- LSSAT_NULL,
- LSSAT_IDENTIFIER,
- LSSAT_CONSTANT,
- LSSAT_VECTOR_CONSTANT,
- LSSAT_QUATERNION_CONSTANT,
- LSSAT_LIST_CONSTANT,
- LSSAT_EOF
- } LSCRIPTSimpleAssignableType;
- class LLScriptSimpleAssignable : public LLScriptFilePosition
- {
- public:
- LLScriptSimpleAssignable(S32 line, S32 col, LSCRIPTSimpleAssignableType type)
- : LLScriptFilePosition(line, col), mType(type), mNextp(NULL)
- {
- }
- void addAssignable(LLScriptSimpleAssignable *assign);
- virtual ~LLScriptSimpleAssignable()
- {
- // don't delete next pointer because we're going to store allocation lists and delete from those
- }
- 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();
- LSCRIPTSimpleAssignableType mType;
- LLScriptSimpleAssignable *mNextp;
- };
- class LLScriptSAIdentifier : public LLScriptSimpleAssignable
- {
- public:
- LLScriptSAIdentifier(S32 line, S32 col, LLScriptIdentifier *identifier)
- : LLScriptSimpleAssignable(line, col, LSSAT_IDENTIFIER), mIdentifier(identifier)
- {
- }
- ~LLScriptSAIdentifier()
- {
- }
- 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 *mIdentifier;
- };
- class LLScriptSAConstant : public LLScriptSimpleAssignable
- {
- public:
- LLScriptSAConstant(S32 line, S32 col, LLScriptConstant *constant)
- : LLScriptSimpleAssignable(line, col, LSSAT_CONSTANT), mConstant(constant)
- {
- }
- ~LLScriptSAConstant()
- {
- }
- 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();
- LLScriptConstant *mConstant;
- };
- class LLScriptSAVector : public LLScriptSimpleAssignable
- {
- public:
- LLScriptSAVector(S32 line, S32 col, LLScriptSimpleAssignable *e1,
- LLScriptSimpleAssignable *e2,
- LLScriptSimpleAssignable *e3)
- : LLScriptSimpleAssignable(line, col, LSSAT_VECTOR_CONSTANT),
- mEntry1(e1), mEntry2(e2), mEntry3(e3)
- {
- }
- ~LLScriptSAVector()
- {
- }
- 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();
- LLScriptSimpleAssignable *mEntry1;
- LLScriptSimpleAssignable *mEntry2;
- LLScriptSimpleAssignable *mEntry3;
- };
- class LLScriptSAQuaternion : public LLScriptSimpleAssignable
- {
- public:
- LLScriptSAQuaternion(S32 line, S32 col, LLScriptSimpleAssignable *e1,
- LLScriptSimpleAssignable *e2,
- LLScriptSimpleAssignable *e3,
- LLScriptSimpleAssignable *e4)
- : LLScriptSimpleAssignable(line, col, LSSAT_QUATERNION_CONSTANT),
- mEntry1(e1), mEntry2(e2), mEntry3(e3), mEntry4(e4)
- {
- }
- ~LLScriptSAQuaternion()
- {
- }
- 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();
- LLScriptSimpleAssignable *mEntry1;
- LLScriptSimpleAssignable *mEntry2;
- LLScriptSimpleAssignable *mEntry3;
- LLScriptSimpleAssignable *mEntry4;
- };
- class LLScriptSAList : public LLScriptSimpleAssignable
- {
- public:
- LLScriptSAList(S32 line, S32 col, LLScriptSimpleAssignable *elist)
- : LLScriptSimpleAssignable(line, col, LSSAT_QUATERNION_CONSTANT), mEntryList(elist)
- {
- }
- ~LLScriptSAList()
- {
- }
- 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();
- LLScriptSimpleAssignable *mEntryList;
- };
- // global variables
- class LLScriptGlobalVariable : public LLScriptFilePosition
- {
- public:
- LLScriptGlobalVariable(S32 line, S32 col, LLScriptType *type,
- LLScriptIdentifier *identifier,
- LLScriptSimpleAssignable *assignable)
- : LLScriptFilePosition(line, col), mType(type), mIdentifier(identifier), mAssignable(assignable), mNextp(NULL), mAssignableType(LST_NULL)
- {
- }
- void addGlobal(LLScriptGlobalVariable *global);
- ~LLScriptGlobalVariable()
- {
- }
-
- void gonext(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);
- 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();
- LLScriptType *mType;
- LLScriptIdentifier *mIdentifier;
- LLScriptSimpleAssignable *mAssignable;
- LLScriptGlobalVariable *mNextp;
- LSCRIPTType mAssignableType;
- };
- // events
- class LLScriptEvent : public LLScriptFilePosition
- {
- public:
- LLScriptEvent(S32 line, S32 col, LSCRIPTStateEventType type)
- : LLScriptFilePosition(line, col), mType(type)
- {
- }
- virtual ~LLScriptEvent()
- {
- // don't delete next pointer because we're going to store allocation lists and delete from those
- }
- 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();
- LSCRIPTStateEventType mType;
- };
- class LLScriptStateEntryEvent : public LLScriptEvent
- {
- public:
- LLScriptStateEntryEvent(S32 line, S32 col)
- : LLScriptEvent(line, col, LSTT_STATE_ENTRY)
- {
- }
- 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();
- ~LLScriptStateEntryEvent() {}
- };
- class LLScriptStateExitEvent : public LLScriptEvent
- {
- public:
- LLScriptStateExitEvent(S32 line, S32 col)
- : LLScriptEvent(line, col, LSTT_STATE_EXIT)
- {
- }
- ~LLScriptStateExitEvent() {}
- 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();
- };
- class LLScriptTouchStartEvent : public LLScriptEvent
- {
- public:
- LLScriptTouchStartEvent(S32 line, S32 col, LLScriptIdentifier *count)
- : LLScriptEvent(line, col, LSTT_TOUCH_START), mCount(count)
- {
- }
- ~LLScriptTouchStartEvent()
- {
- }
- 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 *mCount;
- };
- class LLScriptTouchEvent : public LLScriptEvent
- {
- public:
- LLScriptTouchEvent(S32 line, S32 col, LLScriptIdentifier *count)
- : LLScriptEvent(line, col, LSTT_TOUCH), mCount(count)
- {
- }
- ~LLScriptTouchEvent()
- {
- }
- 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 *mCount;
- };
- class LLScriptTouchEndEvent : public LLScriptEvent
- {
- public:
- LLScriptTouchEndEvent(S32 line, S32 col, LLScriptIdentifier *count)
- : LLScriptEvent(line, col, LSTT_TOUCH_END), mCount(count)
- {
- }
- ~LLScriptTouchEndEvent()
- {
- }
- 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 *mCount;
- };
- class LLScriptCollisionStartEvent : public LLScriptEvent
- {
- public:
- LLScriptCollisionStartEvent(S32 line, S32 col, LLScriptIdentifier *count)
- : LLScriptEvent(line, col, LSTT_COLLISION_START), mCount(count)
- {
- }
- ~LLScriptCollisionStartEvent()
- {
- }
- 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 *mCount;
- };
- class LLScriptCollisionEvent : public LLScriptEvent
- {
- public:
- LLScriptCollisionEvent(S32 line, S32 col, LLScriptIdentifier *count)
- : LLScriptEvent(line, col, LSTT_COLLISION), mCount(count)
- {
- }
- ~LLScriptCollisionEvent()
- {
- }
- 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 *mCount;
- };
- class LLScriptCollisionEndEvent : public LLScriptEvent
- {
- public:
- LLScriptCollisionEndEvent(S32 line, S32 col, LLScriptIdentifier *count)
- : LLScriptEvent(line, col, LSTT_COLLISION_END), mCount(count)
- {
- }
- ~LLScriptCollisionEndEvent()
- {
- }
- 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 *mCount;
- };
- class LLScriptLandCollisionStartEvent : public LLScriptEvent
- {
- public:
- LLScriptLandCollisionStartEvent(S32 line, S32 col, LLScriptIdentifier *pos)
- : LLScriptEvent(line, col, LSTT_LAND_COLLISION_START), mPosition(pos)
- {
- }
- ~LLScriptLandCollisionStartEvent()
- {
- }
- 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 *mPosition;
- };
- class LLScriptLandCollisionEvent : public LLScriptEvent
- {
- public:
- LLScriptLandCollisionEvent(S32 line, S32 col, LLScriptIdentifier *pos)
- : LLScriptEvent(line, col, LSTT_LAND_COLLISION), mPosition(pos)
- {
- }
- ~LLScriptLandCollisionEvent()
- {
- }
- 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 *mPosition;
- };
- class LLScriptLandCollisionEndEvent : public LLScriptEvent
- {
- public:
- LLScriptLandCollisionEndEvent(S32 line, S32 col, LLScriptIdentifier *pos)
- : LLScriptEvent(line, col, LSTT_LAND_COLLISION_END), mPosition(pos)
- {
- }
- ~LLScriptLandCollisionEndEvent()
- {
- }
- 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 *mPosition;
- };
- class LLScriptInventoryEvent : public LLScriptEvent
- {
- public:
- LLScriptInventoryEvent(S32 line, S32 col, LLScriptIdentifier *change)
- : LLScriptEvent(line, col, LSTT_INVENTORY), mChange(change)
- {
- }
- ~LLScriptInventoryEvent() {}
- 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 *mChange;
- };
- class LLScriptAttachEvent : public LLScriptEvent
- {
- public:
- LLScriptAttachEvent(S32 line, S32 col, LLScriptIdentifier *attach)
- : LLScriptEvent(line, col, LSTT_ATTACH), mAttach(attach)
- {
- }
- ~LLScriptAttachEvent() {}
- 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 *mAttach;
- };
- class LLScriptDataserverEvent : public LLScriptEvent
- {
- public:
- LLScriptDataserverEvent(S32 line, S32 col, LLScriptIdentifier *id, LLScriptIdentifier *data)
- : LLScriptEvent(line, col, LSTT_DATASERVER), mID(id), mData(data)
- {
- }
- ~LLScriptDataserverEvent() {}
- 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 *mID;
- LLScriptIdentifier *mData;
- };
- class LLScriptTimerEvent : public LLScriptEvent
- {
- public:
- LLScriptTimerEvent(S32 line, S32 col)
- : LLScriptEvent(line, col, LSTT_TIMER)
- {
- }
- ~LLScriptTimerEvent() {}
- 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();
- };
- class LLScriptMovingStartEvent : public LLScriptEvent
- {
- public:
- LLScriptMovingStartEvent(S32 line, S32 col)
- : LLScriptEvent(line, col, LSTT_MOVING_START)
- {
- }
- ~LLScriptMovingStartEvent() {}
- 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();
- };
- class LLScriptMovingEndEvent : public LLScriptEvent
- {
- public:
- LLScriptMovingEndEvent(S32 line, S32 col)
- : LLScriptEvent(line, col, LSTT_MOVING_END)
- {
- }
- ~LLScriptMovingEndEvent() {}
- 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();
- };
- class LLScriptRTPEvent : public LLScriptEvent
- {
- public:
- LLScriptRTPEvent(S32 line, S32 col, LLScriptIdentifier *rtperm)
- : LLScriptEvent(line, col, LSTT_RTPERMISSIONS), mRTPermissions(rtperm)
- {
- }
- ~LLScriptRTPEvent() {}
- 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 *mRTPermissions;
- };
- class LLScriptChatEvent : public LLScriptEvent
- {
- public:
- LLScriptChatEvent(S32 line, S32 col, LLScriptIdentifier *channel, LLScriptIdentifier *name, LLScriptIdentifier *id, LLScriptIdentifier *message)
- : LLScriptEvent(line, col, LSTT_CHAT), mChannel(channel), mName(name), mID(id), mMessage(message)
- {
- }
- ~LLScriptChatEvent()
- {
- }
- 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 *mChannel;
- LLScriptIdentifier *mName;
- LLScriptIdentifier *mID;
- LLScriptIdentifier *mMessage;
- };
- class LLScriptObjectRezEvent : public LLScriptEvent
- {
- public:
- LLScriptObjectRezEvent(S32 line, S32 col, LLScriptIdentifier *id)
- : LLScriptEvent(line, col, LSTT_OBJECT_REZ), mID(id)
- {
- }
- ~LLScriptObjectRezEvent()
- {
- }
- 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 *mID;
- };
- class LLScriptSensorEvent : public LLScriptEvent
- {
- public:
- LLScriptSensorEvent(S32 line, S32 col, LLScriptIdentifier *number)
- : LLScriptEvent(line, col, LSTT_SENSOR), mNumber(number)
- {
- }
- ~LLScriptSensorEvent()
- {
- }
- 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 *mNumber;
- };
- class LLScriptControlEvent : public LLScriptEvent
- {
- public:
- LLScriptControlEvent(S32 line, S32 col, LLScriptIdentifier *name, LLScriptIdentifier *levels, LLScriptIdentifier *edges)
- : LLScriptEvent(line, col, LSTT_CONTROL), mName(name), mLevels(levels), mEdges(edges)
- {
- }
- ~LLScriptControlEvent()
- {
- }
- 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 *mName;
- LLScriptIdentifier *mLevels;
- LLScriptIdentifier *mEdges;
- };
- class LLScriptLinkMessageEvent : public LLScriptEvent
- {
- public:
- LLScriptLinkMessageEvent(S32 line, S32 col, LLScriptIdentifier *sender, LLScriptIdentifier *num, LLScriptIdentifier *str, LLScriptIdentifier *id)
- : LLScriptEvent(line, col, LSTT_LINK_MESSAGE), mSender(sender), mNum(num), mStr(str), mID(id)
- {
- }
- ~LLScriptLinkMessageEvent()
- {
- }
- 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 *mSender;
- LLScriptIdentifier *mNum;
- LLScriptIdentifier *mStr;
- LLScriptIdentifier *mID;
- };
- class LLScriptRemoteEvent : public LLScriptEvent
- {
- public:
- LLScriptRemoteEvent(S32 line, S32 col, LLScriptIdentifier *type, LLScriptIdentifier *channel, LLScriptIdentifier *message_id, LLScriptIdentifier *sender, LLScriptIdentifier *int_val, LLScriptIdentifier *str_val)
- : LLScriptEvent(line, col, LSTT_REMOTE_DATA), mType(type), mChannel(channel), mMessageID(message_id), mSender(sender), mIntVal(int_val), mStrVal(str_val)
- {
- }
- ~LLScriptRemoteEvent()
- {
- }
- 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 *mType;
- LLScriptIdentifier *mChannel;
- LLScriptIdentifier *mMessageID;
- LLScriptIdentifier *mSender;
- LLScriptIdentifier *mIntVal;
- LLScriptIdentifier *mStrVal;
- };
- class LLScriptHTTPResponseEvent : public LLScriptEvent
- {
- public:
- LLScriptHTTPResponseEvent(S32 line, S32 col,
- LLScriptIdentifier *request_id,
- LLScriptIdentifier *status,
- LLScriptIdentifier *metadata,
- LLScriptIdentifier *body)
- : LLScriptEvent(line, col, LSTT_HTTP_RESPONSE),
- mRequestId(request_id), mStatus(status), mMetadata(metadata), 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 *mStatus;
- LLScriptIdentifier *mMetadata;
- 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:
- LLScriptRezEvent(S32 line, S32 col, LLScriptIdentifier *start_param)
- : LLScriptEvent(line, col, LSTT_REZ), mStartParam(start_param)
- {
- }
- ~LLScriptRezEvent() {}
- 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 *mStartParam;
- };
- class LLScriptNoSensorEvent : public LLScriptEvent
- {
- public:
- LLScriptNoSensorEvent(S32 line, S32 col)
- : LLScriptEvent(line, col, LSTT_NO_SENSOR)
- {
- }
- 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();
- ~LLScriptNoSensorEvent() {}
- };
- class LLScriptAtTarget : public LLScriptEvent
- {
- public:
- LLScriptAtTarget(S32 line, S32 col, LLScriptIdentifier *tnumber, LLScriptIdentifier *tpos, LLScriptIdentifier *ourpos)
- : LLScriptEvent(line, col, LSTT_AT_TARGET), mTargetNumber(tnumber), mTargetPosition(tpos), mOurPosition(ourpos)
- {
- }
- 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();
- ~LLScriptAtTarget() {}
- LLScriptIdentifier *mTargetNumber;
- LLScriptIdentifier *mTargetPosition;
- LLScriptIdentifier *mOurPosition;
- };
- class LLScriptNotAtTarget : public LLScriptEvent
- {
- public:
- LLScriptNotAtTarget(S32 line, S32 col)
- : LLScriptEvent(line, col, LSTT_NOT_AT_TARGET)
- {
- }
- 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();
- ~LLScriptNotAtTarget() {}
- };
- class LLScriptAtRotTarget : public LLScriptEvent
- {
- public:
- LLScriptAtRotTarget(S32 line, S32 col, LLScriptIdentifier *tnumber, LLScriptIdentifier *trot, LLScriptIdentifier *ourrot)
- : LLScriptEvent(line, col, LSTT_AT_ROT_TARGET), mTargetNumber(tnumber), mTargetRotation(trot), mOurRotation(ourrot)
- {
- }
- 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();
- ~LLScriptAtRotTarget() {}
- LLScriptIdentifier *mTargetNumber;
- LLScriptIdentifier *mTargetRotation;
- LLScriptIdentifier *mOurRotation;
- };
- class LLScriptNotAtRotTarget : public LLScriptEvent
- {
- public:
- LLScriptNotAtRotTarget(S32 line, S32 col)
- : LLScriptEvent(line, col, LSTT_NOT_AT_ROT_TARGET)
- {
- }
- 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();
- ~LLScriptNotAtRotTarget() {}
- };
- class LLScriptMoneyEvent : public LLScriptEvent
- {
- public:
- LLScriptMoneyEvent(S32 line, S32 col, LLScriptIdentifier *name, LLScriptIdentifier *amount)
- : LLScriptEvent(line, col, LSTT_MONEY), mName(name), mAmount(amount)
- {
- }
- ~LLScriptMoneyEvent()
- {
- }
- 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 *mName;
- LLScriptIdentifier *mAmount;
- };
- class LLScriptEmailEvent : public LLScriptEvent
- {
- public:
- LLScriptEmailEvent(S32 line, S32 col, LLScriptIdentifier *time, LLScriptIdentifier *address, LLScriptIdentifier *subject, LLScriptIdentifier *body, LLScriptIdentifier *number)
- : LLScriptEvent(line, col, LSTT_EMAIL), mTime(time), mAddress(address), mSubject(subject), mBody(body), mNumber(number)
- {
- }
- ~LLScriptEmailEvent()
- {
- }
- 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 *mTime;
- LLScriptIdentifier *mAddress;
- LLScriptIdentifier *mSubject;
- LLScriptIdentifier *mBody;
- LLScriptIdentifier *mNumber;
- };
- class LLScriptExpression : public LLScriptFilePosition
- {
- public:
- LLScriptExpression(S32 line, S32 col, LSCRIPTExpressionType type)
- : LLScriptFilePosition(line, col), mType(type), mNextp(NULL), mLeftType(LST_NULL), mRightType(LST_NULL), mReturnType(LST_NULL)
- {
- }
- void addExpression(LLScriptExpression *expression);
- virtual ~LLScriptExpression()
- {
- // don't delete next pointer because we're going to store allocation lists and delete from those
- }
- 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);
- void gonext(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();
- LSCRIPTExpressionType mType;
- LLScriptExpression *mNextp;
- LSCRIPTType mLeftType, mRightType, mReturnType;
- };
- class LLScriptForExpressionList : public LLScriptExpression
- {
- public:
- LLScriptForExpressionList(S32 line, S32 col, LLScriptExpression *first, LLScriptExpression *second)
- : LLScriptExpression(line, col, LET_FOR_EXPRESSION_LIST), mFirstp(first), mSecondp(second)
- {
- }
- ~LLScriptForExpressionList()
- {
- }
- 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();
- LLScriptExpression *mFirstp;
- LLScriptExpression *mSecondp;
- };
- class LLScriptFuncExpressionList : public LLScriptExpression
- {
- public:
- LLScriptFuncExpressionList(S32 line, S32 col, LLScriptExpression *first, LLScriptExpression *second)
- : LLScriptExpression(line, col, LET_FUNC_EXPRESSION_LIST), mFirstp(first), mSecondp(second)
- {
- }
- ~LLScriptFuncExpressionList()
- {
- }
- 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();
- LLScriptExpression *mFirstp;
- LLScriptExpression *mSecondp;
- };
- class LLScriptListExpressionList : public LLScriptExpression
- {
- public:
- LLScriptListExpressionList(S32 line, S32 col, LLScriptExpression *first, LLScriptExpression *second)
- : LLScriptExpression(line, col, LET_LIST_EXPRESSION_LIST), mFirstp(first), mSecondp(second)
- {
- }
- ~LLScriptListExpressionList()
- {
- }
- 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();
- LLScriptExpression *mFirstp;
- LLScriptExpression *mSecondp;
- };
- class LLScriptLValue : public LLScriptExpression
- {
- public:
- LLScriptLValue(S32 line, S32 col, LLScriptIdentifier *identifier, LLScriptIdentifier *accessor)
- : LLScriptExpression(line, col, LET_LVALUE), mOffset(0), mIdentifier(identifier), mAccessor(accessor)
- {
- }
- ~LLScriptLValue()
- {
- }
- 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();
- S32 mOffset;
- LLScriptIdentifier *mIdentifier;
- LLScriptIdentifier *mAccessor;
- };
- class LLScriptAssignment : public LLScriptExpression
- {
- public:
- LLScriptAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_ASSIGNMENT), mLValue(lvalue), mRightSide(rightside)
- {
- }
- ~LLScriptAssignment()
- {
- }
- 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();
- LLScriptExpression *mLValue;
- LLScriptExpression *mRightSide;
- };
- class LLScriptAddAssignment : public LLScriptExpression
- {
- public:
- LLScriptAddAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_ADD_ASSIGN), mLValue(lvalue), mRightSide(rightside)
- {
- }
- ~LLScriptAddAssignment()
- {
- }
- 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();
- LLScriptExpression *mLValue;
- LLScriptExpression *mRightSide;
- };
- class LLScriptSubAssignment : public LLScriptExpression
- {
- public:
- LLScriptSubAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_SUB_ASSIGN), mLValue(lvalue), mRightSide(rightside)
- {
- }
- ~LLScriptSubAssignment()
- {
- }
- 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();
- LLScriptExpression *mLValue;
- LLScriptExpression *mRightSide;
- };
- class LLScriptMulAssignment : public LLScriptExpression
- {
- public:
- LLScriptMulAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_MUL_ASSIGN), mLValue(lvalue), mRightSide(rightside)
- {
- }
- ~LLScriptMulAssignment()
- {
- }
- 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();
- LLScriptExpression *mLValue;
- LLScriptExpression *mRightSide;
- };
- class LLScriptDivAssignment : public LLScriptExpression
- {
- public:
- LLScriptDivAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_DIV_ASSIGN), mLValue(lvalue), mRightSide(rightside)
- {
- }
- ~LLScriptDivAssignment()
- {
- }
- 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();
- LLScriptExpression *mLValue;
- LLScriptExpression *mRightSide;
- };
- class LLScriptModAssignment : public LLScriptExpression
- {
- public:
- LLScriptModAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_MOD_ASSIGN), mLValue(lvalue), mRightSide(rightside)
- {
- }
- ~LLScriptModAssignment()
- {
- }
- 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();
- LLScriptExpression *mLValue;
- LLScriptExpression *mRightSide;
- };
- class LLScriptEquality : public LLScriptExpression
- {
- public:
- LLScriptEquality(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_EQUALITY), mLeftSide(leftside), mRightSide(rightside)
- {
- }
- ~LLScriptEquality()
- {
- }
- 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();
- LLScriptExpression *mLeftSide;
- LLScriptExpression *mRightSide;
- };
- class LLScriptNotEquals : public LLScriptExpression
- {
- public:
- LLScriptNotEquals(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_NOT_EQUALS), mLeftSide(leftside), mRightSide(rightside)
- {
- }
- ~LLScriptNotEquals()
- {
- }
- 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();
- LLScriptExpression *mLeftSide;
- LLScriptExpression *mRightSide;
- };
- class LLScriptLessEquals : public LLScriptExpression
- {
- public:
- LLScriptLessEquals(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_LESS_EQUALS), mLeftSide(leftside), mRightSide(rightside)
- {
- }
- ~LLScriptLessEquals()
- {
- }
- 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();
- LLScriptExpression *mLeftSide;
- LLScriptExpression *mRightSide;
- };
- class LLScriptGreaterEquals : public LLScriptExpression
- {
- public:
- LLScriptGreaterEquals(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_GREATER_EQUALS), mLeftSide(leftside), mRightSide(rightside)
- {
- }
- ~LLScriptGreaterEquals()
- {
- }
- 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();
- LLScriptExpression *mLeftSide;
- LLScriptExpression *mRightSide;
- };
- class LLScriptLessThan : public LLScriptExpression
- {
- public:
- LLScriptLessThan(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_LESS_THAN), mLeftSide(leftside), mRightSide(rightside)
- {
- }
- ~LLScriptLessThan()
- {
- }
- 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();
- LLScriptExpression *mLeftSide;
- LLScriptExpression *mRightSide;
- };
- class LLScriptGreaterThan : public LLScriptExpression
- {
- public:
- LLScriptGreaterThan(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_GREATER_THAN), mLeftSide(leftside), mRightSide(rightside)
- {
- }
- ~LLScriptGreaterThan()
- {
- }
- 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();
- LLScriptExpression *mLeftSide;
- LLScriptExpression *mRightSide;
- };
- class LLScriptPlus : public LLScriptExpression
- {
- public:
- LLScriptPlus(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_PLUS), mLeftSide(leftside), mRightSide(rightside)
- {
- }
- ~LLScriptPlus()
- {
- }
- 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();
- LLScriptExpression *mLeftSide;
- LLScriptExpression *mRightSide;
- };
- class LLScriptMinus : public LLScriptExpression
- {
- public:
- LLScriptMinus(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_MINUS), mLeftSide(leftside), mRightSide(rightside)
- {
- }
- ~LLScriptMinus()
- {
- }
- 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();
- LLScriptExpression *mLeftSide;
- LLScriptExpression *mRightSide;
- };
- class LLScriptTimes : public LLScriptExpression
- {
- public:
- LLScriptTimes(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_TIMES), mLeftSide(leftside), mRightSide(rightside)
- {
- }
- ~LLScriptTimes()
- {
- }
- 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();
- LLScriptExpression *mLeftSide;
- LLScriptExpression *mRightSide;
- };
- class LLScriptDivide : public LLScriptExpression
- {
- public:
- LLScriptDivide(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
- : LLScriptExpression(line, col, LET_DIVIDE), mLeftSide(leftside), mRightSide(rightside)
- {
- }
- ~LLScriptDivide()
- {
- }
- 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();
- LLScriptExpression *mLeftSide;
- LLScriptExpression *mRightSide;
- };
- clas…
Large files files are truncated, but you can click here to view the full file