code: function replaceSymbols (lines) {
    var filteredLines = [];
    var symbols = {};
    lines.forEach((line) => {
      var match = line.match(setDirectiveRE);
      if (match) {
        debug('CAPTURING SYMBOL > ' + match[1] + ' = ' + match[3]);
        symbols[match[1]] = match[3];
      } else {
        for (var symbol in symbols) {
          line = expandReference(line, symbol, symbols[symbol]);
        }
        filteredLines.push(line);
      }
    });
    return filteredLines;
  }
docs: Given a list of lines, we look for #set directives alone on each line, we capture the
  defined references and remove them finally, we replace those references on all subsequent
  lines with the value that was associated with the reference.
  
  WARNING: This handles a very basic syntax for #set directives and expects them to be the
  only item on a line, like this:
  
  #set( $keyword = 'Value' )
  
  See the setDirectiveRE RegExp above for the full grammar supported.
  
  NOTE: This appears to be overkill, from reviewing SDKs 2.0.0, 2.1.0, 2.1.1, 2.2.0 and 3.0.0,
  it appears that #set is used to define symbol references, but they are never used so we
  could get away with just removing set statements.
  
  @param {!Array<string>} lines are processed one at a time
  @returns {!Array<string>} original lines, with #set directives removed and associated
  references replaced