Beispiel #1
0
 public void TestGetPriority01()
 {
     MemberOp memberOP = new MemberOp();
     //Test Procedure Call
     OperatorPriority priority = memberOP.Priority;
     //Post Condition Check
 }
Beispiel #2
0
        public void TestCreateMemberOp01()
        {
            MemberOp memberOp = CreateMemberOp01();

            Assert.IsNotNull(memberOp);
            #region Record State
            ValueRecorder recorder = new ValueRecorder();
            recorder.Record((bool)memberOp.IsFunction);
            recorder.Record((OperatorPriority)memberOp.Priority);
            recorder.FinishRecording();
            #endregion
        }
Beispiel #3
0
        public void TestErr_EvalStaticField01()
        {
            MemberOp  memberOP = new MemberOp();
            Evaluator evalutor = new Evaluator();

            Result[] argArray = new Result[0];
            Result   res1     = new Result(typeof(MytestClass));
            Result   res2     = new Result("m_Staticnumnr");
            //argArray[0] = res1;
            //argArray[1] = res2;
            //Test Procedure Call
            Result res = memberOP.Eval(evalutor, argArray);
            //Post Condition Check
        }
Beispiel #4
0
        public void TestErr_EvalStaticField05()
        {
            MemberOp  memberOP = new MemberOp();
            Evaluator evalutor = new Evaluator();

            Result[] argArray = new Result[2];
            Result   res1     = new Result(typeof(MytestClass), null);
            Result   res2     = new Result(typeof(string), "GetName");

            argArray[0] = res1;
            argArray[1] = res2;
            //Test Procedure Call
            Result res = memberOP.Eval(evalutor, argArray);
            //Post Condition Check
        }
Beispiel #5
0
        void ParseMember()
        {
            Token token = this.PeekToken();

            if ((token != Token.Identifier) && (token != Token.LeftParen))
            {
                throw BuildException(Error.IndentiferExpected);
            }
            MemberOp mo = new MemberOp();

            _tree.AddOperator(mo);
            if (token == Token.LeftParen)
            {
                this.NextToken();
                this._tree.Push('(');
            }
        }
Beispiel #6
0
        public void TestErr_Eval01()
        {
            MemberOp  memberOP = new MemberOp();
            Evaluator evalutor = new Evaluator();

            Result[]    argArray = new Result[1];
            MytestClass myclass  = new MytestClass();
            Result      res1     = new Result(myclass);

            argArray[0] = res1;
            Accessor memberAccessor = ReflectionAccessor.Wrap(memberOP);

            memberAccessor.SetField("_isFunction", true);
            //Test Procedure Call
            Result res = memberOP.Eval(evalutor, argArray);
            //Post Condition Check
        }
Beispiel #7
0
        public void TestEvalField01()
        {
            MemberOp  memberOP = new MemberOp();
            Evaluator evalutor = new Evaluator();

            Result[]    argArray = new Result[2];
            MytestClass myclass  = new MytestClass();
            Result      res1     = new Result(myclass);
            Result      res2     = new Result("m_number");

            argArray[0] = res1;
            argArray[1] = res2;
            //Test Procedure Call
            Result res = memberOP.Eval(evalutor, argArray);

            //Post Condition Check
            Assert.AreEqual(myclass.m_number, res.Value);
        }
Beispiel #8
0
        public void TestErr_Eval03()
        {
            MemberOp  memberOP = new MemberOp();
            Evaluator evalutor = new Evaluator();

            Result[] argArray = new Result[2];
            Result   res1     = null;
            Result   res2     = new Result("GetName");

            argArray[0] = res1;
            argArray[1] = res2;
            Accessor memberAccessor = ReflectionAccessor.Wrap(memberOP);

            memberAccessor.SetField("_isFunction", true);
            //Test Procedure Call
            Result res = memberOP.Eval(evalutor, argArray);
            //Post Condition Check
        }
