lscript_tree.cpp File Reference

implements methods for lscript_tree.h classes More...

#include "linden_common.h"
#include "lscript_tree.h"
#include "lscript_typecheck.h"
#include "lscript_resource.h"
#include "lscript_bytecode.h"
#include "lscript_heap.h"
#include "lscript_library.h"
#include "lscript_alloc.h"

Include dependency graph for lscript_tree.cpp:

Go to the source code of this file.

Functions

void print_cil_box (LLFILE *fp, LSCRIPTType type)
void print_cil_type (LLFILE *fp, LSCRIPTType type)
void print_escape_quotes (LLFILE *fp, const char *str)
void print_cil_cast (LLFILE *fp, LSCRIPTType srcType, LSCRIPTType targetType)
bool is_SA_constant_integer (LLScriptSimpleAssignable *sa)
bool is_parameter (LLScriptIdentifier *identifier, LLScriptScopeEntry *function_scope)
void print_cil_load_address (LLFILE *fp, LLScriptExpression *exp, LLScriptScopeEntry *function_scope)
void print_cil_accessor (LLFILE *fp, LLScriptLValue *lvalue)
void print_cil_member (LLFILE *fp, LLScriptIdentifier *ident)
void print_asignment (LLFILE *fp, LLScriptExpression *exp)
void print_cil_asignment (LLFILE *fp, LLScriptExpression *exp, LLScriptScopeEntry *function_scope)
void print_cast (LLFILE *fp, LSCRIPTType ret_type, LSCRIPTType right_type)
void cast2stack (LLScriptByteCodeChunk *chunk, LSCRIPTType ret_type, LSCRIPTType right_type)
void operation2stack (LLScriptByteCodeChunk *chunk, LSCRIPTType ret_type, LSCRIPTType right_type)
void store2stack (LLScriptExpression *exp, LLScriptExpression *lv, LLScriptByteCodeChunk *chunk, LSCRIPTType right_type)
void print_cil_numeric_cast (LLFILE *fp, LSCRIPTType currentArg, LSCRIPTType otherArg)
void print_cil_add (LLFILE *fp, LSCRIPTType left_type, LSCRIPTType right_type)
void print_cil_sub (LLFILE *fp, LSCRIPTType left_type, LSCRIPTType right_type)
void print_cil_mul (LLFILE *fp, LSCRIPTType left_type, LSCRIPTType right_type)
void print_cil_div (LLFILE *fp, LSCRIPTType left_type, LSCRIPTType right_type)
void print_cil_mod (LLFILE *fp, LSCRIPTType left_type, LSCRIPTType right_type)
void print_cil_eq (LLFILE *fp, LSCRIPTType left_type, LSCRIPTType right_type)
void print_cil_arg_list (LLFILE *fp, LLScriptFuncExpressionList *exp_list)
void add_exit_pops (LLScriptByteCodeChunk *chunk, LLScriptScopeEntry *entry)
void print_exit_pops (LLFILE *fp, LLScriptScopeEntry *entry)
void add_return (LLScriptByteCodeChunk *chunk, LLScriptScopeEntry *entry)
void print_return (LLFILE *fp, LLScriptScopeEntry *entry)
void print_cil_local_init (LLFILE *fp, LLScriptScopeEntry *scopeEntry)
void print_cil_globals (LLFILE *fp, LLScriptGlobalVariable *global)

Variables

U64 gCurrentHandler = 0


Detailed Description

implements methods for lscript_tree.h classes

LicenseInfo
firstyear=2002&license=viewergpl

Copyright (c) 2002-2008, Linden Research, Inc.

Second Life Viewer Source Code The source code in this file ("Source Code") is provided by Linden Lab to you under the terms of the GNU General Public License, version 2.0 ("GPL"), unless you have obtained a separate licensing agreement ("Other License"), formally executed by you and Linden Lab. Terms of the GPL can be found in doc/GPL-license.txt in this distribution, or online at http://secondlifegrid.net/programs/open_source/licensing/gplv2

There are special exceptions to the terms and conditions of the GPL as it is applied to this Source Code. View the full text of the exception in the file doc/FLOSS-exception.txt in this software distribution, or online at http://secondlifegrid.net/programs/open_source/licensing/flossexception

By copying, modifying or distributing this software, you acknowledge that you have read and understood your obligations described above, and agree to abide by those obligations.

ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, COMPLETENESS OR PERFORMANCE. $/LicenseInfo$

Definition in file lscript_tree.cpp.


Function Documentation

void add_exit_pops ( LLScriptByteCodeChunk chunk,
LLScriptScopeEntry entry 
)

void add_return ( LLScriptByteCodeChunk chunk,
LLScriptScopeEntry entry 
)

Definition at line 7744 of file lscript_tree.cpp.

