lex_ml_basic_string

Function lex_ml_basic_string 

Source
fn lex_ml_basic_string(stream: &mut LocatingSlice<&'_ str>) -> Token
Expand description

Process multi-line basic string

;; Multiline Basic String

ml-basic-string = ml-basic-string-delim [ newline ] ml-basic-body
                  ml-basic-string-delim
ml-basic-string-delim = 3quotation-mark
ml-basic-body = *mlb-content *( mlb-quotes 1*mlb-content ) [ mlb-quotes ]

mlb-content = mlb-char / newline / mlb-escaped-nl
mlb-char = mlb-unescaped / escaped
mlb-quotes = 1*2quotation-mark
mlb-unescaped = wschar / %x21 / %x23-5B / %x5D-7E / non-ascii
mlb-escaped-nl = escape ws newline *( wschar / newline )

ยงSafety

  • stream must be UTF-8
  • stream.starts_with(ML_BASIC_STRING_DELIM)