private void lvalue(Tree t) { // Expression1: Expression2 [ Expression1Rest ]
		assert t.branches.get(1).node.length() == 0; // We don't need Expression1Rest because
		  // it is the triple operator, so this can't be an lvalue.
		t = t.branches.get(0); // Expression2: Expression3 [ Expression2Rest ]
		assert t.branches.get(1).node.length() == 0; // We don't need Expression2Rest because
			// it is 'instacneof' or an infix operator, so this can't be an lvalue.
		t = t.branches.get(0);
		// Expression3: (
		// PrefixOp Expression3 |
		// '(' ( Type | Expression ) ')' Expression3 |
		// Primary { Selector } { PostfixOp })
		
		assert t.branches.size() == 3 && t.branches.get(2) != null; // Only this can be an lvalue.
		t = t.branches.get(2); // Primary { Selector } { PostfixOp }
		assert t.branches.get(2).branches.size() == 0; // No postfix operators allowed for lvalues.
		primary(t.branches.get(0));
		for (Tree u: t.branches.get(1).branches) {
			selector(u);
		}
	}