TPacked.newBuilder(this.package_ctx, t.getIdentifier(), t.getName()); type.getFieldsInDeclarationOrder().size() == orig_ordered.size(), "%d == %d", Integer.valueOf(type.getFieldsInDeclarationOrder().size()), Integer.valueOf(orig_ordered.size())); type.getFieldsByName().size() == orig_named.size(), "%d == %d", Integer.valueOf(type.getFieldsByName().size()), Integer.valueOf(orig_named.size())); type.getFieldsByName().forEachKey( k -> Preconditions.checkPreconditionV( orig_named.containsKey(k),
final PackageContextType tp = t.getPackageContext(); final TypeName t_name = t.getName(); final String tn = JPRAGeneratedNames.getPackedImplementationByteBufferedName(t_name); generatePackedFactoryMethods( imp_name, int_name, ptr_class, jcb); generateSizeMethods(jcb, t.getSizeInOctets()); generatePackedByteOffsetMethod(jcb); for (final TPacked.FieldType f : t.getFieldsInDeclarationOrder()) { final BigInteger o = offset; f.matchField(
t.getFieldsInDeclarationOrder(); final BigInteger container_size = t.getSizeInBits().getValue();
@Override public Unit matchPacked(final TPacked t) { this.recordOrPackedField(t.getName(), t.getPackageContext()); return Unit.unit(); } }
final PackageContextType tp = t.getPackageContext(); final String tn = this.getPackedInterfaceWritableName(t.getName()); final String pack_name = tp.getName().toString(); jcb.addSuperinterface(JPRAValueType.class); for (final TPacked.FieldType f : t.getFieldsInDeclarationOrder()) { f.matchField( new TPacked.FieldMatcherType<Unit, UnreachableCodeException>() jcb, t.getFieldsInDeclarationOrder());
@Test public final void testPackedEmpty() throws Exception { final JPRAJavaGeneratorType g = this.getJavaGenerator(); final GlobalContextType gc = GlobalContexts.newContext(new AlwaysEmptyLoader()); final PackageContextType pc = gc.loadPackage( new PackageNameQualified( Lists.immutable.of( PackageNameUnqualified.of("x"), PackageNameUnqualified.of("y"), PackageNameUnqualified.of("z")))); final IdentifierType id = gc.getFreshIdentifier(); final Optional<ImmutableLexicalPositionType<Path>> no_lex = Optional.empty(); final TypeName t_name = new TypeName(no_lex, "Empty"); final TPackedBuilderType rb = TPacked.newBuilder(pc, id, t_name); final TPacked r = rb.build(); JPRAJavaGeneratorContract.compilePackeds( JPRAJavaGeneratorContract.createTemporaryDir(), g, Lists.immutable.of(r)); }
PackageNameUnqualified.of("z")))); final TPackedBuilderType tpb = TPacked.newBuilder( pc, gc.getFreshIdentifier(), new TypeName(no_lex, "T")); Assert.assertEquals(Size.valueOf(16L), tp.getSizeInBits()); (TPacked.FieldPaddingBits) tp.getFieldsInDeclarationOrder().get(3); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(0L), range.getLower()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(2); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(4L), range.getLower()); (TPacked.FieldPaddingBits) tp.getFieldsInDeclarationOrder().get(1); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(8L), range.getLower()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(0); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(12L), range.getLower());
private void checkPackedInvariants( final TypeDeclPacked<IdentifierType, TType> tr, final TPacked tt) { Assert.assertEquals(tr.getName(), tt.getName()); Assert.assertEquals(tr.getIdentifier(), tt.getIdentifier()); final ImmutableMap<FieldName, PackedFieldDeclValue<IdentifierType, TType>> tr_named = tr.getFieldsByName(); final ImmutableMap<FieldName, TPacked.FieldValue> tt_named = tt.getFieldsByName(); final ImmutableList<PackedFieldDeclType<IdentifierType, TType>> tr_order = tr.getFieldsInDeclarationOrder(); final ImmutableList<TPacked.FieldType> tt_order = tt.getFieldsInDeclarationOrder(); Assert.assertEquals((long) tt_named.size(), (long) tr_named.size()); Assert.assertEquals((long) tt_order.size(), (long) tr_order.size()); for (int index = 0; index < tt_order.size(); ++index) { final TPacked.FieldType f = tt_order.get(index); Assert.assertEquals(f.getOwner(), tt); } tt_named.forEachKey( k -> Assert.assertTrue("Map contains " + k, tr_named.containsKey(k))); }
@Test public void testLSBMSBRanges_0() throws Exception { final Optional<ImmutableLexicalPositionType<Path>> no_lex = Optional.empty(); final GlobalContextType gc = GlobalContexts.newContext(new AlwaysEmptyLoader()); final PackageContextType pc = gc.loadPackage( new PackageNameQualified( Lists.immutable.of( PackageNameUnqualified.of("x"), PackageNameUnqualified.of("y"), PackageNameUnqualified.of("z")))); final TPackedBuilderType tpb = TPacked.newBuilder( pc, gc.getFreshIdentifier(), new TypeName(no_lex, "T")); final TPacked tp = tpb.build(); Assert.assertEquals(Size.zero(), tp.getSizeInBits()); }
@Test public final void testTypeDeclPackedPadding_0() throws Exception { final JPRAParserType p = this.newParser(); final GlobalContextType c = GlobalContexts.newContext(new AlwaysEmptyLoader()); final JPRAResolverType r = this.newResolver(c); final JPRACheckerType ch = this.newChecker( c, JPRACheckerStandardCapabilities.newCapabilities()); ch.checkPackageBegin( r.resolvePackageBegin( (StatementPackageBegin<Unresolved, Untyped>) p.parseStatement( this.newStringSExpr("(package-begin x.y)")))); final TypeDeclType<IdentifierType, TType> td = ch.checkTypeDeclaration( r.resolveTypeDeclaration( (TypeDeclType<Unresolved, Untyped>) p.parseStatement( this.newStringSExpr("(packed T [(padding-bits 8)])")))); final TypeDeclPacked<IdentifierType, TType> tr = TypeDeclPacked.class.cast(td); final TPacked tt = TPacked.class.cast(tr.getType()); this.checkPackedInvariants(tr, tt); final TPacked.FieldPaddingBits f = TPacked.FieldPaddingBits.class.cast( tt.getFieldsInDeclarationOrder().get(0)); Assert.assertEquals(BigInteger.valueOf(8L), f.getSize().getValue()); }
(Procedure<TPacked>) r -> { try { final TypeName t_name = r.getName();
this.field.getOwner().getSizeInBits().getValue();
@Test public final void testPackedAllPadding() throws Exception { final JPRAJavaGeneratorType g = this.getJavaGenerator(); final GlobalContextType gc = GlobalContexts.newContext(new AlwaysEmptyLoader()); final PackageContextType pc = gc.loadPackage( new PackageNameQualified( Lists.immutable.of( PackageNameUnqualified.of("x"), PackageNameUnqualified.of("y"), PackageNameUnqualified.of("z")))); final IdentifierType id = gc.getFreshIdentifier(); final Optional<ImmutableLexicalPositionType<Path>> no_lex = Optional.empty(); final TypeName t_name = new TypeName(no_lex, "PackedAllPadding"); final TPackedBuilderType rb = TPacked.newBuilder(pc, id, t_name); rb.addPaddingBits(no_lex, Size.valueOf(64L)); final TPacked r = rb.build(); JPRAJavaGeneratorContract.compilePackeds( JPRAJavaGeneratorContract.createTemporaryDir(), g, Lists.immutable.of(r)); }
PackageNameUnqualified.of("z")))); final TPackedBuilderType tpb = TPacked.newBuilder( pc, gc.getFreshIdentifier(), new TypeName(no_lex, "T")); Assert.assertEquals(Size.valueOf(16L), tp.getSizeInBits()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(3); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(0L), range.getLower()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(2); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(4L), range.getLower()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(1); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(8L), range.getLower()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(0); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(12L), range.getLower());
final PackageContextType tp = t.getPackageContext(); final TypeName tn = t.getName(); final String name = this.getPackedInterfaceReadableName(tn); final String pack_name = tp.getName().toString(); jcb.addSuperinterface(JPRAValueType.class); for (final TPacked.FieldType f : t.getFieldsInDeclarationOrder()) { f.matchField( new TPacked.FieldMatcherType<Unit, UnreachableCodeException>()
@Override public Unit matchPacked(final TPacked t) { this.recordOrPackedMethods(t.getName(), t.getPackageContext()); return Unit.unit(); } }
private Unit onInteger(final Size<SizeUnitBitsType> size) { final BigInteger container_size = this.field.getOwner().getSizeInBits().getValue(); final BigInteger field_size = size.getValue(); final String getter_name = JPRAGeneratedNames.getGetterName(this.field.getName()); final String setter_name = JPRAGeneratedNames.getSetterName(this.field.getName()); return this.integerGetterSetter( this.field.getOwner(), container_size, field_size, getter_name, setter_name); }
Optional.empty(); final TypeName t_name = new TypeName(no_lex, "PackedIntegerU4_U4_U4_U4"); final TPackedBuilderType rb = TPacked.newBuilder(pc, id, t_name);
TPacked.newBuilder(this.package_ctx, t.getIdentifier(), t.getName()); type.getFieldsInDeclarationOrder().size() == orig_ordered.size()); Assertive.require(type.getFieldsByName().size() == orig_named.size()); type.getFieldsByName().forEachKey( k -> Assertive.require(orig_named.containsKey(k)));
@Override public Unit matchPacked( final TPacked t) { this.generateFieldOffsetConstant(); this.recordOrPackedMethods(t.getName(), t.getPackageContext()); return Unit.unit(); }