code: function removeThisFunction (tokens, index) {
    for (var i = index + 1; i < tokens.length; i++) {
      var token = tokens[i]
      
      if (token.type === "operator") {
        if(token.data === ";") {
          //Remove the trailing newline
          var nextToken = tokens[i+1]
          if(nextToken.type === "whitespace" && nextToken.data[0] === "\n") {
            nextToken.data = nextToken.data.substr(1)
          }
  
          //Remove the previous tabs or spaces
          var prevToken = tokens[index-1]
          if(prevToken.type === "whitespace") {
            var indentation = prevToken.data.match("[\t ]*$")[0]
            prevToken.data = prevToken.data.substr(0, prevToken.data.length - indentation.length)
          }
  
          // Pull out the function
          tokens.splice(index, i - index + 1)
          return
        }
      }
    }
  }
docs: Strip out functions in a file if they are not set to being used by a define. Specifically this strips functions from being called from the main() function The rendering engine does this at run-time once a shader is compiled