コード例 #1
0
def h16():
    return Sequence(
        HEXDIG(),
        Optional(
            Sequence(HEXDIG(), Optional(Sequence(HEXDIG(),
                                                 Optional(HEXDIG()))))))
コード例 #2
0
def path_rootless():
    return Sequence(NonTerminal("segment-nz"),
                    Optional(Sequence("/", NonTerminal("segment"))))
コード例 #3
0
def uri():
    return Sequence(NonTerminal("scheme"), ":", Group(hier_part(),
                                                      "hier-part"),
                    Optional(Sequence("?", NonTerminal("query"))),
                    Optional(Sequence("#", NonTerminal("fragment"))))
コード例 #4
0
def path_absolute():
    return Sequence(
        "/",
        Optional(
            Sequence(NonTerminal("segment-nz"),
                     Optional(Sequence("/", NonTerminal("segment"))))))
コード例 #5
0
def path_abempty():
    return Optional(Sequence("/", NonTerminal("segment")))
コード例 #6
0
def authority():
    return [
        Optional(Sequence(NonTerminal("userinfo"), "@")),
        NonTerminal("host"),
        Optional(Sequence(":", NonTerminal("port")))
    ]
コード例 #7
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"))), "::"))
コード例 #8
0
 def maybe(self, children):
     return Optional(children[0])