示例#1
0
 public object Visit(AssigningActionNode n, object o)
 {
     Append(AddIndent());
     n.LHS.Accept(this, null);
     Append(" = ");
     n.RHS.Accept(this, null);
     AppendLine(";");
     return(null);
 }
示例#2
0
        private ActionNode ParseActionStatement()
        {
            ActionNode         itsAST;
            SourceCodePosition itsPos = _currentToken.SourcePosition;

            if (_currentToken.Type == Token.TokenType.Identifier)
            {
                MemberExpressionNode itsMemberExpr = MemberReference();
                if (_currentToken.Type == Token.TokenType.AssignmentOperator)
                {
                    itsAST = new AssigningActionNode(itsMemberExpr, Assigning(), itsPos);
                }
                else
                {
                    itsAST = new MemberReferenceAction(itsMemberExpr, itsPos);
                }
                Accept(Token.TokenType.Semicolon);
            }
            else if (_currentToken.Type == Token.TokenType.This)
            {
                ThisExpressionNode itsMemberExpr = ThisReference();
                if (_currentToken.Type == Token.TokenType.AssignmentOperator)
                {
                    itsAST = new AssigningActionNode(itsMemberExpr, Assigning(), itsPos);
                }
                else
                {
                    itsAST = new ThisReferenceAction(itsMemberExpr, itsPos);
                }
                Accept(Token.TokenType.Semicolon);
            }
            else
            {
                itsAST = ControlStatement();
            }
            return(itsAST);
        }
示例#3
0
 public object Visit(AssigningActionNode n, object o)
 {
     return(null);
 }