📄 opcodes.h
字号:
// OPCODES.H
//
// Copyright (c) 1997-2000 Symbian Ltd. All rights reserved.
#include <oplr.h>
typedef void (*OPCODEFUNC)(CStack&, COplRuntime&, CFrame*);
class TOplRealFormat : public TRealFormat
{
public:
TOplRealFormat(TInt aUserFlags); /*{iRealFormat.iType|=KAllowThreeDigitExp;}*/ // implemented in NOT_YET.CPP
TOplRealFormat(TInt aUserFlags,TInt aWidth);
TOplRealFormat(TInt aUserFlags,TInt aWidth,TInt aPlaces);
inline void SetType(TInt aType) {iType=(iType&KRealFormatTypeFlagsMask)|aType;}; // added by AnnW
// inline TRealFormat RealFormat() const {return iRealFormat;}
//private:
// TRealFormat iRealFormat;
};
class OpCode
{
private:
static const OPCODEFUNC OpCodeTable[];
public:
friend void COplRuntime::SequencerL();
friend TInt COplRuntime::ErrorHandler();
#ifndef NO_SEQUENCER
static void SimpleDirectRightSideInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleDirectRightSideLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleDirectRightSideFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleDirectRightSideString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleDirectLeftSideInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleDirectLeftSideLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleDirectLeftSideFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleDirectLeftSideString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleInDirectRightSideInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleInDirectRightSideLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleInDirectRightSideFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleInDirectRightSideString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleInDirectLeftSideInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleInDirectLeftSideLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleInDirectLeftSideFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SimpleInDirectLeftSideString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
//10h
static void ArrayDirectRightSideInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayDirectRightSideLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayDirectRightSideFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayDirectRightSideString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayDirectLeftSideInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayDirectLeftSideLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayDirectLeftSideFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayDirectLeftSideString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayInDirectRightSideInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayInDirectRightSideLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayInDirectRightSideFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayInDirectRightSideString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayInDirectLeftSideInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayInDirectLeftSideLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayInDirectLeftSideFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ArrayInDirectLeftSideString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
#endif
// 20h
static void FieldRightSideInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void FieldRightSideLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void FieldRightSideFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void FieldRightSideString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void FieldLeftSide(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ConstantInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ConstantLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ConstantFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ConstantString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void IllegalOpCode(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr); // don't delete!
static void CompareLessThanInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareLessThanLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareLessThanFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareLessThanString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareLessOrEqualInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareLessOrEqualLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareLessOrEqualFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareLessOrEqualString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareGreaterThanInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareGreaterThanLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareGreaterThanFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareGreaterThanString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareGreaterOrEqualInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareGreaterOrEqualLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareGreaterOrEqualFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareGreaterOrEqualString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareEqualInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareEqualLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareEqualFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareEqualString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareNotEqualInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareNotEqualLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareNotEqualFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CompareNotEqualString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AddInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AddLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AddFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AddString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SubtractInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SubtractLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void SubtractFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void StackByteAsWord(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void MultiplyInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void MultiplyLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void MultiplyFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void RunProcedure(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void DivideInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void DivideLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void DivideFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CallFunction(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void PowerOfInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void PowerOfLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void PowerOfFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void BranchIfFalse(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AndInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AndLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AndFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void StackByteAsLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void OrInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void OrLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void OrFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void StackWordAsLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void NotInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void NotLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void NotFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void Statement16(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void UnaryMinusInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void UnaryMinusLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void UnaryMinusFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void CallProcByStringExpr(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void PercentLessThan(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr); // <%
static void PercentGreaterThan(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr); // >%
static void PercentAdd(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr); // +%
static void PercentSubtract(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr); // -%
// 70h
static void PercentMultiply(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr); // *%
static void PercentDivide(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr); // /%
static void ZeroReturnInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ZeroReturnLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void ZeroReturnFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void NullReturnString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void LongToInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void FloatToInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void FloatToLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void IntToLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void IntToFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void LongToFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void LongToUInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void FloatToUInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
// 80h
static void DropInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void DropLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void DropFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void DropString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AssignInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AssignLong(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AssignFloat(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void AssignString(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
static void PrintInt(CStack& aStack, COplRuntime& aRuntime, CFrame* aFramePtr);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -