예제 #1
0
def ipv4address():
    return [
        NonTerminal("dec-octet"), ".",
        NonTerminal("dec-octet"), ".",
        NonTerminal("dec-octet"), ".",
        NonTerminal("dec-octet")
    ]
def global_number_digits():
    return Sequence(
        "+",
        ZeroOrMore(NonTerminal("phonedigit")),
        DIGIT(),
        ZeroOrMore(NonTerminal("phonedigit"))
    )
def local_number():
    return Sequence(
        local_number_digits(),
        ZeroOrMore(NonTerminal("par")),
        context(),
        ZeroOrMore(NonTerminal("par"))
    )
def global_number():
    return Sequence(global_number_digits(), ZeroOrMore(NonTerminal("par")))
예제 #5
0
def ip_literal():
    return [
        "[",
        Choice(0, NonTerminal("IPv6address"), NonTerminal("IPvFuture")), "]"
    ]
def ietf_token():
    return NonTerminal("ietf-token")
def iana_token():
    return NonTerminal("iana-token")
def isdn_subaddress():
    return Sequence(";isub=", OneOrMore(NonTerminal("uric")))
예제 #9
0
def authority():
    return [
        Optional(Sequence(NonTerminal("userinfo"), "@")),
        NonTerminal("host"),
        Optional(Sequence(":", NonTerminal("port")))
    ]
예제 #10
0
def host():
    return Choice(1, Sequence(*ip_literal()), Sequence(*ipv4address()),
                  NonTerminal("reg-name"))
예제 #11
0
def port():
    return NonTerminal("port")
예제 #12
0
def path_empty():
    return NonTerminal("path-empty")
예제 #13
0
def uri():
    return Sequence(NonTerminal("scheme"), ":", Group(hier_part(),
                                                      "hier-part"),
                    Optional(Sequence("?", NonTerminal("query"))),
                    Optional(Sequence("#", NonTerminal("fragment"))))
예제 #14
0
def path_rootless():
    return Sequence(NonTerminal("segment-nz"),
                    Optional(Sequence("/", NonTerminal("segment"))))
예제 #15
0
def path_absolute():
    return Sequence(
        "/",
        Optional(
            Sequence(NonTerminal("segment-nz"),
                     Optional(Sequence("/", NonTerminal("segment"))))))
예제 #16
0
def path_abempty():
    return Optional(Sequence("/", NonTerminal("segment")))
def pvalue():
    return OneOrMore(NonTerminal("paramchar"))
def DIGIT():
    return NonTerminal("DIGIT")
def context():
    return NonTerminal("context")
def alphanum():
    return NonTerminal("ALPHANUM")
def ALPHA():
    return NonTerminal("ALPHA")
예제 #22
0
def ipvfuture():
    return [
        "v",
        OneOrMore(NonTerminal("HEXDIG")), ".",
        OneOrMore(Choice(0, unreserved(), sub_delims(), ":"))
    ]
def HEXDIG():
    return NonTerminal("HEXDIG")
def local_number_digits():
    return Sequence(
        ZeroOrMore(NonTerminal("phonedigit_hex")),
        Choice(0, HEXDIG(), "*", "#"),
        ZeroOrMore(NonTerminal("phonedigit_hex"))
    )
def quoted_string():
    return Sequence('"', NonTerminal("ASCII"), '"')
def context():
    return Sequence(";phone-context=", NonTerminal("descriptor"))
def x_token():
    return Sequence(Choice(0, "X-", "x-"), NonTerminal("token"))
def extension():
    return Sequence(";ext=", OneOrMore(NonTerminal("phonedigit")))
예제 #29
0
파일: diagrams.py 프로젝트: time-rs/book
            Optional(Sequence(copy(whitespace), Choice(0, *modifiers)),
                     skip=SKIP))

    return Sequence(
        name,
        ZeroOrMore(Sequence(
            copy(whitespace),
            Choice(0, *modifiers),
        ),
                   skip=SKIP),
    )


complete = Diagram(
    ZeroOrMore(Choice(
        0, NonTerminal('literal'),
        Sequence(
            '[',
            Choice(
                1, '[',
                Sequence(
                    Optional(copy(whitespace), skip=SKIP),
                    Choice(
                        0,
                        generate_sequence(
                            'month',
                            copy(padding),
                            copy(month_repr),
                            copy(case_sensitive),
                        ),
                        generate_sequence(
예제 #30
0
def ipv6address():
    return Choice(
        0,
        Sequence(NonTerminal("h16"), ":", NonTerminal("h16"), ":",
                 NonTerminal("h16"), ":", NonTerminal("h16"), ":",
                 NonTerminal("h16"), ":", NonTerminal("h16"), ":",
                 NonTerminal("ls32")),
        Sequence("::", NonTerminal("h16"), ":", NonTerminal("h16"), ":",
                 NonTerminal("h16"), ":", NonTerminal("h16"), ":",
                 NonTerminal("h16"), ":", NonTerminal("ls32")),
        Sequence(Optional(NonTerminal("h16")), "::", NonTerminal("h16"), ":",
                 NonTerminal("h16"), ":", NonTerminal("h16"), ":",
                 NonTerminal("h16"), ":", NonTerminal("ls32")),
        Sequence(
            Optional(
                Sequence(Optional(Sequence(NonTerminal("h16"), ":")),
                         NonTerminal("h16"))), "::", NonTerminal("h16"), ":",
            NonTerminal("h16"), ":", NonTerminal("h16"), ":",
            NonTerminal("ls32")),
        Sequence(
            Optional(
                Sequence(
                    Optional(
                        Sequence(NonTerminal("h16"), ":",
                                 Optional(Sequence(NonTerminal("h16"), ":")))),
                    NonTerminal("h16"))), "::", NonTerminal("h16"), ":",
            NonTerminal("h16"), ":", NonTerminal("ls32")),
        Sequence(
            Optional(
                Sequence(
                    Optional(
                        Sequence(
                            NonTerminal("h16"), ":",
                            Optional(
                                Sequence(
                                    NonTerminal("h16"), ":",
                                    Optional(Sequence(NonTerminal("h16"),
                                                      ":")))))),
                    NonTerminal("h16"))), "::", NonTerminal("h16"), ":",
            NonTerminal("ls32")),
        Sequence(
            Optional(
                Sequence(
                    Optional(
                        Sequence(
                            NonTerminal("h16"), ":",
                            Optional(
                                Sequence(
                                    NonTerminal("h16"), ":",
                                    Optional(
                                        Sequence(
                                            NonTerminal("h16"), ":",
                                            Optional(
                                                Sequence(
                                                    NonTerminal("h16"),
                                                    ":")))))))),
                    NonTerminal("h16"))), "::", NonTerminal("ls32")),
        Sequence(
            Optional(
                Sequence(
                    Optional(
                        Sequence(
                            NonTerminal("h16"), ":",
                            Optional(
                                Sequence(
                                    NonTerminal("h16"), ":",
                                    Optional(
                                        Sequence(
                                            NonTerminal("h16"), ":",
                                            Optional(
                                                Sequence(
                                                    NonTerminal("h16"), ":",
                                                    Optional(
                                                        Sequence(
                                                            NonTerminal("h16"),
                                                            ":")))))))))),
                    NonTerminal("h16"))), "::", NonTerminal("h16")),
        Sequence(
            Optional(
                Sequence(
                    Optional(
                        Sequence(
                            NonTerminal("h16"), ":",
                            Optional(
                                Sequence(
                                    NonTerminal("h16"), ":",
                                    Optional(
                                        Sequence(
                                            NonTerminal("h16"), ":",
                                            Optional(
                                                Sequence(
                                                    NonTerminal("h16"), ":",
                                                    Optional(
                                                        Sequence(
                                                            NonTerminal("h16"),
                                                            ":",
                                                            Optional(
                                                                Sequence(
                                                                    NonTerminal(
                                                                        "h16"),
                                                                    ":"))))))))
                                )))), NonTerminal("h16"))), "::"))