示例#1
0
        /// <summary>
        /// Parser for EchoStatement
        /// </summary>
        /// <returns>Parsed EchoStatement</returns>
        public EchoStatement ParseEchoStatement()
        {
            //Skip echo
            NextToken("echo", "echo Expression/Embedding ;", "echo");

            //Determine echo type
            if (TokenStream.HasNext() && TokenStream.Peek(1).GetType() == TokenType.EMBEDDING)
            {   //EchoEmbeddingStatement
                EchoEmbeddingStatement echoEmbedding = new EchoEmbeddingStatement();

                //Parse embedding
                echoEmbedding.SetEmbedding(embeddingParser.ParseEmbedding());

                //Skip ; token
                NextToken(";", "echo Expression/Embedding ;", ';');

                return(echoEmbedding);
            }
            else
            {   //EchoExpressionStatement
                EchoExpressionStatement echoExpression = new EchoExpressionStatement();

                //Parse expression
                echoExpression.SetExpression(expressionParser.ParseExpression());

                //Skip ; token
                NextToken(";", "echo Expression/Embedding ;", ';');

                return(echoExpression);
            }
        }
示例#2
0
 /// <summary>
 /// Interpret EchoEmbeddingStatement
 /// </summary>
 /// <param name="statement">EchoEmbeddingStatement to interpret</param>
 public override void Visit(EchoEmbeddingStatement statement)
 {
     statement.GetEmbedding().AcceptVisitor(this);
 }
示例#3
0
 public virtual void Visit(EchoEmbeddingStatement statement)
 {
     VisitSubNodes(statement);
 }