Beispiel #9
0
        public void TestEval02()
        {
            MemberOp  memberOP = new MemberOp();
            Evaluator evalutor = new Evaluator();

            Result[]    argArray = new Result[2];
            MytestClass myclass  = new MytestClass();
            Result      res1     = new Result(typeof(MytestClass));
            Result      res2     = new Result("GetStaticName");

            argArray[0]         = res1;
            argArray[1]         = res2;
            memberOP.IsFunction = true;
            //Test Procedure Call
            Result res = memberOP.Eval(evalutor, argArray);

            //Post Condition Check
            Assert.AreEqual(MytestClass.GetStaticName(), res.Value);
        }
Beispiel #10
0
        public void TestEval01()
        {
            MemberOp memberOP = new MemberOp();

            memberOP.ToString();
            Evaluator evalutor = new Evaluator();

            Result[]    argArray = new Result[2];
            MytestClass myclass  = new MytestClass();
            Result      res1     = new Result(myclass);
            Result      res2     = new Result("GetName");

            argArray[0] = res1;
            argArray[1] = res2;
            Accessor memberAccessor = ReflectionAccessor.Wrap(memberOP);

            memberAccessor.SetField("_isFunction", true);
            //Test Procedure Call
            Result res = memberOP.Eval(evalutor, argArray);

            //Post Condition Check
            Assert.AreEqual(myclass.GetName(), res.Value);
        }
Beispiel #11
0
		void ParseMember() {
			Token token = this.PeekToken();
			if ((token != Token.Identifier) && (token != Token.LeftParen)) {
				throw BuildException(Error.IndentiferExpected);
			}
			MemberOp mo = new MemberOp();
			_tree.AddOperator(mo);
			if (token == Token.LeftParen) {
				this.NextToken();
				this._tree.Push('(');
			}
		}
Beispiel #12
0
        public Tree Parse(string text)
        {
            _scanner = new Scanner(text);
            _tree    = new Tree();

            Token token = this.NextToken();

            if (token == Token.EndOfFile)
            {
                return(_tree);
            }
            this.CheckStartableToken(token);

            while (token != Token.EndOfFile)
            {
                if (Parser.IsConstTocken(token))
                {
                    ParseConst();
                }
                else if (_tree._isStart &&
                         ((token == Token.Subtract) || (token == Token.Add)))
                {
                    Constant constant = new Constant((int)0);
                    _tree.AddOperand(constant);
                    BinaryOp bo = BinaryOp.CreateOp(token);
                    _tree.AddOperator(bo);
                }
                else if (Parser.IsBinaryOp(token))
                {
                    ParseBinaryOp();
                }
                else if (Parser.IsUnaryOp(token))
                {
                    ParseUnaryOp();
                }
                else
                {
                    switch (token)
                    {
                    case Token.Identifier:
                        ParseIdentifier();
                        break;

                    case Token.LeftIndexer:
                        this.ParseIndexer();
                        break;

                    case Token.RightIndexer:
                        _tree.Pop('[');
                        break;

                    case Token.ConditionalIf:
                        ParseConditional();
                        break;

                    case Token.ConditionalSemicolon:
                        ParseConditionalSemicolon();
                        break;

                    case Token.Member:
                        ParseMember();
                        break;

                    case Token.LeftParen:
                        if (_tree._top.Expression is MemberOp)
                        {
                            MemberOp memberOp = (MemberOp)_tree._top.Expression;
                            if (memberOp.IsFunction)
                            {
                                throw new ParserException("()() not allowed");
                            }
                            memberOp.IsFunction = true;
                        }
                        this._tree.Push('(');
                        break;

                    case Token.RightParen:
                        _tree.Pop('(');
                        break;

                    case Token.Comma:
                        this._tree.Pop(',');
                        this._tree.Push(',');
                        break;

                    default:
                        throw BuildException(Error.InternalError);
                    }
                }
                token = this.NextToken();
            }

            _tree.Complete();
            return(_tree);
        }
Beispiel #13
0
        internal static MemberOp CreateMemberOp01()
        {
            MemberOp memberOp = new MemberOp();

            return(memberOp);
        }