Example #1
0
        def __init__(self, rtyper):
            super(RuleRepr, self).__init__()

            self.ll_rule_cache = {}

            self.match_init_repr = rtyper.getrepr(
                rtyper.annotator.bookkeeper.immutablevalue(Match.__init__)
            )
            self.match_context_init_repr = rtyper.getrepr(
                rtyper.annotator.bookkeeper.immutablevalue(
                    rsre_core.StrMatchContext.__init__
                )
            )
            self.match_context_repr = rtyper.getrepr(
                rtyper.annotator.bookkeeper.immutablevalue(
                    rsre_core.match_context
                )
            )

            list_repr = FixedSizeListRepr(
                rtyper, rtyper.getrepr(model.SomeInteger(nonneg=True))
            )
            list_repr._setup_repr()
            self.lowleveltype = lltype.Ptr(lltype.GcStruct(
                "RULE",
                ("name", lltype.Ptr(STR)),
                ("code", list_repr.lowleveltype),
            ))
        def __init__(self, rtyper):
            super(RuleRepr, self).__init__()

            self.ll_rule_cache = {}

            self.match_init_repr = rtyper.getrepr(
                rtyper.annotator.bookkeeper.immutablevalue(Match.__init__)
            )
            self.match_context_init_repr = rtyper.getrepr(
                rtyper.annotator.bookkeeper.immutablevalue(
                    rsre_core.StrMatchContext.__init__
                )
            )
            self.match_context_repr = rtyper.getrepr(
                rtyper.annotator.bookkeeper.immutablevalue(
                    rsre_core.match_context
                )
            )

            list_repr = FixedSizeListRepr(
                rtyper, rtyper.getrepr(model.SomeInteger(nonneg=True))
            )
            list_repr._setup_repr()
            self.lowleveltype = lltype.Ptr(lltype.GcStruct(
                "RULE",
                ("name", lltype.Ptr(STR)),
                ("code", list_repr.lowleveltype),
                ("flags", lltype.Signed),
            ))
Example #3
0
 def sample_list(self):    # [42, 43, 44, 45]
     rlist = FixedSizeListRepr(None, signed_repr)
     rlist.setup()
     l = ll_fixed_newlist(rlist.lowleveltype.TO, 4)
     ll_setitem(l, 0, 42)
     ll_setitem(l, -3, 43)
     ll_setitem_nonneg(l, 2, 44)
     ll_setitem(l, 3, 45)
     return l
Example #4
0
 def sample_list(self):    # [42, 43, 44, 45]
     rlist = FixedSizeListRepr(None, signed_repr)
     rlist.setup()
     l = ll_fixed_newlist(rlist.lowleveltype.TO, 4)
     ll_setitem(l, 0, 42)
     ll_setitem(l, -3, 43)
     ll_setitem_nonneg(l, 2, 44)
     ll_setitem(l, 3, 45)
     return l
Example #5
0
 def rtyper_makerepr(self, rtyper):
     listitem = self.listdef.listitem
     s_value = listitem.s_value
     if (listitem.range_step is not None and not listitem.mutated
             and not isinstance(s_value, annmodel.SomeImpossibleValue)):
         from rpython.rtyper.lltypesystem.rrange import RangeRepr
         return RangeRepr(listitem.range_step)
     else:
         # cannot do the rtyper.getrepr() call immediately, for the case
         # of recursive structures -- i.e. if the listdef contains itself
         from rpython.rtyper.lltypesystem.rlist import ListRepr, FixedSizeListRepr
         item_repr = lambda: rtyper.getrepr(listitem.s_value)
         if self.listdef.listitem.resized:
             return ListRepr(rtyper, item_repr, listitem)
         else:
             return FixedSizeListRepr(rtyper, item_repr, listitem)