"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AutoBeTestAccessorProgrammer = void 0;
const typescript_1 = __importDefault(require("typescript"));
const writeTestExpression_1 = require("./writeTestExpression");
var AutoBeTestAccessorProgrammer;
(function (AutoBeTestAccessorProgrammer) {
    AutoBeTestAccessorProgrammer.identifier = (_ctx, expr) => typescript_1.default.factory.createIdentifier(expr.text);
    AutoBeTestAccessorProgrammer.propertyAccessExpression = (ctx, expr) => expr.questionDot
        ? typescript_1.default.factory.createPropertyAccessChain((0, writeTestExpression_1.writeTestExpression)(ctx, expr.expression), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), expr.name)
        : typescript_1.default.factory.createPropertyAccessExpression((0, writeTestExpression_1.writeTestExpression)(ctx, expr.expression), expr.name);
    AutoBeTestAccessorProgrammer.elementAccessExpression = (ctx, expr) => expr.questionDot
        ? typescript_1.default.factory.createElementAccessChain((0, writeTestExpression_1.writeTestExpression)(ctx, expr.expression), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), (0, writeTestExpression_1.writeTestExpression)(ctx, expr.argumentExpression))
        : typescript_1.default.factory.createElementAccessExpression((0, writeTestExpression_1.writeTestExpression)(ctx, expr.expression), (0, writeTestExpression_1.writeTestExpression)(ctx, expr.argumentExpression));
})(AutoBeTestAccessorProgrammer || (exports.AutoBeTestAccessorProgrammer = AutoBeTestAccessorProgrammer = {}));
//# sourceMappingURL=AutoBeTestAccessorProgrammer.js.map