PageRenderTime 126ms CodeModel.GetById 31ms app.highlight 86ms RepoModel.GetById 1ms app.codeStats 1ms

/indra/lscript/lscript_compile/lscript_tree.h

https://bitbucket.org/lindenlab/viewer-beta/
C++ Header | 1775 lines | 1372 code | 369 blank | 34 comment | 0 complexity | 4f055ca2f4662a7c815d140d1f6b186f MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1/** 
   2 * @file lscript_tree.h
   3 * @brief provides the classes required to build lscript's abstract syntax tree and symbol table
   4 *
   5 * $LicenseInfo:firstyear=2002&license=viewerlgpl$
   6 * Second Life Viewer Source Code
   7 * Copyright (C) 2010, Linden Research, Inc.
   8 * 
   9 * This library is free software; you can redistribute it and/or
  10 * modify it under the terms of the GNU Lesser General Public
  11 * License as published by the Free Software Foundation;
  12 * version 2.1 of the License only.
  13 * 
  14 * This library is distributed in the hope that it will be useful,
  15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  17 * Lesser General Public License for more details.
  18 * 
  19 * You should have received a copy of the GNU Lesser General Public
  20 * License along with this library; if not, write to the Free Software
  21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  22 * 
  23 * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
  24 * $/LicenseInfo$
  25 */
  26
  27#ifndef LL_LSCRIPT_TREE_H
  28#define LL_LSCRIPT_TREE_H
  29
  30#include "v3math.h"
  31#include "llquaternion.h"
  32#include "linked_lists.h"
  33#include "lscript_error.h"
  34#include "lscript_typecheck.h"
  35#include "lscript_byteformat.h"
  36
  37
  38// Nota Bene:  Class destructors don't delete pointed to classes because it isn't guaranteed that lex/yacc will build
  39//				complete data structures.  Instead various chunks that are allocated are stored and deleted by allocation lists
  40
  41class LLScriptType : public LLScriptFilePosition
  42{
  43public:
  44	LLScriptType(S32 line, S32 col, LSCRIPTType type)
  45		: LLScriptFilePosition(line, col), mType(type)
  46	{
  47	}
  48
  49	~LLScriptType() {}
  50
  51	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);
  52	S32 getSize();
  53
  54	LSCRIPTType	mType;
  55};
  56
  57// contains a literal or constant value
  58class LLScriptConstant : public LLScriptFilePosition
  59{
  60public:
  61	LLScriptConstant(S32 line, S32 col, LSCRIPTType type)
  62		: LLScriptFilePosition(line, col), mType(type)
  63	{
  64	}
  65
  66	virtual ~LLScriptConstant() {}
  67
  68	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);
  69	S32 getSize();
  70
  71	LSCRIPTType mType;
  72};
  73
  74class LLScriptConstantInteger : public LLScriptConstant
  75{
  76public:
  77	LLScriptConstantInteger(S32 line, S32 col, S32 value)
  78		: LLScriptConstant(line, col, LST_INTEGER), mValue(value)
  79	{
  80	}
  81
  82	~LLScriptConstantInteger() {}
  83
  84	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);
  85	S32 getSize();
  86
  87	S32 mValue;
  88};
  89
  90class LLScriptConstantFloat : public LLScriptConstant
  91{
  92public:
  93	LLScriptConstantFloat(S32 line, S32 col, F32 value)
  94		: LLScriptConstant(line, col, LST_FLOATINGPOINT), mValue(value)
  95	{
  96	}
  97
  98	~LLScriptConstantFloat() {}
  99
 100	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);
 101	S32 getSize();
 102
 103	F32 mValue;
 104};
 105
 106class LLScriptConstantString : public LLScriptConstant
 107{
 108public:
 109	LLScriptConstantString(S32 line, S32 col, char *value)
 110		: LLScriptConstant(line, col, LST_STRING), mValue(value)
 111	{
 112	}
 113
 114	~LLScriptConstantString() 
 115	{
 116		delete [] mValue;
 117		mValue = NULL;
 118	}
 119
 120	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);
 121	S32 getSize();
 122
 123	char *mValue;
 124};
 125
 126// container for individual identifiers
 127class LLScriptIdentifier : public LLScriptFilePosition
 128{
 129public:
 130	LLScriptIdentifier(S32 line, S32 col, char *name, LLScriptType *type = NULL)
 131		: LLScriptFilePosition(line, col), mName(name), mScopeEntry(NULL), mType(type)
 132	{
 133	}
 134
 135	~LLScriptIdentifier() 
 136	{
 137		delete [] mName;
 138		mName = NULL;
 139	}
 140
 141	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);
 142	S32 getSize();
 143
 144	char					*mName;
 145	LLScriptScopeEntry		*mScopeEntry;
 146	LLScriptType			*mType;
 147};
 148
 149typedef enum e_lscript_simple_assignable_type
 150{
 151	LSSAT_NULL,
 152	LSSAT_IDENTIFIER,
 153	LSSAT_CONSTANT,
 154	LSSAT_VECTOR_CONSTANT,
 155	LSSAT_QUATERNION_CONSTANT,
 156	LSSAT_LIST_CONSTANT,
 157	LSSAT_EOF
 158} LSCRIPTSimpleAssignableType;
 159
 160class LLScriptSimpleAssignable : public LLScriptFilePosition
 161{
 162public:
 163	LLScriptSimpleAssignable(S32 line, S32 col, LSCRIPTSimpleAssignableType type)
 164		: LLScriptFilePosition(line, col), mType(type), mNextp(NULL)
 165	{
 166	}
 167
 168	void addAssignable(LLScriptSimpleAssignable *assign);
 169
 170	virtual ~LLScriptSimpleAssignable() 
 171	{
 172		// don't delete next pointer because we're going to store allocation lists and delete from those
 173	}
 174
 175	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);
 176	S32 getSize();
 177
 178	LSCRIPTSimpleAssignableType		mType;
 179	LLScriptSimpleAssignable		*mNextp;
 180};
 181
 182class LLScriptSAIdentifier : public LLScriptSimpleAssignable
 183{
 184public:
 185	LLScriptSAIdentifier(S32 line, S32 col, LLScriptIdentifier *identifier)
 186		: LLScriptSimpleAssignable(line, col, LSSAT_IDENTIFIER), mIdentifier(identifier)
 187	{
 188	}
 189
 190	~LLScriptSAIdentifier() 
 191	{
 192	}
 193
 194	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);
 195	S32 getSize();
 196
 197	LLScriptIdentifier *mIdentifier;
 198};
 199
 200class LLScriptSAConstant : public LLScriptSimpleAssignable
 201{
 202public:
 203	LLScriptSAConstant(S32 line, S32 col, LLScriptConstant *constant)
 204		: LLScriptSimpleAssignable(line, col, LSSAT_CONSTANT), mConstant(constant)
 205	{
 206	}
 207
 208	~LLScriptSAConstant() 
 209	{
 210	}
 211
 212	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);
 213	S32 getSize();
 214
 215	LLScriptConstant *mConstant;
 216};
 217
 218class LLScriptSAVector : public LLScriptSimpleAssignable
 219{
 220public:
 221	LLScriptSAVector(S32 line, S32 col, LLScriptSimpleAssignable *e1, 
 222										LLScriptSimpleAssignable *e2, 
 223										LLScriptSimpleAssignable *e3)
 224		: LLScriptSimpleAssignable(line, col, LSSAT_VECTOR_CONSTANT), 
 225			mEntry1(e1), mEntry2(e2), mEntry3(e3)
 226	{
 227	}
 228
 229	~LLScriptSAVector() 
 230	{
 231	}
 232
 233	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);
 234	S32 getSize();
 235
 236	LLScriptSimpleAssignable *mEntry1;
 237	LLScriptSimpleAssignable *mEntry2;
 238	LLScriptSimpleAssignable *mEntry3;
 239};
 240
 241class LLScriptSAQuaternion : public LLScriptSimpleAssignable
 242{
 243public:
 244	LLScriptSAQuaternion(S32 line, S32 col, LLScriptSimpleAssignable *e1, 
 245											LLScriptSimpleAssignable *e2, 
 246											LLScriptSimpleAssignable *e3, 
 247											LLScriptSimpleAssignable *e4)
 248		: LLScriptSimpleAssignable(line, col, LSSAT_QUATERNION_CONSTANT), 
 249			mEntry1(e1), mEntry2(e2), mEntry3(e3), mEntry4(e4)
 250	{
 251	}
 252
 253	~LLScriptSAQuaternion() 
 254	{
 255	}
 256
 257	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);
 258	S32 getSize();
 259
 260	LLScriptSimpleAssignable *mEntry1;
 261	LLScriptSimpleAssignable *mEntry2;
 262	LLScriptSimpleAssignable *mEntry3;
 263	LLScriptSimpleAssignable *mEntry4;
 264};
 265
 266class LLScriptSAList : public LLScriptSimpleAssignable
 267{
 268public:
 269	LLScriptSAList(S32 line, S32 col, LLScriptSimpleAssignable *elist)
 270		: LLScriptSimpleAssignable(line, col, LSSAT_QUATERNION_CONSTANT), mEntryList(elist)
 271	{
 272	}
 273
 274	~LLScriptSAList() 
 275	{
 276	}
 277
 278	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);
 279	S32 getSize();
 280
 281	LLScriptSimpleAssignable	*mEntryList;
 282};
 283
 284// global variables
 285class LLScriptGlobalVariable : public LLScriptFilePosition
 286{
 287public:
 288	LLScriptGlobalVariable(S32 line, S32 col, LLScriptType *type,
 289											  LLScriptIdentifier *identifier,
 290											  LLScriptSimpleAssignable *assignable)
 291		: LLScriptFilePosition(line, col), mType(type), mIdentifier(identifier), mAssignable(assignable), mNextp(NULL), mAssignableType(LST_NULL)
 292	{
 293	}
 294
 295	void addGlobal(LLScriptGlobalVariable *global);
 296
 297	~LLScriptGlobalVariable() 
 298	{
 299	}
 300	
 301	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);
 302
 303	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);
 304	S32 getSize();
 305
 306	LLScriptType				*mType;
 307	LLScriptIdentifier			*mIdentifier;
 308	LLScriptSimpleAssignable	*mAssignable;
 309	LLScriptGlobalVariable		*mNextp;
 310	LSCRIPTType					mAssignableType;
 311};
 312
 313// events
 314
 315class LLScriptEvent : public LLScriptFilePosition
 316{
 317public:
 318	LLScriptEvent(S32 line, S32 col, LSCRIPTStateEventType type)
 319		: LLScriptFilePosition(line, col), mType(type)
 320	{
 321	}
 322
 323	virtual ~LLScriptEvent()
 324	{
 325		// don't delete next pointer because we're going to store allocation lists and delete from those
 326	}
 327
 328	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);
 329	S32 getSize();
 330
 331	LSCRIPTStateEventType	mType;
 332};
 333
 334class LLScriptStateEntryEvent : public LLScriptEvent
 335{
 336public:
 337	LLScriptStateEntryEvent(S32 line, S32 col)
 338		: LLScriptEvent(line, col, LSTT_STATE_ENTRY)
 339	{
 340	}
 341
 342	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);
 343	S32 getSize();
 344
 345	~LLScriptStateEntryEvent() {}
 346};
 347
 348class LLScriptStateExitEvent : public LLScriptEvent
 349{
 350public:
 351	LLScriptStateExitEvent(S32 line, S32 col)
 352		: LLScriptEvent(line, col, LSTT_STATE_EXIT)
 353	{
 354	}
 355
 356	~LLScriptStateExitEvent() {}
 357
 358	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);
 359	S32 getSize();
 360};
 361
 362class LLScriptTouchStartEvent : public LLScriptEvent
 363{
 364public:
 365	LLScriptTouchStartEvent(S32 line, S32 col, LLScriptIdentifier *count)
 366		: LLScriptEvent(line, col, LSTT_TOUCH_START), mCount(count)
 367	{
 368	}
 369
 370	~LLScriptTouchStartEvent() 
 371	{
 372	}
 373
 374	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);
 375	S32 getSize();
 376
 377	LLScriptIdentifier	*mCount;
 378};
 379
 380class LLScriptTouchEvent : public LLScriptEvent
 381{
 382public:
 383	LLScriptTouchEvent(S32 line, S32 col, LLScriptIdentifier *count)
 384		: LLScriptEvent(line, col, LSTT_TOUCH), mCount(count)
 385	{
 386	}
 387
 388	~LLScriptTouchEvent() 
 389	{
 390	}
 391
 392	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);
 393	S32 getSize();
 394
 395	LLScriptIdentifier	*mCount;
 396};
 397
 398class LLScriptTouchEndEvent : public LLScriptEvent
 399{
 400public:
 401	LLScriptTouchEndEvent(S32 line, S32 col, LLScriptIdentifier *count)
 402		: LLScriptEvent(line, col, LSTT_TOUCH_END), mCount(count)
 403	{
 404	}
 405
 406	~LLScriptTouchEndEvent() 
 407	{
 408	}
 409
 410	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);
 411	S32 getSize();
 412
 413	LLScriptIdentifier	*mCount;
 414};
 415
 416class LLScriptCollisionStartEvent : public LLScriptEvent
 417{
 418public:
 419	LLScriptCollisionStartEvent(S32 line, S32 col, LLScriptIdentifier *count)
 420		: LLScriptEvent(line, col, LSTT_COLLISION_START), mCount(count)
 421	{
 422	}
 423
 424	~LLScriptCollisionStartEvent() 
 425	{
 426	}
 427
 428	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);
 429	S32 getSize();
 430
 431	LLScriptIdentifier	*mCount;
 432};
 433
 434class LLScriptCollisionEvent : public LLScriptEvent
 435{
 436public:
 437	LLScriptCollisionEvent(S32 line, S32 col, LLScriptIdentifier *count)
 438		: LLScriptEvent(line, col, LSTT_COLLISION), mCount(count)
 439	{
 440	}
 441
 442	~LLScriptCollisionEvent() 
 443	{
 444	}
 445
 446	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);
 447	S32 getSize();
 448
 449	LLScriptIdentifier	*mCount;
 450};
 451
 452class LLScriptCollisionEndEvent : public LLScriptEvent
 453{
 454public:
 455	LLScriptCollisionEndEvent(S32 line, S32 col, LLScriptIdentifier *count)
 456		: LLScriptEvent(line, col, LSTT_COLLISION_END), mCount(count)
 457	{
 458	}
 459
 460	~LLScriptCollisionEndEvent() 
 461	{
 462	}
 463
 464	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);
 465	S32 getSize();
 466
 467	LLScriptIdentifier	*mCount;
 468};
 469
 470class LLScriptLandCollisionStartEvent : public LLScriptEvent
 471{
 472public:
 473	LLScriptLandCollisionStartEvent(S32 line, S32 col, LLScriptIdentifier *pos)
 474		: LLScriptEvent(line, col, LSTT_LAND_COLLISION_START), mPosition(pos)
 475	{
 476	}
 477
 478	~LLScriptLandCollisionStartEvent() 
 479	{
 480	}
 481
 482	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);
 483	S32 getSize();
 484
 485	LLScriptIdentifier	*mPosition;
 486};
 487
 488class LLScriptLandCollisionEvent : public LLScriptEvent
 489{
 490public:
 491	LLScriptLandCollisionEvent(S32 line, S32 col, LLScriptIdentifier *pos)
 492		: LLScriptEvent(line, col, LSTT_LAND_COLLISION), mPosition(pos)
 493	{
 494	}
 495
 496	~LLScriptLandCollisionEvent() 
 497	{
 498	}
 499
 500	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);
 501	S32 getSize();
 502
 503	LLScriptIdentifier	*mPosition;
 504};
 505
 506class LLScriptLandCollisionEndEvent : public LLScriptEvent
 507{
 508public:
 509	LLScriptLandCollisionEndEvent(S32 line, S32 col, LLScriptIdentifier *pos)
 510		: LLScriptEvent(line, col, LSTT_LAND_COLLISION_END), mPosition(pos)
 511	{
 512	}
 513
 514	~LLScriptLandCollisionEndEvent() 
 515	{
 516	}
 517
 518	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);
 519	S32 getSize();
 520
 521	LLScriptIdentifier	*mPosition;
 522};
 523
 524class LLScriptInventoryEvent : public LLScriptEvent
 525{
 526public:
 527	LLScriptInventoryEvent(S32 line, S32 col, LLScriptIdentifier *change)
 528		: LLScriptEvent(line, col, LSTT_INVENTORY), mChange(change)
 529	{
 530	}
 531
 532	~LLScriptInventoryEvent() {}
 533
 534	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);
 535	S32 getSize();
 536
 537	LLScriptIdentifier	*mChange;
 538};
 539
 540class LLScriptAttachEvent : public LLScriptEvent
 541{
 542public:
 543	LLScriptAttachEvent(S32 line, S32 col, LLScriptIdentifier *attach)
 544		: LLScriptEvent(line, col, LSTT_ATTACH), mAttach(attach)
 545	{
 546	}
 547
 548	~LLScriptAttachEvent() {}
 549
 550	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);
 551	S32 getSize();
 552
 553	LLScriptIdentifier	*mAttach;
 554};
 555
 556class LLScriptDataserverEvent : public LLScriptEvent
 557{
 558public:
 559	LLScriptDataserverEvent(S32 line, S32 col, LLScriptIdentifier *id, LLScriptIdentifier *data)
 560		: LLScriptEvent(line, col, LSTT_DATASERVER), mID(id), mData(data)
 561	{
 562	}
 563
 564	~LLScriptDataserverEvent() {}
 565
 566	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);
 567	S32 getSize();
 568
 569	LLScriptIdentifier	*mID;
 570	LLScriptIdentifier	*mData;
 571};
 572
 573class LLScriptTimerEvent : public LLScriptEvent
 574{
 575public:
 576	LLScriptTimerEvent(S32 line, S32 col)
 577		: LLScriptEvent(line, col, LSTT_TIMER)
 578	{
 579	}
 580
 581	~LLScriptTimerEvent() {}
 582
 583	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);
 584	S32 getSize();
 585};
 586
 587class LLScriptMovingStartEvent : public LLScriptEvent
 588{
 589public:
 590	LLScriptMovingStartEvent(S32 line, S32 col)
 591		: LLScriptEvent(line, col, LSTT_MOVING_START)
 592	{
 593	}
 594
 595	~LLScriptMovingStartEvent() {}
 596
 597	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);
 598	S32 getSize();
 599};
 600
 601class LLScriptMovingEndEvent : public LLScriptEvent
 602{
 603public:
 604	LLScriptMovingEndEvent(S32 line, S32 col)
 605		: LLScriptEvent(line, col, LSTT_MOVING_END)
 606	{
 607	}
 608
 609	~LLScriptMovingEndEvent() {}
 610
 611	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);
 612	S32 getSize();
 613};
 614
 615class LLScriptRTPEvent : public LLScriptEvent
 616{
 617public:
 618	LLScriptRTPEvent(S32 line, S32 col, LLScriptIdentifier *rtperm)
 619		: LLScriptEvent(line, col, LSTT_RTPERMISSIONS), mRTPermissions(rtperm) 
 620	{
 621	}
 622
 623	~LLScriptRTPEvent() {}
 624
 625	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);
 626	S32 getSize();
 627
 628	LLScriptIdentifier	*mRTPermissions;
 629};
 630
 631class LLScriptChatEvent : public LLScriptEvent
 632{
 633public:
 634	LLScriptChatEvent(S32 line, S32 col, LLScriptIdentifier *channel, LLScriptIdentifier *name, LLScriptIdentifier *id, LLScriptIdentifier *message)
 635		: LLScriptEvent(line, col, LSTT_CHAT), mChannel(channel), mName(name), mID(id), mMessage(message)
 636	{
 637	}
 638
 639	~LLScriptChatEvent() 
 640	{
 641	}
 642
 643	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);
 644	S32 getSize();
 645
 646	LLScriptIdentifier	*mChannel;
 647	LLScriptIdentifier	*mName;
 648	LLScriptIdentifier	*mID;
 649	LLScriptIdentifier	*mMessage;
 650};
 651
 652class LLScriptObjectRezEvent : public LLScriptEvent
 653{
 654public:
 655	LLScriptObjectRezEvent(S32 line, S32 col, LLScriptIdentifier *id)
 656		: LLScriptEvent(line, col, LSTT_OBJECT_REZ), mID(id)
 657	{
 658	}
 659
 660	~LLScriptObjectRezEvent() 
 661	{
 662	}
 663
 664	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);
 665	S32 getSize();
 666
 667	LLScriptIdentifier	*mID;
 668};
 669
 670class LLScriptSensorEvent : public LLScriptEvent
 671{
 672public:
 673	LLScriptSensorEvent(S32 line, S32 col, LLScriptIdentifier *number)
 674		: LLScriptEvent(line, col, LSTT_SENSOR), mNumber(number)
 675	{
 676	}
 677
 678	~LLScriptSensorEvent() 
 679	{
 680	}
 681
 682	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);
 683	S32 getSize();
 684
 685	LLScriptIdentifier	*mNumber;
 686};
 687
 688class LLScriptControlEvent : public LLScriptEvent
 689{
 690public:
 691	LLScriptControlEvent(S32 line, S32 col, LLScriptIdentifier *name, LLScriptIdentifier *levels, LLScriptIdentifier *edges)
 692		: LLScriptEvent(line, col, LSTT_CONTROL), mName(name), mLevels(levels), mEdges(edges)
 693	{
 694	}
 695
 696	~LLScriptControlEvent() 
 697	{
 698	}
 699
 700	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);
 701	S32 getSize();
 702
 703	LLScriptIdentifier	*mName;
 704	LLScriptIdentifier	*mLevels;
 705	LLScriptIdentifier	*mEdges;
 706};
 707
 708class LLScriptLinkMessageEvent : public LLScriptEvent
 709{
 710public:
 711	LLScriptLinkMessageEvent(S32 line, S32 col, LLScriptIdentifier *sender, LLScriptIdentifier *num, LLScriptIdentifier *str, LLScriptIdentifier *id)
 712		: LLScriptEvent(line, col, LSTT_LINK_MESSAGE), mSender(sender), mNum(num), mStr(str), mID(id)
 713	{
 714	}
 715
 716	~LLScriptLinkMessageEvent() 
 717	{
 718	}
 719
 720	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);
 721	S32 getSize();
 722
 723	LLScriptIdentifier	*mSender;
 724	LLScriptIdentifier	*mNum;
 725	LLScriptIdentifier	*mStr;
 726	LLScriptIdentifier	*mID;
 727};
 728
 729class LLScriptRemoteEvent : public LLScriptEvent
 730{
 731public:
 732	LLScriptRemoteEvent(S32 line, S32 col, LLScriptIdentifier *type, LLScriptIdentifier *channel, LLScriptIdentifier *message_id, LLScriptIdentifier *sender, LLScriptIdentifier *int_val, LLScriptIdentifier *str_val)
 733		: LLScriptEvent(line, col, LSTT_REMOTE_DATA), mType(type), mChannel(channel), mMessageID(message_id), mSender(sender), mIntVal(int_val), mStrVal(str_val)
 734	{
 735	}
 736
 737	~LLScriptRemoteEvent() 
 738	{
 739	}
 740
 741	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);
 742	S32 getSize();
 743
 744	LLScriptIdentifier	*mType;
 745	LLScriptIdentifier	*mChannel;
 746	LLScriptIdentifier	*mMessageID;
 747	LLScriptIdentifier	*mSender;
 748	LLScriptIdentifier	*mIntVal;
 749	LLScriptIdentifier	*mStrVal;
 750};
 751
 752class LLScriptHTTPResponseEvent : public LLScriptEvent
 753{
 754public:
 755	LLScriptHTTPResponseEvent(S32 line, S32 col,
 756		LLScriptIdentifier *request_id,
 757		LLScriptIdentifier *status,
 758		LLScriptIdentifier *metadata,
 759		LLScriptIdentifier *body)
 760		: LLScriptEvent(line, col, LSTT_HTTP_RESPONSE),
 761		 mRequestId(request_id), mStatus(status), mMetadata(metadata), mBody(body)
 762	{
 763	}
 764
 765	void recurse(LLFILE *fp, S32 tabs, S32 tabsize, LSCRIPTCompilePass pass,
 766		LSCRIPTPruneType ptype, BOOL &prunearg, LLScriptScope *scope,
 767		LSCRIPTType &type, LSCRIPTType basetype, U64 &count,
 768		LLScriptByteCodeChunk *chunk, LLScriptByteCodeChunk *heap,
 769		S32 stacksize, LLScriptScopeEntry *entry,
 770		S32 entrycount, LLScriptLibData **ldata);
 771		
 772	S32 getSize();
 773
 774	LLScriptIdentifier	*mRequestId;
 775	LLScriptIdentifier	*mStatus;
 776	LLScriptIdentifier	*mMetadata;
 777	LLScriptIdentifier	*mBody;
 778};
 779
 780class LLScriptHTTPRequestEvent : public LLScriptEvent
 781{
 782public:
 783	LLScriptHTTPRequestEvent(S32 line, S32 col,
 784		LLScriptIdentifier *request_id,
 785		LLScriptIdentifier *method,
 786		LLScriptIdentifier *body)
 787		: LLScriptEvent(line, col, LSTT_HTTP_REQUEST),
 788		 mRequestId(request_id), mMethod(method), mBody(body)
 789	{
 790	}
 791
 792	void recurse(LLFILE *fp, S32 tabs, S32 tabsize, LSCRIPTCompilePass pass,
 793		LSCRIPTPruneType ptype, BOOL &prunearg, LLScriptScope *scope,
 794		LSCRIPTType &type, LSCRIPTType basetype, U64 &count,
 795		LLScriptByteCodeChunk *chunk, LLScriptByteCodeChunk *heap,
 796		S32 stacksize, LLScriptScopeEntry *entry,
 797		S32 entrycount, LLScriptLibData **ldata);
 798		
 799	S32 getSize();
 800
 801	LLScriptIdentifier	*mRequestId;
 802	LLScriptIdentifier	*mMethod;
 803	LLScriptIdentifier	*mBody;
 804};
 805
 806class LLScriptRezEvent : public LLScriptEvent
 807{
 808public:
 809	LLScriptRezEvent(S32 line, S32 col, LLScriptIdentifier *start_param)
 810		: LLScriptEvent(line, col, LSTT_REZ), mStartParam(start_param)
 811	{
 812	}
 813	~LLScriptRezEvent() {}
 814
 815	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);
 816	S32 getSize();
 817
 818	LLScriptIdentifier	*mStartParam;
 819};
 820
 821class LLScriptNoSensorEvent : public LLScriptEvent
 822{
 823public:
 824	LLScriptNoSensorEvent(S32 line, S32 col)
 825		: LLScriptEvent(line, col, LSTT_NO_SENSOR)
 826	{
 827	}
 828
 829	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);
 830	S32 getSize();
 831
 832	~LLScriptNoSensorEvent() {}
 833};
 834
 835class LLScriptAtTarget : public LLScriptEvent
 836{
 837public:
 838	LLScriptAtTarget(S32 line, S32 col, LLScriptIdentifier *tnumber, LLScriptIdentifier *tpos, LLScriptIdentifier *ourpos)
 839		: LLScriptEvent(line, col, LSTT_AT_TARGET), mTargetNumber(tnumber), mTargetPosition(tpos), mOurPosition(ourpos)
 840	{
 841	}
 842
 843	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);
 844	S32 getSize();
 845
 846	~LLScriptAtTarget() {}
 847
 848	LLScriptIdentifier	*mTargetNumber;
 849	LLScriptIdentifier	*mTargetPosition;
 850	LLScriptIdentifier	*mOurPosition;
 851};
 852
 853class LLScriptNotAtTarget : public LLScriptEvent
 854{
 855public:
 856	LLScriptNotAtTarget(S32 line, S32 col)
 857		: LLScriptEvent(line, col, LSTT_NOT_AT_TARGET)
 858	{
 859	}
 860
 861	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);
 862	S32 getSize();
 863
 864	~LLScriptNotAtTarget() {}
 865};
 866
 867class LLScriptAtRotTarget : public LLScriptEvent
 868{
 869public:
 870	LLScriptAtRotTarget(S32 line, S32 col, LLScriptIdentifier *tnumber, LLScriptIdentifier *trot, LLScriptIdentifier *ourrot)
 871		: LLScriptEvent(line, col, LSTT_AT_ROT_TARGET), mTargetNumber(tnumber), mTargetRotation(trot), mOurRotation(ourrot)
 872	{
 873	}
 874
 875	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);
 876	S32 getSize();
 877
 878	~LLScriptAtRotTarget() {}
 879
 880	LLScriptIdentifier	*mTargetNumber;
 881	LLScriptIdentifier	*mTargetRotation;
 882	LLScriptIdentifier	*mOurRotation;
 883};
 884
 885class LLScriptNotAtRotTarget : public LLScriptEvent
 886{
 887public:
 888	LLScriptNotAtRotTarget(S32 line, S32 col)
 889		: LLScriptEvent(line, col, LSTT_NOT_AT_ROT_TARGET)
 890	{
 891	}
 892
 893	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);
 894	S32 getSize();
 895
 896	~LLScriptNotAtRotTarget() {}
 897};
 898
 899class LLScriptMoneyEvent : public LLScriptEvent
 900{
 901public:
 902	LLScriptMoneyEvent(S32 line, S32 col, LLScriptIdentifier *name, LLScriptIdentifier *amount)
 903		: LLScriptEvent(line, col, LSTT_MONEY), mName(name), mAmount(amount)
 904	{
 905	}
 906
 907	~LLScriptMoneyEvent() 
 908	{
 909	}
 910
 911	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);
 912	S32 getSize();
 913
 914	LLScriptIdentifier	*mName;
 915	LLScriptIdentifier	*mAmount;
 916};
 917
 918class LLScriptEmailEvent : public LLScriptEvent
 919{
 920public:
 921	LLScriptEmailEvent(S32 line, S32 col, LLScriptIdentifier *time, LLScriptIdentifier *address, LLScriptIdentifier *subject, LLScriptIdentifier *body, LLScriptIdentifier *number)
 922		: LLScriptEvent(line, col, LSTT_EMAIL), mTime(time), mAddress(address), mSubject(subject), mBody(body), mNumber(number)
 923	{
 924	}
 925
 926	~LLScriptEmailEvent() 
 927	{
 928	}
 929
 930	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);
 931	S32 getSize();
 932
 933	LLScriptIdentifier	*mTime;
 934	LLScriptIdentifier	*mAddress;
 935	LLScriptIdentifier	*mSubject;
 936	LLScriptIdentifier	*mBody;
 937	LLScriptIdentifier	*mNumber;
 938};
 939
 940
 941class LLScriptExpression : public LLScriptFilePosition
 942{
 943public:
 944	LLScriptExpression(S32 line, S32 col, LSCRIPTExpressionType type)
 945		: LLScriptFilePosition(line, col), mType(type), mNextp(NULL), mLeftType(LST_NULL), mRightType(LST_NULL), mReturnType(LST_NULL)
 946	{
 947	}
 948
 949	void addExpression(LLScriptExpression *expression);
 950
 951	virtual ~LLScriptExpression() 
 952	{
 953		// don't delete next pointer because we're going to store allocation lists and delete from those
 954	}
 955
 956	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);
 957
 958	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);
 959	S32 getSize();
 960
 961	LSCRIPTExpressionType	mType;
 962	LLScriptExpression		*mNextp;
 963	LSCRIPTType				mLeftType, mRightType, mReturnType;
 964
 965};
 966
 967class LLScriptForExpressionList : public LLScriptExpression
 968{
 969public:
 970	LLScriptForExpressionList(S32 line, S32 col, LLScriptExpression *first, LLScriptExpression *second)
 971		: LLScriptExpression(line, col, LET_FOR_EXPRESSION_LIST), mFirstp(first), mSecondp(second)
 972	{
 973	}
 974
 975	~LLScriptForExpressionList() 
 976	{
 977	}
 978
 979	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);
 980	S32 getSize();
 981
 982	LLScriptExpression	*mFirstp;
 983	LLScriptExpression	*mSecondp;
 984};
 985
 986class LLScriptFuncExpressionList : public LLScriptExpression
 987{
 988public:
 989	LLScriptFuncExpressionList(S32 line, S32 col, LLScriptExpression *first, LLScriptExpression *second)
 990		: LLScriptExpression(line, col, LET_FUNC_EXPRESSION_LIST), mFirstp(first), mSecondp(second)
 991	{
 992	}
 993
 994	~LLScriptFuncExpressionList() 
 995	{
 996	}
 997
 998	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);
 999	S32 getSize();
