parser.py 文件源码

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

项目:sc-controller 作者: kozec 项目源码 文件源码
def _parse_parameters(self):
        """ Parses parameter list """
        # Check and skip over '('
        t = self._next_token()
        if t.type != TokenType.OP or t.value != '(':
            raise ParseError("Expected '(' of parameter list, got '%s'" % (t.value,))

        parameters = []
        while self._tokens_left():
            # Check for ')' that would end parameter list
            t = self._peek_token()
            if t.type == TokenType.OP and t.value == ')':
                self._next_token()
                return parameters

            # Parse one parameter
            parameters.append(self._parse_parameter())
            # Check if next token is either ')' or ','
            t = self._peek_token()
            while t.type == TokenType.NEWLINE or t.value == "\n":
                self._next_token()
                if not self._tokens_left():
                    raise ParseError("Expected ',' or end of parameter list after parameter '%s'" % (parameters[-1],))
                t = self._peek_token()
            if t.type == TokenType.OP and t.value == ')':
                pass
            elif t.type == TokenType.OP and t.value == ',':
                self._next_token()
            else:
                raise ParseError("Expected ',' or end of parameter list after parameter '%s'" % (parameters[-1],))


        # Code shouldn't reach here, unless there is not closing ')' in parameter list
        raise ParseError("Unmatched parenthesis")
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号