123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526 |
- using System;
- using System.Collections.Generic;
- using System.Reflection;
- using NTERA.EmuEra.Game.EraEmu.GameData.Expression;
- using NTERA.EmuEra.Game.EraEmu.GameData.Function;
- using NTERA.EmuEra.Game.EraEmu.GameData.Variable;
- namespace NTERA.EmuEra.Game.EraEmu.GameProc.Function
- {
- internal abstract class Argument
- {
- public bool IsConst;
- public string ConstStr;
- public Int64 ConstInt;
- }
- internal sealed class VoidArgument : Argument
- {
- }
- internal sealed class ErrorArgument : Argument
- {
- public ErrorArgument(string errorMes)
- {
- this.errorMes = errorMes;
- }
- readonly string errorMes;
- }
- internal sealed class ExpressionArgument : Argument
- {
- public ExpressionArgument(IOperandTerm termSrc)
- {
- Term = termSrc;
- }
- public readonly IOperandTerm Term;
- }
- internal sealed class ExpressionArrayArgument : Argument
- {
- public ExpressionArrayArgument(List<IOperandTerm> termList)
- {
- TermList = new IOperandTerm[termList.Count];
- termList.CopyTo(TermList);
- }
- public readonly IOperandTerm[] TermList;
- }
- internal sealed class SpPrintVArgument : Argument
- {
- public SpPrintVArgument(IOperandTerm[] list)
- {
- Terms = list;
- }
- public readonly IOperandTerm[] Terms;
- }
- internal sealed class SpTimesArgument : Argument
- {
- public SpTimesArgument(VariableTerm var, double d)
- {
- VariableDest = var;
- DoubleValue = d;
- }
- public readonly VariableTerm VariableDest;
- public readonly double DoubleValue;
- }
- internal sealed class SpBarArgument : Argument
- {
- public SpBarArgument(IOperandTerm value, IOperandTerm max, IOperandTerm length)
- {
- Terms[0] = value;
- Terms[1] = max;
- Terms[2] = length;
- }
- public readonly IOperandTerm[] Terms = new IOperandTerm[3];
- }
- internal sealed class SpSwapCharaArgument : Argument
- {
- public SpSwapCharaArgument(IOperandTerm x, IOperandTerm y)
- {
- X = x;
- Y = y;
- }
- public readonly IOperandTerm X;
- public readonly IOperandTerm Y;
- }
- internal sealed class SpSwapVarArgument : Argument
- {
- public SpSwapVarArgument(VariableTerm v1, VariableTerm v2)
- {
- var1 = v1;
- var2 = v2;
- }
- public readonly VariableTerm var1;
- public readonly VariableTerm var2;
- }
- internal sealed class SpVarsizeArgument : Argument
- {
- public SpVarsizeArgument(VariableToken var)
- {
- VariableID = var;
- }
- public readonly VariableToken VariableID;
- }
- internal sealed class SpSaveDataArgument : Argument
- {
- public SpSaveDataArgument(IOperandTerm target, IOperandTerm var)
- {
- Target = target;
- StrExpression = var;
- }
- public readonly IOperandTerm Target;
- public readonly IOperandTerm StrExpression;
- }
- internal sealed class SpTInputsArgument : Argument
- {
- public SpTInputsArgument(IOperandTerm time, IOperandTerm def, IOperandTerm disp, IOperandTerm timeout)
- {
- Time = time;
- Def = def;
- Disp = disp;
- Timeout = timeout;
- }
- public readonly IOperandTerm Time;
- public readonly IOperandTerm Def;
- public readonly IOperandTerm Disp;
- public readonly IOperandTerm Timeout;
- }
- //難読化用属性。enum.ToString()やenum.Parse()を行うなら(Exclude=true)にすること。
- [Obfuscation(Exclude = false)]
- internal enum SortOrder
- {
- UNDEF = 0,
- ASCENDING = 1,
- DESENDING = 2
- }
- internal sealed class SpSortcharaArgument : Argument
- {
- public SpSortcharaArgument(VariableTerm var, SortOrder order)
- {
- SortKey = var;
- SortOrder = order;
- }
- public readonly VariableTerm SortKey;
- public readonly SortOrder SortOrder;
- }
- internal sealed class SpCallFArgment : Argument
- {
- public SpCallFArgment(IOperandTerm funcname, IOperandTerm[] subNames, IOperandTerm[] args)
- {
- FuncnameTerm = funcname;
- SubNames = subNames;
- RowArgs = args;
- }
- public readonly IOperandTerm FuncnameTerm;
- public readonly IOperandTerm[] SubNames;
- public readonly IOperandTerm[] RowArgs;
- public IOperandTerm FuncTerm;
- }
- internal sealed class SpCallArgment : Argument
- {
- public SpCallArgment(IOperandTerm funcname, IOperandTerm[] subNames, IOperandTerm[] args)
- {
- FuncnameTerm = funcname;
- SubNames = subNames;
- RowArgs = args;
- }
- public readonly IOperandTerm FuncnameTerm;
- public readonly IOperandTerm[] SubNames;
- public readonly IOperandTerm[] RowArgs;
- public UserDefinedFunctionArgument UDFArgument;
- public CalledFunction CallFunc;
- }
- internal sealed class SpForNextArgment : Argument
- {
- public SpForNextArgment(VariableTerm var, IOperandTerm start, IOperandTerm end, IOperandTerm step)
- {
- Cnt = var;
- Start = start;
- End = end;
- Step = step;
- }
- public readonly VariableTerm Cnt;
- public readonly IOperandTerm Start;
- public readonly IOperandTerm End;
- public readonly IOperandTerm Step;
- }
- internal sealed class SpPowerArgument : Argument
- {
- public SpPowerArgument(VariableTerm var, IOperandTerm x, IOperandTerm y)
- {
- VariableDest = var;
- X = x;
- Y = y;
- }
- public readonly VariableTerm VariableDest;
- public readonly IOperandTerm X;
- public readonly IOperandTerm Y;
- }
- internal sealed class CaseArgument : Argument
- {
- public CaseArgument(CaseExpression[] args)
- {
- CaseExps = args;
- }
- public readonly CaseExpression[] CaseExps;
- }
- internal sealed class PrintDataArgument : Argument
- {
- public PrintDataArgument(VariableTerm var)
- {
- Var = var;
- }
- public readonly VariableTerm Var;
- }
- internal sealed class StrDataArgument : Argument
- {
- public StrDataArgument(VariableTerm var)
- {
- Var = var;
- }
- public readonly VariableTerm Var;
- }
- internal sealed class MethodArgument : Argument
- {
- public MethodArgument(IOperandTerm method)
- {
- MethodTerm = method;
- }
- public readonly IOperandTerm MethodTerm;
- }
- internal sealed class BitArgument : Argument
- {
- public BitArgument(VariableTerm var, IOperandTerm[] termSrc)
- {
- VariableDest = var;
- Term = termSrc;
- }
- public readonly VariableTerm VariableDest;
- public readonly IOperandTerm[] Term;
- }
- internal sealed class SpVarSetArgument : Argument
- {
- public SpVarSetArgument(VariableTerm var, IOperandTerm termSrc, IOperandTerm start, IOperandTerm end)
- {
- VariableDest = var;
- Term = termSrc;
- Start = start;
- End = end;
- }
- public readonly VariableTerm VariableDest;
- public readonly IOperandTerm Term;
- public readonly IOperandTerm Start;
- public readonly IOperandTerm End;
- }
- internal sealed class SpCVarSetArgument : Argument
- {
- public SpCVarSetArgument(VariableTerm var, IOperandTerm indexTerm, IOperandTerm termSrc, IOperandTerm start, IOperandTerm end)
- {
- VariableDest = var;
- Index = indexTerm;
- Term = termSrc;
- Start = start;
- End = end;
- }
- public readonly VariableTerm VariableDest;
- public readonly IOperandTerm Index;
- public readonly IOperandTerm Term;
- public readonly IOperandTerm Start;
- public readonly IOperandTerm End;
- }
- internal sealed class SpButtonArgument : Argument
- {
- public SpButtonArgument(IOperandTerm p1, IOperandTerm p2)
- {
- PrintStrTerm = p1;
- ButtonWord = p2;
- }
- public readonly IOperandTerm PrintStrTerm;
- public readonly IOperandTerm ButtonWord;
- }
- internal sealed class SpColorArgument : Argument
- {
- public SpColorArgument(IOperandTerm r, IOperandTerm g, IOperandTerm b)
- {
- R = r;
- G = g;
- B = b;
- }
- public SpColorArgument(IOperandTerm rgb)
- {
- RGB = rgb;
- }
- public readonly IOperandTerm R;
- public readonly IOperandTerm G;
- public readonly IOperandTerm B;
- public readonly IOperandTerm RGB;
- }
- internal sealed class SpSplitArgument : Argument
- {
- public SpSplitArgument(IOperandTerm s1, IOperandTerm s2, VariableToken varId, VariableTerm num)
- {
- TargetStr = s1;
- Split = s2;
- Var = varId;
- Num = num;
- }
- public readonly IOperandTerm TargetStr;
- public readonly IOperandTerm Split;
- public readonly VariableToken Var;
- public readonly VariableTerm Num;
- }
-
- internal sealed class SpHtmlSplitArgument : Argument
- {
- public SpHtmlSplitArgument(IOperandTerm s1,VariableToken varId, VariableTerm num)
- {
- TargetStr = s1;
- Var = varId;
- Num = num;
- }
- public readonly IOperandTerm TargetStr;
- public readonly VariableToken Var;
- public readonly VariableTerm Num;
- }
- internal sealed class SpGetIntArgument : Argument
- {
- public SpGetIntArgument(VariableTerm var)
- {
- VarToken = var;
- }
- public readonly VariableTerm VarToken;
- }
- internal sealed class SpArrayControlArgument : Argument
- {
- public SpArrayControlArgument(VariableTerm var, IOperandTerm num1, IOperandTerm num2)
- {
- VarToken = var;
- Num1 = num1;
- Num2 = num2;
- }
- public readonly VariableTerm VarToken;
- public readonly IOperandTerm Num1;
- public readonly IOperandTerm Num2;
- }
- internal sealed class SpArrayShiftArgument : Argument
- {
- public SpArrayShiftArgument(VariableTerm var, IOperandTerm num1, IOperandTerm num2, IOperandTerm num3, IOperandTerm num4)
- {
- VarToken = var;
- Num1 = num1;
- Num2 = num2;
- Num3 = num3;
- Num4 = num4;
- }
- public readonly VariableTerm VarToken;
- public readonly IOperandTerm Num1;
- public readonly IOperandTerm Num2;
- public readonly IOperandTerm Num3;
- public readonly IOperandTerm Num4;
- }
- internal sealed class SpArraySortArgument : Argument
- {
- public SpArraySortArgument(VariableTerm var, SortOrder order, IOperandTerm num1, IOperandTerm num2)
- {
- VarToken = var;
- Order = order;
- Num1 = num1;
- Num2 = num2;
- }
- public readonly VariableTerm VarToken;
- public readonly SortOrder Order;
- public readonly IOperandTerm Num1;
- public readonly IOperandTerm Num2;
- }
- internal sealed class SpCopyArrayArgument : Argument
- {
- public SpCopyArrayArgument(IOperandTerm str1, IOperandTerm str2)
- {
- VarName1 = str1;
- VarName2 = str2;
- }
- public readonly IOperandTerm VarName1;
- public readonly IOperandTerm VarName2;
- }
- internal sealed class SpSaveVarArgument : Argument
- {
- public SpSaveVarArgument(IOperandTerm term, IOperandTerm mes, VariableToken[] varTokens)
- {
- Term = term;
- SavMes = mes;
- VarTokens = varTokens;
- }
- public readonly IOperandTerm Term;
- public readonly IOperandTerm SavMes;
- public readonly VariableToken[] VarTokens;
- }
- internal sealed class RefArgument : Argument
- {
- public RefArgument(UserDefinedRefMethod udrm, UserDefinedRefMethod src)
- {
- RefMethodToken = udrm;
- SrcRefMethodToken = src;
- }
- public RefArgument(UserDefinedRefMethod udrm, CalledFunction src)
- {
- RefMethodToken = udrm;
- SrcCalledFunction = src;
- }
- public RefArgument(UserDefinedRefMethod udrm, IOperandTerm src)
- {
- RefMethodToken = udrm;
- SrcTerm = src;
- }
-
- public RefArgument(ReferenceToken vt, VariableToken src)
- {
- RefVarToken = vt;
- SrcVarToken = src;
- }
- public RefArgument(ReferenceToken vt, IOperandTerm src)
- {
- RefVarToken = vt;
- SrcTerm = src;
- }
- public readonly UserDefinedRefMethod RefMethodToken;
- public readonly UserDefinedRefMethod SrcRefMethodToken;
- public readonly CalledFunction SrcCalledFunction;
- public readonly ReferenceToken RefVarToken;
- public readonly VariableToken SrcVarToken;
- public readonly IOperandTerm SrcTerm;
- }
- internal sealed class OneInputArgument : Argument
- {
- public OneInputArgument(IOperandTerm term, IOperandTerm flag)
- {
- Term = term;
- Flag = flag;
- }
- public readonly IOperandTerm Term;
- public readonly IOperandTerm Flag;
- }
- internal sealed class OneInputsArgument : Argument
- {
- public OneInputsArgument(IOperandTerm term, IOperandTerm flag)
- {
- Term = term;
- Flag = flag;
- }
- public readonly IOperandTerm Term;
- public readonly IOperandTerm Flag;
- }
-
- #region set系
- internal sealed class SpSetArgument : Argument
- {
- public SpSetArgument(VariableTerm var, IOperandTerm termSrc)
- {
- VariableDest = var;
- Term = termSrc;
- }
- public readonly VariableTerm VariableDest;
- public readonly IOperandTerm Term;
- public bool AddConst = false;
- }
- internal sealed class SpSetArrayArgument : Argument
- {
- public SpSetArrayArgument(VariableTerm var, IOperandTerm[] termList, Int64[] constList)
- {
- VariableDest = var;
- TermList = termList;
- ConstIntList = constList;
- }
- public SpSetArrayArgument(VariableTerm var, IOperandTerm[] termList, string[] constList)
- {
- VariableDest = var;
- TermList = termList;
- ConstStrList = constList;
- }
- public readonly VariableTerm VariableDest;
- public readonly IOperandTerm[] TermList;
- public readonly Int64[] ConstIntList;
- public readonly string[] ConstStrList;
- }
- #endregion
- }
|