Beispiel #1
0
 def add_main(self):
   main_cls = self.main_cls
   if any(main_cls.mtd_by_name(u"main")): return
   params = [ (u"String[]", u"args") ]
   main = Method(clazz=main_cls, mods=C.PBST, name=u"main", params=params)
   def to_call(mtd): return mtd.name + "();"
   body = '\n'.join(map(to_call, self.harness()))
   main.body = st.to_statements(main, body)
   main_cls.mtds.append(main)
Beispiel #2
0
 def add_default_init(self):
     init = method.Method(clazz=self,
                          mods=[C.mod.PB],
                          typ=self._name,
                          name=self._name)
     if self._sup and self._sup != C.J.OBJ:
         init.body = st.to_statements(init, u"super();")
     self._mtds.append(init)
     return init
Beispiel #3
0
 def add_fld_init(self):
   if not self.mutable_flds: return None
   i_flds = list(enumerate(self.mutable_flds))
   params = map(lambda (i, fld): (fld.typ, u"p{}".format(i)), i_flds)
   init = method.Method(clazz=self, mods=[C.mod.PB], typ=self._name, name=self._name, params=params)
   def init_fld((i, fld)): return fld.name + u" = p{};".format(i)
   body = '\n'.join(map(init_fld, i_flds))
   init.body = st.to_statements(init, body)
   self._mtds.append(init)
   return init
Beispiel #4
0
    def add_main(self):
        main_cls = self.main_cls
        if any(main_cls.mtd_by_name(u"main")): return
        params = [(u"String[]", u"args")]
        main = Method(clazz=main_cls, mods=C.PBST, name=u"main", params=params)

        def to_call(mtd):
            return mtd.name + "();"

        body = '\n'.join(map(to_call, self.harness()))
        main.body = st.to_statements(main, body)
        main_cls.mtds.append(main)
Beispiel #5
0
    def add_fld_init(self):
        if not self.mutable_flds: return None
        i_flds = list(enumerate(self.mutable_flds))
        params = map(lambda (i, fld): (fld.typ, u"p{}".format(i)), i_flds)
        init = method.Method(clazz=self,
                             mods=[C.mod.PB],
                             typ=self._name,
                             name=self._name,
                             params=params)

        def init_fld((i, fld)):
            return fld.name + u" = p{};".format(i)

        body = '\n'.join(map(init_fld, i_flds))
        init.body = st.to_statements(init, body)
        self._mtds.append(init)
        return init
Beispiel #6
0
 def add_default_init(self):
   init = method.Method(clazz=self, mods=[C.mod.PB], typ=self._name, name=self._name)
   if self._sup and self._sup != C.J.OBJ:
     init.body = st.to_statements(init, u"super();")
   self._mtds.append(init)
   return init