lib/classes/Variables.js/Variables/constructor
class Variables:  constructor(serverless) {
    this.serverless = serverless;
    this.service = this.serverless.service;
    this.tracker = new PromiseTracker();

    this.deep = [];
    this.deepRefSyntax = RegExp(/(\${)?deep:\d+(\.[^}]+)*()}?/);
    this.overwriteSyntax = RegExp(/\s*(?:,\s*)+/g);
    this.fileRefSyntax = RegExp(/^file\(([^?%*:|"<>]+?)\)/g);
    this.slsRefSyntax = RegExp(/^sls:/g);
    this.envRefSyntax = RegExp(/^env:/g);
    this.optRefSyntax = RegExp(/^opt:/g);
    this.selfRefSyntax = RegExp(/^self:/g);
    this.stringRefSyntax = RegExp(/(?:('|").*?\1)/g);
    this.cfRefSyntax = RegExp(/^(?:\${)?cf(\.[a-zA-Z0-9-]+)?:/g);
    this.s3RefSyntax = RegExp(/^(?:\${)?s3:(.+?)\/(.+)$/);
    this.ssmRefSyntax = RegExp(/^(?:\${)?ssm:([a-zA-Z0-9_.\-/]+)[~]?(true|false|split)?/);
    this.strToBoolRefSyntax = RegExp(/^(?:\${)?strToBool\(([a-zA-Z0-9_.\-/]+)\)/);

    this.variableResolvers = [
      { regex: this.slsRefSyntax, resolver: this.getValueFromSls.bind(this) },
      { regex: this.envRefSyntax, resolver: this.getValueFromEnv.bind(this) },
      { regex: this.optRefSyntax, resolver: this.getValueFromOptions.bind(this) },
      { regex: this.selfRefSyntax, resolver: this.getValueFromSelf.bind(this) },
      { regex: this.fileRefSyntax, resolver: this.getValueFromFile.bind(this) },
      {
        regex: this.cfRefSyntax,
        resolver: this.getValueFromCf.bind(this),
        isDisabledAtPrepopulation: true,
        serviceName: 'CloudFormation',
      },
      {
        regex: this.s3RefSyntax,
        resolver: this.getValueFromS3.bind(this),
        isDisabledAtPrepopulation: true,
        serviceName: 'S3',
      },
      { regex: this.stringRefSyntax, resolver: this.getValueFromString.bind(this) },
      {
        regex: this.ssmRefSyntax,
        resolver: this.getValueFromSsm.bind(this),
        isDisabledAtPrepopulation: true,
        serviceName: 'SSM',
      },
      {
        regex: this.strToBoolRefSyntax,
        resolver: this.getValueStrToBool.bind(this),
      },
      { regex: this.deepRefSyntax, resolver: this.getValueFromDeep.bind(this) },
    ];
  }