@Override public InterfaceBlock clone() { return new InterfaceBlock(layoutQualifier, interfaceQualifier, structName, memberNames, memberTypes.stream().map(item -> item.clone()).collect(Collectors.toList()), instanceName); }
@Override public void visitInterfaceBlock(InterfaceBlock interfaceBlock) { out.append(indent()); if (interfaceBlock.hasLayoutQualifier()) { out.append(interfaceBlock.getLayoutQualifier().toString() + " "); } out.append(interfaceBlock.getInterfaceQualifier() + " " + interfaceBlock.getStructName() + " {" + newLine()); increaseIndent(); for (String memberName : interfaceBlock.getMemberNames()) { out.append(indent()); visit(interfaceBlock.getMemberType(memberName)); out.append(" " + memberName); processArrayInfo(interfaceBlock.getMemberType(memberName)); out.append(";" + newLine()); } decreaseIndent(); out.append("}"); if (interfaceBlock.hasIdentifierName()) { out.append(" " + interfaceBlock.getInstanceName()); } out.append(";" + newLine()); }
@Override public void visitInterfaceBlock(InterfaceBlock interfaceBlock) { for (Type type : interfaceBlock.getMemberTypes()) { visitChildFromParent(type, interfaceBlock); } }
if (decl instanceof InterfaceBlock && ((InterfaceBlock) decl).getInterfaceQualifier() .equals(TypeQualifier.UNIFORM)) { final InterfaceBlock interfaceBlock = (InterfaceBlock) decl; assert interfaceBlock.getMemberNames().size() == 1; final String uniformName = interfaceBlock.getMemberNames().get(0); newTopLevelDeclarations.add(new VariablesDeclaration( new QualifiedType(interfaceBlock.getMemberTypes().get(0).getWithoutQualifiers(), Arrays.asList(TypeQualifier.UNIFORM)), new VariableDeclInfo(uniformName, null, null)));
public LayoutQualifier getLayoutQualifier() { assert hasLayoutQualifier(); return layoutQualifier.get(); }
@Override public Declaration visitInterface_block(Interface_blockContext ctx) { final Optional<LayoutQualifier> maybeLayoutQualifier = ctx.layout_qualifier() == null ? Optional.empty() : Optional.of(visitLayout_qualifier(ctx.layout_qualifier())); final Basic_interface_blockContext basicCtx = ctx.basic_interface_block(); final TypeQualifier interfaceQualifier = visitInterface_qualifier(basicCtx.interface_qualifier()); final Optional<String> maybeInstanceName = basicCtx.instance_name_opt() == null ? Optional.empty() : Optional.of(basicCtx.instance_name_opt().getText()); final Pair<List<String>, List<Type>> members = getMembers(basicCtx.member_list()); return new InterfaceBlock( maybeLayoutQualifier, interfaceQualifier, basicCtx.IDENTIFIER().getText(), members.a, members.b, maybeInstanceName); }
new InterfaceBlock( Optional.of(new LayoutQualifier("set = 0, binding = " + binding)), TypeQualifier.UNIFORM,