public CodeTreeBuilder create() { return new CodeTreeBuilder(this); }
public static CodeTreeBuilder createBuilder() { return new CodeTreeBuilder(null); }
public CodeTreeBuilder create() { return new CodeTreeBuilder(this); }
public static CodeTreeBuilder createBuilder() { return new CodeTreeBuilder(null); }
public CodeTreeBuilder createBuilder() { CodeTreeBuilder builder = new CodeTreeBuilder(null); builder.setEnclosingElement(this); this.bodyTree = builder.getTree(); this.body = null; return builder; }
public CodeTreeBuilder createBuilder() { CodeTreeBuilder builder = new CodeTreeBuilder(null); builder.setEnclosingElement(this); this.bodyTree = builder.getTree(); this.body = null; return builder; }
public CodeTreeBuilder createInitBuilder() { CodeTreeBuilder builder = new CodeTreeBuilder(null); builder.setEnclosingElement(this); init = builder.getTree(); return builder; }
public CodeTreeBuilder createInitBuilder() { CodeTreeBuilder builder = new CodeTreeBuilder(null); builder.setEnclosingElement(this); init = builder.getTree(); return builder; }
public CodeTreeBuilder appendBuilder() { CodeTreeBuilder builder = new CodeTreeBuilder(null); builder.setEnclosingElement(this); if (bodyTree != null) { builder.tree(bodyTree); } this.bodyTree = builder.getTree(); this.body = null; return builder; }
public CodeTreeBuilder appendBuilder() { CodeTreeBuilder builder = new CodeTreeBuilder(null); builder.setEnclosingElement(this); if (bodyTree != null) { builder.tree(bodyTree); } this.bodyTree = builder.getTree(); this.body = null; return builder; }
private List<IfTriple> createAssumptionCheckTriples(FrameState frameState, SpecializationData specialization) { if (specialization == null || specialization.getAssumptionExpressions().isEmpty()) { return Collections.emptyList(); } List<IfTriple> triples = new ArrayList<>(); List<AssumptionExpression> assumptions = specialization.getAssumptionExpressions(); for (AssumptionExpression assumption : assumptions) { CodeTree assumptionReference = createAssumptionReference(frameState, specialization, assumption); CodeTree assumptionGuard = createAssumptionGuard(assumption, assumptionReference); CodeTreeBuilder builder = new CodeTreeBuilder(null); builder.string("("); builder.tree(assumptionReference).string(" == null || "); builder.tree(assumptionGuard); builder.string(")"); triples.add(new IfTriple(null, builder.build(), null)); } return triples; }
private static CodeTree combine(CodeTree tree1, CodeTree tree2) { return new CodeTreeBuilder(null).startGroup().tree(tree1).tree(tree2).end().build(); }
private static CodeTree combine(CodeTree tree1, CodeTree tree2) { return new CodeTreeBuilder(null).startGroup().tree(tree1).tree(tree2).end().build(); }
private Collection<IfTriple> storeCache(FrameState frameState, SpecializationData specialization, CacheExpression cache, CodeTree value) { if (value == null) { return Collections.emptyList(); } String name = createFieldName(specialization, cache.getParameter()); LocalVariable var = frameState.get(name); if (var != null) { // already initialized return Collections.emptyList(); } TypeMirror type = cache.getParameter().getType(); CodeTreeBuilder builder = new CodeTreeBuilder(null); String refName = name + "_"; builder.declaration(type, refName, value); frameState.set(name, new LocalVariable(type, name, CodeTreeBuilder.singleString(refName))); return Arrays.asList(new IfTriple(builder.build(), null, null)); }
private static CodeTree combine(CodeTree tree1, CodeTree tree2, CodeTree tree3) { return new CodeTreeBuilder(null).startGroup().tree(tree1).tree(tree2).tree(tree3).end().build(); }
private static CodeTree combine(CodeTree tree1, CodeTree tree2, CodeTree tree3) { return new CodeTreeBuilder(null).startGroup().tree(tree1).tree(tree2).tree(tree3).end().build(); }
private List<IfTriple> persistAssumptions(FrameState frameState, SpecializationData specialization) { List<IfTriple> triples = new ArrayList<>(); for (AssumptionExpression assumption : specialization.getAssumptionExpressions()) { LocalVariable var = frameState.get(assumption.getId()); String name = createAssumptionFieldName(specialization, assumption); CodeTreeBuilder builder = new CodeTreeBuilder(null); builder.startStatement(); builder.tree(createSpecializationFieldReference(frameState, specialization, name)).string(" = ").tree(var.createReference()); builder.end(); triples.add(new IfTriple(builder.build(), null, null)); } return triples; }
private CodeTree createSpecializationFieldReference(FrameState frameState, SpecializationData s, String fieldName) { CodeTreeBuilder builder = new CodeTreeBuilder(null); if (useSpecializationClass(s)) { String localName = createSpecializationLocalName(s); LocalVariable var = frameState.get(localName); if (var != null) { builder.string(localName); } else { builder.string("this.", createSpecializationFieldName(s)); } } else { builder.string("this"); } if (fieldName != null) { builder.string("."); builder.string(fieldName); } return builder.build(); }
private CodeTree loadSpecializationClass(FrameState frameState, SpecializationData specialization) { if (!useSpecializationClass(specialization)) { return null; } String localName = createSpecializationLocalName(specialization); String typeName = createSpecializationTypeName(specialization); LocalVariable var = frameState.get(localName); CodeTreeBuilder builder = new CodeTreeBuilder(null); builder.startStatement(); if (var == null) { builder.string(typeName); builder.string(" "); } builder.string(localName); builder.string(" = "); builder.tree(createSpecializationFieldReference(frameState, specialization, null)); builder.end(); if (var == null) { frameState.set(localName, new LocalVariable(new GeneratedTypeMirror("", typeName), localName, null)); } return builder.build(); }
GuardExpression guardWithBit = getGuardThatNeedsStateBit(specialization, guard); if (guardWithBit != null) { CodeTreeBuilder builder = new CodeTreeBuilder(null); builder.string("("); builder.tree(state.createNotContains(frameState, new Object[]{guardWithBit}));