public void AddToken(FormulaTokenCode code, object[] data) { FormulaToken token = FormulaTokensFactory.CreateFromCode(this.worksheet, code); this.tokens.Add(token); token.DelayInitialize(data); }
private void AddSheetReferenceToken(string sheet) { string cell = this.GetCell(); if (cell == string.Empty) { this.Expected("3d sheet cell reference."); } sheet = sheet + "!" + cell; if (this.GetNextOnDemand(':')) { string match = this.GetCell(); if (RefFormulaToken.IsCell(match)) { FormulaTokenCode code = this.isFunctionArgumentsProcessed ? FormulaTokenCode.Area3d1 : FormulaTokenCode.Area3d2; this.AddToken(code, new object[] { sheet + ":" + match, this.worksheet.Parent }); } else { this.Expected("3d area reference."); } } else { FormulaTokenCode code2 = this.isFunctionArgumentsProcessed ? FormulaTokenCode.Ref3d1 : FormulaTokenCode.Ref3d2; this.AddToken(code2, new object[] { sheet, this.worksheet.Parent }); } }
private void PrimaryExpression() { if (this.GetNextOnDemand('(')) { this.Expression(); this.Match(')'); this.AddToken(FormulaTokenCode.Parentheses); while (this.buffer.Peek() != ',') { FormulaTokenCode binaryOperator = this.GetBinaryOperator(); if (binaryOperator == FormulaTokenCode.Empty) { break; } this.ResetCounter(); this.PrimaryExpression(); this.ResetCounter("Operand for binary operator."); this.AddToken(binaryOperator); } } else { this.Expression(); } }
private FormulaTokenCode GetBinaryOperator() { if (this.buffer.Peek(1) != '@') { char ch = this.buffer.Peek(); if (BinaryOperatorFormulaToken.BinaryOperatorsList.Contains(ch.ToString())) { FormulaTokenCode code = (FormulaTokenCode)BinaryOperatorFormulaToken.StringsToCodes[ch.ToString()]; this.buffer.GetNext(); return(code); } if (this.buffer.Peek(1) == '@') { return(FormulaTokenCode.Empty); } char ch2 = this.buffer.Peek(1); int num = ch + ch2; if (BinaryOperatorFormulaToken.BinaryOperatorsList.Contains(num.ToString())) { num = ch + ch2; FormulaTokenCode code2 = (FormulaTokenCode)BinaryOperatorFormulaToken.StringsToCodes[num.ToString()]; this.buffer.GetNext(); this.buffer.GetNext(); return(code2); } } return(FormulaTokenCode.Empty); }
public void AddToken(FormulaTokenCode code, object[] data) { FormulaToken token1 = FormulaTokensFactory.CreateFromCode(code); this.tokens.Add(token1); token1.DelayInitialize(data); }
private void AddFunction(ushort code, string name, FormulaTokenCode argumentCode, FormulaTokenClass returnCode, byte argumentsCount) { FormulaFunctionInfo info = new FormulaFunctionInfo(code, name, argumentCode, returnCode, argumentsCount); this.codesToFunctions[code] = (info); this.namesToFunctions[name] = (info); }
public FormulaFunctionInfo(ushort code, string name, FormulaTokenCode argumentCode, FormulaTokenClass returnCode, byte argumentsCount) { this.argumentsCount = 255; this.code = code; this.name = name; this.argumentCode = argumentCode; this.returnCode = returnCode; this.argumentsCount = argumentsCount; }
public static bool IsArea3dToken(byte code) { FormulaTokenCode code2 = (FormulaTokenCode)code; if ((code2 != FormulaTokenCode.Area3d1) && (code2 != FormulaTokenCode.Area3d2)) { return(code2 == FormulaTokenCode.Area3d3); } return(true); }
public static bool IsAreaToken(ushort codeValue) { FormulaTokenCode code = (FormulaTokenCode)((byte)codeValue); if ((code != FormulaTokenCode.Area1) && (code != FormulaTokenCode.Area2)) { return(code == FormulaTokenCode.Area3); } return(true); }
private void PrimaryExpression() { if (this.GetNextOnDemand('(')) { this.Expression(); this.Match(')'); this.AddToken(FormulaTokenCode.Parentheses); while (true) { FormulaTokenCode code1 = this.GetBinaryOperator(); if (code1 == FormulaTokenCode.Empty) { return; } this.ResetCounter(); this.PrimaryExpression(); this.ResetCounter("Operand for binary operator."); this.AddToken(code1); } } this.Expression(); }
public FunctionVarFormulaToken(FormulaTokenCode code) : base(code, 4, FormulaTokenType.Function) { }
// Methods ///<summary> ///Initializes a new instance of the <see cref="MB.WinEIDrive.Excel.ArrayFormulaToken" /> class. ///</summary> ///<param name="code">The FormulaTokenCode code.</param> public ArrayFormulaToken(FormulaTokenCode code) : base(code, 8, FormulaTokenType.Operand) { }
public BinaryOperatorFormulaToken(FormulaTokenCode code) : base(code, 1, FormulaTokenType.Binary) { }
// Methods public RefErr3dFormulaToken(FormulaTokenCode code) : base(code) { }
public RefFormulaToken(FormulaTokenCode code) : base(code, 5, FormulaTokenType.Operand) { }
public Area3dFormulaToken(FormulaTokenCode code) : base(code, 11) { }
// Methods ///<summary> ///Initializes a new instance of the <see cref="MB.WinEIDrive.Excel.AreaErr3dFormulaToken" /> class. ///</summary> ///<param name="code">The FormulaTokenCode code.</param> public AreaErr3dFormulaToken(FormulaTokenCode code) : base(code) { }
public void AddToken(FormulaTokenCode code) { this.tokens.Add(FormulaTokensFactory.CreateFromCode(this.worksheet, code)); }
public void AddToken(FormulaTokenCode code, object data) { this.AddToken(code, new object[] { data }); }
public FormulaFunctionInfo(ushort code, string name, FormulaTokenCode argumentCode, FormulaTokenClass returnCode) : this(code, name, argumentCode, returnCode, 255) { }
public FormulaToken(FormulaTokenCode code, int size, FormulaTokenType type) { this.token = code; this.size = size; this.type = new FormulaTokenTypeEx(type); }
// Methods ///<summary> ///Initializes a new instance of the <see cref="MB.WinEIDrive.Excel.NameFormulaToken" /> class. ///</summary> ///<param name="code">The code.</param> public NameFormulaToken(FormulaTokenCode code) : base(code, 5, FormulaTokenType.Operand) { this.nameIndex = 0; }
public void AddToken(FormulaTokenCode code, object data) { object[] objArray1 = new object[] { data }; this.AddToken(code, objArray1); }
///<summary> ///Initializes a new instance of the <see cref="MB.WinEIDrive.Excel.Ref3dFormulaToken" /> class. ///</summary> ///<param name="code">The code.</param> public Ref3dFormulaToken(FormulaTokenCode code) : base(code, 7) { this.refIndex = 0; }
public AreaFormulaToken(FormulaTokenCode code) : base(code, 9, FormulaTokenType.Operand) { }
public FormulaToken(FormulaTokenCode code, int size) : this(code, size, FormulaTokenType.Empty) { }
protected AreaFormulaToken(FormulaTokenCode code, int size) : base(code, size, FormulaTokenType.Operand) { }
public static FormulaToken CreateFromCode(ExcelWorksheet sheet, FormulaTokenCode tokenCode) { switch (tokenCode) { case FormulaTokenCode.Exp: case FormulaTokenCode.Tbl: case FormulaTokenCode.Attr: return(new ControlFormulaToken(tokenCode)); case FormulaTokenCode.Add: case FormulaTokenCode.Sub: case FormulaTokenCode.Mul: case FormulaTokenCode.Div: case FormulaTokenCode.Power: case FormulaTokenCode.Concat: case FormulaTokenCode.Lt: case FormulaTokenCode.Le: case FormulaTokenCode.Eq: case FormulaTokenCode.Ge: case FormulaTokenCode.Gt: case FormulaTokenCode.Ne: case FormulaTokenCode.Isect: case FormulaTokenCode.List: case FormulaTokenCode.Range: return(new BinaryOperatorFormulaToken(tokenCode)); case FormulaTokenCode.Uplus: case FormulaTokenCode.Uminus: case FormulaTokenCode.Percent: case FormulaTokenCode.Parentheses: return(new UnaryOperatorFormulaToken(tokenCode)); case FormulaTokenCode.MissArg: return(new MissArgFormulaToken()); case FormulaTokenCode.Str: return(new StrFormulaToken()); case FormulaTokenCode.Err: return(new ErrFormulaToken()); case FormulaTokenCode.Bool: return(new BoolFormulaToken()); case FormulaTokenCode.Int: return(new IntFormulaToken()); case FormulaTokenCode.Num: return(new NumFormulaToken()); case FormulaTokenCode.Array1: case FormulaTokenCode.Array2: case FormulaTokenCode.Array3: return(new ArrayFormulaToken(tokenCode)); case FormulaTokenCode.Func1: case FormulaTokenCode.Func2: case FormulaTokenCode.Func3: return(new FunctionFormulaToken(tokenCode)); case FormulaTokenCode.FuncVar1: case FormulaTokenCode.FuncVar2: case FormulaTokenCode.FuncVar3: return(new FunctionVarFormulaToken(tokenCode)); case FormulaTokenCode.Name1: case FormulaTokenCode.Name2: case FormulaTokenCode.Name3: return(new NameFormulaToken(tokenCode)); case FormulaTokenCode.Ref1: case FormulaTokenCode.Ref2: case FormulaTokenCode.Ref3: return(new RefFormulaToken(tokenCode)); case FormulaTokenCode.Area1: case FormulaTokenCode.Area2: case FormulaTokenCode.Area3: return(new AreaFormulaToken(tokenCode)); case FormulaTokenCode.RefErr1: case FormulaTokenCode.RefErr2: case FormulaTokenCode.RefErr3: return(new RefErrFormulaToken(tokenCode)); case FormulaTokenCode.Ref3d1: case FormulaTokenCode.Ref3d2: case FormulaTokenCode.Ref3d3: return(new Ref3dFormulaToken(sheet, tokenCode)); case FormulaTokenCode.Area3d1: case FormulaTokenCode.Area3d2: case FormulaTokenCode.Area3d3: return(new Area3dFormulaToken(tokenCode)); case FormulaTokenCode.RefErr3d1: case FormulaTokenCode.RefErr3d2: case FormulaTokenCode.RefErr3d3: return(new RefErr3dFormulaToken(tokenCode)); case FormulaTokenCode.AreaErr3d1: case FormulaTokenCode.AreaErr3d2: case FormulaTokenCode.AreaErr3d3: return(new AreaErr3dFormulaToken(tokenCode)); } throw new ArgumentException("We don't support specified formula token: " + tokenCode); }
// Methods ///<summary> ///Initializes a new instance of the <see cref="MB.WinEIDrive.Excel.ControlFormulaToken" /> class. ///</summary> ///<param name="code">The FormulaTokenCode code.</param> public ControlFormulaToken(FormulaTokenCode code) : base(code, 5, FormulaTokenType.Control) { }
///<summary> ///Initializes a new instance of the <see cref="MB.WinEIDrive.Excel.Area3dFormulaToken" /> class. ///</summary> ///<param name="code">The FormulaTokenCode code.</param> public Area3dFormulaToken(FormulaTokenCode code) : base(code, 11) { this.refIndex = 0; }