def _parse_primary_expression(self) -> ASTExpression:
    self.skip_ws()
    res = self._parse_literal()
    if (res is not None):
        return res
    self.skip_ws()
    if self.skip_word('this'):
        return ASTThisLiteral()
    res = self._parse_fold_or_paren_expression()
    if (res is not None):
        return res
    nn = self._parse_nested_name()
    if (nn is not None):
        return ASTIdExpression(nn)
    return None
def _parse_primary_expression(self) -> ASTExpression:
    self.skip_ws()
    res = self._parse_literal()
    if (res is not None):
        return res
    self.skip_ws()
    if self.skip_word('this'):
        return ASTThisLiteral()
    res = self._parse_fold_or_paren_expression()
    if (res is not None):
        return res
    nn = self._parse_nested_name()
    if (nn is not None):
        return ASTIdExpression(nn)
    return None