mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
vfmt: change all '$expr' to '${expr}' (#16428)
This commit is contained in:
@@ -108,12 +108,12 @@ pub fn (mut s Scanner) scan() !token.Token {
|
||||
}
|
||||
|
||||
ascii := byte_c.ascii_str()
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'current char "$ascii"')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'current char "${ascii}"')
|
||||
|
||||
if byte_c == u8(0x0) {
|
||||
s.reset()
|
||||
return error(@MOD + '.' + @STRUCT + '.' + @FN +
|
||||
' NULL control character `$c.hex()` is not allowed at ($s.line_nr,$s.col) "$ascii" near ...${s.excerpt(s.pos, 5)}...')
|
||||
' NULL control character `${c.hex()}` is not allowed at (${s.line_nr},${s.col}) "${ascii}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
}
|
||||
|
||||
is_sign := c == `+` || c == `-`
|
||||
@@ -128,7 +128,7 @@ pub fn (mut s Scanner) scan() !token.Token {
|
||||
&& peek_2 == `f`
|
||||
if !s.is_left_of_assign && (is_nan || is_inf || is_signed_nan || is_signed_inf) {
|
||||
num := s.extract_nan_or_inf_number()!
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified a special number "$num" ($num.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified a special number "${num}" (${num.len})')
|
||||
return s.new_token(.number, num, num.len)
|
||||
}
|
||||
|
||||
@@ -136,17 +136,17 @@ pub fn (mut s Scanner) scan() !token.Token {
|
||||
is_digit := byte_c.is_digit()
|
||||
if is_digit || is_signed_number {
|
||||
num := s.extract_number()!
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified a number "$num" ($num.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified a number "${num}" (${num.len})')
|
||||
return s.new_token(.number, num, num.len)
|
||||
}
|
||||
|
||||
if util.is_key_char(byte_c) {
|
||||
key := s.extract_key()
|
||||
if !s.is_left_of_assign && (key == 'true' || key == 'false') {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified a boolean "$key" ($key.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified a boolean "${key}" (${key.len})')
|
||||
return s.new_token(.boolean, key, key.len)
|
||||
}
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified a bare key "$key" ($key.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified a bare key "${key}" (${key.len})')
|
||||
return s.new_token(.bare, key, key.len)
|
||||
}
|
||||
|
||||
@@ -154,13 +154,13 @@ pub fn (mut s Scanner) scan() !token.Token {
|
||||
` `, `\t`, `\n`, `\r` {
|
||||
if c == `\n` {
|
||||
s.inc_line_number()
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'incremented line nr to $s.line_nr')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'incremented line nr to ${s.line_nr}')
|
||||
}
|
||||
// Date-Time in RFC 3339 is allowed to have a space between the date and time in supplement to the 'T'
|
||||
// so we allow space characters to slip through to the parser if the space is between two digits...
|
||||
// util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, '"'+u8(s.peek(-1)).ascii_str()+'" < "$ascii" > "'+u8(s.at()).ascii_str()+'"')
|
||||
if c == ` ` && u8(s.peek(-1)).is_digit() && u8(s.at()).is_digit() {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified, what could be, a space between a RFC 3339 date and time ("$ascii") ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified, what could be, a space between a RFC 3339 date and time ("${ascii}") (${ascii.len})')
|
||||
return s.new_token(token.Kind.whitespace, ascii, ascii.len)
|
||||
}
|
||||
if s.config.tokenize_formatting {
|
||||
@@ -172,75 +172,75 @@ pub fn (mut s Scanner) scan() !token.Token {
|
||||
} else if c == `\n` {
|
||||
kind = token.Kind.nl
|
||||
}
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified formatting character ("$ascii") ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified formatting character ("${ascii}") (${ascii.len})')
|
||||
return s.new_token(kind, ascii, ascii.len)
|
||||
} else {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'skipping " ", "\\t" or "\\n" ("$ascii") ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'skipping " ", "\\t" or "\\n" ("${ascii}") (${ascii.len})')
|
||||
}
|
||||
continue
|
||||
}
|
||||
`-` {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified minus "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified minus "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.minus, ascii, ascii.len)
|
||||
}
|
||||
`_` {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified underscore "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified underscore "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.underscore, ascii, ascii.len)
|
||||
}
|
||||
`+` {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified plus "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified plus "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.plus, ascii, ascii.len)
|
||||
}
|
||||
`=` {
|
||||
s.is_left_of_assign = false
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified assignment "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified assignment "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.assign, ascii, ascii.len)
|
||||
}
|
||||
`"`, `'` { // ... some string "/'
|
||||
ident_string := s.extract_string()!
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified quoted string `$ident_string`')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified quoted string `${ident_string}`')
|
||||
return s.new_token(.quoted, ident_string, ident_string.len)
|
||||
}
|
||||
`#` {
|
||||
hash := s.ignore_line()!
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified comment hash "$hash" ($hash.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified comment hash "${hash}" (${hash.len})')
|
||||
return s.new_token(.hash, hash, hash.len + 1)
|
||||
}
|
||||
`{` {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified left curly bracket "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified left curly bracket "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.lcbr, ascii, ascii.len)
|
||||
}
|
||||
`}` {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified right curly bracket "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified right curly bracket "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.rcbr, ascii, ascii.len)
|
||||
}
|
||||
`[` {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified left square bracket "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified left square bracket "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.lsbr, ascii, ascii.len)
|
||||
}
|
||||
`]` {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified right square bracket "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified right square bracket "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.rsbr, ascii, ascii.len)
|
||||
}
|
||||
`:` {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified colon "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified colon "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.colon, ascii, ascii.len)
|
||||
}
|
||||
`,` {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified comma "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified comma "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.comma, ascii, ascii.len)
|
||||
}
|
||||
`.` {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified period "$ascii" ($ascii.len)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified period "${ascii}" (${ascii.len})')
|
||||
return s.new_token(.period, ascii, ascii.len)
|
||||
}
|
||||
else {
|
||||
return error(@MOD + '.' + @STRUCT + '.' + @FN +
|
||||
' could not scan character `$ascii` / $c at $s.pos ($s.line_nr,$s.col) near ...${s.excerpt(s.pos, 5)}...')
|
||||
' could not scan character `${ascii}` / ${c} at ${s.pos} (${s.line_nr},${s.col}) near ...${s.excerpt(s.pos, 5)}...')
|
||||
}
|
||||
}
|
||||
}
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'unknown character code at $s.pos ($s.line_nr,$s.col) near ...${s.excerpt(s.pos,
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'unknown character code at ${s.pos} (${s.line_nr},${s.col}) near ...${s.excerpt(s.pos,
|
||||
5)}...')
|
||||
return s.new_token(.unknown, '', 0)
|
||||
}
|
||||
@@ -358,7 +358,7 @@ fn (mut s Scanner) ignore_line() !string {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, ' ignoring until EOL...')
|
||||
start := s.pos
|
||||
for c := s.at(); c != scanner.end_of_text && c != `\n`; c = s.at() {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'skipping "${u8(c).ascii_str()} / $c"')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'skipping "${u8(c).ascii_str()} / ${c}"')
|
||||
if s.at_crlf() {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'letting `\\r\\n` slip through')
|
||||
break
|
||||
@@ -420,11 +420,11 @@ fn (mut s Scanner) extract_string() !string {
|
||||
|
||||
if s.pos >= s.text.len {
|
||||
return error(@MOD + '.' + @STRUCT + '.' + @FN +
|
||||
' unfinished single-line string literal `$quote.ascii_str()` started at $start ($s.line_nr,$s.col) "${u8(s.at()).ascii_str()}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
' unfinished single-line string literal `${quote.ascii_str()}` started at ${start} (${s.line_nr},${s.col}) "${u8(s.at()).ascii_str()}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
}
|
||||
|
||||
c := u8(s.at())
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'c: `$c.ascii_str()` / $c (quote type: $quote/$quote.ascii_str())')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'c: `${c.ascii_str()}` / ${c} (quote type: ${quote}/${quote.ascii_str()})')
|
||||
|
||||
// Check for escaped chars
|
||||
if c == u8(92) {
|
||||
@@ -439,7 +439,7 @@ fn (mut s Scanner) extract_string() !string {
|
||||
// Check for control characters (allow TAB)
|
||||
if util.is_illegal_ascii_control_character(c) {
|
||||
return error(@MOD + '.' + @STRUCT + '.' + @FN +
|
||||
' control character `$c.hex()` is not allowed at $start ($s.line_nr,$s.col) "${u8(s.at()).ascii_str()}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
' control character `${c.hex()}` is not allowed at ${start} (${s.line_nr},${s.col}) "${u8(s.at()).ascii_str()}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
}
|
||||
|
||||
if c == quote {
|
||||
@@ -453,7 +453,7 @@ fn (mut s Scanner) extract_string() !string {
|
||||
// Don't eat multiple lines in single-line mode
|
||||
if lit.contains('\n') {
|
||||
return error(@MOD + '.' + @STRUCT + '.' + @FN +
|
||||
' unfinished single-line string literal `$quote.ascii_str()` started at $start ($s.line_nr,$s.col) "${u8(s.at()).ascii_str()}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
' unfinished single-line string literal `${quote.ascii_str()}` started at ${start} (${s.line_nr},${s.col}) "${u8(s.at()).ascii_str()}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
}
|
||||
}
|
||||
return lit
|
||||
@@ -470,8 +470,8 @@ fn (mut s Scanner) extract_multiline_string() !string {
|
||||
start := s.pos
|
||||
mut lit := quote.ascii_str() + quote.ascii_str() + quote.ascii_str()
|
||||
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'multi-line `$quote.ascii_str()${s.text[s.pos +
|
||||
1].ascii_str()}${s.text[s.pos + 2].ascii_str()}` string started at pos $start ($s.line_nr,$s.col) (quote type: $quote.ascii_str() / $quote)')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'multi-line `${quote.ascii_str()}${s.text[
|
||||
s.pos + 1].ascii_str()}${s.text[s.pos + 2].ascii_str()}` string started at pos ${start} (${s.line_nr},${s.col}) (quote type: ${quote.ascii_str()} / ${quote})')
|
||||
|
||||
s.pos += 2
|
||||
s.col += 2
|
||||
@@ -482,16 +482,16 @@ fn (mut s Scanner) extract_multiline_string() !string {
|
||||
|
||||
if s.pos >= s.text.len {
|
||||
return error(@MOD + '.' + @STRUCT + '.' + @FN +
|
||||
' unfinished multi-line string literal ($quote.ascii_str()$quote.ascii_str()$quote.ascii_str()) started at $start ($s.line_nr,$s.col) "${u8(s.at()).ascii_str()}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
' unfinished multi-line string literal (${quote.ascii_str()}${quote.ascii_str()}${quote.ascii_str()}) started at ${start} (${s.line_nr},${s.col}) "${u8(s.at()).ascii_str()}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
}
|
||||
|
||||
c := u8(s.at())
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'c: `$c.ascii_str()` / $c (quote type: $quote/$quote.ascii_str())')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'c: `${c.ascii_str()}` / ${c} (quote type: ${quote}/${quote.ascii_str()})')
|
||||
|
||||
if c == `\n` {
|
||||
s.inc_line_number()
|
||||
lit += c.ascii_str()
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'c: `\\n` / $c')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'c: `\\n` / ${c}')
|
||||
continue
|
||||
}
|
||||
// Check for escaped chars
|
||||
@@ -507,7 +507,7 @@ fn (mut s Scanner) extract_multiline_string() !string {
|
||||
// Check for control characters (allow TAB)
|
||||
if util.is_illegal_ascii_control_character(c) {
|
||||
return error(@MOD + '.' + @STRUCT + '.' + @FN +
|
||||
' control character `$c.hex()` is not allowed at $start ($s.line_nr,$s.col) "${u8(s.at()).ascii_str()}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
' control character `${c.hex()}` is not allowed at ${start} (${s.line_nr},${s.col}) "${u8(s.at()).ascii_str()}" near ...${s.excerpt(s.pos, 5)}...')
|
||||
}
|
||||
|
||||
if c == quote {
|
||||
@@ -516,7 +516,7 @@ fn (mut s Scanner) extract_multiline_string() !string {
|
||||
s.pos += 3
|
||||
s.col += 3
|
||||
lit += quote.ascii_str() + quote.ascii_str() + quote.ascii_str()
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'returning at $c.ascii_str() `$lit`')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'returning at ${c.ascii_str()} `${lit}`')
|
||||
return lit
|
||||
} else if s.peek(3) != quote {
|
||||
// lit += c.ascii_str()
|
||||
@@ -524,7 +524,7 @@ fn (mut s Scanner) extract_multiline_string() !string {
|
||||
s.pos += 3
|
||||
s.col += 3
|
||||
lit += quote.ascii_str() + quote.ascii_str() + quote.ascii_str()
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'returning at $c.ascii_str() `$lit`')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'returning at ${c.ascii_str()} `${lit}`')
|
||||
return lit
|
||||
}
|
||||
}
|
||||
@@ -544,28 +544,28 @@ fn (mut s Scanner) handle_escapes(quote u8, is_multiline bool) (string, int) {
|
||||
if s.peek(1) == `u` && u8(s.peek(2)).is_hex_digit() && u8(s.peek(3)).is_hex_digit()
|
||||
&& u8(s.peek(4)).is_hex_digit() && u8(s.peek(5)).is_hex_digit() {
|
||||
lit += s.text[s.pos + 1..s.pos + 6] //.ascii_str()
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'gulp escaped unicode `$lit`')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'gulp escaped unicode `${lit}`')
|
||||
return lit, 5
|
||||
} else if s.peek(1) == quote {
|
||||
if (!is_multiline && s.peek(2) == `\n`)
|
||||
|| (is_multiline && s.peek(2) == quote && s.peek(3) == quote && s.peek(4) == `\n`) {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'ignore special case escaped `$lit` at end of string')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'ignore special case escaped `${lit}` at end of string')
|
||||
return '', 0
|
||||
}
|
||||
lit += quote.ascii_str()
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'gulp escaped `$lit`')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'gulp escaped `${lit}`')
|
||||
return lit, 1
|
||||
}
|
||||
}
|
||||
if is_literal_string {
|
||||
if s.peek(1) == quote {
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'ignore escape `$lit${u8(s.peek(1)).ascii_str()}` in literal string')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'ignore escape `${lit}${u8(s.peek(1)).ascii_str()}` in literal string')
|
||||
return '', 0
|
||||
}
|
||||
}
|
||||
|
||||
lit += u8(s.peek(1)).ascii_str()
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'gulp escaped `$lit`')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'gulp escaped `${lit}`')
|
||||
return lit, 1
|
||||
}
|
||||
|
||||
@@ -604,7 +604,7 @@ fn (mut s Scanner) extract_number() !string {
|
||||
s.col++
|
||||
}
|
||||
key := s.text[start..s.pos]
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified number "$key" in range [$start .. $s.pos]')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified number "${key}" in range [${start} .. ${s.pos}]')
|
||||
return key
|
||||
}
|
||||
|
||||
@@ -634,7 +634,7 @@ fn (mut s Scanner) extract_nan_or_inf_number() !string {
|
||||
s.col++
|
||||
}
|
||||
key := s.text[start..s.pos]
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified special number "$key" in range [$start .. $s.pos]')
|
||||
util.printdbg(@MOD + '.' + @STRUCT + '.' + @FN, 'identified special number "${key}" in range [${start} .. ${s.pos}]')
|
||||
return key
|
||||
}
|
||||
|
||||
@@ -679,12 +679,12 @@ fn (mut s Scanner) check_utf16_or_32_bom() ! {
|
||||
s.header_len = 4
|
||||
s.skip_n(s.header_len)
|
||||
return error(@MOD + '.' + @STRUCT + '.' + @FN +
|
||||
' UTF-32 is not a valid TOML encoding at $s.pos ($s.line_nr,$s.col) near ...${s.excerpt(s.pos, 5)}...')
|
||||
' UTF-32 is not a valid TOML encoding at ${s.pos} (${s.line_nr},${s.col}) near ...${s.excerpt(s.pos, 5)}...')
|
||||
}
|
||||
if (s.at() == 0xFE && s.peek(1) == 0xFF) || (s.at() == 0xFF && s.peek(1) == 0xFE) {
|
||||
s.header_len = 2
|
||||
s.skip_n(s.header_len)
|
||||
return error(@MOD + '.' + @STRUCT + '.' + @FN +
|
||||
' UTF-16 is not a valid TOML encoding at $s.pos ($s.line_nr,$s.col) near ...${s.excerpt(s.pos, 5)}...')
|
||||
' UTF-16 is not a valid TOML encoding at ${s.pos} (${s.line_nr},${s.col}) near ...${s.excerpt(s.pos, 5)}...')
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user