def _parse_assignment_expression(self, inTemplate: bool) -> ASTExpression:
    exprs = []
    ops = []
    orExpr = self._parse_logical_or_expression(inTemplate=inTemplate)
    exprs.append(orExpr)
    while True:
        oneMore = False
        self.skip_ws()
        for op in _expression_assignment_ops:
            if (op[0] in 'anox'):
                if (not self.skip_word(op)):
                    continue
            elif (not self.skip_string(op)):
                continue
            expr = self._parse_initializer_clause()
            exprs.append(expr)
            ops.append(op)
            oneMore = True
        if (not oneMore):
            break
    if (len(ops) == 0):
        return orExpr
    else:
        return ASTAssignmentExpr(exprs, ops)
def _parse_assignment_expression(self, inTemplate: bool) -> ASTExpression:
    exprs = []
    ops = []
    orExpr = self._parse_logical_or_expression(inTemplate=inTemplate)
    exprs.append(orExpr)
    while True:
        oneMore = False
        self.skip_ws()
        for op in _expression_assignment_ops:
            if (op[0] in 'anox'):
                if (not self.skip_word(op)):
                    continue
            elif (not self.skip_string(op)):
                continue
            expr = self._parse_initializer_clause()
            exprs.append(expr)
            ops.append(op)
            oneMore = True
        if (not oneMore):
            break
    if (len(ops) == 0):
        return orExpr
    else:
        return ASTAssignmentExpr(exprs, ops)