You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
4.2 KiB
C#

9 months ago
namespace com.azkoss.excellite
{
using System;
using System.Collections;
///<summary>
///Formula token for holding binary operator.
///</summary>
internal class BinaryOperatorFormulaToken : FormulaToken
{
// Methods
///<summary>
///Initializes the <see cref="com.azkoss.excellite.BinaryOperatorFormulaToken" /> class.
///</summary>
static BinaryOperatorFormulaToken()
{
BinaryOperatorFormulaToken.CodesToStrings = new Hashtable();
BinaryOperatorFormulaToken.StringsToCodes = new Hashtable();
BinaryOperatorFormulaToken.BinaryOperatorsList = new ArrayList();
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Add] = "+";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Sub] = "-";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Mul] = "*";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Div] = "/";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Power] = "^";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Concat] = "&";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Lt] = "<";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Le] = "<=";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Eq] = "=";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Ge] = ">=";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Gt] = ">";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Ne] = "<>";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Isect] = " ";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.List] = ",";
BinaryOperatorFormulaToken.CodesToStrings[FormulaTokenCode.Range] = ":";
BinaryOperatorFormulaToken.StringsToCodes["+"] = FormulaTokenCode.Add;
BinaryOperatorFormulaToken.StringsToCodes["-"] = FormulaTokenCode.Sub;
BinaryOperatorFormulaToken.StringsToCodes["*"] = FormulaTokenCode.Mul;
BinaryOperatorFormulaToken.StringsToCodes["/"] = FormulaTokenCode.Div;
BinaryOperatorFormulaToken.StringsToCodes["^"] = FormulaTokenCode.Power;
BinaryOperatorFormulaToken.StringsToCodes["&"] = FormulaTokenCode.Concat;
BinaryOperatorFormulaToken.StringsToCodes["<"] = FormulaTokenCode.Lt;
BinaryOperatorFormulaToken.StringsToCodes["<="] = FormulaTokenCode.Le;
BinaryOperatorFormulaToken.StringsToCodes["="] = FormulaTokenCode.Eq;
BinaryOperatorFormulaToken.StringsToCodes[">="] = FormulaTokenCode.Ge;
BinaryOperatorFormulaToken.StringsToCodes[">"] = FormulaTokenCode.Gt;
BinaryOperatorFormulaToken.StringsToCodes["<>"] = FormulaTokenCode.Ne;
BinaryOperatorFormulaToken.StringsToCodes[" "] = FormulaTokenCode.Isect;
BinaryOperatorFormulaToken.StringsToCodes[","] = FormulaTokenCode.List;
BinaryOperatorFormulaToken.StringsToCodes[":"] = FormulaTokenCode.Range;
string[] textArray1 = new string[] { "+", "-", "*", "/", "^", "&", "<", "<=", "=", ">", ">=", "<>", " ", ",", ":" } ;
BinaryOperatorFormulaToken.BinaryOperatorsList.AddRange(textArray1);
}
///<summary>
///Initializes a new instance of the <see cref="com.azkoss.excellite.BinaryOperatorFormulaToken" /> class.
///</summary>
///<param name="code">The FormulaTokenCode code.</param>
public BinaryOperatorFormulaToken(FormulaTokenCode code) : base(code, 1, FormulaTokenType.Binary)
{
}
///<summary>
///Convert formula token to string representation.
///</summary>
///<returns>formula token string representation</returns>
public override string ToString()
{
return (BinaryOperatorFormulaToken.CodesToStrings[(FormulaTokenCode) base.Code] as string);
}
// Fields
public static readonly ArrayList BinaryOperatorsList;
public static readonly Hashtable CodesToStrings;
public static readonly Hashtable StringsToCodes;
}
}