Procházet zdrojové kódy

Merge pull request #127 from lf-/jade/unicode-ids

fix: implement Unicode identifiers
pull/134/head
Yoann Padioleau před 3 roky
odevzdal GitHub
rodič
revize
735716c926
V databázi nebyl nalezen žádný známý klíč pro tento podpis ID GPG klíče: 4AEE18F83AFDEB23
4 změnil soubory, kde provedl 5751 přidání a 85 odebrání
  1. +1
    -1
      grammar.js
  2. +1
    -1
      src/grammar.json
  3. +5730
    -83
      src/parser.c
  4. +19
    -0
      test/corpus/expressions.txt

+ 1
- 1
grammar.js Zobrazit soubor

@ -982,7 +982,7 @@ module.exports = grammar({
false: $ => token(choice('FALSE', 'false')), false: $ => token(choice('FALSE', 'false')),
null: $ => 'NULL', null: $ => 'NULL',
identifier: $ => /[a-zA-Z_]\w*/,
identifier: $ => /(\p{XID_Start}|_)\p{XID_Continue}*/,
_type_identifier: $ => alias($.identifier, $.type_identifier), _type_identifier: $ => alias($.identifier, $.type_identifier),
_field_identifier: $ => alias($.identifier, $.field_identifier), _field_identifier: $ => alias($.identifier, $.field_identifier),

+ 1
- 1
src/grammar.json Zobrazit soubor

@ -6425,7 +6425,7 @@
}, },
"identifier": { "identifier": {
"type": "PATTERN", "type": "PATTERN",
"value": "[a-zA-Z_]\\w*"
"value": "(\\p{XID_Start}|_)\\p{XID_Continue}*"
}, },
"_type_identifier": { "_type_identifier": {
"type": "ALIAS", "type": "ALIAS",

+ 5730
- 83
src/parser.c
Diff nebyl zobrazen, protože je příliš veliký
Zobrazit soubor


+ 19
- 0
test/corpus/expressions.txt Zobrazit soubor

@ -52,6 +52,25 @@ int main() {
--- ---
(translation_unit
(function_definition
(primitive_type)
(function_declarator (identifier) (parameter_list))
(compound_statement
(expression_statement (identifier))
(expression_statement (identifier)))))
============================================
Unicode Identifiers
============================================
int main() {
µs;
blah_accenté;
}
---
(translation_unit (translation_unit
(function_definition (function_definition
(primitive_type) (primitive_type)

Načítá se…
Zrušit
Uložit