func lexRawString(t *Tokeniser) stateFunc {
	w, ok := t.checkWord("```")
	if !ok {
		t.emitErrorf("expected ``` at start of raw string")
		return nil
	}
	t.advance(w)
	t.ignore() // ignore the opening quotes
	for {
		// If found closing quotes, emit token, ignore closing quotes and return
		if w, ok := t.checkWord("```"); ok {
			t.emit(STR)
			t.advance(w)
			t.ignore()
			return lexCode
		}
		r, w := t.currentRune()
		if r == eof {
			t.emitErrorf("unterminated raw string")
			return nil
		}
		t.advance(w)
	}
}
// lexRawString scans a raw string delimited by three '`` characters
lexRawString scans a raw string delimited by three '`` characters
// lexRawString scans a raw string delimited by three ' ` ` characters
func lexRawString(t *Tokeniser) stateFunc {
	w, ok := t.checkWord("```")
	if !ok {
		t.emitErrorf("expected ``` at start of raw string")
		return nil
	}
	t.advance(w)
	t.ignore() 
	for {
		if w, ok := t.checkWord("```"); ok {
			t.emit(STR)
			t.advance(w)
			t.ignore()
			return lexCode
		}
		r, w := t.currentRune()
		if r == eof {
			t.emitErrorf("unterminated raw string")
			return nil
		}
		t.advance(w)
	}
}
func lexRawString ( t * Tokeniser ) stateFunc { w , ok := t . checkWord ( " " ) if ! ok { t . emitErrorf ( " " ) return nil } t . advance ( w ) t . ignore ( ) for { if w , ok := t . checkWord ( " " ) ; ok { t . emit ( STR ) t . advance ( w ) t . ignore ( ) return lexCode } r , w := t . currentRune ( ) if r == eof { t . emitErrorf ( " " ) return nil } t . advance ( w ) } }
lexRawString scans a raw string delimited by three '`` characters
lexRawString scans a raw string delimited by three ' ` ` characters
// ignore the opening quotes // If found closing quotes, emit token, ignore closing quotes and return