public Context addImplicitCells(Context context) { return new Context( addImplicitCells(context.body()), context.requires(), context.att()); }
private Context lift(Context context) { return Context( lift(context.body()), lift(context.requires()), context.att()); }
private Context resolve(Context context) { return new Context( transform(context.body()), transform(context.requires()), context.att()); }
private Context expand(Context context) { return Context( expand(context.body()), expand(context.requires()), context.att()); }
private Context normalize(Context context) { resetVars(context.body(), context.requires()); return new Context( transform(context.body()), transform(context.requires()), context.att()); }
K frozen = KApply(freezerLabel, vars.values().stream().collect(Collections.toList())); return Stream.of(freezer, Rule(KRewrite(cooled, KSequence(heated, frozen)), requiresHeat, BooleanUtils.TRUE, context.att().add("heat")), Rule(KRewrite(KSequence(heated, frozen), cooled), requiresCool, BooleanUtils.TRUE, context.att().add("cool")));
private Context resolve(Context context) { reset(); analyze(context.body()); analyze(context.requires()); finishAnalysis(); if (kore) { return new Context( addFreshCell(transform(context.body())), transform(context.requires()), context.att()); } return new Context( context.body(), addSideCondition(context.requires()), context.att()); }
private Context resolve(Context context) { resetVars(); gatherVars(context.body()); gatherVars(context.requires()); return new Context( transform(context.body()), transform(context.requires()), context.att()); }
private Context close(Context context) { resetVars(); gatherVars(context.body()); gatherVars(context.requires()); return new Context( transform(context.body()), transform(context.requires()), context.att()); }
private Context convert(Context context) { reset(); gatherVars(context.body()); gatherVars(context.requires()); K body = convert(context.body()); return Context( body, addSideCondition(context.requires()), context.att()); }
private Context sortCells(Context context) { resetVars(); analyzeVars(context.body()); analyzeVars(context.requires()); return new Context( processVars(context.body()), processVars(context.requires()), context.att()); }
private Context convert(Context context) { reset(); gatherVars(context.body(), vars); gatherVars(context.requires(), vars); K body = transform(context.body()); return new Context( body, addSideCondition(context.requires()), context.att()); }
private Context convert(Context context) { reset(); gatherVars(context.body(), vars); gatherVars(context.requires(), vars); K body = transform(context.body()); return new Context( body, addSideCondition(context.requires()), context.att()); }
public Sentence concretize(Sentence m) { if (m instanceof Rule) { Rule r = (Rule) m; return new Rule(concretize(r.body()), r.requires(), r.ensures(), r.att()); } else if (m instanceof Context) { Context c = (Context) m; return new Context(concretize(c.body()), c.requires(), c.att()); } else { return m; } } }
private Context resolve(Context context) { resetCasts(); gatherCasts(context.body()); gatherCasts(context.requires()); return new Context( transform(context.body()), addSideCondition(transform(context.requires()), false), context.att()); }
public Sentence apply(Sentence s) { if (s.att().contains(Attribute.MACRO_KEY) || s.att().contains(Attribute.ALIAS_KEY) || s.att().contains(Attribute.ANYWHERE_KEY)) { return s; } if (s instanceof Rule) { Rule rule = (Rule) s; return new Rule(apply(rule.body()), rule.requires(), rule.ensures(), rule.att()); } else if (s instanceof Context) { Context context = (Context) s; return new Context(apply(context.body()), context.requires(), context.att()); } else { return s; } }
private Context resolve(Context context) { resetVars(); gatherVars(context.body()); gatherVars(context.requires()); gatherTerms(context.body(), true); gatherTerms(context.requires(), false); filterTerms(context.body(), true); filterTerms(context.requires(), false); return new Context( transform(context.body(), true), transform(context.requires(), false), context.att()); }