private static IFormulaToken CreateToken(FormulaEditorKey key, LocalVariable localVariable, GlobalVariable globalVariable)
        {
            switch (key)
            {
            // Constants
            case FormulaEditorKey.D0: return(FormulaTokenFactory.CreateDigitToken(0));

            case FormulaEditorKey.D1: return(FormulaTokenFactory.CreateDigitToken(1));

            case FormulaEditorKey.D2: return(FormulaTokenFactory.CreateDigitToken(2));

            case FormulaEditorKey.D3: return(FormulaTokenFactory.CreateDigitToken(3));

            case FormulaEditorKey.D4: return(FormulaTokenFactory.CreateDigitToken(4));

            case FormulaEditorKey.D5: return(FormulaTokenFactory.CreateDigitToken(5));

            case FormulaEditorKey.D6: return(FormulaTokenFactory.CreateDigitToken(6));

            case FormulaEditorKey.D7: return(FormulaTokenFactory.CreateDigitToken(7));

            case FormulaEditorKey.D8: return(FormulaTokenFactory.CreateDigitToken(8));

            case FormulaEditorKey.D9: return(FormulaTokenFactory.CreateDigitToken(9));

            case FormulaEditorKey.DecimalSeparator: return(FormulaTokenFactory.CreateDecimalSeparatorToken());

            case FormulaEditorKey.ParameterSeparator: return(FormulaTokenFactory.CreateParameterSeparatorToken());

            case FormulaEditorKey.Pi: return(FormulaTokenFactory.CreatePiToken());

            case FormulaEditorKey.True: return(FormulaTokenFactory.CreateTrueToken());

            case FormulaEditorKey.False: return(FormulaTokenFactory.CreateFalseToken());

            // Operators
            case FormulaEditorKey.Plus: return(FormulaTokenFactory.CreatePlusToken());

            case FormulaEditorKey.Minus: return(FormulaTokenFactory.CreateMinusToken());

            case FormulaEditorKey.Multiply: return(FormulaTokenFactory.CreateMultiplyToken());

            case FormulaEditorKey.Divide: return(FormulaTokenFactory.CreateDivideToken());

            case FormulaEditorKey.Caret: return(FormulaTokenFactory.CreateCaretToken());

            case FormulaEditorKey.Equals: return(FormulaTokenFactory.CreateEqualsToken());

            case FormulaEditorKey.NotEquals: return(FormulaTokenFactory.CreateNotEqualsToken());

            case FormulaEditorKey.Greater: return(FormulaTokenFactory.CreateGreaterToken());

            case FormulaEditorKey.GreaterEqual: return(FormulaTokenFactory.CreateGreaterEqualToken());

            case FormulaEditorKey.Less: return(FormulaTokenFactory.CreateLessToken());

            case FormulaEditorKey.LessEqual: return(FormulaTokenFactory.CreateLessEqualToken());

            case FormulaEditorKey.And: return(FormulaTokenFactory.CreateAndToken());

            case FormulaEditorKey.Or: return(FormulaTokenFactory.CreateOrToken());

            case FormulaEditorKey.Not: return(FormulaTokenFactory.CreateNotToken());

            case FormulaEditorKey.Mod: return(FormulaTokenFactory.CreateModToken());

            // Functions
            case FormulaEditorKey.Exp: return(FormulaTokenFactory.CreateExpToken());

            case FormulaEditorKey.Log: return(FormulaTokenFactory.CreateLogToken());

            case FormulaEditorKey.Ln: return(FormulaTokenFactory.CreateLnToken());

            case FormulaEditorKey.Min: return(FormulaTokenFactory.CreateMinToken());

            case FormulaEditorKey.Max: return(FormulaTokenFactory.CreateMaxToken());

            case FormulaEditorKey.Sin: return(FormulaTokenFactory.CreateSinToken());

            case FormulaEditorKey.Cos: return(FormulaTokenFactory.CreateCosToken());

            case FormulaEditorKey.Tan: return(FormulaTokenFactory.CreateTanToken());

            case FormulaEditorKey.Arcsin: return(FormulaTokenFactory.CreateArcsinToken());

            case FormulaEditorKey.Arccos: return(FormulaTokenFactory.CreateArccosToken());

            case FormulaEditorKey.Arctan: return(FormulaTokenFactory.CreateArctanToken());

            case FormulaEditorKey.Sqrt: return(FormulaTokenFactory.CreateSqrtToken());

            case FormulaEditorKey.Abs: return(FormulaTokenFactory.CreateAbsToken());

            case FormulaEditorKey.Round: return(FormulaTokenFactory.CreateRoundToken());

            case FormulaEditorKey.Random: return(FormulaTokenFactory.CreateRandomToken());

            // Sensors
            case FormulaEditorKey.AccelerationX: return(FormulaTokenFactory.CreateAccelerationXToken());

            case FormulaEditorKey.AccelerationY: return(FormulaTokenFactory.CreateAccelerationYToken());

            case FormulaEditorKey.AccelerationZ: return(FormulaTokenFactory.CreateAccelerationZToken());

            case FormulaEditorKey.Compass: return(FormulaTokenFactory.CreateCompassToken());

            case FormulaEditorKey.InclinationX: return(FormulaTokenFactory.CreateInclinationXToken());

            case FormulaEditorKey.InclinationY: return(FormulaTokenFactory.CreateInclinationYToken());

            case FormulaEditorKey.Loudness: return(FormulaTokenFactory.CreateLoudnessToken());

            // Properties
            case FormulaEditorKey.Brightness: return(FormulaTokenFactory.CreateBrightnessToken());

            case FormulaEditorKey.Layer: return(FormulaTokenFactory.CreateLayerToken());

            case FormulaEditorKey.Transparency: return(FormulaTokenFactory.CreateTransparencyToken());

            case FormulaEditorKey.PositionX: return(FormulaTokenFactory.CreatePositionXToken());

            case FormulaEditorKey.PositionY: return(FormulaTokenFactory.CreatePositionYToken());

            case FormulaEditorKey.Rotation: return(FormulaTokenFactory.CreateRotationToken());

            case FormulaEditorKey.Size: return(FormulaTokenFactory.CreateSizeToken());

            // Variables
            case FormulaEditorKey.LocalVariable: return(FormulaTokenFactory.CreateLocalVariableToken(localVariable));

            case FormulaEditorKey.GlobalVariable: return(FormulaTokenFactory.CreateGlobalVariableToken(globalVariable));

            // brackets
            case FormulaEditorKey.OpeningParenthesis: return(FormulaTokenFactory.CreateParenthesisToken(true));

            case FormulaEditorKey.ClosingParenthesis: return(FormulaTokenFactory.CreateParenthesisToken(false));

            default: throw new ArgumentOutOfRangeException("key");
            }
        }
예제 #2
0
 protected override IFormulaToken CreateToken()
 {
     return(FormulaTokenFactory.CreateLessEqualToken());
 }