Axiom.Compiler.Framework.PrologCodeParser.DefineNewOperator C# (CSharp) Метод

DefineNewOperator() приватный Метод

private DefineNewOperator ( int pri, string assoc, PrologCodeTerm op ) : void
pri int
assoc string
op Axiom.Compiler.CodeObjectModel.PrologCodeTerm
Результат void
        private void DefineNewOperator(int pri, string assoc, PrologCodeTerm op)
        {
            // Check operator name
            string opValue = "";
            if (op is PrologCodeConstantAtom)
            {
                opValue = ((PrologCodeConstantAtom)op).Value;
            }
            else if (op is PrologCodeStringAtom)
            {
                opValue = ((PrologCodeStringAtom)op).Value;
            }
            else
            {
                _errors.Add(new PrologCompilerError("P0011", "Invalid operator definition.", "", false, _scanner.Current.Line, _scanner.Current.Column));
                return;
            }

            if (opValue == "," || opValue == "','")
            {
                _errors.Add(new PrologCompilerError("P0011", "Invalid operator definition.", "", false, _scanner.Current.Line, _scanner.Current.Column));
                return;
            }
            // Check operator priority
            if (pri > 0 && pri < 1200)
            {
                UpdateOperatorTable(pri, assoc, opValue);
            }
            else if (pri == 0)
            {
                // Remove an operator
                _operators.RemoveOperator(opValue);
            }
            else
            {
                // Error
            }
        }