References add_exit_pops(), LLScriptByteCodeChunk::addByte(), LOPC_RETURN, and LSCRIPTOpCodes.

Referenced by LLScriptGlobalFunctions::recurse(), LLScriptEventHandler::recurse(), and LLScriptReturn::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void cast2stack ( LLScriptByteCodeChunk chunk,
LSCRIPTType  ret_type,
LSCRIPTType  right_type 
)

Definition at line 4226 of file lscript_tree.cpp.

References LLScriptByteCodeChunk::addByte(), LOPC_CAST, LSCRIPTOpCodes, LSCRIPTTypeByte, and LSCRIPTTypeHi4Bits.

Referenced by LLScriptDeclaration::recurse(), and store2stack().

Here is the call graph for this function:

Here is the caller graph for this function:

bool is_parameter ( LLScriptIdentifier identifier,
LLScriptScopeEntry function_scope 
)

Definition at line 3794 of file lscript_tree.cpp.

References LLScriptScopeEntry::mOffset, and LLScriptIdentifier::mScopeEntry.

Referenced by print_cil_asignment(), print_cil_load_address(), LLScriptDeclaration::recurse(), and LLScriptLValue::recurse().

Here is the caller graph for this function:

bool is_SA_constant_integer ( LLScriptSimpleAssignable sa  ) 

Definition at line 677 of file lscript_tree.cpp.

References LSSAT_CONSTANT, LST_INTEGER, and LLScriptSimpleAssignable::mType.

Referenced by LLScriptSAQuaternion::recurse(), and LLScriptSAVector::recurse().

Here is the caller graph for this function:

void operation2stack ( LLScriptByteCodeChunk chunk,
LSCRIPTType  ret_type,
LSCRIPTType  right_type 
)

Definition at line 4236 of file lscript_tree.cpp.

References LLScriptByteCodeChunk::addByte(), LSCRIPTTypeByte, and LSCRIPTTypeHi4Bits.

Referenced by LLScriptModAssignment::recurse(), LLScriptDivAssignment::recurse(), LLScriptMulAssignment::recurse(), LLScriptSubAssignment::recurse(), and LLScriptAddAssignment::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void print_asignment ( LLFILE fp,
LLScriptExpression exp 
)

void print_cast ( LLFILE fp,
LSCRIPTType  ret_type,
LSCRIPTType  right_type 
)

Definition at line 4218 of file lscript_tree.cpp.

References LSCRIPTTypeNames.

Referenced by LLScriptLSOParse::initOpCodePrinting(), and LLScriptAssignment::recurse().

Here is the caller graph for this function:

void print_cil_accessor ( LLFILE fp,
LLScriptLValue lvalue 
)

Definition at line 3839 of file lscript_tree.cpp.

References LLScriptLValue::mAccessor, LLScriptLValue::mIdentifier, LLScriptIdentifier::mName, LLScriptExpression::mReturnType, LLScriptIdentifier::mScopeEntry, LLScriptScopeEntry::mType, and print_cil_type().

Referenced by print_cil_asignment(), and LLScriptLValue::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void print_cil_add ( LLFILE fp,
LSCRIPTType  left_type,
LSCRIPTType  right_type 
)

Definition at line 4390 of file lscript_tree.cpp.

References LST_FLOATINGPOINT, LST_INTEGER, LST_KEY, LST_LIST, LST_QUATERNION, LST_STRING, LST_VECTOR, and print_cil_box().

Referenced by LLScriptPlus::recurse(), and LLScriptAddAssignment::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void print_cil_arg_list ( LLFILE fp,
LLScriptFuncExpressionList exp_list 
)

Definition at line 7061 of file lscript_tree.cpp.

References LLScriptFuncExpressionList::mFirstp, LLScriptExpression::mReturnType, LLScriptFuncExpressionList::mSecondp, NULL, and print_cil_type().

Referenced by LLScriptFunctionCall::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void print_cil_asignment ( LLFILE fp,
LLScriptExpression exp,
LLScriptScopeEntry function_scope 
)

void print_cil_box ( LLFILE fp,
LSCRIPTType  type 
)

Definition at line 46 of file lscript_tree.cpp.

References LST_FLOATINGPOINT, LST_INTEGER, LST_KEY, LST_QUATERNION, LST_STRING, and LST_VECTOR.

Referenced by print_cil_add(), and LLScriptListExpressionList::recurse().

Here is the caller graph for this function:

void print_cil_cast ( LLFILE fp,
LSCRIPTType  srcType,
LSCRIPTType  targetType 
)

void print_cil_div ( LLFILE fp,
LSCRIPTType  left_type,
LSCRIPTType  right_type 
)

Definition at line 4720 of file lscript_tree.cpp.

