| { |
| "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", |
| "name": "devicetree", |
| "rules": { |
| "document": { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_top_level_item" |
| } |
| }, |
| "_top_level_item": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "file_version" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "plugin" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "memory_reservation" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "omit_if_no_ref" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "node" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "dtsi_include" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "delete_node" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_include" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_def" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_function_def" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_if" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_ifdef" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_undef" |
| } |
| ] |
| }, |
| "_label": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "label", |
| "content": { |
| "type": "SYMBOL", |
| "name": "label_identifier" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": ":" |
| } |
| ] |
| }, |
| "file_version": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "/dts-v1/" |
| }, |
| { |
| "type": "STRING", |
| "value": ";" |
| } |
| ] |
| }, |
| "plugin": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "/plugin/" |
| }, |
| { |
| "type": "STRING", |
| "value": ";" |
| } |
| ] |
| }, |
| "memory_reservation": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_label" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": "/memreserve/" |
| }, |
| { |
| "type": "FIELD", |
| "name": "address", |
| "content": { |
| "type": "SYMBOL", |
| "name": "integer_literal" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "length", |
| "content": { |
| "type": "SYMBOL", |
| "name": "integer_literal" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": ";" |
| } |
| ] |
| }, |
| "comment": { |
| "type": "TOKEN", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "//" |
| }, |
| { |
| "type": "PATTERN", |
| "value": "(\\\\(.|\\r?\\n)|[^\\\\\\n])*" |
| } |
| ] |
| }, |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "/*" |
| }, |
| { |
| "type": "PATTERN", |
| "value": "[^*]*\\*+([^/*][^*]*\\*+)*" |
| }, |
| { |
| "type": "STRING", |
| "value": "/" |
| } |
| ] |
| } |
| ] |
| } |
| }, |
| "_node_path": { |
| "type": "PATTERN", |
| "value": "\\/[0-9a-zA-Z/,._+-]*" |
| }, |
| "_label_name": { |
| "type": "PREC", |
| "value": 3, |
| "content": { |
| "type": "PATTERN", |
| "value": "[a-zA-Z_][0-9a-zA-Z_]*" |
| } |
| }, |
| "_node_name": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "[0-9a-zA-Z,._+-]+" |
| } |
| }, |
| "_property_name": { |
| "type": "PREC", |
| "value": 1, |
| "content": { |
| "type": "PATTERN", |
| "value": "[0-9a-zA-Z,._+?#-]+" |
| } |
| }, |
| "unit_address": { |
| "type": "PATTERN", |
| "value": "[0-9a-zA-Z,._+-]+" |
| }, |
| "label_identifier": { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_label_name" |
| }, |
| "named": true, |
| "value": "identifier" |
| }, |
| "node_identifier": { |
| "type": "ALIAS", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "_node_name" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "_label_name" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "_node_path" |
| } |
| ] |
| }, |
| "named": true, |
| "value": "identifier" |
| }, |
| "property_identifier": { |
| "type": "ALIAS", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "_node_name" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "_property_name" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "_label_name" |
| } |
| ] |
| }, |
| "named": true, |
| "value": "identifier" |
| }, |
| "reference": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "_label_reference" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "_node_reference" |
| } |
| ] |
| }, |
| "_label_reference": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "&" |
| }, |
| { |
| "type": "FIELD", |
| "name": "label", |
| "content": { |
| "type": "SYMBOL", |
| "name": "label_identifier" |
| } |
| } |
| ] |
| }, |
| "path_node": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "/" |
| }, |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_node_name" |
| }, |
| "named": true, |
| "value": "identifier" |
| } |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "@" |
| }, |
| { |
| "type": "FIELD", |
| "name": "address", |
| "content": { |
| "type": "SYMBOL", |
| "name": "unit_address" |
| } |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| ] |
| }, |
| "path": { |
| "type": "REPEAT1", |
| "content": { |
| "type": "SYMBOL", |
| "name": "path_node" |
| } |
| }, |
| "_node_reference": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "&{" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "path" |
| }, |
| { |
| "type": "STRING", |
| "value": "}" |
| } |
| ] |
| }, |
| "omit_if_no_ref": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "/omit-if-no-ref/" |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "node" |
| }, |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "reference" |
| }, |
| { |
| "type": "STRING", |
| "value": ";" |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| "node": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_label" |
| } |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "reference" |
| } |
| }, |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "node_identifier" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "address", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "@" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "unit_address" |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "type": "STRING", |
| "value": "{" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_node_members" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": "}" |
| }, |
| { |
| "type": "STRING", |
| "value": ";" |
| } |
| ] |
| }, |
| "_bits": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "/bits/" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "integer_literal" |
| } |
| ] |
| }, |
| "property": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_label" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "property_identifier" |
| } |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "=" |
| }, |
| { |
| "type": "FIELD", |
| "name": "bits", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "_bits" |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "value", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "_property_value" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "," |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "_property_value" |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| }, |
| { |
| "type": "STRING", |
| "value": ";" |
| } |
| ] |
| }, |
| "_node_members": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "delete_property" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "delete_node" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "omit_if_no_ref" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "node" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "property" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_include" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_def" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_function_def" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_if_in_node" |
| }, |
| "named": true, |
| "value": "preproc_if" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_ifdef_in_node" |
| }, |
| "named": true, |
| "value": "preproc_ifdef" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_undef" |
| } |
| ] |
| }, |
| "delete_node": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "STRING", |
| "value": "/delete-node/" |
| } |
| } |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "reference" |
| } |
| }, |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "node_identifier" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "address", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "@" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "unit_address" |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "type": "STRING", |
| "value": ";" |
| } |
| ] |
| }, |
| "delete_property": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "STRING", |
| "value": "/delete-property/" |
| } |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "property_identifier" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": ";" |
| } |
| ] |
| }, |
| "incbin": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "/incbin/" |
| }, |
| { |
| "type": "STRING", |
| "value": "(" |
| }, |
| { |
| "type": "FIELD", |
| "name": "filename", |
| "content": { |
| "type": "SYMBOL", |
| "name": "string_literal" |
| } |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "," |
| }, |
| { |
| "type": "FIELD", |
| "name": "offset", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_integer_cell_items" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": "," |
| }, |
| { |
| "type": "FIELD", |
| "name": "size", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_integer_cell_items" |
| } |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| }, |
| { |
| "type": "STRING", |
| "value": ")" |
| } |
| ] |
| }, |
| "_property_value": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "integer_cells" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "string_literal" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "byte_string_literal" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "reference" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "incbin" |
| } |
| ] |
| }, |
| "integer_cells": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "<" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_integer_cell_items" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": ">" |
| } |
| ] |
| }, |
| "_integer_cell_items": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "integer_literal" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "reference" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "parenthesized_expression" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "identifier" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "call_expression" |
| } |
| ] |
| }, |
| "string_literal": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "\"" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "IMMEDIATE_TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 1, |
| "content": { |
| "type": "PATTERN", |
| "value": "[^\\\\\"\\n]+" |
| } |
| } |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "escape_sequence" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": "\"" |
| } |
| ] |
| }, |
| "escape_sequence": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 1, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "\\" |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "PATTERN", |
| "value": "[^xuU]" |
| }, |
| { |
| "type": "PATTERN", |
| "value": "\\d{2,3}" |
| }, |
| { |
| "type": "PATTERN", |
| "value": "x[0-9a-fA-F]{2,}" |
| }, |
| { |
| "type": "PATTERN", |
| "value": "u[0-9a-fA-F]{4}" |
| }, |
| { |
| "type": "PATTERN", |
| "value": "U[0-9a-fA-F]{8}" |
| } |
| ] |
| } |
| ] |
| } |
| } |
| }, |
| "system_lib_string": { |
| "type": "TOKEN", |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "<" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "PATTERN", |
| "value": "[^>\\n]" |
| }, |
| { |
| "type": "STRING", |
| "value": "\\>" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": ">" |
| } |
| ] |
| } |
| }, |
| "byte_string_literal": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "[" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_byte_string_item" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": "]" |
| } |
| ] |
| }, |
| "_byte_string_item": { |
| "type": "PATTERN", |
| "value": "[0-9a-fA-F]+" |
| }, |
| "integer_literal": { |
| "type": "TOKEN", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "REPEAT1", |
| "content": { |
| "type": "PATTERN", |
| "value": "[0-9]" |
| } |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "'" |
| }, |
| { |
| "type": "REPEAT1", |
| "content": { |
| "type": "PATTERN", |
| "value": "[0-9]" |
| } |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "0b" |
| }, |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "REPEAT1", |
| "content": { |
| "type": "PATTERN", |
| "value": "[0-9]" |
| } |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "'" |
| }, |
| { |
| "type": "REPEAT1", |
| "content": { |
| "type": "PATTERN", |
| "value": "[0-9]" |
| } |
| } |
| ] |
| } |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "0x" |
| }, |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "REPEAT1", |
| "content": { |
| "type": "PATTERN", |
| "value": "[0-9a-fA-F]" |
| } |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "'" |
| }, |
| { |
| "type": "REPEAT1", |
| "content": { |
| "type": "PATTERN", |
| "value": "[0-9a-fA-F]" |
| } |
| } |
| ] |
| } |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| }, |
| "identifier": { |
| "type": "PATTERN", |
| "value": "[a-zA-Z_]\\w*" |
| }, |
| "_expression": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "conditional_expression" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "binary_expression" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "unary_expression" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "call_expression" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "identifier" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "integer_literal" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "parenthesized_expression" |
| } |
| ] |
| }, |
| "parenthesized_expression": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "(" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "_expression" |
| }, |
| { |
| "type": "STRING", |
| "value": ")" |
| } |
| ] |
| }, |
| "call_expression": { |
| "type": "PREC", |
| "value": 14, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "function", |
| "content": { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "arguments", |
| "content": { |
| "type": "SYMBOL", |
| "name": "argument_list" |
| } |
| } |
| ] |
| } |
| }, |
| "argument_list": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "(" |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "_expression" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "," |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| }, |
| { |
| "type": "STRING", |
| "value": ")" |
| } |
| ] |
| }, |
| "conditional_expression": { |
| "type": "PREC_RIGHT", |
| "value": -2, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "condition", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": "?" |
| }, |
| { |
| "type": "FIELD", |
| "name": "consequence", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": ":" |
| }, |
| { |
| "type": "FIELD", |
| "name": "alternative", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| "unary_expression": { |
| "type": "PREC_LEFT", |
| "value": 13, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "!" |
| }, |
| { |
| "type": "STRING", |
| "value": "~" |
| }, |
| { |
| "type": "STRING", |
| "value": "-" |
| }, |
| { |
| "type": "STRING", |
| "value": "+" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "argument", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| "binary_expression": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "PREC_LEFT", |
| "value": 10, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "+" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 10, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "-" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 11, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "*" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 11, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "/" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 11, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "%" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 1, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "||" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 2, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "&&" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 3, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "|" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 4, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "^" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 5, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "&" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 6, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "==" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 6, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "!=" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 7, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": ">" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 7, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": ">=" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 7, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "<=" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 7, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "<" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 9, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "<<" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 9, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": ">>" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_expression" |
| } |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| "dtsi_include": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "/include/" |
| }, |
| { |
| "type": "FIELD", |
| "name": "path", |
| "content": { |
| "type": "SYMBOL", |
| "name": "string_literal" |
| } |
| } |
| ] |
| }, |
| "preproc_include": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*include" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#include" |
| }, |
| { |
| "type": "FIELD", |
| "name": "path", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "string_literal" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "system_lib_string" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "IMMEDIATE_TOKEN", |
| "content": { |
| "type": "PATTERN", |
| "value": "\\r?\\n" |
| } |
| } |
| ] |
| }, |
| "preproc_def": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*define" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#define" |
| }, |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "value", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "preproc_arg" |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "IMMEDIATE_TOKEN", |
| "content": { |
| "type": "PATTERN", |
| "value": "\\r?\\n" |
| } |
| } |
| ] |
| }, |
| "preproc_function_def": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*define" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#define" |
| }, |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "parameters", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_params" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "value", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "preproc_arg" |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "IMMEDIATE_TOKEN", |
| "content": { |
| "type": "PATTERN", |
| "value": "\\r?\\n" |
| } |
| } |
| ] |
| }, |
| "preproc_params": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "IMMEDIATE_TOKEN", |
| "content": { |
| "type": "STRING", |
| "value": "(" |
| } |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "identifier" |
| }, |
| { |
| "type": "STRING", |
| "value": "..." |
| } |
| ] |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "," |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "identifier" |
| }, |
| { |
| "type": "STRING", |
| "value": "..." |
| } |
| ] |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| }, |
| { |
| "type": "STRING", |
| "value": ")" |
| } |
| ] |
| }, |
| "preproc_undef": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*undef" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#undef" |
| }, |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| }, |
| { |
| "type": "IMMEDIATE_TOKEN", |
| "content": { |
| "type": "PATTERN", |
| "value": "\\r?\\n" |
| } |
| } |
| ] |
| }, |
| "preproc_arg": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": -1, |
| "content": { |
| "type": "REPEAT1", |
| "content": { |
| "type": "PATTERN", |
| "value": ".|\\\\\\r?\\n" |
| } |
| } |
| } |
| }, |
| "preproc_if": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*if" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#if" |
| }, |
| { |
| "type": "FIELD", |
| "name": "condition", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": "\n" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_top_level_item" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "alternative", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "preproc_else" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_elif" |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*endif" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#endif" |
| } |
| ] |
| }, |
| "preproc_ifdef": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*ifdef" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#ifdef" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*ifndef" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#ifndef" |
| } |
| ] |
| }, |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_top_level_item" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "alternative", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "preproc_else" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_elif" |
| } |
| ] |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_elifdef" |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*endif" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#endif" |
| } |
| ] |
| }, |
| "preproc_else": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*else" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#else" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_top_level_item" |
| } |
| } |
| ] |
| }, |
| "preproc_elif": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*elif" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#elif" |
| }, |
| { |
| "type": "FIELD", |
| "name": "condition", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": "\n" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_top_level_item" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "alternative", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "preproc_else" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_elif" |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| "preproc_elifdef": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*elifdef" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#elifdef" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*elifndef" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#elifndef" |
| } |
| ] |
| }, |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_top_level_item" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "alternative", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "preproc_else" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_elif" |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| "preproc_if_in_node": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*if" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#if" |
| }, |
| { |
| "type": "FIELD", |
| "name": "condition", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": "\n" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_node_members" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "alternative", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_else_in_node" |
| }, |
| "named": true, |
| "value": "preproc_else" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_elif_in_node" |
| }, |
| "named": true, |
| "value": "preproc_elif" |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*endif" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#endif" |
| } |
| ] |
| }, |
| "preproc_ifdef_in_node": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*ifdef" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#ifdef" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*ifndef" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#ifndef" |
| } |
| ] |
| }, |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_node_members" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "alternative", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_else_in_node" |
| }, |
| "named": true, |
| "value": "preproc_else" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_elif_in_node" |
| }, |
| "named": true, |
| "value": "preproc_elif" |
| } |
| ] |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_elifdef" |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*endif" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#endif" |
| } |
| ] |
| }, |
| "preproc_else_in_node": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*else" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#else" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_node_members" |
| } |
| } |
| ] |
| }, |
| "preproc_elif_in_node": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*elif" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#elif" |
| }, |
| { |
| "type": "FIELD", |
| "name": "condition", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "STRING", |
| "value": "\n" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_node_members" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "alternative", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_else_in_node" |
| }, |
| "named": true, |
| "value": "preproc_else" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_elif_in_node" |
| }, |
| "named": true, |
| "value": "preproc_elif" |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| "preproc_elifdef_in_node": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*elifdef" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#elifdef" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "TOKEN", |
| "content": { |
| "type": "PREC", |
| "value": 2, |
| "content": { |
| "type": "PATTERN", |
| "value": "#[ \t]*elifndef" |
| } |
| } |
| }, |
| "named": false, |
| "value": "#elifndef" |
| } |
| ] |
| }, |
| { |
| "type": "FIELD", |
| "name": "name", |
| "content": { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_node_members" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "alternative", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_else_in_node" |
| }, |
| "named": true, |
| "value": "preproc_else" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_elif_in_node" |
| }, |
| "named": true, |
| "value": "preproc_elif" |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| "_preproc_expression": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "identifier" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_call_expression" |
| }, |
| "named": true, |
| "value": "call_expression" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "integer_literal" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "preproc_defined" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_unary_expression" |
| }, |
| "named": true, |
| "value": "unary_expression" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_binary_expression" |
| }, |
| "named": true, |
| "value": "binary_expression" |
| }, |
| { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_parenthesized_expression" |
| }, |
| "named": true, |
| "value": "parenthesized_expression" |
| } |
| ] |
| }, |
| "preproc_parenthesized_expression": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "(" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| }, |
| { |
| "type": "STRING", |
| "value": ")" |
| } |
| ] |
| }, |
| "preproc_defined": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "PREC", |
| "value": 14, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "defined" |
| }, |
| { |
| "type": "STRING", |
| "value": "(" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "identifier" |
| }, |
| { |
| "type": "STRING", |
| "value": ")" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "defined" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| ] |
| } |
| ] |
| }, |
| "preproc_unary_expression": { |
| "type": "PREC_LEFT", |
| "value": 13, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "!" |
| }, |
| { |
| "type": "STRING", |
| "value": "~" |
| }, |
| { |
| "type": "STRING", |
| "value": "-" |
| }, |
| { |
| "type": "STRING", |
| "value": "+" |
| } |
| ] |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "argument", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| "preproc_call_expression": { |
| "type": "PREC", |
| "value": 14, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "function", |
| "content": { |
| "type": "SYMBOL", |
| "name": "identifier" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "arguments", |
| "content": { |
| "type": "ALIAS", |
| "content": { |
| "type": "SYMBOL", |
| "name": "preproc_argument_list" |
| }, |
| "named": true, |
| "value": "argument_list" |
| } |
| } |
| ] |
| } |
| }, |
| "preproc_argument_list": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "(" |
| }, |
| { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| }, |
| { |
| "type": "REPEAT", |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "STRING", |
| "value": "," |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| ] |
| } |
| } |
| ] |
| }, |
| { |
| "type": "BLANK" |
| } |
| ] |
| }, |
| { |
| "type": "STRING", |
| "value": ")" |
| } |
| ] |
| }, |
| "preproc_binary_expression": { |
| "type": "CHOICE", |
| "members": [ |
| { |
| "type": "PREC_LEFT", |
| "value": 10, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "+" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 10, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "-" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 11, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "*" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 11, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "/" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 11, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "%" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 1, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "||" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 2, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "&&" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 3, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "|" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 4, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "^" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 5, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "&" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 6, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "==" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 6, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "!=" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 7, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": ">" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 7, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": ">=" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 7, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "<=" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 7, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "<" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 9, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": "<<" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| }, |
| { |
| "type": "PREC_LEFT", |
| "value": 9, |
| "content": { |
| "type": "SEQ", |
| "members": [ |
| { |
| "type": "FIELD", |
| "name": "left", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "operator", |
| "content": { |
| "type": "STRING", |
| "value": ">>" |
| } |
| }, |
| { |
| "type": "FIELD", |
| "name": "right", |
| "content": { |
| "type": "SYMBOL", |
| "name": "_preproc_expression" |
| } |
| } |
| ] |
| } |
| } |
| ] |
| } |
| }, |
| "extras": [ |
| { |
| "type": "PATTERN", |
| "value": "\\s|\\\\\\r?\\n" |
| }, |
| { |
| "type": "SYMBOL", |
| "name": "comment" |
| } |
| ], |
| "conflicts": [], |
| "precedences": [], |
| "externals": [], |
| "inline": [ |
| "node_identifier", |
| "label_identifier", |
| "property_identifier", |
| "parenthesized_expression" |
| ], |
| "supertypes": [], |
| "reserved": {} |
| } |