def pp(self, packed=False): _tag = self.tag.pp(packed) _arity = self.arity.pp(packed) _pack = ppr.IStr(' Pack') _lbrace = ppr.IStr('{') _rbrace = ppr.IStr('}') _comma = ppr.IStr(', ') return ppr.sequence(_pack, _lbrace, _tag, _comma, _arity, _rbrace)
def pp(self, packed=False): pre = ppr.IStr('(') if packed else ppr.INil() post = ppr.IStr(')') if packed else ppr.INil() return ppr.sequence(pre, self.fun.pp(False), self.arg.pp(True), post)
def pp(self, packed=False): combinator_list = [combinator.pp() for combinator in self.supercombinators] _seq = ppr.ISequence(combinator_list) _nl = ppr.sequence(ppr.IStr(';'), ppr.INewline()) return _seq.join(_nl)
def pp(self, packed=False): tag = ppr.sequence(ppr.IStr('<'), self.tag.pp(packed), ppr.IStr('> ')) varlist = [var.pp(packed) for var in self.vars] expr = self.expr.pp(packed) return ppr.sequence(tag, ppr.ISequence(varlist), ppr.IWord('->'), expr)
def pp(self, packed=False): _lambda = ppr.IStr('\\') _dot = ppr.IStr('.') _par = self.par.pp(packed) _body = self.body.pp(packed) return ppr.sequence(_lambda, _par, _dot, _body)
def pp_alternatives(self, alternatives, packed): alts = ppr.ISequence([alt.pp(packed) for alt in alternatives]) nl = ppr.sequence(ppr.IStr(';'), ppr.INewline()) return alts.join(nl)
def pp_definitions(self, definitions, packed): _nl = ppr.sequence(ppr.IStr(';'), ppr.INewline()) defs = ppr.ISequence([definition.pp(packed) for definition in definitions]) return defs.join(_nl)