Просмотр исходного кода

Don't allow whitespace inside of string literals

pull/16/merge
Max Brunsfeld 8 лет назад
Родитель
Сommit
9e8ac821e4
3 измененных файлов: 33414 добавлений и 33397 удалений
  1. +3
    -3
      grammar.js
  2. +7
    -4
      src/grammar.json
  3. +33404
    -33390
      src/parser.c

+ 3
- 3
grammar.js Просмотреть файл

@ -677,7 +677,7 @@ module.exports = grammar({
'\'',
choice(
$.escape_sequence,
/[^\n']/
token.immediate(/[^\n']/)
),
'\''
),
@ -690,13 +690,13 @@ module.exports = grammar({
string_literal: $ => seq(
'"',
repeat(choice(
token(prec(1, /[^\\"\n]/)),
token.immediate(prec(1, /[^\\"\n]/)),
$.escape_sequence
)),
'"'
),
escape_sequence: $ => token(seq(
escape_sequence: $ => token.immediate(seq(
'\\',
choice(
/[^xuU]/,

+ 7
- 4
src/grammar.json Просмотреть файл

@ -4027,8 +4027,11 @@
"name": "escape_sequence"
},
{
"type": "PATTERN",
"value": "[^\\n']"
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[^\\n']"
}
}
]
},
@ -4067,7 +4070,7 @@
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
@ -4091,7 +4094,7 @@
]
},
"escape_sequence": {
"type": "TOKEN",
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "SEQ",
"members": [

+ 33404
- 33390
src/parser.c
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Загрузка…
Отмена
Сохранить