whole_func_string: function () {
  			if (/\w/.test(this.currentChar)) return this.readWord();
  			if (/["'`]/.test(this.currentChar)) return this.readString();
  			if (/[()]/.test(this.currentChar)) return this.readGroupSymbol();
  			if (/[!=<>]/.test(this.currentChar)) return this.readOperator();
  
  			if (this.currentChar === "") return {type: 'eot', value: ''};
  			else {
  				this.readNextChar();
  				return {type: 'empty', value: ''};
  			}
  		}
func_code_string: function () {
  			if (/\w/.test(this.currentChar)) return this.readWord();
  			if (/["'`]/.test(this.currentChar)) return this.readString();
  			if (/[()]/.test(this.currentChar)) return this.readGroupSymbol();
  			if (/[!=<>]/.test(this.currentChar)) return this.readOperator();
  
  			if (this.currentChar === "") return {type: 'eot', value: ''};
  			else {
  				this.readNextChar();
  				return {type: 'empty', value: ''};
  			}
  		}
func_documentation_string: Determine the next token