1000
1001	LLScriptExpression	*mFirstp;
1002	LLScriptExpression	*mSecondp;
1003};
1004
1005class LLScriptListExpressionList : public LLScriptExpression
1006{
1007public:
1008	LLScriptListExpressionList(S32 line, S32 col, LLScriptExpression *first, LLScriptExpression *second)
1009		: LLScriptExpression(line, col, LET_LIST_EXPRESSION_LIST), mFirstp(first), mSecondp(second)
1010	{
1011	}
1012
1013	~LLScriptListExpressionList() 
1014	{
1015	}
1016
1017	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);
1018	S32 getSize();
1019
1020	LLScriptExpression	*mFirstp;
1021	LLScriptExpression	*mSecondp;
1022};
1023
1024class LLScriptLValue : public LLScriptExpression
1025{
1026public:
1027	LLScriptLValue(S32 line, S32 col, LLScriptIdentifier *identifier, LLScriptIdentifier *accessor)
1028		: LLScriptExpression(line, col, LET_LVALUE), mOffset(0), mIdentifier(identifier), mAccessor(accessor)
1029	{
1030	}
1031
1032	~LLScriptLValue() 
1033	{
1034	}
1035
1036	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);
1037	S32 getSize();
1038
1039	S32					mOffset;
1040	LLScriptIdentifier	*mIdentifier;
1041	LLScriptIdentifier	*mAccessor;
1042};
1043
1044class LLScriptAssignment : public LLScriptExpression
1045{
1046public:
1047	LLScriptAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
1048		: LLScriptExpression(line, col, LET_ASSIGNMENT), mLValue(lvalue), mRightSide(rightside)
1049	{
1050	}
1051
1052	~LLScriptAssignment() 
1053	{
1054	}
1055
1056	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);
1057	S32 getSize();
1058
1059	LLScriptExpression	*mLValue;
1060	LLScriptExpression	*mRightSide;
1061};
1062
1063class LLScriptAddAssignment : public LLScriptExpression
1064{
1065public:
1066	LLScriptAddAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
1067		: LLScriptExpression(line, col, LET_ADD_ASSIGN), mLValue(lvalue), mRightSide(rightside)
1068	{
1069	}
1070
1071	~LLScriptAddAssignment() 
1072	{
1073	}
1074
1075	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);
1076	S32 getSize();
1077
1078	LLScriptExpression	*mLValue;
1079	LLScriptExpression	*mRightSide;
1080};
1081
1082class LLScriptSubAssignment : public LLScriptExpression
1083{
1084public:
1085	LLScriptSubAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
1086		: LLScriptExpression(line, col, LET_SUB_ASSIGN), mLValue(lvalue), mRightSide(rightside)
1087	{
1088	}
1089
1090	~LLScriptSubAssignment() 
1091	{
1092	}
1093
1094	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);
1095	S32 getSize();
1096
1097	LLScriptExpression	*mLValue;
1098	LLScriptExpression	*mRightSide;
1099};
1100
1101class LLScriptMulAssignment : public LLScriptExpression
1102{
1103public:
1104	LLScriptMulAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
1105		: LLScriptExpression(line, col, LET_MUL_ASSIGN), mLValue(lvalue), mRightSide(rightside)
1106	{
1107	}
1108
1109	~LLScriptMulAssignment() 
1110	{
1111	}
1112
1113	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);
1114	S32 getSize();
1115
1116	LLScriptExpression	*mLValue;
1117	LLScriptExpression	*mRightSide;
1118};
1119
1120class LLScriptDivAssignment : public LLScriptExpression
1121{
1122public:
1123	LLScriptDivAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
1124		: LLScriptExpression(line, col, LET_DIV_ASSIGN), mLValue(lvalue), mRightSide(rightside)
1125	{
1126	}
1127
1128	~LLScriptDivAssignment() 
1129	{
1130	}
1131
1132	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);
1133	S32 getSize();
1134
1135	LLScriptExpression	*mLValue;
1136	LLScriptExpression	*mRightSide;
1137};
1138
1139class LLScriptModAssignment : public LLScriptExpression
1140{
1141public:
1142	LLScriptModAssignment(S32 line, S32 col, LLScriptExpression *lvalue, LLScriptExpression *rightside)
1143		: LLScriptExpression(line, col, LET_MOD_ASSIGN), mLValue(lvalue), mRightSide(rightside)
1144	{
1145	}
1146
1147	~LLScriptModAssignment() 
1148	{
1149	}
1150
1151	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);
1152	S32 getSize();
1153
1154	LLScriptExpression	*mLValue;
1155	LLScriptExpression	*mRightSide;
1156};
1157
1158class LLScriptEquality : public LLScriptExpression
1159{
1160public:
1161	LLScriptEquality(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
1162		: LLScriptExpression(line, col, LET_EQUALITY), mLeftSide(leftside), mRightSide(rightside)
1163	{
1164	}
1165
1166	~LLScriptEquality() 
1167	{
1168	}
1169
1170	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);
1171	S32 getSize();
1172
1173	LLScriptExpression	*mLeftSide;
1174	LLScriptExpression	*mRightSide;
1175};
1176
1177class LLScriptNotEquals : public LLScriptExpression
1178{
1179public:
1180	LLScriptNotEquals(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
1181		: LLScriptExpression(line, col, LET_NOT_EQUALS), mLeftSide(leftside), mRightSide(rightside)
1182	{
1183	}
1184
1185	~LLScriptNotEquals() 
1186	{
1187	}
1188
1189	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);
1190	S32 getSize();
1191
1192	LLScriptExpression	*mLeftSide;
1193	LLScriptExpression	*mRightSide;
1194};
1195
1196class LLScriptLessEquals : public LLScriptExpression
1197{
1198public:
1199	LLScriptLessEquals(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
1200		: LLScriptExpression(line, col, LET_LESS_EQUALS), mLeftSide(leftside), mRightSide(rightside)
1201	{
1202	}
1203
1204	~LLScriptLessEquals() 
1205	{
1206	}
1207
1208	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);
1209	S32 getSize();
1210
1211	LLScriptExpression	*mLeftSide;
1212	LLScriptExpression	*mRightSide;
1213};
1214
1215class LLScriptGreaterEquals : public LLScriptExpression
1216{
1217public:
1218	LLScriptGreaterEquals(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
1219		: LLScriptExpression(line, col, LET_GREATER_EQUALS), mLeftSide(leftside), mRightSide(rightside)
1220	{
1221	}
1222
1223	~LLScriptGreaterEquals() 
1224	{
1225	}
1226
1227	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);
1228	S32 getSize();
1229
1230	LLScriptExpression	*mLeftSide;
1231	LLScriptExpression	*mRightSide;
1232};
1233
1234class LLScriptLessThan : public LLScriptExpression
1235{
1236public:
1237	LLScriptLessThan(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
1238		: LLScriptExpression(line, col, LET_LESS_THAN), mLeftSide(leftside), mRightSide(rightside)
1239	{
1240	}
1241
1242	~LLScriptLessThan() 
1243	{
1244	}
1245
1246	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);
1247	S32 getSize();
1248
1249	LLScriptExpression	*mLeftSide;
1250	LLScriptExpression	*mRightSide;
1251};
1252
1253class LLScriptGreaterThan : public LLScriptExpression
1254{
1255public:
1256	LLScriptGreaterThan(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
1257		: LLScriptExpression(line, col, LET_GREATER_THAN), mLeftSide(leftside), mRightSide(rightside)
1258	{
1259	}
1260
1261	~LLScriptGreaterThan() 
1262	{
1263	}
1264
1265	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);
1266	S32 getSize();
1267
1268	LLScriptExpression	*mLeftSide;
1269	LLScriptExpression	*mRightSide;
1270};
1271
1272class LLScriptPlus : public LLScriptExpression
1273{
1274public:
1275	LLScriptPlus(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
1276		: LLScriptExpression(line, col, LET_PLUS), mLeftSide(leftside), mRightSide(rightside)
1277	{
1278	}
1279
1280	~LLScriptPlus() 
1281	{
1282	}
1283
1284	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);
1285	S32 getSize();
1286
1287	LLScriptExpression	*mLeftSide;
1288	LLScriptExpression	*mRightSide;
1289};
1290
1291class LLScriptMinus : public LLScriptExpression
1292{
1293public:
1294	LLScriptMinus(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
1295		: LLScriptExpression(line, col, LET_MINUS), mLeftSide(leftside), mRightSide(rightside)
1296	{
1297	}
1298
1299	~LLScriptMinus() 
1300	{
1301	}
1302
1303	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);
1304	S32 getSize();
1305
1306	LLScriptExpression	*mLeftSide;
1307	LLScriptExpression	*mRightSide;
1308};
1309
1310class LLScriptTimes : public LLScriptExpression
1311{
1312public:
1313	LLScriptTimes(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
1314		: LLScriptExpression(line, col, LET_TIMES), mLeftSide(leftside), mRightSide(rightside)
1315	{
1316	}
1317
1318	~LLScriptTimes() 
1319	{
1320	}
1321
1322	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);
1323	S32 getSize();
1324
1325	LLScriptExpression	*mLeftSide;
1326	LLScriptExpression	*mRightSide;
1327};
1328
1329class LLScriptDivide : public LLScriptExpression
1330{
1331public:
1332	LLScriptDivide(S32 line, S32 col, LLScriptExpression *leftside, LLScriptExpression *rightside)
1333		: LLScriptExpression(line, col, LET_DIVIDE), mLeftSide(leftside), mRightSide(rightside)
1334	{
1335	}
1336
1337	~LLScriptDivide() 
1338	{
1339	}
1340
1341	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);
1342	S32 getSize();
1343
1344	LLScriptExpression	*mLeftSide;
1345	LLScriptExpression	*mRightSide;
1346};
1347
1348clas

Large files files are truncated, but you can click here to view the full file