package parsekit // BufLiteral retrieves the contents of the parser's string buffer (all the // runes that were added to it using ParseAPI.Accept()) as a literal string. // // Literal means that if the input had for example the subsequent runes '\' and // 'n' in it, then the literal string would have a backslash and an 'n' it in, // not a linefeed (ASCII char 10). // // Retrieving the buffer contents will not affect the buffer itself. New runes // can still be added to it. Only when calling P.BufClear(), the buffer will be // cleared. func (p *ParseAPI) BufLiteral() string { return p.buffer.asLiteralString() } // BufInterpreted retrieves the contents of the parser's string buffer (all the // runes that were added to it using ParseAPI.Accept()) as an interpreted // string. // // Interpreted means that the contents are treated as a Go double quoted // interpreted string (handling escape codes like \n, \t, \uXXXX, etc.). if the // input had for example the subsequent runes '\' and 'n' in it, then the // interpreted string would have an actual linefeed (ASCII char 10) in it. // // This method returns a boolean value, indicating whether or not the string // interpretation was successful. On invalid string data, an error will // automatically be emitted and the boolean return value will be false. // // Retrieving the buffer contents will not affect the buffer itself. New runes // can still be added to it. Only when calling P.BufClear(), the buffer will be // cleared. func (p *ParseAPI) BufInterpreted() (string, bool) { s, err := p.buffer.asInterpretedString() if err != nil { p.Error( "invalid string: %s (%s, forgot to escape a double quote or backslash maybe?)", p.buffer.asLiteralString(), err) return "", false } return s, true } // BufClear clears the contents of the parser's string buffer. func (p *ParseAPI) BufClear() { p.buffer.reset() }