References LST_FLOATINGPOINT, LST_INTEGER, LST_QUATERNION, LST_VECTOR, and print_cil_cast().

Referenced by LLScriptDivide::recurse(), and LLScriptDivAssignment::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void print_cil_eq ( LLFILE fp,
LSCRIPTType  left_type,
LSCRIPTType  right_type 
)

Definition at line 4923 of file lscript_tree.cpp.

References LST_FLOATINGPOINT, LST_INTEGER, LST_KEY, LST_LIST, LST_QUATERNION, LST_STRING, and LST_VECTOR.

Referenced by LLScriptEquality::recurse().

Here is the caller graph for this function:

void print_cil_globals ( LLFILE fp,
LLScriptGlobalVariable global 
)

Definition at line 9758 of file lscript_tree.cpp.

References LLScriptGlobalVariable::mIdentifier, LLScriptIdentifier::mName, LLScriptGlobalVariable::mNextp, LLScriptType::mType, LLScriptGlobalVariable::mType, NULL, and print_cil_type().

Referenced by LLScriptScript::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void print_cil_load_address ( LLFILE fp,
LLScriptExpression exp,
LLScriptScopeEntry function_scope 
)

void print_cil_local_init ( LLFILE fp,
LLScriptScopeEntry scopeEntry 
)

Definition at line 8754 of file lscript_tree.cpp.

References LLScriptArgString::getNumber(), LLScriptArgString::getType(), LLScriptScopeEntry::mLocals, and print_cil_type().

Referenced by LLScriptGlobalFunctions::recurse(), and LLScriptEventHandler::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void print_cil_member ( LLFILE fp,
LLScriptIdentifier ident 
)

Definition at line 3848 of file lscript_tree.cpp.

References LLScriptScopeEntry::mIdentifier, LLScriptIdentifier::mScopeEntry, LLScriptScopeEntry::mType, and print_cil_type().

Referenced by print_cil_asignment(), and LLScriptLValue::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void print_cil_mod ( LLFILE fp,
LSCRIPTType  left_type,
LSCRIPTType  right_type 
)

Definition at line 4835 of file lscript_tree.cpp.

References LST_INTEGER, and LST_VECTOR.

Referenced by LLScriptMod::recurse(), and LLScriptModAssignment::recurse().

Here is the caller graph for this function:

void print_cil_mul ( LLFILE fp,
LSCRIPTType  left_type,
LSCRIPTType  right_type 
)

Definition at line 4598 of file lscript_tree.cpp.

References LST_FLOATINGPOINT, LST_INTEGER, LST_QUATERNION, LST_VECTOR, and print_cil_cast().

Referenced by LLScriptTimes::recurse(), and LLScriptMulAssignment::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void print_cil_numeric_cast ( LLFILE fp,
LSCRIPTType  currentArg,
LSCRIPTType  otherArg 
)

void print_cil_sub ( LLFILE fp,
LSCRIPTType  left_type,
LSCRIPTType  right_type 
)

Definition at line 4499 of file lscript_tree.cpp.

References LST_FLOATINGPOINT, LST_INTEGER, LST_QUATERNION, and LST_VECTOR.

Referenced by LLScriptMinus::recurse(), and LLScriptSubAssignment::recurse().

Here is the caller graph for this function:

void print_cil_type ( LLFILE fp,
LSCRIPTType  type 
)

void print_escape_quotes ( LLFILE fp,
const char *  str 
)

Definition at line 250 of file lscript_tree.cpp.

Referenced by LLScriptConstantString::recurse().

Here is the caller graph for this function:

void print_exit_pops ( LLFILE fp,
LLScriptScopeEntry entry 
)

Definition at line 7530 of file lscript_tree.cpp.

References LLScriptArgString::getType(), i, LSCRIPTTypePop, LLScriptScopeEntry::mFunctionArgs, LLScriptScopeEntry::mLocals, LLScriptArgString::mString, and S32.

Referenced by print_return(), and LLScriptStateChange::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void print_return ( LLFILE fp,
LLScriptScopeEntry entry 
)

Definition at line 7750 of file lscript_tree.cpp.

References print_exit_pops().

Referenced by LLScriptLSOParse::initOpCodePrinting(), LLScriptGlobalFunctions::recurse(), LLScriptEventHandler::recurse(), and LLScriptReturn::recurse().

Here is the call graph for this function:

Here is the caller graph for this function:

void store2stack ( LLScriptExpression exp,
LLScriptExpression lv,
LLScriptByteCodeChunk chunk,
LSCRIPTType  right_type 
)


Variable Documentation

Definition at line 8752 of file lscript_tree.cpp.

Referenced by LLScriptState::recurse(), and LLScriptEventHandler::recurse().


Generated on Fri May 16 08:36:04 2008 for SecondLife by  doxygen 1.5.5