public override object Visit(StatementExpression statementExpression, object data)
 {
     DebugOutput(statementExpression);
     AppendIndentation();sourceText.Append(statementExpression.Expression.AcceptVisitor(this, statementExpression).ToString());
     AppendNewLine();
     return null;
 }
 public override object Visit(StatementExpression statementExpression, object data)
 {
     object exp = statementExpression.Expression.AcceptVisitor(this, data);
     if (exp is CodeExpression) {
         AddStmt(new CodeExpressionStatement((CodeExpression)exp));
     }
     return exp;
 }
 public override object Visit(StatementExpression statementExpression, object data)
 {
     Console.WriteLine(statementExpression.ToString());
     return statementExpression.AcceptChildren(this, data);
 }
 public virtual object Visit(StatementExpression statementExpression, object data)
 {
     if (statementExpression.Expression == null) {
         return null;
     }
     return statementExpression.Expression.AcceptVisitor(this, data);
 }
	void ResourceAcquisition(
#line  1732 "cs.ATG" 
out Statement stmt) {

#line  1734 "cs.ATG" 
		stmt = null;
		Expression expr;
		
		if (
#line  1739 "cs.ATG" 
IsLocalVarDecl()) {
			LocalVariableDecl(
#line  1739 "cs.ATG" 
out stmt);
		} else if (StartOf(4)) {
			Expr(
#line  1740 "cs.ATG" 
out expr);

#line  1744 "cs.ATG" 
			stmt = new StatementExpression(expr); 
		} else SynErr(176);
	}
	void StatementExpr(
#line  1748 "cs.ATG" 
out Statement stmt) {

#line  1753 "cs.ATG" 
		bool mustBeAssignment = la.kind == Tokens.Plus  || la.kind == Tokens.Minus ||
		                       la.kind == Tokens.Not   || la.kind == Tokens.BitwiseComplement ||
		                       la.kind == Tokens.Times || la.kind == Tokens.BitwiseAnd   || IsTypeCast();
		Expression expr = null;
		
		UnaryExpr(
#line  1759 "cs.ATG" 
out expr);
		if (StartOf(6)) {

#line  1762 "cs.ATG" 
			AssignmentOperatorType op; Expression val; 
			AssignmentOperator(
#line  1762 "cs.ATG" 
out op);
			Expr(
#line  1762 "cs.ATG" 
out val);

#line  1762 "cs.ATG" 
			expr = new AssignmentExpression(expr, op, val); 
		} else if (la.kind == 10 || la.kind == 12 || la.kind == 19) {

#line  1763 "cs.ATG" 
			if (mustBeAssignment) Error("error in assignment."); 
		} else SynErr(172);

#line  1764 "cs.ATG" 
		stmt = new StatementExpression(expr); 
	}
 public override object Visit(StatementExpression statementExpression, object data)
 {
     outputFormatter.Indent();
     statementExpression.Expression.AcceptVisitor(this, data);
     outputFormatter.PrintToken(Tokens.Semicolon);
     outputFormatter.NewLine();
     return null;
 }