tree-sitter-json
Advanced tools
Comparing version 0.1.0 to 0.4.1
@@ -7,2 +7,5 @@ =================== | ||
345, | ||
10.1, | ||
10, | ||
-10, | ||
null, | ||
@@ -16,8 +19,11 @@ true, | ||
(array | ||
(value (array | ||
(number) | ||
(number) | ||
(number) | ||
(number) | ||
(null) | ||
(true) | ||
(false) | ||
(object (pair (string) (string)))) | ||
(object (pair (string) (string))))) | ||
@@ -35,4 +41,24 @@ =================== | ||
(object | ||
(value (object | ||
(pair (string) (string)) | ||
(pair (string) (number))) | ||
(pair (string) (number)))) | ||
================================ | ||
Top-level numbers | ||
================================ | ||
-1 | ||
--- | ||
(value (number)) | ||
================================ | ||
Top-level null | ||
================================ | ||
null | ||
--- | ||
(value (null)) |
@@ -9,2 +9,4 @@ module.exports = grammar({ | ||
rules: { | ||
value: $ => $._value, | ||
_value: $ => choice( | ||
@@ -36,13 +38,38 @@ $.object, | ||
number: $ => token(choice( | ||
seq( | ||
"0x", | ||
number: $ => { | ||
const hex_literal = seq( | ||
choice('0x', '0X'), | ||
/[\da-fA-F]+/ | ||
), | ||
seq( | ||
/\d+/, | ||
optional(seq(".", /\d*/)) | ||
) | ||
)), | ||
const decimal_digits = /\d+/ | ||
const signed_integer = seq(optional(choice('-','+')), decimal_digits) | ||
const exponent_part = seq(choice('e', 'E'), signed_integer) | ||
const binary_literal = seq(choice('0b', '0B'), /[0-1]+/) | ||
const octal_literal = seq(choice('0o', '0O'), /[0-7]+/) | ||
const decimal_integer_literal = seq( | ||
optional(choice('-','+')), | ||
choice( | ||
'0', | ||
seq(/[1-9]/, optional(decimal_digits)) | ||
) | ||
) | ||
const decimal_literal = choice( | ||
seq(decimal_integer_literal, '.', optional(decimal_digits), optional(exponent_part)), | ||
seq('.', decimal_digits, optional(exponent_part)), | ||
seq(decimal_integer_literal, optional(exponent_part)) | ||
) | ||
return token(choice( | ||
hex_literal, | ||
decimal_literal, | ||
binary_literal, | ||
octal_literal | ||
)) | ||
}, | ||
true: $ => "true", | ||
@@ -49,0 +76,0 @@ |
{ | ||
"name": "tree-sitter-json", | ||
"version": "0.1.0", | ||
"version": "0.4.1", | ||
"description": "JSON grammar for node-tree-sitter", | ||
@@ -16,3 +16,3 @@ "main": "index.js", | ||
"devDependencies": { | ||
"tree-sitter-cli": "^0.6.6" | ||
"tree-sitter-cli": "^0.7.4" | ||
}, | ||
@@ -19,0 +19,0 @@ "scripts": { |
{ | ||
"name": "json", | ||
"rules": { | ||
"value": { | ||
"type": "SYMBOL", | ||
"name": "_value" | ||
}, | ||
"_value": { | ||
@@ -196,4 +200,13 @@ "type": "CHOICE", | ||
{ | ||
"type": "STRING", | ||
"value": "0x" | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "0x" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "0X" | ||
} | ||
] | ||
}, | ||
@@ -207,21 +220,262 @@ { | ||
{ | ||
"type": "SEQ", | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "PATTERN", | ||
"value": "\\d+" | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "-" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "+" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "0" | ||
}, | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "PATTERN", | ||
"value": "[1-9]" | ||
}, | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "PATTERN", | ||
"value": "\\d+" | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
] | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "." | ||
}, | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "PATTERN", | ||
"value": "\\d+" | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "e" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "E" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "-" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "+" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "PATTERN", | ||
"value": "\\d+" | ||
} | ||
] | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "CHOICE", | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "." | ||
}, | ||
{ | ||
"type": "PATTERN", | ||
"value": "\\d+" | ||
}, | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "e" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "E" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "-" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "+" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "PATTERN", | ||
"value": "\\d+" | ||
} | ||
] | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "." | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "-" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "+" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "PATTERN", | ||
"value": "\\d*" | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "0" | ||
}, | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "PATTERN", | ||
"value": "[1-9]" | ||
}, | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "PATTERN", | ||
"value": "\\d+" | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
] | ||
} | ||
@@ -231,3 +485,56 @@ ] | ||
{ | ||
"type": "BLANK" | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "e" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "E" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "-" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "+" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "PATTERN", | ||
"value": "\\d+" | ||
} | ||
] | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "BLANK" | ||
} | ||
] | ||
} | ||
@@ -237,2 +544,46 @@ ] | ||
] | ||
}, | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "0b" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "0B" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "PATTERN", | ||
"value": "[0-1]+" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "SEQ", | ||
"members": [ | ||
{ | ||
"type": "CHOICE", | ||
"members": [ | ||
{ | ||
"type": "STRING", | ||
"value": "0o" | ||
}, | ||
{ | ||
"type": "STRING", | ||
"value": "0O" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "PATTERN", | ||
"value": "[0-7]+" | ||
} | ||
] | ||
} | ||
@@ -239,0 +590,0 @@ ] |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
49463
687
14