Merge branch 'master' of https://github.com/kimgr/asn1ate
authorKim Grasman <kim.grasman@gmail.com>
Sun, 1 Feb 2015 19:54:33 +0000 (20:54 +0100)
committerKim Grasman <kim.grasman@gmail.com>
Sun, 1 Feb 2015 19:54:33 +0000 (20:54 +0100)
1  2 
asn1ate/pyasn1gen.py

diff --combined asn1ate/pyasn1gen.py
@@@ -116,6 -116,7 +116,7 @@@ class Pyasn1Backend(object)
              ChoiceType: self.inline_constructed_type,
              SequenceType: self.inline_constructed_type,
              SetType: self.inline_constructed_type,
+             BitStringType: self.inline_bitstring_type,
          }
  
      def generate_code(self):
      def defn_tagged_type(self, class_name, t):
          fragment = self.writer.get_fragment()
  
 -        tag_type = 'tagImplicitly' if t.implicit else 'tagExplicitly'
 +        implicity = self.sema_module.resolve_tag_implicity(t.implicity, t.type_decl)
 +        if implicity == TagImplicity.IMPLICIT:
 +            tag_implicity = 'tagImplicitly'
 +        elif implicity == TagImplicity.EXPLICIT:
 +            tag_implicity = 'tagExplicitly'
 +        else:
 +            assert False, "Unexpected implicity: %s" % implicity
 +
          base_type = _translate_type(t.type_decl.type_name)
  
 -        fragment.write_line('%s.tagSet = %s.tagSet.%s(%s)' % (class_name, base_type, tag_type, self.build_tag_expr(t)))
 +        fragment.write_line('%s.tagSet = %s.tagSet.%s(%s)' % (class_name, base_type, tag_implicity, self.build_tag_expr(t)))
          nested_dfn = self.generate_defn(class_name, t.type_decl)
          if nested_dfn:
              fragment.write_line(nested_dfn)
  
          return str(fragment)
  
+     def inline_bitstring_type(self, t):
+         return self.inline_simple_type(t)
      def defn_bitstring_type(self, class_name, t):
          fragment = self.writer.get_fragment()
  
          return str(fragment)
  
      def inline_tagged_type(self, t):
 -        tag_type = 'implicitTag' if t.implicit else 'explicitTag'
 +        implicity = self.sema_module.resolve_tag_implicity(t.implicity, t.type_decl)
 +        if implicity == TagImplicity.IMPLICIT:
 +            tag_implicity = 'implicitTag'
 +        elif implicity == TagImplicity.EXPLICIT:
 +            tag_implicity = 'explicitTag'
 +        else:
 +            assert False, "Unexpected implicity: %s" % implicity
 +
          type_expr = self.generate_expr(t.type_decl)
 -        type_expr += '.subtype(%s=%s)' % (tag_type, self.build_tag_expr(t))
 +        type_expr += '.subtype(%s=%s)' % (tag_implicity, self.build_tag_expr(t))
  
          return type_expr