Esempio n. 1
0
		public virtual object VisitCatchClause(CatchClause catchClause, object data) {
			Debug.Assert((catchClause != null));
			Debug.Assert((catchClause.TypeReference != null));
			Debug.Assert((catchClause.StatementBlock != null));
			Debug.Assert((catchClause.Condition != null));
			catchClause.TypeReference.AcceptVisitor(this, data);
			catchClause.StatementBlock.AcceptVisitor(this, data);
			return catchClause.Condition.AcceptVisitor(this, data);
		}
		public virtual object VisitCatchClause(CatchClause catchClause, object data) {
			throw new global::System.NotImplementedException("CatchClause");
		}
		public virtual object VisitCatchClause(CatchClause catchClause, object data) {
			Debug.Assert((catchClause != null));
			Debug.Assert((catchClause.TypeReference != null));
			Debug.Assert((catchClause.StatementBlock != null));
			Debug.Assert((catchClause.Condition != null));
			nodeStack.Push(catchClause.TypeReference);
			catchClause.TypeReference.AcceptVisitor(this, data);
			catchClause.TypeReference = ((TypeReference)(nodeStack.Pop()));
			nodeStack.Push(catchClause.StatementBlock);
			catchClause.StatementBlock.AcceptVisitor(this, data);
			catchClause.StatementBlock = ((Statement)(nodeStack.Pop()));
			nodeStack.Push(catchClause.Condition);
			catchClause.Condition.AcceptVisitor(this, data);
			catchClause.Condition = ((Expression)(nodeStack.Pop()));
			return null;
		}
Esempio n. 4
0
	void CatchClause(out CatchClause catchClause) {
		TypeReference type = null;
		Statement blockStmt = null;
		Expression expr = null;
		string name = String.Empty;

		Expect(75);
		if (StartOf(5)) {
			Identifier();
			name = t.val;
			if (la.kind == 63) {
				Get();
				TypeName(out type);
			}
		}
		if (la.kind == 229) {
			Get();
			Expr(out expr);
		}
		EndOfStmt();
		Block(out blockStmt);
		catchClause = new CatchClause(type, name, blockStmt, expr);
	}
		public virtual object TrackedVisitCatchClause(CatchClause catchClause, object data) {
			return base.VisitCatchClause(catchClause, data);
		}
		public sealed override object VisitCatchClause(CatchClause catchClause, object data) {
			this.BeginVisit(catchClause);
			object result = this.TrackedVisitCatchClause(catchClause, data);
			this.EndVisit(catchClause);
			return result;
		}