Esempio n. 1
0
		public virtual object VisitExpressionStatement(ExpressionStatement expressionStatement, object data) {
			Debug.Assert((expressionStatement != null));
			Debug.Assert((expressionStatement.Expression != null));
			return expressionStatement.Expression.AcceptVisitor(this, data);
		}
		public virtual object VisitExpressionStatement(ExpressionStatement expressionStatement, object data) {
			Debug.Assert((expressionStatement != null));
			Debug.Assert((expressionStatement.Expression != null));
			nodeStack.Push(expressionStatement.Expression);
			expressionStatement.Expression.AcceptVisitor(this, data);
			expressionStatement.Expression = ((Expression)(nodeStack.Pop()));
			return null;
		}
		public virtual object VisitExpressionStatement(ExpressionStatement expressionStatement, object data) {
			throw new global::System.NotImplementedException("ExpressionStatement");
		}
Esempio n. 4
0
	void InvocationStatement(out Statement statement) {
		Expression expr = null;
		Expect(73);
		SimpleExpr(out expr);
		statement = new ExpressionStatement(expr);
	}
Esempio n. 5
0
	void ExpressionStatement(out Statement statement) {
		Expression expr = null;
		Expression val = null;
			AssignmentOperatorType op;
			Location startLoc = la.Location;
			
			bool mustBeAssignment = la.kind == Tokens.Plus  || la.kind == Tokens.Minus ||
			                        la.kind == Tokens.Not   || la.kind == Tokens.Times;

		SimpleExpr(out expr);
		if (StartOf(46)) {
			AssignmentOperator(out op);
			Expr(out val);
			expr = new AssignmentExpression(expr, op, val);
				expr.StartLocation = startLoc;
				expr.EndLocation = t.EndLocation;

		} else if (la.kind == 1 || la.kind == 21 || la.kind == 111) {
			if (mustBeAssignment) Error("error in assignment.");
		} else SynErr(312);
		if(expr is MemberReferenceExpression || expr is IdentifierExpression) {
				Location endLocation = expr.EndLocation;
				expr = new InvocationExpression(expr);
				expr.StartLocation = startLoc;
				expr.EndLocation = endLocation;
			}
			statement = new ExpressionStatement(expr);

	}
		public virtual object TrackedVisitExpressionStatement(ExpressionStatement expressionStatement, object data) {
			return base.VisitExpressionStatement(expressionStatement, data);
		}
		public sealed override object VisitExpressionStatement(ExpressionStatement expressionStatement, object data) {
			this.BeginVisit(expressionStatement);
			object result = this.TrackedVisitExpressionStatement(expressionStatement, data);
			this.EndVisit(expressionStatement);
			return result;
		}
		public override object VisitExpressionStatement(ExpressionStatement expressionStatement, object data)
		{
			object exp = expressionStatement.Expression.AcceptVisitor(this, data);
			if (exp is CodeExpression) {
				AddStmt(new CodeExpressionStatement((CodeExpression)exp));
			}
			return exp;
		}