def _parse_expression(self) -> ASTExpression:
    exprs = [self._parse_assignment_expression(inTemplate=False)]
    while True:
        self.skip_ws()
        if (not self.skip_string(',')):
            break
        exprs.append(self._parse_assignment_expression(inTemplate=False))
    if (len(exprs) == 1):
        return exprs[0]
    else:
        return ASTCommaExpr(exprs)
def _parse_expression(self) -> ASTExpression:
    exprs = [self._parse_assignment_expression(inTemplate=False)]
    while True:
        self.skip_ws()
        if (not self.skip_string(',')):
            break
        exprs.append(self._parse_assignment_expression(inTemplate=False))
    if (len(exprs) == 1):
        return exprs[0]
    else:
        return ASTCommaExpr(exprs)