Axiom.Compiler.Framework.PrologOperatorTable.AddPostfixOperator C# (CSharp) Метод

AddPostfixOperator() публичный Метод

public AddPostfixOperator ( string name, bool right, int precedence ) : void
name string
right bool
precedence int
Результат void
        public void AddPostfixOperator(string name, bool right, int precedence)
        {
            PrologOperator op = null;

            if (IsOperator(name))
            {
                op = GetOperator(name);
                op.PostfixPrecedence = precedence;
                op.IsPostfixAssociative = right;
            }
            else
            {
                op = new PrologOperator(name, 0, precedence, 0);
                op.IsPrefixAssociative = right;
                _operatorTable.Add(name, op);
            }
        }

Usage Example

        private void UpdateOperatorTable(int priority, string associativity, string name)
        {
            switch (associativity)
            {
            case "xfx":
                /* xfx */
                _operators.AddInfixOperator(name, false, false, priority);
                break;

            case "xfy":
                _operators.AddInfixOperator(name, false, true, priority);
                break;

            case "yfx":
                _operators.AddInfixOperator(name, true, false, priority);
                break;

            case "fx":
                _operators.AddPrefixOperator(name, false, priority);
                break;

            case "fy":
                _operators.AddPrefixOperator(name, true, priority);
                break;

            case "xf":
                _operators.AddPostfixOperator(name, false, priority);
                break;

            default:
                _errors.Add(new PrologCompilerError("P0010", "Invalid operator associativity specifier.", "", false, _scanner.Current.Line, _scanner.Current.Column));
                break;
            }
        }