Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tree-sitter-json

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tree-sitter-json - npm Package Compare versions

Comparing version 0.1.0 to 0.4.1

34

corpus/main.txt

@@ -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 @@

4

package.json
{
"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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc