Exemplo n.º 1
0
def name():
    """Parses one or more names separated by whitespace, and
    concatenates with a single space.

    >>> parse(name, 'John')
    'John'

    >>> parse(name, 'John Smith')
    'John Smith'

    >>> parse(name, 'John, Smith')
    'John'

    >>> parse(name, 'John Smith ')
    'John Smith'
    """

    names = map(partial("".join), sep1(
        partial(many, partial(satisfies, lambda l: l and l.isalpha())), whitespace1))

    name = " ".join(names).strip()
    if not name:
        fail()

    return name
Exemplo n.º 2
0
def where_expression():
  reserved('where')
  return sep1(let_binding, p(special, ','))
Exemplo n.º 3
0
def xml_char_spec_parser():
    v = sep1(partial(choice, char_spec_range, char_spec_single_char, char_spec_single_hex_char), char_spec_seperator)
    eof()
    return v
Exemplo n.º 4
0
def let_expression():
  reserved('let')
  bindings = sep1(let_binding, p(special, ','))
  reserved('in')
  expr = expression()
  return ('let', bindings, expr)
Exemplo n.º 5
0
def xml_char_spec_parser():
    v = sep1(partial(choice, char_spec_range, char_spec_single_char, char_spec_single_hex_char),
             char_spec_seperator)
    eof()
    return v