示例#1
0
        public void ParseSymExpressionTest()
        {
            //Create parser and parse tokens
            ExpressionParser expressionParser = new ExpressionParser(Init("'symbol"));
            SymExpression    expression       = expressionParser.ParseSymExpression();

            //Test variable identifier
            Assert.AreEqual("symbol", expression.GetSym());
        }
示例#2
0
        /// <summary>
        /// Parse an SymbolExpression
        /// </summary>
        /// <returns>Parsed SymbolExpression</returns>
        public SymExpression ParseSymExpression()
        {
            SymExpression symExpression = new SymExpression();

            CurrentToken = TokenStream.NextToken();
            symExpression.SetSym(CurrentToken.GetValue().ToString());

            return(symExpression);
        }
示例#3
0
        public void ParseCatExpressionTest()
        {
            //Create parser and parse tokens
            ExpressionParser expressionParser = new ExpressionParser(Init("expression+'symbol"));
            Expression       expression       = expressionParser.ParseExpression();

            //Check type of expression
            Assert.AreEqual(typeof(CatExpression), expression.GetType());
            CatExpression parsedCatExpression = (CatExpression)expression;

            //Check expressions in catexpression
            Assert.AreEqual(typeof(VarExpression), parsedCatExpression.GetLeftExpression().GetType());
            Assert.AreEqual(typeof(SymExpression), parsedCatExpression.GetRightExpression().GetType());

            VarExpression left  = (VarExpression)parsedCatExpression.GetLeftExpression();
            SymExpression right = (SymExpression)parsedCatExpression.GetRightExpression();

            Assert.AreEqual("expression", left.GetVariableIdentifier());
            Assert.AreEqual("symbol", right.GetSym());
        }
示例#4
0
 /// <summary>
 /// Interpret SymExpression
 /// </summary>
 /// <param name="expression">SymExpression to interpret</param>
 public override void Visit(SymExpression expression)
 {
     TextValue = RewriteText(expression.GetSym());
 }
示例#5
0
 public virtual void Visit(SymExpression expression)
 {
     VisitSubNodes(expression);
 }