ソースを参照

Don't allow whitespace inside of string literals

pull/16/merge
Max Brunsfeld 8年前
コミット
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( choice(
$.escape_sequence, $.escape_sequence,
/[^\n']/
token.immediate(/[^\n']/)
), ),
'\'' '\''
), ),
@ -690,13 +690,13 @@ module.exports = grammar({
string_literal: $ => seq( string_literal: $ => seq(
'"', '"',
repeat(choice( repeat(choice(
token(prec(1, /[^\\"\n]/)),
token.immediate(prec(1, /[^\\"\n]/)),
$.escape_sequence $.escape_sequence
)), )),
'"' '"'
), ),
escape_sequence: $ => token(seq(
escape_sequence: $ => token.immediate(seq(
'\\', '\\',
choice( choice(
/[^xuU]/, /[^xuU]/,

+ 7
- 4
src/grammar.json ファイルの表示

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

+ 33404
- 33390
src/parser.c
ファイル差分が大きすぎるため省略します
ファイルの表示


読み込み中…
キャンセル
保存