Пример #1
0
def parse_source(source):
    """returns list of parsed tokens"""
    lexer = Source( P, source.splitlines(True), {})
    tokens = []
    last_token = Token( P, NULLTOKEN, None)
    while last_token.codename != ENDMARKER:
        last_token = lexer.next()
        tokens.append(last_token)
    return tokens
Пример #2
0
    def parse_lines(self, lines, goal, builder, flags=0):
        goalnumber = self.symbols[goal]
        target = self.root_rules[goalnumber]
        keywords = {}  # dict.fromkeys(self.keywords)
        disable_with = not (flags & CO_FUTURE_WITH_STATEMENT)
        for keyword in self.keywords:
            if disable_with and keyword in ('with', 'as'):
                continue
            keywords[keyword] = None
        src = Source(self, lines, keywords, flags)

        if not target.match(src, builder):
            line, lineno = src.debug()
            # XXX needs better error messages
            raise SyntaxError("invalid syntax", lineno, -1, line)
            # return None
        return builder