UNPKG

tree-sitter-nuon

Version:
1,218 lines 27.1 kB
{ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "nuon", "inherits": "json", "word": "identifier", "rules": { "document": { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_value" } ] } }, "_value": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "list" }, { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "null" }, { "type": "SYMBOL", "name": "_nuon_value" } ] }, "pair": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "key", "content": { "type": "SYMBOL", "name": "string" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_value" } } ] }, "array": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_value" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_value" } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "]" } ] }, "string": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "STRING", "value": "\"" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "SYMBOL", "name": "string_content" }, { "type": "STRING", "value": "\"" } ] } ] }, { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "identifier" } } ] }, "string_content": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": "[^\\\\\"\\n]+" } } }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, "escape_sequence": { "type": "IMMEDIATE_TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "PATTERN", "value": "(\\\"|\\\\|\\/|b|f|n|r|t|u)" } ] } }, "number": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "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": "STRING", "value": "-" }, { "type": "BLANK" } ] }, { "type": "PATTERN", "value": "\\d+" } ] } ] }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "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": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "e" }, { "type": "STRING", "value": "E" } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "-" }, { "type": "BLANK" } ] }, { "type": "PATTERN", "value": "\\d+" } ] } ] }, { "type": "BLANK" } ] } ] } ] } }, "true": { "type": "STRING", "value": "true" }, "false": { "type": "STRING", "value": "false" }, "null": { "type": "STRING", "value": "null" }, "comment": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "#" }, { "type": "PATTERN", "value": ".*" } ] } }, "table_header": { "type": "PREC", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "identifier" } ] } } ] }, { "type": "STRING", "value": "]" }, { "type": "STRING", "value": ";" } ] } }, "table_values": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_value" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_value" } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "]" } ] }, "table": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "head", "content": { "type": "SYMBOL", "name": "table_header" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "table_values" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] } }, { "type": "STRING", "value": "]" } ] }, "duration_unit": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "ns" }, { "type": "STRING", "value": "µs" }, { "type": "STRING", "value": "us" }, { "type": "STRING", "value": "ms" }, { "type": "STRING", "value": "sec" }, { "type": "STRING", "value": "min" }, { "type": "STRING", "value": "hr" }, { "type": "STRING", "value": "day" }, { "type": "STRING", "value": "wk" } ] } }, "filesize_unit": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "b" }, { "type": "STRING", "value": "B" }, { "type": "STRING", "value": "kb" }, { "type": "STRING", "value": "kB" }, { "type": "STRING", "value": "Kb" }, { "type": "STRING", "value": "KB" }, { "type": "STRING", "value": "mb" }, { "type": "STRING", "value": "mB" }, { "type": "STRING", "value": "Mb" }, { "type": "STRING", "value": "MB" }, { "type": "STRING", "value": "gb" }, { "type": "STRING", "value": "gB" }, { "type": "STRING", "value": "Gb" }, { "type": "STRING", "value": "GB" }, { "type": "STRING", "value": "tb" }, { "type": "STRING", "value": "tB" }, { "type": "STRING", "value": "Tb" }, { "type": "STRING", "value": "TB" }, { "type": "STRING", "value": "pb" }, { "type": "STRING", "value": "pB" }, { "type": "STRING", "value": "Pb" }, { "type": "STRING", "value": "PB" }, { "type": "STRING", "value": "eb" }, { "type": "STRING", "value": "eB" }, { "type": "STRING", "value": "Eb" }, { "type": "STRING", "value": "EB" }, { "type": "STRING", "value": "kib" }, { "type": "STRING", "value": "kiB" }, { "type": "STRING", "value": "kIB" }, { "type": "STRING", "value": "kIb" }, { "type": "STRING", "value": "Kib" }, { "type": "STRING", "value": "KIb" }, { "type": "STRING", "value": "KIB" }, { "type": "STRING", "value": "mib" }, { "type": "STRING", "value": "miB" }, { "type": "STRING", "value": "mIB" }, { "type": "STRING", "value": "mIb" }, { "type": "STRING", "value": "Mib" }, { "type": "STRING", "value": "MIb" }, { "type": "STRING", "value": "MIB" }, { "type": "STRING", "value": "gib" }, { "type": "STRING", "value": "giB" }, { "type": "STRING", "value": "gIB" }, { "type": "STRING", "value": "gIb" }, { "type": "STRING", "value": "Gib" }, { "type": "STRING", "value": "GIb" }, { "type": "STRING", "value": "GIB" }, { "type": "STRING", "value": "tib" }, { "type": "STRING", "value": "tiB" }, { "type": "STRING", "value": "tIB" }, { "type": "STRING", "value": "tIb" }, { "type": "STRING", "value": "Tib" }, { "type": "STRING", "value": "TIb" }, { "type": "STRING", "value": "TIB" }, { "type": "STRING", "value": "pib" }, { "type": "STRING", "value": "piB" }, { "type": "STRING", "value": "pIB" }, { "type": "STRING", "value": "pIb" }, { "type": "STRING", "value": "Pib" }, { "type": "STRING", "value": "PIb" }, { "type": "STRING", "value": "PIB" }, { "type": "STRING", "value": "eib" }, { "type": "STRING", "value": "eiB" }, { "type": "STRING", "value": "eIB" }, { "type": "STRING", "value": "eIb" }, { "type": "STRING", "value": "Eib" }, { "type": "STRING", "value": "EIb" }, { "type": "STRING", "value": "EIB" } ] }, "binary": { "type": "SEQ", "members": [ { "type": "STRING", "value": "0x" }, { "type": "PATTERN", "value": "\\[" }, { "type": "REPEAT1", "content": { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-9a-fA-F]{2}" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] } }, { "type": "PATTERN", "value": "\\]" } ] }, "filesize": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "number" } }, { "type": "FIELD", "name": "unit", "content": { "type": "SYMBOL", "name": "filesize_unit" } } ] }, "duration": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "number" } }, { "type": "FIELD", "name": "unit", "content": { "type": "SYMBOL", "name": "duration_unit" } } ] }, "_bool": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "true" }, { "type": "SYMBOL", "name": "false" } ] }, "date": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[0-9]{4}-[0-9]{2}-[0-9]{2}", "flags": "i" }, { "type": "PATTERN", "value": "[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?([Zz]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?" } ] } }, "_nuon_value": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "filesize" }, { "type": "SYMBOL", "name": "record" }, { "type": "SYMBOL", "name": "table" }, { "type": "SYMBOL", "name": "duration" }, { "type": "SYMBOL", "name": "_bool" }, { "type": "SYMBOL", "name": "date" }, { "type": "SYMBOL", "name": "binary" } ] }, "identifier": { "type": "TOKEN", "content": { "type": "FIELD", "name": "variable", "content": { "type": "PATTERN", "value": "[A-Za-z_\\.\\-]+[A-Za-z0-9_\\.\\-]*" } } }, "list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_value" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_value" } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "]" } ] }, "record": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "pair" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "pair" } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] } }, "extras": [ { "type": "PATTERN", "value": "\\s" }, { "type": "SYMBOL", "name": "comment" }, { "type": "PATTERN", "value": "\\s" }, { "type": "SYMBOL", "name": "comment" } ], "conflicts": [], "precedences": [], "externals": [], "inline": [], "supertypes": [ "_value" ], "reserved": {} }