Changes
2 changed files (+75/-3)
-
-
@@ -243,11 +243,17 @@ real: $ => /\d+(\.\d+)?([eE][+-]?\d+)?f?/,regex: $ => /\/([^\\\/\n]|\\[\\\/A-z0|\[\]^$?.(){}+\-*])+\/[gmxsu]*/, string: $ => seq( '"', repeat(choice(token(prec(2, /[^"%\\]+/)), $.escape_sequence, $.string_formatter, /%[^$#0\- +'I\d\\.hlqLjzZtdiouxXeEfFgGaAcsCSpnm%]/)), repeat(choice( token(prec(2, /[^"%\\]+/)), $.escape_sequence, /\\[^abefnrtv\\'"? xXuU]/, $.string_formatter, /%[^$#0\- +'I\d\\.hlqLjzZtdiouxXeEfFgGaAcsCSpnm%"]/ )), token(prec(2, '"')) ), escape_sequence: $ => /\\([abefnrtv\\'"?]|[0-7]{3}|[xX][A-Fa-f0-9]{2}|[uU][A-Fa-f0-9]{4,8})/, string_formatter: $ => /%\$?[#0\- +'I]?\d*(\.\d+)?(hh?|ll?|q|L|j|z|Z|t)?[diouxXeEfFgGaAcsCSpnm%]/, escape_sequence: $ => /\\([abefnrtv\\'"? ]|[0-7]{3}|[xX][A-Fa-f0-9]{2}|[uU][A-Fa-f0-9]{4,8})/, string_formatter: $ => /%\$?[#0\- +'I]?\d*(\.\d+)?(hh?|ll?|q|L|j|z|Z|t)?[diouxXeEfFgGaAcsCSpnm%]?/, template_string: $ => seq( '@"', repeat(choice(token(prec(2, /([^$"]+|\\")+/)), $.template_string_expression, '$$')),
-
-
test/corpus/strings.txt (new)
-
@@ -0,0 +1,66 @@======= Strings ======= string x; string fmt; x = "hello, world"; x = "hello, %s"; x = "your name:\t %s"; x = "the time: %" + fmt; x = "location: C:\\Users"; --- (source_file (namespace_member (field_declaration (type (symbol (identifier))) (identifier))) (namespace_member (field_declaration (type (symbol (identifier))) (identifier))) (expression_statement (assignment_expression (member_access_expression (identifier)) (literal (string)))) (expression_statement (assignment_expression (member_access_expression (identifier)) (literal (string (string_formatter))))) (expression_statement (assignment_expression (member_access_expression (identifier)) (literal (string (escape_sequence) (string_formatter))))) (expression_statement (assignment_expression (member_access_expression (identifier)) (arithmetic_expression (literal (string (string_formatter))) (member_access_expression (identifier))))) (expression_statement (assignment_expression (member_access_expression (identifier)) (literal (string (escape_sequence))))))
-