whole_func_string: function consume_sl_comment (proc_stack) {
    let comment = "//";
    proc_stack.tSkip(2);
    let done = false;
  
    while (!proc_stack.tAtEnd() && !done) {
      let peek = proc_stack.tPeek();
      if (peek == "\r" || peek == "\n") {
        done = true;
      } else {
        comment += proc_stack.tAccept();
      }
    }
  
    return comment;
  }
func_code_string: function consume_sl_comment (proc_stack) {
    let comment = "//";
    proc_stack.tSkip(2);
    let done = false;
  
    while (!proc_stack.tAtEnd() && !done) {
      let peek = proc_stack.tPeek();
      if (peek == "\r" || peek == "\n") {
        done = true;
      } else {
        comment += proc_stack.tAccept();
      }
    }
  
    return comment;
  }
func_documentation_string: Called on match `//`