AbstractNode type() {
		AbstractNode node = null;
		if (test(IDENT)) {
			node = constIdent();
		} else if (test(ARRAY)) {
			node = arrayType();
		} else if (test(RECORD)) {
			node = recordType();
		} else {
			failExpectation("type");
		}
		return node;
	}