parameters: (expr, intExpr=None)
return_statement: return (intExpr + arrayExpr).setName('(len) ' + _ustr(expr) + '...')
docstring: Helper to define a counted list of expressions.
  
      This helper defines a pattern of the form::
  
          integer expr expr expr...
  
      where the leading integer tells how many expr expressions follow.
      The matched tokens returns the array of expr tokens as a list - the
      leading count token is suppressed.
  
      If ``intExpr`` is specified, it should be a pyparsing expression
      that produces an integer value.
  
      Example::
  
          countedArray(Word(alphas)).parseString('2 ab cd ef')  # -> ['ab', 'cd']
  
          # in this parser, the leading integer value is given in binary,
          # '10' indicating that 2 values are in the array
          binaryConstant = Word('01').setParseAction(lambda t: int(t[0], 2))
          countedArray(Word(alphas), intExpr=binaryConstant).parseString('10 ab cd ef')  # -> ['ab', 'cd']
docstring_summary: Helper to define a counted list of expressions.
docstring_tokens: Helper to define a counted list of expressions .
function: def countedArray(expr, intExpr=None):
      """Helper to define a counted list of expressions.
  
      This helper defines a pattern of the form::
  
          integer expr expr expr...
  
      where the leading integer tells how many expr expressions follow.
      The matched tokens returns the array of expr tokens as a list - the
      leading count token is suppressed.
  
      If ``intExpr`` is specified, it should be a pyparsing expression
      that produces an integer value.
  
      Example::
  
          countedArray(Word(alphas)).parseString('2 ab cd ef')  # -> ['ab', 'cd']
  
          # in this parser, the leading integer value is given in binary,
          # '10' indicating that 2 values are in the array
          binaryConstant = Word('01').setParseAction(lambda t: int(t[0], 2))
          countedArray(Word(alphas), intExpr=binaryConstant).parseString('10 ab cd ef')  # -> ['ab', 'cd']
      """
      arrayExpr = Forward()
      def countFieldParseAction(s, l, t):
          n = t[0]
          arrayExpr << (n and Group(And([expr] * n)) or Group(empty))
          return []
      if intExpr is None:
          intExpr = Word(nums).setParseAction(lambda t: int(t[0]))
      else:
          intExpr = intExpr.copy()
      intExpr.setName("arrayLen")
      intExpr.addParseAction(countFieldParseAction, callDuringTry=True)
      return (intExpr + arrayExpr).setName('(len) ' + _ustr(expr) + '...')
function_tokens: def countedArray ( expr , intExpr = None ) : arrayExpr = Forward ( ) def countFieldParseAction ( s , l , t ) : n = t [ 0 ] arrayExpr << ( n and Group ( And ( [ expr ] * n ) ) or Group ( empty ) ) return [ ] if intExpr is None : intExpr = Word ( nums ) . setParseAction ( lambda t : int ( t [ 0 ] ) ) else : intExpr = intExpr . copy ( ) intExpr . setName ( "arrayLen" ) intExpr . addParseAction ( countFieldParseAction , callDuringTry = True ) return ( intExpr + arrayExpr ) . setName ( '(len) ' + _ustr ( expr ) + '...' )