parser.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:pluto-lang 作者: Zac-Garby 项目源码 文件源码
def parse_class_declaration(self):
        stmt = ast.ClassStatement(self.cur_tok, None, [], None)

        if not self.expect(token.ID):
            return None

        stmt.name = self.parse_id(False)

        if self.peek_is(token.EXTENDS):
            self.next()
            self.next()

            stmt.parent = self.parse_id(False)

        if not self.expect(token.LBRACE):
            return None

        self.next()

        if self.cur_is(token.RBRACE):
            return stmt

        while self.cur_in([token.INIT, token.DEF]):
            if self.cur_is(token.INIT):
                stmt.methods.append(self.parse_init_stmt())
            elif self.cur_is(token.DEF):
                stmt.methods.append(self.parse_def_stmt())

            if not self.expect(token.SEMI):
                return None

            if self.peek_in([token.INIT, token.DEF]):
                self.next()

        if not self.expect(token.RBRACE):
            return None

        return stmt
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号