Exemple #1
0
   def pack_regexp(self, pkt, fragments, **k):
      value = getattr(pkt, self.field_name)
      is_literal = not isinstance(value, Any)

      if is_literal:
          self.pack(pkt, fragments, **k)
      else:
          f = FragmentsOfRegexps()
          try:
              self.prototype_field.pack_regexp(pkt, f, **k)
              subregexp = f.assemble_regexp()
          except:
              subregexp = ".*"
          
          fragments.append("(%s)?" % subregexp, is_literal=False)

      return fragments
Exemple #2
0
   def as_regular_expression(self, debug=False):
      fragments = FragmentsOfRegexps()
      stack = []
      self.as_regular_expression_impl(fragments, stack)

      return re.compile("(?s)" + fragments.assemble_regexp(), re.DEBUG if debug else 0)