List<SizzleScalar> indexTypes = null;
if (n.f3.present()) {
indexTypes = new ArrayList<SizzleScalar>();
for (final Node node : n.f3.nodes) {
final SizzleType sizzleType = ((NodeSequence) node).elementAt(1).accept(this, argu);
if (!(sizzleType instanceof SizzleScalar))
throw new TypeException("incorrect type " + sizzleType + " for index");
indexTypes.add((SizzleScalar) sizzleType);
}
}
final SizzleType type = n.f5.accept(this, argu);
final AggregatorSpec annotation = argu.getAggregators(n.f1.f0.tokenImage, type).get(0).getAnnotation(AggregatorSpec.class);
SizzleScalar tweight = null;
if (n.f6.present()) {
if (annotation.weightType().equals("none"))
throw new TypeException("unexpected weight for table declaration");
final SizzleType aweight = argu.getType(annotation.weightType());
tweight = (SizzleScalar) ((NodeSequence) n.f6.node).nodes.get(1).accept(this, argu);
if (!aweight.assigns(tweight))
throw new TypeException("incorrect weight type for table declaration");
} else if (!annotation.weightType().equals("none"))
throw new TypeException("missing weight for table declaration");
if (n.f2.present())