public FilteredTreeNodeStream(Tree tree, Filter f) {
		this.tokenizer = new FilteringTokenizer(tree);

		final boolean success = new BracketedFilter(f).filter(this.tokenizer);

		if (success) {
			this.tokens = new ArrayList<Tree>(this.tokenizer
					.getConsumedTokens());

			if (DEBUG) {
				for (Tree t : this.tokens) {
					System.out.println("--> " + t + "; line " + t.getLine()
							+ ", char " + t.getCharPositionInLine());
				}
			}

		} else {
			// TODO Flag the mismatch somehow.
			this.tokens = new ArrayList<Tree>(0);
		}
	}