diff --git a/lua/core/lazy_load.lua b/lua/core/lazy_load.lua index 049813d..eba5cfa 100644 --- a/lua/core/lazy_load.lua +++ b/lua/core/lazy_load.lua @@ -10,6 +10,7 @@ M.lazy_load = function(tb) callback = function() if tb.condition() then vim.api.nvim_del_augroup_by_name(tb.augroup_name) + require "impatient" -- dont defer for treesitter as it will show slow highlighting -- This deferring only happens only when we do "nvim filename" diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 0b7e7d9..361ef6a 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -226,10 +226,7 @@ local plugins = { -- Speed up deffered plugins ["lewis6991/impatient.nvim"] = { - event = "VimEnter", - config = function() - vim.defer_fn(function() require "impatient" end, 0) - end, + module = "impatient" }, } diff --git a/rplugin.vim b/rplugin.vim new file mode 100644 index 0000000..3beadb1 --- /dev/null +++ b/rplugin.vim @@ -0,0 +1,15 @@ +" perl plugins + + +" node plugins + + +" python3 plugins + + +" ruby plugins + + +" python plugins + + diff --git a/site/pack/packer/opt/Comment.nvim b/site/pack/packer/opt/Comment.nvim new file mode 160000 index 0000000..9b76787 --- /dev/null +++ b/site/pack/packer/opt/Comment.nvim @@ -0,0 +1 @@ +Subproject commit 9b76787e273567c0e3027304bd16ffedc751c04c diff --git a/site/pack/packer/opt/LuaSnip b/site/pack/packer/opt/LuaSnip new file mode 160000 index 0000000..ac27343 --- /dev/null +++ b/site/pack/packer/opt/LuaSnip @@ -0,0 +1 @@ +Subproject commit ac27343b52796a0aa1bb3db824d16e66d1def182 diff --git a/site/pack/packer/opt/cmp-buffer b/site/pack/packer/opt/cmp-buffer new file mode 160000 index 0000000..62fc67a --- /dev/null +++ b/site/pack/packer/opt/cmp-buffer @@ -0,0 +1 @@ +Subproject commit 62fc67a2b0205136bc3e312664624ba2ab4a9323 diff --git a/site/pack/packer/opt/cmp-nvim-lsp b/site/pack/packer/opt/cmp-nvim-lsp new file mode 160000 index 0000000..affe808 --- /dev/null +++ b/site/pack/packer/opt/cmp-nvim-lsp @@ -0,0 +1 @@ +Subproject commit affe808a5c56b71630f17aa7c38e15c59fd648a8 diff --git a/site/pack/packer/opt/cmp-nvim-lua b/site/pack/packer/opt/cmp-nvim-lua new file mode 160000 index 0000000..d276254 --- /dev/null +++ b/site/pack/packer/opt/cmp-nvim-lua @@ -0,0 +1 @@ +Subproject commit d276254e7198ab7d00f117e88e223b4bd8c02d21 diff --git a/site/pack/packer/opt/cmp-path b/site/pack/packer/opt/cmp-path new file mode 160000 index 0000000..447c87c --- /dev/null +++ b/site/pack/packer/opt/cmp-path @@ -0,0 +1 @@ +Subproject commit 447c87cdd6e6d6a1d2488b1d43108bfa217f56e1 diff --git a/site/pack/packer/opt/cmp_luasnip b/site/pack/packer/opt/cmp_luasnip new file mode 160000 index 0000000..a9de941 --- /dev/null +++ b/site/pack/packer/opt/cmp_luasnip @@ -0,0 +1 @@ +Subproject commit a9de941bcbda508d0a45d28ae366bb3f08db2e36 diff --git a/site/pack/packer/opt/extensions b/site/pack/packer/opt/extensions new file mode 160000 index 0000000..e82d9f5 --- /dev/null +++ b/site/pack/packer/opt/extensions @@ -0,0 +1 @@ +Subproject commit e82d9f5e612ade06202591ed76ecb095e946f7f8 diff --git a/site/pack/packer/opt/friendly-snippets b/site/pack/packer/opt/friendly-snippets new file mode 160000 index 0000000..7339def --- /dev/null +++ b/site/pack/packer/opt/friendly-snippets @@ -0,0 +1 @@ +Subproject commit 7339def34e46237eb7c9a893cb7d42dcb90e05e6 diff --git a/site/pack/packer/opt/gitsigns.nvim b/site/pack/packer/opt/gitsigns.nvim new file mode 160000 index 0000000..9c3ca02 --- /dev/null +++ b/site/pack/packer/opt/gitsigns.nvim @@ -0,0 +1 @@ +Subproject commit 9c3ca027661136a618c82275427746e481c84a4e diff --git a/site/pack/packer/opt/impatient.nvim b/site/pack/packer/opt/impatient.nvim new file mode 160000 index 0000000..4ccbe74 --- /dev/null +++ b/site/pack/packer/opt/impatient.nvim @@ -0,0 +1 @@ +Subproject commit 4ccbe749ce439fa25d387d459e8c339131cc5d1f diff --git a/site/pack/packer/opt/indent-blankline.nvim b/site/pack/packer/opt/indent-blankline.nvim new file mode 160000 index 0000000..c15bbe9 --- /dev/null +++ b/site/pack/packer/opt/indent-blankline.nvim @@ -0,0 +1 @@ +Subproject commit c15bbe9f23d88b5c0b4ca45a446e01a0a3913707 diff --git a/site/pack/packer/opt/mason.nvim b/site/pack/packer/opt/mason.nvim new file mode 160000 index 0000000..cd1af57 --- /dev/null +++ b/site/pack/packer/opt/mason.nvim @@ -0,0 +1 @@ +Subproject commit cd1af57253b3ac3652765e4d0f83b56802ec2a5f diff --git a/site/pack/packer/opt/nvim-autopairs b/site/pack/packer/opt/nvim-autopairs new file mode 160000 index 0000000..ca89ab9 --- /dev/null +++ b/site/pack/packer/opt/nvim-autopairs @@ -0,0 +1 @@ +Subproject commit ca89ab9e7e42aa9279f1cdad15398d6e18ccee86 diff --git a/site/pack/packer/opt/nvim-cmp b/site/pack/packer/opt/nvim-cmp new file mode 160000 index 0000000..706371f --- /dev/null +++ b/site/pack/packer/opt/nvim-cmp @@ -0,0 +1 @@ +Subproject commit 706371f1300e7c0acb98b346f80dad2dd9b5f679 diff --git a/site/pack/packer/opt/nvim-colorizer.lua b/site/pack/packer/opt/nvim-colorizer.lua new file mode 160000 index 0000000..8fe6ec2 --- /dev/null +++ b/site/pack/packer/opt/nvim-colorizer.lua @@ -0,0 +1 @@ +Subproject commit 8fe6ec269c6bcd19a7c2d69cb0bdcf8bb86a85fe diff --git a/site/pack/packer/opt/nvim-lspconfig b/site/pack/packer/opt/nvim-lspconfig new file mode 160000 index 0000000..6e047f1 --- /dev/null +++ b/site/pack/packer/opt/nvim-lspconfig @@ -0,0 +1 @@ +Subproject commit 6e047f11861bfb6ec28a6ad0138a8f0a62bb8806 diff --git a/site/pack/packer/opt/nvim-tree.lua b/site/pack/packer/opt/nvim-tree.lua new file mode 160000 index 0000000..ff6e796 --- /dev/null +++ b/site/pack/packer/opt/nvim-tree.lua @@ -0,0 +1 @@ +Subproject commit ff6e7966f39a897ac4d1358f4d022cfecdc88ff1 diff --git a/site/pack/packer/opt/nvim-treesitter b/site/pack/packer/opt/nvim-treesitter new file mode 160000 index 0000000..a9a6493 --- /dev/null +++ b/site/pack/packer/opt/nvim-treesitter @@ -0,0 +1 @@ +Subproject commit a9a6493b1eeba458757903352e0d3dc4b54fd4f2 diff --git a/site/pack/packer/opt/nvim-web-devicons b/site/pack/packer/opt/nvim-web-devicons new file mode 160000 index 0000000..2d02a56 --- /dev/null +++ b/site/pack/packer/opt/nvim-web-devicons @@ -0,0 +1 @@ +Subproject commit 2d02a56189e2bde11edd4712fea16f08a6656944 diff --git a/site/pack/packer/opt/nvterm b/site/pack/packer/opt/nvterm new file mode 160000 index 0000000..1317d62 --- /dev/null +++ b/site/pack/packer/opt/nvterm @@ -0,0 +1 @@ +Subproject commit 1317d6238f089e117e3ed98b3cecc37cc4364675 diff --git a/site/pack/packer/opt/packer.nvim b/site/pack/packer/opt/packer.nvim new file mode 160000 index 0000000..afab895 --- /dev/null +++ b/site/pack/packer/opt/packer.nvim @@ -0,0 +1 @@ +Subproject commit afab89594f4f702dc3368769c95b782dbdaeaf0a diff --git a/site/pack/packer/opt/plenary.nvim b/site/pack/packer/opt/plenary.nvim new file mode 160000 index 0000000..31807ee --- /dev/null +++ b/site/pack/packer/opt/plenary.nvim @@ -0,0 +1 @@ +Subproject commit 31807eef4ed574854b8a53ae40ea3292033a78ea diff --git a/site/pack/packer/opt/telescope.nvim b/site/pack/packer/opt/telescope.nvim new file mode 160000 index 0000000..4725867 --- /dev/null +++ b/site/pack/packer/opt/telescope.nvim @@ -0,0 +1 @@ +Subproject commit 4725867ec66b9a0f5e5ad95a1fd94c2f97fa2d2c diff --git a/site/pack/packer/opt/ui b/site/pack/packer/opt/ui new file mode 160000 index 0000000..bca1182 --- /dev/null +++ b/site/pack/packer/opt/ui @@ -0,0 +1 @@ +Subproject commit bca1182e872db0ea52d86b2f4cf4ee7cb092de45 diff --git a/site/pack/packer/opt/which-key.nvim b/site/pack/packer/opt/which-key.nvim new file mode 160000 index 0000000..bd4411a --- /dev/null +++ b/site/pack/packer/opt/which-key.nvim @@ -0,0 +1 @@ +Subproject commit bd4411a2ed4dd8bb69c125e339d837028a6eea71 diff --git a/site/pack/packer/start/base46 b/site/pack/packer/start/base46 new file mode 160000 index 0000000..dfdcff9 --- /dev/null +++ b/site/pack/packer/start/base46 @@ -0,0 +1 @@ +Subproject commit dfdcff9c6b2bd1ad3c364973a2497bf62c6f0f20 diff --git a/tree-sitter-c/.appveyor.yml b/tree-sitter-c/.appveyor.yml new file mode 100644 index 0000000..b21947b --- /dev/null +++ b/tree-sitter-c/.appveyor.yml @@ -0,0 +1,22 @@ +image: Visual Studio 2015 + +environment: + nodejs_version: "8" + +platform: + - x64 + +install: + - ps: Install-Product node $env:nodejs_version + - node --version + - npm --version + - npm install + +test_script: + - npm run test-windows + +build: off + +branches: + only: + - master diff --git a/tree-sitter-c/.gitattributes b/tree-sitter-c/.gitattributes new file mode 100644 index 0000000..f60d7b9 --- /dev/null +++ b/tree-sitter-c/.gitattributes @@ -0,0 +1,2 @@ +/src/** linguist-vendored +/examples/* linguist-vendored diff --git a/tree-sitter-c/.gitignore b/tree-sitter-c/.gitignore new file mode 100644 index 0000000..bd77f41 --- /dev/null +++ b/tree-sitter-c/.gitignore @@ -0,0 +1,6 @@ +Cargo.lock +node_modules +build +package-lock.json +/target/ +.build/ \ No newline at end of file diff --git a/tree-sitter-c/.npmignore b/tree-sitter-c/.npmignore new file mode 100644 index 0000000..bed0e3d --- /dev/null +++ b/tree-sitter-c/.npmignore @@ -0,0 +1,6 @@ +/test +/examples +/build +/script +/target + diff --git a/tree-sitter-c/.travis.yml b/tree-sitter-c/.travis.yml new file mode 100644 index 0000000..5dcacdc --- /dev/null +++ b/tree-sitter-c/.travis.yml @@ -0,0 +1,5 @@ +language: node_js + +sudo: false + +node_js: 10 diff --git a/tree-sitter-c/Cargo.toml b/tree-sitter-c/Cargo.toml new file mode 100644 index 0000000..9e2e88c --- /dev/null +++ b/tree-sitter-c/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "tree-sitter-c" +description = "C grammar for the tree-sitter parsing library" +version = "0.20.2" +authors = ["Max Brunsfeld "] +license = "MIT" +readme = "bindings/rust/README.md" +keywords = ["incremental", "parsing", "c"] +categories = ["parsing", "text-editors"] +repository = "https://github.com/tree-sitter/tree-sitter-c" +edition = "2018" + +build = "bindings/rust/build.rs" +include = ["bindings/rust/*", "grammar.js", "queries/*", "src/*"] + +[lib] +path = "bindings/rust/lib.rs" + +[dependencies] +tree-sitter = "0.20" + +[build-dependencies] +cc = "1.0" diff --git a/tree-sitter-c/LICENSE b/tree-sitter-c/LICENSE new file mode 100644 index 0000000..4b52d19 --- /dev/null +++ b/tree-sitter-c/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Max Brunsfeld + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/tree-sitter-c/Package.swift b/tree-sitter-c/Package.swift new file mode 100644 index 0000000..c6c5376 --- /dev/null +++ b/tree-sitter-c/Package.swift @@ -0,0 +1,36 @@ +// swift-tools-version:5.3 +import PackageDescription + +let package = Package( + name: "TreeSitterC", + platforms: [.macOS(.v10_13), .iOS(.v11)], + products: [ + .library(name: "TreeSitterC", targets: ["TreeSitterC"]), + ], + dependencies: [], + targets: [ + .target(name: "TreeSitterC", + path: ".", + exclude: [ + "binding.gyp", + "bindings", + "Cargo.toml", + "examples", + "grammar.js", + "LICENSE", + "Makefile", + "package.json", + "README.md", + "src/grammar.json", + "src/node-types.json", + ], + sources: [ + "src/parser.c", + ], + resources: [ + .copy("queries") + ], + publicHeadersPath: "bindings/swift", + cSettings: [.headerSearchPath("src")]) + ] +) \ No newline at end of file diff --git a/tree-sitter-c/README.md b/tree-sitter-c/README.md new file mode 100644 index 0000000..d89830b --- /dev/null +++ b/tree-sitter-c/README.md @@ -0,0 +1,7 @@ +tree-sitter-c +================== + +[![Build Status](https://travis-ci.org/tree-sitter/tree-sitter-c.svg?branch=master)](https://travis-ci.org/tree-sitter/tree-sitter-c) +[![Build status](https://ci.appveyor.com/api/projects/status/7u0sy6ajmxro4wfh/branch/master?svg=true)](https://ci.appveyor.com/project/maxbrunsfeld/tree-sitter-c/branch/master) + +C grammar for [tree-sitter](https://github.com/tree-sitter/tree-sitter). Adapted from [this C99 grammar](http://slps.github.io/zoo/c/iso-9899-tc3.html). diff --git a/tree-sitter-c/binding.gyp b/tree-sitter-c/binding.gyp new file mode 100644 index 0000000..3aa8cad --- /dev/null +++ b/tree-sitter-c/binding.gyp @@ -0,0 +1,18 @@ +{ + "targets": [ + { + "target_name": "tree_sitter_c_binding", + "include_dirs": [ + " +#include "nan.h" + +using namespace v8; + +extern "C" TSLanguage * tree_sitter_c(); + +namespace { + +NAN_METHOD(New) {} + +void Init(Local exports, Local module) { + Local tpl = Nan::New(New); + tpl->SetClassName(Nan::New("Language").ToLocalChecked()); + tpl->InstanceTemplate()->SetInternalFieldCount(1); + + Local constructor = Nan::GetFunction(tpl).ToLocalChecked(); + Local instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked(); + Nan::SetInternalFieldPointer(instance, 0, tree_sitter_c()); + + Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("c").ToLocalChecked()); + Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance); +} + +NODE_MODULE(tree_sitter_c_binding, Init) + +} // namespace diff --git a/tree-sitter-c/bindings/node/index.js b/tree-sitter-c/bindings/node/index.js new file mode 100644 index 0000000..51a5d6c --- /dev/null +++ b/tree-sitter-c/bindings/node/index.js @@ -0,0 +1,19 @@ +try { + module.exports = require("../../build/Release/tree_sitter_c_binding"); +} catch (error1) { + if (error1.code !== 'MODULE_NOT_FOUND') { + throw error1; + } + try { + module.exports = require("../../build/Debug/tree_sitter_c_binding"); + } catch (error2) { + if (error2.code !== 'MODULE_NOT_FOUND') { + throw error2; + } + throw error1 + } +} + +try { + module.exports.nodeTypeInfo = require("../../src/node-types.json"); +} catch (_) {} diff --git a/tree-sitter-c/bindings/rust/README.md b/tree-sitter-c/bindings/rust/README.md new file mode 100644 index 0000000..d5a2e90 --- /dev/null +++ b/tree-sitter-c/bindings/rust/README.md @@ -0,0 +1,37 @@ +# tree-sitter-c + +This crate provides a C grammar for the [tree-sitter][] parsing library. To +use this crate, add it to the `[dependencies]` section of your `Cargo.toml` +file. (Note that you will probably also need to depend on the +[`tree-sitter`][tree-sitter crate] crate to use the parsed result in any useful +way.) + +``` toml +[dependencies] +tree-sitter = "0.17" +tree-sitter-c = "0.16" +``` + +Typically, you will use the [language][language func] function to add this +grammar to a tree-sitter [Parser][], and then use the parser to parse some code: + +``` rust +let code = r#" + int double(int x) { + return x * 2; + } +"#; +let mut parser = Parser::new(); +parser.set_language(tree_sitter_c::language()).expect("Error loading C grammar"); +let parsed = parser.parse(code, None); +``` + +If you have any questions, please reach out to us in the [tree-sitter +discussions] page. + +[Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html +[language func]: https://docs.rs/tree-sitter-c/*/tree_sitter_c/fn.language.html +[Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html +[tree-sitter]: https://tree-sitter.github.io/ +[tree-sitter crate]: https://crates.io/crates/tree-sitter +[tree-sitter discussions]: https://github.com/tree-sitter/tree-sitter/discussions diff --git a/tree-sitter-c/bindings/rust/build.rs b/tree-sitter-c/bindings/rust/build.rs new file mode 100644 index 0000000..3efc628 --- /dev/null +++ b/tree-sitter-c/bindings/rust/build.rs @@ -0,0 +1,17 @@ +use std::path::Path; +extern crate cc; + +fn main() { + let src_dir = Path::new("src"); + + let mut c_config = cc::Build::new(); + c_config.include(&src_dir); + c_config + .flag_if_supported("-Wno-unused-parameter") + .flag_if_supported("-Wno-unused-but-set-variable") + .flag_if_supported("-Wno-trigraphs"); + let parser_path = src_dir.join("parser.c"); + c_config.file(&parser_path); + println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap()); + c_config.compile("parser"); +} diff --git a/tree-sitter-c/bindings/rust/lib.rs b/tree-sitter-c/bindings/rust/lib.rs new file mode 100644 index 0000000..3402110 --- /dev/null +++ b/tree-sitter-c/bindings/rust/lib.rs @@ -0,0 +1,66 @@ +// -*- coding: utf-8 -*- +// ------------------------------------------------------------------------------------------------ +// Copyright © 2021, tree-sitter-c authors. +// See the LICENSE file in this repo for license details. +// ------------------------------------------------------------------------------------------------ + +//! This crate provides a C grammar for the [tree-sitter][] parsing library. +//! +//! Typically, you will use the [language][language func] function to add this grammar to a +//! tree-sitter [Parser][], and then use the parser to parse some code: +//! +//! ``` +//! use tree_sitter::Parser; +//! +//! let code = r#" +//! int double(int x) { +//! return x * 2; +//! } +//! "#; +//! let mut parser = Parser::new(); +//! parser.set_language(tree_sitter_c::language()).expect("Error loading C grammar"); +//! let parsed = parser.parse(code, None); +//! # let parsed = parsed.unwrap(); +//! # let root = parsed.root_node(); +//! # assert!(!root.has_error()); +//! ``` +//! +//! [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html +//! [language func]: fn.language.html +//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html +//! [tree-sitter]: https://tree-sitter.github.io/ + +use tree_sitter::Language; + +extern "C" { + fn tree_sitter_c() -> Language; +} + +/// Returns the tree-sitter [Language][] for this grammar. +/// +/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html +pub fn language() -> Language { + unsafe { tree_sitter_c() } +} + +/// The source of the C tree-sitter grammar description. +pub const GRAMMAR: &str = include_str!("../../grammar.js"); + +/// The syntax highlighting query for this language. +pub const HIGHLIGHT_QUERY: &str = include_str!("../../queries/highlights.scm"); + +/// The content of the [`node-types.json`][] file for this grammar. +/// +/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types +pub const NODE_TYPES: &str = include_str!("../../src/node-types.json"); + +#[cfg(test)] +mod tests { + #[test] + fn can_load_grammar() { + let mut parser = tree_sitter::Parser::new(); + parser + .set_language(super::language()) + .expect("Error loading C grammar"); + } +} diff --git a/tree-sitter-c/bindings/swift/TreeSitterC/c.h b/tree-sitter-c/bindings/swift/TreeSitterC/c.h new file mode 100644 index 0000000..ae1557a --- /dev/null +++ b/tree-sitter-c/bindings/swift/TreeSitterC/c.h @@ -0,0 +1,16 @@ +#ifndef TREE_SITTER_C_H_ +#define TREE_SITTER_C_H_ + +typedef struct TSLanguage TSLanguage; + +#ifdef __cplusplus +extern "C" { +#endif + +extern TSLanguage *tree_sitter_c(); + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_C_H_ \ No newline at end of file diff --git a/tree-sitter-c/examples/cluster.c b/tree-sitter-c/examples/cluster.c new file mode 100644 index 0000000..77ec2f1 --- /dev/null +++ b/tree-sitter-c/examples/cluster.c @@ -0,0 +1,5446 @@ +/* Redis Cluster implementation. + * + * Copyright (c) 2009-2012, Salvatore Sanfilippo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Redis nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "server.h" +#include "cluster.h" +#include "endianconv.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +/* A global reference to myself is handy to make code more clear. + * Myself always points to server.cluster->myself, that is, the clusterNode + * that represents this node. */ +clusterNode *myself = NULL; + +clusterNode *createClusterNode(char *nodename, int flags); +int clusterAddNode(clusterNode *node); +void clusterAcceptHandler(aeEventLoop *el, int fd, void *privdata, int mask); +void clusterReadHandler(aeEventLoop *el, int fd, void *privdata, int mask); +void clusterSendPing(clusterLink *link, int type); +void clusterSendFail(char *nodename); +void clusterSendFailoverAuthIfNeeded(clusterNode *node, clusterMsg *request); +void clusterUpdateState(void); +int clusterNodeGetSlotBit(clusterNode *n, int slot); +sds clusterGenNodesDescription(int filter); +clusterNode *clusterLookupNode(char *name); +int clusterNodeAddSlave(clusterNode *master, clusterNode *slave); +int clusterAddSlot(clusterNode *n, int slot); +int clusterDelSlot(int slot); +int clusterDelNodeSlots(clusterNode *node); +int clusterNodeSetSlotBit(clusterNode *n, int slot); +void clusterSetMaster(clusterNode *n); +void clusterHandleSlaveFailover(void); +void clusterHandleSlaveMigration(int max_slaves); +int bitmapTestBit(unsigned char *bitmap, int pos); +void clusterDoBeforeSleep(int flags); +void clusterSendUpdate(clusterLink *link, clusterNode *node); +void resetManualFailover(void); +void clusterCloseAllSlots(void); +void clusterSetNodeAsMaster(clusterNode *n); +void clusterDelNode(clusterNode *delnode); +sds representClusterNodeFlags(sds ci, uint16_t flags); +uint64_t clusterGetMaxEpoch(void); +int clusterBumpConfigEpochWithoutConsensus(void); + +/* ----------------------------------------------------------------------------- + * Initialization + * -------------------------------------------------------------------------- */ + +/* Load the cluster config from 'filename'. + * + * If the file does not exist or is zero-length (this may happen because + * when we lock the nodes.conf file, we create a zero-length one for the + * sake of locking if it does not already exist), C_ERR is returned. + * If the configuration was loaded from the file, C_OK is returned. */ +int clusterLoadConfig(char *filename) { + FILE *fp = fopen(filename,"r"); + struct stat sb; + char *line; + int maxline, j; + + if (fp == NULL) { + if (errno == ENOENT) { + return C_ERR; + } else { + serverLog(LL_WARNING, + "Loading the cluster node config from %s: %s", + filename, strerror(errno)); + exit(1); + } + } + + /* Check if the file is zero-length: if so return C_ERR to signal + * we have to write the config. */ + if (fstat(fileno(fp),&sb) != -1 && sb.st_size == 0) { + fclose(fp); + return C_ERR; + } + + /* Parse the file. Note that single lines of the cluster config file can + * be really long as they include all the hash slots of the node. + * This means in the worst possible case, half of the Redis slots will be + * present in a single line, possibly in importing or migrating state, so + * together with the node ID of the sender/receiver. + * + * To simplify we allocate 1024+CLUSTER_SLOTS*128 bytes per line. */ + maxline = 1024+CLUSTER_SLOTS*128; + line = zmalloc(maxline); + while(fgets(line,maxline,fp) != NULL) { + int argc; + sds *argv; + clusterNode *n, *master; + char *p, *s; + + /* Skip blank lines, they can be created either by users manually + * editing nodes.conf or by the config writing process if stopped + * before the truncate() call. */ + if (line[0] == '\n' || line[0] == '\0') continue; + + /* Split the line into arguments for processing. */ + argv = sdssplitargs(line,&argc); + if (argv == NULL) goto fmterr; + + /* Handle the special "vars" line. Don't pretend it is the last + * line even if it actually is when generated by Redis. */ + if (strcasecmp(argv[0],"vars") == 0) { + for (j = 1; j < argc; j += 2) { + if (strcasecmp(argv[j],"currentEpoch") == 0) { + server.cluster->currentEpoch = + strtoull(argv[j+1],NULL,10); + } else if (strcasecmp(argv[j],"lastVoteEpoch") == 0) { + server.cluster->lastVoteEpoch = + strtoull(argv[j+1],NULL,10); + } else { + serverLog(LL_WARNING, + "Skipping unknown cluster config variable '%s'", + argv[j]); + } + } + sdsfreesplitres(argv,argc); + continue; + } + + /* Regular config lines have at least eight fields */ + if (argc < 8) goto fmterr; + + /* Create this node if it does not exist */ + n = clusterLookupNode(argv[0]); + if (!n) { + n = createClusterNode(argv[0],0); + clusterAddNode(n); + } + /* Address and port */ + if ((p = strrchr(argv[1],':')) == NULL) goto fmterr; + *p = '\0'; + memcpy(n->ip,argv[1],strlen(argv[1])+1); + char *port = p+1; + char *busp = strchr(port,'@'); + if (busp) { + *busp = '\0'; + busp++; + } + n->port = atoi(port); + /* In older versions of nodes.conf the "@busport" part is missing. + * In this case we set it to the default offset of 10000 from the + * base port. */ + n->cport = busp ? atoi(busp) : n->port + CLUSTER_PORT_INCR; + + /* Parse flags */ + p = s = argv[2]; + while(p) { + p = strchr(s,','); + if (p) *p = '\0'; + if (!strcasecmp(s,"myself")) { + serverAssert(server.cluster->myself == NULL); + myself = server.cluster->myself = n; + n->flags |= CLUSTER_NODE_MYSELF; + } else if (!strcasecmp(s,"master")) { + n->flags |= CLUSTER_NODE_MASTER; + } else if (!strcasecmp(s,"slave")) { + n->flags |= CLUSTER_NODE_SLAVE; + } else if (!strcasecmp(s,"fail?")) { + n->flags |= CLUSTER_NODE_PFAIL; + } else if (!strcasecmp(s,"fail")) { + n->flags |= CLUSTER_NODE_FAIL; + n->fail_time = mstime(); + } else if (!strcasecmp(s,"handshake")) { + n->flags |= CLUSTER_NODE_HANDSHAKE; + } else if (!strcasecmp(s,"noaddr")) { + n->flags |= CLUSTER_NODE_NOADDR; + } else if (!strcasecmp(s,"noflags")) { + /* nothing to do */ + } else { + serverPanic("Unknown flag in redis cluster config file"); + } + if (p) s = p+1; + } + + /* Get master if any. Set the master and populate master's + * slave list. */ + if (argv[3][0] != '-') { + master = clusterLookupNode(argv[3]); + if (!master) { + master = createClusterNode(argv[3],0); + clusterAddNode(master); + } + n->slaveof = master; + clusterNodeAddSlave(master,n); + } + + /* Set ping sent / pong received timestamps */ + if (atoi(argv[4])) n->ping_sent = mstime(); + if (atoi(argv[5])) n->pong_received = mstime(); + + /* Set configEpoch for this node. */ + n->configEpoch = strtoull(argv[6],NULL,10); + + /* Populate hash slots served by this instance. */ + for (j = 8; j < argc; j++) { + int start, stop; + + if (argv[j][0] == '[') { + /* Here we handle migrating / importing slots */ + int slot; + char direction; + clusterNode *cn; + + p = strchr(argv[j],'-'); + serverAssert(p != NULL); + *p = '\0'; + direction = p[1]; /* Either '>' or '<' */ + slot = atoi(argv[j]+1); + p += 3; + cn = clusterLookupNode(p); + if (!cn) { + cn = createClusterNode(p,0); + clusterAddNode(cn); + } + if (direction == '>') { + server.cluster->migrating_slots_to[slot] = cn; + } else { + server.cluster->importing_slots_from[slot] = cn; + } + continue; + } else if ((p = strchr(argv[j],'-')) != NULL) { + *p = '\0'; + start = atoi(argv[j]); + stop = atoi(p+1); + } else { + start = stop = atoi(argv[j]); + } + while(start <= stop) clusterAddSlot(n, start++); + } + + sdsfreesplitres(argv,argc); + } + /* Config sanity check */ + if (server.cluster->myself == NULL) goto fmterr; + + zfree(line); + fclose(fp); + + serverLog(LL_NOTICE,"Node configuration loaded, I'm %.40s", myself->name); + + /* Something that should never happen: currentEpoch smaller than + * the max epoch found in the nodes configuration. However we handle this + * as some form of protection against manual editing of critical files. */ + if (clusterGetMaxEpoch() > server.cluster->currentEpoch) { + server.cluster->currentEpoch = clusterGetMaxEpoch(); + } + return C_OK; + +fmterr: + serverLog(LL_WARNING, + "Unrecoverable error: corrupted cluster config file."); + zfree(line); + if (fp) fclose(fp); + exit(1); +} + +/* Cluster node configuration is exactly the same as CLUSTER NODES output. + * + * This function writes the node config and returns 0, on error -1 + * is returned. + * + * Note: we need to write the file in an atomic way from the point of view + * of the POSIX filesystem semantics, so that if the server is stopped + * or crashes during the write, we'll end with either the old file or the + * new one. Since we have the full payload to write available we can use + * a single write to write the whole file. If the pre-existing file was + * bigger we pad our payload with newlines that are anyway ignored and truncate + * the file afterward. */ +int clusterSaveConfig(int do_fsync) { + sds ci; + size_t content_size; + struct stat sb; + int fd; + + server.cluster->todo_before_sleep &= ~CLUSTER_TODO_SAVE_CONFIG; + + /* Get the nodes description and concatenate our "vars" directive to + * save currentEpoch and lastVoteEpoch. */ + ci = clusterGenNodesDescription(CLUSTER_NODE_HANDSHAKE); + ci = sdscatprintf(ci,"vars currentEpoch %llu lastVoteEpoch %llu\n", + (unsigned long long) server.cluster->currentEpoch, + (unsigned long long) server.cluster->lastVoteEpoch); + content_size = sdslen(ci); + + if ((fd = open(server.cluster_configfile,O_WRONLY|O_CREAT,0644)) + == -1) goto err; + + /* Pad the new payload if the existing file length is greater. */ + if (fstat(fd,&sb) != -1) { + if (sb.st_size > (off_t)content_size) { + ci = sdsgrowzero(ci,sb.st_size); + memset(ci+content_size,'\n',sb.st_size-content_size); + } + } + if (write(fd,ci,sdslen(ci)) != (ssize_t)sdslen(ci)) goto err; + if (do_fsync) { + server.cluster->todo_before_sleep &= ~CLUSTER_TODO_FSYNC_CONFIG; + fsync(fd); + } + + /* Truncate the file if needed to remove the final \n padding that + * is just garbage. */ + if (content_size != sdslen(ci) && ftruncate(fd,content_size) == -1) { + /* ftruncate() failing is not a critical error. */ + } + close(fd); + sdsfree(ci); + return 0; + +err: + if (fd != -1) close(fd); + sdsfree(ci); + return -1; +} + +void clusterSaveConfigOrDie(int do_fsync) { + if (clusterSaveConfig(do_fsync) == -1) { + serverLog(LL_WARNING,"Fatal: can't update cluster config file."); + exit(1); + } +} + +/* Lock the cluster config using flock(), and leaks the file descritor used to + * acquire the lock so that the file will be locked forever. + * + * This works because we always update nodes.conf with a new version + * in-place, reopening the file, and writing to it in place (later adjusting + * the length with ftruncate()). + * + * On success C_OK is returned, otherwise an error is logged and + * the function returns C_ERR to signal a lock was not acquired. */ +int clusterLockConfig(char *filename) { +/* flock() does not exist on Solaris + * and a fcntl-based solution won't help, as we constantly re-open that file, + * which will release _all_ locks anyway + */ +#if !defined(__sun) + /* To lock it, we need to open the file in a way it is created if + * it does not exist, otherwise there is a race condition with other + * processes. */ + int fd = open(filename,O_WRONLY|O_CREAT,0644); + if (fd == -1) { + serverLog(LL_WARNING, + "Can't open %s in order to acquire a lock: %s", + filename, strerror(errno)); + return C_ERR; + } + + if (flock(fd,LOCK_EX|LOCK_NB) == -1) { + if (errno == EWOULDBLOCK) { + serverLog(LL_WARNING, + "Sorry, the cluster configuration file %s is already used " + "by a different Redis Cluster node. Please make sure that " + "different nodes use different cluster configuration " + "files.", filename); + } else { + serverLog(LL_WARNING, + "Impossible to lock %s: %s", filename, strerror(errno)); + } + close(fd); + return C_ERR; + } + /* Lock acquired: leak the 'fd' by not closing it, so that we'll retain the + * lock to the file as long as the process exists. */ +#endif /* __sun */ + + return C_OK; +} + +void clusterInit(void) { + int saveconf = 0; + + server.cluster = zmalloc(sizeof(clusterState)); + server.cluster->myself = NULL; + server.cluster->currentEpoch = 0; + server.cluster->state = CLUSTER_FAIL; + server.cluster->size = 1; + server.cluster->todo_before_sleep = 0; + server.cluster->nodes = dictCreate(&clusterNodesDictType,NULL); + server.cluster->nodes_black_list = + dictCreate(&clusterNodesBlackListDictType,NULL); + server.cluster->failover_auth_time = 0; + server.cluster->failover_auth_count = 0; + server.cluster->failover_auth_rank = 0; + server.cluster->failover_auth_epoch = 0; + server.cluster->cant_failover_reason = CLUSTER_CANT_FAILOVER_NONE; + server.cluster->lastVoteEpoch = 0; + for (int i = 0; i < CLUSTERMSG_TYPE_COUNT; i++) { + server.cluster->stats_bus_messages_sent[i] = 0; + server.cluster->stats_bus_messages_received[i] = 0; + } + server.cluster->stats_pfail_nodes = 0; + memset(server.cluster->slots,0, sizeof(server.cluster->slots)); + clusterCloseAllSlots(); + + /* Lock the cluster config file to make sure every node uses + * its own nodes.conf. */ + if (clusterLockConfig(server.cluster_configfile) == C_ERR) + exit(1); + + /* Load or create a new nodes configuration. */ + if (clusterLoadConfig(server.cluster_configfile) == C_ERR) { + /* No configuration found. We will just use the random name provided + * by the createClusterNode() function. */ + myself = server.cluster->myself = + createClusterNode(NULL,CLUSTER_NODE_MYSELF|CLUSTER_NODE_MASTER); + serverLog(LL_NOTICE,"No cluster configuration found, I'm %.40s", + myself->name); + clusterAddNode(myself); + saveconf = 1; + } + if (saveconf) clusterSaveConfigOrDie(1); + + /* We need a listening TCP port for our cluster messaging needs. */ + server.cfd_count = 0; + + /* Port sanity check II + * The other handshake port check is triggered too late to stop + * us from trying to use a too-high cluster port number. */ + if (server.port > (65535-CLUSTER_PORT_INCR)) { + serverLog(LL_WARNING, "Redis port number too high. " + "Cluster communication port is 10,000 port " + "numbers higher than your Redis port. " + "Your Redis port number must be " + "lower than 55535."); + exit(1); + } + + if (listenToPort(server.port+CLUSTER_PORT_INCR, + server.cfd,&server.cfd_count) == C_ERR) + { + exit(1); + } else { + int j; + + for (j = 0; j < server.cfd_count; j++) { + if (aeCreateFileEvent(server.el, server.cfd[j], AE_READABLE, + clusterAcceptHandler, NULL) == AE_ERR) + serverPanic("Unrecoverable error creating Redis Cluster " + "file event."); + } + } + + /* The slots -> keys map is a radix tree. Initialize it here. */ + server.cluster->slots_to_keys = raxNew(); + memset(server.cluster->slots_keys_count,0, + sizeof(server.cluster->slots_keys_count)); + + /* Set myself->port / cport to my listening ports, we'll just need to + * discover the IP address via MEET messages. */ + myself->port = server.port; + myself->cport = server.port+CLUSTER_PORT_INCR; + if (server.cluster_announce_port) + myself->port = server.cluster_announce_port; + if (server.cluster_announce_bus_port) + myself->cport = server.cluster_announce_bus_port; + + server.cluster->mf_end = 0; + resetManualFailover(); +} + +/* Reset a node performing a soft or hard reset: + * + * 1) All other nodes are forget. + * 2) All the assigned / open slots are released. + * 3) If the node is a slave, it turns into a master. + * 5) Only for hard reset: a new Node ID is generated. + * 6) Only for hard reset: currentEpoch and configEpoch are set to 0. + * 7) The new configuration is saved and the cluster state updated. + * 8) If the node was a slave, the whole data set is flushed away. */ +void clusterReset(int hard) { + dictIterator *di; + dictEntry *de; + int j; + + /* Turn into master. */ + if (nodeIsSlave(myself)) { + clusterSetNodeAsMaster(myself); + replicationUnsetMaster(); + emptyDb(-1,EMPTYDB_NO_FLAGS,NULL); + } + + /* Close slots, reset manual failover state. */ + clusterCloseAllSlots(); + resetManualFailover(); + + /* Unassign all the slots. */ + for (j = 0; j < CLUSTER_SLOTS; j++) clusterDelSlot(j); + + /* Forget all the nodes, but myself. */ + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + + if (node == myself) continue; + clusterDelNode(node); + } + dictReleaseIterator(di); + + /* Hard reset only: set epochs to 0, change node ID. */ + if (hard) { + sds oldname; + + server.cluster->currentEpoch = 0; + server.cluster->lastVoteEpoch = 0; + myself->configEpoch = 0; + serverLog(LL_WARNING, "configEpoch set to 0 via CLUSTER RESET HARD"); + + /* To change the Node ID we need to remove the old name from the + * nodes table, change the ID, and re-add back with new name. */ + oldname = sdsnewlen(myself->name, CLUSTER_NAMELEN); + dictDelete(server.cluster->nodes,oldname); + sdsfree(oldname); + getRandomHexChars(myself->name, CLUSTER_NAMELEN); + clusterAddNode(myself); + serverLog(LL_NOTICE,"Node hard reset, now I'm %.40s", myself->name); + } + + /* Make sure to persist the new config and update the state. */ + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_UPDATE_STATE| + CLUSTER_TODO_FSYNC_CONFIG); +} + +/* ----------------------------------------------------------------------------- + * CLUSTER communication link + * -------------------------------------------------------------------------- */ + +clusterLink *createClusterLink(clusterNode *node) { + clusterLink *link = zmalloc(sizeof(*link)); + link->ctime = mstime(); + link->sndbuf = sdsempty(); + link->rcvbuf = sdsempty(); + link->node = node; + link->fd = -1; + return link; +} + +/* Free a cluster link, but does not free the associated node of course. + * This function will just make sure that the original node associated + * with this link will have the 'link' field set to NULL. */ +void freeClusterLink(clusterLink *link) { + if (link->fd != -1) { + aeDeleteFileEvent(server.el, link->fd, AE_WRITABLE); + aeDeleteFileEvent(server.el, link->fd, AE_READABLE); + } + sdsfree(link->sndbuf); + sdsfree(link->rcvbuf); + if (link->node) + link->node->link = NULL; + close(link->fd); + zfree(link); +} + +#define MAX_CLUSTER_ACCEPTS_PER_CALL 1000 +void clusterAcceptHandler(aeEventLoop *el, int fd, void *privdata, int mask) { + int cport, cfd; + int max = MAX_CLUSTER_ACCEPTS_PER_CALL; + char cip[NET_IP_STR_LEN]; + clusterLink *link; + UNUSED(el); + UNUSED(mask); + UNUSED(privdata); + + /* If the server is starting up, don't accept cluster connections: + * UPDATE messages may interact with the database content. */ + if (server.masterhost == NULL && server.loading) return; + + while(max--) { + cfd = anetTcpAccept(server.neterr, fd, cip, sizeof(cip), &cport); + if (cfd == ANET_ERR) { + if (errno != EWOULDBLOCK) + serverLog(LL_VERBOSE, + "Error accepting cluster node: %s", server.neterr); + return; + } + anetNonBlock(NULL,cfd); + anetEnableTcpNoDelay(NULL,cfd); + + /* Use non-blocking I/O for cluster messages. */ + serverLog(LL_VERBOSE,"Accepted cluster node %s:%d", cip, cport); + /* Create a link object we use to handle the connection. + * It gets passed to the readable handler when data is available. + * Initiallly the link->node pointer is set to NULL as we don't know + * which node is, but the right node is references once we know the + * node identity. */ + link = createClusterLink(NULL); + link->fd = cfd; + aeCreateFileEvent(server.el,cfd,AE_READABLE,clusterReadHandler,link); + } +} + +/* ----------------------------------------------------------------------------- + * Key space handling + * -------------------------------------------------------------------------- */ + +/* We have 16384 hash slots. The hash slot of a given key is obtained + * as the least significant 14 bits of the crc16 of the key. + * + * However if the key contains the {...} pattern, only the part between + * { and } is hashed. This may be useful in the future to force certain + * keys to be in the same node (assuming no resharding is in progress). */ +unsigned int keyHashSlot(char *key, int keylen) { + int s, e; /* start-end indexes of { and } */ + + for (s = 0; s < keylen; s++) + if (key[s] == '{') break; + + /* No '{' ? Hash the whole key. This is the base case. */ + if (s == keylen) return crc16(key,keylen) & 0x3FFF; + + /* '{' found? Check if we have the corresponding '}'. */ + for (e = s+1; e < keylen; e++) + if (key[e] == '}') break; + + /* No '}' or nothing betweeen {} ? Hash the whole key. */ + if (e == keylen || e == s+1) return crc16(key,keylen) & 0x3FFF; + + /* If we are here there is both a { and a } on its right. Hash + * what is in the middle between { and }. */ + return crc16(key+s+1,e-s-1) & 0x3FFF; +} + +/* ----------------------------------------------------------------------------- + * CLUSTER node API + * -------------------------------------------------------------------------- */ + +/* Create a new cluster node, with the specified flags. + * If "nodename" is NULL this is considered a first handshake and a random + * node name is assigned to this node (it will be fixed later when we'll + * receive the first pong). + * + * The node is created and returned to the user, but it is not automatically + * added to the nodes hash table. */ +clusterNode *createClusterNode(char *nodename, int flags) { + clusterNode *node = zmalloc(sizeof(*node)); + + if (nodename) + memcpy(node->name, nodename, CLUSTER_NAMELEN); + else + getRandomHexChars(node->name, CLUSTER_NAMELEN); + node->ctime = mstime(); + node->configEpoch = 0; + node->flags = flags; + memset(node->slots,0,sizeof(node->slots)); + node->numslots = 0; + node->numslaves = 0; + node->slaves = NULL; + node->slaveof = NULL; + node->ping_sent = node->pong_received = 0; + node->fail_time = 0; + node->link = NULL; + memset(node->ip,0,sizeof(node->ip)); + node->port = 0; + node->cport = 0; + node->fail_reports = listCreate(); + node->voted_time = 0; + node->orphaned_time = 0; + node->repl_offset_time = 0; + node->repl_offset = 0; + listSetFreeMethod(node->fail_reports,zfree); + return node; +} + +/* This function is called every time we get a failure report from a node. + * The side effect is to populate the fail_reports list (or to update + * the timestamp of an existing report). + * + * 'failing' is the node that is in failure state according to the + * 'sender' node. + * + * The function returns 0 if it just updates a timestamp of an existing + * failure report from the same sender. 1 is returned if a new failure + * report is created. */ +int clusterNodeAddFailureReport(clusterNode *failing, clusterNode *sender) { + list *l = failing->fail_reports; + listNode *ln; + listIter li; + clusterNodeFailReport *fr; + + /* If a failure report from the same sender already exists, just update + * the timestamp. */ + listRewind(l,&li); + while ((ln = listNext(&li)) != NULL) { + fr = ln->value; + if (fr->node == sender) { + fr->time = mstime(); + return 0; + } + } + + /* Otherwise create a new report. */ + fr = zmalloc(sizeof(*fr)); + fr->node = sender; + fr->time = mstime(); + listAddNodeTail(l,fr); + return 1; +} + +/* Remove failure reports that are too old, where too old means reasonably + * older than the global node timeout. Note that anyway for a node to be + * flagged as FAIL we need to have a local PFAIL state that is at least + * older than the global node timeout, so we don't just trust the number + * of failure reports from other nodes. */ +void clusterNodeCleanupFailureReports(clusterNode *node) { + list *l = node->fail_reports; + listNode *ln; + listIter li; + clusterNodeFailReport *fr; + mstime_t maxtime = server.cluster_node_timeout * + CLUSTER_FAIL_REPORT_VALIDITY_MULT; + mstime_t now = mstime(); + + listRewind(l,&li); + while ((ln = listNext(&li)) != NULL) { + fr = ln->value; + if (now - fr->time > maxtime) listDelNode(l,ln); + } +} + +/* Remove the failing report for 'node' if it was previously considered + * failing by 'sender'. This function is called when a node informs us via + * gossip that a node is OK from its point of view (no FAIL or PFAIL flags). + * + * Note that this function is called relatively often as it gets called even + * when there are no nodes failing, and is O(N), however when the cluster is + * fine the failure reports list is empty so the function runs in constant + * time. + * + * The function returns 1 if the failure report was found and removed. + * Otherwise 0 is returned. */ +int clusterNodeDelFailureReport(clusterNode *node, clusterNode *sender) { + list *l = node->fail_reports; + listNode *ln; + listIter li; + clusterNodeFailReport *fr; + + /* Search for a failure report from this sender. */ + listRewind(l,&li); + while ((ln = listNext(&li)) != NULL) { + fr = ln->value; + if (fr->node == sender) break; + } + if (!ln) return 0; /* No failure report from this sender. */ + + /* Remove the failure report. */ + listDelNode(l,ln); + clusterNodeCleanupFailureReports(node); + return 1; +} + +/* Return the number of external nodes that believe 'node' is failing, + * not including this node, that may have a PFAIL or FAIL state for this + * node as well. */ +int clusterNodeFailureReportsCount(clusterNode *node) { + clusterNodeCleanupFailureReports(node); + return listLength(node->fail_reports); +} + +int clusterNodeRemoveSlave(clusterNode *master, clusterNode *slave) { + int j; + + for (j = 0; j < master->numslaves; j++) { + if (master->slaves[j] == slave) { + if ((j+1) < master->numslaves) { + int remaining_slaves = (master->numslaves - j) - 1; + memmove(master->slaves+j,master->slaves+(j+1), + (sizeof(*master->slaves) * remaining_slaves)); + } + master->numslaves--; + if (master->numslaves == 0) + master->flags &= ~CLUSTER_NODE_MIGRATE_TO; + return C_OK; + } + } + return C_ERR; +} + +int clusterNodeAddSlave(clusterNode *master, clusterNode *slave) { + int j; + + /* If it's already a slave, don't add it again. */ + for (j = 0; j < master->numslaves; j++) + if (master->slaves[j] == slave) return C_ERR; + master->slaves = zrealloc(master->slaves, + sizeof(clusterNode*)*(master->numslaves+1)); + master->slaves[master->numslaves] = slave; + master->numslaves++; + master->flags |= CLUSTER_NODE_MIGRATE_TO; + return C_OK; +} + +int clusterCountNonFailingSlaves(clusterNode *n) { + int j, okslaves = 0; + + for (j = 0; j < n->numslaves; j++) + if (!nodeFailed(n->slaves[j])) okslaves++; + return okslaves; +} + +/* Low level cleanup of the node structure. Only called by clusterDelNode(). */ +void freeClusterNode(clusterNode *n) { + sds nodename; + int j; + + /* If the node has associated slaves, we have to set + * all the slaves->slaveof fields to NULL (unknown). */ + for (j = 0; j < n->numslaves; j++) + n->slaves[j]->slaveof = NULL; + + /* Remove this node from the list of slaves of its master. */ + if (nodeIsSlave(n) && n->slaveof) clusterNodeRemoveSlave(n->slaveof,n); + + /* Unlink from the set of nodes. */ + nodename = sdsnewlen(n->name, CLUSTER_NAMELEN); + serverAssert(dictDelete(server.cluster->nodes,nodename) == DICT_OK); + sdsfree(nodename); + + /* Release link and associated data structures. */ + if (n->link) freeClusterLink(n->link); + listRelease(n->fail_reports); + zfree(n->slaves); + zfree(n); +} + +/* Add a node to the nodes hash table */ +int clusterAddNode(clusterNode *node) { + int retval; + + retval = dictAdd(server.cluster->nodes, + sdsnewlen(node->name,CLUSTER_NAMELEN), node); + return (retval == DICT_OK) ? C_OK : C_ERR; +} + +/* Remove a node from the cluster. The functio performs the high level + * cleanup, calling freeClusterNode() for the low level cleanup. + * Here we do the following: + * + * 1) Mark all the slots handled by it as unassigned. + * 2) Remove all the failure reports sent by this node and referenced by + * other nodes. + * 3) Free the node with freeClusterNode() that will in turn remove it + * from the hash table and from the list of slaves of its master, if + * it is a slave node. + */ +void clusterDelNode(clusterNode *delnode) { + int j; + dictIterator *di; + dictEntry *de; + + /* 1) Mark slots as unassigned. */ + for (j = 0; j < CLUSTER_SLOTS; j++) { + if (server.cluster->importing_slots_from[j] == delnode) + server.cluster->importing_slots_from[j] = NULL; + if (server.cluster->migrating_slots_to[j] == delnode) + server.cluster->migrating_slots_to[j] = NULL; + if (server.cluster->slots[j] == delnode) + clusterDelSlot(j); + } + + /* 2) Remove failure reports. */ + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + + if (node == delnode) continue; + clusterNodeDelFailureReport(node,delnode); + } + dictReleaseIterator(di); + + /* 3) Free the node, unlinking it from the cluster. */ + freeClusterNode(delnode); +} + +/* Node lookup by name */ +clusterNode *clusterLookupNode(char *name) { + sds s = sdsnewlen(name, CLUSTER_NAMELEN); + dictEntry *de; + + de = dictFind(server.cluster->nodes,s); + sdsfree(s); + if (de == NULL) return NULL; + return dictGetVal(de); +} + +/* This is only used after the handshake. When we connect a given IP/PORT + * as a result of CLUSTER MEET we don't have the node name yet, so we + * pick a random one, and will fix it when we receive the PONG request using + * this function. */ +void clusterRenameNode(clusterNode *node, char *newname) { + int retval; + sds s = sdsnewlen(node->name, CLUSTER_NAMELEN); + + serverLog(LL_DEBUG,"Renaming node %.40s into %.40s", + node->name, newname); + retval = dictDelete(server.cluster->nodes, s); + sdsfree(s); + serverAssert(retval == DICT_OK); + memcpy(node->name, newname, CLUSTER_NAMELEN); + clusterAddNode(node); +} + +/* ----------------------------------------------------------------------------- + * CLUSTER config epoch handling + * -------------------------------------------------------------------------- */ + +/* Return the greatest configEpoch found in the cluster, or the current + * epoch if greater than any node configEpoch. */ +uint64_t clusterGetMaxEpoch(void) { + uint64_t max = 0; + dictIterator *di; + dictEntry *de; + + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + if (node->configEpoch > max) max = node->configEpoch; + } + dictReleaseIterator(di); + if (max < server.cluster->currentEpoch) max = server.cluster->currentEpoch; + return max; +} + +/* If this node epoch is zero or is not already the greatest across the + * cluster (from the POV of the local configuration), this function will: + * + * 1) Generate a new config epoch, incrementing the current epoch. + * 2) Assign the new epoch to this node, WITHOUT any consensus. + * 3) Persist the configuration on disk before sending packets with the + * new configuration. + * + * If the new config epoch is generated and assigend, C_OK is returned, + * otherwise C_ERR is returned (since the node has already the greatest + * configuration around) and no operation is performed. + * + * Important note: this function violates the principle that config epochs + * should be generated with consensus and should be unique across the cluster. + * However Redis Cluster uses this auto-generated new config epochs in two + * cases: + * + * 1) When slots are closed after importing. Otherwise resharding would be + * too expensive. + * 2) When CLUSTER FAILOVER is called with options that force a slave to + * failover its master even if there is not master majority able to + * create a new configuration epoch. + * + * Redis Cluster will not explode using this function, even in the case of + * a collision between this node and another node, generating the same + * configuration epoch unilaterally, because the config epoch conflict + * resolution algorithm will eventually move colliding nodes to different + * config epochs. However using this function may violate the "last failover + * wins" rule, so should only be used with care. */ +int clusterBumpConfigEpochWithoutConsensus(void) { + uint64_t maxEpoch = clusterGetMaxEpoch(); + + if (myself->configEpoch == 0 || + myself->configEpoch != maxEpoch) + { + server.cluster->currentEpoch++; + myself->configEpoch = server.cluster->currentEpoch; + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_FSYNC_CONFIG); + serverLog(LL_WARNING, + "New configEpoch set to %llu", + (unsigned long long) myself->configEpoch); + return C_OK; + } else { + return C_ERR; + } +} + +/* This function is called when this node is a master, and we receive from + * another master a configuration epoch that is equal to our configuration + * epoch. + * + * BACKGROUND + * + * It is not possible that different slaves get the same config + * epoch during a failover election, because the slaves need to get voted + * by a majority. However when we perform a manual resharding of the cluster + * the node will assign a configuration epoch to itself without to ask + * for agreement. Usually resharding happens when the cluster is working well + * and is supervised by the sysadmin, however it is possible for a failover + * to happen exactly while the node we are resharding a slot to assigns itself + * a new configuration epoch, but before it is able to propagate it. + * + * So technically it is possible in this condition that two nodes end with + * the same configuration epoch. + * + * Another possibility is that there are bugs in the implementation causing + * this to happen. + * + * Moreover when a new cluster is created, all the nodes start with the same + * configEpoch. This collision resolution code allows nodes to automatically + * end with a different configEpoch at startup automatically. + * + * In all the cases, we want a mechanism that resolves this issue automatically + * as a safeguard. The same configuration epoch for masters serving different + * set of slots is not harmful, but it is if the nodes end serving the same + * slots for some reason (manual errors or software bugs) without a proper + * failover procedure. + * + * In general we want a system that eventually always ends with different + * masters having different configuration epochs whatever happened, since + * nothign is worse than a split-brain condition in a distributed system. + * + * BEHAVIOR + * + * When this function gets called, what happens is that if this node + * has the lexicographically smaller Node ID compared to the other node + * with the conflicting epoch (the 'sender' node), it will assign itself + * the greatest configuration epoch currently detected among nodes plus 1. + * + * This means that even if there are multiple nodes colliding, the node + * with the greatest Node ID never moves forward, so eventually all the nodes + * end with a different configuration epoch. + */ +void clusterHandleConfigEpochCollision(clusterNode *sender) { + /* Prerequisites: nodes have the same configEpoch and are both masters. */ + if (sender->configEpoch != myself->configEpoch || + !nodeIsMaster(sender) || !nodeIsMaster(myself)) return; + /* Don't act if the colliding node has a smaller Node ID. */ + if (memcmp(sender->name,myself->name,CLUSTER_NAMELEN) <= 0) return; + /* Get the next ID available at the best of this node knowledge. */ + server.cluster->currentEpoch++; + myself->configEpoch = server.cluster->currentEpoch; + clusterSaveConfigOrDie(1); + serverLog(LL_VERBOSE, + "WARNING: configEpoch collision with node %.40s." + " configEpoch set to %llu", + sender->name, + (unsigned long long) myself->configEpoch); +} + +/* ----------------------------------------------------------------------------- + * CLUSTER nodes blacklist + * + * The nodes blacklist is just a way to ensure that a given node with a given + * Node ID is not readded before some time elapsed (this time is specified + * in seconds in CLUSTER_BLACKLIST_TTL). + * + * This is useful when we want to remove a node from the cluster completely: + * when CLUSTER FORGET is called, it also puts the node into the blacklist so + * that even if we receive gossip messages from other nodes that still remember + * about the node we want to remove, we don't re-add it before some time. + * + * Currently the CLUSTER_BLACKLIST_TTL is set to 1 minute, this means + * that redis-trib has 60 seconds to send CLUSTER FORGET messages to nodes + * in the cluster without dealing with the problem of other nodes re-adding + * back the node to nodes we already sent the FORGET command to. + * + * The data structure used is a hash table with an sds string representing + * the node ID as key, and the time when it is ok to re-add the node as + * value. + * -------------------------------------------------------------------------- */ + +#define CLUSTER_BLACKLIST_TTL 60 /* 1 minute. */ + + +/* Before of the addNode() or Exists() operations we always remove expired + * entries from the black list. This is an O(N) operation but it is not a + * problem since add / exists operations are called very infrequently and + * the hash table is supposed to contain very little elements at max. + * However without the cleanup during long uptimes and with some automated + * node add/removal procedures, entries could accumulate. */ +void clusterBlacklistCleanup(void) { + dictIterator *di; + dictEntry *de; + + di = dictGetSafeIterator(server.cluster->nodes_black_list); + while((de = dictNext(di)) != NULL) { + int64_t expire = dictGetUnsignedIntegerVal(de); + + if (expire < server.unixtime) + dictDelete(server.cluster->nodes_black_list,dictGetKey(de)); + } + dictReleaseIterator(di); +} + +/* Cleanup the blacklist and add a new node ID to the black list. */ +void clusterBlacklistAddNode(clusterNode *node) { + dictEntry *de; + sds id = sdsnewlen(node->name,CLUSTER_NAMELEN); + + clusterBlacklistCleanup(); + if (dictAdd(server.cluster->nodes_black_list,id,NULL) == DICT_OK) { + /* If the key was added, duplicate the sds string representation of + * the key for the next lookup. We'll free it at the end. */ + id = sdsdup(id); + } + de = dictFind(server.cluster->nodes_black_list,id); + dictSetUnsignedIntegerVal(de,time(NULL)+CLUSTER_BLACKLIST_TTL); + sdsfree(id); +} + +/* Return non-zero if the specified node ID exists in the blacklist. + * You don't need to pass an sds string here, any pointer to 40 bytes + * will work. */ +int clusterBlacklistExists(char *nodeid) { + sds id = sdsnewlen(nodeid,CLUSTER_NAMELEN); + int retval; + + clusterBlacklistCleanup(); + retval = dictFind(server.cluster->nodes_black_list,id) != NULL; + sdsfree(id); + return retval; +} + +/* ----------------------------------------------------------------------------- + * CLUSTER messages exchange - PING/PONG and gossip + * -------------------------------------------------------------------------- */ + +/* This function checks if a given node should be marked as FAIL. + * It happens if the following conditions are met: + * + * 1) We received enough failure reports from other master nodes via gossip. + * Enough means that the majority of the masters signaled the node is + * down recently. + * 2) We believe this node is in PFAIL state. + * + * If a failure is detected we also inform the whole cluster about this + * event trying to force every other node to set the FAIL flag for the node. + * + * Note that the form of agreement used here is weak, as we collect the majority + * of masters state during some time, and even if we force agreement by + * propagating the FAIL message, because of partitions we may not reach every + * node. However: + * + * 1) Either we reach the majority and eventually the FAIL state will propagate + * to all the cluster. + * 2) Or there is no majority so no slave promotion will be authorized and the + * FAIL flag will be cleared after some time. + */ +void markNodeAsFailingIfNeeded(clusterNode *node) { + int failures; + int needed_quorum = (server.cluster->size / 2) + 1; + + if (!nodeTimedOut(node)) return; /* We can reach it. */ + if (nodeFailed(node)) return; /* Already FAILing. */ + + failures = clusterNodeFailureReportsCount(node); + /* Also count myself as a voter if I'm a master. */ + if (nodeIsMaster(myself)) failures++; + if (failures < needed_quorum) return; /* No weak agreement from masters. */ + + serverLog(LL_NOTICE, + "Marking node %.40s as failing (quorum reached).", node->name); + + /* Mark the node as failing. */ + node->flags &= ~CLUSTER_NODE_PFAIL; + node->flags |= CLUSTER_NODE_FAIL; + node->fail_time = mstime(); + + /* Broadcast the failing node name to everybody, forcing all the other + * reachable nodes to flag the node as FAIL. */ + if (nodeIsMaster(myself)) clusterSendFail(node->name); + clusterDoBeforeSleep(CLUSTER_TODO_UPDATE_STATE|CLUSTER_TODO_SAVE_CONFIG); +} + +/* This function is called only if a node is marked as FAIL, but we are able + * to reach it again. It checks if there are the conditions to undo the FAIL + * state. */ +void clearNodeFailureIfNeeded(clusterNode *node) { + mstime_t now = mstime(); + + serverAssert(nodeFailed(node)); + + /* For slaves we always clear the FAIL flag if we can contact the + * node again. */ + if (nodeIsSlave(node) || node->numslots == 0) { + serverLog(LL_NOTICE, + "Clear FAIL state for node %.40s: %s is reachable again.", + node->name, + nodeIsSlave(node) ? "slave" : "master without slots"); + node->flags &= ~CLUSTER_NODE_FAIL; + clusterDoBeforeSleep(CLUSTER_TODO_UPDATE_STATE|CLUSTER_TODO_SAVE_CONFIG); + } + + /* If it is a master and... + * 1) The FAIL state is old enough. + * 2) It is yet serving slots from our point of view (not failed over). + * Apparently no one is going to fix these slots, clear the FAIL flag. */ + if (nodeIsMaster(node) && node->numslots > 0 && + (now - node->fail_time) > + (server.cluster_node_timeout * CLUSTER_FAIL_UNDO_TIME_MULT)) + { + serverLog(LL_NOTICE, + "Clear FAIL state for node %.40s: is reachable again and nobody is serving its slots after some time.", + node->name); + node->flags &= ~CLUSTER_NODE_FAIL; + clusterDoBeforeSleep(CLUSTER_TODO_UPDATE_STATE|CLUSTER_TODO_SAVE_CONFIG); + } +} + +/* Return true if we already have a node in HANDSHAKE state matching the + * specified ip address and port number. This function is used in order to + * avoid adding a new handshake node for the same address multiple times. */ +int clusterHandshakeInProgress(char *ip, int port, int cport) { + dictIterator *di; + dictEntry *de; + + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + + if (!nodeInHandshake(node)) continue; + if (!strcasecmp(node->ip,ip) && + node->port == port && + node->cport == cport) break; + } + dictReleaseIterator(di); + return de != NULL; +} + +/* Start an handshake with the specified address if there is not one + * already in progress. Returns non-zero if the handshake was actually + * started. On error zero is returned and errno is set to one of the + * following values: + * + * EAGAIN - There is already an handshake in progress for this address. + * EINVAL - IP or port are not valid. */ +int clusterStartHandshake(char *ip, int port, int cport) { + clusterNode *n; + char norm_ip[NET_IP_STR_LEN]; + struct sockaddr_storage sa; + + /* IP sanity check */ + if (inet_pton(AF_INET,ip, + &(((struct sockaddr_in *)&sa)->sin_addr))) + { + sa.ss_family = AF_INET; + } else if (inet_pton(AF_INET6,ip, + &(((struct sockaddr_in6 *)&sa)->sin6_addr))) + { + sa.ss_family = AF_INET6; + } else { + errno = EINVAL; + return 0; + } + + /* Port sanity check */ + if (port <= 0 || port > 65535 || cport <= 0 || cport > 65535) { + errno = EINVAL; + return 0; + } + + /* Set norm_ip as the normalized string representation of the node + * IP address. */ + memset(norm_ip,0,NET_IP_STR_LEN); + if (sa.ss_family == AF_INET) + inet_ntop(AF_INET, + (void*)&(((struct sockaddr_in *)&sa)->sin_addr), + norm_ip,NET_IP_STR_LEN); + else + inet_ntop(AF_INET6, + (void*)&(((struct sockaddr_in6 *)&sa)->sin6_addr), + norm_ip,NET_IP_STR_LEN); + + if (clusterHandshakeInProgress(norm_ip,port,cport)) { + errno = EAGAIN; + return 0; + } + + /* Add the node with a random address (NULL as first argument to + * createClusterNode()). Everything will be fixed during the + * handshake. */ + n = createClusterNode(NULL,CLUSTER_NODE_HANDSHAKE|CLUSTER_NODE_MEET); + memcpy(n->ip,norm_ip,sizeof(n->ip)); + n->port = port; + n->cport = cport; + clusterAddNode(n); + return 1; +} + +/* Process the gossip section of PING or PONG packets. + * Note that this function assumes that the packet is already sanity-checked + * by the caller, not in the content of the gossip section, but in the + * length. */ +void clusterProcessGossipSection(clusterMsg *hdr, clusterLink *link) { + uint16_t count = ntohs(hdr->count); + clusterMsgDataGossip *g = (clusterMsgDataGossip*) hdr->data.ping.gossip; + clusterNode *sender = link->node ? link->node : clusterLookupNode(hdr->sender); + + while(count--) { + uint16_t flags = ntohs(g->flags); + clusterNode *node; + sds ci; + + ci = representClusterNodeFlags(sdsempty(), flags); + serverLog(LL_DEBUG,"GOSSIP %.40s %s:%d@%d %s", + g->nodename, + g->ip, + ntohs(g->port), + ntohs(g->cport), + ci); + sdsfree(ci); + + /* Update our state accordingly to the gossip sections */ + node = clusterLookupNode(g->nodename); + if (node) { + /* We already know this node. + Handle failure reports, only when the sender is a master. */ + if (sender && nodeIsMaster(sender) && node != myself) { + if (flags & (CLUSTER_NODE_FAIL|CLUSTER_NODE_PFAIL)) { + if (clusterNodeAddFailureReport(node,sender)) { + serverLog(LL_VERBOSE, + "Node %.40s reported node %.40s as not reachable.", + sender->name, node->name); + } + markNodeAsFailingIfNeeded(node); + } else { + if (clusterNodeDelFailureReport(node,sender)) { + serverLog(LL_VERBOSE, + "Node %.40s reported node %.40s is back online.", + sender->name, node->name); + } + } + } + + /* If from our POV the node is up (no failure flags are set), + * we have no pending ping for the node, nor we have failure + * reports for this node, update the last pong time with the + * one we see from the other nodes. */ + if (!(flags & (CLUSTER_NODE_FAIL|CLUSTER_NODE_PFAIL)) && + node->ping_sent == 0 && + clusterNodeFailureReportsCount(node) == 0) + { + mstime_t pongtime = ntohl(g->pong_received); + pongtime *= 1000; /* Convert back to milliseconds. */ + + /* Replace the pong time with the received one only if + * it's greater than our view but is not in the future + * (with 500 milliseconds tolerance) from the POV of our + * clock. */ + if (pongtime <= (server.mstime+500) && + pongtime > node->pong_received) + { + node->pong_received = pongtime; + } + } + + /* If we already know this node, but it is not reachable, and + * we see a different address in the gossip section of a node that + * can talk with this other node, update the address, disconnect + * the old link if any, so that we'll attempt to connect with the + * new address. */ + if (node->flags & (CLUSTER_NODE_FAIL|CLUSTER_NODE_PFAIL) && + !(flags & CLUSTER_NODE_NOADDR) && + !(flags & (CLUSTER_NODE_FAIL|CLUSTER_NODE_PFAIL)) && + (strcasecmp(node->ip,g->ip) || + node->port != ntohs(g->port) || + node->cport != ntohs(g->cport))) + { + if (node->link) freeClusterLink(node->link); + memcpy(node->ip,g->ip,NET_IP_STR_LEN); + node->port = ntohs(g->port); + node->cport = ntohs(g->cport); + node->flags &= ~CLUSTER_NODE_NOADDR; + } + } else { + /* If it's not in NOADDR state and we don't have it, we + * start a handshake process against this IP/PORT pairs. + * + * Note that we require that the sender of this gossip message + * is a well known node in our cluster, otherwise we risk + * joining another cluster. */ + if (sender && + !(flags & CLUSTER_NODE_NOADDR) && + !clusterBlacklistExists(g->nodename)) + { + clusterStartHandshake(g->ip,ntohs(g->port),ntohs(g->cport)); + } + } + + /* Next node */ + g++; + } +} + +/* IP -> string conversion. 'buf' is supposed to at least be 46 bytes. + * If 'announced_ip' length is non-zero, it is used instead of extracting + * the IP from the socket peer address. */ +void nodeIp2String(char *buf, clusterLink *link, char *announced_ip) { + if (announced_ip[0] != '\0') { + memcpy(buf,announced_ip,NET_IP_STR_LEN); + buf[NET_IP_STR_LEN-1] = '\0'; /* We are not sure the input is sane. */ + } else { + anetPeerToString(link->fd, buf, NET_IP_STR_LEN, NULL); + } +} + +/* Update the node address to the IP address that can be extracted + * from link->fd, or if hdr->myip is non empty, to the address the node + * is announcing us. The port is taken from the packet header as well. + * + * If the address or port changed, disconnect the node link so that we'll + * connect again to the new address. + * + * If the ip/port pair are already correct no operation is performed at + * all. + * + * The function returns 0 if the node address is still the same, + * otherwise 1 is returned. */ +int nodeUpdateAddressIfNeeded(clusterNode *node, clusterLink *link, + clusterMsg *hdr) +{ + char ip[NET_IP_STR_LEN] = {0}; + int port = ntohs(hdr->port); + int cport = ntohs(hdr->cport); + + /* We don't proceed if the link is the same as the sender link, as this + * function is designed to see if the node link is consistent with the + * symmetric link that is used to receive PINGs from the node. + * + * As a side effect this function never frees the passed 'link', so + * it is safe to call during packet processing. */ + if (link == node->link) return 0; + + nodeIp2String(ip,link,hdr->myip); + if (node->port == port && node->cport == cport && + strcmp(ip,node->ip) == 0) return 0; + + /* IP / port is different, update it. */ + memcpy(node->ip,ip,sizeof(ip)); + node->port = port; + node->cport = cport; + if (node->link) freeClusterLink(node->link); + node->flags &= ~CLUSTER_NODE_NOADDR; + serverLog(LL_WARNING,"Address updated for node %.40s, now %s:%d", + node->name, node->ip, node->port); + + /* Check if this is our master and we have to change the + * replication target as well. */ + if (nodeIsSlave(myself) && myself->slaveof == node) + replicationSetMaster(node->ip, node->port); + return 1; +} + +/* Reconfigure the specified node 'n' as a master. This function is called when + * a node that we believed to be a slave is now acting as master in order to + * update the state of the node. */ +void clusterSetNodeAsMaster(clusterNode *n) { + if (nodeIsMaster(n)) return; + + if (n->slaveof) { + clusterNodeRemoveSlave(n->slaveof,n); + if (n != myself) n->flags |= CLUSTER_NODE_MIGRATE_TO; + } + n->flags &= ~CLUSTER_NODE_SLAVE; + n->flags |= CLUSTER_NODE_MASTER; + n->slaveof = NULL; + + /* Update config and state. */ + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_UPDATE_STATE); +} + +/* This function is called when we receive a master configuration via a + * PING, PONG or UPDATE packet. What we receive is a node, a configEpoch of the + * node, and the set of slots claimed under this configEpoch. + * + * What we do is to rebind the slots with newer configuration compared to our + * local configuration, and if needed, we turn ourself into a replica of the + * node (see the function comments for more info). + * + * The 'sender' is the node for which we received a configuration update. + * Sometimes it is not actually the "Sender" of the information, like in the + * case we receive the info via an UPDATE packet. */ +void clusterUpdateSlotsConfigWith(clusterNode *sender, uint64_t senderConfigEpoch, unsigned char *slots) { + int j; + clusterNode *curmaster, *newmaster = NULL; + /* The dirty slots list is a list of slots for which we lose the ownership + * while having still keys inside. This usually happens after a failover + * or after a manual cluster reconfiguration operated by the admin. + * + * If the update message is not able to demote a master to slave (in this + * case we'll resync with the master updating the whole key space), we + * need to delete all the keys in the slots we lost ownership. */ + uint16_t dirty_slots[CLUSTER_SLOTS]; + int dirty_slots_count = 0; + + /* Here we set curmaster to this node or the node this node + * replicates to if it's a slave. In the for loop we are + * interested to check if slots are taken away from curmaster. */ + curmaster = nodeIsMaster(myself) ? myself : myself->slaveof; + + if (sender == myself) { + serverLog(LL_WARNING,"Discarding UPDATE message about myself."); + return; + } + + for (j = 0; j < CLUSTER_SLOTS; j++) { + if (bitmapTestBit(slots,j)) { + /* The slot is already bound to the sender of this message. */ + if (server.cluster->slots[j] == sender) continue; + + /* The slot is in importing state, it should be modified only + * manually via redis-trib (example: a resharding is in progress + * and the migrating side slot was already closed and is advertising + * a new config. We still want the slot to be closed manually). */ + if (server.cluster->importing_slots_from[j]) continue; + + /* We rebind the slot to the new node claiming it if: + * 1) The slot was unassigned or the new node claims it with a + * greater configEpoch. + * 2) We are not currently importing the slot. */ + if (server.cluster->slots[j] == NULL || + server.cluster->slots[j]->configEpoch < senderConfigEpoch) + { + /* Was this slot mine, and still contains keys? Mark it as + * a dirty slot. */ + if (server.cluster->slots[j] == myself && + countKeysInSlot(j) && + sender != myself) + { + dirty_slots[dirty_slots_count] = j; + dirty_slots_count++; + } + + if (server.cluster->slots[j] == curmaster) + newmaster = sender; + clusterDelSlot(j); + clusterAddSlot(sender,j); + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_UPDATE_STATE| + CLUSTER_TODO_FSYNC_CONFIG); + } + } + } + + /* If at least one slot was reassigned from a node to another node + * with a greater configEpoch, it is possible that: + * 1) We are a master left without slots. This means that we were + * failed over and we should turn into a replica of the new + * master. + * 2) We are a slave and our master is left without slots. We need + * to replicate to the new slots owner. */ + if (newmaster && curmaster->numslots == 0) { + serverLog(LL_WARNING, + "Configuration change detected. Reconfiguring myself " + "as a replica of %.40s", sender->name); + clusterSetMaster(sender); + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_UPDATE_STATE| + CLUSTER_TODO_FSYNC_CONFIG); + } else if (dirty_slots_count) { + /* If we are here, we received an update message which removed + * ownership for certain slots we still have keys about, but still + * we are serving some slots, so this master node was not demoted to + * a slave. + * + * In order to maintain a consistent state between keys and slots + * we need to remove all the keys from the slots we lost. */ + for (j = 0; j < dirty_slots_count; j++) + delKeysInSlot(dirty_slots[j]); + } +} + +/* When this function is called, there is a packet to process starting + * at node->rcvbuf. Releasing the buffer is up to the caller, so this + * function should just handle the higher level stuff of processing the + * packet, modifying the cluster state if needed. + * + * The function returns 1 if the link is still valid after the packet + * was processed, otherwise 0 if the link was freed since the packet + * processing lead to some inconsistency error (for instance a PONG + * received from the wrong sender ID). */ +int clusterProcessPacket(clusterLink *link) { + clusterMsg *hdr = (clusterMsg*) link->rcvbuf; + uint32_t totlen = ntohl(hdr->totlen); + uint16_t type = ntohs(hdr->type); + + if (type < CLUSTERMSG_TYPE_COUNT) + server.cluster->stats_bus_messages_received[type]++; + serverLog(LL_DEBUG,"--- Processing packet of type %d, %lu bytes", + type, (unsigned long) totlen); + + /* Perform sanity checks */ + if (totlen < 16) return 1; /* At least signature, version, totlen, count. */ + if (totlen > sdslen(link->rcvbuf)) return 1; + + if (ntohs(hdr->ver) != CLUSTER_PROTO_VER) { + /* Can't handle messages of different versions. */ + return 1; + } + + uint16_t flags = ntohs(hdr->flags); + uint64_t senderCurrentEpoch = 0, senderConfigEpoch = 0; + clusterNode *sender; + + if (type == CLUSTERMSG_TYPE_PING || type == CLUSTERMSG_TYPE_PONG || + type == CLUSTERMSG_TYPE_MEET) + { + uint16_t count = ntohs(hdr->count); + uint32_t explen; /* expected length of this packet */ + + explen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + explen += (sizeof(clusterMsgDataGossip)*count); + if (totlen != explen) return 1; + } else if (type == CLUSTERMSG_TYPE_FAIL) { + uint32_t explen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + + explen += sizeof(clusterMsgDataFail); + if (totlen != explen) return 1; + } else if (type == CLUSTERMSG_TYPE_PUBLISH) { + uint32_t explen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + + explen += sizeof(clusterMsgDataPublish) - + 8 + + ntohl(hdr->data.publish.msg.channel_len) + + ntohl(hdr->data.publish.msg.message_len); + if (totlen != explen) return 1; + } else if (type == CLUSTERMSG_TYPE_FAILOVER_AUTH_REQUEST || + type == CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK || + type == CLUSTERMSG_TYPE_MFSTART) + { + uint32_t explen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + + if (totlen != explen) return 1; + } else if (type == CLUSTERMSG_TYPE_UPDATE) { + uint32_t explen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + + explen += sizeof(clusterMsgDataUpdate); + if (totlen != explen) return 1; + } + + /* Check if the sender is a known node. */ + sender = clusterLookupNode(hdr->sender); + if (sender && !nodeInHandshake(sender)) { + /* Update our curretEpoch if we see a newer epoch in the cluster. */ + senderCurrentEpoch = ntohu64(hdr->currentEpoch); + senderConfigEpoch = ntohu64(hdr->configEpoch); + if (senderCurrentEpoch > server.cluster->currentEpoch) + server.cluster->currentEpoch = senderCurrentEpoch; + /* Update the sender configEpoch if it is publishing a newer one. */ + if (senderConfigEpoch > sender->configEpoch) { + sender->configEpoch = senderConfigEpoch; + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_FSYNC_CONFIG); + } + /* Update the replication offset info for this node. */ + sender->repl_offset = ntohu64(hdr->offset); + sender->repl_offset_time = mstime(); + /* If we are a slave performing a manual failover and our master + * sent its offset while already paused, populate the MF state. */ + if (server.cluster->mf_end && + nodeIsSlave(myself) && + myself->slaveof == sender && + hdr->mflags[0] & CLUSTERMSG_FLAG0_PAUSED && + server.cluster->mf_master_offset == 0) + { + server.cluster->mf_master_offset = sender->repl_offset; + serverLog(LL_WARNING, + "Received replication offset for paused " + "master manual failover: %lld", + server.cluster->mf_master_offset); + } + } + + /* Initial processing of PING and MEET requests replying with a PONG. */ + if (type == CLUSTERMSG_TYPE_PING || type == CLUSTERMSG_TYPE_MEET) { + serverLog(LL_DEBUG,"Ping packet received: %p", (void*)link->node); + + /* We use incoming MEET messages in order to set the address + * for 'myself', since only other cluster nodes will send us + * MEET messages on handshakes, when the cluster joins, or + * later if we changed address, and those nodes will use our + * official address to connect to us. So by obtaining this address + * from the socket is a simple way to discover / update our own + * address in the cluster without it being hardcoded in the config. + * + * However if we don't have an address at all, we update the address + * even with a normal PING packet. If it's wrong it will be fixed + * by MEET later. */ + if ((type == CLUSTERMSG_TYPE_MEET || myself->ip[0] == '\0') && + server.cluster_announce_ip == NULL) + { + char ip[NET_IP_STR_LEN]; + + if (anetSockName(link->fd,ip,sizeof(ip),NULL) != -1 && + strcmp(ip,myself->ip)) + { + memcpy(myself->ip,ip,NET_IP_STR_LEN); + serverLog(LL_WARNING,"IP address for this node updated to %s", + myself->ip); + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG); + } + } + + /* Add this node if it is new for us and the msg type is MEET. + * In this stage we don't try to add the node with the right + * flags, slaveof pointer, and so forth, as this details will be + * resolved when we'll receive PONGs from the node. */ + if (!sender && type == CLUSTERMSG_TYPE_MEET) { + clusterNode *node; + + node = createClusterNode(NULL,CLUSTER_NODE_HANDSHAKE); + nodeIp2String(node->ip,link,hdr->myip); + node->port = ntohs(hdr->port); + node->cport = ntohs(hdr->cport); + clusterAddNode(node); + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG); + } + + /* If this is a MEET packet from an unknown node, we still process + * the gossip section here since we have to trust the sender because + * of the message type. */ + if (!sender && type == CLUSTERMSG_TYPE_MEET) + clusterProcessGossipSection(hdr,link); + + /* Anyway reply with a PONG */ + clusterSendPing(link,CLUSTERMSG_TYPE_PONG); + } + + /* PING, PONG, MEET: process config information. */ + if (type == CLUSTERMSG_TYPE_PING || type == CLUSTERMSG_TYPE_PONG || + type == CLUSTERMSG_TYPE_MEET) + { + serverLog(LL_DEBUG,"%s packet received: %p", + type == CLUSTERMSG_TYPE_PING ? "ping" : "pong", + (void*)link->node); + if (link->node) { + if (nodeInHandshake(link->node)) { + /* If we already have this node, try to change the + * IP/port of the node with the new one. */ + if (sender) { + serverLog(LL_VERBOSE, + "Handshake: we already know node %.40s, " + "updating the address if needed.", sender->name); + if (nodeUpdateAddressIfNeeded(sender,link,hdr)) + { + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_UPDATE_STATE); + } + /* Free this node as we already have it. This will + * cause the link to be freed as well. */ + clusterDelNode(link->node); + return 0; + } + + /* First thing to do is replacing the random name with the + * right node name if this was a handshake stage. */ + clusterRenameNode(link->node, hdr->sender); + serverLog(LL_DEBUG,"Handshake with node %.40s completed.", + link->node->name); + link->node->flags &= ~CLUSTER_NODE_HANDSHAKE; + link->node->flags |= flags&(CLUSTER_NODE_MASTER|CLUSTER_NODE_SLAVE); + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG); + } else if (memcmp(link->node->name,hdr->sender, + CLUSTER_NAMELEN) != 0) + { + /* If the reply has a non matching node ID we + * disconnect this node and set it as not having an associated + * address. */ + serverLog(LL_DEBUG,"PONG contains mismatching sender ID. About node %.40s added %d ms ago, having flags %d", + link->node->name, + (int)(mstime()-(link->node->ctime)), + link->node->flags); + link->node->flags |= CLUSTER_NODE_NOADDR; + link->node->ip[0] = '\0'; + link->node->port = 0; + link->node->cport = 0; + freeClusterLink(link); + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG); + return 0; + } + } + + /* Update the node address if it changed. */ + if (sender && type == CLUSTERMSG_TYPE_PING && + !nodeInHandshake(sender) && + nodeUpdateAddressIfNeeded(sender,link,hdr)) + { + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_UPDATE_STATE); + } + + /* Update our info about the node */ + if (link->node && type == CLUSTERMSG_TYPE_PONG) { + link->node->pong_received = mstime(); + link->node->ping_sent = 0; + + /* The PFAIL condition can be reversed without external + * help if it is momentary (that is, if it does not + * turn into a FAIL state). + * + * The FAIL condition is also reversible under specific + * conditions detected by clearNodeFailureIfNeeded(). */ + if (nodeTimedOut(link->node)) { + link->node->flags &= ~CLUSTER_NODE_PFAIL; + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_UPDATE_STATE); + } else if (nodeFailed(link->node)) { + clearNodeFailureIfNeeded(link->node); + } + } + + /* Check for role switch: slave -> master or master -> slave. */ + if (sender) { + if (!memcmp(hdr->slaveof,CLUSTER_NODE_NULL_NAME, + sizeof(hdr->slaveof))) + { + /* Node is a master. */ + clusterSetNodeAsMaster(sender); + } else { + /* Node is a slave. */ + clusterNode *master = clusterLookupNode(hdr->slaveof); + + if (nodeIsMaster(sender)) { + /* Master turned into a slave! Reconfigure the node. */ + clusterDelNodeSlots(sender); + sender->flags &= ~(CLUSTER_NODE_MASTER| + CLUSTER_NODE_MIGRATE_TO); + sender->flags |= CLUSTER_NODE_SLAVE; + + /* Update config and state. */ + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_UPDATE_STATE); + } + + /* Master node changed for this slave? */ + if (master && sender->slaveof != master) { + if (sender->slaveof) + clusterNodeRemoveSlave(sender->slaveof,sender); + clusterNodeAddSlave(master,sender); + sender->slaveof = master; + + /* Update config. */ + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG); + } + } + } + + /* Update our info about served slots. + * + * Note: this MUST happen after we update the master/slave state + * so that CLUSTER_NODE_MASTER flag will be set. */ + + /* Many checks are only needed if the set of served slots this + * instance claims is different compared to the set of slots we have + * for it. Check this ASAP to avoid other computational expansive + * checks later. */ + clusterNode *sender_master = NULL; /* Sender or its master if slave. */ + int dirty_slots = 0; /* Sender claimed slots don't match my view? */ + + if (sender) { + sender_master = nodeIsMaster(sender) ? sender : sender->slaveof; + if (sender_master) { + dirty_slots = memcmp(sender_master->slots, + hdr->myslots,sizeof(hdr->myslots)) != 0; + } + } + + /* 1) If the sender of the message is a master, and we detected that + * the set of slots it claims changed, scan the slots to see if we + * need to update our configuration. */ + if (sender && nodeIsMaster(sender) && dirty_slots) + clusterUpdateSlotsConfigWith(sender,senderConfigEpoch,hdr->myslots); + + /* 2) We also check for the reverse condition, that is, the sender + * claims to serve slots we know are served by a master with a + * greater configEpoch. If this happens we inform the sender. + * + * This is useful because sometimes after a partition heals, a + * reappearing master may be the last one to claim a given set of + * hash slots, but with a configuration that other instances know to + * be deprecated. Example: + * + * A and B are master and slave for slots 1,2,3. + * A is partitioned away, B gets promoted. + * B is partitioned away, and A returns available. + * + * Usually B would PING A publishing its set of served slots and its + * configEpoch, but because of the partition B can't inform A of the + * new configuration, so other nodes that have an updated table must + * do it. In this way A will stop to act as a master (or can try to + * failover if there are the conditions to win the election). */ + if (sender && dirty_slots) { + int j; + + for (j = 0; j < CLUSTER_SLOTS; j++) { + if (bitmapTestBit(hdr->myslots,j)) { + if (server.cluster->slots[j] == sender || + server.cluster->slots[j] == NULL) continue; + if (server.cluster->slots[j]->configEpoch > + senderConfigEpoch) + { + serverLog(LL_VERBOSE, + "Node %.40s has old slots configuration, sending " + "an UPDATE message about %.40s", + sender->name, server.cluster->slots[j]->name); + clusterSendUpdate(sender->link, + server.cluster->slots[j]); + + /* TODO: instead of exiting the loop send every other + * UPDATE packet for other nodes that are the new owner + * of sender's slots. */ + break; + } + } + } + } + + /* If our config epoch collides with the sender's try to fix + * the problem. */ + if (sender && + nodeIsMaster(myself) && nodeIsMaster(sender) && + senderConfigEpoch == myself->configEpoch) + { + clusterHandleConfigEpochCollision(sender); + } + + /* Get info from the gossip section */ + if (sender) clusterProcessGossipSection(hdr,link); + } else if (type == CLUSTERMSG_TYPE_FAIL) { + clusterNode *failing; + + if (sender) { + failing = clusterLookupNode(hdr->data.fail.about.nodename); + if (failing && + !(failing->flags & (CLUSTER_NODE_FAIL|CLUSTER_NODE_MYSELF))) + { + serverLog(LL_NOTICE, + "FAIL message received from %.40s about %.40s", + hdr->sender, hdr->data.fail.about.nodename); + failing->flags |= CLUSTER_NODE_FAIL; + failing->fail_time = mstime(); + failing->flags &= ~CLUSTER_NODE_PFAIL; + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_UPDATE_STATE); + } + } else { + serverLog(LL_NOTICE, + "Ignoring FAIL message from unknown node %.40s about %.40s", + hdr->sender, hdr->data.fail.about.nodename); + } + } else if (type == CLUSTERMSG_TYPE_PUBLISH) { + robj *channel, *message; + uint32_t channel_len, message_len; + + /* Don't bother creating useless objects if there are no + * Pub/Sub subscribers. */ + if (dictSize(server.pubsub_channels) || + listLength(server.pubsub_patterns)) + { + channel_len = ntohl(hdr->data.publish.msg.channel_len); + message_len = ntohl(hdr->data.publish.msg.message_len); + channel = createStringObject( + (char*)hdr->data.publish.msg.bulk_data,channel_len); + message = createStringObject( + (char*)hdr->data.publish.msg.bulk_data+channel_len, + message_len); + pubsubPublishMessage(channel,message); + decrRefCount(channel); + decrRefCount(message); + } + } else if (type == CLUSTERMSG_TYPE_FAILOVER_AUTH_REQUEST) { + if (!sender) return 1; /* We don't know that node. */ + clusterSendFailoverAuthIfNeeded(sender,hdr); + } else if (type == CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK) { + if (!sender) return 1; /* We don't know that node. */ + /* We consider this vote only if the sender is a master serving + * a non zero number of slots, and its currentEpoch is greater or + * equal to epoch where this node started the election. */ + if (nodeIsMaster(sender) && sender->numslots > 0 && + senderCurrentEpoch >= server.cluster->failover_auth_epoch) + { + server.cluster->failover_auth_count++; + /* Maybe we reached a quorum here, set a flag to make sure + * we check ASAP. */ + clusterDoBeforeSleep(CLUSTER_TODO_HANDLE_FAILOVER); + } + } else if (type == CLUSTERMSG_TYPE_MFSTART) { + /* This message is acceptable only if I'm a master and the sender + * is one of my slaves. */ + if (!sender || sender->slaveof != myself) return 1; + /* Manual failover requested from slaves. Initialize the state + * accordingly. */ + resetManualFailover(); + server.cluster->mf_end = mstime() + CLUSTER_MF_TIMEOUT; + server.cluster->mf_slave = sender; + pauseClients(mstime()+(CLUSTER_MF_TIMEOUT*2)); + serverLog(LL_WARNING,"Manual failover requested by slave %.40s.", + sender->name); + } else if (type == CLUSTERMSG_TYPE_UPDATE) { + clusterNode *n; /* The node the update is about. */ + uint64_t reportedConfigEpoch = + ntohu64(hdr->data.update.nodecfg.configEpoch); + + if (!sender) return 1; /* We don't know the sender. */ + n = clusterLookupNode(hdr->data.update.nodecfg.nodename); + if (!n) return 1; /* We don't know the reported node. */ + if (n->configEpoch >= reportedConfigEpoch) return 1; /* Nothing new. */ + + /* If in our current config the node is a slave, set it as a master. */ + if (nodeIsSlave(n)) clusterSetNodeAsMaster(n); + + /* Update the node's configEpoch. */ + n->configEpoch = reportedConfigEpoch; + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_FSYNC_CONFIG); + + /* Check the bitmap of served slots and update our + * config accordingly. */ + clusterUpdateSlotsConfigWith(n,reportedConfigEpoch, + hdr->data.update.nodecfg.slots); + } else { + serverLog(LL_WARNING,"Received unknown packet type: %d", type); + } + return 1; +} + +/* This function is called when we detect the link with this node is lost. + We set the node as no longer connected. The Cluster Cron will detect + this connection and will try to get it connected again. + + Instead if the node is a temporary node used to accept a query, we + completely free the node on error. */ +void handleLinkIOError(clusterLink *link) { + freeClusterLink(link); +} + +/* Send data. This is handled using a trivial send buffer that gets + * consumed by write(). We don't try to optimize this for speed too much + * as this is a very low traffic channel. */ +void clusterWriteHandler(aeEventLoop *el, int fd, void *privdata, int mask) { + clusterLink *link = (clusterLink*) privdata; + ssize_t nwritten; + UNUSED(el); + UNUSED(mask); + + nwritten = write(fd, link->sndbuf, sdslen(link->sndbuf)); + if (nwritten <= 0) { + serverLog(LL_DEBUG,"I/O error writing to node link: %s", + strerror(errno)); + handleLinkIOError(link); + return; + } + sdsrange(link->sndbuf,nwritten,-1); + if (sdslen(link->sndbuf) == 0) + aeDeleteFileEvent(server.el, link->fd, AE_WRITABLE); +} + +/* Read data. Try to read the first field of the header first to check the + * full length of the packet. When a whole packet is in memory this function + * will call the function to process the packet. And so forth. */ +void clusterReadHandler(aeEventLoop *el, int fd, void *privdata, int mask) { + char buf[sizeof(clusterMsg)]; + ssize_t nread; + clusterMsg *hdr; + clusterLink *link = (clusterLink*) privdata; + unsigned int readlen, rcvbuflen; + UNUSED(el); + UNUSED(mask); + + while(1) { /* Read as long as there is data to read. */ + rcvbuflen = sdslen(link->rcvbuf); + if (rcvbuflen < 8) { + /* First, obtain the first 8 bytes to get the full message + * length. */ + readlen = 8 - rcvbuflen; + } else { + /* Finally read the full message. */ + hdr = (clusterMsg*) link->rcvbuf; + if (rcvbuflen == 8) { + /* Perform some sanity check on the message signature + * and length. */ + if (memcmp(hdr->sig,"RCmb",4) != 0 || + ntohl(hdr->totlen) < CLUSTERMSG_MIN_LEN) + { + serverLog(LL_WARNING, + "Bad message length or signature received " + "from Cluster bus."); + handleLinkIOError(link); + return; + } + } + readlen = ntohl(hdr->totlen) - rcvbuflen; + if (readlen > sizeof(buf)) readlen = sizeof(buf); + } + + nread = read(fd,buf,readlen); + if (nread == -1 && errno == EAGAIN) return; /* No more data ready. */ + + if (nread <= 0) { + /* I/O error... */ + serverLog(LL_DEBUG,"I/O error reading from node link: %s", + (nread == 0) ? "connection closed" : strerror(errno)); + handleLinkIOError(link); + return; + } else { + /* Read data and recast the pointer to the new buffer. */ + link->rcvbuf = sdscatlen(link->rcvbuf,buf,nread); + hdr = (clusterMsg*) link->rcvbuf; + rcvbuflen += nread; + } + + /* Total length obtained? Process this packet. */ + if (rcvbuflen >= 8 && rcvbuflen == ntohl(hdr->totlen)) { + if (clusterProcessPacket(link)) { + sdsfree(link->rcvbuf); + link->rcvbuf = sdsempty(); + } else { + return; /* Link no longer valid. */ + } + } + } +} + +/* Put stuff into the send buffer. + * + * It is guaranteed that this function will never have as a side effect + * the link to be invalidated, so it is safe to call this function + * from event handlers that will do stuff with the same link later. */ +void clusterSendMessage(clusterLink *link, unsigned char *msg, size_t msglen) { + if (sdslen(link->sndbuf) == 0 && msglen != 0) + aeCreateFileEvent(server.el,link->fd,AE_WRITABLE, + clusterWriteHandler,link); + + link->sndbuf = sdscatlen(link->sndbuf, msg, msglen); + + /* Populate sent messages stats. */ + clusterMsg *hdr = (clusterMsg*) msg; + uint16_t type = ntohs(hdr->type); + if (type < CLUSTERMSG_TYPE_COUNT) + server.cluster->stats_bus_messages_sent[type]++; +} + +/* Send a message to all the nodes that are part of the cluster having + * a connected link. + * + * It is guaranteed that this function will never have as a side effect + * some node->link to be invalidated, so it is safe to call this function + * from event handlers that will do stuff with node links later. */ +void clusterBroadcastMessage(void *buf, size_t len) { + dictIterator *di; + dictEntry *de; + + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + + if (!node->link) continue; + if (node->flags & (CLUSTER_NODE_MYSELF|CLUSTER_NODE_HANDSHAKE)) + continue; + clusterSendMessage(node->link,buf,len); + } + dictReleaseIterator(di); +} + +/* Build the message header. hdr must point to a buffer at least + * sizeof(clusterMsg) in bytes. */ +void clusterBuildMessageHdr(clusterMsg *hdr, int type) { + int totlen = 0; + uint64_t offset; + clusterNode *master; + + /* If this node is a master, we send its slots bitmap and configEpoch. + * If this node is a slave we send the master's information instead (the + * node is flagged as slave so the receiver knows that it is NOT really + * in charge for this slots. */ + master = (nodeIsSlave(myself) && myself->slaveof) ? + myself->slaveof : myself; + + memset(hdr,0,sizeof(*hdr)); + hdr->ver = htons(CLUSTER_PROTO_VER); + hdr->sig[0] = 'R'; + hdr->sig[1] = 'C'; + hdr->sig[2] = 'm'; + hdr->sig[3] = 'b'; + hdr->type = htons(type); + memcpy(hdr->sender,myself->name,CLUSTER_NAMELEN); + + /* If cluster-announce-ip option is enabled, force the receivers of our + * packets to use the specified address for this node. Otherwise if the + * first byte is zero, they'll do auto discovery. */ + memset(hdr->myip,0,NET_IP_STR_LEN); + if (server.cluster_announce_ip) { + strncpy(hdr->myip,server.cluster_announce_ip,NET_IP_STR_LEN); + hdr->myip[NET_IP_STR_LEN-1] = '\0'; + } + + /* Handle cluster-announce-port as well. */ + int announced_port = server.cluster_announce_port ? + server.cluster_announce_port : server.port; + int announced_cport = server.cluster_announce_bus_port ? + server.cluster_announce_bus_port : + (server.port + CLUSTER_PORT_INCR); + + memcpy(hdr->myslots,master->slots,sizeof(hdr->myslots)); + memset(hdr->slaveof,0,CLUSTER_NAMELEN); + if (myself->slaveof != NULL) + memcpy(hdr->slaveof,myself->slaveof->name, CLUSTER_NAMELEN); + hdr->port = htons(announced_port); + hdr->cport = htons(announced_cport); + hdr->flags = htons(myself->flags); + hdr->state = server.cluster->state; + + /* Set the currentEpoch and configEpochs. */ + hdr->currentEpoch = htonu64(server.cluster->currentEpoch); + hdr->configEpoch = htonu64(master->configEpoch); + + /* Set the replication offset. */ + if (nodeIsSlave(myself)) + offset = replicationGetSlaveOffset(); + else + offset = server.master_repl_offset; + hdr->offset = htonu64(offset); + + /* Set the message flags. */ + if (nodeIsMaster(myself) && server.cluster->mf_end) + hdr->mflags[0] |= CLUSTERMSG_FLAG0_PAUSED; + + /* Compute the message length for certain messages. For other messages + * this is up to the caller. */ + if (type == CLUSTERMSG_TYPE_FAIL) { + totlen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + totlen += sizeof(clusterMsgDataFail); + } else if (type == CLUSTERMSG_TYPE_UPDATE) { + totlen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + totlen += sizeof(clusterMsgDataUpdate); + } + hdr->totlen = htonl(totlen); + /* For PING, PONG, and MEET, fixing the totlen field is up to the caller. */ +} + +/* Return non zero if the node is already present in the gossip section of the + * message pointed by 'hdr' and having 'count' gossip entries. Otherwise + * zero is returned. Helper for clusterSendPing(). */ +int clusterNodeIsInGossipSection(clusterMsg *hdr, int count, clusterNode *n) { + int j; + for (j = 0; j < count; j++) { + if (memcmp(hdr->data.ping.gossip[j].nodename,n->name, + CLUSTER_NAMELEN) == 0) break; + } + return j != count; +} + +/* Set the i-th entry of the gossip section in the message pointed by 'hdr' + * to the info of the specified node 'n'. */ +void clusterSetGossipEntry(clusterMsg *hdr, int i, clusterNode *n) { + clusterMsgDataGossip *gossip; + gossip = &(hdr->data.ping.gossip[i]); + memcpy(gossip->nodename,n->name,CLUSTER_NAMELEN); + gossip->ping_sent = htonl(n->ping_sent/1000); + gossip->pong_received = htonl(n->pong_received/1000); + memcpy(gossip->ip,n->ip,sizeof(n->ip)); + gossip->port = htons(n->port); + gossip->cport = htons(n->cport); + gossip->flags = htons(n->flags); + gossip->notused1 = 0; +} + +/* Send a PING or PONG packet to the specified node, making sure to add enough + * gossip informations. */ +void clusterSendPing(clusterLink *link, int type) { + unsigned char *buf; + clusterMsg *hdr; + int gossipcount = 0; /* Number of gossip sections added so far. */ + int wanted; /* Number of gossip sections we want to append if possible. */ + int totlen; /* Total packet length. */ + /* freshnodes is the max number of nodes we can hope to append at all: + * nodes available minus two (ourself and the node we are sending the + * message to). However practically there may be less valid nodes since + * nodes in handshake state, disconnected, are not considered. */ + int freshnodes = dictSize(server.cluster->nodes)-2; + + /* How many gossip sections we want to add? 1/10 of the number of nodes + * and anyway at least 3. Why 1/10? + * + * If we have N masters, with N/10 entries, and we consider that in + * node_timeout we exchange with each other node at least 4 packets + * (we ping in the worst case in node_timeout/2 time, and we also + * receive two pings from the host), we have a total of 8 packets + * in the node_timeout*2 falure reports validity time. So we have + * that, for a single PFAIL node, we can expect to receive the following + * number of failure reports (in the specified window of time): + * + * PROB * GOSSIP_ENTRIES_PER_PACKET * TOTAL_PACKETS: + * + * PROB = probability of being featured in a single gossip entry, + * which is 1 / NUM_OF_NODES. + * ENTRIES = 10. + * TOTAL_PACKETS = 2 * 4 * NUM_OF_MASTERS. + * + * If we assume we have just masters (so num of nodes and num of masters + * is the same), with 1/10 we always get over the majority, and specifically + * 80% of the number of nodes, to account for many masters failing at the + * same time. + * + * Since we have non-voting slaves that lower the probability of an entry + * to feature our node, we set the number of entires per packet as + * 10% of the total nodes we have. */ + wanted = floor(dictSize(server.cluster->nodes)/10); + if (wanted < 3) wanted = 3; + if (wanted > freshnodes) wanted = freshnodes; + + /* Include all the nodes in PFAIL state, so that failure reports are + * faster to propagate to go from PFAIL to FAIL state. */ + int pfail_wanted = server.cluster->stats_pfail_nodes; + + /* Compute the maxium totlen to allocate our buffer. We'll fix the totlen + * later according to the number of gossip sections we really were able + * to put inside the packet. */ + totlen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + totlen += (sizeof(clusterMsgDataGossip)*(wanted+pfail_wanted)); + /* Note: clusterBuildMessageHdr() expects the buffer to be always at least + * sizeof(clusterMsg) or more. */ + if (totlen < (int)sizeof(clusterMsg)) totlen = sizeof(clusterMsg); + buf = zcalloc(totlen); + hdr = (clusterMsg*) buf; + + /* Populate the header. */ + if (link->node && type == CLUSTERMSG_TYPE_PING) + link->node->ping_sent = mstime(); + clusterBuildMessageHdr(hdr,type); + + /* Populate the gossip fields */ + int maxiterations = wanted*3; + while(freshnodes > 0 && gossipcount < wanted && maxiterations--) { + dictEntry *de = dictGetRandomKey(server.cluster->nodes); + clusterNode *this = dictGetVal(de); + + /* Don't include this node: the whole packet header is about us + * already, so we just gossip about other nodes. */ + if (this == myself) continue; + + /* PFAIL nodes will be added later. */ + if (this->flags & CLUSTER_NODE_PFAIL) continue; + + /* In the gossip section don't include: + * 1) Nodes in HANDSHAKE state. + * 3) Nodes with the NOADDR flag set. + * 4) Disconnected nodes if they don't have configured slots. + */ + if (this->flags & (CLUSTER_NODE_HANDSHAKE|CLUSTER_NODE_NOADDR) || + (this->link == NULL && this->numslots == 0)) + { + freshnodes--; /* Tecnically not correct, but saves CPU. */ + continue; + } + + /* Do not add a node we already have. */ + if (clusterNodeIsInGossipSection(hdr,gossipcount,this)) continue; + + /* Add it */ + clusterSetGossipEntry(hdr,gossipcount,this); + freshnodes--; + gossipcount++; + } + + /* If there are PFAIL nodes, add them at the end. */ + if (pfail_wanted) { + dictIterator *di; + dictEntry *de; + + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL && pfail_wanted > 0) { + clusterNode *node = dictGetVal(de); + if (node->flags & CLUSTER_NODE_HANDSHAKE) continue; + if (node->flags & CLUSTER_NODE_NOADDR) continue; + if (!(node->flags & CLUSTER_NODE_PFAIL)) continue; + clusterSetGossipEntry(hdr,gossipcount,node); + freshnodes--; + gossipcount++; + /* We take the count of the slots we allocated, since the + * PFAIL stats may not match perfectly with the current number + * of PFAIL nodes. */ + pfail_wanted--; + } + dictReleaseIterator(di); + } + + /* Ready to send... fix the totlen fiend and queue the message in the + * output buffer. */ + totlen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + totlen += (sizeof(clusterMsgDataGossip)*gossipcount); + hdr->count = htons(gossipcount); + hdr->totlen = htonl(totlen); + clusterSendMessage(link,buf,totlen); + zfree(buf); +} + +/* Send a PONG packet to every connected node that's not in handshake state + * and for which we have a valid link. + * + * In Redis Cluster pongs are not used just for failure detection, but also + * to carry important configuration information. So broadcasting a pong is + * useful when something changes in the configuration and we want to make + * the cluster aware ASAP (for instance after a slave promotion). + * + * The 'target' argument specifies the receiving instances using the + * defines below: + * + * CLUSTER_BROADCAST_ALL -> All known instances. + * CLUSTER_BROADCAST_LOCAL_SLAVES -> All slaves in my master-slaves ring. + */ +#define CLUSTER_BROADCAST_ALL 0 +#define CLUSTER_BROADCAST_LOCAL_SLAVES 1 +void clusterBroadcastPong(int target) { + dictIterator *di; + dictEntry *de; + + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + + if (!node->link) continue; + if (node == myself || nodeInHandshake(node)) continue; + if (target == CLUSTER_BROADCAST_LOCAL_SLAVES) { + int local_slave = + nodeIsSlave(node) && node->slaveof && + (node->slaveof == myself || node->slaveof == myself->slaveof); + if (!local_slave) continue; + } + clusterSendPing(node->link,CLUSTERMSG_TYPE_PONG); + } + dictReleaseIterator(di); +} + +/* Send a PUBLISH message. + * + * If link is NULL, then the message is broadcasted to the whole cluster. */ +void clusterSendPublish(clusterLink *link, robj *channel, robj *message) { + unsigned char buf[sizeof(clusterMsg)], *payload; + clusterMsg *hdr = (clusterMsg*) buf; + uint32_t totlen; + uint32_t channel_len, message_len; + + channel = getDecodedObject(channel); + message = getDecodedObject(message); + channel_len = sdslen(channel->ptr); + message_len = sdslen(message->ptr); + + clusterBuildMessageHdr(hdr,CLUSTERMSG_TYPE_PUBLISH); + totlen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + totlen += sizeof(clusterMsgDataPublish) - 8 + channel_len + message_len; + + hdr->data.publish.msg.channel_len = htonl(channel_len); + hdr->data.publish.msg.message_len = htonl(message_len); + hdr->totlen = htonl(totlen); + + /* Try to use the local buffer if possible */ + if (totlen < sizeof(buf)) { + payload = buf; + } else { + payload = zmalloc(totlen); + memcpy(payload,hdr,sizeof(*hdr)); + hdr = (clusterMsg*) payload; + } + memcpy(hdr->data.publish.msg.bulk_data,channel->ptr,sdslen(channel->ptr)); + memcpy(hdr->data.publish.msg.bulk_data+sdslen(channel->ptr), + message->ptr,sdslen(message->ptr)); + + if (link) + clusterSendMessage(link,payload,totlen); + else + clusterBroadcastMessage(payload,totlen); + + decrRefCount(channel); + decrRefCount(message); + if (payload != buf) zfree(payload); +} + +/* Send a FAIL message to all the nodes we are able to contact. + * The FAIL message is sent when we detect that a node is failing + * (CLUSTER_NODE_PFAIL) and we also receive a gossip confirmation of this: + * we switch the node state to CLUSTER_NODE_FAIL and ask all the other + * nodes to do the same ASAP. */ +void clusterSendFail(char *nodename) { + unsigned char buf[sizeof(clusterMsg)]; + clusterMsg *hdr = (clusterMsg*) buf; + + clusterBuildMessageHdr(hdr,CLUSTERMSG_TYPE_FAIL); + memcpy(hdr->data.fail.about.nodename,nodename,CLUSTER_NAMELEN); + clusterBroadcastMessage(buf,ntohl(hdr->totlen)); +} + +/* Send an UPDATE message to the specified link carrying the specified 'node' + * slots configuration. The node name, slots bitmap, and configEpoch info + * are included. */ +void clusterSendUpdate(clusterLink *link, clusterNode *node) { + unsigned char buf[sizeof(clusterMsg)]; + clusterMsg *hdr = (clusterMsg*) buf; + + if (link == NULL) return; + clusterBuildMessageHdr(hdr,CLUSTERMSG_TYPE_UPDATE); + memcpy(hdr->data.update.nodecfg.nodename,node->name,CLUSTER_NAMELEN); + hdr->data.update.nodecfg.configEpoch = htonu64(node->configEpoch); + memcpy(hdr->data.update.nodecfg.slots,node->slots,sizeof(node->slots)); + clusterSendMessage(link,buf,ntohl(hdr->totlen)); +} + +/* ----------------------------------------------------------------------------- + * CLUSTER Pub/Sub support + * + * For now we do very little, just propagating PUBLISH messages across the whole + * cluster. In the future we'll try to get smarter and avoiding propagating those + * messages to hosts without receives for a given channel. + * -------------------------------------------------------------------------- */ +void clusterPropagatePublish(robj *channel, robj *message) { + clusterSendPublish(NULL, channel, message); +} + +/* ----------------------------------------------------------------------------- + * SLAVE node specific functions + * -------------------------------------------------------------------------- */ + +/* This function sends a FAILOVE_AUTH_REQUEST message to every node in order to + * see if there is the quorum for this slave instance to failover its failing + * master. + * + * Note that we send the failover request to everybody, master and slave nodes, + * but only the masters are supposed to reply to our query. */ +void clusterRequestFailoverAuth(void) { + unsigned char buf[sizeof(clusterMsg)]; + clusterMsg *hdr = (clusterMsg*) buf; + uint32_t totlen; + + clusterBuildMessageHdr(hdr,CLUSTERMSG_TYPE_FAILOVER_AUTH_REQUEST); + /* If this is a manual failover, set the CLUSTERMSG_FLAG0_FORCEACK bit + * in the header to communicate the nodes receiving the message that + * they should authorized the failover even if the master is working. */ + if (server.cluster->mf_end) hdr->mflags[0] |= CLUSTERMSG_FLAG0_FORCEACK; + totlen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + hdr->totlen = htonl(totlen); + clusterBroadcastMessage(buf,totlen); +} + +/* Send a FAILOVER_AUTH_ACK message to the specified node. */ +void clusterSendFailoverAuth(clusterNode *node) { + unsigned char buf[sizeof(clusterMsg)]; + clusterMsg *hdr = (clusterMsg*) buf; + uint32_t totlen; + + if (!node->link) return; + clusterBuildMessageHdr(hdr,CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK); + totlen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + hdr->totlen = htonl(totlen); + clusterSendMessage(node->link,buf,totlen); +} + +/* Send a MFSTART message to the specified node. */ +void clusterSendMFStart(clusterNode *node) { + unsigned char buf[sizeof(clusterMsg)]; + clusterMsg *hdr = (clusterMsg*) buf; + uint32_t totlen; + + if (!node->link) return; + clusterBuildMessageHdr(hdr,CLUSTERMSG_TYPE_MFSTART); + totlen = sizeof(clusterMsg)-sizeof(union clusterMsgData); + hdr->totlen = htonl(totlen); + clusterSendMessage(node->link,buf,totlen); +} + +/* Vote for the node asking for our vote if there are the conditions. */ +void clusterSendFailoverAuthIfNeeded(clusterNode *node, clusterMsg *request) { + clusterNode *master = node->slaveof; + uint64_t requestCurrentEpoch = ntohu64(request->currentEpoch); + uint64_t requestConfigEpoch = ntohu64(request->configEpoch); + unsigned char *claimed_slots = request->myslots; + int force_ack = request->mflags[0] & CLUSTERMSG_FLAG0_FORCEACK; + int j; + + /* IF we are not a master serving at least 1 slot, we don't have the + * right to vote, as the cluster size in Redis Cluster is the number + * of masters serving at least one slot, and quorum is the cluster + * size + 1 */ + if (nodeIsSlave(myself) || myself->numslots == 0) return; + + /* Request epoch must be >= our currentEpoch. + * Note that it is impossible for it to actually be greater since + * our currentEpoch was updated as a side effect of receiving this + * request, if the request epoch was greater. */ + if (requestCurrentEpoch < server.cluster->currentEpoch) { + serverLog(LL_WARNING, + "Failover auth denied to %.40s: reqEpoch (%llu) < curEpoch(%llu)", + node->name, + (unsigned long long) requestCurrentEpoch, + (unsigned long long) server.cluster->currentEpoch); + return; + } + + /* I already voted for this epoch? Return ASAP. */ + if (server.cluster->lastVoteEpoch == server.cluster->currentEpoch) { + serverLog(LL_WARNING, + "Failover auth denied to %.40s: already voted for epoch %llu", + node->name, + (unsigned long long) server.cluster->currentEpoch); + return; + } + + /* Node must be a slave and its master down. + * The master can be non failing if the request is flagged + * with CLUSTERMSG_FLAG0_FORCEACK (manual failover). */ + if (nodeIsMaster(node) || master == NULL || + (!nodeFailed(master) && !force_ack)) + { + if (nodeIsMaster(node)) { + serverLog(LL_WARNING, + "Failover auth denied to %.40s: it is a master node", + node->name); + } else if (master == NULL) { + serverLog(LL_WARNING, + "Failover auth denied to %.40s: I don't know its master", + node->name); + } else if (!nodeFailed(master)) { + serverLog(LL_WARNING, + "Failover auth denied to %.40s: its master is up", + node->name); + } + return; + } + + /* We did not voted for a slave about this master for two + * times the node timeout. This is not strictly needed for correctness + * of the algorithm but makes the base case more linear. */ + if (mstime() - node->slaveof->voted_time < server.cluster_node_timeout * 2) + { + serverLog(LL_WARNING, + "Failover auth denied to %.40s: " + "can't vote about this master before %lld milliseconds", + node->name, + (long long) ((server.cluster_node_timeout*2)- + (mstime() - node->slaveof->voted_time))); + return; + } + + /* The slave requesting the vote must have a configEpoch for the claimed + * slots that is >= the one of the masters currently serving the same + * slots in the current configuration. */ + for (j = 0; j < CLUSTER_SLOTS; j++) { + if (bitmapTestBit(claimed_slots, j) == 0) continue; + if (server.cluster->slots[j] == NULL || + server.cluster->slots[j]->configEpoch <= requestConfigEpoch) + { + continue; + } + /* If we reached this point we found a slot that in our current slots + * is served by a master with a greater configEpoch than the one claimed + * by the slave requesting our vote. Refuse to vote for this slave. */ + serverLog(LL_WARNING, + "Failover auth denied to %.40s: " + "slot %d epoch (%llu) > reqEpoch (%llu)", + node->name, j, + (unsigned long long) server.cluster->slots[j]->configEpoch, + (unsigned long long) requestConfigEpoch); + return; + } + + /* We can vote for this slave. */ + clusterSendFailoverAuth(node); + server.cluster->lastVoteEpoch = server.cluster->currentEpoch; + node->slaveof->voted_time = mstime(); + serverLog(LL_WARNING, "Failover auth granted to %.40s for epoch %llu", + node->name, (unsigned long long) server.cluster->currentEpoch); +} + +/* This function returns the "rank" of this instance, a slave, in the context + * of its master-slaves ring. The rank of the slave is given by the number of + * other slaves for the same master that have a better replication offset + * compared to the local one (better means, greater, so they claim more data). + * + * A slave with rank 0 is the one with the greatest (most up to date) + * replication offset, and so forth. Note that because how the rank is computed + * multiple slaves may have the same rank, in case they have the same offset. + * + * The slave rank is used to add a delay to start an election in order to + * get voted and replace a failing master. Slaves with better replication + * offsets are more likely to win. */ +int clusterGetSlaveRank(void) { + long long myoffset; + int j, rank = 0; + clusterNode *master; + + serverAssert(nodeIsSlave(myself)); + master = myself->slaveof; + if (master == NULL) return 0; /* Never called by slaves without master. */ + + myoffset = replicationGetSlaveOffset(); + for (j = 0; j < master->numslaves; j++) + if (master->slaves[j] != myself && + master->slaves[j]->repl_offset > myoffset) rank++; + return rank; +} + +/* This function is called by clusterHandleSlaveFailover() in order to + * let the slave log why it is not able to failover. Sometimes there are + * not the conditions, but since the failover function is called again and + * again, we can't log the same things continuously. + * + * This function works by logging only if a given set of conditions are + * true: + * + * 1) The reason for which the failover can't be initiated changed. + * The reasons also include a NONE reason we reset the state to + * when the slave finds that its master is fine (no FAIL flag). + * 2) Also, the log is emitted again if the master is still down and + * the reason for not failing over is still the same, but more than + * CLUSTER_CANT_FAILOVER_RELOG_PERIOD seconds elapsed. + * 3) Finally, the function only logs if the slave is down for more than + * five seconds + NODE_TIMEOUT. This way nothing is logged when a + * failover starts in a reasonable time. + * + * The function is called with the reason why the slave can't failover + * which is one of the integer macros CLUSTER_CANT_FAILOVER_*. + * + * The function is guaranteed to be called only if 'myself' is a slave. */ +void clusterLogCantFailover(int reason) { + char *msg; + static time_t lastlog_time = 0; + mstime_t nolog_fail_time = server.cluster_node_timeout + 5000; + + /* Don't log if we have the same reason for some time. */ + if (reason == server.cluster->cant_failover_reason && + time(NULL)-lastlog_time < CLUSTER_CANT_FAILOVER_RELOG_PERIOD) + return; + + server.cluster->cant_failover_reason = reason; + + /* We also don't emit any log if the master failed no long ago, the + * goal of this function is to log slaves in a stalled condition for + * a long time. */ + if (myself->slaveof && + nodeFailed(myself->slaveof) && + (mstime() - myself->slaveof->fail_time) < nolog_fail_time) return; + + switch(reason) { + case CLUSTER_CANT_FAILOVER_DATA_AGE: + msg = "Disconnected from master for longer than allowed. " + "Please check the 'cluster-slave-validity-factor' configuration " + "option."; + break; + case CLUSTER_CANT_FAILOVER_WAITING_DELAY: + msg = "Waiting the delay before I can start a new failover."; + break; + case CLUSTER_CANT_FAILOVER_EXPIRED: + msg = "Failover attempt expired."; + break; + case CLUSTER_CANT_FAILOVER_WAITING_VOTES: + msg = "Waiting for votes, but majority still not reached."; + break; + default: + msg = "Unknown reason code."; + break; + } + lastlog_time = time(NULL); + serverLog(LL_WARNING,"Currently unable to failover: %s", msg); +} + +/* This function implements the final part of automatic and manual failovers, + * where the slave grabs its master's hash slots, and propagates the new + * configuration. + * + * Note that it's up to the caller to be sure that the node got a new + * configuration epoch already. */ +void clusterFailoverReplaceYourMaster(void) { + int j; + clusterNode *oldmaster = myself->slaveof; + + if (nodeIsMaster(myself) || oldmaster == NULL) return; + + /* 1) Turn this node into a master. */ + clusterSetNodeAsMaster(myself); + replicationUnsetMaster(); + + /* 2) Claim all the slots assigned to our master. */ + for (j = 0; j < CLUSTER_SLOTS; j++) { + if (clusterNodeGetSlotBit(oldmaster,j)) { + clusterDelSlot(j); + clusterAddSlot(myself,j); + } + } + + /* 3) Update state and save config. */ + clusterUpdateState(); + clusterSaveConfigOrDie(1); + + /* 4) Pong all the other nodes so that they can update the state + * accordingly and detect that we switched to master role. */ + clusterBroadcastPong(CLUSTER_BROADCAST_ALL); + + /* 5) If there was a manual failover in progress, clear the state. */ + resetManualFailover(); +} + +/* This function is called if we are a slave node and our master serving + * a non-zero amount of hash slots is in FAIL state. + * + * The gaol of this function is: + * 1) To check if we are able to perform a failover, is our data updated? + * 2) Try to get elected by masters. + * 3) Perform the failover informing all the other nodes. + */ +void clusterHandleSlaveFailover(void) { + mstime_t data_age; + mstime_t auth_age = mstime() - server.cluster->failover_auth_time; + int needed_quorum = (server.cluster->size / 2) + 1; + int manual_failover = server.cluster->mf_end != 0 && + server.cluster->mf_can_start; + mstime_t auth_timeout, auth_retry_time; + + server.cluster->todo_before_sleep &= ~CLUSTER_TODO_HANDLE_FAILOVER; + + /* Compute the failover timeout (the max time we have to send votes + * and wait for replies), and the failover retry time (the time to wait + * before trying to get voted again). + * + * Timeout is MAX(NODE_TIMEOUT*2,2000) milliseconds. + * Retry is two times the Timeout. + */ + auth_timeout = server.cluster_node_timeout*2; + if (auth_timeout < 2000) auth_timeout = 2000; + auth_retry_time = auth_timeout*2; + + /* Pre conditions to run the function, that must be met both in case + * of an automatic or manual failover: + * 1) We are a slave. + * 2) Our master is flagged as FAIL, or this is a manual failover. + * 3) It is serving slots. */ + if (nodeIsMaster(myself) || + myself->slaveof == NULL || + (!nodeFailed(myself->slaveof) && !manual_failover) || + myself->slaveof->numslots == 0) + { + /* There are no reasons to failover, so we set the reason why we + * are returning without failing over to NONE. */ + server.cluster->cant_failover_reason = CLUSTER_CANT_FAILOVER_NONE; + return; + } + + /* Set data_age to the number of seconds we are disconnected from + * the master. */ + if (server.repl_state == REPL_STATE_CONNECTED) { + data_age = (mstime_t)(server.unixtime - server.master->lastinteraction) + * 1000; + } else { + data_age = (mstime_t)(server.unixtime - server.repl_down_since) * 1000; + } + + /* Remove the node timeout from the data age as it is fine that we are + * disconnected from our master at least for the time it was down to be + * flagged as FAIL, that's the baseline. */ + if (data_age > server.cluster_node_timeout) + data_age -= server.cluster_node_timeout; + + /* Check if our data is recent enough according to the slave validity + * factor configured by the user. + * + * Check bypassed for manual failovers. */ + if (server.cluster_slave_validity_factor && + data_age > + (((mstime_t)server.repl_ping_slave_period * 1000) + + (server.cluster_node_timeout * server.cluster_slave_validity_factor))) + { + if (!manual_failover) { + clusterLogCantFailover(CLUSTER_CANT_FAILOVER_DATA_AGE); + return; + } + } + + /* If the previous failover attempt timedout and the retry time has + * elapsed, we can setup a new one. */ + if (auth_age > auth_retry_time) { + server.cluster->failover_auth_time = mstime() + + 500 + /* Fixed delay of 500 milliseconds, let FAIL msg propagate. */ + random() % 500; /* Random delay between 0 and 500 milliseconds. */ + server.cluster->failover_auth_count = 0; + server.cluster->failover_auth_sent = 0; + server.cluster->failover_auth_rank = clusterGetSlaveRank(); + /* We add another delay that is proportional to the slave rank. + * Specifically 1 second * rank. This way slaves that have a probably + * less updated replication offset, are penalized. */ + server.cluster->failover_auth_time += + server.cluster->failover_auth_rank * 1000; + /* However if this is a manual failover, no delay is needed. */ + if (server.cluster->mf_end) { + server.cluster->failover_auth_time = mstime(); + server.cluster->failover_auth_rank = 0; + } + serverLog(LL_WARNING, + "Start of election delayed for %lld milliseconds " + "(rank #%d, offset %lld).", + server.cluster->failover_auth_time - mstime(), + server.cluster->failover_auth_rank, + replicationGetSlaveOffset()); + /* Now that we have a scheduled election, broadcast our offset + * to all the other slaves so that they'll updated their offsets + * if our offset is better. */ + clusterBroadcastPong(CLUSTER_BROADCAST_LOCAL_SLAVES); + return; + } + + /* It is possible that we received more updated offsets from other + * slaves for the same master since we computed our election delay. + * Update the delay if our rank changed. + * + * Not performed if this is a manual failover. */ + if (server.cluster->failover_auth_sent == 0 && + server.cluster->mf_end == 0) + { + int newrank = clusterGetSlaveRank(); + if (newrank > server.cluster->failover_auth_rank) { + long long added_delay = + (newrank - server.cluster->failover_auth_rank) * 1000; + server.cluster->failover_auth_time += added_delay; + server.cluster->failover_auth_rank = newrank; + serverLog(LL_WARNING, + "Slave rank updated to #%d, added %lld milliseconds of delay.", + newrank, added_delay); + } + } + + /* Return ASAP if we can't still start the election. */ + if (mstime() < server.cluster->failover_auth_time) { + clusterLogCantFailover(CLUSTER_CANT_FAILOVER_WAITING_DELAY); + return; + } + + /* Return ASAP if the election is too old to be valid. */ + if (auth_age > auth_timeout) { + clusterLogCantFailover(CLUSTER_CANT_FAILOVER_EXPIRED); + return; + } + + /* Ask for votes if needed. */ + if (server.cluster->failover_auth_sent == 0) { + server.cluster->currentEpoch++; + server.cluster->failover_auth_epoch = server.cluster->currentEpoch; + serverLog(LL_WARNING,"Starting a failover election for epoch %llu.", + (unsigned long long) server.cluster->currentEpoch); + clusterRequestFailoverAuth(); + server.cluster->failover_auth_sent = 1; + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG| + CLUSTER_TODO_UPDATE_STATE| + CLUSTER_TODO_FSYNC_CONFIG); + return; /* Wait for replies. */ + } + + /* Check if we reached the quorum. */ + if (server.cluster->failover_auth_count >= needed_quorum) { + /* We have the quorum, we can finally failover the master. */ + + serverLog(LL_WARNING, + "Failover election won: I'm the new master."); + + /* Update my configEpoch to the epoch of the election. */ + if (myself->configEpoch < server.cluster->failover_auth_epoch) { + myself->configEpoch = server.cluster->failover_auth_epoch; + serverLog(LL_WARNING, + "configEpoch set to %llu after successful failover", + (unsigned long long) myself->configEpoch); + } + + /* Take responsability for the cluster slots. */ + clusterFailoverReplaceYourMaster(); + } else { + clusterLogCantFailover(CLUSTER_CANT_FAILOVER_WAITING_VOTES); + } +} + +/* ----------------------------------------------------------------------------- + * CLUSTER slave migration + * + * Slave migration is the process that allows a slave of a master that is + * already covered by at least another slave, to "migrate" to a master that + * is orpaned, that is, left with no working slaves. + * ------------------------------------------------------------------------- */ + +/* This function is responsible to decide if this replica should be migrated + * to a different (orphaned) master. It is called by the clusterCron() function + * only if: + * + * 1) We are a slave node. + * 2) It was detected that there is at least one orphaned master in + * the cluster. + * 3) We are a slave of one of the masters with the greatest number of + * slaves. + * + * This checks are performed by the caller since it requires to iterate + * the nodes anyway, so we spend time into clusterHandleSlaveMigration() + * if definitely needed. + * + * The fuction is called with a pre-computed max_slaves, that is the max + * number of working (not in FAIL state) slaves for a single master. + * + * Additional conditions for migration are examined inside the function. + */ +void clusterHandleSlaveMigration(int max_slaves) { + int j, okslaves = 0; + clusterNode *mymaster = myself->slaveof, *target = NULL, *candidate = NULL; + dictIterator *di; + dictEntry *de; + + /* Step 1: Don't migrate if the cluster state is not ok. */ + if (server.cluster->state != CLUSTER_OK) return; + + /* Step 2: Don't migrate if my master will not be left with at least + * 'migration-barrier' slaves after my migration. */ + if (mymaster == NULL) return; + for (j = 0; j < mymaster->numslaves; j++) + if (!nodeFailed(mymaster->slaves[j]) && + !nodeTimedOut(mymaster->slaves[j])) okslaves++; + if (okslaves <= server.cluster_migration_barrier) return; + + /* Step 3: Idenitfy a candidate for migration, and check if among the + * masters with the greatest number of ok slaves, I'm the one with the + * smallest node ID (the "candidate slave"). + * + * Note: this means that eventually a replica migration will occurr + * since slaves that are reachable again always have their FAIL flag + * cleared, so eventually there must be a candidate. At the same time + * this does not mean that there are no race conditions possible (two + * slaves migrating at the same time), but this is unlikely to + * happen, and harmless when happens. */ + candidate = myself; + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + int okslaves = 0, is_orphaned = 1; + + /* We want to migrate only if this master is working, orphaned, and + * used to have slaves or if failed over a master that had slaves + * (MIGRATE_TO flag). This way we only migrate to instances that were + * supposed to have replicas. */ + if (nodeIsSlave(node) || nodeFailed(node)) is_orphaned = 0; + if (!(node->flags & CLUSTER_NODE_MIGRATE_TO)) is_orphaned = 0; + + /* Check number of working slaves. */ + if (nodeIsMaster(node)) okslaves = clusterCountNonFailingSlaves(node); + if (okslaves > 0) is_orphaned = 0; + + if (is_orphaned) { + if (!target && node->numslots > 0) target = node; + + /* Track the starting time of the orphaned condition for this + * master. */ + if (!node->orphaned_time) node->orphaned_time = mstime(); + } else { + node->orphaned_time = 0; + } + + /* Check if I'm the slave candidate for the migration: attached + * to a master with the maximum number of slaves and with the smallest + * node ID. */ + if (okslaves == max_slaves) { + for (j = 0; j < node->numslaves; j++) { + if (memcmp(node->slaves[j]->name, + candidate->name, + CLUSTER_NAMELEN) < 0) + { + candidate = node->slaves[j]; + } + } + } + } + dictReleaseIterator(di); + + /* Step 4: perform the migration if there is a target, and if I'm the + * candidate, but only if the master is continuously orphaned for a + * couple of seconds, so that during failovers, we give some time to + * the natural slaves of this instance to advertise their switch from + * the old master to the new one. */ + if (target && candidate == myself && + (mstime()-target->orphaned_time) > CLUSTER_SLAVE_MIGRATION_DELAY) + { + serverLog(LL_WARNING,"Migrating to orphaned master %.40s", + target->name); + clusterSetMaster(target); + } +} + +/* ----------------------------------------------------------------------------- + * CLUSTER manual failover + * + * This are the important steps performed by slaves during a manual failover: + * 1) User send CLUSTER FAILOVER command. The failover state is initialized + * setting mf_end to the millisecond unix time at which we'll abort the + * attempt. + * 2) Slave sends a MFSTART message to the master requesting to pause clients + * for two times the manual failover timeout CLUSTER_MF_TIMEOUT. + * When master is paused for manual failover, it also starts to flag + * packets with CLUSTERMSG_FLAG0_PAUSED. + * 3) Slave waits for master to send its replication offset flagged as PAUSED. + * 4) If slave received the offset from the master, and its offset matches, + * mf_can_start is set to 1, and clusterHandleSlaveFailover() will perform + * the failover as usually, with the difference that the vote request + * will be modified to force masters to vote for a slave that has a + * working master. + * + * From the point of view of the master things are simpler: when a + * PAUSE_CLIENTS packet is received the master sets mf_end as well and + * the sender in mf_slave. During the time limit for the manual failover + * the master will just send PINGs more often to this slave, flagged with + * the PAUSED flag, so that the slave will set mf_master_offset when receiving + * a packet from the master with this flag set. + * + * The gaol of the manual failover is to perform a fast failover without + * data loss due to the asynchronous master-slave replication. + * -------------------------------------------------------------------------- */ + +/* Reset the manual failover state. This works for both masters and slavesa + * as all the state about manual failover is cleared. + * + * The function can be used both to initialize the manual failover state at + * startup or to abort a manual failover in progress. */ +void resetManualFailover(void) { + if (server.cluster->mf_end && clientsArePaused()) { + server.clients_pause_end_time = 0; + clientsArePaused(); /* Just use the side effect of the function. */ + } + server.cluster->mf_end = 0; /* No manual failover in progress. */ + server.cluster->mf_can_start = 0; + server.cluster->mf_slave = NULL; + server.cluster->mf_master_offset = 0; +} + +/* If a manual failover timed out, abort it. */ +void manualFailoverCheckTimeout(void) { + if (server.cluster->mf_end && server.cluster->mf_end < mstime()) { + serverLog(LL_WARNING,"Manual failover timed out."); + resetManualFailover(); + } +} + +/* This function is called from the cluster cron function in order to go + * forward with a manual failover state machine. */ +void clusterHandleManualFailover(void) { + /* Return ASAP if no manual failover is in progress. */ + if (server.cluster->mf_end == 0) return; + + /* If mf_can_start is non-zero, the failover was already triggered so the + * next steps are performed by clusterHandleSlaveFailover(). */ + if (server.cluster->mf_can_start) return; + + if (server.cluster->mf_master_offset == 0) return; /* Wait for offset... */ + + if (server.cluster->mf_master_offset == replicationGetSlaveOffset()) { + /* Our replication offset matches the master replication offset + * announced after clients were paused. We can start the failover. */ + server.cluster->mf_can_start = 1; + serverLog(LL_WARNING, + "All master replication stream processed, " + "manual failover can start."); + } +} + +/* ----------------------------------------------------------------------------- + * CLUSTER cron job + * -------------------------------------------------------------------------- */ + +/* This is executed 10 times every second */ +void clusterCron(void) { + dictIterator *di; + dictEntry *de; + int update_state = 0; + int orphaned_masters; /* How many masters there are without ok slaves. */ + int max_slaves; /* Max number of ok slaves for a single master. */ + int this_slaves; /* Number of ok slaves for our master (if we are slave). */ + mstime_t min_pong = 0, now = mstime(); + clusterNode *min_pong_node = NULL; + static unsigned long long iteration = 0; + mstime_t handshake_timeout; + + iteration++; /* Number of times this function was called so far. */ + + /* We want to take myself->ip in sync with the cluster-announce-ip option. + * The option can be set at runtime via CONFIG SET, so we periodically check + * if the option changed to reflect this into myself->ip. */ + { + static char *prev_ip = NULL; + char *curr_ip = server.cluster_announce_ip; + int changed = 0; + + if (prev_ip == NULL && curr_ip != NULL) changed = 1; + if (prev_ip != NULL && curr_ip == NULL) changed = 1; + if (prev_ip && curr_ip && strcmp(prev_ip,curr_ip)) changed = 1; + + if (changed) { + prev_ip = curr_ip; + if (prev_ip) prev_ip = zstrdup(prev_ip); + + if (curr_ip) { + strncpy(myself->ip,server.cluster_announce_ip,NET_IP_STR_LEN); + myself->ip[NET_IP_STR_LEN-1] = '\0'; + } else { + myself->ip[0] = '\0'; /* Force autodetection. */ + } + } + } + + /* The handshake timeout is the time after which a handshake node that was + * not turned into a normal node is removed from the nodes. Usually it is + * just the NODE_TIMEOUT value, but when NODE_TIMEOUT is too small we use + * the value of 1 second. */ + handshake_timeout = server.cluster_node_timeout; + if (handshake_timeout < 1000) handshake_timeout = 1000; + + /* Check if we have disconnected nodes and re-establish the connection. + * Also update a few stats while we are here, that can be used to make + * better decisions in other part of the code. */ + di = dictGetSafeIterator(server.cluster->nodes); + server.cluster->stats_pfail_nodes = 0; + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + + /* Not interested in reconnecting the link with myself or nodes + * for which we have no address. */ + if (node->flags & (CLUSTER_NODE_MYSELF|CLUSTER_NODE_NOADDR)) continue; + + if (node->flags & CLUSTER_NODE_PFAIL) + server.cluster->stats_pfail_nodes++; + + /* A Node in HANDSHAKE state has a limited lifespan equal to the + * configured node timeout. */ + if (nodeInHandshake(node) && now - node->ctime > handshake_timeout) { + clusterDelNode(node); + continue; + } + + if (node->link == NULL) { + int fd; + mstime_t old_ping_sent; + clusterLink *link; + + fd = anetTcpNonBlockBindConnect(server.neterr, node->ip, + node->cport, NET_FIRST_BIND_ADDR); + if (fd == -1) { + /* We got a synchronous error from connect before + * clusterSendPing() had a chance to be called. + * If node->ping_sent is zero, failure detection can't work, + * so we claim we actually sent a ping now (that will + * be really sent as soon as the link is obtained). */ + if (node->ping_sent == 0) node->ping_sent = mstime(); + serverLog(LL_DEBUG, "Unable to connect to " + "Cluster Node [%s]:%d -> %s", node->ip, + node->cport, server.neterr); + continue; + } + link = createClusterLink(node); + link->fd = fd; + node->link = link; + aeCreateFileEvent(server.el,link->fd,AE_READABLE, + clusterReadHandler,link); + /* Queue a PING in the new connection ASAP: this is crucial + * to avoid false positives in failure detection. + * + * If the node is flagged as MEET, we send a MEET message instead + * of a PING one, to force the receiver to add us in its node + * table. */ + old_ping_sent = node->ping_sent; + clusterSendPing(link, node->flags & CLUSTER_NODE_MEET ? + CLUSTERMSG_TYPE_MEET : CLUSTERMSG_TYPE_PING); + if (old_ping_sent) { + /* If there was an active ping before the link was + * disconnected, we want to restore the ping time, otherwise + * replaced by the clusterSendPing() call. */ + node->ping_sent = old_ping_sent; + } + /* We can clear the flag after the first packet is sent. + * If we'll never receive a PONG, we'll never send new packets + * to this node. Instead after the PONG is received and we + * are no longer in meet/handshake status, we want to send + * normal PING packets. */ + node->flags &= ~CLUSTER_NODE_MEET; + + serverLog(LL_DEBUG,"Connecting with Node %.40s at %s:%d", + node->name, node->ip, node->cport); + } + } + dictReleaseIterator(di); + + /* Ping some random node 1 time every 10 iterations, so that we usually ping + * one random node every second. */ + if (!(iteration % 10)) { + int j; + + /* Check a few random nodes and ping the one with the oldest + * pong_received time. */ + for (j = 0; j < 5; j++) { + de = dictGetRandomKey(server.cluster->nodes); + clusterNode *this = dictGetVal(de); + + /* Don't ping nodes disconnected or with a ping currently active. */ + if (this->link == NULL || this->ping_sent != 0) continue; + if (this->flags & (CLUSTER_NODE_MYSELF|CLUSTER_NODE_HANDSHAKE)) + continue; + if (min_pong_node == NULL || min_pong > this->pong_received) { + min_pong_node = this; + min_pong = this->pong_received; + } + } + if (min_pong_node) { + serverLog(LL_DEBUG,"Pinging node %.40s", min_pong_node->name); + clusterSendPing(min_pong_node->link, CLUSTERMSG_TYPE_PING); + } + } + + /* Iterate nodes to check if we need to flag something as failing. + * This loop is also responsible to: + * 1) Check if there are orphaned masters (masters without non failing + * slaves). + * 2) Count the max number of non failing slaves for a single master. + * 3) Count the number of slaves for our master, if we are a slave. */ + orphaned_masters = 0; + max_slaves = 0; + this_slaves = 0; + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + now = mstime(); /* Use an updated time at every iteration. */ + mstime_t delay; + + if (node->flags & + (CLUSTER_NODE_MYSELF|CLUSTER_NODE_NOADDR|CLUSTER_NODE_HANDSHAKE)) + continue; + + /* Orphaned master check, useful only if the current instance + * is a slave that may migrate to another master. */ + if (nodeIsSlave(myself) && nodeIsMaster(node) && !nodeFailed(node)) { + int okslaves = clusterCountNonFailingSlaves(node); + + /* A master is orphaned if it is serving a non-zero number of + * slots, have no working slaves, but used to have at least one + * slave, or failed over a master that used to have slaves. */ + if (okslaves == 0 && node->numslots > 0 && + node->flags & CLUSTER_NODE_MIGRATE_TO) + { + orphaned_masters++; + } + if (okslaves > max_slaves) max_slaves = okslaves; + if (nodeIsSlave(myself) && myself->slaveof == node) + this_slaves = okslaves; + } + + /* If we are waiting for the PONG more than half the cluster + * timeout, reconnect the link: maybe there is a connection + * issue even if the node is alive. */ + if (node->link && /* is connected */ + now - node->link->ctime > + server.cluster_node_timeout && /* was not already reconnected */ + node->ping_sent && /* we already sent a ping */ + node->pong_received < node->ping_sent && /* still waiting pong */ + /* and we are waiting for the pong more than timeout/2 */ + now - node->ping_sent > server.cluster_node_timeout/2) + { + /* Disconnect the link, it will be reconnected automatically. */ + freeClusterLink(node->link); + } + + /* If we have currently no active ping in this instance, and the + * received PONG is older than half the cluster timeout, send + * a new ping now, to ensure all the nodes are pinged without + * a too big delay. */ + if (node->link && + node->ping_sent == 0 && + (now - node->pong_received) > server.cluster_node_timeout/2) + { + clusterSendPing(node->link, CLUSTERMSG_TYPE_PING); + continue; + } + + /* If we are a master and one of the slaves requested a manual + * failover, ping it continuously. */ + if (server.cluster->mf_end && + nodeIsMaster(myself) && + server.cluster->mf_slave == node && + node->link) + { + clusterSendPing(node->link, CLUSTERMSG_TYPE_PING); + continue; + } + + /* Check only if we have an active ping for this instance. */ + if (node->ping_sent == 0) continue; + + /* Compute the delay of the PONG. Note that if we already received + * the PONG, then node->ping_sent is zero, so can't reach this + * code at all. */ + delay = now - node->ping_sent; + + if (delay > server.cluster_node_timeout) { + /* Timeout reached. Set the node as possibly failing if it is + * not already in this state. */ + if (!(node->flags & (CLUSTER_NODE_PFAIL|CLUSTER_NODE_FAIL))) { + serverLog(LL_DEBUG,"*** NODE %.40s possibly failing", + node->name); + node->flags |= CLUSTER_NODE_PFAIL; + update_state = 1; + } + } + } + dictReleaseIterator(di); + + /* If we are a slave node but the replication is still turned off, + * enable it if we know the address of our master and it appears to + * be up. */ + if (nodeIsSlave(myself) && + server.masterhost == NULL && + myself->slaveof && + nodeHasAddr(myself->slaveof)) + { + replicationSetMaster(myself->slaveof->ip, myself->slaveof->port); + } + + /* Abourt a manual failover if the timeout is reached. */ + manualFailoverCheckTimeout(); + + if (nodeIsSlave(myself)) { + clusterHandleManualFailover(); + clusterHandleSlaveFailover(); + /* If there are orphaned slaves, and we are a slave among the masters + * with the max number of non-failing slaves, consider migrating to + * the orphaned masters. Note that it does not make sense to try + * a migration if there is no master with at least *two* working + * slaves. */ + if (orphaned_masters && max_slaves >= 2 && this_slaves == max_slaves) + clusterHandleSlaveMigration(max_slaves); + } + + if (update_state || server.cluster->state == CLUSTER_FAIL) + clusterUpdateState(); +} + +/* This function is called before the event handler returns to sleep for + * events. It is useful to perform operations that must be done ASAP in + * reaction to events fired but that are not safe to perform inside event + * handlers, or to perform potentially expansive tasks that we need to do + * a single time before replying to clients. */ +void clusterBeforeSleep(void) { + /* Handle failover, this is needed when it is likely that there is already + * the quorum from masters in order to react fast. */ + if (server.cluster->todo_before_sleep & CLUSTER_TODO_HANDLE_FAILOVER) + clusterHandleSlaveFailover(); + + /* Update the cluster state. */ + if (server.cluster->todo_before_sleep & CLUSTER_TODO_UPDATE_STATE) + clusterUpdateState(); + + /* Save the config, possibly using fsync. */ + if (server.cluster->todo_before_sleep & CLUSTER_TODO_SAVE_CONFIG) { + int fsync = server.cluster->todo_before_sleep & + CLUSTER_TODO_FSYNC_CONFIG; + clusterSaveConfigOrDie(fsync); + } + + /* Reset our flags (not strictly needed since every single function + * called for flags set should be able to clear its flag). */ + server.cluster->todo_before_sleep = 0; +} + +void clusterDoBeforeSleep(int flags) { + server.cluster->todo_before_sleep |= flags; +} + +/* ----------------------------------------------------------------------------- + * Slots management + * -------------------------------------------------------------------------- */ + +/* Test bit 'pos' in a generic bitmap. Return 1 if the bit is set, + * otherwise 0. */ +int bitmapTestBit(unsigned char *bitmap, int pos) { + off_t byte = pos/8; + int bit = pos&7; + return (bitmap[byte] & (1<nodes); + dictEntry *de; + int slaves = 0; + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + + if (nodeIsSlave(node)) continue; + slaves += node->numslaves; + } + dictReleaseIterator(di); + return slaves != 0; +} + +/* Set the slot bit and return the old value. */ +int clusterNodeSetSlotBit(clusterNode *n, int slot) { + int old = bitmapTestBit(n->slots,slot); + bitmapSetBit(n->slots,slot); + if (!old) { + n->numslots++; + /* When a master gets its first slot, even if it has no slaves, + * it gets flagged with MIGRATE_TO, that is, the master is a valid + * target for replicas migration, if and only if at least one of + * the other masters has slaves right now. + * + * Normally masters are valid targerts of replica migration if: + * 1. The used to have slaves (but no longer have). + * 2. They are slaves failing over a master that used to have slaves. + * + * However new masters with slots assigned are considered valid + * migration tagets if the rest of the cluster is not a slave-less. + * + * See https://github.com/antirez/redis/issues/3043 for more info. */ + if (n->numslots == 1 && clusterMastersHaveSlaves()) + n->flags |= CLUSTER_NODE_MIGRATE_TO; + } + return old; +} + +/* Clear the slot bit and return the old value. */ +int clusterNodeClearSlotBit(clusterNode *n, int slot) { + int old = bitmapTestBit(n->slots,slot); + bitmapClearBit(n->slots,slot); + if (old) n->numslots--; + return old; +} + +/* Return the slot bit from the cluster node structure. */ +int clusterNodeGetSlotBit(clusterNode *n, int slot) { + return bitmapTestBit(n->slots,slot); +} + +/* Add the specified slot to the list of slots that node 'n' will + * serve. Return C_OK if the operation ended with success. + * If the slot is already assigned to another instance this is considered + * an error and C_ERR is returned. */ +int clusterAddSlot(clusterNode *n, int slot) { + if (server.cluster->slots[slot]) return C_ERR; + clusterNodeSetSlotBit(n,slot); + server.cluster->slots[slot] = n; + return C_OK; +} + +/* Delete the specified slot marking it as unassigned. + * Returns C_OK if the slot was assigned, otherwise if the slot was + * already unassigned C_ERR is returned. */ +int clusterDelSlot(int slot) { + clusterNode *n = server.cluster->slots[slot]; + + if (!n) return C_ERR; + serverAssert(clusterNodeClearSlotBit(n,slot) == 1); + server.cluster->slots[slot] = NULL; + return C_OK; +} + +/* Delete all the slots associated with the specified node. + * The number of deleted slots is returned. */ +int clusterDelNodeSlots(clusterNode *node) { + int deleted = 0, j; + + for (j = 0; j < CLUSTER_SLOTS; j++) { + if (clusterNodeGetSlotBit(node,j)) clusterDelSlot(j); + deleted++; + } + return deleted; +} + +/* Clear the migrating / importing state for all the slots. + * This is useful at initialization and when turning a master into slave. */ +void clusterCloseAllSlots(void) { + memset(server.cluster->migrating_slots_to,0, + sizeof(server.cluster->migrating_slots_to)); + memset(server.cluster->importing_slots_from,0, + sizeof(server.cluster->importing_slots_from)); +} + +/* ----------------------------------------------------------------------------- + * Cluster state evaluation function + * -------------------------------------------------------------------------- */ + +/* The following are defines that are only used in the evaluation function + * and are based on heuristics. Actaully the main point about the rejoin and + * writable delay is that they should be a few orders of magnitude larger + * than the network latency. */ +#define CLUSTER_MAX_REJOIN_DELAY 5000 +#define CLUSTER_MIN_REJOIN_DELAY 500 +#define CLUSTER_WRITABLE_DELAY 2000 + +void clusterUpdateState(void) { + int j, new_state; + int reachable_masters = 0; + static mstime_t among_minority_time; + static mstime_t first_call_time = 0; + + server.cluster->todo_before_sleep &= ~CLUSTER_TODO_UPDATE_STATE; + + /* If this is a master node, wait some time before turning the state + * into OK, since it is not a good idea to rejoin the cluster as a writable + * master, after a reboot, without giving the cluster a chance to + * reconfigure this node. Note that the delay is calculated starting from + * the first call to this function and not since the server start, in order + * to don't count the DB loading time. */ + if (first_call_time == 0) first_call_time = mstime(); + if (nodeIsMaster(myself) && + server.cluster->state == CLUSTER_FAIL && + mstime() - first_call_time < CLUSTER_WRITABLE_DELAY) return; + + /* Start assuming the state is OK. We'll turn it into FAIL if there + * are the right conditions. */ + new_state = CLUSTER_OK; + + /* Check if all the slots are covered. */ + if (server.cluster_require_full_coverage) { + for (j = 0; j < CLUSTER_SLOTS; j++) { + if (server.cluster->slots[j] == NULL || + server.cluster->slots[j]->flags & (CLUSTER_NODE_FAIL)) + { + new_state = CLUSTER_FAIL; + break; + } + } + } + + /* Compute the cluster size, that is the number of master nodes + * serving at least a single slot. + * + * At the same time count the number of reachable masters having + * at least one slot. */ + { + dictIterator *di; + dictEntry *de; + + server.cluster->size = 0; + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + + if (nodeIsMaster(node) && node->numslots) { + server.cluster->size++; + if ((node->flags & (CLUSTER_NODE_FAIL|CLUSTER_NODE_PFAIL)) == 0) + reachable_masters++; + } + } + dictReleaseIterator(di); + } + + /* If we are in a minority partition, change the cluster state + * to FAIL. */ + { + int needed_quorum = (server.cluster->size / 2) + 1; + + if (reachable_masters < needed_quorum) { + new_state = CLUSTER_FAIL; + among_minority_time = mstime(); + } + } + + /* Log a state change */ + if (new_state != server.cluster->state) { + mstime_t rejoin_delay = server.cluster_node_timeout; + + /* If the instance is a master and was partitioned away with the + * minority, don't let it accept queries for some time after the + * partition heals, to make sure there is enough time to receive + * a configuration update. */ + if (rejoin_delay > CLUSTER_MAX_REJOIN_DELAY) + rejoin_delay = CLUSTER_MAX_REJOIN_DELAY; + if (rejoin_delay < CLUSTER_MIN_REJOIN_DELAY) + rejoin_delay = CLUSTER_MIN_REJOIN_DELAY; + + if (new_state == CLUSTER_OK && + nodeIsMaster(myself) && + mstime() - among_minority_time < rejoin_delay) + { + return; + } + + /* Change the state and log the event. */ + serverLog(LL_WARNING,"Cluster state changed: %s", + new_state == CLUSTER_OK ? "ok" : "fail"); + server.cluster->state = new_state; + } +} + +/* This function is called after the node startup in order to verify that data + * loaded from disk is in agreement with the cluster configuration: + * + * 1) If we find keys about hash slots we have no responsibility for, the + * following happens: + * A) If no other node is in charge according to the current cluster + * configuration, we add these slots to our node. + * B) If according to our config other nodes are already in charge for + * this lots, we set the slots as IMPORTING from our point of view + * in order to justify we have those slots, and in order to make + * redis-trib aware of the issue, so that it can try to fix it. + * 2) If we find data in a DB different than DB0 we return C_ERR to + * signal the caller it should quit the server with an error message + * or take other actions. + * + * The function always returns C_OK even if it will try to correct + * the error described in "1". However if data is found in DB different + * from DB0, C_ERR is returned. + * + * The function also uses the logging facility in order to warn the user + * about desynchronizations between the data we have in memory and the + * cluster configuration. */ +int verifyClusterConfigWithData(void) { + int j; + int update_config = 0; + + /* If this node is a slave, don't perform the check at all as we + * completely depend on the replication stream. */ + if (nodeIsSlave(myself)) return C_OK; + + /* Make sure we only have keys in DB0. */ + for (j = 1; j < server.dbnum; j++) { + if (dictSize(server.db[j].dict)) return C_ERR; + } + + /* Check that all the slots we see populated memory have a corresponding + * entry in the cluster table. Otherwise fix the table. */ + for (j = 0; j < CLUSTER_SLOTS; j++) { + if (!countKeysInSlot(j)) continue; /* No keys in this slot. */ + /* Check if we are assigned to this slot or if we are importing it. + * In both cases check the next slot as the configuration makes + * sense. */ + if (server.cluster->slots[j] == myself || + server.cluster->importing_slots_from[j] != NULL) continue; + + /* If we are here data and cluster config don't agree, and we have + * slot 'j' populated even if we are not importing it, nor we are + * assigned to this slot. Fix this condition. */ + + update_config++; + /* Case A: slot is unassigned. Take responsibility for it. */ + if (server.cluster->slots[j] == NULL) { + serverLog(LL_WARNING, "I have keys for unassigned slot %d. " + "Taking responsibility for it.",j); + clusterAddSlot(myself,j); + } else { + serverLog(LL_WARNING, "I have keys for slot %d, but the slot is " + "assigned to another node. " + "Setting it to importing state.",j); + server.cluster->importing_slots_from[j] = server.cluster->slots[j]; + } + } + if (update_config) clusterSaveConfigOrDie(1); + return C_OK; +} + +/* ----------------------------------------------------------------------------- + * SLAVE nodes handling + * -------------------------------------------------------------------------- */ + +/* Set the specified node 'n' as master for this node. + * If this node is currently a master, it is turned into a slave. */ +void clusterSetMaster(clusterNode *n) { + serverAssert(n != myself); + serverAssert(myself->numslots == 0); + + if (nodeIsMaster(myself)) { + myself->flags &= ~(CLUSTER_NODE_MASTER|CLUSTER_NODE_MIGRATE_TO); + myself->flags |= CLUSTER_NODE_SLAVE; + clusterCloseAllSlots(); + } else { + if (myself->slaveof) + clusterNodeRemoveSlave(myself->slaveof,myself); + } + myself->slaveof = n; + clusterNodeAddSlave(n,myself); + replicationSetMaster(n->ip, n->port); + resetManualFailover(); +} + +/* ----------------------------------------------------------------------------- + * Nodes to string representation functions. + * -------------------------------------------------------------------------- */ + +struct redisNodeFlags { + uint16_t flag; + char *name; +}; + +static struct redisNodeFlags redisNodeFlagsTable[] = { + {CLUSTER_NODE_MYSELF, "myself,"}, + {CLUSTER_NODE_MASTER, "master,"}, + {CLUSTER_NODE_SLAVE, "slave,"}, + {CLUSTER_NODE_PFAIL, "fail?,"}, + {CLUSTER_NODE_FAIL, "fail,"}, + {CLUSTER_NODE_HANDSHAKE, "handshake,"}, + {CLUSTER_NODE_NOADDR, "noaddr,"} +}; + +/* Concatenate the comma separated list of node flags to the given SDS + * string 'ci'. */ +sds representClusterNodeFlags(sds ci, uint16_t flags) { + if (flags == 0) { + ci = sdscat(ci,"noflags,"); + } else { + int i, size = sizeof(redisNodeFlagsTable)/sizeof(struct redisNodeFlags); + for (i = 0; i < size; i++) { + struct redisNodeFlags *nodeflag = redisNodeFlagsTable + i; + if (flags & nodeflag->flag) ci = sdscat(ci, nodeflag->name); + } + } + sdsIncrLen(ci,-1); /* Remove trailing comma. */ + return ci; +} + +/* Generate a csv-alike representation of the specified cluster node. + * See clusterGenNodesDescription() top comment for more information. + * + * The function returns the string representation as an SDS string. */ +sds clusterGenNodeDescription(clusterNode *node) { + int j, start; + sds ci; + + /* Node coordinates */ + ci = sdscatprintf(sdsempty(),"%.40s %s:%d@%d ", + node->name, + node->ip, + node->port, + node->cport); + + /* Flags */ + ci = representClusterNodeFlags(ci, node->flags); + + /* Slave of... or just "-" */ + if (node->slaveof) + ci = sdscatprintf(ci," %.40s ",node->slaveof->name); + else + ci = sdscatlen(ci," - ",3); + + /* Latency from the POV of this node, config epoch, link status */ + ci = sdscatprintf(ci,"%lld %lld %llu %s", + (long long) node->ping_sent, + (long long) node->pong_received, + (unsigned long long) node->configEpoch, + (node->link || node->flags & CLUSTER_NODE_MYSELF) ? + "connected" : "disconnected"); + + /* Slots served by this instance */ + start = -1; + for (j = 0; j < CLUSTER_SLOTS; j++) { + int bit; + + if ((bit = clusterNodeGetSlotBit(node,j)) != 0) { + if (start == -1) start = j; + } + if (start != -1 && (!bit || j == CLUSTER_SLOTS-1)) { + if (bit && j == CLUSTER_SLOTS-1) j++; + + if (start == j-1) { + ci = sdscatprintf(ci," %d",start); + } else { + ci = sdscatprintf(ci," %d-%d",start,j-1); + } + start = -1; + } + } + + /* Just for MYSELF node we also dump info about slots that + * we are migrating to other instances or importing from other + * instances. */ + if (node->flags & CLUSTER_NODE_MYSELF) { + for (j = 0; j < CLUSTER_SLOTS; j++) { + if (server.cluster->migrating_slots_to[j]) { + ci = sdscatprintf(ci," [%d->-%.40s]",j, + server.cluster->migrating_slots_to[j]->name); + } else if (server.cluster->importing_slots_from[j]) { + ci = sdscatprintf(ci," [%d-<-%.40s]",j, + server.cluster->importing_slots_from[j]->name); + } + } + } + return ci; +} + +/* Generate a csv-alike representation of the nodes we are aware of, + * including the "myself" node, and return an SDS string containing the + * representation (it is up to the caller to free it). + * + * All the nodes matching at least one of the node flags specified in + * "filter" are excluded from the output, so using zero as a filter will + * include all the known nodes in the representation, including nodes in + * the HANDSHAKE state. + * + * The representation obtained using this function is used for the output + * of the CLUSTER NODES function, and as format for the cluster + * configuration file (nodes.conf) for a given node. */ +sds clusterGenNodesDescription(int filter) { + sds ci = sdsempty(), ni; + dictIterator *di; + dictEntry *de; + + di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + + if (node->flags & filter) continue; + ni = clusterGenNodeDescription(node); + ci = sdscatsds(ci,ni); + sdsfree(ni); + ci = sdscatlen(ci,"\n",1); + } + dictReleaseIterator(di); + return ci; +} + +/* ----------------------------------------------------------------------------- + * CLUSTER command + * -------------------------------------------------------------------------- */ + +const char *clusterGetMessageTypeString(int type) { + switch(type) { + case CLUSTERMSG_TYPE_PING: return "ping"; + case CLUSTERMSG_TYPE_PONG: return "pong"; + case CLUSTERMSG_TYPE_MEET: return "meet"; + case CLUSTERMSG_TYPE_FAIL: return "fail"; + case CLUSTERMSG_TYPE_PUBLISH: return "publish"; + case CLUSTERMSG_TYPE_FAILOVER_AUTH_REQUEST: return "auth-req"; + case CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK: return "auth-ack"; + case CLUSTERMSG_TYPE_UPDATE: return "update"; + case CLUSTERMSG_TYPE_MFSTART: return "mfstart"; + } + return "unknown"; +} + +int getSlotOrReply(client *c, robj *o) { + long long slot; + + if (getLongLongFromObject(o,&slot) != C_OK || + slot < 0 || slot >= CLUSTER_SLOTS) + { + addReplyError(c,"Invalid or out of range slot"); + return -1; + } + return (int) slot; +} + +void clusterReplyMultiBulkSlots(client *c) { + /* Format: 1) 1) start slot + * 2) end slot + * 3) 1) master IP + * 2) master port + * 3) node ID + * 4) 1) replica IP + * 2) replica port + * 3) node ID + * ... continued until done + */ + + int num_masters = 0; + void *slot_replylen = addDeferredMultiBulkLength(c); + + dictEntry *de; + dictIterator *di = dictGetSafeIterator(server.cluster->nodes); + while((de = dictNext(di)) != NULL) { + clusterNode *node = dictGetVal(de); + int j = 0, start = -1; + + /* Skip slaves (that are iterated when producing the output of their + * master) and masters not serving any slot. */ + if (!nodeIsMaster(node) || node->numslots == 0) continue; + + for (j = 0; j < CLUSTER_SLOTS; j++) { + int bit, i; + + if ((bit = clusterNodeGetSlotBit(node,j)) != 0) { + if (start == -1) start = j; + } + if (start != -1 && (!bit || j == CLUSTER_SLOTS-1)) { + int nested_elements = 3; /* slots (2) + master addr (1). */ + void *nested_replylen = addDeferredMultiBulkLength(c); + + if (bit && j == CLUSTER_SLOTS-1) j++; + + /* If slot exists in output map, add to it's list. + * else, create a new output map for this slot */ + if (start == j-1) { + addReplyLongLong(c, start); /* only one slot; low==high */ + addReplyLongLong(c, start); + } else { + addReplyLongLong(c, start); /* low */ + addReplyLongLong(c, j-1); /* high */ + } + start = -1; + + /* First node reply position is always the master */ + addReplyMultiBulkLen(c, 3); + addReplyBulkCString(c, node->ip); + addReplyLongLong(c, node->port); + addReplyBulkCBuffer(c, node->name, CLUSTER_NAMELEN); + + /* Remaining nodes in reply are replicas for slot range */ + for (i = 0; i < node->numslaves; i++) { + /* This loop is copy/pasted from clusterGenNodeDescription() + * with modifications for per-slot node aggregation */ + if (nodeFailed(node->slaves[i])) continue; + addReplyMultiBulkLen(c, 3); + addReplyBulkCString(c, node->slaves[i]->ip); + addReplyLongLong(c, node->slaves[i]->port); + addReplyBulkCBuffer(c, node->slaves[i]->name, CLUSTER_NAMELEN); + nested_elements++; + } + setDeferredMultiBulkLength(c, nested_replylen, nested_elements); + num_masters++; + } + } + } + dictReleaseIterator(di); + setDeferredMultiBulkLength(c, slot_replylen, num_masters); +} + +void clusterCommand(client *c) { + if (server.cluster_enabled == 0) { + addReplyError(c,"This instance has cluster support disabled"); + return; + } + + if (!strcasecmp(c->argv[1]->ptr,"meet") && (c->argc == 4 || c->argc == 5)) { + /* CLUSTER MEET [cport] */ + long long port, cport; + + if (getLongLongFromObject(c->argv[3], &port) != C_OK) { + addReplyErrorFormat(c,"Invalid TCP base port specified: %s", + (char*)c->argv[3]->ptr); + return; + } + + if (c->argc == 5) { + if (getLongLongFromObject(c->argv[4], &cport) != C_OK) { + addReplyErrorFormat(c,"Invalid TCP bus port specified: %s", + (char*)c->argv[4]->ptr); + return; + } + } else { + cport = port + CLUSTER_PORT_INCR; + } + + if (clusterStartHandshake(c->argv[2]->ptr,port,cport) == 0 && + errno == EINVAL) + { + addReplyErrorFormat(c,"Invalid node address specified: %s:%s", + (char*)c->argv[2]->ptr, (char*)c->argv[3]->ptr); + } else { + addReply(c,shared.ok); + } + } else if (!strcasecmp(c->argv[1]->ptr,"nodes") && c->argc == 2) { + /* CLUSTER NODES */ + robj *o; + sds ci = clusterGenNodesDescription(0); + + o = createObject(OBJ_STRING,ci); + addReplyBulk(c,o); + decrRefCount(o); + } else if (!strcasecmp(c->argv[1]->ptr,"myid") && c->argc == 2) { + /* CLUSTER MYID */ + addReplyBulkCBuffer(c,myself->name, CLUSTER_NAMELEN); + } else if (!strcasecmp(c->argv[1]->ptr,"slots") && c->argc == 2) { + /* CLUSTER SLOTS */ + clusterReplyMultiBulkSlots(c); + } else if (!strcasecmp(c->argv[1]->ptr,"flushslots") && c->argc == 2) { + /* CLUSTER FLUSHSLOTS */ + if (dictSize(server.db[0].dict) != 0) { + addReplyError(c,"DB must be empty to perform CLUSTER FLUSHSLOTS."); + return; + } + clusterDelNodeSlots(myself); + clusterDoBeforeSleep(CLUSTER_TODO_UPDATE_STATE|CLUSTER_TODO_SAVE_CONFIG); + addReply(c,shared.ok); + } else if ((!strcasecmp(c->argv[1]->ptr,"addslots") || + !strcasecmp(c->argv[1]->ptr,"delslots")) && c->argc >= 3) + { + /* CLUSTER ADDSLOTS [slot] ... */ + /* CLUSTER DELSLOTS [slot] ... */ + int j, slot; + unsigned char *slots = zmalloc(CLUSTER_SLOTS); + int del = !strcasecmp(c->argv[1]->ptr,"delslots"); + + memset(slots,0,CLUSTER_SLOTS); + /* Check that all the arguments are parseable and that all the + * slots are not already busy. */ + for (j = 2; j < c->argc; j++) { + if ((slot = getSlotOrReply(c,c->argv[j])) == -1) { + zfree(slots); + return; + } + if (del && server.cluster->slots[slot] == NULL) { + addReplyErrorFormat(c,"Slot %d is already unassigned", slot); + zfree(slots); + return; + } else if (!del && server.cluster->slots[slot]) { + addReplyErrorFormat(c,"Slot %d is already busy", slot); + zfree(slots); + return; + } + if (slots[slot]++ == 1) { + addReplyErrorFormat(c,"Slot %d specified multiple times", + (int)slot); + zfree(slots); + return; + } + } + for (j = 0; j < CLUSTER_SLOTS; j++) { + if (slots[j]) { + int retval; + + /* If this slot was set as importing we can clear this + * state as now we are the real owner of the slot. */ + if (server.cluster->importing_slots_from[j]) + server.cluster->importing_slots_from[j] = NULL; + + retval = del ? clusterDelSlot(j) : + clusterAddSlot(myself,j); + serverAssertWithInfo(c,NULL,retval == C_OK); + } + } + zfree(slots); + clusterDoBeforeSleep(CLUSTER_TODO_UPDATE_STATE|CLUSTER_TODO_SAVE_CONFIG); + addReply(c,shared.ok); + } else if (!strcasecmp(c->argv[1]->ptr,"setslot") && c->argc >= 4) { + /* SETSLOT 10 MIGRATING */ + /* SETSLOT 10 IMPORTING */ + /* SETSLOT 10 STABLE */ + /* SETSLOT 10 NODE */ + int slot; + clusterNode *n; + + if (nodeIsSlave(myself)) { + addReplyError(c,"Please use SETSLOT only with masters."); + return; + } + + if ((slot = getSlotOrReply(c,c->argv[2])) == -1) return; + + if (!strcasecmp(c->argv[3]->ptr,"migrating") && c->argc == 5) { + if (server.cluster->slots[slot] != myself) { + addReplyErrorFormat(c,"I'm not the owner of hash slot %u",slot); + return; + } + if ((n = clusterLookupNode(c->argv[4]->ptr)) == NULL) { + addReplyErrorFormat(c,"I don't know about node %s", + (char*)c->argv[4]->ptr); + return; + } + server.cluster->migrating_slots_to[slot] = n; + } else if (!strcasecmp(c->argv[3]->ptr,"importing") && c->argc == 5) { + if (server.cluster->slots[slot] == myself) { + addReplyErrorFormat(c, + "I'm already the owner of hash slot %u",slot); + return; + } + if ((n = clusterLookupNode(c->argv[4]->ptr)) == NULL) { + addReplyErrorFormat(c,"I don't know about node %s", + (char*)c->argv[3]->ptr); + return; + } + server.cluster->importing_slots_from[slot] = n; + } else if (!strcasecmp(c->argv[3]->ptr,"stable") && c->argc == 4) { + /* CLUSTER SETSLOT STABLE */ + server.cluster->importing_slots_from[slot] = NULL; + server.cluster->migrating_slots_to[slot] = NULL; + } else if (!strcasecmp(c->argv[3]->ptr,"node") && c->argc == 5) { + /* CLUSTER SETSLOT NODE */ + clusterNode *n = clusterLookupNode(c->argv[4]->ptr); + + if (!n) { + addReplyErrorFormat(c,"Unknown node %s", + (char*)c->argv[4]->ptr); + return; + } + /* If this hash slot was served by 'myself' before to switch + * make sure there are no longer local keys for this hash slot. */ + if (server.cluster->slots[slot] == myself && n != myself) { + if (countKeysInSlot(slot) != 0) { + addReplyErrorFormat(c, + "Can't assign hashslot %d to a different node " + "while I still hold keys for this hash slot.", slot); + return; + } + } + /* If this slot is in migrating status but we have no keys + * for it assigning the slot to another node will clear + * the migratig status. */ + if (countKeysInSlot(slot) == 0 && + server.cluster->migrating_slots_to[slot]) + server.cluster->migrating_slots_to[slot] = NULL; + + /* If this node was importing this slot, assigning the slot to + * itself also clears the importing status. */ + if (n == myself && + server.cluster->importing_slots_from[slot]) + { + /* This slot was manually migrated, set this node configEpoch + * to a new epoch so that the new version can be propagated + * by the cluster. + * + * Note that if this ever results in a collision with another + * node getting the same configEpoch, for example because a + * failover happens at the same time we close the slot, the + * configEpoch collision resolution will fix it assigning + * a different epoch to each node. */ + if (clusterBumpConfigEpochWithoutConsensus() == C_OK) { + serverLog(LL_WARNING, + "configEpoch updated after importing slot %d", slot); + } + server.cluster->importing_slots_from[slot] = NULL; + } + clusterDelSlot(slot); + clusterAddSlot(n,slot); + } else { + addReplyError(c, + "Invalid CLUSTER SETSLOT action or number of arguments"); + return; + } + clusterDoBeforeSleep(CLUSTER_TODO_SAVE_CONFIG|CLUSTER_TODO_UPDATE_STATE); + addReply(c,shared.ok); + } else if (!strcasecmp(c->argv[1]->ptr,"bumpepoch") && c->argc == 2) { + /* CLUSTER BUMPEPOCH */ + int retval = clusterBumpConfigEpochWithoutConsensus(); + sds reply = sdscatprintf(sdsempty(),"+%s %llu\r\n", + (retval == C_OK) ? "BUMPED" : "STILL", + (unsigned long long) myself->configEpoch); + addReplySds(c,reply); + } else if (!strcasecmp(c->argv[1]->ptr,"info") && c->argc == 2) { + /* CLUSTER INFO */ + char *statestr[] = {"ok","fail","needhelp"}; + int slots_assigned = 0, slots_ok = 0, slots_pfail = 0, slots_fail = 0; + uint64_t myepoch; + int j; + + for (j = 0; j < CLUSTER_SLOTS; j++) { + clusterNode *n = server.cluster->slots[j]; + + if (n == NULL) continue; + slots_assigned++; + if (nodeFailed(n)) { + slots_fail++; + } else if (nodeTimedOut(n)) { + slots_pfail++; + } else { + slots_ok++; + } + } + + myepoch = (nodeIsSlave(myself) && myself->slaveof) ? + myself->slaveof->configEpoch : myself->configEpoch; + + sds info = sdscatprintf(sdsempty(), + "cluster_state:%s\r\n" + "cluster_slots_assigned:%d\r\n" + "cluster_slots_ok:%d\r\n" + "cluster_slots_pfail:%d\r\n" + "cluster_slots_fail:%d\r\n" + "cluster_known_nodes:%lu\r\n" + "cluster_size:%d\r\n" + "cluster_current_epoch:%llu\r\n" + "cluster_my_epoch:%llu\r\n" + , statestr[server.cluster->state], + slots_assigned, + slots_ok, + slots_pfail, + slots_fail, + dictSize(server.cluster->nodes), + server.cluster->size, + (unsigned long long) server.cluster->currentEpoch, + (unsigned long long) myepoch + ); + + /* Show stats about messages sent and received. */ + long long tot_msg_sent = 0; + long long tot_msg_received = 0; + + for (int i = 0; i < CLUSTERMSG_TYPE_COUNT; i++) { + if (server.cluster->stats_bus_messages_sent[i] == 0) continue; + tot_msg_sent += server.cluster->stats_bus_messages_sent[i]; + info = sdscatprintf(info, + "cluster_stats_messages_%s_sent:%lld\r\n", + clusterGetMessageTypeString(i), + server.cluster->stats_bus_messages_sent[i]); + } + info = sdscatprintf(info, + "cluster_stats_messages_sent:%lld\r\n", tot_msg_sent); + + for (int i = 0; i < CLUSTERMSG_TYPE_COUNT; i++) { + if (server.cluster->stats_bus_messages_received[i] == 0) continue; + tot_msg_received += server.cluster->stats_bus_messages_received[i]; + info = sdscatprintf(info, + "cluster_stats_messages_%s_received:%lld\r\n", + clusterGetMessageTypeString(i), + server.cluster->stats_bus_messages_received[i]); + } + info = sdscatprintf(info, + "cluster_stats_messages_received:%lld\r\n", tot_msg_received); + + /* Produce the reply protocol. */ + addReplySds(c,sdscatprintf(sdsempty(),"$%lu\r\n", + (unsigned long)sdslen(info))); + addReplySds(c,info); + addReply(c,shared.crlf); + } else if (!strcasecmp(c->argv[1]->ptr,"saveconfig") && c->argc == 2) { + int retval = clusterSaveConfig(1); + + if (retval == 0) + addReply(c,shared.ok); + else + addReplyErrorFormat(c,"error saving the cluster node config: %s", + strerror(errno)); + } else if (!strcasecmp(c->argv[1]->ptr,"keyslot") && c->argc == 3) { + /* CLUSTER KEYSLOT */ + sds key = c->argv[2]->ptr; + + addReplyLongLong(c,keyHashSlot(key,sdslen(key))); + } else if (!strcasecmp(c->argv[1]->ptr,"countkeysinslot") && c->argc == 3) { + /* CLUSTER COUNTKEYSINSLOT */ + long long slot; + + if (getLongLongFromObjectOrReply(c,c->argv[2],&slot,NULL) != C_OK) + return; + if (slot < 0 || slot >= CLUSTER_SLOTS) { + addReplyError(c,"Invalid slot"); + return; + } + addReplyLongLong(c,countKeysInSlot(slot)); + } else if (!strcasecmp(c->argv[1]->ptr,"getkeysinslot") && c->argc == 4) { + /* CLUSTER GETKEYSINSLOT */ + long long maxkeys, slot; + unsigned int numkeys, j; + robj **keys; + + if (getLongLongFromObjectOrReply(c,c->argv[2],&slot,NULL) != C_OK) + return; + if (getLongLongFromObjectOrReply(c,c->argv[3],&maxkeys,NULL) + != C_OK) + return; + if (slot < 0 || slot >= CLUSTER_SLOTS || maxkeys < 0) { + addReplyError(c,"Invalid slot or number of keys"); + return; + } + + keys = zmalloc(sizeof(robj*)*maxkeys); + numkeys = getKeysInSlot(slot, keys, maxkeys); + addReplyMultiBulkLen(c,numkeys); + for (j = 0; j < numkeys; j++) { + addReplyBulk(c,keys[j]); + decrRefCount(keys[j]); + } + zfree(keys); + } else if (!strcasecmp(c->argv[1]->ptr,"forget") && c->argc == 3) { + /* CLUSTER FORGET */ + clusterNode *n = clusterLookupNode(c->argv[2]->ptr); + + if (!n) { + addReplyErrorFormat(c,"Unknown node %s", (char*)c->argv[2]->ptr); + return; + } else if (n == myself) { + addReplyError(c,"I tried hard but I can't forget myself..."); + return; + } else if (nodeIsSlave(myself) && myself->slaveof == n) { + addReplyError(c,"Can't forget my master!"); + return; + } + clusterBlacklistAddNode(n); + clusterDelNode(n); + clusterDoBeforeSleep(CLUSTER_TODO_UPDATE_STATE| + CLUSTER_TODO_SAVE_CONFIG); + addReply(c,shared.ok); + } else if (!strcasecmp(c->argv[1]->ptr,"replicate") && c->argc == 3) { + /* CLUSTER REPLICATE */ + clusterNode *n = clusterLookupNode(c->argv[2]->ptr); + + /* Lookup the specified node in our table. */ + if (!n) { + addReplyErrorFormat(c,"Unknown node %s", (char*)c->argv[2]->ptr); + return; + } + + /* I can't replicate myself. */ + if (n == myself) { + addReplyError(c,"Can't replicate myself"); + return; + } + + /* Can't replicate a slave. */ + if (nodeIsSlave(n)) { + addReplyError(c,"I can only replicate a master, not a slave."); + return; + } + + /* If the instance is currently a master, it should have no assigned + * slots nor keys to accept to replicate some other node. + * Slaves can switch to another master without issues. */ + if (nodeIsMaster(myself) && + (myself->numslots != 0 || dictSize(server.db[0].dict) != 0)) { + addReplyError(c, + "To set a master the node must be empty and " + "without assigned slots."); + return; + } + + /* Set the master. */ + clusterSetMaster(n); + clusterDoBeforeSleep(CLUSTER_TODO_UPDATE_STATE|CLUSTER_TODO_SAVE_CONFIG); + addReply(c,shared.ok); + } else if (!strcasecmp(c->argv[1]->ptr,"slaves") && c->argc == 3) { + /* CLUSTER SLAVES */ + clusterNode *n = clusterLookupNode(c->argv[2]->ptr); + int j; + + /* Lookup the specified node in our table. */ + if (!n) { + addReplyErrorFormat(c,"Unknown node %s", (char*)c->argv[2]->ptr); + return; + } + + if (nodeIsSlave(n)) { + addReplyError(c,"The specified node is not a master"); + return; + } + + addReplyMultiBulkLen(c,n->numslaves); + for (j = 0; j < n->numslaves; j++) { + sds ni = clusterGenNodeDescription(n->slaves[j]); + addReplyBulkCString(c,ni); + sdsfree(ni); + } + } else if (!strcasecmp(c->argv[1]->ptr,"count-failure-reports") && + c->argc == 3) + { + /* CLUSTER COUNT-FAILURE-REPORTS */ + clusterNode *n = clusterLookupNode(c->argv[2]->ptr); + + if (!n) { + addReplyErrorFormat(c,"Unknown node %s", (char*)c->argv[2]->ptr); + return; + } else { + addReplyLongLong(c,clusterNodeFailureReportsCount(n)); + } + } else if (!strcasecmp(c->argv[1]->ptr,"failover") && + (c->argc == 2 || c->argc == 3)) + { + /* CLUSTER FAILOVER [FORCE|TAKEOVER] */ + int force = 0, takeover = 0; + + if (c->argc == 3) { + if (!strcasecmp(c->argv[2]->ptr,"force")) { + force = 1; + } else if (!strcasecmp(c->argv[2]->ptr,"takeover")) { + takeover = 1; + force = 1; /* Takeover also implies force. */ + } else { + addReply(c,shared.syntaxerr); + return; + } + } + + /* Check preconditions. */ + if (nodeIsMaster(myself)) { + addReplyError(c,"You should send CLUSTER FAILOVER to a slave"); + return; + } else if (myself->slaveof == NULL) { + addReplyError(c,"I'm a slave but my master is unknown to me"); + return; + } else if (!force && + (nodeFailed(myself->slaveof) || + myself->slaveof->link == NULL)) + { + addReplyError(c,"Master is down or failed, " + "please use CLUSTER FAILOVER FORCE"); + return; + } + resetManualFailover(); + server.cluster->mf_end = mstime() + CLUSTER_MF_TIMEOUT; + + if (takeover) { + /* A takeover does not perform any initial check. It just + * generates a new configuration epoch for this node without + * consensus, claims the master's slots, and broadcast the new + * configuration. */ + serverLog(LL_WARNING,"Taking over the master (user request)."); + clusterBumpConfigEpochWithoutConsensus(); + clusterFailoverReplaceYourMaster(); + } else if (force) { + /* If this is a forced failover, we don't need to talk with our + * master to agree about the offset. We just failover taking over + * it without coordination. */ + serverLog(LL_WARNING,"Forced failover user request accepted."); + server.cluster->mf_can_start = 1; + } else { + serverLog(LL_WARNING,"Manual failover user request accepted."); + clusterSendMFStart(myself->slaveof); + } + addReply(c,shared.ok); + } else if (!strcasecmp(c->argv[1]->ptr,"set-config-epoch") && c->argc == 3) + { + /* CLUSTER SET-CONFIG-EPOCH + * + * The user is allowed to set the config epoch only when a node is + * totally fresh: no config epoch, no other known node, and so forth. + * This happens at cluster creation time to start with a cluster where + * every node has a different node ID, without to rely on the conflicts + * resolution system which is too slow when a big cluster is created. */ + long long epoch; + + if (getLongLongFromObjectOrReply(c,c->argv[2],&epoch,NULL) != C_OK) + return; + + if (epoch < 0) { + addReplyErrorFormat(c,"Invalid config epoch specified: %lld",epoch); + } else if (dictSize(server.cluster->nodes) > 1) { + addReplyError(c,"The user can assign a config epoch only when the " + "node does not know any other node."); + } else if (myself->configEpoch != 0) { + addReplyError(c,"Node config epoch is already non-zero"); + } else { + myself->configEpoch = epoch; + serverLog(LL_WARNING, + "configEpoch set to %llu via CLUSTER SET-CONFIG-EPOCH", + (unsigned long long) myself->configEpoch); + + if (server.cluster->currentEpoch < (uint64_t)epoch) + server.cluster->currentEpoch = epoch; + /* No need to fsync the config here since in the unlucky event + * of a failure to persist the config, the conflict resolution code + * will assign an unique config to this node. */ + clusterDoBeforeSleep(CLUSTER_TODO_UPDATE_STATE| + CLUSTER_TODO_SAVE_CONFIG); + addReply(c,shared.ok); + } + } else if (!strcasecmp(c->argv[1]->ptr,"reset") && + (c->argc == 2 || c->argc == 3)) + { + /* CLUSTER RESET [SOFT|HARD] */ + int hard = 0; + + /* Parse soft/hard argument. Default is soft. */ + if (c->argc == 3) { + if (!strcasecmp(c->argv[2]->ptr,"hard")) { + hard = 1; + } else if (!strcasecmp(c->argv[2]->ptr,"soft")) { + hard = 0; + } else { + addReply(c,shared.syntaxerr); + return; + } + } + + /* Slaves can be reset while containing data, but not master nodes + * that must be empty. */ + if (nodeIsMaster(myself) && dictSize(c->db->dict) != 0) { + addReplyError(c,"CLUSTER RESET can't be called with " + "master nodes containing keys"); + return; + } + clusterReset(hard); + addReply(c,shared.ok); + } else { + addReplyError(c,"Wrong CLUSTER subcommand or number of arguments"); + } +} + +/* ----------------------------------------------------------------------------- + * DUMP, RESTORE and MIGRATE commands + * -------------------------------------------------------------------------- */ + +/* Generates a DUMP-format representation of the object 'o', adding it to the + * io stream pointed by 'rio'. This function can't fail. */ +void createDumpPayload(rio *payload, robj *o) { + unsigned char buf[2]; + uint64_t crc; + + /* Serialize the object in a RDB-like format. It consist of an object type + * byte followed by the serialized object. This is understood by RESTORE. */ + rioInitWithBuffer(payload,sdsempty()); + serverAssert(rdbSaveObjectType(payload,o)); + serverAssert(rdbSaveObject(payload,o)); + + /* Write the footer, this is how it looks like: + * ----------------+---------------------+---------------+ + * ... RDB payload | 2 bytes RDB version | 8 bytes CRC64 | + * ----------------+---------------------+---------------+ + * RDB version and CRC are both in little endian. + */ + + /* RDB version */ + buf[0] = RDB_VERSION & 0xff; + buf[1] = (RDB_VERSION >> 8) & 0xff; + payload->io.buffer.ptr = sdscatlen(payload->io.buffer.ptr,buf,2); + + /* CRC64 */ + crc = crc64(0,(unsigned char*)payload->io.buffer.ptr, + sdslen(payload->io.buffer.ptr)); + memrev64ifbe(&crc); + payload->io.buffer.ptr = sdscatlen(payload->io.buffer.ptr,&crc,8); +} + +/* Verify that the RDB version of the dump payload matches the one of this Redis + * instance and that the checksum is ok. + * If the DUMP payload looks valid C_OK is returned, otherwise C_ERR + * is returned. */ +int verifyDumpPayload(unsigned char *p, size_t len) { + unsigned char *footer; + uint16_t rdbver; + uint64_t crc; + + /* At least 2 bytes of RDB version and 8 of CRC64 should be present. */ + if (len < 10) return C_ERR; + footer = p+(len-10); + + /* Verify RDB version */ + rdbver = (footer[1] << 8) | footer[0]; + if (rdbver > RDB_VERSION) return C_ERR; + + /* Verify CRC64 */ + crc = crc64(0,p,len-8); + memrev64ifbe(&crc); + return (memcmp(&crc,footer+2,8) == 0) ? C_OK : C_ERR; +} + +/* DUMP keyname + * DUMP is actually not used by Redis Cluster but it is the obvious + * complement of RESTORE and can be useful for different applications. */ +void dumpCommand(client *c) { + robj *o, *dumpobj; + rio payload; + + /* Check if the key is here. */ + if ((o = lookupKeyRead(c->db,c->argv[1])) == NULL) { + addReply(c,shared.nullbulk); + return; + } + + /* Create the DUMP encoded representation. */ + createDumpPayload(&payload,o); + + /* Transfer to the client */ + dumpobj = createObject(OBJ_STRING,payload.io.buffer.ptr); + addReplyBulk(c,dumpobj); + decrRefCount(dumpobj); + return; +} + +/* RESTORE key ttl serialized-value [REPLACE] */ +void restoreCommand(client *c) { + long long ttl; + rio payload; + int j, type, replace = 0; + robj *obj; + + /* Parse additional options */ + for (j = 4; j < c->argc; j++) { + if (!strcasecmp(c->argv[j]->ptr,"replace")) { + replace = 1; + } else { + addReply(c,shared.syntaxerr); + return; + } + } + + /* Make sure this key does not already exist here... */ + if (!replace && lookupKeyWrite(c->db,c->argv[1]) != NULL) { + addReply(c,shared.busykeyerr); + return; + } + + /* Check if the TTL value makes sense */ + if (getLongLongFromObjectOrReply(c,c->argv[2],&ttl,NULL) != C_OK) { + return; + } else if (ttl < 0) { + addReplyError(c,"Invalid TTL value, must be >= 0"); + return; + } + + /* Verify RDB version and data checksum. */ + if (verifyDumpPayload(c->argv[3]->ptr,sdslen(c->argv[3]->ptr)) == C_ERR) + { + addReplyError(c,"DUMP payload version or checksum are wrong"); + return; + } + + rioInitWithBuffer(&payload,c->argv[3]->ptr); + if (((type = rdbLoadObjectType(&payload)) == -1) || + ((obj = rdbLoadObject(type,&payload)) == NULL)) + { + addReplyError(c,"Bad data format"); + return; + } + + /* Remove the old key if needed. */ + if (replace) dbDelete(c->db,c->argv[1]); + + /* Create the key and set the TTL if any */ + dbAdd(c->db,c->argv[1],obj); + if (ttl) setExpire(c,c->db,c->argv[1],mstime()+ttl); + signalModifiedKey(c->db,c->argv[1]); + addReply(c,shared.ok); + server.dirty++; +} + +/* MIGRATE socket cache implementation. + * + * We take a map between host:ip and a TCP socket that we used to connect + * to this instance in recent time. + * This sockets are closed when the max number we cache is reached, and also + * in serverCron() when they are around for more than a few seconds. */ +#define MIGRATE_SOCKET_CACHE_ITEMS 64 /* max num of items in the cache. */ +#define MIGRATE_SOCKET_CACHE_TTL 10 /* close cached sockets after 10 sec. */ + +typedef struct migrateCachedSocket { + int fd; + long last_dbid; + time_t last_use_time; +} migrateCachedSocket; + +/* Return a migrateCachedSocket containing a TCP socket connected with the + * target instance, possibly returning a cached one. + * + * This function is responsible of sending errors to the client if a + * connection can't be established. In this case -1 is returned. + * Otherwise on success the socket is returned, and the caller should not + * attempt to free it after usage. + * + * If the caller detects an error while using the socket, migrateCloseSocket() + * should be called so that the connection will be created from scratch + * the next time. */ +migrateCachedSocket* migrateGetSocket(client *c, robj *host, robj *port, long timeout) { + int fd; + sds name = sdsempty(); + migrateCachedSocket *cs; + + /* Check if we have an already cached socket for this ip:port pair. */ + name = sdscatlen(name,host->ptr,sdslen(host->ptr)); + name = sdscatlen(name,":",1); + name = sdscatlen(name,port->ptr,sdslen(port->ptr)); + cs = dictFetchValue(server.migrate_cached_sockets,name); + if (cs) { + sdsfree(name); + cs->last_use_time = server.unixtime; + return cs; + } + + /* No cached socket, create one. */ + if (dictSize(server.migrate_cached_sockets) == MIGRATE_SOCKET_CACHE_ITEMS) { + /* Too many items, drop one at random. */ + dictEntry *de = dictGetRandomKey(server.migrate_cached_sockets); + cs = dictGetVal(de); + close(cs->fd); + zfree(cs); + dictDelete(server.migrate_cached_sockets,dictGetKey(de)); + } + + /* Create the socket */ + fd = anetTcpNonBlockConnect(server.neterr,c->argv[1]->ptr, + atoi(c->argv[2]->ptr)); + if (fd == -1) { + sdsfree(name); + addReplyErrorFormat(c,"Can't connect to target node: %s", + server.neterr); + return NULL; + } + anetEnableTcpNoDelay(server.neterr,fd); + + /* Check if it connects within the specified timeout. */ + if ((aeWait(fd,AE_WRITABLE,timeout) & AE_WRITABLE) == 0) { + sdsfree(name); + addReplySds(c, + sdsnew("-IOERR error or timeout connecting to the client\r\n")); + close(fd); + return NULL; + } + + /* Add to the cache and return it to the caller. */ + cs = zmalloc(sizeof(*cs)); + cs->fd = fd; + cs->last_dbid = -1; + cs->last_use_time = server.unixtime; + dictAdd(server.migrate_cached_sockets,name,cs); + return cs; +} + +/* Free a migrate cached connection. */ +void migrateCloseSocket(robj *host, robj *port) { + sds name = sdsempty(); + migrateCachedSocket *cs; + + name = sdscatlen(name,host->ptr,sdslen(host->ptr)); + name = sdscatlen(name,":",1); + name = sdscatlen(name,port->ptr,sdslen(port->ptr)); + cs = dictFetchValue(server.migrate_cached_sockets,name); + if (!cs) { + sdsfree(name); + return; + } + + close(cs->fd); + zfree(cs); + dictDelete(server.migrate_cached_sockets,name); + sdsfree(name); +} + +void migrateCloseTimedoutSockets(void) { + dictIterator *di = dictGetSafeIterator(server.migrate_cached_sockets); + dictEntry *de; + + while((de = dictNext(di)) != NULL) { + migrateCachedSocket *cs = dictGetVal(de); + + if ((server.unixtime - cs->last_use_time) > MIGRATE_SOCKET_CACHE_TTL) { + close(cs->fd); + zfree(cs); + dictDelete(server.migrate_cached_sockets,dictGetKey(de)); + } + } + dictReleaseIterator(di); +} + +/* MIGRATE host port key dbid timeout [COPY | REPLACE] + * + * On in the multiple keys form: + * + * MIGRATE host port "" dbid timeout [COPY | REPLACE] KEYS key1 key2 ... keyN */ +void migrateCommand(client *c) { + migrateCachedSocket *cs; + int copy, replace, j; + long timeout; + long dbid; + robj **ov = NULL; /* Objects to migrate. */ + robj **kv = NULL; /* Key names. */ + robj **newargv = NULL; /* Used to rewrite the command as DEL ... keys ... */ + rio cmd, payload; + int may_retry = 1; + int write_error = 0; + int argv_rewritten = 0; + + /* To support the KEYS option we need the following additional state. */ + int first_key = 3; /* Argument index of the first key. */ + int num_keys = 1; /* By default only migrate the 'key' argument. */ + + /* Initialization */ + copy = 0; + replace = 0; + + /* Parse additional options */ + for (j = 6; j < c->argc; j++) { + if (!strcasecmp(c->argv[j]->ptr,"copy")) { + copy = 1; + } else if (!strcasecmp(c->argv[j]->ptr,"replace")) { + replace = 1; + } else if (!strcasecmp(c->argv[j]->ptr,"keys")) { + if (sdslen(c->argv[3]->ptr) != 0) { + addReplyError(c, + "When using MIGRATE KEYS option, the key argument" + " must be set to the empty string"); + return; + } + first_key = j+1; + num_keys = c->argc - j - 1; + break; /* All the remaining args are keys. */ + } else { + addReply(c,shared.syntaxerr); + return; + } + } + + /* Sanity check */ + if (getLongFromObjectOrReply(c,c->argv[5],&timeout,NULL) != C_OK || + getLongFromObjectOrReply(c,c->argv[4],&dbid,NULL) != C_OK) + { + return; + } + if (timeout <= 0) timeout = 1000; + + /* Check if the keys are here. If at least one key is to migrate, do it + * otherwise if all the keys are missing reply with "NOKEY" to signal + * the caller there was nothing to migrate. We don't return an error in + * this case, since often this is due to a normal condition like the key + * expiring in the meantime. */ + ov = zrealloc(ov,sizeof(robj*)*num_keys); + kv = zrealloc(kv,sizeof(robj*)*num_keys); + int oi = 0; + + for (j = 0; j < num_keys; j++) { + if ((ov[oi] = lookupKeyRead(c->db,c->argv[first_key+j])) != NULL) { + kv[oi] = c->argv[first_key+j]; + oi++; + } + } + num_keys = oi; + if (num_keys == 0) { + zfree(ov); zfree(kv); + addReplySds(c,sdsnew("+NOKEY\r\n")); + return; + } + +try_again: + write_error = 0; + + /* Connect */ + cs = migrateGetSocket(c,c->argv[1],c->argv[2],timeout); + if (cs == NULL) { + zfree(ov); zfree(kv); + return; /* error sent to the client by migrateGetSocket() */ + } + + rioInitWithBuffer(&cmd,sdsempty()); + + /* Send the SELECT command if the current DB is not already selected. */ + int select = cs->last_dbid != dbid; /* Should we emit SELECT? */ + if (select) { + serverAssertWithInfo(c,NULL,rioWriteBulkCount(&cmd,'*',2)); + serverAssertWithInfo(c,NULL,rioWriteBulkString(&cmd,"SELECT",6)); + serverAssertWithInfo(c,NULL,rioWriteBulkLongLong(&cmd,dbid)); + } + + /* Create RESTORE payload and generate the protocol to call the command. */ + for (j = 0; j < num_keys; j++) { + long long ttl = 0; + long long expireat = getExpire(c->db,kv[j]); + + if (expireat != -1) { + ttl = expireat-mstime(); + if (ttl < 1) ttl = 1; + } + serverAssertWithInfo(c,NULL,rioWriteBulkCount(&cmd,'*',replace ? 5 : 4)); + if (server.cluster_enabled) + serverAssertWithInfo(c,NULL, + rioWriteBulkString(&cmd,"RESTORE-ASKING",14)); + else + serverAssertWithInfo(c,NULL,rioWriteBulkString(&cmd,"RESTORE",7)); + serverAssertWithInfo(c,NULL,sdsEncodedObject(kv[j])); + serverAssertWithInfo(c,NULL,rioWriteBulkString(&cmd,kv[j]->ptr, + sdslen(kv[j]->ptr))); + serverAssertWithInfo(c,NULL,rioWriteBulkLongLong(&cmd,ttl)); + + /* Emit the payload argument, that is the serialized object using + * the DUMP format. */ + createDumpPayload(&payload,ov[j]); + serverAssertWithInfo(c,NULL, + rioWriteBulkString(&cmd,payload.io.buffer.ptr, + sdslen(payload.io.buffer.ptr))); + sdsfree(payload.io.buffer.ptr); + + /* Add the REPLACE option to the RESTORE command if it was specified + * as a MIGRATE option. */ + if (replace) + serverAssertWithInfo(c,NULL,rioWriteBulkString(&cmd,"REPLACE",7)); + } + + /* Transfer the query to the other node in 64K chunks. */ + errno = 0; + { + sds buf = cmd.io.buffer.ptr; + size_t pos = 0, towrite; + int nwritten = 0; + + while ((towrite = sdslen(buf)-pos) > 0) { + towrite = (towrite > (64*1024) ? (64*1024) : towrite); + nwritten = syncWrite(cs->fd,buf+pos,towrite,timeout); + if (nwritten != (signed)towrite) { + write_error = 1; + goto socket_err; + } + pos += nwritten; + } + } + + char buf1[1024]; /* Select reply. */ + char buf2[1024]; /* Restore reply. */ + + /* Read the SELECT reply if needed. */ + if (select && syncReadLine(cs->fd, buf1, sizeof(buf1), timeout) <= 0) + goto socket_err; + + /* Read the RESTORE replies. */ + int error_from_target = 0; + int socket_error = 0; + int del_idx = 1; /* Index of the key argument for the replicated DEL op. */ + + if (!copy) newargv = zmalloc(sizeof(robj*)*(num_keys+1)); + + for (j = 0; j < num_keys; j++) { + if (syncReadLine(cs->fd, buf2, sizeof(buf2), timeout) <= 0) { + socket_error = 1; + break; + } + if ((select && buf1[0] == '-') || buf2[0] == '-') { + /* On error assume that last_dbid is no longer valid. */ + if (!error_from_target) { + cs->last_dbid = -1; + addReplyErrorFormat(c,"Target instance replied with error: %s", + (select && buf1[0] == '-') ? buf1+1 : buf2+1); + error_from_target = 1; + } + } else { + if (!copy) { + /* No COPY option: remove the local key, signal the change. */ + dbDelete(c->db,kv[j]); + signalModifiedKey(c->db,kv[j]); + server.dirty++; + + /* Populate the argument vector to replace the old one. */ + newargv[del_idx++] = kv[j]; + incrRefCount(kv[j]); + } + } + } + + /* On socket error, if we want to retry, do it now before rewriting the + * command vector. We only retry if we are sure nothing was processed + * and we failed to read the first reply (j == 0 test). */ + if (!error_from_target && socket_error && j == 0 && may_retry && + errno != ETIMEDOUT) + { + goto socket_err; /* A retry is guaranteed because of tested conditions.*/ + } + + /* On socket errors, close the migration socket now that we still have + * the original host/port in the ARGV. Later the original command may be + * rewritten to DEL and will be too later. */ + if (socket_error) migrateCloseSocket(c->argv[1],c->argv[2]); + + if (!copy) { + /* Translate MIGRATE as DEL for replication/AOF. Note that we do + * this only for the keys for which we received an acknowledgement + * from the receiving Redis server, by using the del_idx index. */ + if (del_idx > 1) { + newargv[0] = createStringObject("DEL",3); + /* Note that the following call takes ownership of newargv. */ + replaceClientCommandVector(c,del_idx,newargv); + argv_rewritten = 1; + } else { + /* No key transfer acknowledged, no need to rewrite as DEL. */ + zfree(newargv); + } + newargv = NULL; /* Make it safe to call zfree() on it in the future. */ + } + + /* If we are here and a socket error happened, we don't want to retry. + * Just signal the problem to the client, but only do it if we did not + * already queue a different error reported by the destination server. */ + if (!error_from_target && socket_error) { + may_retry = 0; + goto socket_err; + } + + if (!error_from_target) { + /* Success! Update the last_dbid in migrateCachedSocket, so that we can + * avoid SELECT the next time if the target DB is the same. Reply +OK. + * + * Note: If we reached this point, even if socket_error is true + * still the SELECT command succeeded (otherwise the code jumps to + * socket_err label. */ + cs->last_dbid = dbid; + addReply(c,shared.ok); + } else { + /* On error we already sent it in the for loop above, and set + * the curretly selected socket to -1 to force SELECT the next time. */ + } + + sdsfree(cmd.io.buffer.ptr); + zfree(ov); zfree(kv); zfree(newargv); + return; + +/* On socket errors we try to close the cached socket and try again. + * It is very common for the cached socket to get closed, if just reopening + * it works it's a shame to notify the error to the caller. */ +socket_err: + /* Cleanup we want to perform in both the retry and no retry case. + * Note: Closing the migrate socket will also force SELECT next time. */ + sdsfree(cmd.io.buffer.ptr); + + /* If the command was rewritten as DEL and there was a socket error, + * we already closed the socket earlier. While migrateCloseSocket() + * is idempotent, the host/port arguments are now gone, so don't do it + * again. */ + if (!argv_rewritten) migrateCloseSocket(c->argv[1],c->argv[2]); + zfree(newargv); + newargv = NULL; /* This will get reallocated on retry. */ + + /* Retry only if it's not a timeout and we never attempted a retry + * (or the code jumping here did not set may_retry to zero). */ + if (errno != ETIMEDOUT && may_retry) { + may_retry = 0; + goto try_again; + } + + /* Cleanup we want to do if no retry is attempted. */ + zfree(ov); zfree(kv); + addReplySds(c, + sdscatprintf(sdsempty(), + "-IOERR error or timeout %s to target instance\r\n", + write_error ? "writing" : "reading")); + return; +} + +/* ----------------------------------------------------------------------------- + * Cluster functions related to serving / redirecting clients + * -------------------------------------------------------------------------- */ + +/* The ASKING command is required after a -ASK redirection. + * The client should issue ASKING before to actually send the command to + * the target instance. See the Redis Cluster specification for more + * information. */ +void askingCommand(client *c) { + if (server.cluster_enabled == 0) { + addReplyError(c,"This instance has cluster support disabled"); + return; + } + c->flags |= CLIENT_ASKING; + addReply(c,shared.ok); +} + +/* The READONLY command is used by clients to enter the read-only mode. + * In this mode slaves will not redirect clients as long as clients access + * with read-only commands to keys that are served by the slave's master. */ +void readonlyCommand(client *c) { + if (server.cluster_enabled == 0) { + addReplyError(c,"This instance has cluster support disabled"); + return; + } + c->flags |= CLIENT_READONLY; + addReply(c,shared.ok); +} + +/* The READWRITE command just clears the READONLY command state. */ +void readwriteCommand(client *c) { + c->flags &= ~CLIENT_READONLY; + addReply(c,shared.ok); +} + +/* Return the pointer to the cluster node that is able to serve the command. + * For the function to succeed the command should only target either: + * + * 1) A single key (even multiple times like LPOPRPUSH mylist mylist). + * 2) Multiple keys in the same hash slot, while the slot is stable (no + * resharding in progress). + * + * On success the function returns the node that is able to serve the request. + * If the node is not 'myself' a redirection must be perfomed. The kind of + * redirection is specified setting the integer passed by reference + * 'error_code', which will be set to CLUSTER_REDIR_ASK or + * CLUSTER_REDIR_MOVED. + * + * When the node is 'myself' 'error_code' is set to CLUSTER_REDIR_NONE. + * + * If the command fails NULL is returned, and the reason of the failure is + * provided via 'error_code', which will be set to: + * + * CLUSTER_REDIR_CROSS_SLOT if the request contains multiple keys that + * don't belong to the same hash slot. + * + * CLUSTER_REDIR_UNSTABLE if the request contains multiple keys + * belonging to the same slot, but the slot is not stable (in migration or + * importing state, likely because a resharding is in progress). + * + * CLUSTER_REDIR_DOWN_UNBOUND if the request addresses a slot which is + * not bound to any node. In this case the cluster global state should be + * already "down" but it is fragile to rely on the update of the global state, + * so we also handle it here. + * + * CLUSTER_REDIR_DOWN_STATE if the cluster is down but the user attempts to + * execute a command that addresses one or more keys. */ +clusterNode *getNodeByQuery(client *c, struct redisCommand *cmd, robj **argv, int argc, int *hashslot, int *error_code) { + clusterNode *n = NULL; + robj *firstkey = NULL; + int multiple_keys = 0; + multiState *ms, _ms; + multiCmd mc; + int i, slot = 0, migrating_slot = 0, importing_slot = 0, missing_keys = 0; + + /* Set error code optimistically for the base case. */ + if (error_code) *error_code = CLUSTER_REDIR_NONE; + + /* We handle all the cases as if they were EXEC commands, so we have + * a common code path for everything */ + if (cmd->proc == execCommand) { + /* If CLIENT_MULTI flag is not set EXEC is just going to return an + * error. */ + if (!(c->flags & CLIENT_MULTI)) return myself; + ms = &c->mstate; + } else { + /* In order to have a single codepath create a fake Multi State + * structure if the client is not in MULTI/EXEC state, this way + * we have a single codepath below. */ + ms = &_ms; + _ms.commands = &mc; + _ms.count = 1; + mc.argv = argv; + mc.argc = argc; + mc.cmd = cmd; + } + + /* Check that all the keys are in the same hash slot, and obtain this + * slot and the node associated. */ + for (i = 0; i < ms->count; i++) { + struct redisCommand *mcmd; + robj **margv; + int margc, *keyindex, numkeys, j; + + mcmd = ms->commands[i].cmd; + margc = ms->commands[i].argc; + margv = ms->commands[i].argv; + + keyindex = getKeysFromCommand(mcmd,margv,margc,&numkeys); + for (j = 0; j < numkeys; j++) { + robj *thiskey = margv[keyindex[j]]; + int thisslot = keyHashSlot((char*)thiskey->ptr, + sdslen(thiskey->ptr)); + + if (firstkey == NULL) { + /* This is the first key we see. Check what is the slot + * and node. */ + firstkey = thiskey; + slot = thisslot; + n = server.cluster->slots[slot]; + + /* Error: If a slot is not served, we are in "cluster down" + * state. However the state is yet to be updated, so this was + * not trapped earlier in processCommand(). Report the same + * error to the client. */ + if (n == NULL) { + getKeysFreeResult(keyindex); + if (error_code) + *error_code = CLUSTER_REDIR_DOWN_UNBOUND; + return NULL; + } + + /* If we are migrating or importing this slot, we need to check + * if we have all the keys in the request (the only way we + * can safely serve the request, otherwise we return a TRYAGAIN + * error). To do so we set the importing/migrating state and + * increment a counter for every missing key. */ + if (n == myself && + server.cluster->migrating_slots_to[slot] != NULL) + { + migrating_slot = 1; + } else if (server.cluster->importing_slots_from[slot] != NULL) { + importing_slot = 1; + } + } else { + /* If it is not the first key, make sure it is exactly + * the same key as the first we saw. */ + if (!equalStringObjects(firstkey,thiskey)) { + if (slot != thisslot) { + /* Error: multiple keys from different slots. */ + getKeysFreeResult(keyindex); + if (error_code) + *error_code = CLUSTER_REDIR_CROSS_SLOT; + return NULL; + } else { + /* Flag this request as one with multiple different + * keys. */ + multiple_keys = 1; + } + } + } + + /* Migarting / Improrting slot? Count keys we don't have. */ + if ((migrating_slot || importing_slot) && + lookupKeyRead(&server.db[0],thiskey) == NULL) + { + missing_keys++; + } + } + getKeysFreeResult(keyindex); + } + + /* No key at all in command? then we can serve the request + * without redirections or errors in all the cases. */ + if (n == NULL) return myself; + + /* Cluster is globally down but we got keys? We can't serve the request. */ + if (server.cluster->state != CLUSTER_OK) { + if (error_code) *error_code = CLUSTER_REDIR_DOWN_STATE; + return NULL; + } + + /* Return the hashslot by reference. */ + if (hashslot) *hashslot = slot; + + /* MIGRATE always works in the context of the local node if the slot + * is open (migrating or importing state). We need to be able to freely + * move keys among instances in this case. */ + if ((migrating_slot || importing_slot) && cmd->proc == migrateCommand) + return myself; + + /* If we don't have all the keys and we are migrating the slot, send + * an ASK redirection. */ + if (migrating_slot && missing_keys) { + if (error_code) *error_code = CLUSTER_REDIR_ASK; + return server.cluster->migrating_slots_to[slot]; + } + + /* If we are receiving the slot, and the client correctly flagged the + * request as "ASKING", we can serve the request. However if the request + * involves multiple keys and we don't have them all, the only option is + * to send a TRYAGAIN error. */ + if (importing_slot && + (c->flags & CLIENT_ASKING || cmd->flags & CMD_ASKING)) + { + if (multiple_keys && missing_keys) { + if (error_code) *error_code = CLUSTER_REDIR_UNSTABLE; + return NULL; + } else { + return myself; + } + } + + /* Handle the read-only client case reading from a slave: if this + * node is a slave and the request is about an hash slot our master + * is serving, we can reply without redirection. */ + if (c->flags & CLIENT_READONLY && + cmd->flags & CMD_READONLY && + nodeIsSlave(myself) && + myself->slaveof == n) + { + return myself; + } + + /* Base case: just return the right node. However if this node is not + * myself, set error_code to MOVED since we need to issue a rediretion. */ + if (n != myself && error_code) *error_code = CLUSTER_REDIR_MOVED; + return n; +} + +/* Send the client the right redirection code, according to error_code + * that should be set to one of CLUSTER_REDIR_* macros. + * + * If CLUSTER_REDIR_ASK or CLUSTER_REDIR_MOVED error codes + * are used, then the node 'n' should not be NULL, but should be the + * node we want to mention in the redirection. Moreover hashslot should + * be set to the hash slot that caused the redirection. */ +void clusterRedirectClient(client *c, clusterNode *n, int hashslot, int error_code) { + if (error_code == CLUSTER_REDIR_CROSS_SLOT) { + addReplySds(c,sdsnew("-CROSSSLOT Keys in request don't hash to the same slot\r\n")); + } else if (error_code == CLUSTER_REDIR_UNSTABLE) { + /* The request spawns mutliple keys in the same slot, + * but the slot is not "stable" currently as there is + * a migration or import in progress. */ + addReplySds(c,sdsnew("-TRYAGAIN Multiple keys request during rehashing of slot\r\n")); + } else if (error_code == CLUSTER_REDIR_DOWN_STATE) { + addReplySds(c,sdsnew("-CLUSTERDOWN The cluster is down\r\n")); + } else if (error_code == CLUSTER_REDIR_DOWN_UNBOUND) { + addReplySds(c,sdsnew("-CLUSTERDOWN Hash slot not served\r\n")); + } else if (error_code == CLUSTER_REDIR_MOVED || + error_code == CLUSTER_REDIR_ASK) + { + addReplySds(c,sdscatprintf(sdsempty(), + "-%s %d %s:%d\r\n", + (error_code == CLUSTER_REDIR_ASK) ? "ASK" : "MOVED", + hashslot,n->ip,n->port)); + } else { + serverPanic("getNodeByQuery() unknown error."); + } +} + +/* This function is called by the function processing clients incrementally + * to detect timeouts, in order to handle the following case: + * + * 1) A client blocks with BLPOP or similar blocking operation. + * 2) The master migrates the hash slot elsewhere or turns into a slave. + * 3) The client may remain blocked forever (or up to the max timeout time) + * waiting for a key change that will never happen. + * + * If the client is found to be blocked into an hash slot this node no + * longer handles, the client is sent a redirection error, and the function + * returns 1. Otherwise 0 is returned and no operation is performed. */ +int clusterRedirectBlockedClientIfNeeded(client *c) { + if (c->flags & CLIENT_BLOCKED && c->btype == BLOCKED_LIST) { + dictEntry *de; + dictIterator *di; + + /* If the cluster is down, unblock the client with the right error. */ + if (server.cluster->state == CLUSTER_FAIL) { + clusterRedirectClient(c,NULL,0,CLUSTER_REDIR_DOWN_STATE); + return 1; + } + + di = dictGetIterator(c->bpop.keys); + while((de = dictNext(di)) != NULL) { + robj *key = dictGetKey(de); + int slot = keyHashSlot((char*)key->ptr, sdslen(key->ptr)); + clusterNode *node = server.cluster->slots[slot]; + + /* We send an error and unblock the client if: + * 1) The slot is unassigned, emitting a cluster down error. + * 2) The slot is not handled by this node, nor being imported. */ + if (node != myself && + server.cluster->importing_slots_from[slot] == NULL) + { + if (node == NULL) { + clusterRedirectClient(c,NULL,0, + CLUSTER_REDIR_DOWN_UNBOUND); + } else { + clusterRedirectClient(c,node,slot, + CLUSTER_REDIR_MOVED); + } + return 1; + } + } + dictReleaseIterator(di); + } + return 0; +} diff --git a/tree-sitter-c/examples/malloc.c b/tree-sitter-c/examples/malloc.c new file mode 100644 index 0000000..d5ee428 --- /dev/null +++ b/tree-sitter-c/examples/malloc.c @@ -0,0 +1,532 @@ +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include "libc.h" +#include "atomic.h" +#include "pthread_impl.h" + +#if defined(__GNUC__) && defined(__PIC__) +#define inline inline __attribute__((always_inline)) +#endif + +void *__mmap(void *, size_t, int, int, int, off_t); +int __munmap(void *, size_t); +void *__mremap(void *, size_t, size_t, int, ...); +int __madvise(void *, size_t, int); + +struct chunk { + size_t psize, csize; + struct chunk *next, *prev; +}; + +struct bin { + volatile int lock[2]; + struct chunk *head; + struct chunk *tail; +}; + +static struct { + volatile uint64_t binmap; + struct bin bins[64]; + volatile int free_lock[2]; +} mal; + + +#define SIZE_ALIGN (4*sizeof(size_t)) +#define SIZE_MASK (-SIZE_ALIGN) +#define OVERHEAD (2*sizeof(size_t)) +#define MMAP_THRESHOLD (0x1c00*SIZE_ALIGN) +#define DONTCARE 16 +#define RECLAIM 163840 + +#define CHUNK_SIZE(c) ((c)->csize & -2) +#define CHUNK_PSIZE(c) ((c)->psize & -2) +#define PREV_CHUNK(c) ((struct chunk *)((char *)(c) - CHUNK_PSIZE(c))) +#define NEXT_CHUNK(c) ((struct chunk *)((char *)(c) + CHUNK_SIZE(c))) +#define MEM_TO_CHUNK(p) (struct chunk *)((char *)(p) - OVERHEAD) +#define CHUNK_TO_MEM(c) (void *)((char *)(c) + OVERHEAD) +#define BIN_TO_CHUNK(i) (MEM_TO_CHUNK(&mal.bins[i].head)) + +#define C_INUSE ((size_t)1) + +#define IS_MMAPPED(c) !((c)->csize & (C_INUSE)) + + +/* Synchronization tools */ + +static inline void lock(volatile int *lk) +{ + if (libc.threads_minus_1) + while(a_swap(lk, 1)) __wait(lk, lk+1, 1, 1); +} + +static inline void unlock(volatile int *lk) +{ + if (lk[0]) { + a_store(lk, 0); + if (lk[1]) __wake(lk, 1, 1); + } +} + +static inline void lock_bin(int i) +{ + lock(mal.bins[i].lock); + if (!mal.bins[i].head) + mal.bins[i].head = mal.bins[i].tail = BIN_TO_CHUNK(i); +} + +static inline void unlock_bin(int i) +{ + unlock(mal.bins[i].lock); +} + +static int first_set(uint64_t x) +{ +#if 1 + return a_ctz_64(x); +#else + static const char debruijn64[64] = { + 0, 1, 2, 53, 3, 7, 54, 27, 4, 38, 41, 8, 34, 55, 48, 28, + 62, 5, 39, 46, 44, 42, 22, 9, 24, 35, 59, 56, 49, 18, 29, 11, + 63, 52, 6, 26, 37, 40, 33, 47, 61, 45, 43, 21, 23, 58, 17, 10, + 51, 25, 36, 32, 60, 20, 57, 16, 50, 31, 19, 15, 30, 14, 13, 12 + }; + static const char debruijn32[32] = { + 0, 1, 23, 2, 29, 24, 19, 3, 30, 27, 25, 11, 20, 8, 4, 13, + 31, 22, 28, 18, 26, 10, 7, 12, 21, 17, 9, 6, 16, 5, 15, 14 + }; + if (sizeof(long) < 8) { + uint32_t y = x; + if (!y) { + y = x>>32; + return 32 + debruijn32[(y&-y)*0x076be629 >> 27]; + } + return debruijn32[(y&-y)*0x076be629 >> 27]; + } + return debruijn64[(x&-x)*0x022fdd63cc95386dull >> 58]; +#endif +} + +static const unsigned char bin_tab[60] = { + 32,33,34,35,36,36,37,37,38,38,39,39, + 40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43, + 44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45, + 46,46,46,46,46,46,46,46,47,47,47,47,47,47,47,47, +}; + +static int bin_index(size_t x) +{ + x = x / SIZE_ALIGN - 1; + if (x <= 32) return x; + if (x < 512) return bin_tab[x/8-4]; + if (x > 0x1c00) return 63; + return bin_tab[x/128-4] + 16; +} + +static int bin_index_up(size_t x) +{ + x = x / SIZE_ALIGN - 1; + if (x <= 32) return x; + x--; + if (x < 512) return bin_tab[x/8-4] + 1; + return bin_tab[x/128-4] + 17; +} + +#if 0 +void __dump_heap(int x) +{ + struct chunk *c; + int i; + for (c = (void *)mal.heap; CHUNK_SIZE(c); c = NEXT_CHUNK(c)) + fprintf(stderr, "base %p size %zu (%d) flags %d/%d\n", + c, CHUNK_SIZE(c), bin_index(CHUNK_SIZE(c)), + c->csize & 15, + NEXT_CHUNK(c)->psize & 15); + for (i=0; i<64; i++) { + if (mal.bins[i].head != BIN_TO_CHUNK(i) && mal.bins[i].head) { + fprintf(stderr, "bin %d: %p\n", i, mal.bins[i].head); + if (!(mal.binmap & 1ULL<psize = 0 | C_INUSE; + } + + /* Record new heap end and fill in footer. */ + end = (char *)p + n; + w = MEM_TO_CHUNK(end); + w->psize = n | C_INUSE; + w->csize = 0 | C_INUSE; + + /* Fill in header, which may be new or may be replacing a + * zero-size sentinel header at the old end-of-heap. */ + w = MEM_TO_CHUNK(p); + w->csize = n | C_INUSE; + + unlock(heap_lock); + + return w; +} + +static int adjust_size(size_t *n) +{ + /* Result of pointer difference must fit in ptrdiff_t. */ + if (*n-1 > PTRDIFF_MAX - SIZE_ALIGN - PAGE_SIZE) { + if (*n) { + errno = ENOMEM; + return -1; + } else { + *n = SIZE_ALIGN; + return 0; + } + } + *n = (*n + OVERHEAD + SIZE_ALIGN - 1) & SIZE_MASK; + return 0; +} + +static void unbin(struct chunk *c, int i) +{ + if (c->prev == c->next) + a_and_64(&mal.binmap, ~(1ULL<prev->next = c->next; + c->next->prev = c->prev; + c->csize |= C_INUSE; + NEXT_CHUNK(c)->psize |= C_INUSE; +} + +static int alloc_fwd(struct chunk *c) +{ + int i; + size_t k; + while (!((k=c->csize) & C_INUSE)) { + i = bin_index(k); + lock_bin(i); + if (c->csize == k) { + unbin(c, i); + unlock_bin(i); + return 1; + } + unlock_bin(i); + } + return 0; +} + +static int alloc_rev(struct chunk *c) +{ + int i; + size_t k; + while (!((k=c->psize) & C_INUSE)) { + i = bin_index(k); + lock_bin(i); + if (c->psize == k) { + unbin(PREV_CHUNK(c), i); + unlock_bin(i); + return 1; + } + unlock_bin(i); + } + return 0; +} + + +/* pretrim - trims a chunk _prior_ to removing it from its bin. + * Must be called with i as the ideal bin for size n, j the bin + * for the _free_ chunk self, and bin j locked. */ +static int pretrim(struct chunk *self, size_t n, int i, int j) +{ + size_t n1; + struct chunk *next, *split; + + /* We cannot pretrim if it would require re-binning. */ + if (j < 40) return 0; + if (j < i+3) { + if (j != 63) return 0; + n1 = CHUNK_SIZE(self); + if (n1-n <= MMAP_THRESHOLD) return 0; + } else { + n1 = CHUNK_SIZE(self); + } + if (bin_index(n1-n) != j) return 0; + + next = NEXT_CHUNK(self); + split = (void *)((char *)self + n); + + split->prev = self->prev; + split->next = self->next; + split->prev->next = split; + split->next->prev = split; + split->psize = n | C_INUSE; + split->csize = n1-n; + next->psize = n1-n; + self->csize = n | C_INUSE; + return 1; +} + +static void trim(struct chunk *self, size_t n) +{ + size_t n1 = CHUNK_SIZE(self); + struct chunk *next, *split; + + if (n >= n1 - DONTCARE) return; + + next = NEXT_CHUNK(self); + split = (void *)((char *)self + n); + + split->psize = n | C_INUSE; + split->csize = n1-n | C_INUSE; + next->psize = n1-n | C_INUSE; + self->csize = n | C_INUSE; + + free(CHUNK_TO_MEM(split)); +} + +void *malloc(size_t n) +{ + struct chunk *c; + int i, j; + + if (adjust_size(&n) < 0) return 0; + + if (n > MMAP_THRESHOLD) { + size_t len = n + OVERHEAD + PAGE_SIZE - 1 & -PAGE_SIZE; + char *base = __mmap(0, len, PROT_READ|PROT_WRITE, + MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + if (base == (void *)-1) return 0; + c = (void *)(base + SIZE_ALIGN - OVERHEAD); + c->csize = len - (SIZE_ALIGN - OVERHEAD); + c->psize = SIZE_ALIGN - OVERHEAD; + return CHUNK_TO_MEM(c); + } + + i = bin_index_up(n); + for (;;) { + uint64_t mask = mal.binmap & -(1ULL<psize = c->csize = + x->csize + CHUNK_SIZE(c); + } + break; + } + j = first_set(mask); + lock_bin(j); + c = mal.bins[j].head; + if (c != BIN_TO_CHUNK(j)) { + if (!pretrim(c, n, i, j)) unbin(c, j); + unlock_bin(j); + break; + } + unlock_bin(j); + } + + /* Now patch up in case we over-allocated */ + trim(c, n); + + return CHUNK_TO_MEM(c); +} + +void *__malloc0(size_t n) +{ + void *p = malloc(n); + if (p && !IS_MMAPPED(MEM_TO_CHUNK(p))) { + size_t *z; + n = (n + sizeof *z - 1)/sizeof *z; + for (z=p; n; n--, z++) if (*z) *z=0; + } + return p; +} + +void *realloc(void *p, size_t n) +{ + struct chunk *self, *next; + size_t n0, n1; + void *new; + + if (!p) return malloc(n); + + if (adjust_size(&n) < 0) return 0; + + self = MEM_TO_CHUNK(p); + n1 = n0 = CHUNK_SIZE(self); + + if (IS_MMAPPED(self)) { + size_t extra = self->psize; + char *base = (char *)self - extra; + size_t oldlen = n0 + extra; + size_t newlen = n + extra; + /* Crash on realloc of freed chunk */ + if (extra & 1) a_crash(); + if (newlen < PAGE_SIZE && (new = malloc(n))) { + memcpy(new, p, n-OVERHEAD); + free(p); + return new; + } + newlen = (newlen + PAGE_SIZE-1) & -PAGE_SIZE; + if (oldlen == newlen) return p; + base = __mremap(base, oldlen, newlen, MREMAP_MAYMOVE); + if (base == (void *)-1) + goto copy_realloc; + self = (void *)(base + extra); + self->csize = newlen - extra; + return CHUNK_TO_MEM(self); + } + + next = NEXT_CHUNK(self); + + /* Crash on corrupted footer (likely from buffer overflow) */ + if (next->psize != self->csize) a_crash(); + + /* Merge adjacent chunks if we need more space. This is not + * a waste of time even if we fail to get enough space, because our + * subsequent call to free would otherwise have to do the merge. */ + if (n > n1 && alloc_fwd(next)) { + n1 += CHUNK_SIZE(next); + next = NEXT_CHUNK(next); + } + /* FIXME: find what's wrong here and reenable it..? */ + if (0 && n > n1 && alloc_rev(self)) { + self = PREV_CHUNK(self); + n1 += CHUNK_SIZE(self); + } + self->csize = n1 | C_INUSE; + next->psize = n1 | C_INUSE; + + /* If we got enough space, split off the excess and return */ + if (n <= n1) { + //memmove(CHUNK_TO_MEM(self), p, n0-OVERHEAD); + trim(self, n); + return CHUNK_TO_MEM(self); + } + +copy_realloc: + /* As a last resort, allocate a new chunk and copy to it. */ + new = malloc(n-OVERHEAD); + if (!new) return 0; + memcpy(new, p, n0-OVERHEAD); + free(CHUNK_TO_MEM(self)); + return new; +} + +void free(void *p) +{ + struct chunk *self = MEM_TO_CHUNK(p); + struct chunk *next; + size_t final_size, new_size, size; + int reclaim=0; + int i; + + if (!p) return; + + if (IS_MMAPPED(self)) { + size_t extra = self->psize; + char *base = (char *)self - extra; + size_t len = CHUNK_SIZE(self) + extra; + /* Crash on double free */ + if (extra & 1) a_crash(); + __munmap(base, len); + return; + } + + final_size = new_size = CHUNK_SIZE(self); + next = NEXT_CHUNK(self); + + /* Crash on corrupted footer (likely from buffer overflow) */ + if (next->psize != self->csize) a_crash(); + + for (;;) { + if (self->psize & next->csize & C_INUSE) { + self->csize = final_size | C_INUSE; + next->psize = final_size | C_INUSE; + i = bin_index(final_size); + lock_bin(i); + lock(mal.free_lock); + if (self->psize & next->csize & C_INUSE) + break; + unlock(mal.free_lock); + unlock_bin(i); + } + + if (alloc_rev(self)) { + self = PREV_CHUNK(self); + size = CHUNK_SIZE(self); + final_size += size; + if (new_size+size > RECLAIM && (new_size+size^size) > size) + reclaim = 1; + } + + if (alloc_fwd(next)) { + size = CHUNK_SIZE(next); + final_size += size; + if (new_size+size > RECLAIM && (new_size+size^size) > size) + reclaim = 1; + next = NEXT_CHUNK(next); + } + } + + if (!(mal.binmap & 1ULL<csize = final_size; + next->psize = final_size; + unlock(mal.free_lock); + + self->next = BIN_TO_CHUNK(i); + self->prev = mal.bins[i].tail; + self->next->prev = self; + self->prev->next = self; + + /* Replace middle of large chunks with fresh zero pages */ + if (reclaim) { + uintptr_t a = (uintptr_t)self + SIZE_ALIGN+PAGE_SIZE-1 & -PAGE_SIZE; + uintptr_t b = (uintptr_t)next - SIZE_ALIGN & -PAGE_SIZE; +#if 1 + __madvise((void *)a, b-a, MADV_DONTNEED); +#else + __mmap((void *)a, b-a, PROT_READ|PROT_WRITE, + MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0); +#endif + } + + unlock_bin(i); +} diff --git a/tree-sitter-c/examples/parser.c b/tree-sitter-c/examples/parser.c new file mode 100644 index 0000000..2bb8638 --- /dev/null +++ b/tree-sitter-c/examples/parser.c @@ -0,0 +1,1283 @@ +#include "runtime/parser.h" +#include +#include +#include +#include +#include "tree_sitter/runtime.h" +#include "runtime/tree.h" +#include "runtime/lexer.h" +#include "runtime/length.h" +#include "runtime/array.h" +#include "runtime/language.h" +#include "runtime/alloc.h" +#include "runtime/reduce_action.h" +#include "runtime/error_costs.h" + +#define LOG(...) \ + if (self->lexer.logger.log) { \ + snprintf(self->lexer.debug_buffer, TS_DEBUG_BUFFER_SIZE, __VA_ARGS__); \ + self->lexer.logger.log(self->lexer.logger.payload, TSLogTypeParse, \ + self->lexer.debug_buffer); \ + } \ + if (self->print_debugging_graphs) { \ + fprintf(stderr, "graph {\nlabel=\""); \ + fprintf(stderr, __VA_ARGS__); \ + fprintf(stderr, "\"\n}\n\n"); \ + } + +#define LOG_STACK() \ + if (self->print_debugging_graphs) { \ + ts_stack_print_dot_graph(self->stack, self->language->symbol_names, \ + stderr); \ + fputs("\n\n", stderr); \ + } + +#define LOG_TREE() \ + if (self->print_debugging_graphs) { \ + ts_tree_print_dot_graph(self->finished_tree, self->language, stderr); \ + fputs("\n", stderr); \ + } + +#define SYM_NAME(symbol) ts_language_symbol_name(self->language, symbol) + +typedef struct { + Parser *parser; + TSSymbol lookahead_symbol; + TreeArray *trees_above_error; + uint32_t tree_count_above_error; + bool found_repair; + ReduceAction best_repair; + TSStateId best_repair_next_state; + uint32_t best_repair_skip_count; +} ErrorRepairSession; + +typedef struct { + Parser *parser; + TSSymbol lookahead_symbol; +} SkipPrecedingTreesSession; + +static void parser__push(Parser *self, StackVersion version, Tree *tree, + TSStateId state) { + ts_stack_push(self->stack, version, tree, false, state); + ts_tree_release(tree); +} + +static bool parser__breakdown_top_of_stack(Parser *self, StackVersion version) { + bool did_break_down = false; + bool pending = false; + + do { + StackPopResult pop = ts_stack_pop_pending(self->stack, version); + if (!pop.slices.size) + break; + + did_break_down = true; + pending = false; + for (uint32_t i = 0; i < pop.slices.size; i++) { + StackSlice slice = pop.slices.contents[i]; + TSStateId state = ts_stack_top_state(self->stack, slice.version); + Tree *parent = *array_front(&slice.trees); + + for (uint32_t j = 0; j < parent->child_count; j++) { + Tree *child = parent->children[j]; + pending = child->child_count > 0; + + if (child->symbol == ts_builtin_sym_error) { + state = ERROR_STATE; + } else if (!child->extra) { + state = ts_language_next_state(self->language, state, child->symbol); + } + + ts_stack_push(self->stack, slice.version, child, pending, state); + } + + for (uint32_t j = 1; j < slice.trees.size; j++) { + Tree *tree = slice.trees.contents[j]; + parser__push(self, slice.version, tree, state); + } + + LOG("breakdown_top_of_stack tree:%s", SYM_NAME(parent->symbol)); + LOG_STACK(); + + ts_stack_decrease_push_count(self->stack, slice.version, + parent->child_count + 1); + ts_tree_release(parent); + array_delete(&slice.trees); + } + } while (pending); + + return did_break_down; +} + +static bool parser__breakdown_lookahead(Parser *self, Tree **lookahead, + TSStateId state, + ReusableNode *reusable_node) { + bool result = false; + while (reusable_node->tree->child_count > 0 && + (self->is_split || reusable_node->tree->parse_state != state || + reusable_node->tree->fragile_left || + reusable_node->tree->fragile_right)) { + LOG("state_mismatch sym:%s", SYM_NAME(reusable_node->tree->symbol)); + reusable_node_breakdown(reusable_node); + result = true; + } + + if (result) { + ts_tree_release(*lookahead); + ts_tree_retain(*lookahead = reusable_node->tree); + } + + return result; +} + +static inline bool ts_lex_mode_eq(TSLexMode self, TSLexMode other) { + return self.lex_state == other.lex_state && + self.external_lex_state == other.external_lex_state; +} + +static bool parser__can_reuse(Parser *self, TSStateId state, Tree *tree, + TableEntry *table_entry) { + TSLexMode current_lex_mode = self->language->lex_modes[state]; + if (ts_lex_mode_eq(tree->first_leaf.lex_mode, current_lex_mode)) + return true; + if (current_lex_mode.external_lex_state != 0) + return false; + if (tree->size.bytes == 0) + return false; + if (!table_entry->is_reusable) + return false; + if (!table_entry->depends_on_lookahead) + return true; + return tree->child_count > 1 && tree->error_cost == 0; +} + +typedef int CondenseResult; +static int CondenseResultMadeChange = 1; +static int CondenseResultAllVersionsHadError = 2; + +static CondenseResult parser__condense_stack(Parser *self) { + CondenseResult result = 0; + bool has_version_without_errors = false; + + for (StackVersion i = 0; i < ts_stack_version_count(self->stack); i++) { + if (ts_stack_is_halted(self->stack, i)) { + ts_stack_remove_version(self->stack, i); + result |= CondenseResultMadeChange; + i--; + continue; + } + + ErrorStatus error_status = ts_stack_error_status(self->stack, i); + if (error_status.count == 0) has_version_without_errors = true; + + for (StackVersion j = 0; j < i; j++) { + if (ts_stack_merge(self->stack, j, i)) { + result |= CondenseResultMadeChange; + i--; + break; + } + + switch (error_status_compare(error_status, + ts_stack_error_status(self->stack, j))) { + case -1: + ts_stack_remove_version(self->stack, j); + result |= CondenseResultMadeChange; + i--; + j--; + break; + case 1: + ts_stack_remove_version(self->stack, i); + result |= CondenseResultMadeChange; + i--; + break; + } + } + } + + if (!has_version_without_errors && ts_stack_version_count(self->stack) > 0) { + result |= CondenseResultAllVersionsHadError; + } + + return result; +} + +static void parser__restore_external_scanner(Parser *self, StackVersion version) { + const TSExternalTokenState *state = ts_stack_external_token_state(self->stack, version); + if (self->lexer.last_external_token_state != state) { + LOG("restore_external_scanner"); + self->lexer.last_external_token_state = state; + if (state) { + self->language->external_scanner.deserialize( + self->external_scanner_payload, + *state + ); + } else { + self->language->external_scanner.reset(self->external_scanner_payload); + } + } +} + +static Tree *parser__lex(Parser *self, StackVersion version) { + TSStateId parse_state = ts_stack_top_state(self->stack, version); + Length start_position = ts_stack_top_position(self->stack, version); + TSLexMode lex_mode = self->language->lex_modes[parse_state]; + const bool *valid_external_tokens = ts_language_enabled_external_tokens( + self->language, + lex_mode.external_lex_state + ); + + bool found_external_token = false; + bool found_error = false; + bool skipped_error = false; + int32_t first_error_character = 0; + Length error_start_position, error_end_position; + ts_lexer_reset(&self->lexer, start_position); + + for (;;) { + Length current_position = self->lexer.current_position; + + if (valid_external_tokens) { + LOG("lex_external state:%d, row:%u, column:%u", lex_mode.external_lex_state, + current_position.extent.row, current_position.extent.column); + parser__restore_external_scanner(self, version); + ts_lexer_start(&self->lexer); + if (self->language->external_scanner.scan(self->external_scanner_payload, + &self->lexer.data, valid_external_tokens)) { + if (length_has_unknown_chars(self->lexer.token_end_position)) { + self->lexer.token_end_position = self->lexer.current_position; + } + if (lex_mode.lex_state != 0 || + self->lexer.token_end_position.bytes > current_position.bytes) { + found_external_token = true; + break; + } + } + ts_lexer_reset(&self->lexer, current_position); + } + + LOG("lex_internal state:%d, row:%u, column:%u", lex_mode.lex_state, + current_position.extent.row, current_position.extent.column); + ts_lexer_start(&self->lexer); + if (self->language->lex_fn(&self->lexer.data, lex_mode.lex_state)) { + if (length_has_unknown_chars(self->lexer.token_end_position)) { + self->lexer.token_end_position = self->lexer.current_position; + } + break; + } + + if (!found_error) { + LOG("retry_in_error_mode"); + found_error = true; + lex_mode = self->language->lex_modes[ERROR_STATE]; + valid_external_tokens = ts_language_enabled_external_tokens( + self->language, + lex_mode.external_lex_state + ); + ts_lexer_reset(&self->lexer, start_position); + continue; + } + + if (!skipped_error) { + LOG("skip_unrecognized_character"); + skipped_error = true; + error_start_position = self->lexer.token_start_position; + error_end_position = self->lexer.token_start_position; + first_error_character = self->lexer.data.lookahead; + } + + if (self->lexer.current_position.bytes == error_end_position.bytes) { + if (self->lexer.data.lookahead == 0) { + self->lexer.data.result_symbol = ts_builtin_sym_error; + break; + } + self->lexer.data.advance(&self->lexer, false); + } + + error_end_position = self->lexer.current_position; + } + + Tree *result; + if (skipped_error) { + Length padding = length_sub(error_start_position, start_position); + Length size = length_sub(error_end_position, error_start_position); + result = ts_tree_make_error(size, padding, first_error_character); + } else { + TSSymbol symbol = self->lexer.data.result_symbol; + if (found_external_token) { + symbol = self->language->external_scanner.symbol_map[symbol]; + } + + Length padding = length_sub(self->lexer.token_start_position, start_position); + Length size = length_sub(self->lexer.token_end_position, self->lexer.token_start_position); + TSSymbolMetadata metadata = ts_language_symbol_metadata(self->language, symbol); + result = ts_tree_make_leaf(symbol, padding, size, metadata); + + if (found_external_token) { + result->has_external_tokens = true; + result->has_external_token_state = true; + memset(result->external_token_state, 0, sizeof(TSExternalTokenState)); + self->language->external_scanner.serialize(self->external_scanner_payload, result->external_token_state); + self->lexer.last_external_token_state = &result->external_token_state; + } + } + + result->bytes_scanned = self->lexer.current_position.bytes - start_position.bytes + 1; + result->parse_state = parse_state; + result->first_leaf.lex_mode = lex_mode; + + LOG("lexed_lookahead sym:%s, size:%u", SYM_NAME(result->symbol), result->size.bytes); + return result; +} + +static void parser__clear_cached_token(Parser *self) { + ts_tree_release(self->cached_token); + self->cached_token = NULL; +} + +static Tree *parser__get_lookahead(Parser *self, StackVersion version, + ReusableNode *reusable_node, + bool *is_fresh) { + Length position = ts_stack_top_position(self->stack, version); + + while (reusable_node->tree) { + if (reusable_node->byte_index > position.bytes) { + LOG("before_reusable_node sym:%s", SYM_NAME(reusable_node->tree->symbol)); + break; + } + + if (reusable_node->byte_index < position.bytes) { + LOG("past_reusable sym:%s", SYM_NAME(reusable_node->tree->symbol)); + reusable_node_pop(reusable_node); + continue; + } + + if (reusable_node->tree->has_changes) { + LOG("cant_reuse_changed tree:%s, size:%u", + SYM_NAME(reusable_node->tree->symbol), + reusable_node->tree->size.bytes); + if (!reusable_node_breakdown(reusable_node)) { + reusable_node_pop(reusable_node); + parser__breakdown_top_of_stack(self, version); + } + continue; + } + + if (reusable_node->tree->symbol == ts_builtin_sym_error) { + LOG("cant_reuse_error tree:%s, size:%u", + SYM_NAME(reusable_node->tree->symbol), + reusable_node->tree->size.bytes); + if (!reusable_node_breakdown(reusable_node)) { + reusable_node_pop(reusable_node); + parser__breakdown_top_of_stack(self, version); + } + continue; + } + + if (!ts_external_token_state_eq( + reusable_node->preceding_external_token_state, + ts_stack_external_token_state(self->stack, version))) { + LOG("cant_reuse_external_tokens tree:%s, size:%u", + SYM_NAME(reusable_node->tree->symbol), + reusable_node->tree->size.bytes); + if (!reusable_node_breakdown(reusable_node)) { + reusable_node_pop(reusable_node); + parser__breakdown_top_of_stack(self, version); + } + continue; + } + + Tree *result = reusable_node->tree; + ts_tree_retain(result); + return result; + } + + if (self->cached_token && position.bytes == self->cached_token_byte_index) { + ts_tree_retain(self->cached_token); + return self->cached_token; + } + + *is_fresh = true; + return parser__lex(self, version); +} + +static bool parser__select_tree(Parser *self, Tree *left, Tree *right) { + if (!left) + return true; + if (!right) + return false; + if (right->error_cost < left->error_cost) { + LOG("select_smaller_error symbol:%s, over_symbol:%s", + SYM_NAME(right->symbol), SYM_NAME(left->symbol)); + return true; + } + if (left->error_cost < right->error_cost) { + LOG("select_smaller_error symbol:%s, over_symbol:%s", + SYM_NAME(left->symbol), SYM_NAME(right->symbol)); + return false; + } + + int comparison = ts_tree_compare(left, right); + switch (comparison) { + case -1: + LOG("select_earlier symbol:%s, over_symbol:%s", SYM_NAME(left->symbol), + SYM_NAME(right->symbol)); + return false; + break; + case 1: + LOG("select_earlier symbol:%s, over_symbol:%s", SYM_NAME(right->symbol), + SYM_NAME(left->symbol)); + return true; + default: + LOG("select_existing symbol:%s, over_symbol:%s", SYM_NAME(left->symbol), + SYM_NAME(right->symbol)); + return false; + } +} + +static bool parser__better_version_exists(Parser *self, StackVersion version, + ErrorStatus my_error_status) { + if (self->finished_tree && + self->finished_tree->error_cost <= my_error_status.cost) + return true; + + for (StackVersion i = 0, n = ts_stack_version_count(self->stack); i < n; i++) { + if (i == version || ts_stack_is_halted(self->stack, i)) + continue; + + switch (error_status_compare(my_error_status, + ts_stack_error_status(self->stack, i))) { + case -1: + LOG("halt_other version:%u", i); + ts_stack_halt(self->stack, i); + break; + case 1: + return true; + } + } + + return false; +} + +static void parser__shift(Parser *self, StackVersion version, TSStateId state, + Tree *lookahead, bool extra) { + if (extra != lookahead->extra) { + TSSymbolMetadata metadata = + ts_language_symbol_metadata(self->language, lookahead->symbol); + if (metadata.structural && ts_stack_version_count(self->stack) > 1) { + lookahead = ts_tree_make_copy(lookahead); + } else { + ts_tree_retain(lookahead); + } + lookahead->extra = extra; + } else { + ts_tree_retain(lookahead); + } + + bool is_pending = lookahead->child_count > 0; + ts_stack_push(self->stack, version, lookahead, is_pending, state); + if (lookahead->has_external_token_state) { + ts_stack_set_external_token_state( + self->stack, version, ts_tree_last_external_token_state(lookahead)); + } + ts_tree_release(lookahead); +} + +static bool parser__switch_children(Parser *self, Tree *tree, + Tree **children, uint32_t count) { + self->scratch_tree.symbol = tree->symbol; + self->scratch_tree.child_count = 0; + ts_tree_set_children(&self->scratch_tree, count, children); + if (parser__select_tree(self, tree, &self->scratch_tree)) { + tree->size = self->scratch_tree.size; + tree->padding = self->scratch_tree.padding; + tree->error_cost = self->scratch_tree.error_cost; + tree->children = self->scratch_tree.children; + tree->child_count = self->scratch_tree.child_count; + tree->named_child_count = self->scratch_tree.named_child_count; + tree->visible_child_count = self->scratch_tree.visible_child_count; + return true; + } else { + return false; + } +} + +static StackPopResult parser__reduce(Parser *self, StackVersion version, + TSSymbol symbol, unsigned count, + bool fragile, bool allow_skipping) { + uint32_t initial_version_count = ts_stack_version_count(self->stack); + + StackPopResult pop = ts_stack_pop_count(self->stack, version, count); + if (pop.stopped_at_error) + return pop; + + const TSLanguage *language = self->language; + TSSymbolMetadata metadata = ts_language_symbol_metadata(language, symbol); + + for (uint32_t i = 0; i < pop.slices.size; i++) { + StackSlice slice = pop.slices.contents[i]; + + // Extra tokens on top of the stack should not be included in this new parent + // node. They will be re-pushed onto the stack after the parent node is + // created and pushed. + uint32_t child_count = slice.trees.size; + while (child_count > 0 && slice.trees.contents[child_count - 1]->extra) + child_count--; + + Tree *parent = ts_tree_make_node(symbol, child_count, slice.trees.contents, metadata); + + // This pop operation may have caused multiple stack versions to collapse + // into one, because they all diverged from a common state. In that case, + // choose one of the arrays of trees to be the parent node's children, and + // delete the rest of the tree arrays. + while (i + 1 < pop.slices.size) { + StackSlice next_slice = pop.slices.contents[i + 1]; + if (next_slice.version != slice.version) + break; + i++; + + uint32_t child_count = next_slice.trees.size; + while (child_count > 0 && next_slice.trees.contents[child_count - 1]->extra) + child_count--; + + if (parser__switch_children(self, parent, next_slice.trees.contents, child_count)) { + ts_tree_array_delete(&slice.trees); + slice = next_slice; + } else { + ts_tree_array_delete(&next_slice.trees); + } + } + + TSStateId state = ts_stack_top_state(self->stack, slice.version); + TSStateId next_state = ts_language_next_state(language, state, symbol); + if (fragile || self->is_split || pop.slices.size > 1 || initial_version_count > 1) { + parent->fragile_left = true; + parent->fragile_right = true; + parent->parse_state = TS_TREE_STATE_NONE; + } else { + parent->parse_state = state; + } + + // If this pop operation terminated at the end of an error region, then + // create two stack versions: one in which the parent node is interpreted + // normally, and one in which the parent node is skipped. + if (state == ERROR_STATE && allow_skipping && child_count > 1) { + StackVersion other_version = ts_stack_copy_version(self->stack, slice.version); + + ts_stack_push(self->stack, other_version, parent, false, ERROR_STATE); + for (uint32_t j = parent->child_count; j < slice.trees.size; j++) { + Tree *tree = slice.trees.contents[j]; + ts_stack_push(self->stack, other_version, tree, false, ERROR_STATE); + } + + ErrorStatus error_status = ts_stack_error_status(self->stack, other_version); + if (parser__better_version_exists(self, version, error_status)) + ts_stack_remove_version(self->stack, other_version); + } + + // Push the parent node onto the stack, along with any extra tokens that + // were previously on top of the stack. + parser__push(self, slice.version, parent, next_state); + for (uint32_t j = parent->child_count; j < slice.trees.size; j++) { + Tree *tree = slice.trees.contents[j]; + parser__push(self, slice.version, tree, next_state); + } + } + + for (StackVersion i = initial_version_count; i < ts_stack_version_count(self->stack); i++) { + for (StackVersion j = initial_version_count; j < i; j++) { + if (ts_stack_merge(self->stack, j, i)) { + i--; + break; + } + } + } + + return pop; +} + +static inline const TSParseAction *parser__reductions_after_sequence( + Parser *self, TSStateId start_state, const TreeArray *trees_below, + uint32_t tree_count_below, const TreeArray *trees_above, + TSSymbol lookahead_symbol, uint32_t *count) { + TSStateId state = start_state; + uint32_t child_count = 0; + *count = 0; + + for (uint32_t i = 0; i < trees_below->size; i++) { + if (child_count == tree_count_below) + break; + Tree *tree = trees_below->contents[trees_below->size - 1 - i]; + if (tree->extra) continue; + TSStateId next_state = ts_language_next_state(self->language, state, tree->symbol); + if (next_state == ERROR_STATE) + return NULL; + if (next_state != state) { + child_count++; + state = next_state; + } + } + + for (uint32_t i = 0; i < trees_above->size; i++) { + Tree *tree = trees_above->contents[i]; + if (tree->extra) continue; + TSStateId next_state = ts_language_next_state(self->language, state, tree->symbol); + if (next_state == ERROR_STATE) + return NULL; + if (next_state != state) { + child_count++; + state = next_state; + } + } + + const TSParseAction *actions = + ts_language_actions(self->language, state, lookahead_symbol, count); + + if (*count > 0 && actions[*count - 1].type != TSParseActionTypeReduce) { + (*count)--; + } + + while (*count > 0 && actions[0].params.child_count < child_count) { + actions++; + (*count)--; + } + + while (*count > 0 && actions[*count - 1].params.child_count > child_count) { + (*count)--; + } + + return actions; +} + +static StackIterateAction parser__repair_error_callback( + void *payload, TSStateId state, TreeArray *trees, uint32_t tree_count, + bool is_done, bool is_pending) { + + ErrorRepairSession *session = (ErrorRepairSession *)payload; + Parser *self = session->parser; + TSSymbol lookahead_symbol = session->lookahead_symbol; + ReduceActionSet *repairs = &self->reduce_actions; + TreeArray *trees_above_error = session->trees_above_error; + uint32_t tree_count_above_error = session->tree_count_above_error; + + StackIterateAction result = StackIterateNone; + + uint32_t last_repair_count = -1; + uint32_t repair_reduction_count = -1; + const TSParseAction *repair_reductions = NULL; + + for (uint32_t i = 0; i < repairs->size; i++) { + ReduceAction *repair = &repairs->contents[i]; + uint32_t count_needed_below_error = repair->count - tree_count_above_error; + if (count_needed_below_error > tree_count) + break; + + uint32_t skip_count = tree_count - count_needed_below_error; + if (session->found_repair && skip_count >= session->best_repair_skip_count) { + array_erase(repairs, i--); + continue; + } + + TSStateId state_after_repair = ts_language_next_state(self->language, state, repair->symbol); + if (state == ERROR_STATE || state_after_repair == ERROR_STATE) + continue; + + uint32_t action_count; + ts_language_actions(self->language, state_after_repair, lookahead_symbol, &action_count); + if (action_count == 0) + continue; + + if (count_needed_below_error != last_repair_count) { + last_repair_count = count_needed_below_error; + repair_reductions = parser__reductions_after_sequence( + self, state, trees, count_needed_below_error, trees_above_error, + lookahead_symbol, &repair_reduction_count); + } + + for (uint32_t j = 0; j < repair_reduction_count; j++) { + if (repair_reductions[j].params.symbol == repair->symbol) { + result |= StackIteratePop; + session->found_repair = true; + session->best_repair = *repair; + session->best_repair_skip_count = skip_count; + session->best_repair_next_state = state_after_repair; + array_erase(repairs, i--); + break; + } + } + } + + if (repairs->size == 0) + result |= StackIterateStop; + + return result; +} + +static bool parser__repair_error(Parser *self, StackSlice slice, + TSSymbol lookahead_symbol, TableEntry entry) { + LOG("repair_error"); + ErrorRepairSession session = { + .parser = self, + .lookahead_symbol = lookahead_symbol, + .found_repair = false, + .trees_above_error = &slice.trees, + .tree_count_above_error = ts_tree_array_essential_count(&slice.trees), + }; + + array_clear(&self->reduce_actions); + for (uint32_t i = 0; i < entry.action_count; i++) { + if (entry.actions[i].type == TSParseActionTypeReduce) { + TSSymbol symbol = entry.actions[i].params.symbol; + uint32_t child_count = entry.actions[i].params.child_count; + if ((child_count > session.tree_count_above_error) || + (child_count == session.tree_count_above_error && + !ts_language_symbol_metadata(self->language, symbol).visible)) + array_push(&self->reduce_actions, ((ReduceAction){ + .symbol = symbol, + .count = child_count + })); + } + } + + StackPopResult pop = ts_stack_iterate( + self->stack, slice.version, parser__repair_error_callback, &session); + + if (!session.found_repair) { + LOG("no_repair_found"); + ts_stack_remove_version(self->stack, slice.version); + ts_tree_array_delete(&slice.trees); + return false; + } + + ReduceAction repair = session.best_repair; + TSStateId next_state = session.best_repair_next_state; + uint32_t skip_count = session.best_repair_skip_count; + TSSymbol symbol = repair.symbol; + + StackSlice new_slice = array_pop(&pop.slices); + TreeArray children = new_slice.trees; + ts_stack_renumber_version(self->stack, new_slice.version, slice.version); + + for (uint32_t i = pop.slices.size - 1; i + 1 > 0; i--) { + StackSlice other_slice = pop.slices.contents[i]; + ts_tree_array_delete(&other_slice.trees); + if (other_slice.version != pop.slices.contents[i + 1].version) + ts_stack_remove_version(self->stack, other_slice.version); + } + + TreeArray skipped_children = ts_tree_array_remove_last_n(&children, skip_count); + TreeArray trailing_extras = ts_tree_array_remove_trailing_extras(&skipped_children); + Tree *error = ts_tree_make_error_node(&skipped_children); + array_push(&children, error); + array_push_all(&children, &trailing_extras); + trailing_extras.size = 0; + array_delete(&trailing_extras); + + for (uint32_t i = 0; i < slice.trees.size; i++) + array_push(&children, slice.trees.contents[i]); + array_delete(&slice.trees); + + Tree *parent = + ts_tree_make_node(symbol, children.size, children.contents, + ts_language_symbol_metadata(self->language, symbol)); + parser__push(self, slice.version, parent, next_state); + ts_stack_decrease_push_count(self->stack, slice.version, error->child_count); + + ErrorStatus error_status = ts_stack_error_status(self->stack, slice.version); + if (parser__better_version_exists(self, slice.version, error_status)) { + LOG("no_better_repair_found"); + ts_stack_halt(self->stack, slice.version); + return false; + } else { + LOG("repair_found sym:%s, child_count:%u, cost:%u", SYM_NAME(symbol), + repair.count, parent->error_cost); + return true; + } +} + +static void parser__start(Parser *self, TSInput input, Tree *previous_tree) { + if (previous_tree) { + LOG("parse_after_edit"); + } else { + LOG("new_parse"); + } + + if (self->language->external_scanner.reset) { + self->language->external_scanner.reset(self->external_scanner_payload); + } + + ts_lexer_set_input(&self->lexer, input); + ts_stack_clear(self->stack); + self->reusable_node = reusable_node_new(previous_tree); + self->cached_token = NULL; + self->finished_tree = NULL; +} + +static void parser__accept(Parser *self, StackVersion version, + Tree *lookahead) { + lookahead->extra = true; + assert(lookahead->symbol == ts_builtin_sym_end); + ts_stack_push(self->stack, version, lookahead, false, 1); + StackPopResult pop = ts_stack_pop_all(self->stack, version); + + for (uint32_t i = 0; i < pop.slices.size; i++) { + StackSlice slice = pop.slices.contents[i]; + TreeArray trees = slice.trees; + + Tree *root = NULL; + if (trees.size == 1) { + root = trees.contents[0]; + array_delete(&trees); + } else { + for (uint32_t j = trees.size - 1; j + 1 > 0; j--) { + Tree *child = trees.contents[j]; + if (!child->extra) { + root = ts_tree_make_copy(child); + root->child_count = 0; + for (uint32_t k = 0; k < child->child_count; k++) + ts_tree_retain(child->children[k]); + array_splice(&trees, j, 1, child->child_count, child->children); + ts_tree_set_children(root, trees.size, trees.contents); + ts_tree_release(child); + break; + } + } + } + + if (parser__select_tree(self, self->finished_tree, root)) { + ts_tree_release(self->finished_tree); + assert(root->ref_count > 0); + self->finished_tree = root; + } else { + ts_tree_release(root); + } + } + + ts_stack_remove_version(self->stack, pop.slices.contents[0].version); + ts_stack_halt(self->stack, version); +} + +static bool parser__do_potential_reductions(Parser *self, StackVersion version) { + bool has_shift_action = false; + TSStateId state = ts_stack_top_state(self->stack, version); + uint32_t previous_version_count = ts_stack_version_count(self->stack); + + array_clear(&self->reduce_actions); + for (TSSymbol symbol = 0; symbol < self->language->token_count; symbol++) { + TableEntry entry; + ts_language_table_entry(self->language, state, symbol, &entry); + for (uint32_t i = 0; i < entry.action_count; i++) { + TSParseAction action = entry.actions[i]; + if (action.extra) + continue; + switch (action.type) { + case TSParseActionTypeShift: + case TSParseActionTypeRecover: + has_shift_action = true; + break; + case TSParseActionTypeReduce: + if (action.params.child_count > 0) + ts_reduce_action_set_add(&self->reduce_actions, (ReduceAction){ + .symbol = action.params.symbol, + .count = action.params.child_count, + }); + default: + break; + } + } + } + + bool did_reduce = false; + for (uint32_t i = 0; i < self->reduce_actions.size; i++) { + ReduceAction action = self->reduce_actions.contents[i]; + StackPopResult reduction = + parser__reduce(self, version, action.symbol, action.count, true, false); + if (reduction.stopped_at_error) { + ts_tree_array_delete(&reduction.slices.contents[0].trees); + ts_stack_remove_version(self->stack, reduction.slices.contents[0].version); + continue; + } else { + did_reduce = true; + } + } + + if (did_reduce) { + if (has_shift_action) { + return true; + } else { + ts_stack_renumber_version(self->stack, previous_version_count, version); + return false; + } + } else { + return true; + } +} + +static StackIterateAction parser__skip_preceding_trees_callback( + void *payload, TSStateId state, TreeArray *trees, uint32_t tree_count, + bool is_done, bool is_pending) { + if (tree_count > 0 && state != ERROR_STATE) { + uint32_t bytes_skipped = 0; + for (uint32_t i = 0; i < trees->size; i++) { + bytes_skipped += ts_tree_total_bytes(trees->contents[i]); + } + if (bytes_skipped == 0) return StackIterateNone; + SkipPrecedingTreesSession *session = payload; + Parser *self = session->parser; + TSSymbol lookahead_symbol = session->lookahead_symbol; + uint32_t action_count; + const TSParseAction *actions = + ts_language_actions(self->language, state, lookahead_symbol, &action_count); + if (action_count > 0 && actions[0].type == TSParseActionTypeReduce) { + return StackIteratePop | StackIterateStop; + } + } + return StackIterateNone; +} + +static bool parser__skip_preceding_trees(Parser *self, StackVersion version, + TSSymbol lookahead_symbol) { + SkipPrecedingTreesSession session = { self, lookahead_symbol }; + StackPopResult pop = ts_stack_iterate( + self->stack, version, parser__skip_preceding_trees_callback, &session); + + StackVersion previous_version = STACK_VERSION_NONE; + for (uint32_t i = 0; i < pop.slices.size; i++) { + StackSlice slice = pop.slices.contents[i]; + if (slice.version == previous_version) { + ts_tree_array_delete(&slice.trees); + continue; + } + + previous_version = slice.version; + Tree *error = ts_tree_make_error_node(&slice.trees); + error->extra = true; + TSStateId state = ts_stack_top_state(self->stack, slice.version); + parser__push(self, slice.version, error, state); + } + + return pop.slices.size > 0; +} + +static void parser__handle_error(Parser *self, StackVersion version, + TSSymbol lookahead_symbol) { + // If there are other stack versions that are clearly better than this one, + // just halt this version. + ErrorStatus error_status = ts_stack_error_status(self->stack, version); + error_status.count++; + if (parser__better_version_exists(self, version, error_status)) { + ts_stack_halt(self->stack, version); + LOG("bail_on_error"); + return; + } + + LOG("handle_error"); + + // If the current lookahead symbol would have been valid in some previous + // state on the stack, create one stack version that repairs the error + // immediately by simply skipping all of the trees that came after that state. + if (parser__skip_preceding_trees(self, version, lookahead_symbol)) { + LOG("skip_preceding_trees"); + LOG_STACK(); + } + + // Perform any reductions that could have happened in this state, regardless + // of the lookahead. + uint32_t previous_version_count = ts_stack_version_count(self->stack); + for (StackVersion v = version; v < ts_stack_version_count(self->stack);) { + if (parser__do_potential_reductions(self, v)) { + if (v == version) { + v = previous_version_count; + } else { + v++; + } + } + } + + // Push a discontinuity onto the stack. Merge all of the stack versions that + // were created in the previous step. + ts_stack_push(self->stack, version, NULL, false, ERROR_STATE); + while (ts_stack_version_count(self->stack) > previous_version_count) { + ts_stack_push(self->stack, previous_version_count, NULL, false, ERROR_STATE); + assert(ts_stack_merge(self->stack, version, previous_version_count)); + } +} + +static void parser__halt_parse(Parser *self) { + LOG("halting_parse"); + LOG_STACK(); + + ts_lexer_advance_to_end(&self->lexer); + Length remaining_length = length_sub( + self->lexer.current_position, + ts_stack_top_position(self->stack, 0) + ); + + Tree *filler_node = ts_tree_make_error(remaining_length, length_zero(), 0); + filler_node->visible = false; + parser__push(self, 0, filler_node, 0); + + TreeArray children = array_new(); + Tree *root_error = ts_tree_make_error_node(&children); + parser__push(self, 0, root_error, 0); + + TSSymbolMetadata metadata = ts_language_symbol_metadata(self->language, ts_builtin_sym_end); + Tree *eof = ts_tree_make_leaf(ts_builtin_sym_end, length_zero(), length_zero(), metadata); + parser__accept(self, 0, eof); + ts_tree_release(eof); +} + +static void parser__recover(Parser *self, StackVersion version, TSStateId state, + Tree *lookahead) { + if (lookahead->symbol == ts_builtin_sym_end) { + LOG("recover_eof"); + TreeArray children = array_new(); + Tree *parent = ts_tree_make_error_node(&children); + parser__push(self, version, parent, 1); + parser__accept(self, version, lookahead); + } + + LOG("recover state:%u", state); + + StackVersion new_version = ts_stack_copy_version(self->stack, version); + + parser__shift( + self, new_version, ERROR_STATE, lookahead, + ts_language_symbol_metadata(self->language, lookahead->symbol).extra); + ErrorStatus error_status = ts_stack_error_status(self->stack, new_version); + if (parser__better_version_exists(self, version, error_status)) { + ts_stack_remove_version(self->stack, new_version); + LOG("bail_on_recovery"); + } + + parser__shift(self, version, state, lookahead, false); +} + +static void parser__advance(Parser *self, StackVersion version, + ReusableNode *reusable_node) { + bool validated_lookahead = false; + Tree *lookahead = parser__get_lookahead(self, version, reusable_node, &validated_lookahead); + + for (;;) { + TSStateId state = ts_stack_top_state(self->stack, version); + + TableEntry table_entry; + ts_language_table_entry(self->language, state, lookahead->first_leaf.symbol, &table_entry); + + if (!validated_lookahead) { + if (!parser__can_reuse(self, state, lookahead, &table_entry)) { + if (lookahead == reusable_node->tree) { + reusable_node_pop_leaf(reusable_node); + } else { + parser__clear_cached_token(self); + } + + ts_tree_release(lookahead); + lookahead = parser__get_lookahead(self, version, reusable_node, &validated_lookahead); + continue; + } + + validated_lookahead = true; + LOG("reused_lookahead sym:%s, size:%u", SYM_NAME(lookahead->symbol), lookahead->size.bytes); + } + + bool reduction_stopped_at_error = false; + StackVersion last_reduction_version = STACK_VERSION_NONE; + + for (uint32_t i = 0; i < table_entry.action_count; i++) { + TSParseAction action = table_entry.actions[i]; + + switch (action.type) { + case TSParseActionTypeShift: { + bool extra = action.extra; + TSStateId next_state; + + if (action.extra) { + next_state = state; + LOG("shift_extra"); + } else { + next_state = action.params.to_state; + LOG("shift state:%u", next_state); + } + + if (lookahead->child_count > 0) { + if (parser__breakdown_lookahead(self, &lookahead, state, reusable_node)) { + if (!parser__can_reuse(self, state, lookahead, &table_entry)) { + reusable_node_pop(reusable_node); + ts_tree_release(lookahead); + lookahead = parser__get_lookahead(self, version, reusable_node, &validated_lookahead); + } + } + + next_state = ts_language_next_state(self->language, state, lookahead->symbol); + } + + parser__shift(self, version, next_state, lookahead, extra); + + if (lookahead == reusable_node->tree) + reusable_node_pop(reusable_node); + + ts_tree_release(lookahead); + return; + } + + case TSParseActionTypeReduce: { + if (reduction_stopped_at_error) + continue; + + unsigned child_count = action.params.child_count; + TSSymbol symbol = action.params.symbol; + bool fragile = action.fragile; + + LOG("reduce sym:%s, child_count:%u", SYM_NAME(symbol), child_count); + + StackPopResult reduction = + parser__reduce(self, version, symbol, child_count, fragile, true); + StackSlice slice = *array_front(&reduction.slices); + if (reduction.stopped_at_error) { + reduction_stopped_at_error = true; + if (!parser__repair_error(self, slice, lookahead->first_leaf.symbol, + table_entry)) + break; + } + + last_reduction_version = slice.version; + break; + } + + case TSParseActionTypeAccept: { + if (ts_stack_error_status(self->stack, version).count > 0) + continue; + + LOG("accept"); + parser__accept(self, version, lookahead); + ts_tree_release(lookahead); + return; + } + + case TSParseActionTypeRecover: { + while (lookahead->child_count > 0) { + reusable_node_breakdown(reusable_node); + ts_tree_release(lookahead); + lookahead = reusable_node->tree; + ts_tree_retain(lookahead); + } + + parser__recover(self, version, action.params.to_state, lookahead); + if (lookahead == reusable_node->tree) + reusable_node_pop(reusable_node); + ts_tree_release(lookahead); + return; + } + } + } + + if (last_reduction_version != STACK_VERSION_NONE) { + ts_stack_renumber_version(self->stack, last_reduction_version, version); + LOG_STACK(); + continue; + } + + if (parser__breakdown_top_of_stack(self, version)) { + continue; + } + + if (state == ERROR_STATE) { + parser__push(self, version, lookahead, ERROR_STATE); + return; + } + + parser__handle_error(self, version, lookahead->first_leaf.symbol); + + if (ts_stack_is_halted(self->stack, version)) { + ts_tree_release(lookahead); + return; + } + } +} + +bool parser_init(Parser *self) { + ts_lexer_init(&self->lexer); + array_init(&self->reduce_actions); + array_init(&self->tree_path1); + array_init(&self->tree_path2); + array_grow(&self->reduce_actions, 4); + self->stack = ts_stack_new(); + self->finished_tree = NULL; + return true; +} + +void parser_set_language(Parser *self, const TSLanguage *language) { + if (self->external_scanner_payload && self->language->external_scanner.destroy) + self->language->external_scanner.destroy(self->external_scanner_payload); + + if (language && language->external_scanner.create) + self->external_scanner_payload = language->external_scanner.create(); + else + self->external_scanner_payload = NULL; + + self->language = language; +} + +void parser_destroy(Parser *self) { + if (self->stack) + ts_stack_delete(self->stack); + if (self->reduce_actions.contents) + array_delete(&self->reduce_actions); + if (self->tree_path1.contents) + array_delete(&self->tree_path1); + if (self->tree_path2.contents) + array_delete(&self->tree_path2); + parser_set_language(self, NULL); +} + +Tree *parser_parse(Parser *self, TSInput input, Tree *old_tree, bool halt_on_error) { + parser__start(self, input, old_tree); + + StackVersion version = STACK_VERSION_NONE; + uint32_t position = 0, last_position = 0; + ReusableNode reusable_node; + + do { + for (version = 0; version < ts_stack_version_count(self->stack); version++) { + reusable_node = self->reusable_node; + last_position = position; + + while (!ts_stack_is_halted(self->stack, version)) { + position = ts_stack_top_position(self->stack, version).chars; + if (position > last_position || (version > 0 && position == last_position)) + break; + + LOG("process version:%d, version_count:%u, state:%d, row:%u, col:%u", + version, ts_stack_version_count(self->stack), + ts_stack_top_state(self->stack, version), + ts_stack_top_position(self->stack, version).extent.row, + ts_stack_top_position(self->stack, version).extent.column); + + parser__advance(self, version, &reusable_node); + LOG_STACK(); + } + } + + self->reusable_node = reusable_node; + + CondenseResult condense_result = parser__condense_stack(self); + if (halt_on_error && (condense_result & CondenseResultAllVersionsHadError)) { + parser__halt_parse(self); + break; + } + + if (condense_result & CondenseResultMadeChange) { + LOG("condense"); + LOG_STACK(); + } + + self->is_split = (version > 1); + } while (version != 0); + + LOG("done"); + LOG_TREE(); + ts_stack_clear(self->stack); + parser__clear_cached_token(self); + ts_tree_assign_parents(self->finished_tree, &self->tree_path1); + return self->finished_tree; +} diff --git a/tree-sitter-c/grammar.js b/tree-sitter-c/grammar.js new file mode 100644 index 0000000..73619fc --- /dev/null +++ b/tree-sitter-c/grammar.js @@ -0,0 +1,1082 @@ +const PREC = { + PAREN_DECLARATOR: -10, + ASSIGNMENT: -1, + CONDITIONAL: -2, + DEFAULT: 0, + LOGICAL_OR: 1, + LOGICAL_AND: 2, + INCLUSIVE_OR: 3, + EXCLUSIVE_OR: 4, + BITWISE_AND: 5, + EQUAL: 6, + RELATIONAL: 7, + SIZEOF: 8, + SHIFT: 9, + ADD: 10, + MULTIPLY: 11, + CAST: 12, + UNARY: 13, + CALL: 14, + FIELD: 15, + SUBSCRIPT: 16 +}; + +module.exports = grammar({ + name: 'c', + + extras: $ => [ + /\s|\\\r?\n/, + $.comment, + ], + + inline: $ => [ + $._statement, + $._top_level_item, + $._type_identifier, + $._field_identifier, + $._statement_identifier, + $._non_case_statement, + $._assignment_left_expression, + ], + + conflicts: $ => [ + [$._type_specifier, $._declarator], + [$._type_specifier, $._declarator, $.macro_type_specifier], + [$._type_specifier, $._expression], + [$._type_specifier, $._expression, $.macro_type_specifier], + [$._type_specifier, $.macro_type_specifier], + [$.sized_type_specifier], + [$.attributed_statement], + [$._declaration_modifiers, $.attributed_statement], + ], + + word: $ => $.identifier, + + rules: { + translation_unit: $ => repeat($._top_level_item), + + _top_level_item: $ => choice( + $.function_definition, + $.linkage_specification, + $.declaration, + $._statement, + $.attributed_statement, + $.type_definition, + $._empty_declaration, + $.preproc_if, + $.preproc_ifdef, + $.preproc_include, + $.preproc_def, + $.preproc_function_def, + $.preproc_call + ), + + // Preprocesser + + preproc_include: $ => seq( + preprocessor('include'), + field('path', choice( + $.string_literal, + $.system_lib_string, + $.identifier, + alias($.preproc_call_expression, $.call_expression), + )), + '\n' + ), + + preproc_def: $ => seq( + preprocessor('define'), + field('name', $.identifier), + field('value', optional($.preproc_arg)), + '\n' + ), + + preproc_function_def: $ => seq( + preprocessor('define'), + field('name', $.identifier), + field('parameters', $.preproc_params), + field('value', optional($.preproc_arg)), + '\n' + ), + + preproc_params: $ => seq( + token.immediate('('), commaSep(choice($.identifier, '...')), ')' + ), + + preproc_call: $ => seq( + field('directive', $.preproc_directive), + field('argument', optional($.preproc_arg)), + '\n' + ), + + ...preprocIf('', $ => $._top_level_item), + ...preprocIf('_in_field_declaration_list', $ => $._field_declaration_list_item), + + preproc_directive: $ => /#[ \t]*[a-zA-Z]\w*/, + preproc_arg: $ => token(prec(-1, repeat1(/.|\\\r?\n/))), + + _preproc_expression: $ => choice( + $.identifier, + alias($.preproc_call_expression, $.call_expression), + $.number_literal, + $.char_literal, + $.preproc_defined, + alias($.preproc_unary_expression, $.unary_expression), + alias($.preproc_binary_expression, $.binary_expression), + alias($.preproc_parenthesized_expression, $.parenthesized_expression) + ), + + preproc_parenthesized_expression: $ => seq( + '(', + $._preproc_expression, + ')' + ), + + preproc_defined: $ => choice( + prec(PREC.CALL, seq('defined', '(', $.identifier, ')')), + seq('defined', $.identifier), + ), + + preproc_unary_expression: $ => prec.left(PREC.UNARY, seq( + field('operator', choice('!', '~', '-', '+')), + field('argument', $._preproc_expression) + )), + + preproc_call_expression: $ => prec(PREC.CALL, seq( + field('function', $.identifier), + field('arguments', alias($.preproc_argument_list, $.argument_list)) + )), + + preproc_argument_list: $ => seq( + '(', + commaSep($._preproc_expression), + ')' + ), + + preproc_binary_expression: $ => { + const table = [ + ['+', PREC.ADD], + ['-', PREC.ADD], + ['*', PREC.MULTIPLY], + ['/', PREC.MULTIPLY], + ['%', PREC.MULTIPLY], + ['||', PREC.LOGICAL_OR], + ['&&', PREC.LOGICAL_AND], + ['|', PREC.INCLUSIVE_OR], + ['^', PREC.EXCLUSIVE_OR], + ['&', PREC.BITWISE_AND], + ['==', PREC.EQUAL], + ['!=', PREC.EQUAL], + ['>', PREC.RELATIONAL], + ['>=', PREC.RELATIONAL], + ['<=', PREC.RELATIONAL], + ['<', PREC.RELATIONAL], + ['<<', PREC.SHIFT], + ['>>', PREC.SHIFT], + ]; + + return choice(...table.map(([operator, precedence]) => { + return prec.left(precedence, seq( + field('left', $._preproc_expression), + field('operator', operator), + field('right', $._preproc_expression) + )) + })); + }, + + // Main Grammar + + function_definition: $ => seq( + optional($.ms_call_modifier), + $._declaration_specifiers, + field('declarator', $._declarator), + field('body', $.compound_statement) + ), + + declaration: $ => seq( + $._declaration_specifiers, + commaSep1(field('declarator', choice( + $._declarator, + $.init_declarator + ))), + ';' + ), + + type_definition: $ => seq( + 'typedef', + repeat($.type_qualifier), + field('type', $._type_specifier), + commaSep1(field('declarator', $._type_declarator)), + ';' + ), + + _declaration_modifiers: $ => choice( + $.storage_class_specifier, + $.type_qualifier, + $.attribute_specifier, + $.attribute_declaration, + $.ms_declspec_modifier + ), + + _declaration_specifiers: $ => seq( + repeat($._declaration_modifiers), + field('type', $._type_specifier), + repeat($._declaration_modifiers), + ), + + linkage_specification: $ => seq( + 'extern', + field('value', $.string_literal), + field('body', choice( + $.function_definition, + $.declaration, + $.declaration_list + )) + ), + + attribute_specifier: $ => seq( + '__attribute__', + '(', + $.argument_list, + ')' + ), + + attribute: $ => seq( + optional(seq(field('prefix', $.identifier), '::')), + field('name', $.identifier), + optional($.argument_list) + ), + + attribute_declaration: $ => seq( + '[[', + commaSep1($.attribute), + ']]' + ), + + ms_declspec_modifier: $ => seq( + '__declspec', + '(', + $.identifier, + ')', + ), + + ms_based_modifier: $ => seq( + '__based', + $.argument_list, + ), + + ms_call_modifier: $ => choice( + '__cdecl', + '__clrcall', + '__stdcall', + '__fastcall', + '__thiscall', + '__vectorcall' + ), + + ms_restrict_modifier: $ => '__restrict', + + ms_unsigned_ptr_modifier: $ => '__uptr', + + ms_signed_ptr_modifier: $ => '__sptr', + + ms_unaligned_ptr_modifier: $ => choice('_unaligned', '__unaligned'), + + ms_pointer_modifier: $ => choice( + $.ms_unaligned_ptr_modifier, + $.ms_restrict_modifier, + $.ms_unsigned_ptr_modifier, + $.ms_signed_ptr_modifier, + ), + + declaration_list: $ => seq( + '{', + repeat($._top_level_item), + '}' + ), + + _declarator: $ => choice( + $.attributed_declarator, + $.pointer_declarator, + $.function_declarator, + $.array_declarator, + $.parenthesized_declarator, + $.identifier + ), + + _field_declarator: $ => choice( + alias($.attributed_field_declarator, $.attributed_declarator), + alias($.pointer_field_declarator, $.pointer_declarator), + alias($.function_field_declarator, $.function_declarator), + alias($.array_field_declarator, $.array_declarator), + alias($.parenthesized_field_declarator, $.parenthesized_declarator), + $._field_identifier + ), + + _type_declarator: $ => choice( + alias($.attributed_type_declarator, $.attributed_declarator), + alias($.pointer_type_declarator, $.pointer_declarator), + alias($.function_type_declarator, $.function_declarator), + alias($.array_type_declarator, $.array_declarator), + alias($.parenthesized_type_declarator, $.parenthesized_declarator), + $._type_identifier + ), + + _abstract_declarator: $ => choice( + $.abstract_pointer_declarator, + $.abstract_function_declarator, + $.abstract_array_declarator, + $.abstract_parenthesized_declarator, + ), + + parenthesized_declarator: $ => prec.dynamic(PREC.PAREN_DECLARATOR, seq( + '(', + $._declarator, + ')' + )), + parenthesized_field_declarator: $ => prec.dynamic(PREC.PAREN_DECLARATOR, seq( + '(', + $._field_declarator, + ')' + )), + parenthesized_type_declarator: $ => prec.dynamic(PREC.PAREN_DECLARATOR, seq( + '(', + $._type_declarator, + ')' + )), + abstract_parenthesized_declarator: $ => prec(1, seq( + '(', + $._abstract_declarator, + ')' + )), + + + attributed_declarator: $ => prec.right(seq( + $._declarator, + repeat1($.attribute_declaration), + )), + attributed_field_declarator: $ => prec.right(seq( + $._field_declarator, + repeat1($.attribute_declaration), + )), + attributed_type_declarator: $ => prec.right(seq( + $._type_declarator, + repeat1($.attribute_declaration), + )), + + pointer_declarator: $ => prec.dynamic(1, prec.right(seq( + optional($.ms_based_modifier), + '*', + repeat($.ms_pointer_modifier), + repeat($.type_qualifier), + field('declarator', $._declarator) + ))), + pointer_field_declarator: $ => prec.dynamic(1, prec.right(seq( + optional($.ms_based_modifier), + '*', + repeat($.ms_pointer_modifier), + repeat($.type_qualifier), + field('declarator', $._field_declarator) + ))), + pointer_type_declarator: $ => prec.dynamic(1, prec.right(seq( + optional($.ms_based_modifier), + '*', + repeat($.ms_pointer_modifier), + repeat($.type_qualifier), + field('declarator', $._type_declarator) + ))), + abstract_pointer_declarator: $ => prec.dynamic(1, prec.right(seq('*', + repeat($.type_qualifier), + field('declarator', optional($._abstract_declarator)) + ))), + + function_declarator: $ => prec(1, + seq( + field('declarator', $._declarator), + field('parameters', $.parameter_list), + repeat($.attribute_specifier), + )), + function_field_declarator: $ => prec(1, seq( + field('declarator', $._field_declarator), + field('parameters', $.parameter_list) + )), + function_type_declarator: $ => prec(1, seq( + field('declarator', $._type_declarator), + field('parameters', $.parameter_list) + )), + abstract_function_declarator: $ => prec(1, seq( + field('declarator', optional($._abstract_declarator)), + field('parameters', $.parameter_list) + )), + + array_declarator: $ => prec(1, seq( + field('declarator', $._declarator), + '[', + repeat($.type_qualifier), + field('size', optional(choice($._expression, '*'))), + ']' + )), + array_field_declarator: $ => prec(1, seq( + field('declarator', $._field_declarator), + '[', + repeat($.type_qualifier), + field('size', optional(choice($._expression, '*'))), + ']' + )), + array_type_declarator: $ => prec(1, seq( + field('declarator', $._type_declarator), + '[', + repeat($.type_qualifier), + field('size', optional(choice($._expression, '*'))), + ']' + )), + abstract_array_declarator: $ => prec(1, seq( + field('declarator', optional($._abstract_declarator)), + '[', + repeat($.type_qualifier), + field('size', optional(choice($._expression, '*'))), + ']' + )), + + init_declarator: $ => seq( + field('declarator', $._declarator), + '=', + field('value', choice($.initializer_list, $._expression)) + ), + + compound_statement: $ => seq( + '{', + repeat($._top_level_item), + '}' + ), + + storage_class_specifier: $ => choice( + 'extern', + 'static' , + 'auto', + 'register', + 'inline' + ), + + type_qualifier: $ => choice( + 'const', + 'volatile', + 'restrict', + '_Atomic' + ), + + _type_specifier: $ => choice( + $.struct_specifier, + $.union_specifier, + $.enum_specifier, + $.macro_type_specifier, + $.sized_type_specifier, + $.primitive_type, + $._type_identifier + ), + + sized_type_specifier: $ => seq( + repeat1(choice( + 'signed', + 'unsigned', + 'long', + 'short' + )), + field('type', optional(choice( + prec.dynamic(-1, $._type_identifier), + $.primitive_type + ))) + ), + + primitive_type: $ => token(choice( + 'bool', + 'char', + 'int', + 'float', + 'double', + 'void', + 'size_t', + 'ssize_t', + 'intptr_t', + 'uintptr_t', + 'charptr_t', + ...[8, 16, 32, 64].map(n => `int${n}_t`), + ...[8, 16, 32, 64].map(n => `uint${n}_t`), + ...[8, 16, 32, 64].map(n => `char${n}_t`) + )), + + enum_specifier: $ => seq( + 'enum', + choice( + seq( + field('name', $._type_identifier), + field('body', optional($.enumerator_list)) + ), + field('body', $.enumerator_list) + ) + ), + + enumerator_list: $ => seq( + '{', + commaSep($.enumerator), + optional(','), + '}' + ), + + struct_specifier: $ => seq( + 'struct', + optional($.ms_declspec_modifier), + choice( + seq( + field('name', $._type_identifier), + field('body', optional($.field_declaration_list)) + ), + field('body', $.field_declaration_list) + ) + ), + + union_specifier: $ => seq( + 'union', + optional($.ms_declspec_modifier), + choice( + seq( + field('name', $._type_identifier), + field('body', optional($.field_declaration_list)) + ), + field('body', $.field_declaration_list) + ) + ), + + field_declaration_list: $ => seq( + '{', + repeat($._field_declaration_list_item), + '}' + ), + + _field_declaration_list_item: $ => choice( + $.field_declaration, + $.preproc_def, + $.preproc_function_def, + $.preproc_call, + alias($.preproc_if_in_field_declaration_list, $.preproc_if), + alias($.preproc_ifdef_in_field_declaration_list, $.preproc_ifdef), + ), + + field_declaration: $ => seq( + $._declaration_specifiers, + commaSep(field('declarator', $._field_declarator)), + optional($.bitfield_clause), + ';' + ), + + bitfield_clause: $ => seq(':', $._expression), + + enumerator: $ => seq( + field('name', $.identifier), + optional(seq('=', field('value', $._expression))) + ), + + variadic_parameter: $ => seq( + '...', + ), + + parameter_list: $ => seq( + '(', + commaSep(choice($.parameter_declaration, $.variadic_parameter)), + ')' + ), + + parameter_declaration: $ => seq( + $._declaration_specifiers, + optional(field('declarator', choice( + $._declarator, + $._abstract_declarator + ))) + ), + + // Statements + + attributed_statement: $ => seq( + repeat1($.attribute_declaration), + $._statement + ), + + _statement: $ => choice( + $.case_statement, + $._non_case_statement + ), + + _non_case_statement: $ => choice( + $.attributed_statement, + $.labeled_statement, + $.compound_statement, + $.expression_statement, + $.if_statement, + $.switch_statement, + $.do_statement, + $.while_statement, + $.for_statement, + $.return_statement, + $.break_statement, + $.continue_statement, + $.goto_statement + ), + + labeled_statement: $ => seq( + field('label', $._statement_identifier), + ':', + $._statement + ), + + expression_statement: $ => seq( + optional(choice( + $._expression, + $.comma_expression + )), + ';' + ), + + if_statement: $ => prec.right(seq( + 'if', + field('condition', $.parenthesized_expression), + field('consequence', $._statement), + optional(seq( + 'else', + field('alternative', $._statement) + )) + )), + + switch_statement: $ => seq( + 'switch', + field('condition', $.parenthesized_expression), + field('body', $.compound_statement) + ), + + case_statement: $ => prec.right(seq( + choice( + seq('case', field('value', $._expression)), + 'default' + ), + ':', + repeat(choice( + $._non_case_statement, + $.declaration, + $.type_definition + )) + )), + + while_statement: $ => seq( + 'while', + field('condition', $.parenthesized_expression), + field('body', $._statement) + ), + + do_statement: $ => seq( + 'do', + field('body', $._statement), + 'while', + field('condition', $.parenthesized_expression), + ';' + ), + + for_statement: $ => seq( + 'for', + '(', + choice( + field('initializer', $.declaration), + seq(field('initializer', optional(choice($._expression, $.comma_expression))), ';') + ), + field('condition', optional(choice($._expression, $.comma_expression))), ';', + field('update', optional(choice($._expression, $.comma_expression))), + ')', + field('body', $._statement) + ), + + return_statement: $ => seq( + 'return', + optional(choice($._expression, $.comma_expression)), + ';' + ), + + break_statement: $ => seq( + 'break', ';' + ), + + continue_statement: $ => seq( + 'continue', ';' + ), + + goto_statement: $ => seq( + 'goto', + field('label', $._statement_identifier), + ';' + ), + + // Expressions + + _expression: $ => choice( + $.conditional_expression, + $.assignment_expression, + $.binary_expression, + $.unary_expression, + $.update_expression, + $.cast_expression, + $.pointer_expression, + $.sizeof_expression, + $.subscript_expression, + $.call_expression, + $.field_expression, + $.compound_literal_expression, + $.identifier, + $.number_literal, + $.string_literal, + $.true, + $.false, + $.null, + $.concatenated_string, + $.char_literal, + $.parenthesized_expression + ), + + comma_expression: $ => seq( + field('left', $._expression), + ',', + field('right', choice($._expression, $.comma_expression)) + ), + + conditional_expression: $ => prec.right(PREC.CONDITIONAL, seq( + field('condition', $._expression), + '?', + field('consequence', $._expression), + ':', + field('alternative', $._expression) + )), + + _assignment_left_expression: $ => choice( + $.identifier, + $.call_expression, + $.field_expression, + $.pointer_expression, + $.subscript_expression, + $.parenthesized_expression + ), + + assignment_expression: $ => prec.right(PREC.ASSIGNMENT, seq( + field('left', $._assignment_left_expression), + field('operator', choice( + '=', + '*=', + '/=', + '%=', + '+=', + '-=', + '<<=', + '>>=', + '&=', + '^=', + '|=' + )), + field('right', $._expression) + )), + + pointer_expression: $ => prec.left(PREC.CAST, seq( + field('operator', choice('*', '&')), + field('argument', $._expression) + )), + + unary_expression: $ => prec.left(PREC.UNARY, seq( + field('operator', choice('!', '~', '-', '+')), + field('argument', $._expression) + )), + + binary_expression: $ => { + const table = [ + ['+', PREC.ADD], + ['-', PREC.ADD], + ['*', PREC.MULTIPLY], + ['/', PREC.MULTIPLY], + ['%', PREC.MULTIPLY], + ['||', PREC.LOGICAL_OR], + ['&&', PREC.LOGICAL_AND], + ['|', PREC.INCLUSIVE_OR], + ['^', PREC.EXCLUSIVE_OR], + ['&', PREC.BITWISE_AND], + ['==', PREC.EQUAL], + ['!=', PREC.EQUAL], + ['>', PREC.RELATIONAL], + ['>=', PREC.RELATIONAL], + ['<=', PREC.RELATIONAL], + ['<', PREC.RELATIONAL], + ['<<', PREC.SHIFT], + ['>>', PREC.SHIFT], + ]; + + return choice(...table.map(([operator, precedence]) => { + return prec.left(precedence, seq( + field('left', $._expression), + field('operator', operator), + field('right', $._expression) + )) + })); + }, + + update_expression: $ => { + const argument = field('argument', $._expression); + const operator = field('operator', choice('--', '++')); + return prec.right(PREC.UNARY, choice( + seq(operator, argument), + seq(argument, operator), + )); + }, + + cast_expression: $ => prec(PREC.CAST, seq( + '(', + field('type', $.type_descriptor), + ')', + field('value', $._expression) + )), + + type_descriptor: $ => seq( + repeat($.type_qualifier), + field('type', $._type_specifier), + repeat($.type_qualifier), + field('declarator', optional($._abstract_declarator)) + ), + + sizeof_expression: $ => prec(PREC.SIZEOF, seq( + 'sizeof', + choice( + field('value', $._expression), + seq('(', field('type', $.type_descriptor), ')') + ) + )), + + subscript_expression: $ => prec(PREC.SUBSCRIPT, seq( + field('argument', $._expression), + '[', + field('index', $._expression), + ']' + )), + + call_expression: $ => prec(PREC.CALL, seq( + field('function', $._expression), + field('arguments', $.argument_list) + )), + + argument_list: $ => seq('(', commaSep($._expression), ')'), + + field_expression: $ => seq( + prec(PREC.FIELD, seq( + field('argument', $._expression), + field('operator', choice('.', '->')) + )), + field('field', $._field_identifier) + ), + + compound_literal_expression: $ => seq( + '(', + field('type', $.type_descriptor), + ')', + field('value', $.initializer_list) + ), + + parenthesized_expression: $ => seq( + '(', + choice($._expression, $.comma_expression), + ')' + ), + + initializer_list: $ => seq( + '{', + commaSep(choice( + $.initializer_pair, + $._expression, + $.initializer_list + )), + optional(','), + '}' + ), + + initializer_pair: $ => seq( + field('designator', repeat1(choice($.subscript_designator, $.field_designator))), + '=', + field('value', choice($._expression, $.initializer_list)) + ), + + subscript_designator: $ => seq('[', $._expression, ']'), + + field_designator: $ => seq('.', $._field_identifier), + + number_literal: $ => { + const separator = "'"; + const hex = /[0-9a-fA-F]/; + const decimal = /[0-9]/; + const hexDigits = seq(repeat1(hex), repeat(seq(separator, repeat1(hex)))); + const decimalDigits = seq(repeat1(decimal), repeat(seq(separator, repeat1(decimal)))); + return token(seq( + optional(/[-\+]/), + optional(choice('0x', '0b')), + choice( + seq( + choice( + decimalDigits, + seq('0b', decimalDigits), + seq('0x', hexDigits) + ), + optional(seq('.', optional(hexDigits))) + ), + seq('.', decimalDigits) + ), + optional(seq( + /[eEpP]/, + optional(seq( + optional(/[-\+]/), + hexDigits + )) + )), + repeat(choice('u', 'l', 'U', 'L', 'f', 'F')) + )) + }, + + char_literal: $ => seq( + choice('L\'', 'u\'', 'U\'', 'u8\'', '\''), + choice( + $.escape_sequence, + token.immediate(/[^\n']/) + ), + '\'' + ), + + concatenated_string: $ => seq( + $.string_literal, + repeat1($.string_literal) + ), + + string_literal: $ => seq( + choice('L"', 'u"', 'U"', 'u8"', '"'), + repeat(choice( + token.immediate(prec(1, /[^\\"\n]+/)), + $.escape_sequence + )), + '"', + ), + + escape_sequence: $ => token(prec(1, seq( + '\\', + choice( + /[^xuU]/, + /\d{2,3}/, + /x[0-9a-fA-F]{2,}/, + /u[0-9a-fA-F]{4}/, + /U[0-9a-fA-F]{8}/ + ) + ))), + + system_lib_string: $ => token(seq( + '<', + repeat(choice(/[^>\n]/, '\\>')), + '>' + )), + + true: $ => token(choice('TRUE', 'true')), + false: $ => token(choice('FALSE', 'false')), + null: $ => 'NULL', + + identifier: $ => /[a-zA-Z_]\w*/, + + _type_identifier: $ => alias($.identifier, $.type_identifier), + _field_identifier: $ => alias($.identifier, $.field_identifier), + _statement_identifier: $ => alias($.identifier, $.statement_identifier), + + _empty_declaration: $ => seq( + $._type_specifier, + ';' + ), + + macro_type_specifier: $ => prec.dynamic(-1, seq( + field('name', $.identifier), + '(', + field('type', $.type_descriptor), + ')' + )), + + // http://stackoverflow.com/questions/13014947/regex-to-match-a-c-style-multiline-comment/36328890#36328890 + comment: $ => token(choice( + seq('//', /(\\(.|\r?\n)|[^\\\n])*/), + seq( + '/*', + /[^*]*\*+([^/*][^*]*\*+)*/, + '/' + ) + )), + }, + + supertypes: $ => [ + $._expression, + $._statement, + $._type_specifier, + $._declarator, + $._field_declarator, + $._type_declarator, + $._abstract_declarator, + ] +}); + +module.exports.PREC = PREC + +function preprocIf (suffix, content) { + function elseBlock ($) { + return choice( + suffix ? alias($['preproc_else' + suffix], $.preproc_else) : $.preproc_else, + suffix ? alias($['preproc_elif' + suffix], $.preproc_elif) : $.preproc_elif, + ); + } + + return { + ['preproc_if' + suffix]: $ => seq( + preprocessor('if'), + field('condition', $._preproc_expression), + '\n', + repeat(content($)), + field('alternative', optional(elseBlock($))), + preprocessor('endif') + ), + + ['preproc_ifdef' + suffix]: $ => seq( + choice(preprocessor('ifdef'), preprocessor('ifndef')), + field('name', $.identifier), + repeat(content($)), + field('alternative', optional(elseBlock($))), + preprocessor('endif') + ), + + ['preproc_else' + suffix]: $ => seq( + preprocessor('else'), + repeat(content($)) + ), + + ['preproc_elif' + suffix]: $ => seq( + preprocessor('elif'), + field('condition', $._preproc_expression), + '\n', + repeat(content($)), + field('alternative', optional(elseBlock($))), + ) + } +} + +function preprocessor (command) { + return alias(new RegExp('#[ \t]*' + command), '#' + command) +} + +function commaSep (rule) { + return optional(commaSep1(rule)) +} + +function commaSep1 (rule) { + return seq(rule, repeat(seq(',', rule))) +} + +function commaSepTrailing (recurSymbol, rule) { + return choice(rule, seq(recurSymbol, ',', rule)) +} diff --git a/tree-sitter-c/package.json b/tree-sitter-c/package.json new file mode 100644 index 0000000..707facf --- /dev/null +++ b/tree-sitter-c/package.json @@ -0,0 +1,36 @@ +{ + "name": "tree-sitter-c", + "version": "0.20.2", + "description": "C grammar for node-tree-sitter", + "main": "bindings/node", + "keywords": [ + "parser", + "lexer" + ], + "repository": { + "type": "git", + "url": "https://github.com/tree-sitter/tree-sitter-c.git" + }, + "author": "Max Brunsfeld", + "license": "MIT", + "dependencies": { + "nan": "^2.14.0" + }, + "devDependencies": { + "tree-sitter-cli": "^0.20.0" + }, + "scripts": { + "build": "tree-sitter generate && node-gyp build", + "test": "tree-sitter test && tree-sitter parse examples/* --quiet --time", + "test-windows": "tree-sitter test" + }, + "tree-sitter": [ + { + "scope": "source.c", + "file-types": [ + "c", + "h" + ] + } + ] +} diff --git a/tree-sitter-c/parser.so b/tree-sitter-c/parser.so new file mode 100755 index 0000000..18ed4f3 Binary files /dev/null and b/tree-sitter-c/parser.so differ diff --git a/tree-sitter-c/queries/highlights.scm b/tree-sitter-c/queries/highlights.scm new file mode 100644 index 0000000..04d9a04 --- /dev/null +++ b/tree-sitter-c/queries/highlights.scm @@ -0,0 +1,81 @@ +"break" @keyword +"case" @keyword +"const" @keyword +"continue" @keyword +"default" @keyword +"do" @keyword +"else" @keyword +"enum" @keyword +"extern" @keyword +"for" @keyword +"if" @keyword +"inline" @keyword +"return" @keyword +"sizeof" @keyword +"static" @keyword +"struct" @keyword +"switch" @keyword +"typedef" @keyword +"union" @keyword +"volatile" @keyword +"while" @keyword + +"#define" @keyword +"#elif" @keyword +"#else" @keyword +"#endif" @keyword +"#if" @keyword +"#ifdef" @keyword +"#ifndef" @keyword +"#include" @keyword +(preproc_directive) @keyword + +"--" @operator +"-" @operator +"-=" @operator +"->" @operator +"=" @operator +"!=" @operator +"*" @operator +"&" @operator +"&&" @operator +"+" @operator +"++" @operator +"+=" @operator +"<" @operator +"==" @operator +">" @operator +"||" @operator + +"." @delimiter +";" @delimiter + +(string_literal) @string +(system_lib_string) @string + +(null) @constant +(number_literal) @number +(char_literal) @number + +(call_expression + function: (identifier) @function) +(call_expression + function: (field_expression + field: (field_identifier) @function)) +(function_declarator + declarator: (identifier) @function) +(preproc_function_def + name: (identifier) @function.special) + +(field_identifier) @property +(statement_identifier) @label +(type_identifier) @type +(primitive_type) @type +(sized_type_specifier) @type + +((identifier) @constant + (#match? @constant "^[A-Z][A-Z\\d_]*$")) + +(identifier) @variable + +(comment) @comment diff --git a/tree-sitter-c/src/grammar.json b/tree-sitter-c/src/grammar.json new file mode 100644 index 0000000..3b3ba31 --- /dev/null +++ b/tree-sitter-c/src/grammar.json @@ -0,0 +1,6629 @@ +{ + "name": "c", + "word": "identifier", + "rules": { + "translation_unit": { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_top_level_item" + } + }, + "_top_level_item": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "function_definition" + }, + { + "type": "SYMBOL", + "name": "linkage_specification" + }, + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "SYMBOL", + "name": "_statement" + }, + { + "type": "SYMBOL", + "name": "attributed_statement" + }, + { + "type": "SYMBOL", + "name": "type_definition" + }, + { + "type": "SYMBOL", + "name": "_empty_declaration" + }, + { + "type": "SYMBOL", + "name": "preproc_if" + }, + { + "type": "SYMBOL", + "name": "preproc_ifdef" + }, + { + "type": "SYMBOL", + "name": "preproc_include" + }, + { + "type": "SYMBOL", + "name": "preproc_def" + }, + { + "type": "SYMBOL", + "name": "preproc_function_def" + }, + { + "type": "SYMBOL", + "name": "preproc_call" + } + ] + }, + "preproc_include": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "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": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "preproc_call_expression" + }, + "named": true, + "value": "call_expression" + } + ] + } + }, + { + "type": "STRING", + "value": "\n" + } + ] + }, + "preproc_def": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "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": "STRING", + "value": "\n" + } + ] + }, + "preproc_function_def": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "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": "STRING", + "value": "\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_call": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "directive", + "content": { + "type": "SYMBOL", + "name": "preproc_directive" + } + }, + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "preproc_arg" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": "\n" + } + ] + }, + "preproc_if": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "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": "PATTERN", + "value": "#[ \t]*endif" + }, + "named": false, + "value": "#endif" + } + ] + }, + "preproc_ifdef": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "#[ \t]*ifdef" + }, + "named": false, + "value": "#ifdef" + }, + { + "type": "ALIAS", + "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": "SYMBOL", + "name": "preproc_else" + }, + { + "type": "SYMBOL", + "name": "preproc_elif" + } + ] + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "#[ \t]*endif" + }, + "named": false, + "value": "#endif" + } + ] + }, + "preproc_else": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "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": "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_if_in_field_declaration_list": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "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": "_field_declaration_list_item" + } + }, + { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "preproc_else_in_field_declaration_list" + }, + "named": true, + "value": "preproc_else" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "preproc_elif_in_field_declaration_list" + }, + "named": true, + "value": "preproc_elif" + } + ] + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "#[ \t]*endif" + }, + "named": false, + "value": "#endif" + } + ] + }, + "preproc_ifdef_in_field_declaration_list": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "#[ \t]*ifdef" + }, + "named": false, + "value": "#ifdef" + }, + { + "type": "ALIAS", + "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": "_field_declaration_list_item" + } + }, + { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "preproc_else_in_field_declaration_list" + }, + "named": true, + "value": "preproc_else" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "preproc_elif_in_field_declaration_list" + }, + "named": true, + "value": "preproc_elif" + } + ] + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "#[ \t]*endif" + }, + "named": false, + "value": "#endif" + } + ] + }, + "preproc_else_in_field_declaration_list": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "#[ \t]*else" + }, + "named": false, + "value": "#else" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_field_declaration_list_item" + } + } + ] + }, + "preproc_elif_in_field_declaration_list": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "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": "_field_declaration_list_item" + } + }, + { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "preproc_else_in_field_declaration_list" + }, + "named": true, + "value": "preproc_else" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "preproc_elif_in_field_declaration_list" + }, + "named": true, + "value": "preproc_elif" + } + ] + }, + { + "type": "BLANK" + } + ] + } + } + ] + }, + "preproc_directive": { + "type": "PATTERN", + "value": "#[ \\t]*[a-zA-Z]\\w*" + }, + "preproc_arg": { + "type": "TOKEN", + "content": { + "type": "PREC", + "value": -1, + "content": { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": ".|\\\\\\r?\\n" + } + } + } + }, + "_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": "number_literal" + }, + { + "type": "SYMBOL", + "name": "char_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" + } + } + ] + } + } + ] + }, + "function_definition": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "ms_call_modifier" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_declaration_specifiers" + }, + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_declarator" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "compound_statement" + } + } + ] + }, + "declaration": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_declaration_specifiers" + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_declarator" + }, + { + "type": "SYMBOL", + "name": "init_declarator" + } + ] + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_declarator" + }, + { + "type": "SYMBOL", + "name": "init_declarator" + } + ] + } + } + ] + } + } + ] + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "type_definition": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "typedef" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "_type_specifier" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_type_declarator" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_type_declarator" + } + } + ] + } + } + ] + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "_declaration_modifiers": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "storage_class_specifier" + }, + { + "type": "SYMBOL", + "name": "type_qualifier" + }, + { + "type": "SYMBOL", + "name": "attribute_specifier" + }, + { + "type": "SYMBOL", + "name": "attribute_declaration" + }, + { + "type": "SYMBOL", + "name": "ms_declspec_modifier" + } + ] + }, + "_declaration_specifiers": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_declaration_modifiers" + } + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "_type_specifier" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_declaration_modifiers" + } + } + ] + }, + "linkage_specification": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "extern" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "string_literal" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "function_definition" + }, + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "SYMBOL", + "name": "declaration_list" + } + ] + } + } + ] + }, + "attribute_specifier": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "__attribute__" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "argument_list" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "attribute": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "prefix", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "::" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "argument_list" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "attribute_declaration": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[[" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "attribute" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "attribute" + } + ] + } + } + ] + }, + { + "type": "STRING", + "value": "]]" + } + ] + }, + "ms_declspec_modifier": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "__declspec" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "ms_based_modifier": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "__based" + }, + { + "type": "SYMBOL", + "name": "argument_list" + } + ] + }, + "ms_call_modifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "__cdecl" + }, + { + "type": "STRING", + "value": "__clrcall" + }, + { + "type": "STRING", + "value": "__stdcall" + }, + { + "type": "STRING", + "value": "__fastcall" + }, + { + "type": "STRING", + "value": "__thiscall" + }, + { + "type": "STRING", + "value": "__vectorcall" + } + ] + }, + "ms_restrict_modifier": { + "type": "STRING", + "value": "__restrict" + }, + "ms_unsigned_ptr_modifier": { + "type": "STRING", + "value": "__uptr" + }, + "ms_signed_ptr_modifier": { + "type": "STRING", + "value": "__sptr" + }, + "ms_unaligned_ptr_modifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "_unaligned" + }, + { + "type": "STRING", + "value": "__unaligned" + } + ] + }, + "ms_pointer_modifier": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "ms_unaligned_ptr_modifier" + }, + { + "type": "SYMBOL", + "name": "ms_restrict_modifier" + }, + { + "type": "SYMBOL", + "name": "ms_unsigned_ptr_modifier" + }, + { + "type": "SYMBOL", + "name": "ms_signed_ptr_modifier" + } + ] + }, + "declaration_list": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_top_level_item" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "_declarator": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "attributed_declarator" + }, + { + "type": "SYMBOL", + "name": "pointer_declarator" + }, + { + "type": "SYMBOL", + "name": "function_declarator" + }, + { + "type": "SYMBOL", + "name": "array_declarator" + }, + { + "type": "SYMBOL", + "name": "parenthesized_declarator" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, + "_field_declarator": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "attributed_field_declarator" + }, + "named": true, + "value": "attributed_declarator" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "pointer_field_declarator" + }, + "named": true, + "value": "pointer_declarator" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "function_field_declarator" + }, + "named": true, + "value": "function_declarator" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "array_field_declarator" + }, + "named": true, + "value": "array_declarator" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "parenthesized_field_declarator" + }, + "named": true, + "value": "parenthesized_declarator" + }, + { + "type": "SYMBOL", + "name": "_field_identifier" + } + ] + }, + "_type_declarator": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "attributed_type_declarator" + }, + "named": true, + "value": "attributed_declarator" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "pointer_type_declarator" + }, + "named": true, + "value": "pointer_declarator" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "function_type_declarator" + }, + "named": true, + "value": "function_declarator" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "array_type_declarator" + }, + "named": true, + "value": "array_declarator" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "parenthesized_type_declarator" + }, + "named": true, + "value": "parenthesized_declarator" + }, + { + "type": "SYMBOL", + "name": "_type_identifier" + } + ] + }, + "_abstract_declarator": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "abstract_pointer_declarator" + }, + { + "type": "SYMBOL", + "name": "abstract_function_declarator" + }, + { + "type": "SYMBOL", + "name": "abstract_array_declarator" + }, + { + "type": "SYMBOL", + "name": "abstract_parenthesized_declarator" + } + ] + }, + "parenthesized_declarator": { + "type": "PREC_DYNAMIC", + "value": -10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_declarator" + }, + { + "type": "STRING", + "value": ")" + } + ] + } + }, + "parenthesized_field_declarator": { + "type": "PREC_DYNAMIC", + "value": -10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_field_declarator" + }, + { + "type": "STRING", + "value": ")" + } + ] + } + }, + "parenthesized_type_declarator": { + "type": "PREC_DYNAMIC", + "value": -10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_type_declarator" + }, + { + "type": "STRING", + "value": ")" + } + ] + } + }, + "abstract_parenthesized_declarator": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_abstract_declarator" + }, + { + "type": "STRING", + "value": ")" + } + ] + } + }, + "attributed_declarator": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_declarator" + }, + { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "attribute_declaration" + } + } + ] + } + }, + "attributed_field_declarator": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_field_declarator" + }, + { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "attribute_declaration" + } + } + ] + } + }, + "attributed_type_declarator": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_type_declarator" + }, + { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "attribute_declaration" + } + } + ] + } + }, + "pointer_declarator": { + "type": "PREC_DYNAMIC", + "value": 1, + "content": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "ms_based_modifier" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "ms_pointer_modifier" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_declarator" + } + } + ] + } + } + }, + "pointer_field_declarator": { + "type": "PREC_DYNAMIC", + "value": 1, + "content": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "ms_based_modifier" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "ms_pointer_modifier" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_field_declarator" + } + } + ] + } + } + }, + "pointer_type_declarator": { + "type": "PREC_DYNAMIC", + "value": 1, + "content": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "ms_based_modifier" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "ms_pointer_modifier" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_type_declarator" + } + } + ] + } + } + }, + "abstract_pointer_declarator": { + "type": "PREC_DYNAMIC", + "value": 1, + "content": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_abstract_declarator" + }, + { + "type": "BLANK" + } + ] + } + } + ] + } + } + }, + "function_declarator": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_declarator" + } + }, + { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "parameter_list" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "attribute_specifier" + } + } + ] + } + }, + "function_field_declarator": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_field_declarator" + } + }, + { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "parameter_list" + } + } + ] + } + }, + "function_type_declarator": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_type_declarator" + } + }, + { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "parameter_list" + } + } + ] + } + }, + "abstract_function_declarator": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_abstract_declarator" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "parameter_list" + } + } + ] + } + }, + "array_declarator": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_declarator" + } + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "size", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "*" + } + ] + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": "]" + } + ] + } + }, + "array_field_declarator": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_field_declarator" + } + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "size", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "*" + } + ] + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": "]" + } + ] + } + }, + "array_type_declarator": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_type_declarator" + } + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "size", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "*" + } + ] + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": "]" + } + ] + } + }, + "abstract_array_declarator": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_abstract_declarator" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "size", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "*" + } + ] + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": "]" + } + ] + } + }, + "init_declarator": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_declarator" + } + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "initializer_list" + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + } + } + ] + }, + "compound_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_top_level_item" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "storage_class_specifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "extern" + }, + { + "type": "STRING", + "value": "static" + }, + { + "type": "STRING", + "value": "auto" + }, + { + "type": "STRING", + "value": "register" + }, + { + "type": "STRING", + "value": "inline" + } + ] + }, + "type_qualifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "const" + }, + { + "type": "STRING", + "value": "volatile" + }, + { + "type": "STRING", + "value": "restrict" + }, + { + "type": "STRING", + "value": "_Atomic" + } + ] + }, + "_type_specifier": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "struct_specifier" + }, + { + "type": "SYMBOL", + "name": "union_specifier" + }, + { + "type": "SYMBOL", + "name": "enum_specifier" + }, + { + "type": "SYMBOL", + "name": "macro_type_specifier" + }, + { + "type": "SYMBOL", + "name": "sized_type_specifier" + }, + { + "type": "SYMBOL", + "name": "primitive_type" + }, + { + "type": "SYMBOL", + "name": "_type_identifier" + } + ] + }, + "sized_type_specifier": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "signed" + }, + { + "type": "STRING", + "value": "unsigned" + }, + { + "type": "STRING", + "value": "long" + }, + { + "type": "STRING", + "value": "short" + } + ] + } + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PREC_DYNAMIC", + "value": -1, + "content": { + "type": "SYMBOL", + "name": "_type_identifier" + } + }, + { + "type": "SYMBOL", + "name": "primitive_type" + } + ] + }, + { + "type": "BLANK" + } + ] + } + } + ] + }, + "primitive_type": { + "type": "TOKEN", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "bool" + }, + { + "type": "STRING", + "value": "char" + }, + { + "type": "STRING", + "value": "int" + }, + { + "type": "STRING", + "value": "float" + }, + { + "type": "STRING", + "value": "double" + }, + { + "type": "STRING", + "value": "void" + }, + { + "type": "STRING", + "value": "size_t" + }, + { + "type": "STRING", + "value": "ssize_t" + }, + { + "type": "STRING", + "value": "intptr_t" + }, + { + "type": "STRING", + "value": "uintptr_t" + }, + { + "type": "STRING", + "value": "charptr_t" + }, + { + "type": "STRING", + "value": "int8_t" + }, + { + "type": "STRING", + "value": "int16_t" + }, + { + "type": "STRING", + "value": "int32_t" + }, + { + "type": "STRING", + "value": "int64_t" + }, + { + "type": "STRING", + "value": "uint8_t" + }, + { + "type": "STRING", + "value": "uint16_t" + }, + { + "type": "STRING", + "value": "uint32_t" + }, + { + "type": "STRING", + "value": "uint64_t" + }, + { + "type": "STRING", + "value": "char8_t" + }, + { + "type": "STRING", + "value": "char16_t" + }, + { + "type": "STRING", + "value": "char32_t" + }, + { + "type": "STRING", + "value": "char64_t" + } + ] + } + }, + "enum_specifier": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "enum" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_type_identifier" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "enumerator_list" + }, + { + "type": "BLANK" + } + ] + } + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "enumerator_list" + } + } + ] + } + ] + }, + "enumerator_list": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "enumerator" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "enumerator" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "struct_specifier": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "struct" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "ms_declspec_modifier" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_type_identifier" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "field_declaration_list" + }, + { + "type": "BLANK" + } + ] + } + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "field_declaration_list" + } + } + ] + } + ] + }, + "union_specifier": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "union" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "ms_declspec_modifier" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_type_identifier" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "field_declaration_list" + }, + { + "type": "BLANK" + } + ] + } + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "field_declaration_list" + } + } + ] + } + ] + }, + "field_declaration_list": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_field_declaration_list_item" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "_field_declaration_list_item": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "field_declaration" + }, + { + "type": "SYMBOL", + "name": "preproc_def" + }, + { + "type": "SYMBOL", + "name": "preproc_function_def" + }, + { + "type": "SYMBOL", + "name": "preproc_call" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "preproc_if_in_field_declaration_list" + }, + "named": true, + "value": "preproc_if" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "preproc_ifdef_in_field_declaration_list" + }, + "named": true, + "value": "preproc_ifdef" + } + ] + }, + "field_declaration": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_declaration_specifiers" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_field_declarator" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "SYMBOL", + "name": "_field_declarator" + } + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "bitfield_clause" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "bitfield_clause": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + }, + "enumerator": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "variadic_parameter": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "..." + } + ] + }, + "parameter_list": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "parameter_declaration" + }, + { + "type": "SYMBOL", + "name": "variadic_parameter" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "parameter_declaration" + }, + { + "type": "SYMBOL", + "name": "variadic_parameter" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "parameter_declaration": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_declaration_specifiers" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_declarator" + }, + { + "type": "SYMBOL", + "name": "_abstract_declarator" + } + ] + } + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "attributed_statement": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "attribute_declaration" + } + }, + { + "type": "SYMBOL", + "name": "_statement" + } + ] + }, + "_statement": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "case_statement" + }, + { + "type": "SYMBOL", + "name": "_non_case_statement" + } + ] + }, + "_non_case_statement": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "attributed_statement" + }, + { + "type": "SYMBOL", + "name": "labeled_statement" + }, + { + "type": "SYMBOL", + "name": "compound_statement" + }, + { + "type": "SYMBOL", + "name": "expression_statement" + }, + { + "type": "SYMBOL", + "name": "if_statement" + }, + { + "type": "SYMBOL", + "name": "switch_statement" + }, + { + "type": "SYMBOL", + "name": "do_statement" + }, + { + "type": "SYMBOL", + "name": "while_statement" + }, + { + "type": "SYMBOL", + "name": "for_statement" + }, + { + "type": "SYMBOL", + "name": "return_statement" + }, + { + "type": "SYMBOL", + "name": "break_statement" + }, + { + "type": "SYMBOL", + "name": "continue_statement" + }, + { + "type": "SYMBOL", + "name": "goto_statement" + } + ] + }, + "labeled_statement": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "label", + "content": { + "type": "SYMBOL", + "name": "_statement_identifier" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_statement" + } + ] + }, + "expression_statement": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "comma_expression" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "if_statement": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "if" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "consequence", + "content": { + "type": "SYMBOL", + "name": "_statement" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "else" + }, + { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "SYMBOL", + "name": "_statement" + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "switch_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "switch" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "compound_statement" + } + } + ] + }, + "case_statement": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "case" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + }, + { + "type": "STRING", + "value": "default" + } + ] + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_non_case_statement" + }, + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "SYMBOL", + "name": "type_definition" + } + ] + } + } + ] + } + }, + "while_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "while" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "_statement" + } + } + ] + }, + "do_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "do" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "_statement" + } + }, + { + "type": "STRING", + "value": "while" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "for_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "for" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "initializer", + "content": { + "type": "SYMBOL", + "name": "declaration" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "initializer", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "comma_expression" + } + ] + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": ";" + } + ] + } + ] + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "comma_expression" + } + ] + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": ";" + }, + { + "type": "FIELD", + "name": "update", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "comma_expression" + } + ] + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "_statement" + } + } + ] + }, + "return_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "return" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "comma_expression" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "break_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "break" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "continue_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "continue" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "goto_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "goto" + }, + { + "type": "FIELD", + "name": "label", + "content": { + "type": "SYMBOL", + "name": "_statement_identifier" + } + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "conditional_expression" + }, + { + "type": "SYMBOL", + "name": "assignment_expression" + }, + { + "type": "SYMBOL", + "name": "binary_expression" + }, + { + "type": "SYMBOL", + "name": "unary_expression" + }, + { + "type": "SYMBOL", + "name": "update_expression" + }, + { + "type": "SYMBOL", + "name": "cast_expression" + }, + { + "type": "SYMBOL", + "name": "pointer_expression" + }, + { + "type": "SYMBOL", + "name": "sizeof_expression" + }, + { + "type": "SYMBOL", + "name": "subscript_expression" + }, + { + "type": "SYMBOL", + "name": "call_expression" + }, + { + "type": "SYMBOL", + "name": "field_expression" + }, + { + "type": "SYMBOL", + "name": "compound_literal_expression" + }, + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "number_literal" + }, + { + "type": "SYMBOL", + "name": "string_literal" + }, + { + "type": "SYMBOL", + "name": "true" + }, + { + "type": "SYMBOL", + "name": "false" + }, + { + "type": "SYMBOL", + "name": "null" + }, + { + "type": "SYMBOL", + "name": "concatenated_string" + }, + { + "type": "SYMBOL", + "name": "char_literal" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + ] + }, + "comma_expression": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "comma_expression" + } + ] + } + } + ] + }, + "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" + } + } + ] + } + }, + "_assignment_left_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "call_expression" + }, + { + "type": "SYMBOL", + "name": "field_expression" + }, + { + "type": "SYMBOL", + "name": "pointer_expression" + }, + { + "type": "SYMBOL", + "name": "subscript_expression" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + ] + }, + "assignment_expression": { + "type": "PREC_RIGHT", + "value": -1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_assignment_left_expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "STRING", + "value": "*=" + }, + { + "type": "STRING", + "value": "/=" + }, + { + "type": "STRING", + "value": "%=" + }, + { + "type": "STRING", + "value": "+=" + }, + { + "type": "STRING", + "value": "-=" + }, + { + "type": "STRING", + "value": "<<=" + }, + { + "type": "STRING", + "value": ">>=" + }, + { + "type": "STRING", + "value": "&=" + }, + { + "type": "STRING", + "value": "^=" + }, + { + "type": "STRING", + "value": "|=" + } + ] + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + } + }, + "pointer_expression": { + "type": "PREC_LEFT", + "value": 12, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "STRING", + "value": "&" + } + ] + } + }, + { + "type": "FIELD", + "name": "argument", + "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" + } + } + ] + } + } + ] + }, + "update_expression": { + "type": "PREC_RIGHT", + "value": 13, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "--" + }, + { + "type": "STRING", + "value": "++" + } + ] + } + }, + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "--" + }, + { + "type": "STRING", + "value": "++" + } + ] + } + } + ] + } + ] + } + }, + "cast_expression": { + "type": "PREC", + "value": 12, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "type_descriptor" + } + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + } + }, + "type_descriptor": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "_type_specifier" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { + "type": "FIELD", + "name": "declarator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_abstract_declarator" + }, + { + "type": "BLANK" + } + ] + } + } + ] + }, + "sizeof_expression": { + "type": "PREC", + "value": 8, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "sizeof" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "type_descriptor" + } + }, + { + "type": "STRING", + "value": ")" + } + ] + } + ] + } + ] + } + }, + "subscript_expression": { + "type": "PREC", + "value": 16, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "FIELD", + "name": "index", + "content": { + "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": "_expression" + } + }, + { + "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": ")" + } + ] + }, + "field_expression": { + "type": "SEQ", + "members": [ + { + "type": "PREC", + "value": 15, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "STRING", + "value": "->" + } + ] + } + } + ] + } + }, + { + "type": "FIELD", + "name": "field", + "content": { + "type": "SYMBOL", + "name": "_field_identifier" + } + } + ] + }, + "compound_literal_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "type_descriptor" + } + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "initializer_list" + } + } + ] + }, + "parenthesized_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "comma_expression" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "initializer_list": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "initializer_pair" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "initializer_list" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "initializer_pair" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "initializer_list" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "initializer_pair": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "designator", + "content": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "subscript_designator" + }, + { + "type": "SYMBOL", + "name": "field_designator" + } + ] + } + } + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "initializer_list" + } + ] + } + } + ] + }, + "subscript_designator": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "field_designator": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "SYMBOL", + "name": "_field_identifier" + } + ] + }, + "number_literal": { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[-\\+]" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0x" + }, + { + "type": "STRING", + "value": "0b" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "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]" + } + } + ] + } + } + ] + } + ] + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "CHOICE", + "members": [ + { + "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]" + } + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "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": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "[eEpP]" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[-\\+]" + }, + { + "type": "BLANK" + } + ] + }, + { + "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]" + } + } + ] + } + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "u" + }, + { + "type": "STRING", + "value": "l" + }, + { + "type": "STRING", + "value": "U" + }, + { + "type": "STRING", + "value": "L" + }, + { + "type": "STRING", + "value": "f" + }, + { + "type": "STRING", + "value": "F" + } + ] + } + } + ] + } + }, + "char_literal": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "L'" + }, + { + "type": "STRING", + "value": "u'" + }, + { + "type": "STRING", + "value": "U'" + }, + { + "type": "STRING", + "value": "u8'" + }, + { + "type": "STRING", + "value": "'" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "escape_sequence" + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PATTERN", + "value": "[^\\n']" + } + } + ] + }, + { + "type": "STRING", + "value": "'" + } + ] + }, + "concatenated_string": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "string_literal" + }, + { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "string_literal" + } + } + ] + }, + "string_literal": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "L\"" + }, + { + "type": "STRING", + "value": "u\"" + }, + { + "type": "STRING", + "value": "U\"" + }, + { + "type": "STRING", + "value": "u8\"" + }, + { + "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": ">" + } + ] + } + }, + "true": { + "type": "TOKEN", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "TRUE" + }, + { + "type": "STRING", + "value": "true" + } + ] + } + }, + "false": { + "type": "TOKEN", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "FALSE" + }, + { + "type": "STRING", + "value": "false" + } + ] + } + }, + "null": { + "type": "STRING", + "value": "NULL" + }, + "identifier": { + "type": "PATTERN", + "value": "[a-zA-Z_]\\w*" + }, + "_type_identifier": { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "identifier" + }, + "named": true, + "value": "type_identifier" + }, + "_field_identifier": { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "identifier" + }, + "named": true, + "value": "field_identifier" + }, + "_statement_identifier": { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "identifier" + }, + "named": true, + "value": "statement_identifier" + }, + "_empty_declaration": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_type_specifier" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "macro_type_specifier": { + "type": "PREC_DYNAMIC", + "value": -1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "type_descriptor" + } + }, + { + "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": "/" + } + ] + } + ] + } + } + }, + "extras": [ + { + "type": "PATTERN", + "value": "\\s|\\\\\\r?\\n" + }, + { + "type": "SYMBOL", + "name": "comment" + } + ], + "conflicts": [ + [ + "_type_specifier", + "_declarator" + ], + [ + "_type_specifier", + "_declarator", + "macro_type_specifier" + ], + [ + "_type_specifier", + "_expression" + ], + [ + "_type_specifier", + "_expression", + "macro_type_specifier" + ], + [ + "_type_specifier", + "macro_type_specifier" + ], + [ + "sized_type_specifier" + ], + [ + "attributed_statement" + ], + [ + "_declaration_modifiers", + "attributed_statement" + ] + ], + "precedences": [], + "externals": [], + "inline": [ + "_statement", + "_top_level_item", + "_type_identifier", + "_field_identifier", + "_statement_identifier", + "_non_case_statement", + "_assignment_left_expression" + ], + "supertypes": [ + "_expression", + "_statement", + "_type_specifier", + "_declarator", + "_field_declarator", + "_type_declarator", + "_abstract_declarator" + ], + "PREC": { + "PAREN_DECLARATOR": -10, + "ASSIGNMENT": -1, + "CONDITIONAL": -2, + "DEFAULT": 0, + "LOGICAL_OR": 1, + "LOGICAL_AND": 2, + "INCLUSIVE_OR": 3, + "EXCLUSIVE_OR": 4, + "BITWISE_AND": 5, + "EQUAL": 6, + "RELATIONAL": 7, + "SIZEOF": 8, + "SHIFT": 9, + "ADD": 10, + "MULTIPLY": 11, + "CAST": 12, + "UNARY": 13, + "CALL": 14, + "FIELD": 15, + "SUBSCRIPT": 16 + } +} + diff --git a/tree-sitter-c/src/node-types.json b/tree-sitter-c/src/node-types.json new file mode 100644 index 0000000..ce327ec --- /dev/null +++ b/tree-sitter-c/src/node-types.json @@ -0,0 +1,3664 @@ +[ + { + "type": "_abstract_declarator", + "named": true, + "subtypes": [ + { + "type": "abstract_array_declarator", + "named": true + }, + { + "type": "abstract_function_declarator", + "named": true + }, + { + "type": "abstract_parenthesized_declarator", + "named": true + }, + { + "type": "abstract_pointer_declarator", + "named": true + } + ] + }, + { + "type": "_declarator", + "named": true, + "subtypes": [ + { + "type": "array_declarator", + "named": true + }, + { + "type": "attributed_declarator", + "named": true + }, + { + "type": "function_declarator", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "parenthesized_declarator", + "named": true + }, + { + "type": "pointer_declarator", + "named": true + } + ] + }, + { + "type": "_expression", + "named": true, + "subtypes": [ + { + "type": "assignment_expression", + "named": true + }, + { + "type": "binary_expression", + "named": true + }, + { + "type": "call_expression", + "named": true + }, + { + "type": "cast_expression", + "named": true + }, + { + "type": "char_literal", + "named": true + }, + { + "type": "compound_literal_expression", + "named": true + }, + { + "type": "concatenated_string", + "named": true + }, + { + "type": "conditional_expression", + "named": true + }, + { + "type": "false", + "named": true + }, + { + "type": "field_expression", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "null", + "named": true + }, + { + "type": "number_literal", + "named": true + }, + { + "type": "parenthesized_expression", + "named": true + }, + { + "type": "pointer_expression", + "named": true + }, + { + "type": "sizeof_expression", + "named": true + }, + { + "type": "string_literal", + "named": true + }, + { + "type": "subscript_expression", + "named": true + }, + { + "type": "true", + "named": true + }, + { + "type": "unary_expression", + "named": true + }, + { + "type": "update_expression", + "named": true + } + ] + }, + { + "type": "_field_declarator", + "named": true, + "subtypes": [ + { + "type": "array_declarator", + "named": true + }, + { + "type": "attributed_declarator", + "named": true + }, + { + "type": "field_identifier", + "named": true + }, + { + "type": "function_declarator", + "named": true + }, + { + "type": "parenthesized_declarator", + "named": true + }, + { + "type": "pointer_declarator", + "named": true + } + ] + }, + { + "type": "_statement", + "named": true, + "subtypes": [ + { + "type": "attributed_statement", + "named": true + }, + { + "type": "break_statement", + "named": true + }, + { + "type": "case_statement", + "named": true + }, + { + "type": "compound_statement", + "named": true + }, + { + "type": "continue_statement", + "named": true + }, + { + "type": "do_statement", + "named": true + }, + { + "type": "expression_statement", + "named": true + }, + { + "type": "for_statement", + "named": true + }, + { + "type": "goto_statement", + "named": true + }, + { + "type": "if_statement", + "named": true + }, + { + "type": "labeled_statement", + "named": true + }, + { + "type": "return_statement", + "named": true + }, + { + "type": "switch_statement", + "named": true + }, + { + "type": "while_statement", + "named": true + } + ] + }, + { + "type": "_type_declarator", + "named": true, + "subtypes": [ + { + "type": "array_declarator", + "named": true + }, + { + "type": "attributed_declarator", + "named": true + }, + { + "type": "function_declarator", + "named": true + }, + { + "type": "parenthesized_declarator", + "named": true + }, + { + "type": "pointer_declarator", + "named": true + }, + { + "type": "type_identifier", + "named": true + } + ] + }, + { + "type": "_type_specifier", + "named": true, + "subtypes": [ + { + "type": "enum_specifier", + "named": true + }, + { + "type": "macro_type_specifier", + "named": true + }, + { + "type": "primitive_type", + "named": true + }, + { + "type": "sized_type_specifier", + "named": true + }, + { + "type": "struct_specifier", + "named": true + }, + { + "type": "type_identifier", + "named": true + }, + { + "type": "union_specifier", + "named": true + } + ] + }, + { + "type": "abstract_array_declarator", + "named": true, + "fields": { + "declarator": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_abstract_declarator", + "named": true + } + ] + }, + "size": { + "multiple": false, + "required": false, + "types": [ + { + "type": "*", + "named": false + }, + { + "type": "_expression", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "type_qualifier", + "named": true + } + ] + } + }, + { + "type": "abstract_function_declarator", + "named": true, + "fields": { + "declarator": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_abstract_declarator", + "named": true + } + ] + }, + "parameters": { + "multiple": false, + "required": true, + "types": [ + { + "type": "parameter_list", + "named": true + } + ] + } + } + }, + { + "type": "abstract_parenthesized_declarator", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_abstract_declarator", + "named": true + } + ] + } + }, + { + "type": "abstract_pointer_declarator", + "named": true, + "fields": { + "declarator": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_abstract_declarator", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "type_qualifier", + "named": true + } + ] + } + }, + { + "type": "argument_list", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "preproc_defined", + "named": true + } + ] + } + }, + { + "type": "array_declarator", + "named": true, + "fields": { + "declarator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_declarator", + "named": true + }, + { + "type": "_field_declarator", + "named": true + }, + { + "type": "_type_declarator", + "named": true + } + ] + }, + "size": { + "multiple": false, + "required": false, + "types": [ + { + "type": "*", + "named": false + }, + { + "type": "_expression", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "type_qualifier", + "named": true + } + ] + } + }, + { + "type": "assignment_expression", + "named": true, + "fields": { + "left": { + "multiple": false, + "required": true, + "types": [ + { + "type": "call_expression", + "named": true + }, + { + "type": "field_expression", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "parenthesized_expression", + "named": true + }, + { + "type": "pointer_expression", + "named": true + }, + { + "type": "subscript_expression", + "named": true + } + ] + }, + "operator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "%=", + "named": false + }, + { + "type": "&=", + "named": false + }, + { + "type": "*=", + "named": false + }, + { + "type": "+=", + "named": false + }, + { + "type": "-=", + "named": false + }, + { + "type": "/=", + "named": false + }, + { + "type": "<<=", + "named": false + }, + { + "type": "=", + "named": false + }, + { + "type": ">>=", + "named": false + }, + { + "type": "^=", + "named": false + }, + { + "type": "|=", + "named": false + } + ] + }, + "right": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + } + } + }, + { + "type": "attribute", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "prefix": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "argument_list", + "named": true + } + ] + } + }, + { + "type": "attribute_declaration", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "attribute", + "named": true + } + ] + } + }, + { + "type": "attribute_specifier", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "argument_list", + "named": true + } + ] + } + }, + { + "type": "attributed_declarator", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "_declarator", + "named": true + }, + { + "type": "_field_declarator", + "named": true + }, + { + "type": "_type_declarator", + "named": true + }, + { + "type": "attribute_declaration", + "named": true + } + ] + } + }, + { + "type": "attributed_statement", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "_statement", + "named": true + }, + { + "type": "attribute_declaration", + "named": true + } + ] + } + }, + { + "type": "binary_expression", + "named": true, + "fields": { + "left": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "preproc_defined", + "named": true + } + ] + }, + "operator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "!=", + "named": false + }, + { + "type": "%", + "named": false + }, + { + "type": "&", + "named": false + }, + { + "type": "&&", + "named": false + }, + { + "type": "*", + "named": false + }, + { + "type": "+", + "named": false + }, + { + "type": "-", + "named": false + }, + { + "type": "/", + "named": false + }, + { + "type": "<", + "named": false + }, + { + "type": "<<", + "named": false + }, + { + "type": "<=", + "named": false + }, + { + "type": "==", + "named": false + }, + { + "type": ">", + "named": false + }, + { + "type": ">=", + "named": false + }, + { + "type": ">>", + "named": false + }, + { + "type": "^", + "named": false + }, + { + "type": "|", + "named": false + }, + { + "type": "||", + "named": false + } + ] + }, + "right": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "preproc_defined", + "named": true + } + ] + } + } + }, + { + "type": "bitfield_clause", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + } + }, + { + "type": "break_statement", + "named": true, + "fields": {} + }, + { + "type": "call_expression", + "named": true, + "fields": { + "arguments": { + "multiple": false, + "required": true, + "types": [ + { + "type": "argument_list", + "named": true + } + ] + }, + "function": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + } + } + }, + { + "type": "case_statement", + "named": true, + "fields": { + "value": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_expression", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "attributed_statement", + "named": true + }, + { + "type": "break_statement", + "named": true + }, + { + "type": "compound_statement", + "named": true + }, + { + "type": "continue_statement", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "do_statement", + "named": true + }, + { + "type": "expression_statement", + "named": true + }, + { + "type": "for_statement", + "named": true + }, + { + "type": "goto_statement", + "named": true + }, + { + "type": "if_statement", + "named": true + }, + { + "type": "labeled_statement", + "named": true + }, + { + "type": "return_statement", + "named": true + }, + { + "type": "switch_statement", + "named": true + }, + { + "type": "type_definition", + "named": true + }, + { + "type": "while_statement", + "named": true + } + ] + } + }, + { + "type": "cast_expression", + "named": true, + "fields": { + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "type_descriptor", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + } + } + }, + { + "type": "char_literal", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "escape_sequence", + "named": true + } + ] + } + }, + { + "type": "comma_expression", + "named": true, + "fields": { + "left": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + }, + "right": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "comma_expression", + "named": true + } + ] + } + } + }, + { + "type": "compound_literal_expression", + "named": true, + "fields": { + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "type_descriptor", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": true, + "types": [ + { + "type": "initializer_list", + "named": true + } + ] + } + } + }, + { + "type": "compound_statement", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "_statement", + "named": true + }, + { + "type": "_type_specifier", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "function_definition", + "named": true + }, + { + "type": "linkage_specification", + "named": true + }, + { + "type": "preproc_call", + "named": true + }, + { + "type": "preproc_def", + "named": true + }, + { + "type": "preproc_function_def", + "named": true + }, + { + "type": "preproc_if", + "named": true + }, + { + "type": "preproc_ifdef", + "named": true + }, + { + "type": "preproc_include", + "named": true + }, + { + "type": "type_definition", + "named": true + } + ] + } + }, + { + "type": "concatenated_string", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "string_literal", + "named": true + } + ] + } + }, + { + "type": "conditional_expression", + "named": true, + "fields": { + "alternative": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + }, + "condition": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + }, + "consequence": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + } + } + }, + { + "type": "continue_statement", + "named": true, + "fields": {} + }, + { + "type": "declaration", + "named": true, + "fields": { + "declarator": { + "multiple": true, + "required": true, + "types": [ + { + "type": "_declarator", + "named": true + }, + { + "type": "init_declarator", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_type_specifier", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "attribute_declaration", + "named": true + }, + { + "type": "attribute_specifier", + "named": true + }, + { + "type": "ms_declspec_modifier", + "named": true + }, + { + "type": "storage_class_specifier", + "named": true + }, + { + "type": "type_qualifier", + "named": true + } + ] + } + }, + { + "type": "declaration_list", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "_statement", + "named": true + }, + { + "type": "_type_specifier", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "function_definition", + "named": true + }, + { + "type": "linkage_specification", + "named": true + }, + { + "type": "preproc_call", + "named": true + }, + { + "type": "preproc_def", + "named": true + }, + { + "type": "preproc_function_def", + "named": true + }, + { + "type": "preproc_if", + "named": true + }, + { + "type": "preproc_ifdef", + "named": true + }, + { + "type": "preproc_include", + "named": true + }, + { + "type": "type_definition", + "named": true + } + ] + } + }, + { + "type": "do_statement", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_statement", + "named": true + } + ] + }, + "condition": { + "multiple": false, + "required": true, + "types": [ + { + "type": "parenthesized_expression", + "named": true + } + ] + } + } + }, + { + "type": "enum_specifier", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": false, + "types": [ + { + "type": "enumerator_list", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": false, + "types": [ + { + "type": "type_identifier", + "named": true + } + ] + } + } + }, + { + "type": "enumerator", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_expression", + "named": true + } + ] + } + } + }, + { + "type": "enumerator_list", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "enumerator", + "named": true + } + ] + } + }, + { + "type": "expression_statement", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "comma_expression", + "named": true + } + ] + } + }, + { + "type": "field_declaration", + "named": true, + "fields": { + "declarator": { + "multiple": true, + "required": false, + "types": [ + { + "type": "_field_declarator", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_type_specifier", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "attribute_declaration", + "named": true + }, + { + "type": "attribute_specifier", + "named": true + }, + { + "type": "bitfield_clause", + "named": true + }, + { + "type": "ms_declspec_modifier", + "named": true + }, + { + "type": "storage_class_specifier", + "named": true + }, + { + "type": "type_qualifier", + "named": true + } + ] + } + }, + { + "type": "field_declaration_list", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "field_declaration", + "named": true + }, + { + "type": "preproc_call", + "named": true + }, + { + "type": "preproc_def", + "named": true + }, + { + "type": "preproc_function_def", + "named": true + }, + { + "type": "preproc_if", + "named": true + }, + { + "type": "preproc_ifdef", + "named": true + } + ] + } + }, + { + "type": "field_designator", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "field_identifier", + "named": true + } + ] + } + }, + { + "type": "field_expression", + "named": true, + "fields": { + "argument": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + }, + "field": { + "multiple": false, + "required": true, + "types": [ + { + "type": "field_identifier", + "named": true + } + ] + }, + "operator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "->", + "named": false + }, + { + "type": ".", + "named": false + } + ] + } + } + }, + { + "type": "for_statement", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_statement", + "named": true + } + ] + }, + "condition": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "comma_expression", + "named": true + } + ] + }, + "initializer": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "comma_expression", + "named": true + }, + { + "type": "declaration", + "named": true + } + ] + }, + "update": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "comma_expression", + "named": true + } + ] + } + } + }, + { + "type": "function_declarator", + "named": true, + "fields": { + "declarator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_declarator", + "named": true + }, + { + "type": "_field_declarator", + "named": true + }, + { + "type": "_type_declarator", + "named": true + } + ] + }, + "parameters": { + "multiple": false, + "required": true, + "types": [ + { + "type": "parameter_list", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "attribute_specifier", + "named": true + } + ] + } + }, + { + "type": "function_definition", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "compound_statement", + "named": true + } + ] + }, + "declarator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_declarator", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_type_specifier", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "attribute_declaration", + "named": true + }, + { + "type": "attribute_specifier", + "named": true + }, + { + "type": "ms_call_modifier", + "named": true + }, + { + "type": "ms_declspec_modifier", + "named": true + }, + { + "type": "storage_class_specifier", + "named": true + }, + { + "type": "type_qualifier", + "named": true + } + ] + } + }, + { + "type": "goto_statement", + "named": true, + "fields": { + "label": { + "multiple": false, + "required": true, + "types": [ + { + "type": "statement_identifier", + "named": true + } + ] + } + } + }, + { + "type": "if_statement", + "named": true, + "fields": { + "alternative": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_statement", + "named": true + } + ] + }, + "condition": { + "multiple": false, + "required": true, + "types": [ + { + "type": "parenthesized_expression", + "named": true + } + ] + }, + "consequence": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_statement", + "named": true + } + ] + } + } + }, + { + "type": "init_declarator", + "named": true, + "fields": { + "declarator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_declarator", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "initializer_list", + "named": true + } + ] + } + } + }, + { + "type": "initializer_list", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "initializer_list", + "named": true + }, + { + "type": "initializer_pair", + "named": true + } + ] + } + }, + { + "type": "initializer_pair", + "named": true, + "fields": { + "designator": { + "multiple": true, + "required": true, + "types": [ + { + "type": "field_designator", + "named": true + }, + { + "type": "subscript_designator", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "initializer_list", + "named": true + } + ] + } + } + }, + { + "type": "labeled_statement", + "named": true, + "fields": { + "label": { + "multiple": false, + "required": true, + "types": [ + { + "type": "statement_identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_statement", + "named": true + } + ] + } + }, + { + "type": "linkage_specification", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "declaration", + "named": true + }, + { + "type": "declaration_list", + "named": true + }, + { + "type": "function_definition", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": true, + "types": [ + { + "type": "string_literal", + "named": true + } + ] + } + } + }, + { + "type": "macro_type_specifier", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "type_descriptor", + "named": true + } + ] + } + } + }, + { + "type": "ms_based_modifier", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "argument_list", + "named": true + } + ] + } + }, + { + "type": "ms_call_modifier", + "named": true, + "fields": {} + }, + { + "type": "ms_declspec_modifier", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "ms_pointer_modifier", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "ms_restrict_modifier", + "named": true + }, + { + "type": "ms_signed_ptr_modifier", + "named": true + }, + { + "type": "ms_unaligned_ptr_modifier", + "named": true + }, + { + "type": "ms_unsigned_ptr_modifier", + "named": true + } + ] + } + }, + { + "type": "ms_unaligned_ptr_modifier", + "named": true, + "fields": {} + }, + { + "type": "parameter_declaration", + "named": true, + "fields": { + "declarator": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_abstract_declarator", + "named": true + }, + { + "type": "_declarator", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_type_specifier", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "attribute_declaration", + "named": true + }, + { + "type": "attribute_specifier", + "named": true + }, + { + "type": "ms_declspec_modifier", + "named": true + }, + { + "type": "storage_class_specifier", + "named": true + }, + { + "type": "type_qualifier", + "named": true + } + ] + } + }, + { + "type": "parameter_list", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "parameter_declaration", + "named": true + }, + { + "type": "variadic_parameter", + "named": true + } + ] + } + }, + { + "type": "parenthesized_declarator", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_declarator", + "named": true + }, + { + "type": "_field_declarator", + "named": true + }, + { + "type": "_type_declarator", + "named": true + } + ] + } + }, + { + "type": "parenthesized_expression", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "comma_expression", + "named": true + }, + { + "type": "preproc_defined", + "named": true + } + ] + } + }, + { + "type": "pointer_declarator", + "named": true, + "fields": { + "declarator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_declarator", + "named": true + }, + { + "type": "_field_declarator", + "named": true + }, + { + "type": "_type_declarator", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "ms_based_modifier", + "named": true + }, + { + "type": "ms_pointer_modifier", + "named": true + }, + { + "type": "type_qualifier", + "named": true + } + ] + } + }, + { + "type": "pointer_expression", + "named": true, + "fields": { + "argument": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + }, + "operator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "&", + "named": false + }, + { + "type": "*", + "named": false + } + ] + } + } + }, + { + "type": "preproc_call", + "named": true, + "fields": { + "argument": { + "multiple": false, + "required": false, + "types": [ + { + "type": "preproc_arg", + "named": true + } + ] + }, + "directive": { + "multiple": false, + "required": true, + "types": [ + { + "type": "preproc_directive", + "named": true + } + ] + } + } + }, + { + "type": "preproc_def", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": false, + "types": [ + { + "type": "preproc_arg", + "named": true + } + ] + } + } + }, + { + "type": "preproc_defined", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "preproc_elif", + "named": true, + "fields": { + "alternative": { + "multiple": false, + "required": false, + "types": [ + { + "type": "preproc_elif", + "named": true + }, + { + "type": "preproc_else", + "named": true + } + ] + }, + "condition": { + "multiple": false, + "required": true, + "types": [ + { + "type": "binary_expression", + "named": true + }, + { + "type": "call_expression", + "named": true + }, + { + "type": "char_literal", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number_literal", + "named": true + }, + { + "type": "parenthesized_expression", + "named": true + }, + { + "type": "preproc_defined", + "named": true + }, + { + "type": "unary_expression", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "_statement", + "named": true + }, + { + "type": "_type_specifier", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "field_declaration", + "named": true + }, + { + "type": "function_definition", + "named": true + }, + { + "type": "linkage_specification", + "named": true + }, + { + "type": "preproc_call", + "named": true + }, + { + "type": "preproc_def", + "named": true + }, + { + "type": "preproc_function_def", + "named": true + }, + { + "type": "preproc_if", + "named": true + }, + { + "type": "preproc_ifdef", + "named": true + }, + { + "type": "preproc_include", + "named": true + }, + { + "type": "type_definition", + "named": true + } + ] + } + }, + { + "type": "preproc_else", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "_statement", + "named": true + }, + { + "type": "_type_specifier", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "field_declaration", + "named": true + }, + { + "type": "function_definition", + "named": true + }, + { + "type": "linkage_specification", + "named": true + }, + { + "type": "preproc_call", + "named": true + }, + { + "type": "preproc_def", + "named": true + }, + { + "type": "preproc_function_def", + "named": true + }, + { + "type": "preproc_if", + "named": true + }, + { + "type": "preproc_ifdef", + "named": true + }, + { + "type": "preproc_include", + "named": true + }, + { + "type": "type_definition", + "named": true + } + ] + } + }, + { + "type": "preproc_function_def", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "parameters": { + "multiple": false, + "required": true, + "types": [ + { + "type": "preproc_params", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": false, + "types": [ + { + "type": "preproc_arg", + "named": true + } + ] + } + } + }, + { + "type": "preproc_if", + "named": true, + "fields": { + "alternative": { + "multiple": false, + "required": false, + "types": [ + { + "type": "preproc_elif", + "named": true + }, + { + "type": "preproc_else", + "named": true + } + ] + }, + "condition": { + "multiple": false, + "required": true, + "types": [ + { + "type": "binary_expression", + "named": true + }, + { + "type": "call_expression", + "named": true + }, + { + "type": "char_literal", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number_literal", + "named": true + }, + { + "type": "parenthesized_expression", + "named": true + }, + { + "type": "preproc_defined", + "named": true + }, + { + "type": "unary_expression", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "_statement", + "named": true + }, + { + "type": "_type_specifier", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "field_declaration", + "named": true + }, + { + "type": "function_definition", + "named": true + }, + { + "type": "linkage_specification", + "named": true + }, + { + "type": "preproc_call", + "named": true + }, + { + "type": "preproc_def", + "named": true + }, + { + "type": "preproc_function_def", + "named": true + }, + { + "type": "preproc_if", + "named": true + }, + { + "type": "preproc_ifdef", + "named": true + }, + { + "type": "preproc_include", + "named": true + }, + { + "type": "type_definition", + "named": true + } + ] + } + }, + { + "type": "preproc_ifdef", + "named": true, + "fields": { + "alternative": { + "multiple": false, + "required": false, + "types": [ + { + "type": "preproc_elif", + "named": true + }, + { + "type": "preproc_else", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "_statement", + "named": true + }, + { + "type": "_type_specifier", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "field_declaration", + "named": true + }, + { + "type": "function_definition", + "named": true + }, + { + "type": "linkage_specification", + "named": true + }, + { + "type": "preproc_call", + "named": true + }, + { + "type": "preproc_def", + "named": true + }, + { + "type": "preproc_function_def", + "named": true + }, + { + "type": "preproc_if", + "named": true + }, + { + "type": "preproc_ifdef", + "named": true + }, + { + "type": "preproc_include", + "named": true + }, + { + "type": "type_definition", + "named": true + } + ] + } + }, + { + "type": "preproc_include", + "named": true, + "fields": { + "path": { + "multiple": false, + "required": true, + "types": [ + { + "type": "call_expression", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "string_literal", + "named": true + }, + { + "type": "system_lib_string", + "named": true + } + ] + } + } + }, + { + "type": "preproc_params", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "return_statement", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "comma_expression", + "named": true + } + ] + } + }, + { + "type": "sized_type_specifier", + "named": true, + "fields": { + "type": { + "multiple": false, + "required": false, + "types": [ + { + "type": "primitive_type", + "named": true + }, + { + "type": "type_identifier", + "named": true + } + ] + } + } + }, + { + "type": "sizeof_expression", + "named": true, + "fields": { + "type": { + "multiple": false, + "required": false, + "types": [ + { + "type": "type_descriptor", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_expression", + "named": true + } + ] + } + } + }, + { + "type": "storage_class_specifier", + "named": true, + "fields": {} + }, + { + "type": "string_literal", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "escape_sequence", + "named": true + } + ] + } + }, + { + "type": "struct_specifier", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": false, + "types": [ + { + "type": "field_declaration_list", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": false, + "types": [ + { + "type": "type_identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "ms_declspec_modifier", + "named": true + } + ] + } + }, + { + "type": "subscript_designator", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + } + }, + { + "type": "subscript_expression", + "named": true, + "fields": { + "argument": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + }, + "index": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + } + } + }, + { + "type": "switch_statement", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "compound_statement", + "named": true + } + ] + }, + "condition": { + "multiple": false, + "required": true, + "types": [ + { + "type": "parenthesized_expression", + "named": true + } + ] + } + } + }, + { + "type": "translation_unit", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "_statement", + "named": true + }, + { + "type": "_type_specifier", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "function_definition", + "named": true + }, + { + "type": "linkage_specification", + "named": true + }, + { + "type": "preproc_call", + "named": true + }, + { + "type": "preproc_def", + "named": true + }, + { + "type": "preproc_function_def", + "named": true + }, + { + "type": "preproc_if", + "named": true + }, + { + "type": "preproc_ifdef", + "named": true + }, + { + "type": "preproc_include", + "named": true + }, + { + "type": "type_definition", + "named": true + } + ] + } + }, + { + "type": "type_definition", + "named": true, + "fields": { + "declarator": { + "multiple": true, + "required": true, + "types": [ + { + "type": "_type_declarator", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_type_specifier", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "type_qualifier", + "named": true + } + ] + } + }, + { + "type": "type_descriptor", + "named": true, + "fields": { + "declarator": { + "multiple": false, + "required": false, + "types": [ + { + "type": "_abstract_declarator", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_type_specifier", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "type_qualifier", + "named": true + } + ] + } + }, + { + "type": "type_qualifier", + "named": true, + "fields": {} + }, + { + "type": "unary_expression", + "named": true, + "fields": { + "argument": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + }, + { + "type": "preproc_defined", + "named": true + } + ] + }, + "operator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "!", + "named": false + }, + { + "type": "+", + "named": false + }, + { + "type": "-", + "named": false + }, + { + "type": "~", + "named": false + } + ] + } + } + }, + { + "type": "union_specifier", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": false, + "types": [ + { + "type": "field_declaration_list", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": false, + "types": [ + { + "type": "type_identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "ms_declspec_modifier", + "named": true + } + ] + } + }, + { + "type": "update_expression", + "named": true, + "fields": { + "argument": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_expression", + "named": true + } + ] + }, + "operator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "++", + "named": false + }, + { + "type": "--", + "named": false + } + ] + } + } + }, + { + "type": "variadic_parameter", + "named": true, + "fields": {} + }, + { + "type": "while_statement", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "_statement", + "named": true + } + ] + }, + "condition": { + "multiple": false, + "required": true, + "types": [ + { + "type": "parenthesized_expression", + "named": true + } + ] + } + } + }, + { + "type": "\n", + "named": false + }, + { + "type": "!", + "named": false + }, + { + "type": "!=", + "named": false + }, + { + "type": "\"", + "named": false + }, + { + "type": "#define", + "named": false + }, + { + "type": "#elif", + "named": false + }, + { + "type": "#else", + "named": false + }, + { + "type": "#endif", + "named": false + }, + { + "type": "#if", + "named": false + }, + { + "type": "#ifdef", + "named": false + }, + { + "type": "#ifndef", + "named": false + }, + { + "type": "#include", + "named": false + }, + { + "type": "%", + "named": false + }, + { + "type": "%=", + "named": false + }, + { + "type": "&", + "named": false + }, + { + "type": "&&", + "named": false + }, + { + "type": "&=", + "named": false + }, + { + "type": "'", + "named": false + }, + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "*", + "named": false + }, + { + "type": "*=", + "named": false + }, + { + "type": "+", + "named": false + }, + { + "type": "++", + "named": false + }, + { + "type": "+=", + "named": false + }, + { + "type": ",", + "named": false + }, + { + "type": "-", + "named": false + }, + { + "type": "--", + "named": false + }, + { + "type": "-=", + "named": false + }, + { + "type": "->", + "named": false + }, + { + "type": ".", + "named": false + }, + { + "type": "...", + "named": false + }, + { + "type": "/", + "named": false + }, + { + "type": "/=", + "named": false + }, + { + "type": ":", + "named": false + }, + { + "type": "::", + "named": false + }, + { + "type": ";", + "named": false + }, + { + "type": "<", + "named": false + }, + { + "type": "<<", + "named": false + }, + { + "type": "<<=", + "named": false + }, + { + "type": "<=", + "named": false + }, + { + "type": "=", + "named": false + }, + { + "type": "==", + "named": false + }, + { + "type": ">", + "named": false + }, + { + "type": ">=", + "named": false + }, + { + "type": ">>", + "named": false + }, + { + "type": ">>=", + "named": false + }, + { + "type": "?", + "named": false + }, + { + "type": "L\"", + "named": false + }, + { + "type": "L'", + "named": false + }, + { + "type": "U\"", + "named": false + }, + { + "type": "U'", + "named": false + }, + { + "type": "[", + "named": false + }, + { + "type": "[[", + "named": false + }, + { + "type": "]", + "named": false + }, + { + "type": "]]", + "named": false + }, + { + "type": "^", + "named": false + }, + { + "type": "^=", + "named": false + }, + { + "type": "_Atomic", + "named": false + }, + { + "type": "__attribute__", + "named": false + }, + { + "type": "__based", + "named": false + }, + { + "type": "__cdecl", + "named": false + }, + { + "type": "__clrcall", + "named": false + }, + { + "type": "__declspec", + "named": false + }, + { + "type": "__fastcall", + "named": false + }, + { + "type": "__stdcall", + "named": false + }, + { + "type": "__thiscall", + "named": false + }, + { + "type": "__unaligned", + "named": false + }, + { + "type": "__vectorcall", + "named": false + }, + { + "type": "_unaligned", + "named": false + }, + { + "type": "auto", + "named": false + }, + { + "type": "break", + "named": false + }, + { + "type": "case", + "named": false + }, + { + "type": "comment", + "named": true + }, + { + "type": "const", + "named": false + }, + { + "type": "continue", + "named": false + }, + { + "type": "default", + "named": false + }, + { + "type": "defined", + "named": false + }, + { + "type": "do", + "named": false + }, + { + "type": "else", + "named": false + }, + { + "type": "enum", + "named": false + }, + { + "type": "escape_sequence", + "named": true + }, + { + "type": "extern", + "named": false + }, + { + "type": "false", + "named": true + }, + { + "type": "field_identifier", + "named": true + }, + { + "type": "for", + "named": false + }, + { + "type": "goto", + "named": false + }, + { + "type": "identifier", + "named": true + }, + { + "type": "if", + "named": false + }, + { + "type": "inline", + "named": false + }, + { + "type": "long", + "named": false + }, + { + "type": "ms_restrict_modifier", + "named": true + }, + { + "type": "ms_signed_ptr_modifier", + "named": true + }, + { + "type": "ms_unsigned_ptr_modifier", + "named": true + }, + { + "type": "null", + "named": true + }, + { + "type": "number_literal", + "named": true + }, + { + "type": "preproc_arg", + "named": true + }, + { + "type": "preproc_directive", + "named": true + }, + { + "type": "primitive_type", + "named": true + }, + { + "type": "register", + "named": false + }, + { + "type": "restrict", + "named": false + }, + { + "type": "return", + "named": false + }, + { + "type": "short", + "named": false + }, + { + "type": "signed", + "named": false + }, + { + "type": "sizeof", + "named": false + }, + { + "type": "statement_identifier", + "named": true + }, + { + "type": "static", + "named": false + }, + { + "type": "struct", + "named": false + }, + { + "type": "switch", + "named": false + }, + { + "type": "system_lib_string", + "named": true + }, + { + "type": "true", + "named": true + }, + { + "type": "type_identifier", + "named": true + }, + { + "type": "typedef", + "named": false + }, + { + "type": "u\"", + "named": false + }, + { + "type": "u'", + "named": false + }, + { + "type": "u8\"", + "named": false + }, + { + "type": "u8'", + "named": false + }, + { + "type": "union", + "named": false + }, + { + "type": "unsigned", + "named": false + }, + { + "type": "volatile", + "named": false + }, + { + "type": "while", + "named": false + }, + { + "type": "{", + "named": false + }, + { + "type": "|", + "named": false + }, + { + "type": "|=", + "named": false + }, + { + "type": "||", + "named": false + }, + { + "type": "}", + "named": false + }, + { + "type": "~", + "named": false + } +] \ No newline at end of file diff --git a/tree-sitter-c/src/parser.c b/tree-sitter-c/src/parser.c new file mode 100644 index 0000000..cf7f8c8 --- /dev/null +++ b/tree-sitter-c/src/parser.c @@ -0,0 +1,75781 @@ +#include + +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif + +#define LANGUAGE_VERSION 13 +#define STATE_COUNT 1466 +#define LARGE_STATE_COUNT 382 +#define SYMBOL_COUNT 266 +#define ALIAS_COUNT 3 +#define TOKEN_COUNT 128 +#define EXTERNAL_TOKEN_COUNT 0 +#define FIELD_COUNT 25 +#define MAX_ALIAS_SEQUENCE_LENGTH 9 +#define PRODUCTION_ID_COUNT 85 + +enum { + sym_identifier = 1, + aux_sym_preproc_include_token1 = 2, + anon_sym_LF = 3, + aux_sym_preproc_def_token1 = 4, + anon_sym_LPAREN = 5, + anon_sym_DOT_DOT_DOT = 6, + anon_sym_COMMA = 7, + anon_sym_RPAREN = 8, + aux_sym_preproc_if_token1 = 9, + aux_sym_preproc_if_token2 = 10, + aux_sym_preproc_ifdef_token1 = 11, + aux_sym_preproc_ifdef_token2 = 12, + aux_sym_preproc_else_token1 = 13, + aux_sym_preproc_elif_token1 = 14, + sym_preproc_directive = 15, + sym_preproc_arg = 16, + anon_sym_LPAREN2 = 17, + anon_sym_defined = 18, + anon_sym_BANG = 19, + anon_sym_TILDE = 20, + anon_sym_DASH = 21, + anon_sym_PLUS = 22, + anon_sym_STAR = 23, + anon_sym_SLASH = 24, + anon_sym_PERCENT = 25, + anon_sym_PIPE_PIPE = 26, + anon_sym_AMP_AMP = 27, + anon_sym_PIPE = 28, + anon_sym_CARET = 29, + anon_sym_AMP = 30, + anon_sym_EQ_EQ = 31, + anon_sym_BANG_EQ = 32, + anon_sym_GT = 33, + anon_sym_GT_EQ = 34, + anon_sym_LT_EQ = 35, + anon_sym_LT = 36, + anon_sym_LT_LT = 37, + anon_sym_GT_GT = 38, + anon_sym_SEMI = 39, + anon_sym_typedef = 40, + anon_sym_extern = 41, + anon_sym___attribute__ = 42, + anon_sym_COLON_COLON = 43, + anon_sym_LBRACK_LBRACK = 44, + anon_sym_RBRACK_RBRACK = 45, + anon_sym___declspec = 46, + anon_sym___based = 47, + anon_sym___cdecl = 48, + anon_sym___clrcall = 49, + anon_sym___stdcall = 50, + anon_sym___fastcall = 51, + anon_sym___thiscall = 52, + anon_sym___vectorcall = 53, + sym_ms_restrict_modifier = 54, + sym_ms_unsigned_ptr_modifier = 55, + sym_ms_signed_ptr_modifier = 56, + anon_sym__unaligned = 57, + anon_sym___unaligned = 58, + anon_sym_LBRACE = 59, + anon_sym_RBRACE = 60, + anon_sym_LBRACK = 61, + anon_sym_RBRACK = 62, + anon_sym_EQ = 63, + anon_sym_static = 64, + anon_sym_auto = 65, + anon_sym_register = 66, + anon_sym_inline = 67, + anon_sym_const = 68, + anon_sym_volatile = 69, + anon_sym_restrict = 70, + anon_sym__Atomic = 71, + anon_sym_signed = 72, + anon_sym_unsigned = 73, + anon_sym_long = 74, + anon_sym_short = 75, + sym_primitive_type = 76, + anon_sym_enum = 77, + anon_sym_struct = 78, + anon_sym_union = 79, + anon_sym_COLON = 80, + anon_sym_if = 81, + anon_sym_else = 82, + anon_sym_switch = 83, + anon_sym_case = 84, + anon_sym_default = 85, + anon_sym_while = 86, + anon_sym_do = 87, + anon_sym_for = 88, + anon_sym_return = 89, + anon_sym_break = 90, + anon_sym_continue = 91, + anon_sym_goto = 92, + anon_sym_QMARK = 93, + anon_sym_STAR_EQ = 94, + anon_sym_SLASH_EQ = 95, + anon_sym_PERCENT_EQ = 96, + anon_sym_PLUS_EQ = 97, + anon_sym_DASH_EQ = 98, + anon_sym_LT_LT_EQ = 99, + anon_sym_GT_GT_EQ = 100, + anon_sym_AMP_EQ = 101, + anon_sym_CARET_EQ = 102, + anon_sym_PIPE_EQ = 103, + anon_sym_DASH_DASH = 104, + anon_sym_PLUS_PLUS = 105, + anon_sym_sizeof = 106, + anon_sym_DOT = 107, + anon_sym_DASH_GT = 108, + sym_number_literal = 109, + anon_sym_L_SQUOTE = 110, + anon_sym_u_SQUOTE = 111, + anon_sym_U_SQUOTE = 112, + anon_sym_u8_SQUOTE = 113, + anon_sym_SQUOTE = 114, + aux_sym_char_literal_token1 = 115, + anon_sym_L_DQUOTE = 116, + anon_sym_u_DQUOTE = 117, + anon_sym_U_DQUOTE = 118, + anon_sym_u8_DQUOTE = 119, + anon_sym_DQUOTE = 120, + aux_sym_string_literal_token1 = 121, + sym_escape_sequence = 122, + sym_system_lib_string = 123, + sym_true = 124, + sym_false = 125, + sym_null = 126, + sym_comment = 127, + sym_translation_unit = 128, + sym_preproc_include = 129, + sym_preproc_def = 130, + sym_preproc_function_def = 131, + sym_preproc_params = 132, + sym_preproc_call = 133, + sym_preproc_if = 134, + sym_preproc_ifdef = 135, + sym_preproc_else = 136, + sym_preproc_elif = 137, + sym_preproc_if_in_field_declaration_list = 138, + sym_preproc_ifdef_in_field_declaration_list = 139, + sym_preproc_else_in_field_declaration_list = 140, + sym_preproc_elif_in_field_declaration_list = 141, + sym__preproc_expression = 142, + sym_preproc_parenthesized_expression = 143, + sym_preproc_defined = 144, + sym_preproc_unary_expression = 145, + sym_preproc_call_expression = 146, + sym_preproc_argument_list = 147, + sym_preproc_binary_expression = 148, + sym_function_definition = 149, + sym_declaration = 150, + sym_type_definition = 151, + sym__declaration_modifiers = 152, + sym__declaration_specifiers = 153, + sym_linkage_specification = 154, + sym_attribute_specifier = 155, + sym_attribute = 156, + sym_attribute_declaration = 157, + sym_ms_declspec_modifier = 158, + sym_ms_based_modifier = 159, + sym_ms_call_modifier = 160, + sym_ms_unaligned_ptr_modifier = 161, + sym_ms_pointer_modifier = 162, + sym_declaration_list = 163, + sym__declarator = 164, + sym__field_declarator = 165, + sym__type_declarator = 166, + sym__abstract_declarator = 167, + sym_parenthesized_declarator = 168, + sym_parenthesized_field_declarator = 169, + sym_parenthesized_type_declarator = 170, + sym_abstract_parenthesized_declarator = 171, + sym_attributed_declarator = 172, + sym_attributed_field_declarator = 173, + sym_attributed_type_declarator = 174, + sym_pointer_declarator = 175, + sym_pointer_field_declarator = 176, + sym_pointer_type_declarator = 177, + sym_abstract_pointer_declarator = 178, + sym_function_declarator = 179, + sym_function_field_declarator = 180, + sym_function_type_declarator = 181, + sym_abstract_function_declarator = 182, + sym_array_declarator = 183, + sym_array_field_declarator = 184, + sym_array_type_declarator = 185, + sym_abstract_array_declarator = 186, + sym_init_declarator = 187, + sym_compound_statement = 188, + sym_storage_class_specifier = 189, + sym_type_qualifier = 190, + sym__type_specifier = 191, + sym_sized_type_specifier = 192, + sym_enum_specifier = 193, + sym_enumerator_list = 194, + sym_struct_specifier = 195, + sym_union_specifier = 196, + sym_field_declaration_list = 197, + sym__field_declaration_list_item = 198, + sym_field_declaration = 199, + sym_bitfield_clause = 200, + sym_enumerator = 201, + sym_variadic_parameter = 202, + sym_parameter_list = 203, + sym_parameter_declaration = 204, + sym_attributed_statement = 205, + sym_labeled_statement = 206, + sym_expression_statement = 207, + sym_if_statement = 208, + sym_switch_statement = 209, + sym_case_statement = 210, + sym_while_statement = 211, + sym_do_statement = 212, + sym_for_statement = 213, + sym_return_statement = 214, + sym_break_statement = 215, + sym_continue_statement = 216, + sym_goto_statement = 217, + sym__expression = 218, + sym_comma_expression = 219, + sym_conditional_expression = 220, + sym_assignment_expression = 221, + sym_pointer_expression = 222, + sym_unary_expression = 223, + sym_binary_expression = 224, + sym_update_expression = 225, + sym_cast_expression = 226, + sym_type_descriptor = 227, + sym_sizeof_expression = 228, + sym_subscript_expression = 229, + sym_call_expression = 230, + sym_argument_list = 231, + sym_field_expression = 232, + sym_compound_literal_expression = 233, + sym_parenthesized_expression = 234, + sym_initializer_list = 235, + sym_initializer_pair = 236, + sym_subscript_designator = 237, + sym_field_designator = 238, + sym_char_literal = 239, + sym_concatenated_string = 240, + sym_string_literal = 241, + sym__empty_declaration = 242, + sym_macro_type_specifier = 243, + aux_sym_translation_unit_repeat1 = 244, + aux_sym_preproc_params_repeat1 = 245, + aux_sym_preproc_if_in_field_declaration_list_repeat1 = 246, + aux_sym_preproc_argument_list_repeat1 = 247, + aux_sym_declaration_repeat1 = 248, + aux_sym_type_definition_repeat1 = 249, + aux_sym_type_definition_repeat2 = 250, + aux_sym__declaration_specifiers_repeat1 = 251, + aux_sym_attribute_declaration_repeat1 = 252, + aux_sym_attributed_declarator_repeat1 = 253, + aux_sym_pointer_declarator_repeat1 = 254, + aux_sym_function_declarator_repeat1 = 255, + aux_sym_sized_type_specifier_repeat1 = 256, + aux_sym_enumerator_list_repeat1 = 257, + aux_sym_field_declaration_repeat1 = 258, + aux_sym_parameter_list_repeat1 = 259, + aux_sym_case_statement_repeat1 = 260, + aux_sym_argument_list_repeat1 = 261, + aux_sym_initializer_list_repeat1 = 262, + aux_sym_initializer_pair_repeat1 = 263, + aux_sym_concatenated_string_repeat1 = 264, + aux_sym_string_literal_repeat1 = 265, + alias_sym_field_identifier = 266, + alias_sym_statement_identifier = 267, + alias_sym_type_identifier = 268, +}; + +static const char * const ts_symbol_names[] = { + [ts_builtin_sym_end] = "end", + [sym_identifier] = "identifier", + [aux_sym_preproc_include_token1] = "#include", + [anon_sym_LF] = "\n", + [aux_sym_preproc_def_token1] = "#define", + [anon_sym_LPAREN] = "(", + [anon_sym_DOT_DOT_DOT] = "...", + [anon_sym_COMMA] = ",", + [anon_sym_RPAREN] = ")", + [aux_sym_preproc_if_token1] = "#if", + [aux_sym_preproc_if_token2] = "#endif", + [aux_sym_preproc_ifdef_token1] = "#ifdef", + [aux_sym_preproc_ifdef_token2] = "#ifndef", + [aux_sym_preproc_else_token1] = "#else", + [aux_sym_preproc_elif_token1] = "#elif", + [sym_preproc_directive] = "preproc_directive", + [sym_preproc_arg] = "preproc_arg", + [anon_sym_LPAREN2] = "(", + [anon_sym_defined] = "defined", + [anon_sym_BANG] = "!", + [anon_sym_TILDE] = "~", + [anon_sym_DASH] = "-", + [anon_sym_PLUS] = "+", + [anon_sym_STAR] = "*", + [anon_sym_SLASH] = "/", + [anon_sym_PERCENT] = "%", + [anon_sym_PIPE_PIPE] = "||", + [anon_sym_AMP_AMP] = "&&", + [anon_sym_PIPE] = "|", + [anon_sym_CARET] = "^", + [anon_sym_AMP] = "&", + [anon_sym_EQ_EQ] = "==", + [anon_sym_BANG_EQ] = "!=", + [anon_sym_GT] = ">", + [anon_sym_GT_EQ] = ">=", + [anon_sym_LT_EQ] = "<=", + [anon_sym_LT] = "<", + [anon_sym_LT_LT] = "<<", + [anon_sym_GT_GT] = ">>", + [anon_sym_SEMI] = ";", + [anon_sym_typedef] = "typedef", + [anon_sym_extern] = "extern", + [anon_sym___attribute__] = "__attribute__", + [anon_sym_COLON_COLON] = "::", + [anon_sym_LBRACK_LBRACK] = "[[", + [anon_sym_RBRACK_RBRACK] = "]]", + [anon_sym___declspec] = "__declspec", + [anon_sym___based] = "__based", + [anon_sym___cdecl] = "__cdecl", + [anon_sym___clrcall] = "__clrcall", + [anon_sym___stdcall] = "__stdcall", + [anon_sym___fastcall] = "__fastcall", + [anon_sym___thiscall] = "__thiscall", + [anon_sym___vectorcall] = "__vectorcall", + [sym_ms_restrict_modifier] = "ms_restrict_modifier", + [sym_ms_unsigned_ptr_modifier] = "ms_unsigned_ptr_modifier", + [sym_ms_signed_ptr_modifier] = "ms_signed_ptr_modifier", + [anon_sym__unaligned] = "_unaligned", + [anon_sym___unaligned] = "__unaligned", + [anon_sym_LBRACE] = "{", + [anon_sym_RBRACE] = "}", + [anon_sym_LBRACK] = "[", + [anon_sym_RBRACK] = "]", + [anon_sym_EQ] = "=", + [anon_sym_static] = "static", + [anon_sym_auto] = "auto", + [anon_sym_register] = "register", + [anon_sym_inline] = "inline", + [anon_sym_const] = "const", + [anon_sym_volatile] = "volatile", + [anon_sym_restrict] = "restrict", + [anon_sym__Atomic] = "_Atomic", + [anon_sym_signed] = "signed", + [anon_sym_unsigned] = "unsigned", + [anon_sym_long] = "long", + [anon_sym_short] = "short", + [sym_primitive_type] = "primitive_type", + [anon_sym_enum] = "enum", + [anon_sym_struct] = "struct", + [anon_sym_union] = "union", + [anon_sym_COLON] = ":", + [anon_sym_if] = "if", + [anon_sym_else] = "else", + [anon_sym_switch] = "switch", + [anon_sym_case] = "case", + [anon_sym_default] = "default", + [anon_sym_while] = "while", + [anon_sym_do] = "do", + [anon_sym_for] = "for", + [anon_sym_return] = "return", + [anon_sym_break] = "break", + [anon_sym_continue] = "continue", + [anon_sym_goto] = "goto", + [anon_sym_QMARK] = "\?", + [anon_sym_STAR_EQ] = "*=", + [anon_sym_SLASH_EQ] = "/=", + [anon_sym_PERCENT_EQ] = "%=", + [anon_sym_PLUS_EQ] = "+=", + [anon_sym_DASH_EQ] = "-=", + [anon_sym_LT_LT_EQ] = "<<=", + [anon_sym_GT_GT_EQ] = ">>=", + [anon_sym_AMP_EQ] = "&=", + [anon_sym_CARET_EQ] = "^=", + [anon_sym_PIPE_EQ] = "|=", + [anon_sym_DASH_DASH] = "--", + [anon_sym_PLUS_PLUS] = "++", + [anon_sym_sizeof] = "sizeof", + [anon_sym_DOT] = ".", + [anon_sym_DASH_GT] = "->", + [sym_number_literal] = "number_literal", + [anon_sym_L_SQUOTE] = "L'", + [anon_sym_u_SQUOTE] = "u'", + [anon_sym_U_SQUOTE] = "U'", + [anon_sym_u8_SQUOTE] = "u8'", + [anon_sym_SQUOTE] = "'", + [aux_sym_char_literal_token1] = "char_literal_token1", + [anon_sym_L_DQUOTE] = "L\"", + [anon_sym_u_DQUOTE] = "u\"", + [anon_sym_U_DQUOTE] = "U\"", + [anon_sym_u8_DQUOTE] = "u8\"", + [anon_sym_DQUOTE] = "\"", + [aux_sym_string_literal_token1] = "string_literal_token1", + [sym_escape_sequence] = "escape_sequence", + [sym_system_lib_string] = "system_lib_string", + [sym_true] = "true", + [sym_false] = "false", + [sym_null] = "null", + [sym_comment] = "comment", + [sym_translation_unit] = "translation_unit", + [sym_preproc_include] = "preproc_include", + [sym_preproc_def] = "preproc_def", + [sym_preproc_function_def] = "preproc_function_def", + [sym_preproc_params] = "preproc_params", + [sym_preproc_call] = "preproc_call", + [sym_preproc_if] = "preproc_if", + [sym_preproc_ifdef] = "preproc_ifdef", + [sym_preproc_else] = "preproc_else", + [sym_preproc_elif] = "preproc_elif", + [sym_preproc_if_in_field_declaration_list] = "preproc_if", + [sym_preproc_ifdef_in_field_declaration_list] = "preproc_ifdef", + [sym_preproc_else_in_field_declaration_list] = "preproc_else", + [sym_preproc_elif_in_field_declaration_list] = "preproc_elif", + [sym__preproc_expression] = "_preproc_expression", + [sym_preproc_parenthesized_expression] = "parenthesized_expression", + [sym_preproc_defined] = "preproc_defined", + [sym_preproc_unary_expression] = "unary_expression", + [sym_preproc_call_expression] = "call_expression", + [sym_preproc_argument_list] = "argument_list", + [sym_preproc_binary_expression] = "binary_expression", + [sym_function_definition] = "function_definition", + [sym_declaration] = "declaration", + [sym_type_definition] = "type_definition", + [sym__declaration_modifiers] = "_declaration_modifiers", + [sym__declaration_specifiers] = "_declaration_specifiers", + [sym_linkage_specification] = "linkage_specification", + [sym_attribute_specifier] = "attribute_specifier", + [sym_attribute] = "attribute", + [sym_attribute_declaration] = "attribute_declaration", + [sym_ms_declspec_modifier] = "ms_declspec_modifier", + [sym_ms_based_modifier] = "ms_based_modifier", + [sym_ms_call_modifier] = "ms_call_modifier", + [sym_ms_unaligned_ptr_modifier] = "ms_unaligned_ptr_modifier", + [sym_ms_pointer_modifier] = "ms_pointer_modifier", + [sym_declaration_list] = "declaration_list", + [sym__declarator] = "_declarator", + [sym__field_declarator] = "_field_declarator", + [sym__type_declarator] = "_type_declarator", + [sym__abstract_declarator] = "_abstract_declarator", + [sym_parenthesized_declarator] = "parenthesized_declarator", + [sym_parenthesized_field_declarator] = "parenthesized_declarator", + [sym_parenthesized_type_declarator] = "parenthesized_declarator", + [sym_abstract_parenthesized_declarator] = "abstract_parenthesized_declarator", + [sym_attributed_declarator] = "attributed_declarator", + [sym_attributed_field_declarator] = "attributed_declarator", + [sym_attributed_type_declarator] = "attributed_declarator", + [sym_pointer_declarator] = "pointer_declarator", + [sym_pointer_field_declarator] = "pointer_declarator", + [sym_pointer_type_declarator] = "pointer_declarator", + [sym_abstract_pointer_declarator] = "abstract_pointer_declarator", + [sym_function_declarator] = "function_declarator", + [sym_function_field_declarator] = "function_declarator", + [sym_function_type_declarator] = "function_declarator", + [sym_abstract_function_declarator] = "abstract_function_declarator", + [sym_array_declarator] = "array_declarator", + [sym_array_field_declarator] = "array_declarator", + [sym_array_type_declarator] = "array_declarator", + [sym_abstract_array_declarator] = "abstract_array_declarator", + [sym_init_declarator] = "init_declarator", + [sym_compound_statement] = "compound_statement", + [sym_storage_class_specifier] = "storage_class_specifier", + [sym_type_qualifier] = "type_qualifier", + [sym__type_specifier] = "_type_specifier", + [sym_sized_type_specifier] = "sized_type_specifier", + [sym_enum_specifier] = "enum_specifier", + [sym_enumerator_list] = "enumerator_list", + [sym_struct_specifier] = "struct_specifier", + [sym_union_specifier] = "union_specifier", + [sym_field_declaration_list] = "field_declaration_list", + [sym__field_declaration_list_item] = "_field_declaration_list_item", + [sym_field_declaration] = "field_declaration", + [sym_bitfield_clause] = "bitfield_clause", + [sym_enumerator] = "enumerator", + [sym_variadic_parameter] = "variadic_parameter", + [sym_parameter_list] = "parameter_list", + [sym_parameter_declaration] = "parameter_declaration", + [sym_attributed_statement] = "attributed_statement", + [sym_labeled_statement] = "labeled_statement", + [sym_expression_statement] = "expression_statement", + [sym_if_statement] = "if_statement", + [sym_switch_statement] = "switch_statement", + [sym_case_statement] = "case_statement", + [sym_while_statement] = "while_statement", + [sym_do_statement] = "do_statement", + [sym_for_statement] = "for_statement", + [sym_return_statement] = "return_statement", + [sym_break_statement] = "break_statement", + [sym_continue_statement] = "continue_statement", + [sym_goto_statement] = "goto_statement", + [sym__expression] = "_expression", + [sym_comma_expression] = "comma_expression", + [sym_conditional_expression] = "conditional_expression", + [sym_assignment_expression] = "assignment_expression", + [sym_pointer_expression] = "pointer_expression", + [sym_unary_expression] = "unary_expression", + [sym_binary_expression] = "binary_expression", + [sym_update_expression] = "update_expression", + [sym_cast_expression] = "cast_expression", + [sym_type_descriptor] = "type_descriptor", + [sym_sizeof_expression] = "sizeof_expression", + [sym_subscript_expression] = "subscript_expression", + [sym_call_expression] = "call_expression", + [sym_argument_list] = "argument_list", + [sym_field_expression] = "field_expression", + [sym_compound_literal_expression] = "compound_literal_expression", + [sym_parenthesized_expression] = "parenthesized_expression", + [sym_initializer_list] = "initializer_list", + [sym_initializer_pair] = "initializer_pair", + [sym_subscript_designator] = "subscript_designator", + [sym_field_designator] = "field_designator", + [sym_char_literal] = "char_literal", + [sym_concatenated_string] = "concatenated_string", + [sym_string_literal] = "string_literal", + [sym__empty_declaration] = "_empty_declaration", + [sym_macro_type_specifier] = "macro_type_specifier", + [aux_sym_translation_unit_repeat1] = "translation_unit_repeat1", + [aux_sym_preproc_params_repeat1] = "preproc_params_repeat1", + [aux_sym_preproc_if_in_field_declaration_list_repeat1] = "preproc_if_in_field_declaration_list_repeat1", + [aux_sym_preproc_argument_list_repeat1] = "preproc_argument_list_repeat1", + [aux_sym_declaration_repeat1] = "declaration_repeat1", + [aux_sym_type_definition_repeat1] = "type_definition_repeat1", + [aux_sym_type_definition_repeat2] = "type_definition_repeat2", + [aux_sym__declaration_specifiers_repeat1] = "_declaration_specifiers_repeat1", + [aux_sym_attribute_declaration_repeat1] = "attribute_declaration_repeat1", + [aux_sym_attributed_declarator_repeat1] = "attributed_declarator_repeat1", + [aux_sym_pointer_declarator_repeat1] = "pointer_declarator_repeat1", + [aux_sym_function_declarator_repeat1] = "function_declarator_repeat1", + [aux_sym_sized_type_specifier_repeat1] = "sized_type_specifier_repeat1", + [aux_sym_enumerator_list_repeat1] = "enumerator_list_repeat1", + [aux_sym_field_declaration_repeat1] = "field_declaration_repeat1", + [aux_sym_parameter_list_repeat1] = "parameter_list_repeat1", + [aux_sym_case_statement_repeat1] = "case_statement_repeat1", + [aux_sym_argument_list_repeat1] = "argument_list_repeat1", + [aux_sym_initializer_list_repeat1] = "initializer_list_repeat1", + [aux_sym_initializer_pair_repeat1] = "initializer_pair_repeat1", + [aux_sym_concatenated_string_repeat1] = "concatenated_string_repeat1", + [aux_sym_string_literal_repeat1] = "string_literal_repeat1", + [alias_sym_field_identifier] = "field_identifier", + [alias_sym_statement_identifier] = "statement_identifier", + [alias_sym_type_identifier] = "type_identifier", +}; + +static const TSSymbol ts_symbol_map[] = { + [ts_builtin_sym_end] = ts_builtin_sym_end, + [sym_identifier] = sym_identifier, + [aux_sym_preproc_include_token1] = aux_sym_preproc_include_token1, + [anon_sym_LF] = anon_sym_LF, + [aux_sym_preproc_def_token1] = aux_sym_preproc_def_token1, + [anon_sym_LPAREN] = anon_sym_LPAREN, + [anon_sym_DOT_DOT_DOT] = anon_sym_DOT_DOT_DOT, + [anon_sym_COMMA] = anon_sym_COMMA, + [anon_sym_RPAREN] = anon_sym_RPAREN, + [aux_sym_preproc_if_token1] = aux_sym_preproc_if_token1, + [aux_sym_preproc_if_token2] = aux_sym_preproc_if_token2, + [aux_sym_preproc_ifdef_token1] = aux_sym_preproc_ifdef_token1, + [aux_sym_preproc_ifdef_token2] = aux_sym_preproc_ifdef_token2, + [aux_sym_preproc_else_token1] = aux_sym_preproc_else_token1, + [aux_sym_preproc_elif_token1] = aux_sym_preproc_elif_token1, + [sym_preproc_directive] = sym_preproc_directive, + [sym_preproc_arg] = sym_preproc_arg, + [anon_sym_LPAREN2] = anon_sym_LPAREN, + [anon_sym_defined] = anon_sym_defined, + [anon_sym_BANG] = anon_sym_BANG, + [anon_sym_TILDE] = anon_sym_TILDE, + [anon_sym_DASH] = anon_sym_DASH, + [anon_sym_PLUS] = anon_sym_PLUS, + [anon_sym_STAR] = anon_sym_STAR, + [anon_sym_SLASH] = anon_sym_SLASH, + [anon_sym_PERCENT] = anon_sym_PERCENT, + [anon_sym_PIPE_PIPE] = anon_sym_PIPE_PIPE, + [anon_sym_AMP_AMP] = anon_sym_AMP_AMP, + [anon_sym_PIPE] = anon_sym_PIPE, + [anon_sym_CARET] = anon_sym_CARET, + [anon_sym_AMP] = anon_sym_AMP, + [anon_sym_EQ_EQ] = anon_sym_EQ_EQ, + [anon_sym_BANG_EQ] = anon_sym_BANG_EQ, + [anon_sym_GT] = anon_sym_GT, + [anon_sym_GT_EQ] = anon_sym_GT_EQ, + [anon_sym_LT_EQ] = anon_sym_LT_EQ, + [anon_sym_LT] = anon_sym_LT, + [anon_sym_LT_LT] = anon_sym_LT_LT, + [anon_sym_GT_GT] = anon_sym_GT_GT, + [anon_sym_SEMI] = anon_sym_SEMI, + [anon_sym_typedef] = anon_sym_typedef, + [anon_sym_extern] = anon_sym_extern, + [anon_sym___attribute__] = anon_sym___attribute__, + [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, + [anon_sym_LBRACK_LBRACK] = anon_sym_LBRACK_LBRACK, + [anon_sym_RBRACK_RBRACK] = anon_sym_RBRACK_RBRACK, + [anon_sym___declspec] = anon_sym___declspec, + [anon_sym___based] = anon_sym___based, + [anon_sym___cdecl] = anon_sym___cdecl, + [anon_sym___clrcall] = anon_sym___clrcall, + [anon_sym___stdcall] = anon_sym___stdcall, + [anon_sym___fastcall] = anon_sym___fastcall, + [anon_sym___thiscall] = anon_sym___thiscall, + [anon_sym___vectorcall] = anon_sym___vectorcall, + [sym_ms_restrict_modifier] = sym_ms_restrict_modifier, + [sym_ms_unsigned_ptr_modifier] = sym_ms_unsigned_ptr_modifier, + [sym_ms_signed_ptr_modifier] = sym_ms_signed_ptr_modifier, + [anon_sym__unaligned] = anon_sym__unaligned, + [anon_sym___unaligned] = anon_sym___unaligned, + [anon_sym_LBRACE] = anon_sym_LBRACE, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_LBRACK] = anon_sym_LBRACK, + [anon_sym_RBRACK] = anon_sym_RBRACK, + [anon_sym_EQ] = anon_sym_EQ, + [anon_sym_static] = anon_sym_static, + [anon_sym_auto] = anon_sym_auto, + [anon_sym_register] = anon_sym_register, + [anon_sym_inline] = anon_sym_inline, + [anon_sym_const] = anon_sym_const, + [anon_sym_volatile] = anon_sym_volatile, + [anon_sym_restrict] = anon_sym_restrict, + [anon_sym__Atomic] = anon_sym__Atomic, + [anon_sym_signed] = anon_sym_signed, + [anon_sym_unsigned] = anon_sym_unsigned, + [anon_sym_long] = anon_sym_long, + [anon_sym_short] = anon_sym_short, + [sym_primitive_type] = sym_primitive_type, + [anon_sym_enum] = anon_sym_enum, + [anon_sym_struct] = anon_sym_struct, + [anon_sym_union] = anon_sym_union, + [anon_sym_COLON] = anon_sym_COLON, + [anon_sym_if] = anon_sym_if, + [anon_sym_else] = anon_sym_else, + [anon_sym_switch] = anon_sym_switch, + [anon_sym_case] = anon_sym_case, + [anon_sym_default] = anon_sym_default, + [anon_sym_while] = anon_sym_while, + [anon_sym_do] = anon_sym_do, + [anon_sym_for] = anon_sym_for, + [anon_sym_return] = anon_sym_return, + [anon_sym_break] = anon_sym_break, + [anon_sym_continue] = anon_sym_continue, + [anon_sym_goto] = anon_sym_goto, + [anon_sym_QMARK] = anon_sym_QMARK, + [anon_sym_STAR_EQ] = anon_sym_STAR_EQ, + [anon_sym_SLASH_EQ] = anon_sym_SLASH_EQ, + [anon_sym_PERCENT_EQ] = anon_sym_PERCENT_EQ, + [anon_sym_PLUS_EQ] = anon_sym_PLUS_EQ, + [anon_sym_DASH_EQ] = anon_sym_DASH_EQ, + [anon_sym_LT_LT_EQ] = anon_sym_LT_LT_EQ, + [anon_sym_GT_GT_EQ] = anon_sym_GT_GT_EQ, + [anon_sym_AMP_EQ] = anon_sym_AMP_EQ, + [anon_sym_CARET_EQ] = anon_sym_CARET_EQ, + [anon_sym_PIPE_EQ] = anon_sym_PIPE_EQ, + [anon_sym_DASH_DASH] = anon_sym_DASH_DASH, + [anon_sym_PLUS_PLUS] = anon_sym_PLUS_PLUS, + [anon_sym_sizeof] = anon_sym_sizeof, + [anon_sym_DOT] = anon_sym_DOT, + [anon_sym_DASH_GT] = anon_sym_DASH_GT, + [sym_number_literal] = sym_number_literal, + [anon_sym_L_SQUOTE] = anon_sym_L_SQUOTE, + [anon_sym_u_SQUOTE] = anon_sym_u_SQUOTE, + [anon_sym_U_SQUOTE] = anon_sym_U_SQUOTE, + [anon_sym_u8_SQUOTE] = anon_sym_u8_SQUOTE, + [anon_sym_SQUOTE] = anon_sym_SQUOTE, + [aux_sym_char_literal_token1] = aux_sym_char_literal_token1, + [anon_sym_L_DQUOTE] = anon_sym_L_DQUOTE, + [anon_sym_u_DQUOTE] = anon_sym_u_DQUOTE, + [anon_sym_U_DQUOTE] = anon_sym_U_DQUOTE, + [anon_sym_u8_DQUOTE] = anon_sym_u8_DQUOTE, + [anon_sym_DQUOTE] = anon_sym_DQUOTE, + [aux_sym_string_literal_token1] = aux_sym_string_literal_token1, + [sym_escape_sequence] = sym_escape_sequence, + [sym_system_lib_string] = sym_system_lib_string, + [sym_true] = sym_true, + [sym_false] = sym_false, + [sym_null] = sym_null, + [sym_comment] = sym_comment, + [sym_translation_unit] = sym_translation_unit, + [sym_preproc_include] = sym_preproc_include, + [sym_preproc_def] = sym_preproc_def, + [sym_preproc_function_def] = sym_preproc_function_def, + [sym_preproc_params] = sym_preproc_params, + [sym_preproc_call] = sym_preproc_call, + [sym_preproc_if] = sym_preproc_if, + [sym_preproc_ifdef] = sym_preproc_ifdef, + [sym_preproc_else] = sym_preproc_else, + [sym_preproc_elif] = sym_preproc_elif, + [sym_preproc_if_in_field_declaration_list] = sym_preproc_if, + [sym_preproc_ifdef_in_field_declaration_list] = sym_preproc_ifdef, + [sym_preproc_else_in_field_declaration_list] = sym_preproc_else, + [sym_preproc_elif_in_field_declaration_list] = sym_preproc_elif, + [sym__preproc_expression] = sym__preproc_expression, + [sym_preproc_parenthesized_expression] = sym_parenthesized_expression, + [sym_preproc_defined] = sym_preproc_defined, + [sym_preproc_unary_expression] = sym_unary_expression, + [sym_preproc_call_expression] = sym_call_expression, + [sym_preproc_argument_list] = sym_argument_list, + [sym_preproc_binary_expression] = sym_binary_expression, + [sym_function_definition] = sym_function_definition, + [sym_declaration] = sym_declaration, + [sym_type_definition] = sym_type_definition, + [sym__declaration_modifiers] = sym__declaration_modifiers, + [sym__declaration_specifiers] = sym__declaration_specifiers, + [sym_linkage_specification] = sym_linkage_specification, + [sym_attribute_specifier] = sym_attribute_specifier, + [sym_attribute] = sym_attribute, + [sym_attribute_declaration] = sym_attribute_declaration, + [sym_ms_declspec_modifier] = sym_ms_declspec_modifier, + [sym_ms_based_modifier] = sym_ms_based_modifier, + [sym_ms_call_modifier] = sym_ms_call_modifier, + [sym_ms_unaligned_ptr_modifier] = sym_ms_unaligned_ptr_modifier, + [sym_ms_pointer_modifier] = sym_ms_pointer_modifier, + [sym_declaration_list] = sym_declaration_list, + [sym__declarator] = sym__declarator, + [sym__field_declarator] = sym__field_declarator, + [sym__type_declarator] = sym__type_declarator, + [sym__abstract_declarator] = sym__abstract_declarator, + [sym_parenthesized_declarator] = sym_parenthesized_declarator, + [sym_parenthesized_field_declarator] = sym_parenthesized_declarator, + [sym_parenthesized_type_declarator] = sym_parenthesized_declarator, + [sym_abstract_parenthesized_declarator] = sym_abstract_parenthesized_declarator, + [sym_attributed_declarator] = sym_attributed_declarator, + [sym_attributed_field_declarator] = sym_attributed_declarator, + [sym_attributed_type_declarator] = sym_attributed_declarator, + [sym_pointer_declarator] = sym_pointer_declarator, + [sym_pointer_field_declarator] = sym_pointer_declarator, + [sym_pointer_type_declarator] = sym_pointer_declarator, + [sym_abstract_pointer_declarator] = sym_abstract_pointer_declarator, + [sym_function_declarator] = sym_function_declarator, + [sym_function_field_declarator] = sym_function_declarator, + [sym_function_type_declarator] = sym_function_declarator, + [sym_abstract_function_declarator] = sym_abstract_function_declarator, + [sym_array_declarator] = sym_array_declarator, + [sym_array_field_declarator] = sym_array_declarator, + [sym_array_type_declarator] = sym_array_declarator, + [sym_abstract_array_declarator] = sym_abstract_array_declarator, + [sym_init_declarator] = sym_init_declarator, + [sym_compound_statement] = sym_compound_statement, + [sym_storage_class_specifier] = sym_storage_class_specifier, + [sym_type_qualifier] = sym_type_qualifier, + [sym__type_specifier] = sym__type_specifier, + [sym_sized_type_specifier] = sym_sized_type_specifier, + [sym_enum_specifier] = sym_enum_specifier, + [sym_enumerator_list] = sym_enumerator_list, + [sym_struct_specifier] = sym_struct_specifier, + [sym_union_specifier] = sym_union_specifier, + [sym_field_declaration_list] = sym_field_declaration_list, + [sym__field_declaration_list_item] = sym__field_declaration_list_item, + [sym_field_declaration] = sym_field_declaration, + [sym_bitfield_clause] = sym_bitfield_clause, + [sym_enumerator] = sym_enumerator, + [sym_variadic_parameter] = sym_variadic_parameter, + [sym_parameter_list] = sym_parameter_list, + [sym_parameter_declaration] = sym_parameter_declaration, + [sym_attributed_statement] = sym_attributed_statement, + [sym_labeled_statement] = sym_labeled_statement, + [sym_expression_statement] = sym_expression_statement, + [sym_if_statement] = sym_if_statement, + [sym_switch_statement] = sym_switch_statement, + [sym_case_statement] = sym_case_statement, + [sym_while_statement] = sym_while_statement, + [sym_do_statement] = sym_do_statement, + [sym_for_statement] = sym_for_statement, + [sym_return_statement] = sym_return_statement, + [sym_break_statement] = sym_break_statement, + [sym_continue_statement] = sym_continue_statement, + [sym_goto_statement] = sym_goto_statement, + [sym__expression] = sym__expression, + [sym_comma_expression] = sym_comma_expression, + [sym_conditional_expression] = sym_conditional_expression, + [sym_assignment_expression] = sym_assignment_expression, + [sym_pointer_expression] = sym_pointer_expression, + [sym_unary_expression] = sym_unary_expression, + [sym_binary_expression] = sym_binary_expression, + [sym_update_expression] = sym_update_expression, + [sym_cast_expression] = sym_cast_expression, + [sym_type_descriptor] = sym_type_descriptor, + [sym_sizeof_expression] = sym_sizeof_expression, + [sym_subscript_expression] = sym_subscript_expression, + [sym_call_expression] = sym_call_expression, + [sym_argument_list] = sym_argument_list, + [sym_field_expression] = sym_field_expression, + [sym_compound_literal_expression] = sym_compound_literal_expression, + [sym_parenthesized_expression] = sym_parenthesized_expression, + [sym_initializer_list] = sym_initializer_list, + [sym_initializer_pair] = sym_initializer_pair, + [sym_subscript_designator] = sym_subscript_designator, + [sym_field_designator] = sym_field_designator, + [sym_char_literal] = sym_char_literal, + [sym_concatenated_string] = sym_concatenated_string, + [sym_string_literal] = sym_string_literal, + [sym__empty_declaration] = sym__empty_declaration, + [sym_macro_type_specifier] = sym_macro_type_specifier, + [aux_sym_translation_unit_repeat1] = aux_sym_translation_unit_repeat1, + [aux_sym_preproc_params_repeat1] = aux_sym_preproc_params_repeat1, + [aux_sym_preproc_if_in_field_declaration_list_repeat1] = aux_sym_preproc_if_in_field_declaration_list_repeat1, + [aux_sym_preproc_argument_list_repeat1] = aux_sym_preproc_argument_list_repeat1, + [aux_sym_declaration_repeat1] = aux_sym_declaration_repeat1, + [aux_sym_type_definition_repeat1] = aux_sym_type_definition_repeat1, + [aux_sym_type_definition_repeat2] = aux_sym_type_definition_repeat2, + [aux_sym__declaration_specifiers_repeat1] = aux_sym__declaration_specifiers_repeat1, + [aux_sym_attribute_declaration_repeat1] = aux_sym_attribute_declaration_repeat1, + [aux_sym_attributed_declarator_repeat1] = aux_sym_attributed_declarator_repeat1, + [aux_sym_pointer_declarator_repeat1] = aux_sym_pointer_declarator_repeat1, + [aux_sym_function_declarator_repeat1] = aux_sym_function_declarator_repeat1, + [aux_sym_sized_type_specifier_repeat1] = aux_sym_sized_type_specifier_repeat1, + [aux_sym_enumerator_list_repeat1] = aux_sym_enumerator_list_repeat1, + [aux_sym_field_declaration_repeat1] = aux_sym_field_declaration_repeat1, + [aux_sym_parameter_list_repeat1] = aux_sym_parameter_list_repeat1, + [aux_sym_case_statement_repeat1] = aux_sym_case_statement_repeat1, + [aux_sym_argument_list_repeat1] = aux_sym_argument_list_repeat1, + [aux_sym_initializer_list_repeat1] = aux_sym_initializer_list_repeat1, + [aux_sym_initializer_pair_repeat1] = aux_sym_initializer_pair_repeat1, + [aux_sym_concatenated_string_repeat1] = aux_sym_concatenated_string_repeat1, + [aux_sym_string_literal_repeat1] = aux_sym_string_literal_repeat1, + [alias_sym_field_identifier] = alias_sym_field_identifier, + [alias_sym_statement_identifier] = alias_sym_statement_identifier, + [alias_sym_type_identifier] = alias_sym_type_identifier, +}; + +static const TSSymbolMetadata ts_symbol_metadata[] = { + [ts_builtin_sym_end] = { + .visible = false, + .named = true, + }, + [sym_identifier] = { + .visible = true, + .named = true, + }, + [aux_sym_preproc_include_token1] = { + .visible = true, + .named = false, + }, + [anon_sym_LF] = { + .visible = true, + .named = false, + }, + [aux_sym_preproc_def_token1] = { + .visible = true, + .named = false, + }, + [anon_sym_LPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_DOT_DOT_DOT] = { + .visible = true, + .named = false, + }, + [anon_sym_COMMA] = { + .visible = true, + .named = false, + }, + [anon_sym_RPAREN] = { + .visible = true, + .named = false, + }, + [aux_sym_preproc_if_token1] = { + .visible = true, + .named = false, + }, + [aux_sym_preproc_if_token2] = { + .visible = true, + .named = false, + }, + [aux_sym_preproc_ifdef_token1] = { + .visible = true, + .named = false, + }, + [aux_sym_preproc_ifdef_token2] = { + .visible = true, + .named = false, + }, + [aux_sym_preproc_else_token1] = { + .visible = true, + .named = false, + }, + [aux_sym_preproc_elif_token1] = { + .visible = true, + .named = false, + }, + [sym_preproc_directive] = { + .visible = true, + .named = true, + }, + [sym_preproc_arg] = { + .visible = true, + .named = true, + }, + [anon_sym_LPAREN2] = { + .visible = true, + .named = false, + }, + [anon_sym_defined] = { + .visible = true, + .named = false, + }, + [anon_sym_BANG] = { + .visible = true, + .named = false, + }, + [anon_sym_TILDE] = { + .visible = true, + .named = false, + }, + [anon_sym_DASH] = { + .visible = true, + .named = false, + }, + [anon_sym_PLUS] = { + .visible = true, + .named = false, + }, + [anon_sym_STAR] = { + .visible = true, + .named = false, + }, + [anon_sym_SLASH] = { + .visible = true, + .named = false, + }, + [anon_sym_PERCENT] = { + .visible = true, + .named = false, + }, + [anon_sym_PIPE_PIPE] = { + .visible = true, + .named = false, + }, + [anon_sym_AMP_AMP] = { + .visible = true, + .named = false, + }, + [anon_sym_PIPE] = { + .visible = true, + .named = false, + }, + [anon_sym_CARET] = { + .visible = true, + .named = false, + }, + [anon_sym_AMP] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_BANG_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_GT] = { + .visible = true, + .named = false, + }, + [anon_sym_GT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_LT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_LT] = { + .visible = true, + .named = false, + }, + [anon_sym_LT_LT] = { + .visible = true, + .named = false, + }, + [anon_sym_GT_GT] = { + .visible = true, + .named = false, + }, + [anon_sym_SEMI] = { + .visible = true, + .named = false, + }, + [anon_sym_typedef] = { + .visible = true, + .named = false, + }, + [anon_sym_extern] = { + .visible = true, + .named = false, + }, + [anon_sym___attribute__] = { + .visible = true, + .named = false, + }, + [anon_sym_COLON_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACK_LBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACK_RBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym___declspec] = { + .visible = true, + .named = false, + }, + [anon_sym___based] = { + .visible = true, + .named = false, + }, + [anon_sym___cdecl] = { + .visible = true, + .named = false, + }, + [anon_sym___clrcall] = { + .visible = true, + .named = false, + }, + [anon_sym___stdcall] = { + .visible = true, + .named = false, + }, + [anon_sym___fastcall] = { + .visible = true, + .named = false, + }, + [anon_sym___thiscall] = { + .visible = true, + .named = false, + }, + [anon_sym___vectorcall] = { + .visible = true, + .named = false, + }, + [sym_ms_restrict_modifier] = { + .visible = true, + .named = true, + }, + [sym_ms_unsigned_ptr_modifier] = { + .visible = true, + .named = true, + }, + [sym_ms_signed_ptr_modifier] = { + .visible = true, + .named = true, + }, + [anon_sym__unaligned] = { + .visible = true, + .named = false, + }, + [anon_sym___unaligned] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_static] = { + .visible = true, + .named = false, + }, + [anon_sym_auto] = { + .visible = true, + .named = false, + }, + [anon_sym_register] = { + .visible = true, + .named = false, + }, + [anon_sym_inline] = { + .visible = true, + .named = false, + }, + [anon_sym_const] = { + .visible = true, + .named = false, + }, + [anon_sym_volatile] = { + .visible = true, + .named = false, + }, + [anon_sym_restrict] = { + .visible = true, + .named = false, + }, + [anon_sym__Atomic] = { + .visible = true, + .named = false, + }, + [anon_sym_signed] = { + .visible = true, + .named = false, + }, + [anon_sym_unsigned] = { + .visible = true, + .named = false, + }, + [anon_sym_long] = { + .visible = true, + .named = false, + }, + [anon_sym_short] = { + .visible = true, + .named = false, + }, + [sym_primitive_type] = { + .visible = true, + .named = true, + }, + [anon_sym_enum] = { + .visible = true, + .named = false, + }, + [anon_sym_struct] = { + .visible = true, + .named = false, + }, + [anon_sym_union] = { + .visible = true, + .named = false, + }, + [anon_sym_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_if] = { + .visible = true, + .named = false, + }, + [anon_sym_else] = { + .visible = true, + .named = false, + }, + [anon_sym_switch] = { + .visible = true, + .named = false, + }, + [anon_sym_case] = { + .visible = true, + .named = false, + }, + [anon_sym_default] = { + .visible = true, + .named = false, + }, + [anon_sym_while] = { + .visible = true, + .named = false, + }, + [anon_sym_do] = { + .visible = true, + .named = false, + }, + [anon_sym_for] = { + .visible = true, + .named = false, + }, + [anon_sym_return] = { + .visible = true, + .named = false, + }, + [anon_sym_break] = { + .visible = true, + .named = false, + }, + [anon_sym_continue] = { + .visible = true, + .named = false, + }, + [anon_sym_goto] = { + .visible = true, + .named = false, + }, + [anon_sym_QMARK] = { + .visible = true, + .named = false, + }, + [anon_sym_STAR_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_SLASH_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_PERCENT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_PLUS_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_DASH_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_LT_LT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_GT_GT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_AMP_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_CARET_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_PIPE_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_DASH_DASH] = { + .visible = true, + .named = false, + }, + [anon_sym_PLUS_PLUS] = { + .visible = true, + .named = false, + }, + [anon_sym_sizeof] = { + .visible = true, + .named = false, + }, + [anon_sym_DOT] = { + .visible = true, + .named = false, + }, + [anon_sym_DASH_GT] = { + .visible = true, + .named = false, + }, + [sym_number_literal] = { + .visible = true, + .named = true, + }, + [anon_sym_L_SQUOTE] = { + .visible = true, + .named = false, + }, + [anon_sym_u_SQUOTE] = { + .visible = true, + .named = false, + }, + [anon_sym_U_SQUOTE] = { + .visible = true, + .named = false, + }, + [anon_sym_u8_SQUOTE] = { + .visible = true, + .named = false, + }, + [anon_sym_SQUOTE] = { + .visible = true, + .named = false, + }, + [aux_sym_char_literal_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_L_DQUOTE] = { + .visible = true, + .named = false, + }, + [anon_sym_u_DQUOTE] = { + .visible = true, + .named = false, + }, + [anon_sym_U_DQUOTE] = { + .visible = true, + .named = false, + }, + [anon_sym_u8_DQUOTE] = { + .visible = true, + .named = false, + }, + [anon_sym_DQUOTE] = { + .visible = true, + .named = false, + }, + [aux_sym_string_literal_token1] = { + .visible = false, + .named = false, + }, + [sym_escape_sequence] = { + .visible = true, + .named = true, + }, + [sym_system_lib_string] = { + .visible = true, + .named = true, + }, + [sym_true] = { + .visible = true, + .named = true, + }, + [sym_false] = { + .visible = true, + .named = true, + }, + [sym_null] = { + .visible = true, + .named = true, + }, + [sym_comment] = { + .visible = true, + .named = true, + }, + [sym_translation_unit] = { + .visible = true, + .named = true, + }, + [sym_preproc_include] = { + .visible = true, + .named = true, + }, + [sym_preproc_def] = { + .visible = true, + .named = true, + }, + [sym_preproc_function_def] = { + .visible = true, + .named = true, + }, + [sym_preproc_params] = { + .visible = true, + .named = true, + }, + [sym_preproc_call] = { + .visible = true, + .named = true, + }, + [sym_preproc_if] = { + .visible = true, + .named = true, + }, + [sym_preproc_ifdef] = { + .visible = true, + .named = true, + }, + [sym_preproc_else] = { + .visible = true, + .named = true, + }, + [sym_preproc_elif] = { + .visible = true, + .named = true, + }, + [sym_preproc_if_in_field_declaration_list] = { + .visible = true, + .named = true, + }, + [sym_preproc_ifdef_in_field_declaration_list] = { + .visible = true, + .named = true, + }, + [sym_preproc_else_in_field_declaration_list] = { + .visible = true, + .named = true, + }, + [sym_preproc_elif_in_field_declaration_list] = { + .visible = true, + .named = true, + }, + [sym__preproc_expression] = { + .visible = false, + .named = true, + }, + [sym_preproc_parenthesized_expression] = { + .visible = true, + .named = true, + }, + [sym_preproc_defined] = { + .visible = true, + .named = true, + }, + [sym_preproc_unary_expression] = { + .visible = true, + .named = true, + }, + [sym_preproc_call_expression] = { + .visible = true, + .named = true, + }, + [sym_preproc_argument_list] = { + .visible = true, + .named = true, + }, + [sym_preproc_binary_expression] = { + .visible = true, + .named = true, + }, + [sym_function_definition] = { + .visible = true, + .named = true, + }, + [sym_declaration] = { + .visible = true, + .named = true, + }, + [sym_type_definition] = { + .visible = true, + .named = true, + }, + [sym__declaration_modifiers] = { + .visible = false, + .named = true, + }, + [sym__declaration_specifiers] = { + .visible = false, + .named = true, + }, + [sym_linkage_specification] = { + .visible = true, + .named = true, + }, + [sym_attribute_specifier] = { + .visible = true, + .named = true, + }, + [sym_attribute] = { + .visible = true, + .named = true, + }, + [sym_attribute_declaration] = { + .visible = true, + .named = true, + }, + [sym_ms_declspec_modifier] = { + .visible = true, + .named = true, + }, + [sym_ms_based_modifier] = { + .visible = true, + .named = true, + }, + [sym_ms_call_modifier] = { + .visible = true, + .named = true, + }, + [sym_ms_unaligned_ptr_modifier] = { + .visible = true, + .named = true, + }, + [sym_ms_pointer_modifier] = { + .visible = true, + .named = true, + }, + [sym_declaration_list] = { + .visible = true, + .named = true, + }, + [sym__declarator] = { + .visible = false, + .named = true, + .supertype = true, + }, + [sym__field_declarator] = { + .visible = false, + .named = true, + .supertype = true, + }, + [sym__type_declarator] = { + .visible = false, + .named = true, + .supertype = true, + }, + [sym__abstract_declarator] = { + .visible = false, + .named = true, + .supertype = true, + }, + [sym_parenthesized_declarator] = { + .visible = true, + .named = true, + }, + [sym_parenthesized_field_declarator] = { + .visible = true, + .named = true, + }, + [sym_parenthesized_type_declarator] = { + .visible = true, + .named = true, + }, + [sym_abstract_parenthesized_declarator] = { + .visible = true, + .named = true, + }, + [sym_attributed_declarator] = { + .visible = true, + .named = true, + }, + [sym_attributed_field_declarator] = { + .visible = true, + .named = true, + }, + [sym_attributed_type_declarator] = { + .visible = true, + .named = true, + }, + [sym_pointer_declarator] = { + .visible = true, + .named = true, + }, + [sym_pointer_field_declarator] = { + .visible = true, + .named = true, + }, + [sym_pointer_type_declarator] = { + .visible = true, + .named = true, + }, + [sym_abstract_pointer_declarator] = { + .visible = true, + .named = true, + }, + [sym_function_declarator] = { + .visible = true, + .named = true, + }, + [sym_function_field_declarator] = { + .visible = true, + .named = true, + }, + [sym_function_type_declarator] = { + .visible = true, + .named = true, + }, + [sym_abstract_function_declarator] = { + .visible = true, + .named = true, + }, + [sym_array_declarator] = { + .visible = true, + .named = true, + }, + [sym_array_field_declarator] = { + .visible = true, + .named = true, + }, + [sym_array_type_declarator] = { + .visible = true, + .named = true, + }, + [sym_abstract_array_declarator] = { + .visible = true, + .named = true, + }, + [sym_init_declarator] = { + .visible = true, + .named = true, + }, + [sym_compound_statement] = { + .visible = true, + .named = true, + }, + [sym_storage_class_specifier] = { + .visible = true, + .named = true, + }, + [sym_type_qualifier] = { + .visible = true, + .named = true, + }, + [sym__type_specifier] = { + .visible = false, + .named = true, + .supertype = true, + }, + [sym_sized_type_specifier] = { + .visible = true, + .named = true, + }, + [sym_enum_specifier] = { + .visible = true, + .named = true, + }, + [sym_enumerator_list] = { + .visible = true, + .named = true, + }, + [sym_struct_specifier] = { + .visible = true, + .named = true, + }, + [sym_union_specifier] = { + .visible = true, + .named = true, + }, + [sym_field_declaration_list] = { + .visible = true, + .named = true, + }, + [sym__field_declaration_list_item] = { + .visible = false, + .named = true, + }, + [sym_field_declaration] = { + .visible = true, + .named = true, + }, + [sym_bitfield_clause] = { + .visible = true, + .named = true, + }, + [sym_enumerator] = { + .visible = true, + .named = true, + }, + [sym_variadic_parameter] = { + .visible = true, + .named = true, + }, + [sym_parameter_list] = { + .visible = true, + .named = true, + }, + [sym_parameter_declaration] = { + .visible = true, + .named = true, + }, + [sym_attributed_statement] = { + .visible = true, + .named = true, + }, + [sym_labeled_statement] = { + .visible = true, + .named = true, + }, + [sym_expression_statement] = { + .visible = true, + .named = true, + }, + [sym_if_statement] = { + .visible = true, + .named = true, + }, + [sym_switch_statement] = { + .visible = true, + .named = true, + }, + [sym_case_statement] = { + .visible = true, + .named = true, + }, + [sym_while_statement] = { + .visible = true, + .named = true, + }, + [sym_do_statement] = { + .visible = true, + .named = true, + }, + [sym_for_statement] = { + .visible = true, + .named = true, + }, + [sym_return_statement] = { + .visible = true, + .named = true, + }, + [sym_break_statement] = { + .visible = true, + .named = true, + }, + [sym_continue_statement] = { + .visible = true, + .named = true, + }, + [sym_goto_statement] = { + .visible = true, + .named = true, + }, + [sym__expression] = { + .visible = false, + .named = true, + .supertype = true, + }, + [sym_comma_expression] = { + .visible = true, + .named = true, + }, + [sym_conditional_expression] = { + .visible = true, + .named = true, + }, + [sym_assignment_expression] = { + .visible = true, + .named = true, + }, + [sym_pointer_expression] = { + .visible = true, + .named = true, + }, + [sym_unary_expression] = { + .visible = true, + .named = true, + }, + [sym_binary_expression] = { + .visible = true, + .named = true, + }, + [sym_update_expression] = { + .visible = true, + .named = true, + }, + [sym_cast_expression] = { + .visible = true, + .named = true, + }, + [sym_type_descriptor] = { + .visible = true, + .named = true, + }, + [sym_sizeof_expression] = { + .visible = true, + .named = true, + }, + [sym_subscript_expression] = { + .visible = true, + .named = true, + }, + [sym_call_expression] = { + .visible = true, + .named = true, + }, + [sym_argument_list] = { + .visible = true, + .named = true, + }, + [sym_field_expression] = { + .visible = true, + .named = true, + }, + [sym_compound_literal_expression] = { + .visible = true, + .named = true, + }, + [sym_parenthesized_expression] = { + .visible = true, + .named = true, + }, + [sym_initializer_list] = { + .visible = true, + .named = true, + }, + [sym_initializer_pair] = { + .visible = true, + .named = true, + }, + [sym_subscript_designator] = { + .visible = true, + .named = true, + }, + [sym_field_designator] = { + .visible = true, + .named = true, + }, + [sym_char_literal] = { + .visible = true, + .named = true, + }, + [sym_concatenated_string] = { + .visible = true, + .named = true, + }, + [sym_string_literal] = { + .visible = true, + .named = true, + }, + [sym__empty_declaration] = { + .visible = false, + .named = true, + }, + [sym_macro_type_specifier] = { + .visible = true, + .named = true, + }, + [aux_sym_translation_unit_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_preproc_params_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_preproc_if_in_field_declaration_list_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_preproc_argument_list_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_declaration_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_type_definition_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_type_definition_repeat2] = { + .visible = false, + .named = false, + }, + [aux_sym__declaration_specifiers_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_attribute_declaration_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_attributed_declarator_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_pointer_declarator_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_function_declarator_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_sized_type_specifier_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_enumerator_list_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_field_declaration_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_parameter_list_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_case_statement_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_argument_list_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_initializer_list_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_initializer_pair_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_concatenated_string_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_string_literal_repeat1] = { + .visible = false, + .named = false, + }, + [alias_sym_field_identifier] = { + .visible = true, + .named = true, + }, + [alias_sym_statement_identifier] = { + .visible = true, + .named = true, + }, + [alias_sym_type_identifier] = { + .visible = true, + .named = true, + }, +}; + +enum { + field_alternative = 1, + field_argument = 2, + field_arguments = 3, + field_body = 4, + field_condition = 5, + field_consequence = 6, + field_declarator = 7, + field_designator = 8, + field_directive = 9, + field_field = 10, + field_function = 11, + field_index = 12, + field_initializer = 13, + field_label = 14, + field_left = 15, + field_name = 16, + field_operator = 17, + field_parameters = 18, + field_path = 19, + field_prefix = 20, + field_right = 21, + field_size = 22, + field_type = 23, + field_update = 24, + field_value = 25, +}; + +static const char * const ts_field_names[] = { + [0] = NULL, + [field_alternative] = "alternative", + [field_argument] = "argument", + [field_arguments] = "arguments", + [field_body] = "body", + [field_condition] = "condition", + [field_consequence] = "consequence", + [field_declarator] = "declarator", + [field_designator] = "designator", + [field_directive] = "directive", + [field_field] = "field", + [field_function] = "function", + [field_index] = "index", + [field_initializer] = "initializer", + [field_label] = "label", + [field_left] = "left", + [field_name] = "name", + [field_operator] = "operator", + [field_parameters] = "parameters", + [field_path] = "path", + [field_prefix] = "prefix", + [field_right] = "right", + [field_size] = "size", + [field_type] = "type", + [field_update] = "update", + [field_value] = "value", +}; + +static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { + [2] = {.index = 0, .length = 1}, + [3] = {.index = 1, .length = 1}, + [4] = {.index = 2, .length = 2}, + [5] = {.index = 4, .length = 1}, + [6] = {.index = 5, .length = 1}, + [7] = {.index = 6, .length = 1}, + [8] = {.index = 7, .length = 1}, + [9] = {.index = 8, .length = 2}, + [10] = {.index = 10, .length = 2}, + [11] = {.index = 12, .length = 1}, + [12] = {.index = 12, .length = 1}, + [13] = {.index = 13, .length = 1}, + [14] = {.index = 5, .length = 1}, + [15] = {.index = 14, .length = 2}, + [16] = {.index = 16, .length = 2}, + [17] = {.index = 18, .length = 1}, + [18] = {.index = 19, .length = 2}, + [19] = {.index = 21, .length = 2}, + [20] = {.index = 23, .length = 1}, + [21] = {.index = 24, .length = 1}, + [22] = {.index = 25, .length = 2}, + [23] = {.index = 27, .length = 2}, + [24] = {.index = 29, .length = 1}, + [25] = {.index = 30, .length = 3}, + [26] = {.index = 33, .length = 1}, + [27] = {.index = 34, .length = 1}, + [28] = {.index = 35, .length = 2}, + [29] = {.index = 37, .length = 3}, + [30] = {.index = 40, .length = 2}, + [31] = {.index = 42, .length = 2}, + [32] = {.index = 44, .length = 3}, + [33] = {.index = 47, .length = 2}, + [34] = {.index = 49, .length = 2}, + [35] = {.index = 51, .length = 1}, + [36] = {.index = 52, .length = 2}, + [37] = {.index = 54, .length = 1}, + [38] = {.index = 55, .length = 2}, + [39] = {.index = 57, .length = 2}, + [40] = {.index = 59, .length = 2}, + [41] = {.index = 61, .length = 2}, + [43] = {.index = 63, .length = 2}, + [44] = {.index = 65, .length = 1}, + [45] = {.index = 66, .length = 2}, + [46] = {.index = 68, .length = 1}, + [47] = {.index = 69, .length = 1}, + [48] = {.index = 70, .length = 2}, + [49] = {.index = 72, .length = 3}, + [50] = {.index = 75, .length = 2}, + [51] = {.index = 77, .length = 3}, + [52] = {.index = 80, .length = 2}, + [53] = {.index = 82, .length = 3}, + [54] = {.index = 85, .length = 2}, + [55] = {.index = 87, .length = 2}, + [56] = {.index = 89, .length = 1}, + [57] = {.index = 90, .length = 2}, + [58] = {.index = 92, .length = 3}, + [59] = {.index = 95, .length = 2}, + [60] = {.index = 97, .length = 2}, + [61] = {.index = 99, .length = 3}, + [62] = {.index = 102, .length = 2}, + [63] = {.index = 104, .length = 1}, + [64] = {.index = 105, .length = 2}, + [65] = {.index = 107, .length = 3}, + [66] = {.index = 110, .length = 2}, + [67] = {.index = 112, .length = 1}, + [69] = {.index = 113, .length = 3}, + [70] = {.index = 116, .length = 1}, + [71] = {.index = 117, .length = 2}, + [72] = {.index = 119, .length = 1}, + [73] = {.index = 120, .length = 2}, + [74] = {.index = 122, .length = 2}, + [75] = {.index = 124, .length = 2}, + [76] = {.index = 126, .length = 2}, + [77] = {.index = 128, .length = 3}, + [78] = {.index = 131, .length = 3}, + [79] = {.index = 134, .length = 2}, + [80] = {.index = 136, .length = 3}, + [81] = {.index = 139, .length = 4}, + [82] = {.index = 143, .length = 3}, + [83] = {.index = 146, .length = 3}, + [84] = {.index = 149, .length = 4}, +}; + +static const TSFieldMapEntry ts_field_map_entries[] = { + [0] = + {field_type, 0}, + [1] = + {field_directive, 0}, + [2] = + {field_argument, 1}, + {field_operator, 0}, + [4] = + {field_name, 0}, + [5] = + {field_name, 1}, + [6] = + {field_body, 1}, + [7] = + {field_value, 1}, + [8] = + {field_argument, 0}, + {field_operator, 1}, + [10] = + {field_arguments, 1}, + {field_function, 0}, + [12] = + {field_type, 1}, + [13] = + {field_path, 1}, + [14] = + {field_argument, 1}, + {field_directive, 0}, + [16] = + {field_declarator, 1}, + {field_type, 0}, + [18] = + {field_parameters, 0}, + [19] = + {field_body, 2}, + {field_value, 1}, + [21] = + {field_body, 2}, + {field_name, 1}, + [23] = + {field_name, 2}, + [24] = + {field_body, 2}, + [25] = + {field_condition, 1}, + {field_consequence, 2}, + [27] = + {field_body, 2}, + {field_condition, 1}, + [29] = + {field_label, 1}, + [30] = + {field_left, 0}, + {field_operator, 1}, + {field_right, 2}, + [33] = + {field_label, 0}, + [34] = + {field_declarator, 1}, + [35] = + {field_declarator, 1}, + {field_type, 0, .inherited = true}, + [37] = + {field_body, 2}, + {field_declarator, 1}, + {field_type, 0, .inherited = true}, + [40] = + {field_declarator, 0}, + {field_parameters, 1}, + [42] = + {field_left, 0}, + {field_right, 2}, + [44] = + {field_argument, 0}, + {field_field, 2}, + {field_operator, 1}, + [47] = + {field_name, 1}, + {field_value, 2}, + [49] = + {field_name, 1}, + {field_parameters, 2}, + [51] = + {field_condition, 1}, + [52] = + {field_alternative, 2}, + {field_name, 1}, + [54] = + {field_type, 0, .inherited = true}, + [55] = + {field_declarator, 2}, + {field_type, 0}, + [57] = + {field_type, 1}, + {field_value, 3}, + [59] = + {field_declarator, 2}, + {field_type, 1}, + [61] = + {field_name, 2}, + {field_prefix, 0}, + [63] = + {field_body, 3}, + {field_name, 2}, + [65] = + {field_type, 2}, + [66] = + {field_name, 0}, + {field_type, 2}, + [68] = + {field_declarator, 2}, + [69] = + {field_declarator, 0}, + [70] = + {field_declarator, 0}, + {field_value, 2}, + [72] = + {field_declarator, 1}, + {field_declarator, 2, .inherited = true}, + {field_type, 0, .inherited = true}, + [75] = + {field_declarator, 0, .inherited = true}, + {field_declarator, 1, .inherited = true}, + [77] = + {field_body, 3}, + {field_declarator, 2}, + {field_type, 1, .inherited = true}, + [80] = + {field_argument, 0}, + {field_index, 2}, + [82] = + {field_name, 1}, + {field_parameters, 2}, + {field_value, 3}, + [85] = + {field_alternative, 3}, + {field_condition, 1}, + [87] = + {field_alternative, 3}, + {field_name, 1}, + [89] = + {field_size, 1}, + [90] = + {field_declarator, 3}, + {field_type, 1}, + [92] = + {field_declarator, 2}, + {field_declarator, 3, .inherited = true}, + {field_type, 1}, + [95] = + {field_declarator, 3}, + {field_type, 2}, + [97] = + {field_name, 0}, + {field_value, 2}, + [99] = + {field_alternative, 4}, + {field_condition, 1}, + {field_consequence, 2}, + [102] = + {field_body, 1}, + {field_condition, 3}, + [104] = + {field_declarator, 3}, + [105] = + {field_declarator, 0}, + {field_size, 2}, + [107] = + {field_alternative, 4}, + {field_condition, 0}, + {field_consequence, 2}, + [110] = + {field_alternative, 4}, + {field_condition, 1}, + [112] = + {field_size, 2}, + [113] = + {field_declarator, 3}, + {field_declarator, 4, .inherited = true}, + {field_type, 2}, + [116] = + {field_body, 5}, + [117] = + {field_body, 5}, + {field_initializer, 2}, + [119] = + {field_declarator, 4}, + [120] = + {field_declarator, 0}, + {field_size, 3}, + [122] = + {field_designator, 0}, + {field_value, 2}, + [124] = + {field_body, 6}, + {field_update, 4}, + [126] = + {field_body, 6}, + {field_condition, 3}, + [128] = + {field_body, 6}, + {field_initializer, 2}, + {field_update, 4}, + [131] = + {field_body, 6}, + {field_condition, 3}, + {field_initializer, 2}, + [134] = + {field_body, 6}, + {field_initializer, 2}, + [136] = + {field_body, 7}, + {field_condition, 3}, + {field_update, 5}, + [139] = + {field_body, 7}, + {field_condition, 3}, + {field_initializer, 2}, + {field_update, 5}, + [143] = + {field_body, 7}, + {field_initializer, 2}, + {field_update, 5}, + [146] = + {field_body, 7}, + {field_condition, 4}, + {field_initializer, 2}, + [149] = + {field_body, 8}, + {field_condition, 4}, + {field_initializer, 2}, + {field_update, 6}, +}; + +static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { + [0] = {0}, + [1] = { + [0] = alias_sym_type_identifier, + }, + [6] = { + [1] = alias_sym_type_identifier, + }, + [12] = { + [1] = alias_sym_type_identifier, + }, + [19] = { + [1] = alias_sym_type_identifier, + }, + [20] = { + [2] = alias_sym_type_identifier, + }, + [24] = { + [1] = alias_sym_statement_identifier, + }, + [26] = { + [0] = alias_sym_statement_identifier, + }, + [32] = { + [2] = alias_sym_field_identifier, + }, + [42] = { + [0] = alias_sym_field_identifier, + }, + [43] = { + [2] = alias_sym_type_identifier, + }, + [68] = { + [1] = alias_sym_field_identifier, + }, +}; + +static const uint16_t ts_non_terminal_alias_map[] = { + 0, +}; + +static bool ts_lex(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (eof) ADVANCE(84); + if (lookahead == '!') ADVANCE(140); + if (lookahead == '"') ADVANCE(237); + if (lookahead == '#') ADVANCE(52); + if (lookahead == '%') ADVANCE(157); + if (lookahead == '&') ADVANCE(166); + if (lookahead == '\'') ADVANCE(228); + if (lookahead == '(') ADVANCE(89); + if (lookahead == ')') ADVANCE(92); + if (lookahead == '*') ADVANCE(153); + if (lookahead == '+') ADVANCE(148); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(143); + if (lookahead == '.') ADVANCE(206); + if (lookahead == '/') ADVANCE(155); + if (lookahead == '0') ADVANCE(213); + if (lookahead == ':') ADVANCE(191); + if (lookahead == ';') ADVANCE(179); + if (lookahead == '<') ADVANCE(173); + if (lookahead == '=') ADVANCE(189); + if (lookahead == '>') ADVANCE(169); + if (lookahead == '?') ADVANCE(192); + if (lookahead == 'L') ADVANCE(249); + if (lookahead == 'U') ADVANCE(251); + if (lookahead == '[') ADVANCE(186); + if (lookahead == '\\') SKIP(79) + if (lookahead == ']') ADVANCE(187); + if (lookahead == '^') ADVANCE(163); + if (lookahead == 'u') ADVANCE(253); + if (lookahead == '{') ADVANCE(183); + if (lookahead == '|') ADVANCE(160); + if (lookahead == '}') ADVANCE(184); + if (lookahead == '~') ADVANCE(141); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(82) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + if (('A' <= lookahead && lookahead <= '_') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 1: + if (lookahead == '\n') SKIP(28) + END_STATE(); + case 2: + if (lookahead == '\n') SKIP(28) + if (lookahead == '\r') SKIP(1) + END_STATE(); + case 3: + if (lookahead == '\n') SKIP(29) + END_STATE(); + case 4: + if (lookahead == '\n') SKIP(29) + if (lookahead == '\r') SKIP(3) + END_STATE(); + case 5: + if (lookahead == '\n') SKIP(27) + END_STATE(); + case 6: + if (lookahead == '\n') SKIP(27) + if (lookahead == '\r') SKIP(5) + END_STATE(); + case 7: + if (lookahead == '\n') SKIP(33) + END_STATE(); + case 8: + if (lookahead == '\n') SKIP(33) + if (lookahead == '\r') SKIP(7) + END_STATE(); + case 9: + if (lookahead == '\n') SKIP(32) + END_STATE(); + case 10: + if (lookahead == '\n') SKIP(32) + if (lookahead == '\r') SKIP(9) + END_STATE(); + case 11: + if (lookahead == '\n') SKIP(34) + END_STATE(); + case 12: + if (lookahead == '\n') SKIP(34) + if (lookahead == '\r') SKIP(11) + END_STATE(); + case 13: + if (lookahead == '\n') SKIP(31) + END_STATE(); + case 14: + if (lookahead == '\n') SKIP(31) + if (lookahead == '\r') SKIP(13) + END_STATE(); + case 15: + if (lookahead == '\n') SKIP(30) + END_STATE(); + case 16: + if (lookahead == '\n') SKIP(30) + if (lookahead == '\r') SKIP(15) + END_STATE(); + case 17: + if (lookahead == '\n') SKIP(19) + END_STATE(); + case 18: + if (lookahead == '\n') SKIP(19) + if (lookahead == '\r') SKIP(17) + END_STATE(); + case 19: + if (lookahead == '\n') ADVANCE(86); + if (lookahead == '!') ADVANCE(46); + if (lookahead == '%') ADVANCE(156); + if (lookahead == '&') ADVANCE(165); + if (lookahead == '(') ADVANCE(138); + if (lookahead == '*') ADVANCE(152); + if (lookahead == '+') ADVANCE(147); + if (lookahead == '-') ADVANCE(142); + if (lookahead == '/') ADVANCE(154); + if (lookahead == '<') ADVANCE(174); + if (lookahead == '=') ADVANCE(47); + if (lookahead == '>') ADVANCE(170); + if (lookahead == '\\') SKIP(18) + if (lookahead == '^') ADVANCE(162); + if (lookahead == '|') ADVANCE(161); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(19) + END_STATE(); + case 20: + if (lookahead == '\n') SKIP(35) + END_STATE(); + case 21: + if (lookahead == '\n') SKIP(35) + if (lookahead == '\r') SKIP(20) + END_STATE(); + case 22: + if (lookahead == '\n') ADVANCE(87); + if (lookahead == '(') ADVANCE(89); + if (lookahead == '/') ADVANCE(131); + if (lookahead == '\\') ADVANCE(129); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(128); + if (lookahead != 0) ADVANCE(132); + END_STATE(); + case 23: + if (lookahead == '\n') ADVANCE(87); + if (lookahead == '/') ADVANCE(131); + if (lookahead == '\\') ADVANCE(129); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(128); + if (lookahead != 0) ADVANCE(132); + END_STATE(); + case 24: + if (lookahead == '\n') SKIP(36) + if (lookahead == '"') ADVANCE(237); + if (lookahead == '/') ADVANCE(238); + if (lookahead == '\\') ADVANCE(25); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(241); + if (lookahead != 0) ADVANCE(242); + END_STATE(); + case 25: + if (lookahead == '\n') ADVANCE(244); + if (lookahead == '\r') ADVANCE(243); + if (lookahead == 'U') ADVANCE(76); + if (lookahead == 'u') ADVANCE(72); + if (lookahead == 'x') ADVANCE(70); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(246); + if (lookahead != 0) ADVANCE(243); + END_STATE(); + case 26: + if (lookahead == '\n') SKIP(44) + if (lookahead == '/') ADVANCE(231); + if (lookahead == '\\') ADVANCE(230); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(232); + if (lookahead != 0 && + lookahead != '\'') ADVANCE(229); + END_STATE(); + case 27: + if (lookahead == '!') ADVANCE(140); + if (lookahead == '"') ADVANCE(237); + if (lookahead == '#') ADVANCE(59); + if (lookahead == '%') ADVANCE(157); + if (lookahead == '&') ADVANCE(166); + if (lookahead == '\'') ADVANCE(228); + if (lookahead == '(') ADVANCE(138); + if (lookahead == ')') ADVANCE(92); + if (lookahead == '*') ADVANCE(153); + if (lookahead == '+') ADVANCE(148); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(143); + if (lookahead == '.') ADVANCE(207); + if (lookahead == '/') ADVANCE(155); + if (lookahead == '0') ADVANCE(213); + if (lookahead == ':') ADVANCE(190); + if (lookahead == ';') ADVANCE(179); + if (lookahead == '<') ADVANCE(173); + if (lookahead == '=') ADVANCE(189); + if (lookahead == '>') ADVANCE(169); + if (lookahead == '?') ADVANCE(192); + if (lookahead == 'L') ADVANCE(249); + if (lookahead == 'U') ADVANCE(251); + if (lookahead == '[') ADVANCE(185); + if (lookahead == '\\') SKIP(6) + if (lookahead == ']') ADVANCE(187); + if (lookahead == '^') ADVANCE(163); + if (lookahead == 'u') ADVANCE(253); + if (lookahead == '{') ADVANCE(183); + if (lookahead == '|') ADVANCE(160); + if (lookahead == '}') ADVANCE(184); + if (lookahead == '~') ADVANCE(141); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(27) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + if (('A' <= lookahead && lookahead <= '_') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 28: + if (lookahead == '!') ADVANCE(139); + if (lookahead == '"') ADVANCE(237); + if (lookahead == '#') ADVANCE(52); + if (lookahead == '&') ADVANCE(164); + if (lookahead == '\'') ADVANCE(228); + if (lookahead == '(') ADVANCE(138); + if (lookahead == '*') ADVANCE(152); + if (lookahead == '+') ADVANCE(149); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(144); + if (lookahead == '.') ADVANCE(64); + if (lookahead == '/') ADVANCE(37); + if (lookahead == '0') ADVANCE(213); + if (lookahead == ':') ADVANCE(45); + if (lookahead == ';') ADVANCE(179); + if (lookahead == 'L') ADVANCE(249); + if (lookahead == 'U') ADVANCE(251); + if (lookahead == '[') ADVANCE(50); + if (lookahead == '\\') SKIP(2) + if (lookahead == ']') ADVANCE(51); + if (lookahead == 'u') ADVANCE(253); + if (lookahead == '{') ADVANCE(183); + if (lookahead == '~') ADVANCE(141); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(28) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 29: + if (lookahead == '!') ADVANCE(139); + if (lookahead == '"') ADVANCE(237); + if (lookahead == '#') ADVANCE(54); + if (lookahead == '&') ADVANCE(164); + if (lookahead == '\'') ADVANCE(228); + if (lookahead == '(') ADVANCE(138); + if (lookahead == '*') ADVANCE(152); + if (lookahead == '+') ADVANCE(149); + if (lookahead == '-') ADVANCE(144); + if (lookahead == '.') ADVANCE(64); + if (lookahead == '/') ADVANCE(37); + if (lookahead == '0') ADVANCE(213); + if (lookahead == ';') ADVANCE(179); + if (lookahead == 'L') ADVANCE(249); + if (lookahead == 'U') ADVANCE(251); + if (lookahead == '[') ADVANCE(50); + if (lookahead == '\\') SKIP(4) + if (lookahead == 'u') ADVANCE(253); + if (lookahead == '{') ADVANCE(183); + if (lookahead == '~') ADVANCE(141); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(29) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 30: + if (lookahead == '!') ADVANCE(139); + if (lookahead == '\'') ADVANCE(228); + if (lookahead == '(') ADVANCE(138); + if (lookahead == ')') ADVANCE(92); + if (lookahead == '+') ADVANCE(151); + if (lookahead == '-') ADVANCE(146); + if (lookahead == '.') ADVANCE(64); + if (lookahead == '/') ADVANCE(37); + if (lookahead == '0') ADVANCE(213); + if (lookahead == 'L') ADVANCE(257); + if (lookahead == 'U') ADVANCE(258); + if (lookahead == '\\') SKIP(16) + if (lookahead == 'u') ADVANCE(259); + if (lookahead == '~') ADVANCE(141); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(30) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 31: + if (lookahead == '!') ADVANCE(46); + if (lookahead == '"') ADVANCE(237); + if (lookahead == '%') ADVANCE(157); + if (lookahead == '&') ADVANCE(166); + if (lookahead == '(') ADVANCE(138); + if (lookahead == ')') ADVANCE(92); + if (lookahead == '*') ADVANCE(153); + if (lookahead == '+') ADVANCE(150); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(145); + if (lookahead == '.') ADVANCE(205); + if (lookahead == '/') ADVANCE(155); + if (lookahead == ':') ADVANCE(190); + if (lookahead == ';') ADVANCE(179); + if (lookahead == '<') ADVANCE(173); + if (lookahead == '=') ADVANCE(189); + if (lookahead == '>') ADVANCE(169); + if (lookahead == '?') ADVANCE(192); + if (lookahead == 'L') ADVANCE(250); + if (lookahead == 'U') ADVANCE(252); + if (lookahead == '[') ADVANCE(186); + if (lookahead == '\\') SKIP(14) + if (lookahead == ']') ADVANCE(187); + if (lookahead == '^') ADVANCE(163); + if (lookahead == 'u') ADVANCE(254); + if (lookahead == '|') ADVANCE(160); + if (lookahead == '}') ADVANCE(184); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(31) + if (('A' <= lookahead && lookahead <= '_') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 32: + if (lookahead == '!') ADVANCE(46); + if (lookahead == '#') ADVANCE(57); + if (lookahead == '%') ADVANCE(157); + if (lookahead == '&') ADVANCE(166); + if (lookahead == '(') ADVANCE(138); + if (lookahead == ')') ADVANCE(92); + if (lookahead == '*') ADVANCE(153); + if (lookahead == '+') ADVANCE(150); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(145); + if (lookahead == '.') ADVANCE(205); + if (lookahead == '/') ADVANCE(155); + if (lookahead == ':') ADVANCE(190); + if (lookahead == ';') ADVANCE(179); + if (lookahead == '<') ADVANCE(173); + if (lookahead == '=') ADVANCE(189); + if (lookahead == '>') ADVANCE(169); + if (lookahead == '?') ADVANCE(192); + if (lookahead == '[') ADVANCE(186); + if (lookahead == '\\') SKIP(10) + if (lookahead == ']') ADVANCE(187); + if (lookahead == '^') ADVANCE(163); + if (lookahead == '{') ADVANCE(183); + if (lookahead == '|') ADVANCE(160); + if (lookahead == '}') ADVANCE(184); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(32) + if (('A' <= lookahead && lookahead <= '_') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 33: + if (lookahead == '!') ADVANCE(46); + if (lookahead == '#') ADVANCE(53); + if (lookahead == '%') ADVANCE(156); + if (lookahead == '&') ADVANCE(165); + if (lookahead == '(') ADVANCE(138); + if (lookahead == ')') ADVANCE(92); + if (lookahead == '*') ADVANCE(152); + if (lookahead == '+') ADVANCE(147); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(142); + if (lookahead == '.') ADVANCE(42); + if (lookahead == '/') ADVANCE(154); + if (lookahead == ':') ADVANCE(190); + if (lookahead == ';') ADVANCE(179); + if (lookahead == '<') ADVANCE(174); + if (lookahead == '=') ADVANCE(189); + if (lookahead == '>') ADVANCE(170); + if (lookahead == '[') ADVANCE(186); + if (lookahead == '\\') SKIP(8) + if (lookahead == '^') ADVANCE(162); + if (lookahead == '{') ADVANCE(183); + if (lookahead == '|') ADVANCE(161); + if (lookahead == '}') ADVANCE(184); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(33) + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 34: + if (lookahead == '!') ADVANCE(46); + if (lookahead == '#') ADVANCE(55); + if (lookahead == '%') ADVANCE(157); + if (lookahead == '&') ADVANCE(166); + if (lookahead == '(') ADVANCE(138); + if (lookahead == ')') ADVANCE(92); + if (lookahead == '*') ADVANCE(153); + if (lookahead == '+') ADVANCE(150); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(145); + if (lookahead == '.') ADVANCE(205); + if (lookahead == '/') ADVANCE(155); + if (lookahead == ':') ADVANCE(190); + if (lookahead == ';') ADVANCE(179); + if (lookahead == '<') ADVANCE(173); + if (lookahead == '=') ADVANCE(189); + if (lookahead == '>') ADVANCE(169); + if (lookahead == '?') ADVANCE(192); + if (lookahead == '[') ADVANCE(186); + if (lookahead == '\\') SKIP(12) + if (lookahead == ']') ADVANCE(51); + if (lookahead == '^') ADVANCE(163); + if (lookahead == '|') ADVANCE(160); + if (lookahead == '}') ADVANCE(184); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(34) + if (('A' <= lookahead && lookahead <= '_') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 35: + if (lookahead == '"') ADVANCE(237); + if (lookahead == '/') ADVANCE(37); + if (lookahead == '<') ADVANCE(48); + if (lookahead == 'L') ADVANCE(250); + if (lookahead == 'U') ADVANCE(252); + if (lookahead == '\\') SKIP(21) + if (lookahead == 'u') ADVANCE(254); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(35) + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 36: + if (lookahead == '"') ADVANCE(237); + if (lookahead == '/') ADVANCE(37); + if (lookahead == '\\') ADVANCE(25); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(36) + END_STATE(); + case 37: + if (lookahead == '*') ADVANCE(39); + if (lookahead == '/') ADVANCE(264); + END_STATE(); + case 38: + if (lookahead == '*') ADVANCE(38); + if (lookahead == '/') ADVANCE(262); + if (lookahead != 0) ADVANCE(39); + END_STATE(); + case 39: + if (lookahead == '*') ADVANCE(38); + if (lookahead != 0) ADVANCE(39); + END_STATE(); + case 40: + if (lookahead == '.') ADVANCE(64); + if (lookahead == '0') ADVANCE(211); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(212); + if (('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(220); + END_STATE(); + case 41: + if (lookahead == '.') ADVANCE(64); + if (lookahead == '0') ADVANCE(214); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 42: + if (lookahead == '.') ADVANCE(43); + END_STATE(); + case 43: + if (lookahead == '.') ADVANCE(90); + END_STATE(); + case 44: + if (lookahead == '/') ADVANCE(37); + if (lookahead == '\\') ADVANCE(25); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(44) + END_STATE(); + case 45: + if (lookahead == ':') ADVANCE(180); + END_STATE(); + case 46: + if (lookahead == '=') ADVANCE(168); + END_STATE(); + case 47: + if (lookahead == '=') ADVANCE(167); + END_STATE(); + case 48: + if (lookahead == '>') ADVANCE(247); + if (lookahead == '\\') ADVANCE(49); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(48); + END_STATE(); + case 49: + if (lookahead == '>') ADVANCE(248); + if (lookahead == '\\') ADVANCE(49); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(48); + END_STATE(); + case 50: + if (lookahead == '[') ADVANCE(181); + END_STATE(); + case 51: + if (lookahead == ']') ADVANCE(182); + END_STATE(); + case 52: + if (lookahead == 'd') ADVANCE(104); + if (lookahead == 'e') ADVANCE(120); + if (lookahead == 'i') ADVANCE(110); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(52); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 53: + if (lookahead == 'd') ADVANCE(104); + if (lookahead == 'e') ADVANCE(120); + if (lookahead == 'i') ADVANCE(111); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(53); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 54: + if (lookahead == 'd') ADVANCE(104); + if (lookahead == 'e') ADVANCE(122); + if (lookahead == 'i') ADVANCE(110); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(54); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 55: + if (lookahead == 'd') ADVANCE(104); + if (lookahead == 'e') ADVANCE(122); + if (lookahead == 'i') ADVANCE(111); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(55); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 56: + if (lookahead == 'd') ADVANCE(104); + if (lookahead == 'i') ADVANCE(110); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(56); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 57: + if (lookahead == 'd') ADVANCE(104); + if (lookahead == 'i') ADVANCE(111); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(57); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 58: + if (lookahead == 'd') ADVANCE(61); + END_STATE(); + case 59: + if (lookahead == 'e') ADVANCE(62); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(59); + END_STATE(); + case 60: + if (lookahead == 'f') ADVANCE(94); + END_STATE(); + case 61: + if (lookahead == 'i') ADVANCE(60); + END_STATE(); + case 62: + if (lookahead == 'n') ADVANCE(58); + END_STATE(); + case 63: + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 64: + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(209); + END_STATE(); + case 65: + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(212); + if (('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(220); + END_STATE(); + case 66: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(217); + END_STATE(); + case 67: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(220); + END_STATE(); + case 68: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(210); + END_STATE(); + case 69: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(243); + END_STATE(); + case 70: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(69); + END_STATE(); + case 71: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); + END_STATE(); + case 72: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(71); + END_STATE(); + case 73: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(72); + END_STATE(); + case 74: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(73); + END_STATE(); + case 75: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(74); + END_STATE(); + case 76: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(75); + END_STATE(); + case 77: + if (lookahead != 0 && + lookahead != '\r') ADVANCE(264); + if (lookahead == '\r') ADVANCE(266); + END_STATE(); + case 78: + if (eof) ADVANCE(84); + if (lookahead == '\n') SKIP(82) + END_STATE(); + case 79: + if (eof) ADVANCE(84); + if (lookahead == '\n') SKIP(82) + if (lookahead == '\r') SKIP(78) + END_STATE(); + case 80: + if (eof) ADVANCE(84); + if (lookahead == '\n') SKIP(83) + END_STATE(); + case 81: + if (eof) ADVANCE(84); + if (lookahead == '\n') SKIP(83) + if (lookahead == '\r') SKIP(80) + END_STATE(); + case 82: + if (eof) ADVANCE(84); + if (lookahead == '!') ADVANCE(140); + if (lookahead == '"') ADVANCE(237); + if (lookahead == '#') ADVANCE(52); + if (lookahead == '%') ADVANCE(157); + if (lookahead == '&') ADVANCE(166); + if (lookahead == '\'') ADVANCE(228); + if (lookahead == '(') ADVANCE(138); + if (lookahead == ')') ADVANCE(92); + if (lookahead == '*') ADVANCE(153); + if (lookahead == '+') ADVANCE(148); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(143); + if (lookahead == '.') ADVANCE(206); + if (lookahead == '/') ADVANCE(155); + if (lookahead == '0') ADVANCE(213); + if (lookahead == ':') ADVANCE(191); + if (lookahead == ';') ADVANCE(179); + if (lookahead == '<') ADVANCE(173); + if (lookahead == '=') ADVANCE(189); + if (lookahead == '>') ADVANCE(169); + if (lookahead == '?') ADVANCE(192); + if (lookahead == 'L') ADVANCE(249); + if (lookahead == 'U') ADVANCE(251); + if (lookahead == '[') ADVANCE(186); + if (lookahead == '\\') SKIP(79) + if (lookahead == ']') ADVANCE(187); + if (lookahead == '^') ADVANCE(163); + if (lookahead == 'u') ADVANCE(253); + if (lookahead == '{') ADVANCE(183); + if (lookahead == '|') ADVANCE(160); + if (lookahead == '}') ADVANCE(184); + if (lookahead == '~') ADVANCE(141); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(82) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + if (('A' <= lookahead && lookahead <= '_') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 83: + if (eof) ADVANCE(84); + if (lookahead == '!') ADVANCE(139); + if (lookahead == '"') ADVANCE(237); + if (lookahead == '#') ADVANCE(56); + if (lookahead == '&') ADVANCE(164); + if (lookahead == '\'') ADVANCE(228); + if (lookahead == '(') ADVANCE(138); + if (lookahead == ')') ADVANCE(92); + if (lookahead == '*') ADVANCE(152); + if (lookahead == '+') ADVANCE(149); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(144); + if (lookahead == '.') ADVANCE(207); + if (lookahead == '/') ADVANCE(37); + if (lookahead == '0') ADVANCE(213); + if (lookahead == ':') ADVANCE(190); + if (lookahead == ';') ADVANCE(179); + if (lookahead == '=') ADVANCE(188); + if (lookahead == 'L') ADVANCE(249); + if (lookahead == 'U') ADVANCE(251); + if (lookahead == '[') ADVANCE(186); + if (lookahead == '\\') SKIP(81) + if (lookahead == ']') ADVANCE(187); + if (lookahead == 'u') ADVANCE(253); + if (lookahead == '{') ADVANCE(183); + if (lookahead == '}') ADVANCE(184); + if (lookahead == '~') ADVANCE(141); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(83) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 84: + ACCEPT_TOKEN(ts_builtin_sym_end); + END_STATE(); + case 85: + ACCEPT_TOKEN(aux_sym_preproc_include_token1); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 86: + ACCEPT_TOKEN(anon_sym_LF); + if (lookahead == '\n') ADVANCE(86); + END_STATE(); + case 87: + ACCEPT_TOKEN(anon_sym_LF); + if (lookahead == '\n') ADVANCE(87); + if (lookahead == '\\') ADVANCE(129); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(128); + END_STATE(); + case 88: + ACCEPT_TOKEN(aux_sym_preproc_def_token1); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 89: + ACCEPT_TOKEN(anon_sym_LPAREN); + END_STATE(); + case 90: + ACCEPT_TOKEN(anon_sym_DOT_DOT_DOT); + END_STATE(); + case 91: + ACCEPT_TOKEN(anon_sym_COMMA); + END_STATE(); + case 92: + ACCEPT_TOKEN(anon_sym_RPAREN); + END_STATE(); + case 93: + ACCEPT_TOKEN(aux_sym_preproc_if_token1); + if (lookahead == 'd') ADVANCE(108); + if (lookahead == 'n') ADVANCE(103); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 94: + ACCEPT_TOKEN(aux_sym_preproc_if_token2); + END_STATE(); + case 95: + ACCEPT_TOKEN(aux_sym_preproc_if_token2); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 96: + ACCEPT_TOKEN(aux_sym_preproc_ifdef_token1); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 97: + ACCEPT_TOKEN(aux_sym_preproc_ifdef_token2); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 98: + ACCEPT_TOKEN(aux_sym_preproc_else_token1); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 99: + ACCEPT_TOKEN(aux_sym_preproc_elif_token1); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 100: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'c') ADVANCE(121); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 101: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'd') ADVANCE(119); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 102: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'd') ADVANCE(107); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 103: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'd') ADVANCE(109); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 104: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'e') ADVANCE(112); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 105: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'e') ADVANCE(98); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 106: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'e') ADVANCE(88); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 107: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'e') ADVANCE(85); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 108: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'e') ADVANCE(115); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 109: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'e') ADVANCE(116); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 110: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'f') ADVANCE(93); + if (lookahead == 'n') ADVANCE(100); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 111: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'f') ADVANCE(93); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 112: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'f') ADVANCE(117); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 113: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'f') ADVANCE(99); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 114: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'f') ADVANCE(95); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 115: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'f') ADVANCE(96); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 116: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'f') ADVANCE(97); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 117: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'i') ADVANCE(123); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 118: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'i') ADVANCE(113); + if (lookahead == 's') ADVANCE(105); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 119: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'i') ADVANCE(114); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 120: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'l') ADVANCE(118); + if (lookahead == 'n') ADVANCE(101); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 121: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'l') ADVANCE(124); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 122: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'n') ADVANCE(101); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 123: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'n') ADVANCE(106); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 124: + ACCEPT_TOKEN(sym_preproc_directive); + if (lookahead == 'u') ADVANCE(102); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 125: + ACCEPT_TOKEN(sym_preproc_directive); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(125); + END_STATE(); + case 126: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead == '\n') ADVANCE(39); + if (lookahead == '*') ADVANCE(126); + if (lookahead == '/') ADVANCE(262); + if (lookahead == '\\') ADVANCE(133); + if (lookahead != 0) ADVANCE(127); + END_STATE(); + case 127: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead == '\n') ADVANCE(39); + if (lookahead == '*') ADVANCE(126); + if (lookahead == '\\') ADVANCE(133); + if (lookahead != 0) ADVANCE(127); + END_STATE(); + case 128: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead == '\n') ADVANCE(87); + if (lookahead == '/') ADVANCE(131); + if (lookahead == '\\') ADVANCE(129); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(128); + if (lookahead != 0) ADVANCE(132); + END_STATE(); + case 129: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead == '\n') ADVANCE(128); + if (lookahead == '\r') ADVANCE(130); + if (lookahead == '\\') ADVANCE(134); + if (lookahead != 0) ADVANCE(132); + END_STATE(); + case 130: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead == '\n') ADVANCE(128); + if (lookahead == '\\') ADVANCE(134); + if (lookahead != 0) ADVANCE(132); + END_STATE(); + case 131: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead == '*') ADVANCE(127); + if (lookahead == '/') ADVANCE(265); + if (lookahead == '\\') ADVANCE(134); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(132); + END_STATE(); + case 132: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead == '\\') ADVANCE(134); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(132); + END_STATE(); + case 133: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead != 0 && + lookahead != '\r' && + lookahead != '*' && + lookahead != '\\') ADVANCE(127); + if (lookahead == '\r') ADVANCE(136); + if (lookahead == '*') ADVANCE(126); + if (lookahead == '\\') ADVANCE(133); + END_STATE(); + case 134: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead != 0 && + lookahead != '\r' && + lookahead != '\\') ADVANCE(132); + if (lookahead == '\r') ADVANCE(137); + if (lookahead == '\\') ADVANCE(134); + END_STATE(); + case 135: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead != 0 && + lookahead != '\r' && + lookahead != '\\') ADVANCE(265); + if (lookahead == '\r') ADVANCE(267); + if (lookahead == '\\') ADVANCE(263); + END_STATE(); + case 136: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead != 0 && + lookahead != '*' && + lookahead != '\\') ADVANCE(127); + if (lookahead == '*') ADVANCE(126); + if (lookahead == '\\') ADVANCE(133); + END_STATE(); + case 137: + ACCEPT_TOKEN(sym_preproc_arg); + if (lookahead != 0 && + lookahead != '\\') ADVANCE(132); + if (lookahead == '\\') ADVANCE(134); + END_STATE(); + case 138: + ACCEPT_TOKEN(anon_sym_LPAREN2); + END_STATE(); + case 139: + ACCEPT_TOKEN(anon_sym_BANG); + END_STATE(); + case 140: + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(168); + END_STATE(); + case 141: + ACCEPT_TOKEN(anon_sym_TILDE); + END_STATE(); + case 142: + ACCEPT_TOKEN(anon_sym_DASH); + END_STATE(); + case 143: + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '-') ADVANCE(203); + if (lookahead == '.') ADVANCE(64); + if (lookahead == '0') ADVANCE(213); + if (lookahead == '=') ADVANCE(197); + if (lookahead == '>') ADVANCE(208); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 144: + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '-') ADVANCE(203); + if (lookahead == '.') ADVANCE(64); + if (lookahead == '0') ADVANCE(213); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 145: + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '-') ADVANCE(203); + if (lookahead == '=') ADVANCE(197); + if (lookahead == '>') ADVANCE(208); + END_STATE(); + case 146: + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '.') ADVANCE(64); + if (lookahead == '0') ADVANCE(213); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 147: + ACCEPT_TOKEN(anon_sym_PLUS); + END_STATE(); + case 148: + ACCEPT_TOKEN(anon_sym_PLUS); + if (lookahead == '+') ADVANCE(204); + if (lookahead == '.') ADVANCE(64); + if (lookahead == '0') ADVANCE(213); + if (lookahead == '=') ADVANCE(196); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 149: + ACCEPT_TOKEN(anon_sym_PLUS); + if (lookahead == '+') ADVANCE(204); + if (lookahead == '.') ADVANCE(64); + if (lookahead == '0') ADVANCE(213); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 150: + ACCEPT_TOKEN(anon_sym_PLUS); + if (lookahead == '+') ADVANCE(204); + if (lookahead == '=') ADVANCE(196); + END_STATE(); + case 151: + ACCEPT_TOKEN(anon_sym_PLUS); + if (lookahead == '.') ADVANCE(64); + if (lookahead == '0') ADVANCE(213); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 152: + ACCEPT_TOKEN(anon_sym_STAR); + END_STATE(); + case 153: + ACCEPT_TOKEN(anon_sym_STAR); + if (lookahead == '=') ADVANCE(193); + END_STATE(); + case 154: + ACCEPT_TOKEN(anon_sym_SLASH); + if (lookahead == '*') ADVANCE(39); + if (lookahead == '/') ADVANCE(264); + END_STATE(); + case 155: + ACCEPT_TOKEN(anon_sym_SLASH); + if (lookahead == '*') ADVANCE(39); + if (lookahead == '/') ADVANCE(264); + if (lookahead == '=') ADVANCE(194); + END_STATE(); + case 156: + ACCEPT_TOKEN(anon_sym_PERCENT); + END_STATE(); + case 157: + ACCEPT_TOKEN(anon_sym_PERCENT); + if (lookahead == '=') ADVANCE(195); + END_STATE(); + case 158: + ACCEPT_TOKEN(anon_sym_PIPE_PIPE); + END_STATE(); + case 159: + ACCEPT_TOKEN(anon_sym_AMP_AMP); + END_STATE(); + case 160: + ACCEPT_TOKEN(anon_sym_PIPE); + if (lookahead == '=') ADVANCE(202); + if (lookahead == '|') ADVANCE(158); + END_STATE(); + case 161: + ACCEPT_TOKEN(anon_sym_PIPE); + if (lookahead == '|') ADVANCE(158); + END_STATE(); + case 162: + ACCEPT_TOKEN(anon_sym_CARET); + END_STATE(); + case 163: + ACCEPT_TOKEN(anon_sym_CARET); + if (lookahead == '=') ADVANCE(201); + END_STATE(); + case 164: + ACCEPT_TOKEN(anon_sym_AMP); + END_STATE(); + case 165: + ACCEPT_TOKEN(anon_sym_AMP); + if (lookahead == '&') ADVANCE(159); + END_STATE(); + case 166: + ACCEPT_TOKEN(anon_sym_AMP); + if (lookahead == '&') ADVANCE(159); + if (lookahead == '=') ADVANCE(200); + END_STATE(); + case 167: + ACCEPT_TOKEN(anon_sym_EQ_EQ); + END_STATE(); + case 168: + ACCEPT_TOKEN(anon_sym_BANG_EQ); + END_STATE(); + case 169: + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(171); + if (lookahead == '>') ADVANCE(178); + END_STATE(); + case 170: + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(171); + if (lookahead == '>') ADVANCE(177); + END_STATE(); + case 171: + ACCEPT_TOKEN(anon_sym_GT_EQ); + END_STATE(); + case 172: + ACCEPT_TOKEN(anon_sym_LT_EQ); + END_STATE(); + case 173: + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '<') ADVANCE(176); + if (lookahead == '=') ADVANCE(172); + END_STATE(); + case 174: + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '<') ADVANCE(175); + if (lookahead == '=') ADVANCE(172); + END_STATE(); + case 175: + ACCEPT_TOKEN(anon_sym_LT_LT); + END_STATE(); + case 176: + ACCEPT_TOKEN(anon_sym_LT_LT); + if (lookahead == '=') ADVANCE(198); + END_STATE(); + case 177: + ACCEPT_TOKEN(anon_sym_GT_GT); + END_STATE(); + case 178: + ACCEPT_TOKEN(anon_sym_GT_GT); + if (lookahead == '=') ADVANCE(199); + END_STATE(); + case 179: + ACCEPT_TOKEN(anon_sym_SEMI); + END_STATE(); + case 180: + ACCEPT_TOKEN(anon_sym_COLON_COLON); + END_STATE(); + case 181: + ACCEPT_TOKEN(anon_sym_LBRACK_LBRACK); + END_STATE(); + case 182: + ACCEPT_TOKEN(anon_sym_RBRACK_RBRACK); + END_STATE(); + case 183: + ACCEPT_TOKEN(anon_sym_LBRACE); + END_STATE(); + case 184: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 185: + ACCEPT_TOKEN(anon_sym_LBRACK); + END_STATE(); + case 186: + ACCEPT_TOKEN(anon_sym_LBRACK); + if (lookahead == '[') ADVANCE(181); + END_STATE(); + case 187: + ACCEPT_TOKEN(anon_sym_RBRACK); + END_STATE(); + case 188: + ACCEPT_TOKEN(anon_sym_EQ); + END_STATE(); + case 189: + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(167); + END_STATE(); + case 190: + ACCEPT_TOKEN(anon_sym_COLON); + END_STATE(); + case 191: + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(180); + END_STATE(); + case 192: + ACCEPT_TOKEN(anon_sym_QMARK); + END_STATE(); + case 193: + ACCEPT_TOKEN(anon_sym_STAR_EQ); + END_STATE(); + case 194: + ACCEPT_TOKEN(anon_sym_SLASH_EQ); + END_STATE(); + case 195: + ACCEPT_TOKEN(anon_sym_PERCENT_EQ); + END_STATE(); + case 196: + ACCEPT_TOKEN(anon_sym_PLUS_EQ); + END_STATE(); + case 197: + ACCEPT_TOKEN(anon_sym_DASH_EQ); + END_STATE(); + case 198: + ACCEPT_TOKEN(anon_sym_LT_LT_EQ); + END_STATE(); + case 199: + ACCEPT_TOKEN(anon_sym_GT_GT_EQ); + END_STATE(); + case 200: + ACCEPT_TOKEN(anon_sym_AMP_EQ); + END_STATE(); + case 201: + ACCEPT_TOKEN(anon_sym_CARET_EQ); + END_STATE(); + case 202: + ACCEPT_TOKEN(anon_sym_PIPE_EQ); + END_STATE(); + case 203: + ACCEPT_TOKEN(anon_sym_DASH_DASH); + END_STATE(); + case 204: + ACCEPT_TOKEN(anon_sym_PLUS_PLUS); + END_STATE(); + case 205: + ACCEPT_TOKEN(anon_sym_DOT); + END_STATE(); + case 206: + ACCEPT_TOKEN(anon_sym_DOT); + if (lookahead == '.') ADVANCE(43); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(209); + END_STATE(); + case 207: + ACCEPT_TOKEN(anon_sym_DOT); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(209); + END_STATE(); + case 208: + ACCEPT_TOKEN(anon_sym_DASH_GT); + END_STATE(); + case 209: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(64); + if (lookahead == 'F' || + lookahead == 'L' || + lookahead == 'U' || + lookahead == 'f' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == 'E' || + lookahead == 'P' || + lookahead == 'e' || + lookahead == 'p') ADVANCE(222); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(209); + END_STATE(); + case 210: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(68); + if (lookahead == 'F' || + lookahead == 'f') ADVANCE(210); + if (lookahead == 'L' || + lookahead == 'U' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'E') || + ('a' <= lookahead && lookahead <= 'e')) ADVANCE(210); + END_STATE(); + case 211: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(65); + if (lookahead == '.') ADVANCE(221); + if (lookahead == 'F' || + lookahead == 'f') ADVANCE(220); + if (lookahead == 'L' || + lookahead == 'U' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == 'b') ADVANCE(219); + if (lookahead == 'x') ADVANCE(67); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(218); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(222); + if (('A' <= lookahead && lookahead <= 'D') || + ('a' <= lookahead && lookahead <= 'd')) ADVANCE(220); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(212); + END_STATE(); + case 212: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(65); + if (lookahead == '.') ADVANCE(221); + if (lookahead == 'F' || + lookahead == 'f') ADVANCE(220); + if (lookahead == 'L' || + lookahead == 'U' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(218); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(222); + if (('A' <= lookahead && lookahead <= 'D') || + ('a' <= lookahead && lookahead <= 'd')) ADVANCE(220); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(212); + END_STATE(); + case 213: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(63); + if (lookahead == '.') ADVANCE(221); + if (lookahead == 'F' || + lookahead == 'L' || + lookahead == 'U' || + lookahead == 'f' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == 'b') ADVANCE(41); + if (lookahead == 'x') ADVANCE(40); + if (lookahead == 'E' || + lookahead == 'P' || + lookahead == 'e' || + lookahead == 'p') ADVANCE(222); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 214: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(63); + if (lookahead == '.') ADVANCE(221); + if (lookahead == 'F' || + lookahead == 'L' || + lookahead == 'U' || + lookahead == 'f' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == 'b') ADVANCE(63); + if (lookahead == 'x') ADVANCE(67); + if (lookahead == 'E' || + lookahead == 'P' || + lookahead == 'e' || + lookahead == 'p') ADVANCE(222); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 215: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(63); + if (lookahead == '.') ADVANCE(221); + if (lookahead == 'F' || + lookahead == 'L' || + lookahead == 'U' || + lookahead == 'f' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == 'E' || + lookahead == 'P' || + lookahead == 'e' || + lookahead == 'p') ADVANCE(222); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(215); + END_STATE(); + case 216: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(66); + if (lookahead == 'F' || + lookahead == 'f') ADVANCE(217); + if (lookahead == 'L' || + lookahead == 'U' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == '+' || + lookahead == '-') ADVANCE(68); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(216); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(222); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'D') || + ('a' <= lookahead && lookahead <= 'd')) ADVANCE(217); + END_STATE(); + case 217: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(66); + if (lookahead == 'F' || + lookahead == 'f') ADVANCE(217); + if (lookahead == 'L' || + lookahead == 'U' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(216); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(222); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'D') || + ('a' <= lookahead && lookahead <= 'd')) ADVANCE(217); + END_STATE(); + case 218: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(67); + if (lookahead == '.') ADVANCE(221); + if (lookahead == 'F' || + lookahead == 'f') ADVANCE(220); + if (lookahead == 'L' || + lookahead == 'U' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == '+' || + lookahead == '-') ADVANCE(68); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(218); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(222); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'D') || + ('a' <= lookahead && lookahead <= 'd')) ADVANCE(220); + END_STATE(); + case 219: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(67); + if (lookahead == '.') ADVANCE(221); + if (lookahead == 'F' || + lookahead == 'f') ADVANCE(220); + if (lookahead == 'L' || + lookahead == 'U' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(218); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(222); + if (('A' <= lookahead && lookahead <= 'D') || + ('a' <= lookahead && lookahead <= 'd')) ADVANCE(220); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(212); + END_STATE(); + case 220: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == '\'') ADVANCE(67); + if (lookahead == '.') ADVANCE(221); + if (lookahead == 'F' || + lookahead == 'f') ADVANCE(220); + if (lookahead == 'L' || + lookahead == 'U' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(218); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(222); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'D') || + ('a' <= lookahead && lookahead <= 'd')) ADVANCE(220); + END_STATE(); + case 221: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == 'F' || + lookahead == 'f') ADVANCE(217); + if (lookahead == 'L' || + lookahead == 'U' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(216); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(222); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'D') || + ('a' <= lookahead && lookahead <= 'd')) ADVANCE(217); + END_STATE(); + case 222: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == 'F' || + lookahead == 'f') ADVANCE(210); + if (lookahead == 'L' || + lookahead == 'U' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + if (lookahead == '+' || + lookahead == '-') ADVANCE(68); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'E') || + ('a' <= lookahead && lookahead <= 'e')) ADVANCE(210); + END_STATE(); + case 223: + ACCEPT_TOKEN(sym_number_literal); + if (lookahead == 'F' || + lookahead == 'L' || + lookahead == 'U' || + lookahead == 'f' || + lookahead == 'l' || + lookahead == 'u') ADVANCE(223); + END_STATE(); + case 224: + ACCEPT_TOKEN(anon_sym_L_SQUOTE); + END_STATE(); + case 225: + ACCEPT_TOKEN(anon_sym_u_SQUOTE); + END_STATE(); + case 226: + ACCEPT_TOKEN(anon_sym_U_SQUOTE); + END_STATE(); + case 227: + ACCEPT_TOKEN(anon_sym_u8_SQUOTE); + END_STATE(); + case 228: + ACCEPT_TOKEN(anon_sym_SQUOTE); + END_STATE(); + case 229: + ACCEPT_TOKEN(aux_sym_char_literal_token1); + END_STATE(); + case 230: + ACCEPT_TOKEN(aux_sym_char_literal_token1); + if (lookahead == '\n') ADVANCE(244); + if (lookahead == '\r') ADVANCE(243); + if (lookahead == 'U') ADVANCE(76); + if (lookahead == 'u') ADVANCE(72); + if (lookahead == 'x') ADVANCE(70); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(246); + if (lookahead != 0) ADVANCE(243); + END_STATE(); + case 231: + ACCEPT_TOKEN(aux_sym_char_literal_token1); + if (lookahead == '*') ADVANCE(39); + if (lookahead == '/') ADVANCE(264); + END_STATE(); + case 232: + ACCEPT_TOKEN(aux_sym_char_literal_token1); + if (lookahead == '\\') ADVANCE(25); + END_STATE(); + case 233: + ACCEPT_TOKEN(anon_sym_L_DQUOTE); + END_STATE(); + case 234: + ACCEPT_TOKEN(anon_sym_u_DQUOTE); + END_STATE(); + case 235: + ACCEPT_TOKEN(anon_sym_U_DQUOTE); + END_STATE(); + case 236: + ACCEPT_TOKEN(anon_sym_u8_DQUOTE); + END_STATE(); + case 237: + ACCEPT_TOKEN(anon_sym_DQUOTE); + END_STATE(); + case 238: + ACCEPT_TOKEN(aux_sym_string_literal_token1); + if (lookahead == '*') ADVANCE(240); + if (lookahead == '/') ADVANCE(242); + if (lookahead != 0 && + lookahead != '\n' && + lookahead != '"' && + lookahead != '\\') ADVANCE(242); + END_STATE(); + case 239: + ACCEPT_TOKEN(aux_sym_string_literal_token1); + if (lookahead == '*') ADVANCE(239); + if (lookahead == '/') ADVANCE(242); + if (lookahead != 0 && + lookahead != '\n' && + lookahead != '"' && + lookahead != '\\') ADVANCE(240); + END_STATE(); + case 240: + ACCEPT_TOKEN(aux_sym_string_literal_token1); + if (lookahead == '*') ADVANCE(239); + if (lookahead != 0 && + lookahead != '\n' && + lookahead != '"' && + lookahead != '\\') ADVANCE(240); + END_STATE(); + case 241: + ACCEPT_TOKEN(aux_sym_string_literal_token1); + if (lookahead == '/') ADVANCE(238); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(241); + if (lookahead != 0 && + lookahead != '\n' && + lookahead != '"' && + lookahead != '\\') ADVANCE(242); + END_STATE(); + case 242: + ACCEPT_TOKEN(aux_sym_string_literal_token1); + if (lookahead != 0 && + lookahead != '\n' && + lookahead != '"' && + lookahead != '\\') ADVANCE(242); + END_STATE(); + case 243: + ACCEPT_TOKEN(sym_escape_sequence); + END_STATE(); + case 244: + ACCEPT_TOKEN(sym_escape_sequence); + if (lookahead == '\\') ADVANCE(25); + END_STATE(); + case 245: + ACCEPT_TOKEN(sym_escape_sequence); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(243); + END_STATE(); + case 246: + ACCEPT_TOKEN(sym_escape_sequence); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(245); + END_STATE(); + case 247: + ACCEPT_TOKEN(sym_system_lib_string); + END_STATE(); + case 248: + ACCEPT_TOKEN(sym_system_lib_string); + if (lookahead == '>') ADVANCE(247); + if (lookahead == '\\') ADVANCE(49); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(48); + END_STATE(); + case 249: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '"') ADVANCE(233); + if (lookahead == '\'') ADVANCE(224); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 250: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '"') ADVANCE(233); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 251: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '"') ADVANCE(235); + if (lookahead == '\'') ADVANCE(226); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 252: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '"') ADVANCE(235); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 253: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '"') ADVANCE(234); + if (lookahead == '\'') ADVANCE(225); + if (lookahead == '8') ADVANCE(255); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 254: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '"') ADVANCE(234); + if (lookahead == '8') ADVANCE(256); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 255: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '"') ADVANCE(236); + if (lookahead == '\'') ADVANCE(227); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 256: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '"') ADVANCE(236); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 257: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '\'') ADVANCE(224); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 258: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '\'') ADVANCE(226); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 259: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '\'') ADVANCE(225); + if (lookahead == '8') ADVANCE(260); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 260: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '\'') ADVANCE(227); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 261: + ACCEPT_TOKEN(sym_identifier); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(261); + END_STATE(); + case 262: + ACCEPT_TOKEN(sym_comment); + END_STATE(); + case 263: + ACCEPT_TOKEN(sym_comment); + if (lookahead == '\r') ADVANCE(265); + if (lookahead == '\\') ADVANCE(135); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(265); + END_STATE(); + case 264: + ACCEPT_TOKEN(sym_comment); + if (lookahead == '\\') ADVANCE(77); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(264); + END_STATE(); + case 265: + ACCEPT_TOKEN(sym_comment); + if (lookahead == '\\') ADVANCE(135); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(265); + END_STATE(); + case 266: + ACCEPT_TOKEN(sym_comment); + if (lookahead != 0 && + lookahead != '\\') ADVANCE(264); + if (lookahead == '\\') ADVANCE(77); + END_STATE(); + case 267: + ACCEPT_TOKEN(sym_comment); + if (lookahead != 0 && + lookahead != '\\') ADVANCE(265); + if (lookahead == '\\') ADVANCE(135); + END_STATE(); + default: + return false; + } +} + +static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (lookahead == 'F') ADVANCE(1); + if (lookahead == 'N') ADVANCE(2); + if (lookahead == 'T') ADVANCE(3); + if (lookahead == '\\') SKIP(4) + if (lookahead == '_') ADVANCE(5); + if (lookahead == 'a') ADVANCE(6); + if (lookahead == 'b') ADVANCE(7); + if (lookahead == 'c') ADVANCE(8); + if (lookahead == 'd') ADVANCE(9); + if (lookahead == 'e') ADVANCE(10); + if (lookahead == 'f') ADVANCE(11); + if (lookahead == 'g') ADVANCE(12); + if (lookahead == 'i') ADVANCE(13); + if (lookahead == 'l') ADVANCE(14); + if (lookahead == 'r') ADVANCE(15); + if (lookahead == 's') ADVANCE(16); + if (lookahead == 't') ADVANCE(17); + if (lookahead == 'u') ADVANCE(18); + if (lookahead == 'v') ADVANCE(19); + if (lookahead == 'w') ADVANCE(20); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(0) + END_STATE(); + case 1: + if (lookahead == 'A') ADVANCE(21); + END_STATE(); + case 2: + if (lookahead == 'U') ADVANCE(22); + END_STATE(); + case 3: + if (lookahead == 'R') ADVANCE(23); + END_STATE(); + case 4: + if (lookahead == '\n') SKIP(0) + if (lookahead == '\r') SKIP(24) + END_STATE(); + case 5: + if (lookahead == 'A') ADVANCE(25); + if (lookahead == '_') ADVANCE(26); + if (lookahead == 'u') ADVANCE(27); + END_STATE(); + case 6: + if (lookahead == 'u') ADVANCE(28); + END_STATE(); + case 7: + if (lookahead == 'o') ADVANCE(29); + if (lookahead == 'r') ADVANCE(30); + END_STATE(); + case 8: + if (lookahead == 'a') ADVANCE(31); + if (lookahead == 'h') ADVANCE(32); + if (lookahead == 'o') ADVANCE(33); + END_STATE(); + case 9: + if (lookahead == 'e') ADVANCE(34); + if (lookahead == 'o') ADVANCE(35); + END_STATE(); + case 10: + if (lookahead == 'l') ADVANCE(36); + if (lookahead == 'n') ADVANCE(37); + if (lookahead == 'x') ADVANCE(38); + END_STATE(); + case 11: + if (lookahead == 'a') ADVANCE(39); + if (lookahead == 'l') ADVANCE(40); + if (lookahead == 'o') ADVANCE(41); + END_STATE(); + case 12: + if (lookahead == 'o') ADVANCE(42); + END_STATE(); + case 13: + if (lookahead == 'f') ADVANCE(43); + if (lookahead == 'n') ADVANCE(44); + END_STATE(); + case 14: + if (lookahead == 'o') ADVANCE(45); + END_STATE(); + case 15: + if (lookahead == 'e') ADVANCE(46); + END_STATE(); + case 16: + if (lookahead == 'h') ADVANCE(47); + if (lookahead == 'i') ADVANCE(48); + if (lookahead == 's') ADVANCE(49); + if (lookahead == 't') ADVANCE(50); + if (lookahead == 'w') ADVANCE(51); + END_STATE(); + case 17: + if (lookahead == 'r') ADVANCE(52); + if (lookahead == 'y') ADVANCE(53); + END_STATE(); + case 18: + if (lookahead == 'i') ADVANCE(54); + if (lookahead == 'n') ADVANCE(55); + END_STATE(); + case 19: + if (lookahead == 'o') ADVANCE(56); + END_STATE(); + case 20: + if (lookahead == 'h') ADVANCE(57); + END_STATE(); + case 21: + if (lookahead == 'L') ADVANCE(58); + END_STATE(); + case 22: + if (lookahead == 'L') ADVANCE(59); + END_STATE(); + case 23: + if (lookahead == 'U') ADVANCE(60); + END_STATE(); + case 24: + if (lookahead == '\n') SKIP(0) + END_STATE(); + case 25: + if (lookahead == 't') ADVANCE(61); + END_STATE(); + case 26: + if (lookahead == 'a') ADVANCE(62); + if (lookahead == 'b') ADVANCE(63); + if (lookahead == 'c') ADVANCE(64); + if (lookahead == 'd') ADVANCE(65); + if (lookahead == 'f') ADVANCE(66); + if (lookahead == 'r') ADVANCE(67); + if (lookahead == 's') ADVANCE(68); + if (lookahead == 't') ADVANCE(69); + if (lookahead == 'u') ADVANCE(70); + if (lookahead == 'v') ADVANCE(71); + END_STATE(); + case 27: + if (lookahead == 'n') ADVANCE(72); + END_STATE(); + case 28: + if (lookahead == 't') ADVANCE(73); + END_STATE(); + case 29: + if (lookahead == 'o') ADVANCE(74); + END_STATE(); + case 30: + if (lookahead == 'e') ADVANCE(75); + END_STATE(); + case 31: + if (lookahead == 's') ADVANCE(76); + END_STATE(); + case 32: + if (lookahead == 'a') ADVANCE(77); + END_STATE(); + case 33: + if (lookahead == 'n') ADVANCE(78); + END_STATE(); + case 34: + if (lookahead == 'f') ADVANCE(79); + END_STATE(); + case 35: + ACCEPT_TOKEN(anon_sym_do); + if (lookahead == 'u') ADVANCE(80); + END_STATE(); + case 36: + if (lookahead == 's') ADVANCE(81); + END_STATE(); + case 37: + if (lookahead == 'u') ADVANCE(82); + END_STATE(); + case 38: + if (lookahead == 't') ADVANCE(83); + END_STATE(); + case 39: + if (lookahead == 'l') ADVANCE(84); + END_STATE(); + case 40: + if (lookahead == 'o') ADVANCE(85); + END_STATE(); + case 41: + if (lookahead == 'r') ADVANCE(86); + END_STATE(); + case 42: + if (lookahead == 't') ADVANCE(87); + END_STATE(); + case 43: + ACCEPT_TOKEN(anon_sym_if); + END_STATE(); + case 44: + if (lookahead == 'l') ADVANCE(88); + if (lookahead == 't') ADVANCE(89); + END_STATE(); + case 45: + if (lookahead == 'n') ADVANCE(90); + END_STATE(); + case 46: + if (lookahead == 'g') ADVANCE(91); + if (lookahead == 's') ADVANCE(92); + if (lookahead == 't') ADVANCE(93); + END_STATE(); + case 47: + if (lookahead == 'o') ADVANCE(94); + END_STATE(); + case 48: + if (lookahead == 'g') ADVANCE(95); + if (lookahead == 'z') ADVANCE(96); + END_STATE(); + case 49: + if (lookahead == 'i') ADVANCE(97); + END_STATE(); + case 50: + if (lookahead == 'a') ADVANCE(98); + if (lookahead == 'r') ADVANCE(99); + END_STATE(); + case 51: + if (lookahead == 'i') ADVANCE(100); + END_STATE(); + case 52: + if (lookahead == 'u') ADVANCE(101); + END_STATE(); + case 53: + if (lookahead == 'p') ADVANCE(102); + END_STATE(); + case 54: + if (lookahead == 'n') ADVANCE(103); + END_STATE(); + case 55: + if (lookahead == 'i') ADVANCE(104); + if (lookahead == 's') ADVANCE(105); + END_STATE(); + case 56: + if (lookahead == 'i') ADVANCE(106); + if (lookahead == 'l') ADVANCE(107); + END_STATE(); + case 57: + if (lookahead == 'i') ADVANCE(108); + END_STATE(); + case 58: + if (lookahead == 'S') ADVANCE(109); + END_STATE(); + case 59: + if (lookahead == 'L') ADVANCE(110); + END_STATE(); + case 60: + if (lookahead == 'E') ADVANCE(111); + END_STATE(); + case 61: + if (lookahead == 'o') ADVANCE(112); + END_STATE(); + case 62: + if (lookahead == 't') ADVANCE(113); + END_STATE(); + case 63: + if (lookahead == 'a') ADVANCE(114); + END_STATE(); + case 64: + if (lookahead == 'd') ADVANCE(115); + if (lookahead == 'l') ADVANCE(116); + END_STATE(); + case 65: + if (lookahead == 'e') ADVANCE(117); + END_STATE(); + case 66: + if (lookahead == 'a') ADVANCE(118); + END_STATE(); + case 67: + if (lookahead == 'e') ADVANCE(119); + END_STATE(); + case 68: + if (lookahead == 'p') ADVANCE(120); + if (lookahead == 't') ADVANCE(121); + END_STATE(); + case 69: + if (lookahead == 'h') ADVANCE(122); + END_STATE(); + case 70: + if (lookahead == 'n') ADVANCE(123); + if (lookahead == 'p') ADVANCE(124); + END_STATE(); + case 71: + if (lookahead == 'e') ADVANCE(125); + END_STATE(); + case 72: + if (lookahead == 'a') ADVANCE(126); + END_STATE(); + case 73: + if (lookahead == 'o') ADVANCE(127); + END_STATE(); + case 74: + if (lookahead == 'l') ADVANCE(128); + END_STATE(); + case 75: + if (lookahead == 'a') ADVANCE(129); + END_STATE(); + case 76: + if (lookahead == 'e') ADVANCE(130); + END_STATE(); + case 77: + if (lookahead == 'r') ADVANCE(131); + END_STATE(); + case 78: + if (lookahead == 's') ADVANCE(132); + if (lookahead == 't') ADVANCE(133); + END_STATE(); + case 79: + if (lookahead == 'a') ADVANCE(134); + if (lookahead == 'i') ADVANCE(135); + END_STATE(); + case 80: + if (lookahead == 'b') ADVANCE(136); + END_STATE(); + case 81: + if (lookahead == 'e') ADVANCE(137); + END_STATE(); + case 82: + if (lookahead == 'm') ADVANCE(138); + END_STATE(); + case 83: + if (lookahead == 'e') ADVANCE(139); + END_STATE(); + case 84: + if (lookahead == 's') ADVANCE(140); + END_STATE(); + case 85: + if (lookahead == 'a') ADVANCE(141); + END_STATE(); + case 86: + ACCEPT_TOKEN(anon_sym_for); + END_STATE(); + case 87: + if (lookahead == 'o') ADVANCE(142); + END_STATE(); + case 88: + if (lookahead == 'i') ADVANCE(143); + END_STATE(); + case 89: + ACCEPT_TOKEN(sym_primitive_type); + if (lookahead == '1') ADVANCE(144); + if (lookahead == '3') ADVANCE(145); + if (lookahead == '6') ADVANCE(146); + if (lookahead == '8') ADVANCE(147); + if (lookahead == 'p') ADVANCE(148); + END_STATE(); + case 90: + if (lookahead == 'g') ADVANCE(149); + END_STATE(); + case 91: + if (lookahead == 'i') ADVANCE(150); + END_STATE(); + case 92: + if (lookahead == 't') ADVANCE(151); + END_STATE(); + case 93: + if (lookahead == 'u') ADVANCE(152); + END_STATE(); + case 94: + if (lookahead == 'r') ADVANCE(153); + END_STATE(); + case 95: + if (lookahead == 'n') ADVANCE(154); + END_STATE(); + case 96: + if (lookahead == 'e') ADVANCE(155); + END_STATE(); + case 97: + if (lookahead == 'z') ADVANCE(156); + END_STATE(); + case 98: + if (lookahead == 't') ADVANCE(157); + END_STATE(); + case 99: + if (lookahead == 'u') ADVANCE(158); + END_STATE(); + case 100: + if (lookahead == 't') ADVANCE(159); + END_STATE(); + case 101: + if (lookahead == 'e') ADVANCE(111); + END_STATE(); + case 102: + if (lookahead == 'e') ADVANCE(160); + END_STATE(); + case 103: + if (lookahead == 't') ADVANCE(161); + END_STATE(); + case 104: + if (lookahead == 'o') ADVANCE(162); + END_STATE(); + case 105: + if (lookahead == 'i') ADVANCE(163); + END_STATE(); + case 106: + if (lookahead == 'd') ADVANCE(128); + END_STATE(); + case 107: + if (lookahead == 'a') ADVANCE(164); + END_STATE(); + case 108: + if (lookahead == 'l') ADVANCE(165); + END_STATE(); + case 109: + if (lookahead == 'E') ADVANCE(166); + END_STATE(); + case 110: + ACCEPT_TOKEN(sym_null); + END_STATE(); + case 111: + ACCEPT_TOKEN(sym_true); + END_STATE(); + case 112: + if (lookahead == 'm') ADVANCE(167); + END_STATE(); + case 113: + if (lookahead == 't') ADVANCE(168); + END_STATE(); + case 114: + if (lookahead == 's') ADVANCE(169); + END_STATE(); + case 115: + if (lookahead == 'e') ADVANCE(170); + END_STATE(); + case 116: + if (lookahead == 'r') ADVANCE(171); + END_STATE(); + case 117: + if (lookahead == 'c') ADVANCE(172); + END_STATE(); + case 118: + if (lookahead == 's') ADVANCE(173); + END_STATE(); + case 119: + if (lookahead == 's') ADVANCE(174); + END_STATE(); + case 120: + if (lookahead == 't') ADVANCE(175); + END_STATE(); + case 121: + if (lookahead == 'd') ADVANCE(176); + END_STATE(); + case 122: + if (lookahead == 'i') ADVANCE(177); + END_STATE(); + case 123: + if (lookahead == 'a') ADVANCE(178); + END_STATE(); + case 124: + if (lookahead == 't') ADVANCE(179); + END_STATE(); + case 125: + if (lookahead == 'c') ADVANCE(180); + END_STATE(); + case 126: + if (lookahead == 'l') ADVANCE(181); + END_STATE(); + case 127: + ACCEPT_TOKEN(anon_sym_auto); + END_STATE(); + case 128: + ACCEPT_TOKEN(sym_primitive_type); + END_STATE(); + case 129: + if (lookahead == 'k') ADVANCE(182); + END_STATE(); + case 130: + ACCEPT_TOKEN(anon_sym_case); + END_STATE(); + case 131: + ACCEPT_TOKEN(sym_primitive_type); + if (lookahead == '1') ADVANCE(183); + if (lookahead == '3') ADVANCE(184); + if (lookahead == '6') ADVANCE(185); + if (lookahead == '8') ADVANCE(186); + if (lookahead == 'p') ADVANCE(187); + END_STATE(); + case 132: + if (lookahead == 't') ADVANCE(188); + END_STATE(); + case 133: + if (lookahead == 'i') ADVANCE(189); + END_STATE(); + case 134: + if (lookahead == 'u') ADVANCE(190); + END_STATE(); + case 135: + if (lookahead == 'n') ADVANCE(191); + END_STATE(); + case 136: + if (lookahead == 'l') ADVANCE(192); + END_STATE(); + case 137: + ACCEPT_TOKEN(anon_sym_else); + END_STATE(); + case 138: + ACCEPT_TOKEN(anon_sym_enum); + END_STATE(); + case 139: + if (lookahead == 'r') ADVANCE(193); + END_STATE(); + case 140: + if (lookahead == 'e') ADVANCE(166); + END_STATE(); + case 141: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 142: + ACCEPT_TOKEN(anon_sym_goto); + END_STATE(); + case 143: + if (lookahead == 'n') ADVANCE(194); + END_STATE(); + case 144: + if (lookahead == '6') ADVANCE(195); + END_STATE(); + case 145: + if (lookahead == '2') ADVANCE(196); + END_STATE(); + case 146: + if (lookahead == '4') ADVANCE(197); + END_STATE(); + case 147: + if (lookahead == '_') ADVANCE(198); + END_STATE(); + case 148: + if (lookahead == 't') ADVANCE(199); + END_STATE(); + case 149: + ACCEPT_TOKEN(anon_sym_long); + END_STATE(); + case 150: + if (lookahead == 's') ADVANCE(200); + END_STATE(); + case 151: + if (lookahead == 'r') ADVANCE(201); + END_STATE(); + case 152: + if (lookahead == 'r') ADVANCE(202); + END_STATE(); + case 153: + if (lookahead == 't') ADVANCE(203); + END_STATE(); + case 154: + if (lookahead == 'e') ADVANCE(204); + END_STATE(); + case 155: + if (lookahead == '_') ADVANCE(205); + if (lookahead == 'o') ADVANCE(206); + END_STATE(); + case 156: + if (lookahead == 'e') ADVANCE(207); + END_STATE(); + case 157: + if (lookahead == 'i') ADVANCE(208); + END_STATE(); + case 158: + if (lookahead == 'c') ADVANCE(209); + END_STATE(); + case 159: + if (lookahead == 'c') ADVANCE(210); + END_STATE(); + case 160: + if (lookahead == 'd') ADVANCE(211); + END_STATE(); + case 161: + if (lookahead == '1') ADVANCE(212); + if (lookahead == '3') ADVANCE(213); + if (lookahead == '6') ADVANCE(214); + if (lookahead == '8') ADVANCE(215); + if (lookahead == 'p') ADVANCE(216); + END_STATE(); + case 162: + if (lookahead == 'n') ADVANCE(217); + END_STATE(); + case 163: + if (lookahead == 'g') ADVANCE(218); + END_STATE(); + case 164: + if (lookahead == 't') ADVANCE(219); + END_STATE(); + case 165: + if (lookahead == 'e') ADVANCE(220); + END_STATE(); + case 166: + ACCEPT_TOKEN(sym_false); + END_STATE(); + case 167: + if (lookahead == 'i') ADVANCE(221); + END_STATE(); + case 168: + if (lookahead == 'r') ADVANCE(222); + END_STATE(); + case 169: + if (lookahead == 'e') ADVANCE(223); + END_STATE(); + case 170: + if (lookahead == 'c') ADVANCE(224); + END_STATE(); + case 171: + if (lookahead == 'c') ADVANCE(225); + END_STATE(); + case 172: + if (lookahead == 'l') ADVANCE(226); + END_STATE(); + case 173: + if (lookahead == 't') ADVANCE(227); + END_STATE(); + case 174: + if (lookahead == 't') ADVANCE(228); + END_STATE(); + case 175: + if (lookahead == 'r') ADVANCE(229); + END_STATE(); + case 176: + if (lookahead == 'c') ADVANCE(230); + END_STATE(); + case 177: + if (lookahead == 's') ADVANCE(231); + END_STATE(); + case 178: + if (lookahead == 'l') ADVANCE(232); + END_STATE(); + case 179: + if (lookahead == 'r') ADVANCE(233); + END_STATE(); + case 180: + if (lookahead == 't') ADVANCE(234); + END_STATE(); + case 181: + if (lookahead == 'i') ADVANCE(235); + END_STATE(); + case 182: + ACCEPT_TOKEN(anon_sym_break); + END_STATE(); + case 183: + if (lookahead == '6') ADVANCE(236); + END_STATE(); + case 184: + if (lookahead == '2') ADVANCE(237); + END_STATE(); + case 185: + if (lookahead == '4') ADVANCE(238); + END_STATE(); + case 186: + if (lookahead == '_') ADVANCE(239); + END_STATE(); + case 187: + if (lookahead == 't') ADVANCE(240); + END_STATE(); + case 188: + ACCEPT_TOKEN(anon_sym_const); + END_STATE(); + case 189: + if (lookahead == 'n') ADVANCE(241); + END_STATE(); + case 190: + if (lookahead == 'l') ADVANCE(242); + END_STATE(); + case 191: + if (lookahead == 'e') ADVANCE(243); + END_STATE(); + case 192: + if (lookahead == 'e') ADVANCE(128); + END_STATE(); + case 193: + if (lookahead == 'n') ADVANCE(244); + END_STATE(); + case 194: + if (lookahead == 'e') ADVANCE(245); + END_STATE(); + case 195: + if (lookahead == '_') ADVANCE(246); + END_STATE(); + case 196: + if (lookahead == '_') ADVANCE(247); + END_STATE(); + case 197: + if (lookahead == '_') ADVANCE(248); + END_STATE(); + case 198: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 199: + if (lookahead == 'r') ADVANCE(249); + END_STATE(); + case 200: + if (lookahead == 't') ADVANCE(250); + END_STATE(); + case 201: + if (lookahead == 'i') ADVANCE(251); + END_STATE(); + case 202: + if (lookahead == 'n') ADVANCE(252); + END_STATE(); + case 203: + ACCEPT_TOKEN(anon_sym_short); + END_STATE(); + case 204: + if (lookahead == 'd') ADVANCE(253); + END_STATE(); + case 205: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 206: + if (lookahead == 'f') ADVANCE(254); + END_STATE(); + case 207: + if (lookahead == '_') ADVANCE(255); + END_STATE(); + case 208: + if (lookahead == 'c') ADVANCE(256); + END_STATE(); + case 209: + if (lookahead == 't') ADVANCE(257); + END_STATE(); + case 210: + if (lookahead == 'h') ADVANCE(258); + END_STATE(); + case 211: + if (lookahead == 'e') ADVANCE(259); + END_STATE(); + case 212: + if (lookahead == '6') ADVANCE(260); + END_STATE(); + case 213: + if (lookahead == '2') ADVANCE(261); + END_STATE(); + case 214: + if (lookahead == '4') ADVANCE(262); + END_STATE(); + case 215: + if (lookahead == '_') ADVANCE(263); + END_STATE(); + case 216: + if (lookahead == 't') ADVANCE(264); + END_STATE(); + case 217: + ACCEPT_TOKEN(anon_sym_union); + END_STATE(); + case 218: + if (lookahead == 'n') ADVANCE(265); + END_STATE(); + case 219: + if (lookahead == 'i') ADVANCE(266); + END_STATE(); + case 220: + ACCEPT_TOKEN(anon_sym_while); + END_STATE(); + case 221: + if (lookahead == 'c') ADVANCE(267); + END_STATE(); + case 222: + if (lookahead == 'i') ADVANCE(268); + END_STATE(); + case 223: + if (lookahead == 'd') ADVANCE(269); + END_STATE(); + case 224: + if (lookahead == 'l') ADVANCE(270); + END_STATE(); + case 225: + if (lookahead == 'a') ADVANCE(271); + END_STATE(); + case 226: + if (lookahead == 's') ADVANCE(272); + END_STATE(); + case 227: + if (lookahead == 'c') ADVANCE(273); + END_STATE(); + case 228: + if (lookahead == 'r') ADVANCE(274); + END_STATE(); + case 229: + ACCEPT_TOKEN(sym_ms_signed_ptr_modifier); + END_STATE(); + case 230: + if (lookahead == 'a') ADVANCE(275); + END_STATE(); + case 231: + if (lookahead == 'c') ADVANCE(276); + END_STATE(); + case 232: + if (lookahead == 'i') ADVANCE(277); + END_STATE(); + case 233: + ACCEPT_TOKEN(sym_ms_unsigned_ptr_modifier); + END_STATE(); + case 234: + if (lookahead == 'o') ADVANCE(278); + END_STATE(); + case 235: + if (lookahead == 'g') ADVANCE(279); + END_STATE(); + case 236: + if (lookahead == '_') ADVANCE(280); + END_STATE(); + case 237: + if (lookahead == '_') ADVANCE(281); + END_STATE(); + case 238: + if (lookahead == '_') ADVANCE(282); + END_STATE(); + case 239: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 240: + if (lookahead == 'r') ADVANCE(283); + END_STATE(); + case 241: + if (lookahead == 'u') ADVANCE(284); + END_STATE(); + case 242: + if (lookahead == 't') ADVANCE(285); + END_STATE(); + case 243: + if (lookahead == 'd') ADVANCE(286); + END_STATE(); + case 244: + ACCEPT_TOKEN(anon_sym_extern); + END_STATE(); + case 245: + ACCEPT_TOKEN(anon_sym_inline); + END_STATE(); + case 246: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 247: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 248: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 249: + if (lookahead == '_') ADVANCE(287); + END_STATE(); + case 250: + if (lookahead == 'e') ADVANCE(288); + END_STATE(); + case 251: + if (lookahead == 'c') ADVANCE(289); + END_STATE(); + case 252: + ACCEPT_TOKEN(anon_sym_return); + END_STATE(); + case 253: + ACCEPT_TOKEN(anon_sym_signed); + END_STATE(); + case 254: + ACCEPT_TOKEN(anon_sym_sizeof); + END_STATE(); + case 255: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 256: + ACCEPT_TOKEN(anon_sym_static); + END_STATE(); + case 257: + ACCEPT_TOKEN(anon_sym_struct); + END_STATE(); + case 258: + ACCEPT_TOKEN(anon_sym_switch); + END_STATE(); + case 259: + if (lookahead == 'f') ADVANCE(290); + END_STATE(); + case 260: + if (lookahead == '_') ADVANCE(291); + END_STATE(); + case 261: + if (lookahead == '_') ADVANCE(292); + END_STATE(); + case 262: + if (lookahead == '_') ADVANCE(293); + END_STATE(); + case 263: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 264: + if (lookahead == 'r') ADVANCE(294); + END_STATE(); + case 265: + if (lookahead == 'e') ADVANCE(295); + END_STATE(); + case 266: + if (lookahead == 'l') ADVANCE(296); + END_STATE(); + case 267: + ACCEPT_TOKEN(anon_sym__Atomic); + END_STATE(); + case 268: + if (lookahead == 'b') ADVANCE(297); + END_STATE(); + case 269: + ACCEPT_TOKEN(anon_sym___based); + END_STATE(); + case 270: + ACCEPT_TOKEN(anon_sym___cdecl); + END_STATE(); + case 271: + if (lookahead == 'l') ADVANCE(298); + END_STATE(); + case 272: + if (lookahead == 'p') ADVANCE(299); + END_STATE(); + case 273: + if (lookahead == 'a') ADVANCE(300); + END_STATE(); + case 274: + if (lookahead == 'i') ADVANCE(301); + END_STATE(); + case 275: + if (lookahead == 'l') ADVANCE(302); + END_STATE(); + case 276: + if (lookahead == 'a') ADVANCE(303); + END_STATE(); + case 277: + if (lookahead == 'g') ADVANCE(304); + END_STATE(); + case 278: + if (lookahead == 'r') ADVANCE(305); + END_STATE(); + case 279: + if (lookahead == 'n') ADVANCE(306); + END_STATE(); + case 280: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 281: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 282: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 283: + if (lookahead == '_') ADVANCE(307); + END_STATE(); + case 284: + if (lookahead == 'e') ADVANCE(308); + END_STATE(); + case 285: + ACCEPT_TOKEN(anon_sym_default); + END_STATE(); + case 286: + ACCEPT_TOKEN(anon_sym_defined); + END_STATE(); + case 287: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 288: + if (lookahead == 'r') ADVANCE(309); + END_STATE(); + case 289: + if (lookahead == 't') ADVANCE(310); + END_STATE(); + case 290: + ACCEPT_TOKEN(anon_sym_typedef); + END_STATE(); + case 291: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 292: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 293: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 294: + if (lookahead == '_') ADVANCE(311); + END_STATE(); + case 295: + if (lookahead == 'd') ADVANCE(312); + END_STATE(); + case 296: + if (lookahead == 'e') ADVANCE(313); + END_STATE(); + case 297: + if (lookahead == 'u') ADVANCE(314); + END_STATE(); + case 298: + if (lookahead == 'l') ADVANCE(315); + END_STATE(); + case 299: + if (lookahead == 'e') ADVANCE(316); + END_STATE(); + case 300: + if (lookahead == 'l') ADVANCE(317); + END_STATE(); + case 301: + if (lookahead == 'c') ADVANCE(318); + END_STATE(); + case 302: + if (lookahead == 'l') ADVANCE(319); + END_STATE(); + case 303: + if (lookahead == 'l') ADVANCE(320); + END_STATE(); + case 304: + if (lookahead == 'n') ADVANCE(321); + END_STATE(); + case 305: + if (lookahead == 'c') ADVANCE(322); + END_STATE(); + case 306: + if (lookahead == 'e') ADVANCE(323); + END_STATE(); + case 307: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 308: + ACCEPT_TOKEN(anon_sym_continue); + END_STATE(); + case 309: + ACCEPT_TOKEN(anon_sym_register); + END_STATE(); + case 310: + ACCEPT_TOKEN(anon_sym_restrict); + END_STATE(); + case 311: + if (lookahead == 't') ADVANCE(128); + END_STATE(); + case 312: + ACCEPT_TOKEN(anon_sym_unsigned); + END_STATE(); + case 313: + ACCEPT_TOKEN(anon_sym_volatile); + END_STATE(); + case 314: + if (lookahead == 't') ADVANCE(324); + END_STATE(); + case 315: + ACCEPT_TOKEN(anon_sym___clrcall); + END_STATE(); + case 316: + if (lookahead == 'c') ADVANCE(325); + END_STATE(); + case 317: + if (lookahead == 'l') ADVANCE(326); + END_STATE(); + case 318: + if (lookahead == 't') ADVANCE(327); + END_STATE(); + case 319: + ACCEPT_TOKEN(anon_sym___stdcall); + END_STATE(); + case 320: + if (lookahead == 'l') ADVANCE(328); + END_STATE(); + case 321: + if (lookahead == 'e') ADVANCE(329); + END_STATE(); + case 322: + if (lookahead == 'a') ADVANCE(330); + END_STATE(); + case 323: + if (lookahead == 'd') ADVANCE(331); + END_STATE(); + case 324: + if (lookahead == 'e') ADVANCE(332); + END_STATE(); + case 325: + ACCEPT_TOKEN(anon_sym___declspec); + END_STATE(); + case 326: + ACCEPT_TOKEN(anon_sym___fastcall); + END_STATE(); + case 327: + ACCEPT_TOKEN(sym_ms_restrict_modifier); + END_STATE(); + case 328: + ACCEPT_TOKEN(anon_sym___thiscall); + END_STATE(); + case 329: + if (lookahead == 'd') ADVANCE(333); + END_STATE(); + case 330: + if (lookahead == 'l') ADVANCE(334); + END_STATE(); + case 331: + ACCEPT_TOKEN(anon_sym__unaligned); + END_STATE(); + case 332: + if (lookahead == '_') ADVANCE(335); + END_STATE(); + case 333: + ACCEPT_TOKEN(anon_sym___unaligned); + END_STATE(); + case 334: + if (lookahead == 'l') ADVANCE(336); + END_STATE(); + case 335: + if (lookahead == '_') ADVANCE(337); + END_STATE(); + case 336: + ACCEPT_TOKEN(anon_sym___vectorcall); + END_STATE(); + case 337: + ACCEPT_TOKEN(anon_sym___attribute__); + END_STATE(); + default: + return false; + } +} + +static const TSLexMode ts_lex_modes[STATE_COUNT] = { + [0] = {.lex_state = 0}, + [1] = {.lex_state = 83}, + [2] = {.lex_state = 28}, + [3] = {.lex_state = 28}, + [4] = {.lex_state = 28}, + [5] = {.lex_state = 28}, + [6] = {.lex_state = 28}, + [7] = {.lex_state = 28}, + [8] = {.lex_state = 28}, + [9] = {.lex_state = 28}, + [10] = {.lex_state = 28}, + [11] = {.lex_state = 28}, + [12] = {.lex_state = 28}, + [13] = {.lex_state = 28}, + [14] = {.lex_state = 28}, + [15] = {.lex_state = 28}, + [16] = {.lex_state = 28}, + [17] = {.lex_state = 28}, + [18] = {.lex_state = 28}, + [19] = {.lex_state = 28}, + [20] = {.lex_state = 28}, + [21] = {.lex_state = 83}, + [22] = {.lex_state = 83}, + [23] = {.lex_state = 29}, + [24] = {.lex_state = 83}, + [25] = {.lex_state = 83}, + [26] = {.lex_state = 83}, + [27] = {.lex_state = 83}, + [28] = {.lex_state = 83}, + [29] = {.lex_state = 83}, + [30] = {.lex_state = 83}, + [31] = {.lex_state = 83}, + [32] = {.lex_state = 83}, + [33] = {.lex_state = 29}, + [34] = {.lex_state = 83}, + [35] = {.lex_state = 83}, + [36] = {.lex_state = 83}, + [37] = {.lex_state = 83}, + [38] = {.lex_state = 83}, + [39] = {.lex_state = 29}, + [40] = {.lex_state = 83}, + [41] = {.lex_state = 83}, + [42] = {.lex_state = 83}, + [43] = {.lex_state = 28}, + [44] = {.lex_state = 28}, + [45] = {.lex_state = 28}, + [46] = {.lex_state = 28}, + [47] = {.lex_state = 28}, + [48] = {.lex_state = 83}, + [49] = {.lex_state = 29}, + [50] = {.lex_state = 83}, + [51] = {.lex_state = 29}, + [52] = {.lex_state = 29}, + [53] = {.lex_state = 83}, + [54] = {.lex_state = 83}, + [55] = {.lex_state = 83}, + [56] = {.lex_state = 29}, + [57] = {.lex_state = 29}, + [58] = {.lex_state = 83}, + [59] = {.lex_state = 83}, + [60] = {.lex_state = 83}, + [61] = {.lex_state = 83}, + [62] = {.lex_state = 83}, + [63] = {.lex_state = 83}, + [64] = {.lex_state = 83}, + [65] = {.lex_state = 83}, + [66] = {.lex_state = 83}, + [67] = {.lex_state = 27}, + [68] = {.lex_state = 28}, + [69] = {.lex_state = 28}, + [70] = {.lex_state = 28}, + [71] = {.lex_state = 28}, + [72] = {.lex_state = 28}, + [73] = {.lex_state = 28}, + [74] = {.lex_state = 28}, + [75] = {.lex_state = 28}, + [76] = {.lex_state = 28}, + [77] = {.lex_state = 28}, + [78] = {.lex_state = 28}, + [79] = {.lex_state = 28}, + [80] = {.lex_state = 28}, + [81] = {.lex_state = 28}, + [82] = {.lex_state = 28}, + [83] = {.lex_state = 28}, + [84] = {.lex_state = 28}, + [85] = {.lex_state = 28}, + [86] = {.lex_state = 28}, + [87] = {.lex_state = 28}, + [88] = {.lex_state = 28}, + [89] = {.lex_state = 28}, + [90] = {.lex_state = 28}, + [91] = {.lex_state = 28}, + [92] = {.lex_state = 28}, + [93] = {.lex_state = 28}, + [94] = {.lex_state = 28}, + [95] = {.lex_state = 28}, + [96] = {.lex_state = 28}, + [97] = {.lex_state = 28}, + [98] = {.lex_state = 28}, + [99] = {.lex_state = 28}, + [100] = {.lex_state = 28}, + [101] = {.lex_state = 28}, + [102] = {.lex_state = 28}, + [103] = {.lex_state = 28}, + [104] = {.lex_state = 28}, + [105] = {.lex_state = 28}, + [106] = {.lex_state = 27}, + [107] = {.lex_state = 28}, + [108] = {.lex_state = 28}, + [109] = {.lex_state = 28}, + [110] = {.lex_state = 28}, + [111] = {.lex_state = 28}, + [112] = {.lex_state = 28}, + [113] = {.lex_state = 28}, + [114] = {.lex_state = 28}, + [115] = {.lex_state = 28}, + [116] = {.lex_state = 28}, + [117] = {.lex_state = 28}, + [118] = {.lex_state = 28}, + [119] = {.lex_state = 28}, + [120] = {.lex_state = 28}, + [121] = {.lex_state = 28}, + [122] = {.lex_state = 28}, + [123] = {.lex_state = 28}, + [124] = {.lex_state = 28}, + [125] = {.lex_state = 28}, + [126] = {.lex_state = 83}, + [127] = {.lex_state = 83}, + [128] = {.lex_state = 83}, + [129] = {.lex_state = 29}, + [130] = {.lex_state = 29}, + [131] = {.lex_state = 83}, + [132] = {.lex_state = 83}, + [133] = {.lex_state = 29}, + [134] = {.lex_state = 29}, + [135] = {.lex_state = 29}, + [136] = {.lex_state = 83}, + [137] = {.lex_state = 83}, + [138] = {.lex_state = 83}, + [139] = {.lex_state = 83}, + [140] = {.lex_state = 83}, + [141] = {.lex_state = 29}, + [142] = {.lex_state = 29}, + [143] = {.lex_state = 83}, + [144] = {.lex_state = 83}, + [145] = {.lex_state = 83}, + [146] = {.lex_state = 29}, + [147] = {.lex_state = 29}, + [148] = {.lex_state = 29}, + [149] = {.lex_state = 83}, + [150] = {.lex_state = 29}, + [151] = {.lex_state = 83}, + [152] = {.lex_state = 29}, + [153] = {.lex_state = 83}, + [154] = {.lex_state = 83}, + [155] = {.lex_state = 29}, + [156] = {.lex_state = 29}, + [157] = {.lex_state = 83}, + [158] = {.lex_state = 83}, + [159] = {.lex_state = 83}, + [160] = {.lex_state = 83}, + [161] = {.lex_state = 29}, + [162] = {.lex_state = 83}, + [163] = {.lex_state = 83}, + [164] = {.lex_state = 83}, + [165] = {.lex_state = 83}, + [166] = {.lex_state = 83}, + [167] = {.lex_state = 83}, + [168] = {.lex_state = 83}, + [169] = {.lex_state = 83}, + [170] = {.lex_state = 83}, + [171] = {.lex_state = 83}, + [172] = {.lex_state = 29}, + [173] = {.lex_state = 83}, + [174] = {.lex_state = 83}, + [175] = {.lex_state = 83}, + [176] = {.lex_state = 83}, + [177] = {.lex_state = 83}, + [178] = {.lex_state = 83}, + [179] = {.lex_state = 83}, + [180] = {.lex_state = 83}, + [181] = {.lex_state = 83}, + [182] = {.lex_state = 83}, + [183] = {.lex_state = 83}, + [184] = {.lex_state = 29}, + [185] = {.lex_state = 29}, + [186] = {.lex_state = 83}, + [187] = {.lex_state = 83}, + [188] = {.lex_state = 83}, + [189] = {.lex_state = 83}, + [190] = {.lex_state = 83}, + [191] = {.lex_state = 29}, + [192] = {.lex_state = 83}, + [193] = {.lex_state = 83}, + [194] = {.lex_state = 29}, + [195] = {.lex_state = 83}, + [196] = {.lex_state = 83}, + [197] = {.lex_state = 83}, + [198] = {.lex_state = 83}, + [199] = {.lex_state = 29}, + [200] = {.lex_state = 83}, + [201] = {.lex_state = 29}, + [202] = {.lex_state = 29}, + [203] = {.lex_state = 83}, + [204] = {.lex_state = 83}, + [205] = {.lex_state = 83}, + [206] = {.lex_state = 83}, + [207] = {.lex_state = 83}, + [208] = {.lex_state = 83}, + [209] = {.lex_state = 83}, + [210] = {.lex_state = 29}, + [211] = {.lex_state = 29}, + [212] = {.lex_state = 83}, + [213] = {.lex_state = 83}, + [214] = {.lex_state = 83}, + [215] = {.lex_state = 83}, + [216] = {.lex_state = 83}, + [217] = {.lex_state = 29}, + [218] = {.lex_state = 83}, + [219] = {.lex_state = 83}, + [220] = {.lex_state = 83}, + [221] = {.lex_state = 83}, + [222] = {.lex_state = 83}, + [223] = {.lex_state = 83}, + [224] = {.lex_state = 83}, + [225] = {.lex_state = 83}, + [226] = {.lex_state = 29}, + [227] = {.lex_state = 83}, + [228] = {.lex_state = 83}, + [229] = {.lex_state = 83}, + [230] = {.lex_state = 83}, + [231] = {.lex_state = 29}, + [232] = {.lex_state = 83}, + [233] = {.lex_state = 83}, + [234] = {.lex_state = 83}, + [235] = {.lex_state = 29}, + [236] = {.lex_state = 83}, + [237] = {.lex_state = 83}, + [238] = {.lex_state = 83}, + [239] = {.lex_state = 83}, + [240] = {.lex_state = 83}, + [241] = {.lex_state = 29}, + [242] = {.lex_state = 83}, + [243] = {.lex_state = 83}, + [244] = {.lex_state = 83}, + [245] = {.lex_state = 29}, + [246] = {.lex_state = 83}, + [247] = {.lex_state = 83}, + [248] = {.lex_state = 83}, + [249] = {.lex_state = 83}, + [250] = {.lex_state = 83}, + [251] = {.lex_state = 83}, + [252] = {.lex_state = 83}, + [253] = {.lex_state = 83}, + [254] = {.lex_state = 83}, + [255] = {.lex_state = 83}, + [256] = {.lex_state = 83}, + [257] = {.lex_state = 83}, + [258] = {.lex_state = 83}, + [259] = {.lex_state = 83}, + [260] = {.lex_state = 83}, + [261] = {.lex_state = 83}, + [262] = {.lex_state = 83}, + [263] = {.lex_state = 83}, + [264] = {.lex_state = 83}, + [265] = {.lex_state = 83}, + [266] = {.lex_state = 83}, + [267] = {.lex_state = 83}, + [268] = {.lex_state = 83}, + [269] = {.lex_state = 83}, + [270] = {.lex_state = 83}, + [271] = {.lex_state = 83}, + [272] = {.lex_state = 83}, + [273] = {.lex_state = 83}, + [274] = {.lex_state = 83}, + [275] = {.lex_state = 83}, + [276] = {.lex_state = 83}, + [277] = {.lex_state = 83}, + [278] = {.lex_state = 83}, + [279] = {.lex_state = 83}, + [280] = {.lex_state = 83}, + [281] = {.lex_state = 83}, + [282] = {.lex_state = 83}, + [283] = {.lex_state = 29}, + [284] = {.lex_state = 83}, + [285] = {.lex_state = 83}, + [286] = {.lex_state = 83}, + [287] = {.lex_state = 83}, + [288] = {.lex_state = 83}, + [289] = {.lex_state = 83}, + [290] = {.lex_state = 29}, + [291] = {.lex_state = 83}, + [292] = {.lex_state = 83}, + [293] = {.lex_state = 83}, + [294] = {.lex_state = 83}, + [295] = {.lex_state = 83}, + [296] = {.lex_state = 29}, + [297] = {.lex_state = 83}, + [298] = {.lex_state = 29}, + [299] = {.lex_state = 29}, + [300] = {.lex_state = 83}, + [301] = {.lex_state = 83}, + [302] = {.lex_state = 83}, + [303] = {.lex_state = 83}, + [304] = {.lex_state = 83}, + [305] = {.lex_state = 83}, + [306] = {.lex_state = 83}, + [307] = {.lex_state = 83}, + [308] = {.lex_state = 83}, + [309] = {.lex_state = 83}, + [310] = {.lex_state = 83}, + [311] = {.lex_state = 83}, + [312] = {.lex_state = 83}, + [313] = {.lex_state = 83}, + [314] = {.lex_state = 83}, + [315] = {.lex_state = 83}, + [316] = {.lex_state = 83}, + [317] = {.lex_state = 83}, + [318] = {.lex_state = 83}, + [319] = {.lex_state = 29}, + [320] = {.lex_state = 83}, + [321] = {.lex_state = 29}, + [322] = {.lex_state = 29}, + [323] = {.lex_state = 29}, + [324] = {.lex_state = 83}, + [325] = {.lex_state = 83}, + [326] = {.lex_state = 83}, + [327] = {.lex_state = 83}, + [328] = {.lex_state = 83}, + [329] = {.lex_state = 83}, + [330] = {.lex_state = 83}, + [331] = {.lex_state = 83}, + [332] = {.lex_state = 83}, + [333] = {.lex_state = 83}, + [334] = {.lex_state = 29}, + [335] = {.lex_state = 83}, + [336] = {.lex_state = 83}, + [337] = {.lex_state = 83}, + [338] = {.lex_state = 83}, + [339] = {.lex_state = 83}, + [340] = {.lex_state = 83}, + [341] = {.lex_state = 83}, + [342] = {.lex_state = 83}, + [343] = {.lex_state = 83}, + [344] = {.lex_state = 83}, + [345] = {.lex_state = 29}, + [346] = {.lex_state = 83}, + [347] = {.lex_state = 29}, + [348] = {.lex_state = 29}, + [349] = {.lex_state = 83}, + [350] = {.lex_state = 83}, + [351] = {.lex_state = 29}, + [352] = {.lex_state = 83}, + [353] = {.lex_state = 29}, + [354] = {.lex_state = 29}, + [355] = {.lex_state = 83}, + [356] = {.lex_state = 29}, + [357] = {.lex_state = 29}, + [358] = {.lex_state = 29}, + [359] = {.lex_state = 29}, + [360] = {.lex_state = 29}, + [361] = {.lex_state = 83}, + [362] = {.lex_state = 29}, + [363] = {.lex_state = 83}, + [364] = {.lex_state = 29}, + [365] = {.lex_state = 29}, + [366] = {.lex_state = 83}, + [367] = {.lex_state = 83}, + [368] = {.lex_state = 83}, + [369] = {.lex_state = 83}, + [370] = {.lex_state = 83}, + [371] = {.lex_state = 29}, + [372] = {.lex_state = 29}, + [373] = {.lex_state = 27}, + [374] = {.lex_state = 83}, + [375] = {.lex_state = 83}, + [376] = {.lex_state = 83}, + [377] = {.lex_state = 83}, + [378] = {.lex_state = 83}, + [379] = {.lex_state = 83}, + [380] = {.lex_state = 83}, + [381] = {.lex_state = 83}, + [382] = {.lex_state = 83}, + [383] = {.lex_state = 83}, + [384] = {.lex_state = 27}, + [385] = {.lex_state = 83}, + [386] = {.lex_state = 33}, + [387] = {.lex_state = 33}, + [388] = {.lex_state = 33}, + [389] = {.lex_state = 33}, + [390] = {.lex_state = 33}, + [391] = {.lex_state = 33}, + [392] = {.lex_state = 33}, + [393] = {.lex_state = 33}, + [394] = {.lex_state = 33}, + [395] = {.lex_state = 33}, + [396] = {.lex_state = 33}, + [397] = {.lex_state = 33}, + [398] = {.lex_state = 33}, + [399] = {.lex_state = 33}, + [400] = {.lex_state = 33}, + [401] = {.lex_state = 32}, + [402] = {.lex_state = 32}, + [403] = {.lex_state = 32}, + [404] = {.lex_state = 32}, + [405] = {.lex_state = 32}, + [406] = {.lex_state = 32}, + [407] = {.lex_state = 32}, + [408] = {.lex_state = 32}, + [409] = {.lex_state = 32}, + [410] = {.lex_state = 83}, + [411] = {.lex_state = 33}, + [412] = {.lex_state = 83}, + [413] = {.lex_state = 83}, + [414] = {.lex_state = 32}, + [415] = {.lex_state = 83}, + [416] = {.lex_state = 32}, + [417] = {.lex_state = 34}, + [418] = {.lex_state = 32}, + [419] = {.lex_state = 34}, + [420] = {.lex_state = 34}, + [421] = {.lex_state = 83}, + [422] = {.lex_state = 83}, + [423] = {.lex_state = 31}, + [424] = {.lex_state = 83}, + [425] = {.lex_state = 83}, + [426] = {.lex_state = 83}, + [427] = {.lex_state = 31}, + [428] = {.lex_state = 83}, + [429] = {.lex_state = 83}, + [430] = {.lex_state = 83}, + [431] = {.lex_state = 83}, + [432] = {.lex_state = 83}, + [433] = {.lex_state = 31}, + [434] = {.lex_state = 33}, + [435] = {.lex_state = 33}, + [436] = {.lex_state = 31}, + [437] = {.lex_state = 33}, + [438] = {.lex_state = 33}, + [439] = {.lex_state = 33}, + [440] = {.lex_state = 31}, + [441] = {.lex_state = 83}, + [442] = {.lex_state = 83}, + [443] = {.lex_state = 83}, + [444] = {.lex_state = 83}, + [445] = {.lex_state = 83}, + [446] = {.lex_state = 83}, + [447] = {.lex_state = 83}, + [448] = {.lex_state = 83}, + [449] = {.lex_state = 83}, + [450] = {.lex_state = 83}, + [451] = {.lex_state = 83}, + [452] = {.lex_state = 83}, + [453] = {.lex_state = 83}, + [454] = {.lex_state = 83}, + [455] = {.lex_state = 83}, + [456] = {.lex_state = 83}, + [457] = {.lex_state = 83}, + [458] = {.lex_state = 83}, + [459] = {.lex_state = 83}, + [460] = {.lex_state = 83}, + [461] = {.lex_state = 83}, + [462] = {.lex_state = 83}, + [463] = {.lex_state = 83}, + [464] = {.lex_state = 83}, + [465] = {.lex_state = 83}, + [466] = {.lex_state = 83}, + [467] = {.lex_state = 83}, + [468] = {.lex_state = 83}, + [469] = {.lex_state = 83}, + [470] = {.lex_state = 83}, + [471] = {.lex_state = 83}, + [472] = {.lex_state = 83}, + [473] = {.lex_state = 83}, + [474] = {.lex_state = 83}, + [475] = {.lex_state = 83}, + [476] = {.lex_state = 83}, + [477] = {.lex_state = 83}, + [478] = {.lex_state = 83}, + [479] = {.lex_state = 83}, + [480] = {.lex_state = 83}, + [481] = {.lex_state = 83}, + [482] = {.lex_state = 83}, + [483] = {.lex_state = 83}, + [484] = {.lex_state = 83}, + [485] = {.lex_state = 83}, + [486] = {.lex_state = 83}, + [487] = {.lex_state = 83}, + [488] = {.lex_state = 32}, + [489] = {.lex_state = 83}, + [490] = {.lex_state = 83}, + [491] = {.lex_state = 83}, + [492] = {.lex_state = 83}, + [493] = {.lex_state = 83}, + [494] = {.lex_state = 83}, + [495] = {.lex_state = 83}, + [496] = {.lex_state = 83}, + [497] = {.lex_state = 83}, + [498] = {.lex_state = 83}, + [499] = {.lex_state = 83}, + [500] = {.lex_state = 83}, + [501] = {.lex_state = 83}, + [502] = {.lex_state = 83}, + [503] = {.lex_state = 83}, + [504] = {.lex_state = 83}, + [505] = {.lex_state = 83}, + [506] = {.lex_state = 32}, + [507] = {.lex_state = 83}, + [508] = {.lex_state = 83}, + [509] = {.lex_state = 83}, + [510] = {.lex_state = 83}, + [511] = {.lex_state = 83}, + [512] = {.lex_state = 83}, + [513] = {.lex_state = 32}, + [514] = {.lex_state = 83}, + [515] = {.lex_state = 83}, + [516] = {.lex_state = 32}, + [517] = {.lex_state = 83}, + [518] = {.lex_state = 83}, + [519] = {.lex_state = 32}, + [520] = {.lex_state = 83}, + [521] = {.lex_state = 83}, + [522] = {.lex_state = 32}, + [523] = {.lex_state = 34}, + [524] = {.lex_state = 32}, + [525] = {.lex_state = 83}, + [526] = {.lex_state = 83}, + [527] = {.lex_state = 32}, + [528] = {.lex_state = 83}, + [529] = {.lex_state = 32}, + [530] = {.lex_state = 83}, + [531] = {.lex_state = 83}, + [532] = {.lex_state = 83}, + [533] = {.lex_state = 83}, + [534] = {.lex_state = 83}, + [535] = {.lex_state = 32}, + [536] = {.lex_state = 83}, + [537] = {.lex_state = 83}, + [538] = {.lex_state = 83}, + [539] = {.lex_state = 83}, + [540] = {.lex_state = 83}, + [541] = {.lex_state = 83}, + [542] = {.lex_state = 83}, + [543] = {.lex_state = 83}, + [544] = {.lex_state = 83}, + [545] = {.lex_state = 32}, + [546] = {.lex_state = 32}, + [547] = {.lex_state = 32}, + [548] = {.lex_state = 83}, + [549] = {.lex_state = 34}, + [550] = {.lex_state = 83}, + [551] = {.lex_state = 32}, + [552] = {.lex_state = 83}, + [553] = {.lex_state = 83}, + [554] = {.lex_state = 83}, + [555] = {.lex_state = 83}, + [556] = {.lex_state = 83}, + [557] = {.lex_state = 83}, + [558] = {.lex_state = 83}, + [559] = {.lex_state = 83}, + [560] = {.lex_state = 83}, + [561] = {.lex_state = 83}, + [562] = {.lex_state = 83}, + [563] = {.lex_state = 83}, + [564] = {.lex_state = 83}, + [565] = {.lex_state = 83}, + [566] = {.lex_state = 83}, + [567] = {.lex_state = 83}, + [568] = {.lex_state = 83}, + [569] = {.lex_state = 83}, + [570] = {.lex_state = 32}, + [571] = {.lex_state = 83}, + [572] = {.lex_state = 83}, + [573] = {.lex_state = 83}, + [574] = {.lex_state = 83}, + [575] = {.lex_state = 83}, + [576] = {.lex_state = 83}, + [577] = {.lex_state = 83}, + [578] = {.lex_state = 83}, + [579] = {.lex_state = 83}, + [580] = {.lex_state = 32}, + [581] = {.lex_state = 34}, + [582] = {.lex_state = 32}, + [583] = {.lex_state = 32}, + [584] = {.lex_state = 83}, + [585] = {.lex_state = 32}, + [586] = {.lex_state = 32}, + [587] = {.lex_state = 83}, + [588] = {.lex_state = 83}, + [589] = {.lex_state = 83}, + [590] = {.lex_state = 83}, + [591] = {.lex_state = 83}, + [592] = {.lex_state = 83}, + [593] = {.lex_state = 83}, + [594] = {.lex_state = 32}, + [595] = {.lex_state = 32}, + [596] = {.lex_state = 32}, + [597] = {.lex_state = 32}, + [598] = {.lex_state = 32}, + [599] = {.lex_state = 32}, + [600] = {.lex_state = 32}, + [601] = {.lex_state = 32}, + [602] = {.lex_state = 83}, + [603] = {.lex_state = 83}, + [604] = {.lex_state = 32}, + [605] = {.lex_state = 32}, + [606] = {.lex_state = 32}, + [607] = {.lex_state = 83}, + [608] = {.lex_state = 83}, + [609] = {.lex_state = 32}, + [610] = {.lex_state = 33}, + [611] = {.lex_state = 83}, + [612] = {.lex_state = 32}, + [613] = {.lex_state = 83}, + [614] = {.lex_state = 83}, + [615] = {.lex_state = 32}, + [616] = {.lex_state = 32}, + [617] = {.lex_state = 32}, + [618] = {.lex_state = 33}, + [619] = {.lex_state = 32}, + [620] = {.lex_state = 32}, + [621] = {.lex_state = 32}, + [622] = {.lex_state = 32}, + [623] = {.lex_state = 32}, + [624] = {.lex_state = 32}, + [625] = {.lex_state = 32}, + [626] = {.lex_state = 32}, + [627] = {.lex_state = 32}, + [628] = {.lex_state = 32}, + [629] = {.lex_state = 32}, + [630] = {.lex_state = 32}, + [631] = {.lex_state = 32}, + [632] = {.lex_state = 32}, + [633] = {.lex_state = 32}, + [634] = {.lex_state = 32}, + [635] = {.lex_state = 32}, + [636] = {.lex_state = 32}, + [637] = {.lex_state = 32}, + [638] = {.lex_state = 32}, + [639] = {.lex_state = 32}, + [640] = {.lex_state = 33}, + [641] = {.lex_state = 33}, + [642] = {.lex_state = 33}, + [643] = {.lex_state = 33}, + [644] = {.lex_state = 33}, + [645] = {.lex_state = 33}, + [646] = {.lex_state = 33}, + [647] = {.lex_state = 83}, + [648] = {.lex_state = 32}, + [649] = {.lex_state = 32}, + [650] = {.lex_state = 32}, + [651] = {.lex_state = 32}, + [652] = {.lex_state = 32}, + [653] = {.lex_state = 32}, + [654] = {.lex_state = 32}, + [655] = {.lex_state = 32}, + [656] = {.lex_state = 32}, + [657] = {.lex_state = 32}, + [658] = {.lex_state = 32}, + [659] = {.lex_state = 32}, + [660] = {.lex_state = 33}, + [661] = {.lex_state = 33}, + [662] = {.lex_state = 83}, + [663] = {.lex_state = 33}, + [664] = {.lex_state = 32}, + [665] = {.lex_state = 33}, + [666] = {.lex_state = 33}, + [667] = {.lex_state = 33}, + [668] = {.lex_state = 33}, + [669] = {.lex_state = 33}, + [670] = {.lex_state = 33}, + [671] = {.lex_state = 33}, + [672] = {.lex_state = 33}, + [673] = {.lex_state = 33}, + [674] = {.lex_state = 33}, + [675] = {.lex_state = 33}, + [676] = {.lex_state = 33}, + [677] = {.lex_state = 33}, + [678] = {.lex_state = 32}, + [679] = {.lex_state = 33}, + [680] = {.lex_state = 33}, + [681] = {.lex_state = 33}, + [682] = {.lex_state = 33}, + [683] = {.lex_state = 33}, + [684] = {.lex_state = 33}, + [685] = {.lex_state = 33}, + [686] = {.lex_state = 33}, + [687] = {.lex_state = 33}, + [688] = {.lex_state = 33}, + [689] = {.lex_state = 32}, + [690] = {.lex_state = 32}, + [691] = {.lex_state = 32}, + [692] = {.lex_state = 33}, + [693] = {.lex_state = 32}, + [694] = {.lex_state = 32}, + [695] = {.lex_state = 32}, + [696] = {.lex_state = 32}, + [697] = {.lex_state = 32}, + [698] = {.lex_state = 32}, + [699] = {.lex_state = 32}, + [700] = {.lex_state = 32}, + [701] = {.lex_state = 32}, + [702] = {.lex_state = 32}, + [703] = {.lex_state = 32}, + [704] = {.lex_state = 32}, + [705] = {.lex_state = 32}, + [706] = {.lex_state = 32}, + [707] = {.lex_state = 33}, + [708] = {.lex_state = 32}, + [709] = {.lex_state = 32}, + [710] = {.lex_state = 32}, + [711] = {.lex_state = 32}, + [712] = {.lex_state = 33}, + [713] = {.lex_state = 32}, + [714] = {.lex_state = 32}, + [715] = {.lex_state = 32}, + [716] = {.lex_state = 32}, + [717] = {.lex_state = 32}, + [718] = {.lex_state = 32}, + [719] = {.lex_state = 32}, + [720] = {.lex_state = 32}, + [721] = {.lex_state = 32}, + [722] = {.lex_state = 32}, + [723] = {.lex_state = 32}, + [724] = {.lex_state = 32}, + [725] = {.lex_state = 32}, + [726] = {.lex_state = 32}, + [727] = {.lex_state = 32}, + [728] = {.lex_state = 32}, + [729] = {.lex_state = 32}, + [730] = {.lex_state = 33}, + [731] = {.lex_state = 32}, + [732] = {.lex_state = 32}, + [733] = {.lex_state = 32}, + [734] = {.lex_state = 32}, + [735] = {.lex_state = 32}, + [736] = {.lex_state = 32}, + [737] = {.lex_state = 32}, + [738] = {.lex_state = 32}, + [739] = {.lex_state = 32}, + [740] = {.lex_state = 32}, + [741] = {.lex_state = 32}, + [742] = {.lex_state = 32}, + [743] = {.lex_state = 33}, + [744] = {.lex_state = 32}, + [745] = {.lex_state = 32}, + [746] = {.lex_state = 32}, + [747] = {.lex_state = 32}, + [748] = {.lex_state = 32}, + [749] = {.lex_state = 32}, + [750] = {.lex_state = 33}, + [751] = {.lex_state = 32}, + [752] = {.lex_state = 32}, + [753] = {.lex_state = 32}, + [754] = {.lex_state = 32}, + [755] = {.lex_state = 32}, + [756] = {.lex_state = 32}, + [757] = {.lex_state = 32}, + [758] = {.lex_state = 33}, + [759] = {.lex_state = 32}, + [760] = {.lex_state = 32}, + [761] = {.lex_state = 32}, + [762] = {.lex_state = 32}, + [763] = {.lex_state = 31}, + [764] = {.lex_state = 34}, + [765] = {.lex_state = 34}, + [766] = {.lex_state = 34}, + [767] = {.lex_state = 34}, + [768] = {.lex_state = 34}, + [769] = {.lex_state = 34}, + [770] = {.lex_state = 32}, + [771] = {.lex_state = 32}, + [772] = {.lex_state = 32}, + [773] = {.lex_state = 32}, + [774] = {.lex_state = 32}, + [775] = {.lex_state = 32}, + [776] = {.lex_state = 32}, + [777] = {.lex_state = 32}, + [778] = {.lex_state = 32}, + [779] = {.lex_state = 32}, + [780] = {.lex_state = 32}, + [781] = {.lex_state = 32}, + [782] = {.lex_state = 34}, + [783] = {.lex_state = 32}, + [784] = {.lex_state = 31}, + [785] = {.lex_state = 32}, + [786] = {.lex_state = 32}, + [787] = {.lex_state = 31}, + [788] = {.lex_state = 32}, + [789] = {.lex_state = 34}, + [790] = {.lex_state = 34}, + [791] = {.lex_state = 34}, + [792] = {.lex_state = 32}, + [793] = {.lex_state = 34}, + [794] = {.lex_state = 32}, + [795] = {.lex_state = 34}, + [796] = {.lex_state = 32}, + [797] = {.lex_state = 32}, + [798] = {.lex_state = 32}, + [799] = {.lex_state = 34}, + [800] = {.lex_state = 34}, + [801] = {.lex_state = 32}, + [802] = {.lex_state = 32}, + [803] = {.lex_state = 32}, + [804] = {.lex_state = 32}, + [805] = {.lex_state = 32}, + [806] = {.lex_state = 32}, + [807] = {.lex_state = 32}, + [808] = {.lex_state = 32}, + [809] = {.lex_state = 32}, + [810] = {.lex_state = 32}, + [811] = {.lex_state = 32}, + [812] = {.lex_state = 32}, + [813] = {.lex_state = 34}, + [814] = {.lex_state = 32}, + [815] = {.lex_state = 31}, + [816] = {.lex_state = 34}, + [817] = {.lex_state = 32}, + [818] = {.lex_state = 33}, + [819] = {.lex_state = 34}, + [820] = {.lex_state = 32}, + [821] = {.lex_state = 34}, + [822] = {.lex_state = 32}, + [823] = {.lex_state = 34}, + [824] = {.lex_state = 32}, + [825] = {.lex_state = 32}, + [826] = {.lex_state = 32}, + [827] = {.lex_state = 32}, + [828] = {.lex_state = 32}, + [829] = {.lex_state = 34}, + [830] = {.lex_state = 32}, + [831] = {.lex_state = 33}, + [832] = {.lex_state = 33}, + [833] = {.lex_state = 33}, + [834] = {.lex_state = 33}, + [835] = {.lex_state = 33}, + [836] = {.lex_state = 33}, + [837] = {.lex_state = 33}, + [838] = {.lex_state = 33}, + [839] = {.lex_state = 33}, + [840] = {.lex_state = 33}, + [841] = {.lex_state = 33}, + [842] = {.lex_state = 33}, + [843] = {.lex_state = 33}, + [844] = {.lex_state = 33}, + [845] = {.lex_state = 33}, + [846] = {.lex_state = 33}, + [847] = {.lex_state = 33}, + [848] = {.lex_state = 33}, + [849] = {.lex_state = 33}, + [850] = {.lex_state = 33}, + [851] = {.lex_state = 33}, + [852] = {.lex_state = 33}, + [853] = {.lex_state = 33}, + [854] = {.lex_state = 33}, + [855] = {.lex_state = 33}, + [856] = {.lex_state = 33}, + [857] = {.lex_state = 33}, + [858] = {.lex_state = 33}, + [859] = {.lex_state = 33}, + [860] = {.lex_state = 33}, + [861] = {.lex_state = 33}, + [862] = {.lex_state = 33}, + [863] = {.lex_state = 33}, + [864] = {.lex_state = 33}, + [865] = {.lex_state = 33}, + [866] = {.lex_state = 33}, + [867] = {.lex_state = 33}, + [868] = {.lex_state = 33}, + [869] = {.lex_state = 33}, + [870] = {.lex_state = 33}, + [871] = {.lex_state = 33}, + [872] = {.lex_state = 33}, + [873] = {.lex_state = 33}, + [874] = {.lex_state = 33}, + [875] = {.lex_state = 33}, + [876] = {.lex_state = 30}, + [877] = {.lex_state = 19}, + [878] = {.lex_state = 33}, + [879] = {.lex_state = 33}, + [880] = {.lex_state = 33}, + [881] = {.lex_state = 33}, + [882] = {.lex_state = 33}, + [883] = {.lex_state = 33}, + [884] = {.lex_state = 33}, + [885] = {.lex_state = 33}, + [886] = {.lex_state = 33}, + [887] = {.lex_state = 33}, + [888] = {.lex_state = 30}, + [889] = {.lex_state = 33}, + [890] = {.lex_state = 33}, + [891] = {.lex_state = 33}, + [892] = {.lex_state = 33}, + [893] = {.lex_state = 33}, + [894] = {.lex_state = 30}, + [895] = {.lex_state = 33}, + [896] = {.lex_state = 33}, + [897] = {.lex_state = 33}, + [898] = {.lex_state = 33}, + [899] = {.lex_state = 33}, + [900] = {.lex_state = 33}, + [901] = {.lex_state = 33}, + [902] = {.lex_state = 30}, + [903] = {.lex_state = 33}, + [904] = {.lex_state = 33}, + [905] = {.lex_state = 30}, + [906] = {.lex_state = 33}, + [907] = {.lex_state = 30}, + [908] = {.lex_state = 33}, + [909] = {.lex_state = 30}, + [910] = {.lex_state = 30}, + [911] = {.lex_state = 30}, + [912] = {.lex_state = 30}, + [913] = {.lex_state = 30}, + [914] = {.lex_state = 33}, + [915] = {.lex_state = 30}, + [916] = {.lex_state = 30}, + [917] = {.lex_state = 30}, + [918] = {.lex_state = 30}, + [919] = {.lex_state = 30}, + [920] = {.lex_state = 30}, + [921] = {.lex_state = 33}, + [922] = {.lex_state = 33}, + [923] = {.lex_state = 30}, + [924] = {.lex_state = 30}, + [925] = {.lex_state = 30}, + [926] = {.lex_state = 33}, + [927] = {.lex_state = 30}, + [928] = {.lex_state = 30}, + [929] = {.lex_state = 33}, + [930] = {.lex_state = 30}, + [931] = {.lex_state = 30}, + [932] = {.lex_state = 30}, + [933] = {.lex_state = 30}, + [934] = {.lex_state = 33}, + [935] = {.lex_state = 30}, + [936] = {.lex_state = 30}, + [937] = {.lex_state = 30}, + [938] = {.lex_state = 33}, + [939] = {.lex_state = 30}, + [940] = {.lex_state = 30}, + [941] = {.lex_state = 30}, + [942] = {.lex_state = 30}, + [943] = {.lex_state = 30}, + [944] = {.lex_state = 30}, + [945] = {.lex_state = 30}, + [946] = {.lex_state = 33}, + [947] = {.lex_state = 33}, + [948] = {.lex_state = 19}, + [949] = {.lex_state = 19}, + [950] = {.lex_state = 19}, + [951] = {.lex_state = 19}, + [952] = {.lex_state = 19}, + [953] = {.lex_state = 19}, + [954] = {.lex_state = 19}, + [955] = {.lex_state = 19}, + [956] = {.lex_state = 19}, + [957] = {.lex_state = 19}, + [958] = {.lex_state = 19}, + [959] = {.lex_state = 19}, + [960] = {.lex_state = 19}, + [961] = {.lex_state = 33}, + [962] = {.lex_state = 19}, + [963] = {.lex_state = 19}, + [964] = {.lex_state = 33}, + [965] = {.lex_state = 19}, + [966] = {.lex_state = 19}, + [967] = {.lex_state = 19}, + [968] = {.lex_state = 19}, + [969] = {.lex_state = 19}, + [970] = {.lex_state = 19}, + [971] = {.lex_state = 19}, + [972] = {.lex_state = 19}, + [973] = {.lex_state = 19}, + [974] = {.lex_state = 19}, + [975] = {.lex_state = 19}, + [976] = {.lex_state = 19}, + [977] = {.lex_state = 19}, + [978] = {.lex_state = 33}, + [979] = {.lex_state = 33}, + [980] = {.lex_state = 33}, + [981] = {.lex_state = 33}, + [982] = {.lex_state = 33}, + [983] = {.lex_state = 33}, + [984] = {.lex_state = 33}, + [985] = {.lex_state = 33}, + [986] = {.lex_state = 33}, + [987] = {.lex_state = 33}, + [988] = {.lex_state = 33}, + [989] = {.lex_state = 33}, + [990] = {.lex_state = 33}, + [991] = {.lex_state = 33}, + [992] = {.lex_state = 33}, + [993] = {.lex_state = 33}, + [994] = {.lex_state = 33}, + [995] = {.lex_state = 33}, + [996] = {.lex_state = 33}, + [997] = {.lex_state = 33}, + [998] = {.lex_state = 33}, + [999] = {.lex_state = 33}, + [1000] = {.lex_state = 83}, + [1001] = {.lex_state = 83}, + [1002] = {.lex_state = 83}, + [1003] = {.lex_state = 33}, + [1004] = {.lex_state = 33}, + [1005] = {.lex_state = 33}, + [1006] = {.lex_state = 33}, + [1007] = {.lex_state = 33}, + [1008] = {.lex_state = 33}, + [1009] = {.lex_state = 83}, + [1010] = {.lex_state = 33}, + [1011] = {.lex_state = 33}, + [1012] = {.lex_state = 33}, + [1013] = {.lex_state = 33}, + [1014] = {.lex_state = 33}, + [1015] = {.lex_state = 83}, + [1016] = {.lex_state = 83}, + [1017] = {.lex_state = 83}, + [1018] = {.lex_state = 33}, + [1019] = {.lex_state = 33}, + [1020] = {.lex_state = 83}, + [1021] = {.lex_state = 33}, + [1022] = {.lex_state = 33}, + [1023] = {.lex_state = 33}, + [1024] = {.lex_state = 33}, + [1025] = {.lex_state = 83}, + [1026] = {.lex_state = 33}, + [1027] = {.lex_state = 33}, + [1028] = {.lex_state = 83}, + [1029] = {.lex_state = 33}, + [1030] = {.lex_state = 33}, + [1031] = {.lex_state = 33}, + [1032] = {.lex_state = 33}, + [1033] = {.lex_state = 33}, + [1034] = {.lex_state = 33}, + [1035] = {.lex_state = 33}, + [1036] = {.lex_state = 33}, + [1037] = {.lex_state = 33}, + [1038] = {.lex_state = 33}, + [1039] = {.lex_state = 83}, + [1040] = {.lex_state = 83}, + [1041] = {.lex_state = 83}, + [1042] = {.lex_state = 83}, + [1043] = {.lex_state = 83}, + [1044] = {.lex_state = 83}, + [1045] = {.lex_state = 83}, + [1046] = {.lex_state = 83}, + [1047] = {.lex_state = 83}, + [1048] = {.lex_state = 83}, + [1049] = {.lex_state = 33}, + [1050] = {.lex_state = 33}, + [1051] = {.lex_state = 33}, + [1052] = {.lex_state = 83}, + [1053] = {.lex_state = 83}, + [1054] = {.lex_state = 83}, + [1055] = {.lex_state = 83}, + [1056] = {.lex_state = 83}, + [1057] = {.lex_state = 83}, + [1058] = {.lex_state = 83}, + [1059] = {.lex_state = 83}, + [1060] = {.lex_state = 83}, + [1061] = {.lex_state = 83}, + [1062] = {.lex_state = 35}, + [1063] = {.lex_state = 35}, + [1064] = {.lex_state = 35}, + [1065] = {.lex_state = 83}, + [1066] = {.lex_state = 83}, + [1067] = {.lex_state = 83}, + [1068] = {.lex_state = 83}, + [1069] = {.lex_state = 83}, + [1070] = {.lex_state = 83}, + [1071] = {.lex_state = 35}, + [1072] = {.lex_state = 83}, + [1073] = {.lex_state = 83}, + [1074] = {.lex_state = 83}, + [1075] = {.lex_state = 83}, + [1076] = {.lex_state = 83}, + [1077] = {.lex_state = 83}, + [1078] = {.lex_state = 83}, + [1079] = {.lex_state = 83}, + [1080] = {.lex_state = 83}, + [1081] = {.lex_state = 83}, + [1082] = {.lex_state = 83}, + [1083] = {.lex_state = 83}, + [1084] = {.lex_state = 83}, + [1085] = {.lex_state = 83}, + [1086] = {.lex_state = 83}, + [1087] = {.lex_state = 83}, + [1088] = {.lex_state = 83}, + [1089] = {.lex_state = 83}, + [1090] = {.lex_state = 83}, + [1091] = {.lex_state = 83}, + [1092] = {.lex_state = 83}, + [1093] = {.lex_state = 83}, + [1094] = {.lex_state = 83}, + [1095] = {.lex_state = 83}, + [1096] = {.lex_state = 83}, + [1097] = {.lex_state = 83}, + [1098] = {.lex_state = 83}, + [1099] = {.lex_state = 83}, + [1100] = {.lex_state = 83}, + [1101] = {.lex_state = 83}, + [1102] = {.lex_state = 83}, + [1103] = {.lex_state = 83}, + [1104] = {.lex_state = 83}, + [1105] = {.lex_state = 83}, + [1106] = {.lex_state = 83}, + [1107] = {.lex_state = 83}, + [1108] = {.lex_state = 83}, + [1109] = {.lex_state = 83}, + [1110] = {.lex_state = 28}, + [1111] = {.lex_state = 83}, + [1112] = {.lex_state = 33}, + [1113] = {.lex_state = 83}, + [1114] = {.lex_state = 33}, + [1115] = {.lex_state = 22}, + [1116] = {.lex_state = 83}, + [1117] = {.lex_state = 22}, + [1118] = {.lex_state = 24}, + [1119] = {.lex_state = 83}, + [1120] = {.lex_state = 83}, + [1121] = {.lex_state = 83}, + [1122] = {.lex_state = 24}, + [1123] = {.lex_state = 83}, + [1124] = {.lex_state = 83}, + [1125] = {.lex_state = 28}, + [1126] = {.lex_state = 83}, + [1127] = {.lex_state = 83}, + [1128] = {.lex_state = 83}, + [1129] = {.lex_state = 22}, + [1130] = {.lex_state = 22}, + [1131] = {.lex_state = 83}, + [1132] = {.lex_state = 22}, + [1133] = {.lex_state = 24}, + [1134] = {.lex_state = 83}, + [1135] = {.lex_state = 22}, + [1136] = {.lex_state = 83}, + [1137] = {.lex_state = 24}, + [1138] = {.lex_state = 83}, + [1139] = {.lex_state = 83}, + [1140] = {.lex_state = 24}, + [1141] = {.lex_state = 83}, + [1142] = {.lex_state = 83}, + [1143] = {.lex_state = 24}, + [1144] = {.lex_state = 83}, + [1145] = {.lex_state = 24}, + [1146] = {.lex_state = 33}, + [1147] = {.lex_state = 83}, + [1148] = {.lex_state = 22}, + [1149] = {.lex_state = 0}, + [1150] = {.lex_state = 0}, + [1151] = {.lex_state = 28}, + [1152] = {.lex_state = 0}, + [1153] = {.lex_state = 0}, + [1154] = {.lex_state = 0}, + [1155] = {.lex_state = 0}, + [1156] = {.lex_state = 33}, + [1157] = {.lex_state = 0}, + [1158] = {.lex_state = 0}, + [1159] = {.lex_state = 0}, + [1160] = {.lex_state = 0}, + [1161] = {.lex_state = 33}, + [1162] = {.lex_state = 0}, + [1163] = {.lex_state = 19}, + [1164] = {.lex_state = 0}, + [1165] = {.lex_state = 19}, + [1166] = {.lex_state = 0}, + [1167] = {.lex_state = 0}, + [1168] = {.lex_state = 28}, + [1169] = {.lex_state = 0}, + [1170] = {.lex_state = 0}, + [1171] = {.lex_state = 19}, + [1172] = {.lex_state = 28}, + [1173] = {.lex_state = 0}, + [1174] = {.lex_state = 33}, + [1175] = {.lex_state = 33}, + [1176] = {.lex_state = 0}, + [1177] = {.lex_state = 0}, + [1178] = {.lex_state = 0}, + [1179] = {.lex_state = 0}, + [1180] = {.lex_state = 19}, + [1181] = {.lex_state = 0}, + [1182] = {.lex_state = 0}, + [1183] = {.lex_state = 28}, + [1184] = {.lex_state = 0}, + [1185] = {.lex_state = 83}, + [1186] = {.lex_state = 0}, + [1187] = {.lex_state = 0}, + [1188] = {.lex_state = 0}, + [1189] = {.lex_state = 0}, + [1190] = {.lex_state = 33}, + [1191] = {.lex_state = 0}, + [1192] = {.lex_state = 0}, + [1193] = {.lex_state = 0}, + [1194] = {.lex_state = 33}, + [1195] = {.lex_state = 28}, + [1196] = {.lex_state = 28}, + [1197] = {.lex_state = 0}, + [1198] = {.lex_state = 0}, + [1199] = {.lex_state = 0}, + [1200] = {.lex_state = 0}, + [1201] = {.lex_state = 0}, + [1202] = {.lex_state = 0}, + [1203] = {.lex_state = 28}, + [1204] = {.lex_state = 0}, + [1205] = {.lex_state = 0}, + [1206] = {.lex_state = 0}, + [1207] = {.lex_state = 83}, + [1208] = {.lex_state = 0}, + [1209] = {.lex_state = 23}, + [1210] = {.lex_state = 83}, + [1211] = {.lex_state = 0}, + [1212] = {.lex_state = 23}, + [1213] = {.lex_state = 23}, + [1214] = {.lex_state = 33}, + [1215] = {.lex_state = 23}, + [1216] = {.lex_state = 83}, + [1217] = {.lex_state = 0}, + [1218] = {.lex_state = 83}, + [1219] = {.lex_state = 33}, + [1220] = {.lex_state = 28}, + [1221] = {.lex_state = 83}, + [1222] = {.lex_state = 26}, + [1223] = {.lex_state = 23}, + [1224] = {.lex_state = 0}, + [1225] = {.lex_state = 83}, + [1226] = {.lex_state = 33}, + [1227] = {.lex_state = 83}, + [1228] = {.lex_state = 28}, + [1229] = {.lex_state = 0}, + [1230] = {.lex_state = 83}, + [1231] = {.lex_state = 23}, + [1232] = {.lex_state = 0}, + [1233] = {.lex_state = 0}, + [1234] = {.lex_state = 83}, + [1235] = {.lex_state = 0}, + [1236] = {.lex_state = 0}, + [1237] = {.lex_state = 33}, + [1238] = {.lex_state = 83}, + [1239] = {.lex_state = 23}, + [1240] = {.lex_state = 0}, + [1241] = {.lex_state = 26}, + [1242] = {.lex_state = 0}, + [1243] = {.lex_state = 23}, + [1244] = {.lex_state = 83}, + [1245] = {.lex_state = 0}, + [1246] = {.lex_state = 33}, + [1247] = {.lex_state = 23}, + [1248] = {.lex_state = 33}, + [1249] = {.lex_state = 83}, + [1250] = {.lex_state = 23}, + [1251] = {.lex_state = 23}, + [1252] = {.lex_state = 0}, + [1253] = {.lex_state = 23}, + [1254] = {.lex_state = 23}, + [1255] = {.lex_state = 23}, + [1256] = {.lex_state = 33}, + [1257] = {.lex_state = 26}, + [1258] = {.lex_state = 83}, + [1259] = {.lex_state = 83}, + [1260] = {.lex_state = 0}, + [1261] = {.lex_state = 23}, + [1262] = {.lex_state = 23}, + [1263] = {.lex_state = 28}, + [1264] = {.lex_state = 83}, + [1265] = {.lex_state = 83}, + [1266] = {.lex_state = 83}, + [1267] = {.lex_state = 83}, + [1268] = {.lex_state = 33}, + [1269] = {.lex_state = 83}, + [1270] = {.lex_state = 23}, + [1271] = {.lex_state = 33}, + [1272] = {.lex_state = 0}, + [1273] = {.lex_state = 0}, + [1274] = {.lex_state = 27}, + [1275] = {.lex_state = 0}, + [1276] = {.lex_state = 0}, + [1277] = {.lex_state = 0}, + [1278] = {.lex_state = 33}, + [1279] = {.lex_state = 0}, + [1280] = {.lex_state = 0}, + [1281] = {.lex_state = 0}, + [1282] = {.lex_state = 0}, + [1283] = {.lex_state = 0}, + [1284] = {.lex_state = 0}, + [1285] = {.lex_state = 0}, + [1286] = {.lex_state = 0}, + [1287] = {.lex_state = 27}, + [1288] = {.lex_state = 0}, + [1289] = {.lex_state = 27}, + [1290] = {.lex_state = 27}, + [1291] = {.lex_state = 19}, + [1292] = {.lex_state = 19}, + [1293] = {.lex_state = 27}, + [1294] = {.lex_state = 19}, + [1295] = {.lex_state = 19}, + [1296] = {.lex_state = 0}, + [1297] = {.lex_state = 19}, + [1298] = {.lex_state = 19}, + [1299] = {.lex_state = 27}, + [1300] = {.lex_state = 19}, + [1301] = {.lex_state = 19}, + [1302] = {.lex_state = 27}, + [1303] = {.lex_state = 19}, + [1304] = {.lex_state = 19}, + [1305] = {.lex_state = 0}, + [1306] = {.lex_state = 19}, + [1307] = {.lex_state = 0}, + [1308] = {.lex_state = 19}, + [1309] = {.lex_state = 33}, + [1310] = {.lex_state = 19}, + [1311] = {.lex_state = 27}, + [1312] = {.lex_state = 0}, + [1313] = {.lex_state = 0}, + [1314] = {.lex_state = 0}, + [1315] = {.lex_state = 33}, + [1316] = {.lex_state = 0}, + [1317] = {.lex_state = 0}, + [1318] = {.lex_state = 19}, + [1319] = {.lex_state = 19}, + [1320] = {.lex_state = 19}, + [1321] = {.lex_state = 0}, + [1322] = {.lex_state = 0}, + [1323] = {.lex_state = 0}, + [1324] = {.lex_state = 0}, + [1325] = {.lex_state = 0}, + [1326] = {.lex_state = 0}, + [1327] = {.lex_state = 0}, + [1328] = {.lex_state = 0}, + [1329] = {.lex_state = 0}, + [1330] = {.lex_state = 0}, + [1331] = {.lex_state = 27}, + [1332] = {.lex_state = 83}, + [1333] = {.lex_state = 0}, + [1334] = {.lex_state = 0}, + [1335] = {.lex_state = 0}, + [1336] = {.lex_state = 27}, + [1337] = {.lex_state = 0}, + [1338] = {.lex_state = 27}, + [1339] = {.lex_state = 33}, + [1340] = {.lex_state = 27}, + [1341] = {.lex_state = 0}, + [1342] = {.lex_state = 33}, + [1343] = {.lex_state = 0}, + [1344] = {.lex_state = 0}, + [1345] = {.lex_state = 0}, + [1346] = {.lex_state = 0}, + [1347] = {.lex_state = 0}, + [1348] = {.lex_state = 0}, + [1349] = {.lex_state = 0}, + [1350] = {.lex_state = 0}, + [1351] = {.lex_state = 0}, + [1352] = {.lex_state = 27}, + [1353] = {.lex_state = 27}, + [1354] = {.lex_state = 0}, + [1355] = {.lex_state = 0}, + [1356] = {.lex_state = 19}, + [1357] = {.lex_state = 27}, + [1358] = {.lex_state = 27}, + [1359] = {.lex_state = 0}, + [1360] = {.lex_state = 0}, + [1361] = {.lex_state = 33}, + [1362] = {.lex_state = 0}, + [1363] = {.lex_state = 27}, + [1364] = {.lex_state = 0}, + [1365] = {.lex_state = 19}, + [1366] = {.lex_state = 0}, + [1367] = {.lex_state = 0}, + [1368] = {.lex_state = 0}, + [1369] = {.lex_state = 33}, + [1370] = {.lex_state = 27}, + [1371] = {.lex_state = 33}, + [1372] = {.lex_state = 33}, + [1373] = {.lex_state = 27}, + [1374] = {.lex_state = 0}, + [1375] = {.lex_state = 27}, + [1376] = {.lex_state = 0}, + [1377] = {.lex_state = 0}, + [1378] = {.lex_state = 33}, + [1379] = {.lex_state = 0}, + [1380] = {.lex_state = 0}, + [1381] = {.lex_state = 0}, + [1382] = {.lex_state = 0}, + [1383] = {.lex_state = 33}, + [1384] = {.lex_state = 0}, + [1385] = {.lex_state = 0}, + [1386] = {.lex_state = 0}, + [1387] = {.lex_state = 33}, + [1388] = {.lex_state = 0}, + [1389] = {.lex_state = 0}, + [1390] = {.lex_state = 0}, + [1391] = {.lex_state = 27}, + [1392] = {.lex_state = 27}, + [1393] = {.lex_state = 0}, + [1394] = {.lex_state = 27}, + [1395] = {.lex_state = 0}, + [1396] = {.lex_state = 33}, + [1397] = {.lex_state = 27}, + [1398] = {.lex_state = 0}, + [1399] = {.lex_state = 19}, + [1400] = {.lex_state = 33}, + [1401] = {.lex_state = 33}, + [1402] = {.lex_state = 27}, + [1403] = {.lex_state = 27}, + [1404] = {.lex_state = 33}, + [1405] = {.lex_state = 33}, + [1406] = {.lex_state = 19}, + [1407] = {.lex_state = 0}, + [1408] = {.lex_state = 0}, + [1409] = {.lex_state = 27}, + [1410] = {.lex_state = 0}, + [1411] = {.lex_state = 27}, + [1412] = {.lex_state = 0}, + [1413] = {.lex_state = 0}, + [1414] = {.lex_state = 33}, + [1415] = {.lex_state = 0}, + [1416] = {.lex_state = 27}, + [1417] = {.lex_state = 0}, + [1418] = {.lex_state = 19}, + [1419] = {.lex_state = 0}, + [1420] = {.lex_state = 0}, + [1421] = {.lex_state = 33}, + [1422] = {.lex_state = 33}, + [1423] = {.lex_state = 33}, + [1424] = {.lex_state = 0}, + [1425] = {.lex_state = 33}, + [1426] = {.lex_state = 0}, + [1427] = {.lex_state = 27}, + [1428] = {.lex_state = 0}, + [1429] = {.lex_state = 0}, + [1430] = {.lex_state = 0}, + [1431] = {.lex_state = 19}, + [1432] = {.lex_state = 0}, + [1433] = {.lex_state = 27}, + [1434] = {.lex_state = 33}, + [1435] = {.lex_state = 27}, + [1436] = {.lex_state = 0}, + [1437] = {.lex_state = 19}, + [1438] = {.lex_state = 0}, + [1439] = {.lex_state = 0}, + [1440] = {.lex_state = 0}, + [1441] = {.lex_state = 19}, + [1442] = {.lex_state = 19}, + [1443] = {.lex_state = 33}, + [1444] = {.lex_state = 0}, + [1445] = {.lex_state = 33}, + [1446] = {.lex_state = 0}, + [1447] = {.lex_state = 83}, + [1448] = {.lex_state = 19}, + [1449] = {.lex_state = 0}, + [1450] = {.lex_state = 83}, + [1451] = {.lex_state = 0}, + [1452] = {.lex_state = 19}, + [1453] = {.lex_state = 83}, + [1454] = {.lex_state = 33}, + [1455] = {.lex_state = 0}, + [1456] = {.lex_state = 0}, + [1457] = {.lex_state = 0}, + [1458] = {.lex_state = 83}, + [1459] = {.lex_state = 0}, + [1460] = {.lex_state = 83}, + [1461] = {.lex_state = 83}, + [1462] = {.lex_state = 83}, + [1463] = {.lex_state = 83}, + [1464] = {.lex_state = 33}, + [1465] = {.lex_state = 83}, +}; + +static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { + [0] = { + [ts_builtin_sym_end] = ACTIONS(1), + [sym_identifier] = ACTIONS(1), + [aux_sym_preproc_include_token1] = ACTIONS(1), + [aux_sym_preproc_def_token1] = ACTIONS(1), + [anon_sym_LPAREN] = ACTIONS(1), + [anon_sym_DOT_DOT_DOT] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), + [anon_sym_RPAREN] = ACTIONS(1), + [aux_sym_preproc_if_token1] = ACTIONS(1), + [aux_sym_preproc_if_token2] = ACTIONS(1), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1), + [aux_sym_preproc_else_token1] = ACTIONS(1), + [aux_sym_preproc_elif_token1] = ACTIONS(1), + [sym_preproc_directive] = ACTIONS(1), + [anon_sym_LPAREN2] = ACTIONS(1), + [anon_sym_defined] = ACTIONS(1), + [anon_sym_BANG] = ACTIONS(1), + [anon_sym_TILDE] = ACTIONS(1), + [anon_sym_DASH] = ACTIONS(1), + [anon_sym_PLUS] = ACTIONS(1), + [anon_sym_STAR] = ACTIONS(1), + [anon_sym_SLASH] = ACTIONS(1), + [anon_sym_PERCENT] = ACTIONS(1), + [anon_sym_PIPE_PIPE] = ACTIONS(1), + [anon_sym_AMP_AMP] = ACTIONS(1), + [anon_sym_PIPE] = ACTIONS(1), + [anon_sym_CARET] = ACTIONS(1), + [anon_sym_AMP] = ACTIONS(1), + [anon_sym_EQ_EQ] = ACTIONS(1), + [anon_sym_BANG_EQ] = ACTIONS(1), + [anon_sym_GT] = ACTIONS(1), + [anon_sym_GT_EQ] = ACTIONS(1), + [anon_sym_LT_EQ] = ACTIONS(1), + [anon_sym_LT] = ACTIONS(1), + [anon_sym_LT_LT] = ACTIONS(1), + [anon_sym_GT_GT] = ACTIONS(1), + [anon_sym_SEMI] = ACTIONS(1), + [anon_sym_typedef] = ACTIONS(1), + [anon_sym_extern] = ACTIONS(1), + [anon_sym___attribute__] = ACTIONS(1), + [anon_sym_COLON_COLON] = ACTIONS(1), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1), + [anon_sym___declspec] = ACTIONS(1), + [anon_sym___based] = ACTIONS(1), + [anon_sym___cdecl] = ACTIONS(1), + [anon_sym___clrcall] = ACTIONS(1), + [anon_sym___stdcall] = ACTIONS(1), + [anon_sym___fastcall] = ACTIONS(1), + [anon_sym___thiscall] = ACTIONS(1), + [anon_sym___vectorcall] = ACTIONS(1), + [sym_ms_restrict_modifier] = ACTIONS(1), + [sym_ms_unsigned_ptr_modifier] = ACTIONS(1), + [sym_ms_signed_ptr_modifier] = ACTIONS(1), + [anon_sym__unaligned] = ACTIONS(1), + [anon_sym___unaligned] = ACTIONS(1), + [anon_sym_LBRACE] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_LBRACK] = ACTIONS(1), + [anon_sym_RBRACK] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), + [anon_sym_static] = ACTIONS(1), + [anon_sym_auto] = ACTIONS(1), + [anon_sym_register] = ACTIONS(1), + [anon_sym_inline] = ACTIONS(1), + [anon_sym_const] = ACTIONS(1), + [anon_sym_volatile] = ACTIONS(1), + [anon_sym_restrict] = ACTIONS(1), + [anon_sym__Atomic] = ACTIONS(1), + [anon_sym_signed] = ACTIONS(1), + [anon_sym_unsigned] = ACTIONS(1), + [anon_sym_long] = ACTIONS(1), + [anon_sym_short] = ACTIONS(1), + [sym_primitive_type] = ACTIONS(1), + [anon_sym_enum] = ACTIONS(1), + [anon_sym_struct] = ACTIONS(1), + [anon_sym_union] = ACTIONS(1), + [anon_sym_COLON] = ACTIONS(1), + [anon_sym_if] = ACTIONS(1), + [anon_sym_else] = ACTIONS(1), + [anon_sym_switch] = ACTIONS(1), + [anon_sym_case] = ACTIONS(1), + [anon_sym_default] = ACTIONS(1), + [anon_sym_while] = ACTIONS(1), + [anon_sym_do] = ACTIONS(1), + [anon_sym_for] = ACTIONS(1), + [anon_sym_return] = ACTIONS(1), + [anon_sym_break] = ACTIONS(1), + [anon_sym_continue] = ACTIONS(1), + [anon_sym_goto] = ACTIONS(1), + [anon_sym_QMARK] = ACTIONS(1), + [anon_sym_STAR_EQ] = ACTIONS(1), + [anon_sym_SLASH_EQ] = ACTIONS(1), + [anon_sym_PERCENT_EQ] = ACTIONS(1), + [anon_sym_PLUS_EQ] = ACTIONS(1), + [anon_sym_DASH_EQ] = ACTIONS(1), + [anon_sym_LT_LT_EQ] = ACTIONS(1), + [anon_sym_GT_GT_EQ] = ACTIONS(1), + [anon_sym_AMP_EQ] = ACTIONS(1), + [anon_sym_CARET_EQ] = ACTIONS(1), + [anon_sym_PIPE_EQ] = ACTIONS(1), + [anon_sym_DASH_DASH] = ACTIONS(1), + [anon_sym_PLUS_PLUS] = ACTIONS(1), + [anon_sym_sizeof] = ACTIONS(1), + [anon_sym_DOT] = ACTIONS(1), + [anon_sym_DASH_GT] = ACTIONS(1), + [sym_number_literal] = ACTIONS(1), + [anon_sym_L_SQUOTE] = ACTIONS(1), + [anon_sym_u_SQUOTE] = ACTIONS(1), + [anon_sym_U_SQUOTE] = ACTIONS(1), + [anon_sym_u8_SQUOTE] = ACTIONS(1), + [anon_sym_SQUOTE] = ACTIONS(1), + [anon_sym_L_DQUOTE] = ACTIONS(1), + [anon_sym_u_DQUOTE] = ACTIONS(1), + [anon_sym_U_DQUOTE] = ACTIONS(1), + [anon_sym_u8_DQUOTE] = ACTIONS(1), + [anon_sym_DQUOTE] = ACTIONS(1), + [sym_true] = ACTIONS(1), + [sym_false] = ACTIONS(1), + [sym_null] = ACTIONS(1), + [sym_comment] = ACTIONS(3), + }, + [1] = { + [sym_translation_unit] = STATE(1440), + [sym_preproc_include] = STATE(38), + [sym_preproc_def] = STATE(38), + [sym_preproc_function_def] = STATE(38), + [sym_preproc_call] = STATE(38), + [sym_preproc_if] = STATE(38), + [sym_preproc_ifdef] = STATE(38), + [sym_function_definition] = STATE(38), + [sym_declaration] = STATE(38), + [sym_type_definition] = STATE(38), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1003), + [sym_linkage_specification] = STATE(38), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(641), + [sym_compound_statement] = STATE(38), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(844), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(38), + [sym_labeled_statement] = STATE(38), + [sym_expression_statement] = STATE(38), + [sym_if_statement] = STATE(38), + [sym_switch_statement] = STATE(38), + [sym_case_statement] = STATE(38), + [sym_while_statement] = STATE(38), + [sym_do_statement] = STATE(38), + [sym_for_statement] = STATE(38), + [sym_return_statement] = STATE(38), + [sym_break_statement] = STATE(38), + [sym_continue_statement] = STATE(38), + [sym_goto_statement] = STATE(38), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(38), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(38), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [ts_builtin_sym_end] = ACTIONS(5), + [sym_identifier] = ACTIONS(7), + [aux_sym_preproc_include_token1] = ACTIONS(9), + [aux_sym_preproc_def_token1] = ACTIONS(11), + [aux_sym_preproc_if_token1] = ACTIONS(13), + [aux_sym_preproc_ifdef_token1] = ACTIONS(15), + [aux_sym_preproc_ifdef_token2] = ACTIONS(15), + [sym_preproc_directive] = ACTIONS(17), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_typedef] = ACTIONS(29), + [anon_sym_extern] = ACTIONS(31), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [2] = { + [sym_preproc_include] = STATE(5), + [sym_preproc_def] = STATE(5), + [sym_preproc_function_def] = STATE(5), + [sym_preproc_call] = STATE(5), + [sym_preproc_if] = STATE(5), + [sym_preproc_ifdef] = STATE(5), + [sym_preproc_else] = STATE(1302), + [sym_preproc_elif] = STATE(1302), + [sym_function_definition] = STATE(5), + [sym_declaration] = STATE(5), + [sym_type_definition] = STATE(5), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(5), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(5), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(5), + [sym_labeled_statement] = STATE(5), + [sym_expression_statement] = STATE(5), + [sym_if_statement] = STATE(5), + [sym_switch_statement] = STATE(5), + [sym_case_statement] = STATE(5), + [sym_while_statement] = STATE(5), + [sym_do_statement] = STATE(5), + [sym_for_statement] = STATE(5), + [sym_return_statement] = STATE(5), + [sym_break_statement] = STATE(5), + [sym_continue_statement] = STATE(5), + [sym_goto_statement] = STATE(5), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(5), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(5), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(99), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [3] = { + [sym_preproc_include] = STATE(12), + [sym_preproc_def] = STATE(12), + [sym_preproc_function_def] = STATE(12), + [sym_preproc_call] = STATE(12), + [sym_preproc_if] = STATE(12), + [sym_preproc_ifdef] = STATE(12), + [sym_preproc_else] = STATE(1293), + [sym_preproc_elif] = STATE(1293), + [sym_function_definition] = STATE(12), + [sym_declaration] = STATE(12), + [sym_type_definition] = STATE(12), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(12), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(12), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(12), + [sym_labeled_statement] = STATE(12), + [sym_expression_statement] = STATE(12), + [sym_if_statement] = STATE(12), + [sym_switch_statement] = STATE(12), + [sym_case_statement] = STATE(12), + [sym_while_statement] = STATE(12), + [sym_do_statement] = STATE(12), + [sym_for_statement] = STATE(12), + [sym_return_statement] = STATE(12), + [sym_break_statement] = STATE(12), + [sym_continue_statement] = STATE(12), + [sym_goto_statement] = STATE(12), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(12), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(12), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(139), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [4] = { + [sym_preproc_include] = STATE(10), + [sym_preproc_def] = STATE(10), + [sym_preproc_function_def] = STATE(10), + [sym_preproc_call] = STATE(10), + [sym_preproc_if] = STATE(10), + [sym_preproc_ifdef] = STATE(10), + [sym_preproc_else] = STATE(1394), + [sym_preproc_elif] = STATE(1394), + [sym_function_definition] = STATE(10), + [sym_declaration] = STATE(10), + [sym_type_definition] = STATE(10), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(10), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(10), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(10), + [sym_labeled_statement] = STATE(10), + [sym_expression_statement] = STATE(10), + [sym_if_statement] = STATE(10), + [sym_switch_statement] = STATE(10), + [sym_case_statement] = STATE(10), + [sym_while_statement] = STATE(10), + [sym_do_statement] = STATE(10), + [sym_for_statement] = STATE(10), + [sym_return_statement] = STATE(10), + [sym_break_statement] = STATE(10), + [sym_continue_statement] = STATE(10), + [sym_goto_statement] = STATE(10), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(10), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(10), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(141), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [5] = { + [sym_preproc_include] = STATE(20), + [sym_preproc_def] = STATE(20), + [sym_preproc_function_def] = STATE(20), + [sym_preproc_call] = STATE(20), + [sym_preproc_if] = STATE(20), + [sym_preproc_ifdef] = STATE(20), + [sym_preproc_else] = STATE(1289), + [sym_preproc_elif] = STATE(1289), + [sym_function_definition] = STATE(20), + [sym_declaration] = STATE(20), + [sym_type_definition] = STATE(20), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(20), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(20), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(20), + [sym_labeled_statement] = STATE(20), + [sym_expression_statement] = STATE(20), + [sym_if_statement] = STATE(20), + [sym_switch_statement] = STATE(20), + [sym_case_statement] = STATE(20), + [sym_while_statement] = STATE(20), + [sym_do_statement] = STATE(20), + [sym_for_statement] = STATE(20), + [sym_return_statement] = STATE(20), + [sym_break_statement] = STATE(20), + [sym_continue_statement] = STATE(20), + [sym_goto_statement] = STATE(20), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(20), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(20), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(143), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [6] = { + [sym_preproc_include] = STATE(20), + [sym_preproc_def] = STATE(20), + [sym_preproc_function_def] = STATE(20), + [sym_preproc_call] = STATE(20), + [sym_preproc_if] = STATE(20), + [sym_preproc_ifdef] = STATE(20), + [sym_preproc_else] = STATE(1311), + [sym_preproc_elif] = STATE(1311), + [sym_function_definition] = STATE(20), + [sym_declaration] = STATE(20), + [sym_type_definition] = STATE(20), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(20), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(20), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(20), + [sym_labeled_statement] = STATE(20), + [sym_expression_statement] = STATE(20), + [sym_if_statement] = STATE(20), + [sym_switch_statement] = STATE(20), + [sym_case_statement] = STATE(20), + [sym_while_statement] = STATE(20), + [sym_do_statement] = STATE(20), + [sym_for_statement] = STATE(20), + [sym_return_statement] = STATE(20), + [sym_break_statement] = STATE(20), + [sym_continue_statement] = STATE(20), + [sym_goto_statement] = STATE(20), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(20), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(20), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(145), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [7] = { + [sym_preproc_include] = STATE(20), + [sym_preproc_def] = STATE(20), + [sym_preproc_function_def] = STATE(20), + [sym_preproc_call] = STATE(20), + [sym_preproc_if] = STATE(20), + [sym_preproc_ifdef] = STATE(20), + [sym_preproc_else] = STATE(1427), + [sym_preproc_elif] = STATE(1427), + [sym_function_definition] = STATE(20), + [sym_declaration] = STATE(20), + [sym_type_definition] = STATE(20), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(20), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(20), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(20), + [sym_labeled_statement] = STATE(20), + [sym_expression_statement] = STATE(20), + [sym_if_statement] = STATE(20), + [sym_switch_statement] = STATE(20), + [sym_case_statement] = STATE(20), + [sym_while_statement] = STATE(20), + [sym_do_statement] = STATE(20), + [sym_for_statement] = STATE(20), + [sym_return_statement] = STATE(20), + [sym_break_statement] = STATE(20), + [sym_continue_statement] = STATE(20), + [sym_goto_statement] = STATE(20), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(20), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(20), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(147), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [8] = { + [sym_preproc_include] = STATE(13), + [sym_preproc_def] = STATE(13), + [sym_preproc_function_def] = STATE(13), + [sym_preproc_call] = STATE(13), + [sym_preproc_if] = STATE(13), + [sym_preproc_ifdef] = STATE(13), + [sym_preproc_else] = STATE(1331), + [sym_preproc_elif] = STATE(1331), + [sym_function_definition] = STATE(13), + [sym_declaration] = STATE(13), + [sym_type_definition] = STATE(13), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(13), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(13), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(13), + [sym_labeled_statement] = STATE(13), + [sym_expression_statement] = STATE(13), + [sym_if_statement] = STATE(13), + [sym_switch_statement] = STATE(13), + [sym_case_statement] = STATE(13), + [sym_while_statement] = STATE(13), + [sym_do_statement] = STATE(13), + [sym_for_statement] = STATE(13), + [sym_return_statement] = STATE(13), + [sym_break_statement] = STATE(13), + [sym_continue_statement] = STATE(13), + [sym_goto_statement] = STATE(13), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(13), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(13), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(149), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [9] = { + [sym_preproc_include] = STATE(20), + [sym_preproc_def] = STATE(20), + [sym_preproc_function_def] = STATE(20), + [sym_preproc_call] = STATE(20), + [sym_preproc_if] = STATE(20), + [sym_preproc_ifdef] = STATE(20), + [sym_preproc_else] = STATE(1397), + [sym_preproc_elif] = STATE(1397), + [sym_function_definition] = STATE(20), + [sym_declaration] = STATE(20), + [sym_type_definition] = STATE(20), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(20), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(20), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(20), + [sym_labeled_statement] = STATE(20), + [sym_expression_statement] = STATE(20), + [sym_if_statement] = STATE(20), + [sym_switch_statement] = STATE(20), + [sym_case_statement] = STATE(20), + [sym_while_statement] = STATE(20), + [sym_do_statement] = STATE(20), + [sym_for_statement] = STATE(20), + [sym_return_statement] = STATE(20), + [sym_break_statement] = STATE(20), + [sym_continue_statement] = STATE(20), + [sym_goto_statement] = STATE(20), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(20), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(20), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(151), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [10] = { + [sym_preproc_include] = STATE(20), + [sym_preproc_def] = STATE(20), + [sym_preproc_function_def] = STATE(20), + [sym_preproc_call] = STATE(20), + [sym_preproc_if] = STATE(20), + [sym_preproc_ifdef] = STATE(20), + [sym_preproc_else] = STATE(1352), + [sym_preproc_elif] = STATE(1352), + [sym_function_definition] = STATE(20), + [sym_declaration] = STATE(20), + [sym_type_definition] = STATE(20), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(20), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(20), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(20), + [sym_labeled_statement] = STATE(20), + [sym_expression_statement] = STATE(20), + [sym_if_statement] = STATE(20), + [sym_switch_statement] = STATE(20), + [sym_case_statement] = STATE(20), + [sym_while_statement] = STATE(20), + [sym_do_statement] = STATE(20), + [sym_for_statement] = STATE(20), + [sym_return_statement] = STATE(20), + [sym_break_statement] = STATE(20), + [sym_continue_statement] = STATE(20), + [sym_goto_statement] = STATE(20), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(20), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(20), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(153), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [11] = { + [sym_preproc_include] = STATE(9), + [sym_preproc_def] = STATE(9), + [sym_preproc_function_def] = STATE(9), + [sym_preproc_call] = STATE(9), + [sym_preproc_if] = STATE(9), + [sym_preproc_ifdef] = STATE(9), + [sym_preproc_else] = STATE(1411), + [sym_preproc_elif] = STATE(1411), + [sym_function_definition] = STATE(9), + [sym_declaration] = STATE(9), + [sym_type_definition] = STATE(9), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(9), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(9), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(9), + [sym_labeled_statement] = STATE(9), + [sym_expression_statement] = STATE(9), + [sym_if_statement] = STATE(9), + [sym_switch_statement] = STATE(9), + [sym_case_statement] = STATE(9), + [sym_while_statement] = STATE(9), + [sym_do_statement] = STATE(9), + [sym_for_statement] = STATE(9), + [sym_return_statement] = STATE(9), + [sym_break_statement] = STATE(9), + [sym_continue_statement] = STATE(9), + [sym_goto_statement] = STATE(9), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(9), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(9), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(155), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [12] = { + [sym_preproc_include] = STATE(20), + [sym_preproc_def] = STATE(20), + [sym_preproc_function_def] = STATE(20), + [sym_preproc_call] = STATE(20), + [sym_preproc_if] = STATE(20), + [sym_preproc_ifdef] = STATE(20), + [sym_preproc_else] = STATE(1274), + [sym_preproc_elif] = STATE(1274), + [sym_function_definition] = STATE(20), + [sym_declaration] = STATE(20), + [sym_type_definition] = STATE(20), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(20), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(20), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(20), + [sym_labeled_statement] = STATE(20), + [sym_expression_statement] = STATE(20), + [sym_if_statement] = STATE(20), + [sym_switch_statement] = STATE(20), + [sym_case_statement] = STATE(20), + [sym_while_statement] = STATE(20), + [sym_do_statement] = STATE(20), + [sym_for_statement] = STATE(20), + [sym_return_statement] = STATE(20), + [sym_break_statement] = STATE(20), + [sym_continue_statement] = STATE(20), + [sym_goto_statement] = STATE(20), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(20), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(20), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(157), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [13] = { + [sym_preproc_include] = STATE(20), + [sym_preproc_def] = STATE(20), + [sym_preproc_function_def] = STATE(20), + [sym_preproc_call] = STATE(20), + [sym_preproc_if] = STATE(20), + [sym_preproc_ifdef] = STATE(20), + [sym_preproc_else] = STATE(1402), + [sym_preproc_elif] = STATE(1402), + [sym_function_definition] = STATE(20), + [sym_declaration] = STATE(20), + [sym_type_definition] = STATE(20), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(20), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(20), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(20), + [sym_labeled_statement] = STATE(20), + [sym_expression_statement] = STATE(20), + [sym_if_statement] = STATE(20), + [sym_switch_statement] = STATE(20), + [sym_case_statement] = STATE(20), + [sym_while_statement] = STATE(20), + [sym_do_statement] = STATE(20), + [sym_for_statement] = STATE(20), + [sym_return_statement] = STATE(20), + [sym_break_statement] = STATE(20), + [sym_continue_statement] = STATE(20), + [sym_goto_statement] = STATE(20), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(20), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(20), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(159), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [14] = { + [sym_preproc_include] = STATE(20), + [sym_preproc_def] = STATE(20), + [sym_preproc_function_def] = STATE(20), + [sym_preproc_call] = STATE(20), + [sym_preproc_if] = STATE(20), + [sym_preproc_ifdef] = STATE(20), + [sym_preproc_else] = STATE(1409), + [sym_preproc_elif] = STATE(1409), + [sym_function_definition] = STATE(20), + [sym_declaration] = STATE(20), + [sym_type_definition] = STATE(20), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(20), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(20), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(20), + [sym_labeled_statement] = STATE(20), + [sym_expression_statement] = STATE(20), + [sym_if_statement] = STATE(20), + [sym_switch_statement] = STATE(20), + [sym_case_statement] = STATE(20), + [sym_while_statement] = STATE(20), + [sym_do_statement] = STATE(20), + [sym_for_statement] = STATE(20), + [sym_return_statement] = STATE(20), + [sym_break_statement] = STATE(20), + [sym_continue_statement] = STATE(20), + [sym_goto_statement] = STATE(20), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(20), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(20), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(161), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [15] = { + [sym_preproc_include] = STATE(7), + [sym_preproc_def] = STATE(7), + [sym_preproc_function_def] = STATE(7), + [sym_preproc_call] = STATE(7), + [sym_preproc_if] = STATE(7), + [sym_preproc_ifdef] = STATE(7), + [sym_preproc_else] = STATE(1391), + [sym_preproc_elif] = STATE(1391), + [sym_function_definition] = STATE(7), + [sym_declaration] = STATE(7), + [sym_type_definition] = STATE(7), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(7), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(7), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(7), + [sym_labeled_statement] = STATE(7), + [sym_expression_statement] = STATE(7), + [sym_if_statement] = STATE(7), + [sym_switch_statement] = STATE(7), + [sym_case_statement] = STATE(7), + [sym_while_statement] = STATE(7), + [sym_do_statement] = STATE(7), + [sym_for_statement] = STATE(7), + [sym_return_statement] = STATE(7), + [sym_break_statement] = STATE(7), + [sym_continue_statement] = STATE(7), + [sym_goto_statement] = STATE(7), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(7), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(7), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(163), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [16] = { + [sym_preproc_include] = STATE(6), + [sym_preproc_def] = STATE(6), + [sym_preproc_function_def] = STATE(6), + [sym_preproc_call] = STATE(6), + [sym_preproc_if] = STATE(6), + [sym_preproc_ifdef] = STATE(6), + [sym_preproc_else] = STATE(1353), + [sym_preproc_elif] = STATE(1353), + [sym_function_definition] = STATE(6), + [sym_declaration] = STATE(6), + [sym_type_definition] = STATE(6), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(6), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(6), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(6), + [sym_labeled_statement] = STATE(6), + [sym_expression_statement] = STATE(6), + [sym_if_statement] = STATE(6), + [sym_switch_statement] = STATE(6), + [sym_case_statement] = STATE(6), + [sym_while_statement] = STATE(6), + [sym_do_statement] = STATE(6), + [sym_for_statement] = STATE(6), + [sym_return_statement] = STATE(6), + [sym_break_statement] = STATE(6), + [sym_continue_statement] = STATE(6), + [sym_goto_statement] = STATE(6), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(6), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(6), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(165), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [17] = { + [sym_preproc_include] = STATE(19), + [sym_preproc_def] = STATE(19), + [sym_preproc_function_def] = STATE(19), + [sym_preproc_call] = STATE(19), + [sym_preproc_if] = STATE(19), + [sym_preproc_ifdef] = STATE(19), + [sym_preproc_else] = STATE(1403), + [sym_preproc_elif] = STATE(1403), + [sym_function_definition] = STATE(19), + [sym_declaration] = STATE(19), + [sym_type_definition] = STATE(19), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(19), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(19), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(19), + [sym_labeled_statement] = STATE(19), + [sym_expression_statement] = STATE(19), + [sym_if_statement] = STATE(19), + [sym_switch_statement] = STATE(19), + [sym_case_statement] = STATE(19), + [sym_while_statement] = STATE(19), + [sym_do_statement] = STATE(19), + [sym_for_statement] = STATE(19), + [sym_return_statement] = STATE(19), + [sym_break_statement] = STATE(19), + [sym_continue_statement] = STATE(19), + [sym_goto_statement] = STATE(19), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(19), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(19), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(167), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [18] = { + [sym_preproc_include] = STATE(14), + [sym_preproc_def] = STATE(14), + [sym_preproc_function_def] = STATE(14), + [sym_preproc_call] = STATE(14), + [sym_preproc_if] = STATE(14), + [sym_preproc_ifdef] = STATE(14), + [sym_preproc_else] = STATE(1338), + [sym_preproc_elif] = STATE(1338), + [sym_function_definition] = STATE(14), + [sym_declaration] = STATE(14), + [sym_type_definition] = STATE(14), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(14), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(14), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(14), + [sym_labeled_statement] = STATE(14), + [sym_expression_statement] = STATE(14), + [sym_if_statement] = STATE(14), + [sym_switch_statement] = STATE(14), + [sym_case_statement] = STATE(14), + [sym_while_statement] = STATE(14), + [sym_do_statement] = STATE(14), + [sym_for_statement] = STATE(14), + [sym_return_statement] = STATE(14), + [sym_break_statement] = STATE(14), + [sym_continue_statement] = STATE(14), + [sym_goto_statement] = STATE(14), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(14), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(14), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(169), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [19] = { + [sym_preproc_include] = STATE(20), + [sym_preproc_def] = STATE(20), + [sym_preproc_function_def] = STATE(20), + [sym_preproc_call] = STATE(20), + [sym_preproc_if] = STATE(20), + [sym_preproc_ifdef] = STATE(20), + [sym_preproc_else] = STATE(1375), + [sym_preproc_elif] = STATE(1375), + [sym_function_definition] = STATE(20), + [sym_declaration] = STATE(20), + [sym_type_definition] = STATE(20), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(20), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(20), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(20), + [sym_labeled_statement] = STATE(20), + [sym_expression_statement] = STATE(20), + [sym_if_statement] = STATE(20), + [sym_switch_statement] = STATE(20), + [sym_case_statement] = STATE(20), + [sym_while_statement] = STATE(20), + [sym_do_statement] = STATE(20), + [sym_for_statement] = STATE(20), + [sym_return_statement] = STATE(20), + [sym_break_statement] = STATE(20), + [sym_continue_statement] = STATE(20), + [sym_goto_statement] = STATE(20), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(20), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(20), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(91), + [aux_sym_preproc_include_token1] = ACTIONS(93), + [aux_sym_preproc_def_token1] = ACTIONS(95), + [aux_sym_preproc_if_token1] = ACTIONS(97), + [aux_sym_preproc_if_token2] = ACTIONS(171), + [aux_sym_preproc_ifdef_token1] = ACTIONS(101), + [aux_sym_preproc_ifdef_token2] = ACTIONS(101), + [aux_sym_preproc_else_token1] = ACTIONS(103), + [aux_sym_preproc_elif_token1] = ACTIONS(105), + [sym_preproc_directive] = ACTIONS(107), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(113), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [20] = { + [sym_preproc_include] = STATE(20), + [sym_preproc_def] = STATE(20), + [sym_preproc_function_def] = STATE(20), + [sym_preproc_call] = STATE(20), + [sym_preproc_if] = STATE(20), + [sym_preproc_ifdef] = STATE(20), + [sym_function_definition] = STATE(20), + [sym_declaration] = STATE(20), + [sym_type_definition] = STATE(20), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1008), + [sym_linkage_specification] = STATE(20), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(643), + [sym_compound_statement] = STATE(20), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(847), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(20), + [sym_labeled_statement] = STATE(20), + [sym_expression_statement] = STATE(20), + [sym_if_statement] = STATE(20), + [sym_switch_statement] = STATE(20), + [sym_case_statement] = STATE(20), + [sym_while_statement] = STATE(20), + [sym_do_statement] = STATE(20), + [sym_for_statement] = STATE(20), + [sym_return_statement] = STATE(20), + [sym_break_statement] = STATE(20), + [sym_continue_statement] = STATE(20), + [sym_goto_statement] = STATE(20), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(20), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(20), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(173), + [aux_sym_preproc_include_token1] = ACTIONS(176), + [aux_sym_preproc_def_token1] = ACTIONS(179), + [aux_sym_preproc_if_token1] = ACTIONS(182), + [aux_sym_preproc_if_token2] = ACTIONS(185), + [aux_sym_preproc_ifdef_token1] = ACTIONS(187), + [aux_sym_preproc_ifdef_token2] = ACTIONS(187), + [aux_sym_preproc_else_token1] = ACTIONS(185), + [aux_sym_preproc_elif_token1] = ACTIONS(185), + [sym_preproc_directive] = ACTIONS(190), + [anon_sym_LPAREN2] = ACTIONS(193), + [anon_sym_BANG] = ACTIONS(196), + [anon_sym_TILDE] = ACTIONS(196), + [anon_sym_DASH] = ACTIONS(199), + [anon_sym_PLUS] = ACTIONS(199), + [anon_sym_STAR] = ACTIONS(202), + [anon_sym_AMP] = ACTIONS(202), + [anon_sym_SEMI] = ACTIONS(205), + [anon_sym_typedef] = ACTIONS(208), + [anon_sym_extern] = ACTIONS(211), + [anon_sym___attribute__] = ACTIONS(214), + [anon_sym_LBRACK_LBRACK] = ACTIONS(217), + [anon_sym___declspec] = ACTIONS(220), + [anon_sym___cdecl] = ACTIONS(223), + [anon_sym___clrcall] = ACTIONS(223), + [anon_sym___stdcall] = ACTIONS(223), + [anon_sym___fastcall] = ACTIONS(223), + [anon_sym___thiscall] = ACTIONS(223), + [anon_sym___vectorcall] = ACTIONS(223), + [anon_sym_LBRACE] = ACTIONS(226), + [anon_sym_static] = ACTIONS(229), + [anon_sym_auto] = ACTIONS(229), + [anon_sym_register] = ACTIONS(229), + [anon_sym_inline] = ACTIONS(229), + [anon_sym_const] = ACTIONS(232), + [anon_sym_volatile] = ACTIONS(232), + [anon_sym_restrict] = ACTIONS(232), + [anon_sym__Atomic] = ACTIONS(232), + [anon_sym_signed] = ACTIONS(235), + [anon_sym_unsigned] = ACTIONS(235), + [anon_sym_long] = ACTIONS(235), + [anon_sym_short] = ACTIONS(235), + [sym_primitive_type] = ACTIONS(238), + [anon_sym_enum] = ACTIONS(241), + [anon_sym_struct] = ACTIONS(244), + [anon_sym_union] = ACTIONS(247), + [anon_sym_if] = ACTIONS(250), + [anon_sym_switch] = ACTIONS(253), + [anon_sym_case] = ACTIONS(256), + [anon_sym_default] = ACTIONS(259), + [anon_sym_while] = ACTIONS(262), + [anon_sym_do] = ACTIONS(265), + [anon_sym_for] = ACTIONS(268), + [anon_sym_return] = ACTIONS(271), + [anon_sym_break] = ACTIONS(274), + [anon_sym_continue] = ACTIONS(277), + [anon_sym_goto] = ACTIONS(280), + [anon_sym_DASH_DASH] = ACTIONS(283), + [anon_sym_PLUS_PLUS] = ACTIONS(283), + [anon_sym_sizeof] = ACTIONS(286), + [sym_number_literal] = ACTIONS(289), + [anon_sym_L_SQUOTE] = ACTIONS(292), + [anon_sym_u_SQUOTE] = ACTIONS(292), + [anon_sym_U_SQUOTE] = ACTIONS(292), + [anon_sym_u8_SQUOTE] = ACTIONS(292), + [anon_sym_SQUOTE] = ACTIONS(292), + [anon_sym_L_DQUOTE] = ACTIONS(295), + [anon_sym_u_DQUOTE] = ACTIONS(295), + [anon_sym_U_DQUOTE] = ACTIONS(295), + [anon_sym_u8_DQUOTE] = ACTIONS(295), + [anon_sym_DQUOTE] = ACTIONS(295), + [sym_true] = ACTIONS(298), + [sym_false] = ACTIONS(298), + [sym_null] = ACTIONS(298), + [sym_comment] = ACTIONS(3), + }, + [21] = { + [sym_preproc_include] = STATE(26), + [sym_preproc_def] = STATE(26), + [sym_preproc_function_def] = STATE(26), + [sym_preproc_call] = STATE(26), + [sym_preproc_if] = STATE(26), + [sym_preproc_ifdef] = STATE(26), + [sym_function_definition] = STATE(26), + [sym_declaration] = STATE(26), + [sym_type_definition] = STATE(26), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(26), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(26), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(26), + [sym_labeled_statement] = STATE(26), + [sym_expression_statement] = STATE(26), + [sym_if_statement] = STATE(26), + [sym_switch_statement] = STATE(26), + [sym_case_statement] = STATE(26), + [sym_while_statement] = STATE(26), + [sym_do_statement] = STATE(26), + [sym_for_statement] = STATE(26), + [sym_return_statement] = STATE(26), + [sym_break_statement] = STATE(26), + [sym_continue_statement] = STATE(26), + [sym_goto_statement] = STATE(26), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(26), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(26), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(321), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [22] = { + [sym_preproc_include] = STATE(36), + [sym_preproc_def] = STATE(36), + [sym_preproc_function_def] = STATE(36), + [sym_preproc_call] = STATE(36), + [sym_preproc_if] = STATE(36), + [sym_preproc_ifdef] = STATE(36), + [sym_function_definition] = STATE(36), + [sym_declaration] = STATE(36), + [sym_type_definition] = STATE(36), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(36), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(36), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(36), + [sym_labeled_statement] = STATE(36), + [sym_expression_statement] = STATE(36), + [sym_if_statement] = STATE(36), + [sym_switch_statement] = STATE(36), + [sym_case_statement] = STATE(36), + [sym_while_statement] = STATE(36), + [sym_do_statement] = STATE(36), + [sym_for_statement] = STATE(36), + [sym_return_statement] = STATE(36), + [sym_break_statement] = STATE(36), + [sym_continue_statement] = STATE(36), + [sym_goto_statement] = STATE(36), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(36), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(36), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(345), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [23] = { + [sym_preproc_include] = STATE(23), + [sym_preproc_def] = STATE(23), + [sym_preproc_function_def] = STATE(23), + [sym_preproc_call] = STATE(23), + [sym_preproc_if] = STATE(23), + [sym_preproc_ifdef] = STATE(23), + [sym_function_definition] = STATE(23), + [sym_declaration] = STATE(23), + [sym_type_definition] = STATE(23), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1012), + [sym_linkage_specification] = STATE(23), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(644), + [sym_compound_statement] = STATE(23), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(845), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(23), + [sym_labeled_statement] = STATE(23), + [sym_expression_statement] = STATE(23), + [sym_if_statement] = STATE(23), + [sym_switch_statement] = STATE(23), + [sym_case_statement] = STATE(23), + [sym_while_statement] = STATE(23), + [sym_do_statement] = STATE(23), + [sym_for_statement] = STATE(23), + [sym_return_statement] = STATE(23), + [sym_break_statement] = STATE(23), + [sym_continue_statement] = STATE(23), + [sym_goto_statement] = STATE(23), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(23), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(23), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(347), + [aux_sym_preproc_include_token1] = ACTIONS(350), + [aux_sym_preproc_def_token1] = ACTIONS(353), + [aux_sym_preproc_if_token1] = ACTIONS(356), + [aux_sym_preproc_if_token2] = ACTIONS(185), + [aux_sym_preproc_ifdef_token1] = ACTIONS(359), + [aux_sym_preproc_ifdef_token2] = ACTIONS(359), + [sym_preproc_directive] = ACTIONS(362), + [anon_sym_LPAREN2] = ACTIONS(193), + [anon_sym_BANG] = ACTIONS(196), + [anon_sym_TILDE] = ACTIONS(196), + [anon_sym_DASH] = ACTIONS(199), + [anon_sym_PLUS] = ACTIONS(199), + [anon_sym_STAR] = ACTIONS(202), + [anon_sym_AMP] = ACTIONS(202), + [anon_sym_SEMI] = ACTIONS(365), + [anon_sym_typedef] = ACTIONS(368), + [anon_sym_extern] = ACTIONS(371), + [anon_sym___attribute__] = ACTIONS(214), + [anon_sym_LBRACK_LBRACK] = ACTIONS(217), + [anon_sym___declspec] = ACTIONS(220), + [anon_sym___cdecl] = ACTIONS(223), + [anon_sym___clrcall] = ACTIONS(223), + [anon_sym___stdcall] = ACTIONS(223), + [anon_sym___fastcall] = ACTIONS(223), + [anon_sym___thiscall] = ACTIONS(223), + [anon_sym___vectorcall] = ACTIONS(223), + [anon_sym_LBRACE] = ACTIONS(374), + [anon_sym_static] = ACTIONS(229), + [anon_sym_auto] = ACTIONS(229), + [anon_sym_register] = ACTIONS(229), + [anon_sym_inline] = ACTIONS(229), + [anon_sym_const] = ACTIONS(232), + [anon_sym_volatile] = ACTIONS(232), + [anon_sym_restrict] = ACTIONS(232), + [anon_sym__Atomic] = ACTIONS(232), + [anon_sym_signed] = ACTIONS(235), + [anon_sym_unsigned] = ACTIONS(235), + [anon_sym_long] = ACTIONS(235), + [anon_sym_short] = ACTIONS(235), + [sym_primitive_type] = ACTIONS(238), + [anon_sym_enum] = ACTIONS(241), + [anon_sym_struct] = ACTIONS(244), + [anon_sym_union] = ACTIONS(247), + [anon_sym_if] = ACTIONS(377), + [anon_sym_switch] = ACTIONS(380), + [anon_sym_case] = ACTIONS(383), + [anon_sym_default] = ACTIONS(386), + [anon_sym_while] = ACTIONS(389), + [anon_sym_do] = ACTIONS(392), + [anon_sym_for] = ACTIONS(395), + [anon_sym_return] = ACTIONS(398), + [anon_sym_break] = ACTIONS(401), + [anon_sym_continue] = ACTIONS(404), + [anon_sym_goto] = ACTIONS(407), + [anon_sym_DASH_DASH] = ACTIONS(283), + [anon_sym_PLUS_PLUS] = ACTIONS(283), + [anon_sym_sizeof] = ACTIONS(286), + [sym_number_literal] = ACTIONS(289), + [anon_sym_L_SQUOTE] = ACTIONS(292), + [anon_sym_u_SQUOTE] = ACTIONS(292), + [anon_sym_U_SQUOTE] = ACTIONS(292), + [anon_sym_u8_SQUOTE] = ACTIONS(292), + [anon_sym_SQUOTE] = ACTIONS(292), + [anon_sym_L_DQUOTE] = ACTIONS(295), + [anon_sym_u_DQUOTE] = ACTIONS(295), + [anon_sym_U_DQUOTE] = ACTIONS(295), + [anon_sym_u8_DQUOTE] = ACTIONS(295), + [anon_sym_DQUOTE] = ACTIONS(295), + [sym_true] = ACTIONS(298), + [sym_false] = ACTIONS(298), + [sym_null] = ACTIONS(298), + [sym_comment] = ACTIONS(3), + }, + [24] = { + [sym_preproc_include] = STATE(29), + [sym_preproc_def] = STATE(29), + [sym_preproc_function_def] = STATE(29), + [sym_preproc_call] = STATE(29), + [sym_preproc_if] = STATE(29), + [sym_preproc_ifdef] = STATE(29), + [sym_function_definition] = STATE(29), + [sym_declaration] = STATE(29), + [sym_type_definition] = STATE(29), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(29), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(29), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(29), + [sym_labeled_statement] = STATE(29), + [sym_expression_statement] = STATE(29), + [sym_if_statement] = STATE(29), + [sym_switch_statement] = STATE(29), + [sym_case_statement] = STATE(29), + [sym_while_statement] = STATE(29), + [sym_do_statement] = STATE(29), + [sym_for_statement] = STATE(29), + [sym_return_statement] = STATE(29), + [sym_break_statement] = STATE(29), + [sym_continue_statement] = STATE(29), + [sym_goto_statement] = STATE(29), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(29), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(29), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(410), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [25] = { + [sym_preproc_include] = STATE(32), + [sym_preproc_def] = STATE(32), + [sym_preproc_function_def] = STATE(32), + [sym_preproc_call] = STATE(32), + [sym_preproc_if] = STATE(32), + [sym_preproc_ifdef] = STATE(32), + [sym_function_definition] = STATE(32), + [sym_declaration] = STATE(32), + [sym_type_definition] = STATE(32), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(32), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(32), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(32), + [sym_labeled_statement] = STATE(32), + [sym_expression_statement] = STATE(32), + [sym_if_statement] = STATE(32), + [sym_switch_statement] = STATE(32), + [sym_case_statement] = STATE(32), + [sym_while_statement] = STATE(32), + [sym_do_statement] = STATE(32), + [sym_for_statement] = STATE(32), + [sym_return_statement] = STATE(32), + [sym_break_statement] = STATE(32), + [sym_continue_statement] = STATE(32), + [sym_goto_statement] = STATE(32), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(32), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(32), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(412), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [26] = { + [sym_preproc_include] = STATE(36), + [sym_preproc_def] = STATE(36), + [sym_preproc_function_def] = STATE(36), + [sym_preproc_call] = STATE(36), + [sym_preproc_if] = STATE(36), + [sym_preproc_ifdef] = STATE(36), + [sym_function_definition] = STATE(36), + [sym_declaration] = STATE(36), + [sym_type_definition] = STATE(36), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(36), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(36), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(36), + [sym_labeled_statement] = STATE(36), + [sym_expression_statement] = STATE(36), + [sym_if_statement] = STATE(36), + [sym_switch_statement] = STATE(36), + [sym_case_statement] = STATE(36), + [sym_while_statement] = STATE(36), + [sym_do_statement] = STATE(36), + [sym_for_statement] = STATE(36), + [sym_return_statement] = STATE(36), + [sym_break_statement] = STATE(36), + [sym_continue_statement] = STATE(36), + [sym_goto_statement] = STATE(36), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(36), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(36), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(414), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [27] = { + [sym_preproc_include] = STATE(34), + [sym_preproc_def] = STATE(34), + [sym_preproc_function_def] = STATE(34), + [sym_preproc_call] = STATE(34), + [sym_preproc_if] = STATE(34), + [sym_preproc_ifdef] = STATE(34), + [sym_function_definition] = STATE(34), + [sym_declaration] = STATE(34), + [sym_type_definition] = STATE(34), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(34), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(34), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(34), + [sym_labeled_statement] = STATE(34), + [sym_expression_statement] = STATE(34), + [sym_if_statement] = STATE(34), + [sym_switch_statement] = STATE(34), + [sym_case_statement] = STATE(34), + [sym_while_statement] = STATE(34), + [sym_do_statement] = STATE(34), + [sym_for_statement] = STATE(34), + [sym_return_statement] = STATE(34), + [sym_break_statement] = STATE(34), + [sym_continue_statement] = STATE(34), + [sym_goto_statement] = STATE(34), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(34), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(34), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(416), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [28] = { + [sym_preproc_include] = STATE(28), + [sym_preproc_def] = STATE(28), + [sym_preproc_function_def] = STATE(28), + [sym_preproc_call] = STATE(28), + [sym_preproc_if] = STATE(28), + [sym_preproc_ifdef] = STATE(28), + [sym_function_definition] = STATE(28), + [sym_declaration] = STATE(28), + [sym_type_definition] = STATE(28), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1003), + [sym_linkage_specification] = STATE(28), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(641), + [sym_compound_statement] = STATE(28), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(844), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(28), + [sym_labeled_statement] = STATE(28), + [sym_expression_statement] = STATE(28), + [sym_if_statement] = STATE(28), + [sym_switch_statement] = STATE(28), + [sym_case_statement] = STATE(28), + [sym_while_statement] = STATE(28), + [sym_do_statement] = STATE(28), + [sym_for_statement] = STATE(28), + [sym_return_statement] = STATE(28), + [sym_break_statement] = STATE(28), + [sym_continue_statement] = STATE(28), + [sym_goto_statement] = STATE(28), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(28), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(28), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [ts_builtin_sym_end] = ACTIONS(418), + [sym_identifier] = ACTIONS(420), + [aux_sym_preproc_include_token1] = ACTIONS(423), + [aux_sym_preproc_def_token1] = ACTIONS(426), + [aux_sym_preproc_if_token1] = ACTIONS(429), + [aux_sym_preproc_ifdef_token1] = ACTIONS(432), + [aux_sym_preproc_ifdef_token2] = ACTIONS(432), + [sym_preproc_directive] = ACTIONS(435), + [anon_sym_LPAREN2] = ACTIONS(193), + [anon_sym_BANG] = ACTIONS(196), + [anon_sym_TILDE] = ACTIONS(196), + [anon_sym_DASH] = ACTIONS(199), + [anon_sym_PLUS] = ACTIONS(199), + [anon_sym_STAR] = ACTIONS(202), + [anon_sym_AMP] = ACTIONS(202), + [anon_sym_SEMI] = ACTIONS(438), + [anon_sym_typedef] = ACTIONS(441), + [anon_sym_extern] = ACTIONS(444), + [anon_sym___attribute__] = ACTIONS(214), + [anon_sym_LBRACK_LBRACK] = ACTIONS(217), + [anon_sym___declspec] = ACTIONS(220), + [anon_sym___cdecl] = ACTIONS(223), + [anon_sym___clrcall] = ACTIONS(223), + [anon_sym___stdcall] = ACTIONS(223), + [anon_sym___fastcall] = ACTIONS(223), + [anon_sym___thiscall] = ACTIONS(223), + [anon_sym___vectorcall] = ACTIONS(223), + [anon_sym_LBRACE] = ACTIONS(447), + [anon_sym_static] = ACTIONS(229), + [anon_sym_auto] = ACTIONS(229), + [anon_sym_register] = ACTIONS(229), + [anon_sym_inline] = ACTIONS(229), + [anon_sym_const] = ACTIONS(232), + [anon_sym_volatile] = ACTIONS(232), + [anon_sym_restrict] = ACTIONS(232), + [anon_sym__Atomic] = ACTIONS(232), + [anon_sym_signed] = ACTIONS(235), + [anon_sym_unsigned] = ACTIONS(235), + [anon_sym_long] = ACTIONS(235), + [anon_sym_short] = ACTIONS(235), + [sym_primitive_type] = ACTIONS(238), + [anon_sym_enum] = ACTIONS(241), + [anon_sym_struct] = ACTIONS(244), + [anon_sym_union] = ACTIONS(247), + [anon_sym_if] = ACTIONS(450), + [anon_sym_switch] = ACTIONS(453), + [anon_sym_case] = ACTIONS(456), + [anon_sym_default] = ACTIONS(459), + [anon_sym_while] = ACTIONS(462), + [anon_sym_do] = ACTIONS(465), + [anon_sym_for] = ACTIONS(468), + [anon_sym_return] = ACTIONS(471), + [anon_sym_break] = ACTIONS(474), + [anon_sym_continue] = ACTIONS(477), + [anon_sym_goto] = ACTIONS(480), + [anon_sym_DASH_DASH] = ACTIONS(283), + [anon_sym_PLUS_PLUS] = ACTIONS(283), + [anon_sym_sizeof] = ACTIONS(286), + [sym_number_literal] = ACTIONS(289), + [anon_sym_L_SQUOTE] = ACTIONS(292), + [anon_sym_u_SQUOTE] = ACTIONS(292), + [anon_sym_U_SQUOTE] = ACTIONS(292), + [anon_sym_u8_SQUOTE] = ACTIONS(292), + [anon_sym_SQUOTE] = ACTIONS(292), + [anon_sym_L_DQUOTE] = ACTIONS(295), + [anon_sym_u_DQUOTE] = ACTIONS(295), + [anon_sym_U_DQUOTE] = ACTIONS(295), + [anon_sym_u8_DQUOTE] = ACTIONS(295), + [anon_sym_DQUOTE] = ACTIONS(295), + [sym_true] = ACTIONS(298), + [sym_false] = ACTIONS(298), + [sym_null] = ACTIONS(298), + [sym_comment] = ACTIONS(3), + }, + [29] = { + [sym_preproc_include] = STATE(36), + [sym_preproc_def] = STATE(36), + [sym_preproc_function_def] = STATE(36), + [sym_preproc_call] = STATE(36), + [sym_preproc_if] = STATE(36), + [sym_preproc_ifdef] = STATE(36), + [sym_function_definition] = STATE(36), + [sym_declaration] = STATE(36), + [sym_type_definition] = STATE(36), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(36), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(36), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(36), + [sym_labeled_statement] = STATE(36), + [sym_expression_statement] = STATE(36), + [sym_if_statement] = STATE(36), + [sym_switch_statement] = STATE(36), + [sym_case_statement] = STATE(36), + [sym_while_statement] = STATE(36), + [sym_do_statement] = STATE(36), + [sym_for_statement] = STATE(36), + [sym_return_statement] = STATE(36), + [sym_break_statement] = STATE(36), + [sym_continue_statement] = STATE(36), + [sym_goto_statement] = STATE(36), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(36), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(36), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(483), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [30] = { + [sym_preproc_include] = STATE(36), + [sym_preproc_def] = STATE(36), + [sym_preproc_function_def] = STATE(36), + [sym_preproc_call] = STATE(36), + [sym_preproc_if] = STATE(36), + [sym_preproc_ifdef] = STATE(36), + [sym_function_definition] = STATE(36), + [sym_declaration] = STATE(36), + [sym_type_definition] = STATE(36), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(36), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(36), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(36), + [sym_labeled_statement] = STATE(36), + [sym_expression_statement] = STATE(36), + [sym_if_statement] = STATE(36), + [sym_switch_statement] = STATE(36), + [sym_case_statement] = STATE(36), + [sym_while_statement] = STATE(36), + [sym_do_statement] = STATE(36), + [sym_for_statement] = STATE(36), + [sym_return_statement] = STATE(36), + [sym_break_statement] = STATE(36), + [sym_continue_statement] = STATE(36), + [sym_goto_statement] = STATE(36), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(36), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(36), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(485), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [31] = { + [sym_preproc_include] = STATE(30), + [sym_preproc_def] = STATE(30), + [sym_preproc_function_def] = STATE(30), + [sym_preproc_call] = STATE(30), + [sym_preproc_if] = STATE(30), + [sym_preproc_ifdef] = STATE(30), + [sym_function_definition] = STATE(30), + [sym_declaration] = STATE(30), + [sym_type_definition] = STATE(30), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(30), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(30), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(30), + [sym_labeled_statement] = STATE(30), + [sym_expression_statement] = STATE(30), + [sym_if_statement] = STATE(30), + [sym_switch_statement] = STATE(30), + [sym_case_statement] = STATE(30), + [sym_while_statement] = STATE(30), + [sym_do_statement] = STATE(30), + [sym_for_statement] = STATE(30), + [sym_return_statement] = STATE(30), + [sym_break_statement] = STATE(30), + [sym_continue_statement] = STATE(30), + [sym_goto_statement] = STATE(30), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(30), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(30), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(487), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [32] = { + [sym_preproc_include] = STATE(36), + [sym_preproc_def] = STATE(36), + [sym_preproc_function_def] = STATE(36), + [sym_preproc_call] = STATE(36), + [sym_preproc_if] = STATE(36), + [sym_preproc_ifdef] = STATE(36), + [sym_function_definition] = STATE(36), + [sym_declaration] = STATE(36), + [sym_type_definition] = STATE(36), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(36), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(36), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(36), + [sym_labeled_statement] = STATE(36), + [sym_expression_statement] = STATE(36), + [sym_if_statement] = STATE(36), + [sym_switch_statement] = STATE(36), + [sym_case_statement] = STATE(36), + [sym_while_statement] = STATE(36), + [sym_do_statement] = STATE(36), + [sym_for_statement] = STATE(36), + [sym_return_statement] = STATE(36), + [sym_break_statement] = STATE(36), + [sym_continue_statement] = STATE(36), + [sym_goto_statement] = STATE(36), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(36), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(36), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(489), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [33] = { + [sym_preproc_include] = STATE(39), + [sym_preproc_def] = STATE(39), + [sym_preproc_function_def] = STATE(39), + [sym_preproc_call] = STATE(39), + [sym_preproc_if] = STATE(39), + [sym_preproc_ifdef] = STATE(39), + [sym_function_definition] = STATE(39), + [sym_declaration] = STATE(39), + [sym_type_definition] = STATE(39), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1012), + [sym_linkage_specification] = STATE(39), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(644), + [sym_compound_statement] = STATE(39), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(845), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(39), + [sym_labeled_statement] = STATE(39), + [sym_expression_statement] = STATE(39), + [sym_if_statement] = STATE(39), + [sym_switch_statement] = STATE(39), + [sym_case_statement] = STATE(39), + [sym_while_statement] = STATE(39), + [sym_do_statement] = STATE(39), + [sym_for_statement] = STATE(39), + [sym_return_statement] = STATE(39), + [sym_break_statement] = STATE(39), + [sym_continue_statement] = STATE(39), + [sym_goto_statement] = STATE(39), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(39), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(39), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(491), + [aux_sym_preproc_include_token1] = ACTIONS(493), + [aux_sym_preproc_def_token1] = ACTIONS(495), + [aux_sym_preproc_if_token1] = ACTIONS(497), + [aux_sym_preproc_if_token2] = ACTIONS(499), + [aux_sym_preproc_ifdef_token1] = ACTIONS(501), + [aux_sym_preproc_ifdef_token2] = ACTIONS(501), + [sym_preproc_directive] = ACTIONS(503), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_typedef] = ACTIONS(507), + [anon_sym_extern] = ACTIONS(509), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [34] = { + [sym_preproc_include] = STATE(36), + [sym_preproc_def] = STATE(36), + [sym_preproc_function_def] = STATE(36), + [sym_preproc_call] = STATE(36), + [sym_preproc_if] = STATE(36), + [sym_preproc_ifdef] = STATE(36), + [sym_function_definition] = STATE(36), + [sym_declaration] = STATE(36), + [sym_type_definition] = STATE(36), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(36), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(36), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(36), + [sym_labeled_statement] = STATE(36), + [sym_expression_statement] = STATE(36), + [sym_if_statement] = STATE(36), + [sym_switch_statement] = STATE(36), + [sym_case_statement] = STATE(36), + [sym_while_statement] = STATE(36), + [sym_do_statement] = STATE(36), + [sym_for_statement] = STATE(36), + [sym_return_statement] = STATE(36), + [sym_break_statement] = STATE(36), + [sym_continue_statement] = STATE(36), + [sym_goto_statement] = STATE(36), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(36), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(36), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(535), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [35] = { + [sym_preproc_include] = STATE(42), + [sym_preproc_def] = STATE(42), + [sym_preproc_function_def] = STATE(42), + [sym_preproc_call] = STATE(42), + [sym_preproc_if] = STATE(42), + [sym_preproc_ifdef] = STATE(42), + [sym_function_definition] = STATE(42), + [sym_declaration] = STATE(42), + [sym_type_definition] = STATE(42), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(42), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(42), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(42), + [sym_labeled_statement] = STATE(42), + [sym_expression_statement] = STATE(42), + [sym_if_statement] = STATE(42), + [sym_switch_statement] = STATE(42), + [sym_case_statement] = STATE(42), + [sym_while_statement] = STATE(42), + [sym_do_statement] = STATE(42), + [sym_for_statement] = STATE(42), + [sym_return_statement] = STATE(42), + [sym_break_statement] = STATE(42), + [sym_continue_statement] = STATE(42), + [sym_goto_statement] = STATE(42), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(42), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(42), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(537), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [36] = { + [sym_preproc_include] = STATE(36), + [sym_preproc_def] = STATE(36), + [sym_preproc_function_def] = STATE(36), + [sym_preproc_call] = STATE(36), + [sym_preproc_if] = STATE(36), + [sym_preproc_ifdef] = STATE(36), + [sym_function_definition] = STATE(36), + [sym_declaration] = STATE(36), + [sym_type_definition] = STATE(36), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(36), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(36), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(36), + [sym_labeled_statement] = STATE(36), + [sym_expression_statement] = STATE(36), + [sym_if_statement] = STATE(36), + [sym_switch_statement] = STATE(36), + [sym_case_statement] = STATE(36), + [sym_while_statement] = STATE(36), + [sym_do_statement] = STATE(36), + [sym_for_statement] = STATE(36), + [sym_return_statement] = STATE(36), + [sym_break_statement] = STATE(36), + [sym_continue_statement] = STATE(36), + [sym_goto_statement] = STATE(36), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(36), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(36), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(539), + [aux_sym_preproc_include_token1] = ACTIONS(542), + [aux_sym_preproc_def_token1] = ACTIONS(545), + [aux_sym_preproc_if_token1] = ACTIONS(548), + [aux_sym_preproc_ifdef_token1] = ACTIONS(551), + [aux_sym_preproc_ifdef_token2] = ACTIONS(551), + [sym_preproc_directive] = ACTIONS(554), + [anon_sym_LPAREN2] = ACTIONS(193), + [anon_sym_BANG] = ACTIONS(196), + [anon_sym_TILDE] = ACTIONS(196), + [anon_sym_DASH] = ACTIONS(199), + [anon_sym_PLUS] = ACTIONS(199), + [anon_sym_STAR] = ACTIONS(202), + [anon_sym_AMP] = ACTIONS(202), + [anon_sym_SEMI] = ACTIONS(557), + [anon_sym_typedef] = ACTIONS(560), + [anon_sym_extern] = ACTIONS(563), + [anon_sym___attribute__] = ACTIONS(214), + [anon_sym_LBRACK_LBRACK] = ACTIONS(217), + [anon_sym___declspec] = ACTIONS(220), + [anon_sym___cdecl] = ACTIONS(223), + [anon_sym___clrcall] = ACTIONS(223), + [anon_sym___stdcall] = ACTIONS(223), + [anon_sym___fastcall] = ACTIONS(223), + [anon_sym___thiscall] = ACTIONS(223), + [anon_sym___vectorcall] = ACTIONS(223), + [anon_sym_LBRACE] = ACTIONS(566), + [anon_sym_RBRACE] = ACTIONS(418), + [anon_sym_static] = ACTIONS(229), + [anon_sym_auto] = ACTIONS(229), + [anon_sym_register] = ACTIONS(229), + [anon_sym_inline] = ACTIONS(229), + [anon_sym_const] = ACTIONS(232), + [anon_sym_volatile] = ACTIONS(232), + [anon_sym_restrict] = ACTIONS(232), + [anon_sym__Atomic] = ACTIONS(232), + [anon_sym_signed] = ACTIONS(235), + [anon_sym_unsigned] = ACTIONS(235), + [anon_sym_long] = ACTIONS(235), + [anon_sym_short] = ACTIONS(235), + [sym_primitive_type] = ACTIONS(238), + [anon_sym_enum] = ACTIONS(241), + [anon_sym_struct] = ACTIONS(244), + [anon_sym_union] = ACTIONS(247), + [anon_sym_if] = ACTIONS(569), + [anon_sym_switch] = ACTIONS(572), + [anon_sym_case] = ACTIONS(575), + [anon_sym_default] = ACTIONS(578), + [anon_sym_while] = ACTIONS(581), + [anon_sym_do] = ACTIONS(584), + [anon_sym_for] = ACTIONS(587), + [anon_sym_return] = ACTIONS(590), + [anon_sym_break] = ACTIONS(593), + [anon_sym_continue] = ACTIONS(596), + [anon_sym_goto] = ACTIONS(599), + [anon_sym_DASH_DASH] = ACTIONS(283), + [anon_sym_PLUS_PLUS] = ACTIONS(283), + [anon_sym_sizeof] = ACTIONS(286), + [sym_number_literal] = ACTIONS(289), + [anon_sym_L_SQUOTE] = ACTIONS(292), + [anon_sym_u_SQUOTE] = ACTIONS(292), + [anon_sym_U_SQUOTE] = ACTIONS(292), + [anon_sym_u8_SQUOTE] = ACTIONS(292), + [anon_sym_SQUOTE] = ACTIONS(292), + [anon_sym_L_DQUOTE] = ACTIONS(295), + [anon_sym_u_DQUOTE] = ACTIONS(295), + [anon_sym_U_DQUOTE] = ACTIONS(295), + [anon_sym_u8_DQUOTE] = ACTIONS(295), + [anon_sym_DQUOTE] = ACTIONS(295), + [sym_true] = ACTIONS(298), + [sym_false] = ACTIONS(298), + [sym_null] = ACTIONS(298), + [sym_comment] = ACTIONS(3), + }, + [37] = { + [sym_preproc_include] = STATE(36), + [sym_preproc_def] = STATE(36), + [sym_preproc_function_def] = STATE(36), + [sym_preproc_call] = STATE(36), + [sym_preproc_if] = STATE(36), + [sym_preproc_ifdef] = STATE(36), + [sym_function_definition] = STATE(36), + [sym_declaration] = STATE(36), + [sym_type_definition] = STATE(36), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(36), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(36), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(36), + [sym_labeled_statement] = STATE(36), + [sym_expression_statement] = STATE(36), + [sym_if_statement] = STATE(36), + [sym_switch_statement] = STATE(36), + [sym_case_statement] = STATE(36), + [sym_while_statement] = STATE(36), + [sym_do_statement] = STATE(36), + [sym_for_statement] = STATE(36), + [sym_return_statement] = STATE(36), + [sym_break_statement] = STATE(36), + [sym_continue_statement] = STATE(36), + [sym_goto_statement] = STATE(36), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(36), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(36), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(602), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [38] = { + [sym_preproc_include] = STATE(28), + [sym_preproc_def] = STATE(28), + [sym_preproc_function_def] = STATE(28), + [sym_preproc_call] = STATE(28), + [sym_preproc_if] = STATE(28), + [sym_preproc_ifdef] = STATE(28), + [sym_function_definition] = STATE(28), + [sym_declaration] = STATE(28), + [sym_type_definition] = STATE(28), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1003), + [sym_linkage_specification] = STATE(28), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(641), + [sym_compound_statement] = STATE(28), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(844), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(28), + [sym_labeled_statement] = STATE(28), + [sym_expression_statement] = STATE(28), + [sym_if_statement] = STATE(28), + [sym_switch_statement] = STATE(28), + [sym_case_statement] = STATE(28), + [sym_while_statement] = STATE(28), + [sym_do_statement] = STATE(28), + [sym_for_statement] = STATE(28), + [sym_return_statement] = STATE(28), + [sym_break_statement] = STATE(28), + [sym_continue_statement] = STATE(28), + [sym_goto_statement] = STATE(28), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(28), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(28), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [ts_builtin_sym_end] = ACTIONS(604), + [sym_identifier] = ACTIONS(7), + [aux_sym_preproc_include_token1] = ACTIONS(9), + [aux_sym_preproc_def_token1] = ACTIONS(11), + [aux_sym_preproc_if_token1] = ACTIONS(13), + [aux_sym_preproc_ifdef_token1] = ACTIONS(15), + [aux_sym_preproc_ifdef_token2] = ACTIONS(15), + [sym_preproc_directive] = ACTIONS(17), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_typedef] = ACTIONS(29), + [anon_sym_extern] = ACTIONS(31), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [39] = { + [sym_preproc_include] = STATE(23), + [sym_preproc_def] = STATE(23), + [sym_preproc_function_def] = STATE(23), + [sym_preproc_call] = STATE(23), + [sym_preproc_if] = STATE(23), + [sym_preproc_ifdef] = STATE(23), + [sym_function_definition] = STATE(23), + [sym_declaration] = STATE(23), + [sym_type_definition] = STATE(23), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1012), + [sym_linkage_specification] = STATE(23), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(644), + [sym_compound_statement] = STATE(23), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(845), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(23), + [sym_labeled_statement] = STATE(23), + [sym_expression_statement] = STATE(23), + [sym_if_statement] = STATE(23), + [sym_switch_statement] = STATE(23), + [sym_case_statement] = STATE(23), + [sym_while_statement] = STATE(23), + [sym_do_statement] = STATE(23), + [sym_for_statement] = STATE(23), + [sym_return_statement] = STATE(23), + [sym_break_statement] = STATE(23), + [sym_continue_statement] = STATE(23), + [sym_goto_statement] = STATE(23), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(23), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(23), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(491), + [aux_sym_preproc_include_token1] = ACTIONS(493), + [aux_sym_preproc_def_token1] = ACTIONS(495), + [aux_sym_preproc_if_token1] = ACTIONS(497), + [aux_sym_preproc_if_token2] = ACTIONS(606), + [aux_sym_preproc_ifdef_token1] = ACTIONS(501), + [aux_sym_preproc_ifdef_token2] = ACTIONS(501), + [sym_preproc_directive] = ACTIONS(503), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_typedef] = ACTIONS(507), + [anon_sym_extern] = ACTIONS(509), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [40] = { + [sym_preproc_include] = STATE(37), + [sym_preproc_def] = STATE(37), + [sym_preproc_function_def] = STATE(37), + [sym_preproc_call] = STATE(37), + [sym_preproc_if] = STATE(37), + [sym_preproc_ifdef] = STATE(37), + [sym_function_definition] = STATE(37), + [sym_declaration] = STATE(37), + [sym_type_definition] = STATE(37), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(37), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(37), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(37), + [sym_labeled_statement] = STATE(37), + [sym_expression_statement] = STATE(37), + [sym_if_statement] = STATE(37), + [sym_switch_statement] = STATE(37), + [sym_case_statement] = STATE(37), + [sym_while_statement] = STATE(37), + [sym_do_statement] = STATE(37), + [sym_for_statement] = STATE(37), + [sym_return_statement] = STATE(37), + [sym_break_statement] = STATE(37), + [sym_continue_statement] = STATE(37), + [sym_goto_statement] = STATE(37), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(37), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(37), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(608), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [41] = { + [sym_preproc_include] = STATE(22), + [sym_preproc_def] = STATE(22), + [sym_preproc_function_def] = STATE(22), + [sym_preproc_call] = STATE(22), + [sym_preproc_if] = STATE(22), + [sym_preproc_ifdef] = STATE(22), + [sym_function_definition] = STATE(22), + [sym_declaration] = STATE(22), + [sym_type_definition] = STATE(22), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(22), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(22), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(22), + [sym_labeled_statement] = STATE(22), + [sym_expression_statement] = STATE(22), + [sym_if_statement] = STATE(22), + [sym_switch_statement] = STATE(22), + [sym_case_statement] = STATE(22), + [sym_while_statement] = STATE(22), + [sym_do_statement] = STATE(22), + [sym_for_statement] = STATE(22), + [sym_return_statement] = STATE(22), + [sym_break_statement] = STATE(22), + [sym_continue_statement] = STATE(22), + [sym_goto_statement] = STATE(22), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(22), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(22), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(610), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [42] = { + [sym_preproc_include] = STATE(36), + [sym_preproc_def] = STATE(36), + [sym_preproc_function_def] = STATE(36), + [sym_preproc_call] = STATE(36), + [sym_preproc_if] = STATE(36), + [sym_preproc_ifdef] = STATE(36), + [sym_function_definition] = STATE(36), + [sym_declaration] = STATE(36), + [sym_type_definition] = STATE(36), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1004), + [sym_linkage_specification] = STATE(36), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_ms_call_modifier] = STATE(642), + [sym_compound_statement] = STATE(36), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(846), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(36), + [sym_labeled_statement] = STATE(36), + [sym_expression_statement] = STATE(36), + [sym_if_statement] = STATE(36), + [sym_switch_statement] = STATE(36), + [sym_case_statement] = STATE(36), + [sym_while_statement] = STATE(36), + [sym_do_statement] = STATE(36), + [sym_for_statement] = STATE(36), + [sym_return_statement] = STATE(36), + [sym_break_statement] = STATE(36), + [sym_continue_statement] = STATE(36), + [sym_goto_statement] = STATE(36), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym__empty_declaration] = STATE(36), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_translation_unit_repeat1] = STATE(36), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(301), + [aux_sym_preproc_include_token1] = ACTIONS(303), + [aux_sym_preproc_def_token1] = ACTIONS(305), + [aux_sym_preproc_if_token1] = ACTIONS(307), + [aux_sym_preproc_ifdef_token1] = ACTIONS(309), + [aux_sym_preproc_ifdef_token2] = ACTIONS(309), + [sym_preproc_directive] = ACTIONS(311), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(317), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(39), + [anon_sym___clrcall] = ACTIONS(39), + [anon_sym___stdcall] = ACTIONS(39), + [anon_sym___fastcall] = ACTIONS(39), + [anon_sym___thiscall] = ACTIONS(39), + [anon_sym___vectorcall] = ACTIONS(39), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(612), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [43] = { + [sym_declaration] = STATE(45), + [sym_type_definition] = STATE(45), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1006), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(45), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(45), + [sym_labeled_statement] = STATE(45), + [sym_expression_statement] = STATE(45), + [sym_if_statement] = STATE(45), + [sym_switch_statement] = STATE(45), + [sym_while_statement] = STATE(45), + [sym_do_statement] = STATE(45), + [sym_for_statement] = STATE(45), + [sym_return_statement] = STATE(45), + [sym_break_statement] = STATE(45), + [sym_continue_statement] = STATE(45), + [sym_goto_statement] = STATE(45), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(45), + [sym_identifier] = ACTIONS(614), + [aux_sym_preproc_include_token1] = ACTIONS(616), + [aux_sym_preproc_def_token1] = ACTIONS(616), + [aux_sym_preproc_if_token1] = ACTIONS(616), + [aux_sym_preproc_if_token2] = ACTIONS(616), + [aux_sym_preproc_ifdef_token1] = ACTIONS(616), + [aux_sym_preproc_ifdef_token2] = ACTIONS(616), + [aux_sym_preproc_else_token1] = ACTIONS(616), + [aux_sym_preproc_elif_token1] = ACTIONS(616), + [sym_preproc_directive] = ACTIONS(616), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(616), + [anon_sym___clrcall] = ACTIONS(616), + [anon_sym___stdcall] = ACTIONS(616), + [anon_sym___fastcall] = ACTIONS(616), + [anon_sym___thiscall] = ACTIONS(616), + [anon_sym___vectorcall] = ACTIONS(616), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_else] = ACTIONS(616), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(616), + [anon_sym_default] = ACTIONS(616), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [44] = { + [sym_declaration] = STATE(43), + [sym_type_definition] = STATE(43), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1006), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(43), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(43), + [sym_labeled_statement] = STATE(43), + [sym_expression_statement] = STATE(43), + [sym_if_statement] = STATE(43), + [sym_switch_statement] = STATE(43), + [sym_while_statement] = STATE(43), + [sym_do_statement] = STATE(43), + [sym_for_statement] = STATE(43), + [sym_return_statement] = STATE(43), + [sym_break_statement] = STATE(43), + [sym_continue_statement] = STATE(43), + [sym_goto_statement] = STATE(43), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(43), + [sym_identifier] = ACTIONS(614), + [aux_sym_preproc_include_token1] = ACTIONS(618), + [aux_sym_preproc_def_token1] = ACTIONS(618), + [aux_sym_preproc_if_token1] = ACTIONS(618), + [aux_sym_preproc_if_token2] = ACTIONS(618), + [aux_sym_preproc_ifdef_token1] = ACTIONS(618), + [aux_sym_preproc_ifdef_token2] = ACTIONS(618), + [aux_sym_preproc_else_token1] = ACTIONS(618), + [aux_sym_preproc_elif_token1] = ACTIONS(618), + [sym_preproc_directive] = ACTIONS(618), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(618), + [anon_sym___clrcall] = ACTIONS(618), + [anon_sym___stdcall] = ACTIONS(618), + [anon_sym___fastcall] = ACTIONS(618), + [anon_sym___thiscall] = ACTIONS(618), + [anon_sym___vectorcall] = ACTIONS(618), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_else] = ACTIONS(618), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(618), + [anon_sym_default] = ACTIONS(618), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [45] = { + [sym_declaration] = STATE(45), + [sym_type_definition] = STATE(45), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1006), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(45), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(45), + [sym_labeled_statement] = STATE(45), + [sym_expression_statement] = STATE(45), + [sym_if_statement] = STATE(45), + [sym_switch_statement] = STATE(45), + [sym_while_statement] = STATE(45), + [sym_do_statement] = STATE(45), + [sym_for_statement] = STATE(45), + [sym_return_statement] = STATE(45), + [sym_break_statement] = STATE(45), + [sym_continue_statement] = STATE(45), + [sym_goto_statement] = STATE(45), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(45), + [sym_identifier] = ACTIONS(620), + [aux_sym_preproc_include_token1] = ACTIONS(623), + [aux_sym_preproc_def_token1] = ACTIONS(623), + [aux_sym_preproc_if_token1] = ACTIONS(623), + [aux_sym_preproc_if_token2] = ACTIONS(623), + [aux_sym_preproc_ifdef_token1] = ACTIONS(623), + [aux_sym_preproc_ifdef_token2] = ACTIONS(623), + [aux_sym_preproc_else_token1] = ACTIONS(623), + [aux_sym_preproc_elif_token1] = ACTIONS(623), + [sym_preproc_directive] = ACTIONS(623), + [anon_sym_LPAREN2] = ACTIONS(625), + [anon_sym_BANG] = ACTIONS(628), + [anon_sym_TILDE] = ACTIONS(628), + [anon_sym_DASH] = ACTIONS(631), + [anon_sym_PLUS] = ACTIONS(631), + [anon_sym_STAR] = ACTIONS(634), + [anon_sym_AMP] = ACTIONS(634), + [anon_sym_SEMI] = ACTIONS(637), + [anon_sym_typedef] = ACTIONS(640), + [anon_sym_extern] = ACTIONS(643), + [anon_sym___attribute__] = ACTIONS(646), + [anon_sym_LBRACK_LBRACK] = ACTIONS(649), + [anon_sym___declspec] = ACTIONS(652), + [anon_sym___cdecl] = ACTIONS(623), + [anon_sym___clrcall] = ACTIONS(623), + [anon_sym___stdcall] = ACTIONS(623), + [anon_sym___fastcall] = ACTIONS(623), + [anon_sym___thiscall] = ACTIONS(623), + [anon_sym___vectorcall] = ACTIONS(623), + [anon_sym_LBRACE] = ACTIONS(655), + [anon_sym_static] = ACTIONS(643), + [anon_sym_auto] = ACTIONS(643), + [anon_sym_register] = ACTIONS(643), + [anon_sym_inline] = ACTIONS(643), + [anon_sym_const] = ACTIONS(658), + [anon_sym_volatile] = ACTIONS(658), + [anon_sym_restrict] = ACTIONS(658), + [anon_sym__Atomic] = ACTIONS(658), + [anon_sym_signed] = ACTIONS(661), + [anon_sym_unsigned] = ACTIONS(661), + [anon_sym_long] = ACTIONS(661), + [anon_sym_short] = ACTIONS(661), + [sym_primitive_type] = ACTIONS(664), + [anon_sym_enum] = ACTIONS(667), + [anon_sym_struct] = ACTIONS(670), + [anon_sym_union] = ACTIONS(673), + [anon_sym_if] = ACTIONS(676), + [anon_sym_else] = ACTIONS(623), + [anon_sym_switch] = ACTIONS(679), + [anon_sym_case] = ACTIONS(623), + [anon_sym_default] = ACTIONS(623), + [anon_sym_while] = ACTIONS(682), + [anon_sym_do] = ACTIONS(685), + [anon_sym_for] = ACTIONS(688), + [anon_sym_return] = ACTIONS(691), + [anon_sym_break] = ACTIONS(694), + [anon_sym_continue] = ACTIONS(697), + [anon_sym_goto] = ACTIONS(700), + [anon_sym_DASH_DASH] = ACTIONS(703), + [anon_sym_PLUS_PLUS] = ACTIONS(703), + [anon_sym_sizeof] = ACTIONS(706), + [sym_number_literal] = ACTIONS(709), + [anon_sym_L_SQUOTE] = ACTIONS(712), + [anon_sym_u_SQUOTE] = ACTIONS(712), + [anon_sym_U_SQUOTE] = ACTIONS(712), + [anon_sym_u8_SQUOTE] = ACTIONS(712), + [anon_sym_SQUOTE] = ACTIONS(712), + [anon_sym_L_DQUOTE] = ACTIONS(715), + [anon_sym_u_DQUOTE] = ACTIONS(715), + [anon_sym_U_DQUOTE] = ACTIONS(715), + [anon_sym_u8_DQUOTE] = ACTIONS(715), + [anon_sym_DQUOTE] = ACTIONS(715), + [sym_true] = ACTIONS(718), + [sym_false] = ACTIONS(718), + [sym_null] = ACTIONS(718), + [sym_comment] = ACTIONS(3), + }, + [46] = { + [sym_declaration] = STATE(47), + [sym_type_definition] = STATE(47), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1006), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(47), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(47), + [sym_labeled_statement] = STATE(47), + [sym_expression_statement] = STATE(47), + [sym_if_statement] = STATE(47), + [sym_switch_statement] = STATE(47), + [sym_while_statement] = STATE(47), + [sym_do_statement] = STATE(47), + [sym_for_statement] = STATE(47), + [sym_return_statement] = STATE(47), + [sym_break_statement] = STATE(47), + [sym_continue_statement] = STATE(47), + [sym_goto_statement] = STATE(47), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(47), + [sym_identifier] = ACTIONS(614), + [aux_sym_preproc_include_token1] = ACTIONS(721), + [aux_sym_preproc_def_token1] = ACTIONS(721), + [aux_sym_preproc_if_token1] = ACTIONS(721), + [aux_sym_preproc_if_token2] = ACTIONS(721), + [aux_sym_preproc_ifdef_token1] = ACTIONS(721), + [aux_sym_preproc_ifdef_token2] = ACTIONS(721), + [aux_sym_preproc_else_token1] = ACTIONS(721), + [aux_sym_preproc_elif_token1] = ACTIONS(721), + [sym_preproc_directive] = ACTIONS(721), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(721), + [anon_sym___clrcall] = ACTIONS(721), + [anon_sym___stdcall] = ACTIONS(721), + [anon_sym___fastcall] = ACTIONS(721), + [anon_sym___thiscall] = ACTIONS(721), + [anon_sym___vectorcall] = ACTIONS(721), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_else] = ACTIONS(721), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(721), + [anon_sym_default] = ACTIONS(721), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [47] = { + [sym_declaration] = STATE(45), + [sym_type_definition] = STATE(45), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1006), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(45), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(45), + [sym_labeled_statement] = STATE(45), + [sym_expression_statement] = STATE(45), + [sym_if_statement] = STATE(45), + [sym_switch_statement] = STATE(45), + [sym_while_statement] = STATE(45), + [sym_do_statement] = STATE(45), + [sym_for_statement] = STATE(45), + [sym_return_statement] = STATE(45), + [sym_break_statement] = STATE(45), + [sym_continue_statement] = STATE(45), + [sym_goto_statement] = STATE(45), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(45), + [sym_identifier] = ACTIONS(614), + [aux_sym_preproc_include_token1] = ACTIONS(723), + [aux_sym_preproc_def_token1] = ACTIONS(723), + [aux_sym_preproc_if_token1] = ACTIONS(723), + [aux_sym_preproc_if_token2] = ACTIONS(723), + [aux_sym_preproc_ifdef_token1] = ACTIONS(723), + [aux_sym_preproc_ifdef_token2] = ACTIONS(723), + [aux_sym_preproc_else_token1] = ACTIONS(723), + [aux_sym_preproc_elif_token1] = ACTIONS(723), + [sym_preproc_directive] = ACTIONS(723), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_typedef] = ACTIONS(111), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(723), + [anon_sym___clrcall] = ACTIONS(723), + [anon_sym___stdcall] = ACTIONS(723), + [anon_sym___fastcall] = ACTIONS(723), + [anon_sym___thiscall] = ACTIONS(723), + [anon_sym___vectorcall] = ACTIONS(723), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(117), + [anon_sym_else] = ACTIONS(723), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(723), + [anon_sym_default] = ACTIONS(723), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [48] = { + [sym_declaration] = STATE(55), + [sym_type_definition] = STATE(55), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1011), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(55), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(55), + [sym_labeled_statement] = STATE(55), + [sym_expression_statement] = STATE(55), + [sym_if_statement] = STATE(55), + [sym_switch_statement] = STATE(55), + [sym_while_statement] = STATE(55), + [sym_do_statement] = STATE(55), + [sym_for_statement] = STATE(55), + [sym_return_statement] = STATE(55), + [sym_break_statement] = STATE(55), + [sym_continue_statement] = STATE(55), + [sym_goto_statement] = STATE(55), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(55), + [ts_builtin_sym_end] = ACTIONS(725), + [sym_identifier] = ACTIONS(727), + [aux_sym_preproc_include_token1] = ACTIONS(618), + [aux_sym_preproc_def_token1] = ACTIONS(618), + [aux_sym_preproc_if_token1] = ACTIONS(618), + [aux_sym_preproc_ifdef_token1] = ACTIONS(618), + [aux_sym_preproc_ifdef_token2] = ACTIONS(618), + [sym_preproc_directive] = ACTIONS(618), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_typedef] = ACTIONS(29), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(618), + [anon_sym___clrcall] = ACTIONS(618), + [anon_sym___stdcall] = ACTIONS(618), + [anon_sym___fastcall] = ACTIONS(618), + [anon_sym___thiscall] = ACTIONS(618), + [anon_sym___vectorcall] = ACTIONS(618), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_else] = ACTIONS(618), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(618), + [anon_sym_default] = ACTIONS(618), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [49] = { + [sym_declaration] = STATE(57), + [sym_type_definition] = STATE(57), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1010), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(57), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(57), + [sym_labeled_statement] = STATE(57), + [sym_expression_statement] = STATE(57), + [sym_if_statement] = STATE(57), + [sym_switch_statement] = STATE(57), + [sym_while_statement] = STATE(57), + [sym_do_statement] = STATE(57), + [sym_for_statement] = STATE(57), + [sym_return_statement] = STATE(57), + [sym_break_statement] = STATE(57), + [sym_continue_statement] = STATE(57), + [sym_goto_statement] = STATE(57), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(57), + [sym_identifier] = ACTIONS(729), + [aux_sym_preproc_include_token1] = ACTIONS(616), + [aux_sym_preproc_def_token1] = ACTIONS(616), + [aux_sym_preproc_if_token1] = ACTIONS(616), + [aux_sym_preproc_if_token2] = ACTIONS(616), + [aux_sym_preproc_ifdef_token1] = ACTIONS(616), + [aux_sym_preproc_ifdef_token2] = ACTIONS(616), + [sym_preproc_directive] = ACTIONS(616), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_typedef] = ACTIONS(507), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(616), + [anon_sym___clrcall] = ACTIONS(616), + [anon_sym___stdcall] = ACTIONS(616), + [anon_sym___fastcall] = ACTIONS(616), + [anon_sym___thiscall] = ACTIONS(616), + [anon_sym___vectorcall] = ACTIONS(616), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(513), + [anon_sym_else] = ACTIONS(616), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(616), + [anon_sym_default] = ACTIONS(616), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [50] = { + [sym_declaration] = STATE(50), + [sym_type_definition] = STATE(50), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1011), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(50), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(50), + [sym_labeled_statement] = STATE(50), + [sym_expression_statement] = STATE(50), + [sym_if_statement] = STATE(50), + [sym_switch_statement] = STATE(50), + [sym_while_statement] = STATE(50), + [sym_do_statement] = STATE(50), + [sym_for_statement] = STATE(50), + [sym_return_statement] = STATE(50), + [sym_break_statement] = STATE(50), + [sym_continue_statement] = STATE(50), + [sym_goto_statement] = STATE(50), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(50), + [ts_builtin_sym_end] = ACTIONS(731), + [sym_identifier] = ACTIONS(733), + [aux_sym_preproc_include_token1] = ACTIONS(623), + [aux_sym_preproc_def_token1] = ACTIONS(623), + [aux_sym_preproc_if_token1] = ACTIONS(623), + [aux_sym_preproc_ifdef_token1] = ACTIONS(623), + [aux_sym_preproc_ifdef_token2] = ACTIONS(623), + [sym_preproc_directive] = ACTIONS(623), + [anon_sym_LPAREN2] = ACTIONS(625), + [anon_sym_BANG] = ACTIONS(628), + [anon_sym_TILDE] = ACTIONS(628), + [anon_sym_DASH] = ACTIONS(631), + [anon_sym_PLUS] = ACTIONS(631), + [anon_sym_STAR] = ACTIONS(634), + [anon_sym_AMP] = ACTIONS(634), + [anon_sym_SEMI] = ACTIONS(736), + [anon_sym_typedef] = ACTIONS(739), + [anon_sym_extern] = ACTIONS(643), + [anon_sym___attribute__] = ACTIONS(646), + [anon_sym_LBRACK_LBRACK] = ACTIONS(649), + [anon_sym___declspec] = ACTIONS(652), + [anon_sym___cdecl] = ACTIONS(623), + [anon_sym___clrcall] = ACTIONS(623), + [anon_sym___stdcall] = ACTIONS(623), + [anon_sym___fastcall] = ACTIONS(623), + [anon_sym___thiscall] = ACTIONS(623), + [anon_sym___vectorcall] = ACTIONS(623), + [anon_sym_LBRACE] = ACTIONS(742), + [anon_sym_static] = ACTIONS(643), + [anon_sym_auto] = ACTIONS(643), + [anon_sym_register] = ACTIONS(643), + [anon_sym_inline] = ACTIONS(643), + [anon_sym_const] = ACTIONS(658), + [anon_sym_volatile] = ACTIONS(658), + [anon_sym_restrict] = ACTIONS(658), + [anon_sym__Atomic] = ACTIONS(658), + [anon_sym_signed] = ACTIONS(661), + [anon_sym_unsigned] = ACTIONS(661), + [anon_sym_long] = ACTIONS(661), + [anon_sym_short] = ACTIONS(661), + [sym_primitive_type] = ACTIONS(664), + [anon_sym_enum] = ACTIONS(667), + [anon_sym_struct] = ACTIONS(670), + [anon_sym_union] = ACTIONS(673), + [anon_sym_if] = ACTIONS(745), + [anon_sym_else] = ACTIONS(623), + [anon_sym_switch] = ACTIONS(748), + [anon_sym_case] = ACTIONS(623), + [anon_sym_default] = ACTIONS(623), + [anon_sym_while] = ACTIONS(751), + [anon_sym_do] = ACTIONS(754), + [anon_sym_for] = ACTIONS(757), + [anon_sym_return] = ACTIONS(760), + [anon_sym_break] = ACTIONS(763), + [anon_sym_continue] = ACTIONS(766), + [anon_sym_goto] = ACTIONS(769), + [anon_sym_DASH_DASH] = ACTIONS(703), + [anon_sym_PLUS_PLUS] = ACTIONS(703), + [anon_sym_sizeof] = ACTIONS(706), + [sym_number_literal] = ACTIONS(709), + [anon_sym_L_SQUOTE] = ACTIONS(712), + [anon_sym_u_SQUOTE] = ACTIONS(712), + [anon_sym_U_SQUOTE] = ACTIONS(712), + [anon_sym_u8_SQUOTE] = ACTIONS(712), + [anon_sym_SQUOTE] = ACTIONS(712), + [anon_sym_L_DQUOTE] = ACTIONS(715), + [anon_sym_u_DQUOTE] = ACTIONS(715), + [anon_sym_U_DQUOTE] = ACTIONS(715), + [anon_sym_u8_DQUOTE] = ACTIONS(715), + [anon_sym_DQUOTE] = ACTIONS(715), + [sym_true] = ACTIONS(718), + [sym_false] = ACTIONS(718), + [sym_null] = ACTIONS(718), + [sym_comment] = ACTIONS(3), + }, + [51] = { + [sym_declaration] = STATE(49), + [sym_type_definition] = STATE(49), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1010), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(49), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(49), + [sym_labeled_statement] = STATE(49), + [sym_expression_statement] = STATE(49), + [sym_if_statement] = STATE(49), + [sym_switch_statement] = STATE(49), + [sym_while_statement] = STATE(49), + [sym_do_statement] = STATE(49), + [sym_for_statement] = STATE(49), + [sym_return_statement] = STATE(49), + [sym_break_statement] = STATE(49), + [sym_continue_statement] = STATE(49), + [sym_goto_statement] = STATE(49), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(49), + [sym_identifier] = ACTIONS(729), + [aux_sym_preproc_include_token1] = ACTIONS(618), + [aux_sym_preproc_def_token1] = ACTIONS(618), + [aux_sym_preproc_if_token1] = ACTIONS(618), + [aux_sym_preproc_if_token2] = ACTIONS(618), + [aux_sym_preproc_ifdef_token1] = ACTIONS(618), + [aux_sym_preproc_ifdef_token2] = ACTIONS(618), + [sym_preproc_directive] = ACTIONS(618), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_typedef] = ACTIONS(507), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(618), + [anon_sym___clrcall] = ACTIONS(618), + [anon_sym___stdcall] = ACTIONS(618), + [anon_sym___fastcall] = ACTIONS(618), + [anon_sym___thiscall] = ACTIONS(618), + [anon_sym___vectorcall] = ACTIONS(618), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(513), + [anon_sym_else] = ACTIONS(618), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(618), + [anon_sym_default] = ACTIONS(618), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [52] = { + [sym_declaration] = STATE(56), + [sym_type_definition] = STATE(56), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1010), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(56), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(56), + [sym_labeled_statement] = STATE(56), + [sym_expression_statement] = STATE(56), + [sym_if_statement] = STATE(56), + [sym_switch_statement] = STATE(56), + [sym_while_statement] = STATE(56), + [sym_do_statement] = STATE(56), + [sym_for_statement] = STATE(56), + [sym_return_statement] = STATE(56), + [sym_break_statement] = STATE(56), + [sym_continue_statement] = STATE(56), + [sym_goto_statement] = STATE(56), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(56), + [sym_identifier] = ACTIONS(729), + [aux_sym_preproc_include_token1] = ACTIONS(721), + [aux_sym_preproc_def_token1] = ACTIONS(721), + [aux_sym_preproc_if_token1] = ACTIONS(721), + [aux_sym_preproc_if_token2] = ACTIONS(721), + [aux_sym_preproc_ifdef_token1] = ACTIONS(721), + [aux_sym_preproc_ifdef_token2] = ACTIONS(721), + [sym_preproc_directive] = ACTIONS(721), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_typedef] = ACTIONS(507), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(721), + [anon_sym___clrcall] = ACTIONS(721), + [anon_sym___stdcall] = ACTIONS(721), + [anon_sym___fastcall] = ACTIONS(721), + [anon_sym___thiscall] = ACTIONS(721), + [anon_sym___vectorcall] = ACTIONS(721), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(513), + [anon_sym_else] = ACTIONS(721), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(721), + [anon_sym_default] = ACTIONS(721), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [53] = { + [sym_declaration] = STATE(54), + [sym_type_definition] = STATE(54), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1011), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(54), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(54), + [sym_labeled_statement] = STATE(54), + [sym_expression_statement] = STATE(54), + [sym_if_statement] = STATE(54), + [sym_switch_statement] = STATE(54), + [sym_while_statement] = STATE(54), + [sym_do_statement] = STATE(54), + [sym_for_statement] = STATE(54), + [sym_return_statement] = STATE(54), + [sym_break_statement] = STATE(54), + [sym_continue_statement] = STATE(54), + [sym_goto_statement] = STATE(54), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(54), + [ts_builtin_sym_end] = ACTIONS(772), + [sym_identifier] = ACTIONS(727), + [aux_sym_preproc_include_token1] = ACTIONS(721), + [aux_sym_preproc_def_token1] = ACTIONS(721), + [aux_sym_preproc_if_token1] = ACTIONS(721), + [aux_sym_preproc_ifdef_token1] = ACTIONS(721), + [aux_sym_preproc_ifdef_token2] = ACTIONS(721), + [sym_preproc_directive] = ACTIONS(721), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_typedef] = ACTIONS(29), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(721), + [anon_sym___clrcall] = ACTIONS(721), + [anon_sym___stdcall] = ACTIONS(721), + [anon_sym___fastcall] = ACTIONS(721), + [anon_sym___thiscall] = ACTIONS(721), + [anon_sym___vectorcall] = ACTIONS(721), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_else] = ACTIONS(721), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(721), + [anon_sym_default] = ACTIONS(721), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [54] = { + [sym_declaration] = STATE(50), + [sym_type_definition] = STATE(50), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1011), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(50), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(50), + [sym_labeled_statement] = STATE(50), + [sym_expression_statement] = STATE(50), + [sym_if_statement] = STATE(50), + [sym_switch_statement] = STATE(50), + [sym_while_statement] = STATE(50), + [sym_do_statement] = STATE(50), + [sym_for_statement] = STATE(50), + [sym_return_statement] = STATE(50), + [sym_break_statement] = STATE(50), + [sym_continue_statement] = STATE(50), + [sym_goto_statement] = STATE(50), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(50), + [ts_builtin_sym_end] = ACTIONS(774), + [sym_identifier] = ACTIONS(727), + [aux_sym_preproc_include_token1] = ACTIONS(723), + [aux_sym_preproc_def_token1] = ACTIONS(723), + [aux_sym_preproc_if_token1] = ACTIONS(723), + [aux_sym_preproc_ifdef_token1] = ACTIONS(723), + [aux_sym_preproc_ifdef_token2] = ACTIONS(723), + [sym_preproc_directive] = ACTIONS(723), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_typedef] = ACTIONS(29), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(723), + [anon_sym___clrcall] = ACTIONS(723), + [anon_sym___stdcall] = ACTIONS(723), + [anon_sym___fastcall] = ACTIONS(723), + [anon_sym___thiscall] = ACTIONS(723), + [anon_sym___vectorcall] = ACTIONS(723), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_else] = ACTIONS(723), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(723), + [anon_sym_default] = ACTIONS(723), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [55] = { + [sym_declaration] = STATE(50), + [sym_type_definition] = STATE(50), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1011), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(50), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(50), + [sym_labeled_statement] = STATE(50), + [sym_expression_statement] = STATE(50), + [sym_if_statement] = STATE(50), + [sym_switch_statement] = STATE(50), + [sym_while_statement] = STATE(50), + [sym_do_statement] = STATE(50), + [sym_for_statement] = STATE(50), + [sym_return_statement] = STATE(50), + [sym_break_statement] = STATE(50), + [sym_continue_statement] = STATE(50), + [sym_goto_statement] = STATE(50), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(50), + [ts_builtin_sym_end] = ACTIONS(776), + [sym_identifier] = ACTIONS(727), + [aux_sym_preproc_include_token1] = ACTIONS(616), + [aux_sym_preproc_def_token1] = ACTIONS(616), + [aux_sym_preproc_if_token1] = ACTIONS(616), + [aux_sym_preproc_ifdef_token1] = ACTIONS(616), + [aux_sym_preproc_ifdef_token2] = ACTIONS(616), + [sym_preproc_directive] = ACTIONS(616), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_typedef] = ACTIONS(29), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(616), + [anon_sym___clrcall] = ACTIONS(616), + [anon_sym___stdcall] = ACTIONS(616), + [anon_sym___fastcall] = ACTIONS(616), + [anon_sym___thiscall] = ACTIONS(616), + [anon_sym___vectorcall] = ACTIONS(616), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_else] = ACTIONS(616), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(616), + [anon_sym_default] = ACTIONS(616), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [56] = { + [sym_declaration] = STATE(57), + [sym_type_definition] = STATE(57), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1010), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(57), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(57), + [sym_labeled_statement] = STATE(57), + [sym_expression_statement] = STATE(57), + [sym_if_statement] = STATE(57), + [sym_switch_statement] = STATE(57), + [sym_while_statement] = STATE(57), + [sym_do_statement] = STATE(57), + [sym_for_statement] = STATE(57), + [sym_return_statement] = STATE(57), + [sym_break_statement] = STATE(57), + [sym_continue_statement] = STATE(57), + [sym_goto_statement] = STATE(57), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(57), + [sym_identifier] = ACTIONS(729), + [aux_sym_preproc_include_token1] = ACTIONS(723), + [aux_sym_preproc_def_token1] = ACTIONS(723), + [aux_sym_preproc_if_token1] = ACTIONS(723), + [aux_sym_preproc_if_token2] = ACTIONS(723), + [aux_sym_preproc_ifdef_token1] = ACTIONS(723), + [aux_sym_preproc_ifdef_token2] = ACTIONS(723), + [sym_preproc_directive] = ACTIONS(723), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_typedef] = ACTIONS(507), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(723), + [anon_sym___clrcall] = ACTIONS(723), + [anon_sym___stdcall] = ACTIONS(723), + [anon_sym___fastcall] = ACTIONS(723), + [anon_sym___thiscall] = ACTIONS(723), + [anon_sym___vectorcall] = ACTIONS(723), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(513), + [anon_sym_else] = ACTIONS(723), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(723), + [anon_sym_default] = ACTIONS(723), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [57] = { + [sym_declaration] = STATE(57), + [sym_type_definition] = STATE(57), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1010), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(57), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(57), + [sym_labeled_statement] = STATE(57), + [sym_expression_statement] = STATE(57), + [sym_if_statement] = STATE(57), + [sym_switch_statement] = STATE(57), + [sym_while_statement] = STATE(57), + [sym_do_statement] = STATE(57), + [sym_for_statement] = STATE(57), + [sym_return_statement] = STATE(57), + [sym_break_statement] = STATE(57), + [sym_continue_statement] = STATE(57), + [sym_goto_statement] = STATE(57), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(57), + [sym_identifier] = ACTIONS(778), + [aux_sym_preproc_include_token1] = ACTIONS(623), + [aux_sym_preproc_def_token1] = ACTIONS(623), + [aux_sym_preproc_if_token1] = ACTIONS(623), + [aux_sym_preproc_if_token2] = ACTIONS(623), + [aux_sym_preproc_ifdef_token1] = ACTIONS(623), + [aux_sym_preproc_ifdef_token2] = ACTIONS(623), + [sym_preproc_directive] = ACTIONS(623), + [anon_sym_LPAREN2] = ACTIONS(625), + [anon_sym_BANG] = ACTIONS(628), + [anon_sym_TILDE] = ACTIONS(628), + [anon_sym_DASH] = ACTIONS(631), + [anon_sym_PLUS] = ACTIONS(631), + [anon_sym_STAR] = ACTIONS(634), + [anon_sym_AMP] = ACTIONS(634), + [anon_sym_SEMI] = ACTIONS(781), + [anon_sym_typedef] = ACTIONS(784), + [anon_sym_extern] = ACTIONS(643), + [anon_sym___attribute__] = ACTIONS(646), + [anon_sym_LBRACK_LBRACK] = ACTIONS(649), + [anon_sym___declspec] = ACTIONS(652), + [anon_sym___cdecl] = ACTIONS(623), + [anon_sym___clrcall] = ACTIONS(623), + [anon_sym___stdcall] = ACTIONS(623), + [anon_sym___fastcall] = ACTIONS(623), + [anon_sym___thiscall] = ACTIONS(623), + [anon_sym___vectorcall] = ACTIONS(623), + [anon_sym_LBRACE] = ACTIONS(787), + [anon_sym_static] = ACTIONS(643), + [anon_sym_auto] = ACTIONS(643), + [anon_sym_register] = ACTIONS(643), + [anon_sym_inline] = ACTIONS(643), + [anon_sym_const] = ACTIONS(658), + [anon_sym_volatile] = ACTIONS(658), + [anon_sym_restrict] = ACTIONS(658), + [anon_sym__Atomic] = ACTIONS(658), + [anon_sym_signed] = ACTIONS(661), + [anon_sym_unsigned] = ACTIONS(661), + [anon_sym_long] = ACTIONS(661), + [anon_sym_short] = ACTIONS(661), + [sym_primitive_type] = ACTIONS(664), + [anon_sym_enum] = ACTIONS(667), + [anon_sym_struct] = ACTIONS(670), + [anon_sym_union] = ACTIONS(673), + [anon_sym_if] = ACTIONS(790), + [anon_sym_else] = ACTIONS(623), + [anon_sym_switch] = ACTIONS(793), + [anon_sym_case] = ACTIONS(623), + [anon_sym_default] = ACTIONS(623), + [anon_sym_while] = ACTIONS(796), + [anon_sym_do] = ACTIONS(799), + [anon_sym_for] = ACTIONS(802), + [anon_sym_return] = ACTIONS(805), + [anon_sym_break] = ACTIONS(808), + [anon_sym_continue] = ACTIONS(811), + [anon_sym_goto] = ACTIONS(814), + [anon_sym_DASH_DASH] = ACTIONS(703), + [anon_sym_PLUS_PLUS] = ACTIONS(703), + [anon_sym_sizeof] = ACTIONS(706), + [sym_number_literal] = ACTIONS(709), + [anon_sym_L_SQUOTE] = ACTIONS(712), + [anon_sym_u_SQUOTE] = ACTIONS(712), + [anon_sym_U_SQUOTE] = ACTIONS(712), + [anon_sym_u8_SQUOTE] = ACTIONS(712), + [anon_sym_SQUOTE] = ACTIONS(712), + [anon_sym_L_DQUOTE] = ACTIONS(715), + [anon_sym_u_DQUOTE] = ACTIONS(715), + [anon_sym_U_DQUOTE] = ACTIONS(715), + [anon_sym_u8_DQUOTE] = ACTIONS(715), + [anon_sym_DQUOTE] = ACTIONS(715), + [sym_true] = ACTIONS(718), + [sym_false] = ACTIONS(718), + [sym_null] = ACTIONS(718), + [sym_comment] = ACTIONS(3), + }, + [58] = { + [sym_declaration] = STATE(60), + [sym_type_definition] = STATE(60), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1005), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(60), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(60), + [sym_labeled_statement] = STATE(60), + [sym_expression_statement] = STATE(60), + [sym_if_statement] = STATE(60), + [sym_switch_statement] = STATE(60), + [sym_while_statement] = STATE(60), + [sym_do_statement] = STATE(60), + [sym_for_statement] = STATE(60), + [sym_return_statement] = STATE(60), + [sym_break_statement] = STATE(60), + [sym_continue_statement] = STATE(60), + [sym_goto_statement] = STATE(60), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(60), + [sym_identifier] = ACTIONS(817), + [aux_sym_preproc_include_token1] = ACTIONS(721), + [aux_sym_preproc_def_token1] = ACTIONS(721), + [aux_sym_preproc_if_token1] = ACTIONS(721), + [aux_sym_preproc_ifdef_token1] = ACTIONS(721), + [aux_sym_preproc_ifdef_token2] = ACTIONS(721), + [sym_preproc_directive] = ACTIONS(721), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(721), + [anon_sym___clrcall] = ACTIONS(721), + [anon_sym___stdcall] = ACTIONS(721), + [anon_sym___fastcall] = ACTIONS(721), + [anon_sym___thiscall] = ACTIONS(721), + [anon_sym___vectorcall] = ACTIONS(721), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(772), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_else] = ACTIONS(721), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(721), + [anon_sym_default] = ACTIONS(721), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [59] = { + [sym_declaration] = STATE(61), + [sym_type_definition] = STATE(61), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1005), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(61), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(61), + [sym_labeled_statement] = STATE(61), + [sym_expression_statement] = STATE(61), + [sym_if_statement] = STATE(61), + [sym_switch_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_do_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_return_statement] = STATE(61), + [sym_break_statement] = STATE(61), + [sym_continue_statement] = STATE(61), + [sym_goto_statement] = STATE(61), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(61), + [sym_identifier] = ACTIONS(817), + [aux_sym_preproc_include_token1] = ACTIONS(618), + [aux_sym_preproc_def_token1] = ACTIONS(618), + [aux_sym_preproc_if_token1] = ACTIONS(618), + [aux_sym_preproc_ifdef_token1] = ACTIONS(618), + [aux_sym_preproc_ifdef_token2] = ACTIONS(618), + [sym_preproc_directive] = ACTIONS(618), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(618), + [anon_sym___clrcall] = ACTIONS(618), + [anon_sym___stdcall] = ACTIONS(618), + [anon_sym___fastcall] = ACTIONS(618), + [anon_sym___thiscall] = ACTIONS(618), + [anon_sym___vectorcall] = ACTIONS(618), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(725), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_else] = ACTIONS(618), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(618), + [anon_sym_default] = ACTIONS(618), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [60] = { + [sym_declaration] = STATE(62), + [sym_type_definition] = STATE(62), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1005), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(62), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(62), + [sym_labeled_statement] = STATE(62), + [sym_expression_statement] = STATE(62), + [sym_if_statement] = STATE(62), + [sym_switch_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_do_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_return_statement] = STATE(62), + [sym_break_statement] = STATE(62), + [sym_continue_statement] = STATE(62), + [sym_goto_statement] = STATE(62), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(62), + [sym_identifier] = ACTIONS(817), + [aux_sym_preproc_include_token1] = ACTIONS(723), + [aux_sym_preproc_def_token1] = ACTIONS(723), + [aux_sym_preproc_if_token1] = ACTIONS(723), + [aux_sym_preproc_ifdef_token1] = ACTIONS(723), + [aux_sym_preproc_ifdef_token2] = ACTIONS(723), + [sym_preproc_directive] = ACTIONS(723), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(723), + [anon_sym___clrcall] = ACTIONS(723), + [anon_sym___stdcall] = ACTIONS(723), + [anon_sym___fastcall] = ACTIONS(723), + [anon_sym___thiscall] = ACTIONS(723), + [anon_sym___vectorcall] = ACTIONS(723), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(774), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_else] = ACTIONS(723), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(723), + [anon_sym_default] = ACTIONS(723), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [61] = { + [sym_declaration] = STATE(62), + [sym_type_definition] = STATE(62), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1005), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(62), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(62), + [sym_labeled_statement] = STATE(62), + [sym_expression_statement] = STATE(62), + [sym_if_statement] = STATE(62), + [sym_switch_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_do_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_return_statement] = STATE(62), + [sym_break_statement] = STATE(62), + [sym_continue_statement] = STATE(62), + [sym_goto_statement] = STATE(62), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(62), + [sym_identifier] = ACTIONS(817), + [aux_sym_preproc_include_token1] = ACTIONS(616), + [aux_sym_preproc_def_token1] = ACTIONS(616), + [aux_sym_preproc_if_token1] = ACTIONS(616), + [aux_sym_preproc_ifdef_token1] = ACTIONS(616), + [aux_sym_preproc_ifdef_token2] = ACTIONS(616), + [sym_preproc_directive] = ACTIONS(616), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_typedef] = ACTIONS(315), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(35), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym___cdecl] = ACTIONS(616), + [anon_sym___clrcall] = ACTIONS(616), + [anon_sym___stdcall] = ACTIONS(616), + [anon_sym___fastcall] = ACTIONS(616), + [anon_sym___thiscall] = ACTIONS(616), + [anon_sym___vectorcall] = ACTIONS(616), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_RBRACE] = ACTIONS(776), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_if] = ACTIONS(323), + [anon_sym_else] = ACTIONS(616), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(616), + [anon_sym_default] = ACTIONS(616), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [62] = { + [sym_declaration] = STATE(62), + [sym_type_definition] = STATE(62), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1005), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(385), + [sym_ms_declspec_modifier] = STATE(645), + [sym_compound_statement] = STATE(62), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym_attributed_statement] = STATE(62), + [sym_labeled_statement] = STATE(62), + [sym_expression_statement] = STATE(62), + [sym_if_statement] = STATE(62), + [sym_switch_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_do_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_return_statement] = STATE(62), + [sym_break_statement] = STATE(62), + [sym_continue_statement] = STATE(62), + [sym_goto_statement] = STATE(62), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [aux_sym_case_statement_repeat1] = STATE(62), + [sym_identifier] = ACTIONS(819), + [aux_sym_preproc_include_token1] = ACTIONS(623), + [aux_sym_preproc_def_token1] = ACTIONS(623), + [aux_sym_preproc_if_token1] = ACTIONS(623), + [aux_sym_preproc_ifdef_token1] = ACTIONS(623), + [aux_sym_preproc_ifdef_token2] = ACTIONS(623), + [sym_preproc_directive] = ACTIONS(623), + [anon_sym_LPAREN2] = ACTIONS(625), + [anon_sym_BANG] = ACTIONS(628), + [anon_sym_TILDE] = ACTIONS(628), + [anon_sym_DASH] = ACTIONS(631), + [anon_sym_PLUS] = ACTIONS(631), + [anon_sym_STAR] = ACTIONS(634), + [anon_sym_AMP] = ACTIONS(634), + [anon_sym_SEMI] = ACTIONS(822), + [anon_sym_typedef] = ACTIONS(825), + [anon_sym_extern] = ACTIONS(643), + [anon_sym___attribute__] = ACTIONS(646), + [anon_sym_LBRACK_LBRACK] = ACTIONS(649), + [anon_sym___declspec] = ACTIONS(652), + [anon_sym___cdecl] = ACTIONS(623), + [anon_sym___clrcall] = ACTIONS(623), + [anon_sym___stdcall] = ACTIONS(623), + [anon_sym___fastcall] = ACTIONS(623), + [anon_sym___thiscall] = ACTIONS(623), + [anon_sym___vectorcall] = ACTIONS(623), + [anon_sym_LBRACE] = ACTIONS(828), + [anon_sym_RBRACE] = ACTIONS(731), + [anon_sym_static] = ACTIONS(643), + [anon_sym_auto] = ACTIONS(643), + [anon_sym_register] = ACTIONS(643), + [anon_sym_inline] = ACTIONS(643), + [anon_sym_const] = ACTIONS(658), + [anon_sym_volatile] = ACTIONS(658), + [anon_sym_restrict] = ACTIONS(658), + [anon_sym__Atomic] = ACTIONS(658), + [anon_sym_signed] = ACTIONS(661), + [anon_sym_unsigned] = ACTIONS(661), + [anon_sym_long] = ACTIONS(661), + [anon_sym_short] = ACTIONS(661), + [sym_primitive_type] = ACTIONS(664), + [anon_sym_enum] = ACTIONS(667), + [anon_sym_struct] = ACTIONS(670), + [anon_sym_union] = ACTIONS(673), + [anon_sym_if] = ACTIONS(831), + [anon_sym_else] = ACTIONS(623), + [anon_sym_switch] = ACTIONS(834), + [anon_sym_case] = ACTIONS(623), + [anon_sym_default] = ACTIONS(623), + [anon_sym_while] = ACTIONS(837), + [anon_sym_do] = ACTIONS(840), + [anon_sym_for] = ACTIONS(843), + [anon_sym_return] = ACTIONS(846), + [anon_sym_break] = ACTIONS(849), + [anon_sym_continue] = ACTIONS(852), + [anon_sym_goto] = ACTIONS(855), + [anon_sym_DASH_DASH] = ACTIONS(703), + [anon_sym_PLUS_PLUS] = ACTIONS(703), + [anon_sym_sizeof] = ACTIONS(706), + [sym_number_literal] = ACTIONS(709), + [anon_sym_L_SQUOTE] = ACTIONS(712), + [anon_sym_u_SQUOTE] = ACTIONS(712), + [anon_sym_U_SQUOTE] = ACTIONS(712), + [anon_sym_u8_SQUOTE] = ACTIONS(712), + [anon_sym_SQUOTE] = ACTIONS(712), + [anon_sym_L_DQUOTE] = ACTIONS(715), + [anon_sym_u_DQUOTE] = ACTIONS(715), + [anon_sym_U_DQUOTE] = ACTIONS(715), + [anon_sym_u8_DQUOTE] = ACTIONS(715), + [anon_sym_DQUOTE] = ACTIONS(715), + [sym_true] = ACTIONS(718), + [sym_false] = ACTIONS(718), + [sym_null] = ACTIONS(718), + [sym_comment] = ACTIONS(3), + }, + [63] = { + [sym_declaration] = STATE(473), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1011), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(645), + [sym_ms_declspec_modifier] = STATE(645), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(729), + [sym_comma_expression] = STATE(1367), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(858), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(860), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(862), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [64] = { + [sym_declaration] = STATE(446), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1011), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(645), + [sym_ms_declspec_modifier] = STATE(645), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(737), + [sym_comma_expression] = STATE(1439), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(858), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(864), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(862), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [65] = { + [sym_declaration] = STATE(479), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1011), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(645), + [sym_ms_declspec_modifier] = STATE(645), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(717), + [sym_comma_expression] = STATE(1449), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(858), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(866), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(862), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [66] = { + [sym_declaration] = STATE(456), + [sym__declaration_modifiers] = STATE(645), + [sym__declaration_specifiers] = STATE(1011), + [sym_attribute_specifier] = STATE(645), + [sym_attribute_declaration] = STATE(645), + [sym_ms_declspec_modifier] = STATE(645), + [sym_storage_class_specifier] = STATE(645), + [sym_type_qualifier] = STATE(645), + [sym__type_specifier] = STATE(707), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(703), + [sym_comma_expression] = STATE(1457), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym__declaration_specifiers_repeat1] = STATE(645), + [aux_sym_sized_type_specifier_repeat1] = STATE(758), + [sym_identifier] = ACTIONS(858), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(868), + [anon_sym_extern] = ACTIONS(43), + [anon_sym___attribute__] = ACTIONS(33), + [anon_sym_LBRACK_LBRACK] = ACTIONS(862), + [anon_sym___declspec] = ACTIONS(37), + [anon_sym_static] = ACTIONS(43), + [anon_sym_auto] = ACTIONS(43), + [anon_sym_register] = ACTIONS(43), + [anon_sym_inline] = ACTIONS(43), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(47), + [anon_sym_unsigned] = ACTIONS(47), + [anon_sym_long] = ACTIONS(47), + [anon_sym_short] = ACTIONS(47), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [67] = { + [sym__expression] = STATE(506), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(527), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(527), + [sym_call_expression] = STATE(527), + [sym_field_expression] = STATE(527), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(527), + [sym_initializer_list] = STATE(516), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_identifier] = ACTIONS(870), + [anon_sym_COMMA] = ACTIONS(872), + [anon_sym_RPAREN] = ACTIONS(872), + [anon_sym_LPAREN2] = ACTIONS(874), + [anon_sym_BANG] = ACTIONS(876), + [anon_sym_TILDE] = ACTIONS(878), + [anon_sym_DASH] = ACTIONS(876), + [anon_sym_PLUS] = ACTIONS(876), + [anon_sym_STAR] = ACTIONS(880), + [anon_sym_SLASH] = ACTIONS(882), + [anon_sym_PERCENT] = ACTIONS(882), + [anon_sym_PIPE_PIPE] = ACTIONS(872), + [anon_sym_AMP_AMP] = ACTIONS(872), + [anon_sym_PIPE] = ACTIONS(882), + [anon_sym_CARET] = ACTIONS(882), + [anon_sym_AMP] = ACTIONS(880), + [anon_sym_EQ_EQ] = ACTIONS(872), + [anon_sym_BANG_EQ] = ACTIONS(872), + [anon_sym_GT] = ACTIONS(882), + [anon_sym_GT_EQ] = ACTIONS(872), + [anon_sym_LT_EQ] = ACTIONS(872), + [anon_sym_LT] = ACTIONS(882), + [anon_sym_LT_LT] = ACTIONS(882), + [anon_sym_GT_GT] = ACTIONS(882), + [anon_sym_SEMI] = ACTIONS(872), + [anon_sym_LBRACE] = ACTIONS(884), + [anon_sym_RBRACE] = ACTIONS(872), + [anon_sym_LBRACK] = ACTIONS(872), + [anon_sym_EQ] = ACTIONS(882), + [anon_sym_COLON] = ACTIONS(872), + [anon_sym_QMARK] = ACTIONS(872), + [anon_sym_STAR_EQ] = ACTIONS(872), + [anon_sym_SLASH_EQ] = ACTIONS(872), + [anon_sym_PERCENT_EQ] = ACTIONS(872), + [anon_sym_PLUS_EQ] = ACTIONS(872), + [anon_sym_DASH_EQ] = ACTIONS(872), + [anon_sym_LT_LT_EQ] = ACTIONS(872), + [anon_sym_GT_GT_EQ] = ACTIONS(872), + [anon_sym_AMP_EQ] = ACTIONS(872), + [anon_sym_CARET_EQ] = ACTIONS(872), + [anon_sym_PIPE_EQ] = ACTIONS(872), + [anon_sym_DASH_DASH] = ACTIONS(886), + [anon_sym_PLUS_PLUS] = ACTIONS(886), + [anon_sym_sizeof] = ACTIONS(888), + [anon_sym_DOT] = ACTIONS(882), + [anon_sym_DASH_GT] = ACTIONS(872), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [68] = { + [sym_identifier] = ACTIONS(890), + [aux_sym_preproc_include_token1] = ACTIONS(890), + [aux_sym_preproc_def_token1] = ACTIONS(890), + [aux_sym_preproc_if_token1] = ACTIONS(890), + [aux_sym_preproc_if_token2] = ACTIONS(890), + [aux_sym_preproc_ifdef_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token2] = ACTIONS(890), + [aux_sym_preproc_else_token1] = ACTIONS(890), + [aux_sym_preproc_elif_token1] = ACTIONS(890), + [sym_preproc_directive] = ACTIONS(890), + [anon_sym_LPAREN2] = ACTIONS(892), + [anon_sym_BANG] = ACTIONS(892), + [anon_sym_TILDE] = ACTIONS(892), + [anon_sym_DASH] = ACTIONS(890), + [anon_sym_PLUS] = ACTIONS(890), + [anon_sym_STAR] = ACTIONS(892), + [anon_sym_AMP] = ACTIONS(892), + [anon_sym_SEMI] = ACTIONS(892), + [anon_sym_typedef] = ACTIONS(890), + [anon_sym_extern] = ACTIONS(890), + [anon_sym___attribute__] = ACTIONS(890), + [anon_sym_LBRACK_LBRACK] = ACTIONS(892), + [anon_sym___declspec] = ACTIONS(890), + [anon_sym___cdecl] = ACTIONS(890), + [anon_sym___clrcall] = ACTIONS(890), + [anon_sym___stdcall] = ACTIONS(890), + [anon_sym___fastcall] = ACTIONS(890), + [anon_sym___thiscall] = ACTIONS(890), + [anon_sym___vectorcall] = ACTIONS(890), + [anon_sym_LBRACE] = ACTIONS(892), + [anon_sym_static] = ACTIONS(890), + [anon_sym_auto] = ACTIONS(890), + [anon_sym_register] = ACTIONS(890), + [anon_sym_inline] = ACTIONS(890), + [anon_sym_const] = ACTIONS(890), + [anon_sym_volatile] = ACTIONS(890), + [anon_sym_restrict] = ACTIONS(890), + [anon_sym__Atomic] = ACTIONS(890), + [anon_sym_signed] = ACTIONS(890), + [anon_sym_unsigned] = ACTIONS(890), + [anon_sym_long] = ACTIONS(890), + [anon_sym_short] = ACTIONS(890), + [sym_primitive_type] = ACTIONS(890), + [anon_sym_enum] = ACTIONS(890), + [anon_sym_struct] = ACTIONS(890), + [anon_sym_union] = ACTIONS(890), + [anon_sym_if] = ACTIONS(890), + [anon_sym_else] = ACTIONS(890), + [anon_sym_switch] = ACTIONS(890), + [anon_sym_case] = ACTIONS(890), + [anon_sym_default] = ACTIONS(890), + [anon_sym_while] = ACTIONS(890), + [anon_sym_do] = ACTIONS(890), + [anon_sym_for] = ACTIONS(890), + [anon_sym_return] = ACTIONS(890), + [anon_sym_break] = ACTIONS(890), + [anon_sym_continue] = ACTIONS(890), + [anon_sym_goto] = ACTIONS(890), + [anon_sym_DASH_DASH] = ACTIONS(892), + [anon_sym_PLUS_PLUS] = ACTIONS(892), + [anon_sym_sizeof] = ACTIONS(890), + [sym_number_literal] = ACTIONS(892), + [anon_sym_L_SQUOTE] = ACTIONS(892), + [anon_sym_u_SQUOTE] = ACTIONS(892), + [anon_sym_U_SQUOTE] = ACTIONS(892), + [anon_sym_u8_SQUOTE] = ACTIONS(892), + [anon_sym_SQUOTE] = ACTIONS(892), + [anon_sym_L_DQUOTE] = ACTIONS(892), + [anon_sym_u_DQUOTE] = ACTIONS(892), + [anon_sym_U_DQUOTE] = ACTIONS(892), + [anon_sym_u8_DQUOTE] = ACTIONS(892), + [anon_sym_DQUOTE] = ACTIONS(892), + [sym_true] = ACTIONS(890), + [sym_false] = ACTIONS(890), + [sym_null] = ACTIONS(890), + [sym_comment] = ACTIONS(3), + }, + [69] = { + [sym_identifier] = ACTIONS(894), + [aux_sym_preproc_include_token1] = ACTIONS(894), + [aux_sym_preproc_def_token1] = ACTIONS(894), + [aux_sym_preproc_if_token1] = ACTIONS(894), + [aux_sym_preproc_if_token2] = ACTIONS(894), + [aux_sym_preproc_ifdef_token1] = ACTIONS(894), + [aux_sym_preproc_ifdef_token2] = ACTIONS(894), + [aux_sym_preproc_else_token1] = ACTIONS(894), + [aux_sym_preproc_elif_token1] = ACTIONS(894), + [sym_preproc_directive] = ACTIONS(894), + [anon_sym_LPAREN2] = ACTIONS(896), + [anon_sym_BANG] = ACTIONS(896), + [anon_sym_TILDE] = ACTIONS(896), + [anon_sym_DASH] = ACTIONS(894), + [anon_sym_PLUS] = ACTIONS(894), + [anon_sym_STAR] = ACTIONS(896), + [anon_sym_AMP] = ACTIONS(896), + [anon_sym_SEMI] = ACTIONS(896), + [anon_sym_typedef] = ACTIONS(894), + [anon_sym_extern] = ACTIONS(894), + [anon_sym___attribute__] = ACTIONS(894), + [anon_sym_LBRACK_LBRACK] = ACTIONS(896), + [anon_sym___declspec] = ACTIONS(894), + [anon_sym___cdecl] = ACTIONS(894), + [anon_sym___clrcall] = ACTIONS(894), + [anon_sym___stdcall] = ACTIONS(894), + [anon_sym___fastcall] = ACTIONS(894), + [anon_sym___thiscall] = ACTIONS(894), + [anon_sym___vectorcall] = ACTIONS(894), + [anon_sym_LBRACE] = ACTIONS(896), + [anon_sym_static] = ACTIONS(894), + [anon_sym_auto] = ACTIONS(894), + [anon_sym_register] = ACTIONS(894), + [anon_sym_inline] = ACTIONS(894), + [anon_sym_const] = ACTIONS(894), + [anon_sym_volatile] = ACTIONS(894), + [anon_sym_restrict] = ACTIONS(894), + [anon_sym__Atomic] = ACTIONS(894), + [anon_sym_signed] = ACTIONS(894), + [anon_sym_unsigned] = ACTIONS(894), + [anon_sym_long] = ACTIONS(894), + [anon_sym_short] = ACTIONS(894), + [sym_primitive_type] = ACTIONS(894), + [anon_sym_enum] = ACTIONS(894), + [anon_sym_struct] = ACTIONS(894), + [anon_sym_union] = ACTIONS(894), + [anon_sym_if] = ACTIONS(894), + [anon_sym_else] = ACTIONS(894), + [anon_sym_switch] = ACTIONS(894), + [anon_sym_case] = ACTIONS(894), + [anon_sym_default] = ACTIONS(894), + [anon_sym_while] = ACTIONS(894), + [anon_sym_do] = ACTIONS(894), + [anon_sym_for] = ACTIONS(894), + [anon_sym_return] = ACTIONS(894), + [anon_sym_break] = ACTIONS(894), + [anon_sym_continue] = ACTIONS(894), + [anon_sym_goto] = ACTIONS(894), + [anon_sym_DASH_DASH] = ACTIONS(896), + [anon_sym_PLUS_PLUS] = ACTIONS(896), + [anon_sym_sizeof] = ACTIONS(894), + [sym_number_literal] = ACTIONS(896), + [anon_sym_L_SQUOTE] = ACTIONS(896), + [anon_sym_u_SQUOTE] = ACTIONS(896), + [anon_sym_U_SQUOTE] = ACTIONS(896), + [anon_sym_u8_SQUOTE] = ACTIONS(896), + [anon_sym_SQUOTE] = ACTIONS(896), + [anon_sym_L_DQUOTE] = ACTIONS(896), + [anon_sym_u_DQUOTE] = ACTIONS(896), + [anon_sym_U_DQUOTE] = ACTIONS(896), + [anon_sym_u8_DQUOTE] = ACTIONS(896), + [anon_sym_DQUOTE] = ACTIONS(896), + [sym_true] = ACTIONS(894), + [sym_false] = ACTIONS(894), + [sym_null] = ACTIONS(894), + [sym_comment] = ACTIONS(3), + }, + [70] = { + [sym_identifier] = ACTIONS(898), + [aux_sym_preproc_include_token1] = ACTIONS(898), + [aux_sym_preproc_def_token1] = ACTIONS(898), + [aux_sym_preproc_if_token1] = ACTIONS(898), + [aux_sym_preproc_if_token2] = ACTIONS(898), + [aux_sym_preproc_ifdef_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token2] = ACTIONS(898), + [aux_sym_preproc_else_token1] = ACTIONS(898), + [aux_sym_preproc_elif_token1] = ACTIONS(898), + [sym_preproc_directive] = ACTIONS(898), + [anon_sym_LPAREN2] = ACTIONS(900), + [anon_sym_BANG] = ACTIONS(900), + [anon_sym_TILDE] = ACTIONS(900), + [anon_sym_DASH] = ACTIONS(898), + [anon_sym_PLUS] = ACTIONS(898), + [anon_sym_STAR] = ACTIONS(900), + [anon_sym_AMP] = ACTIONS(900), + [anon_sym_SEMI] = ACTIONS(900), + [anon_sym_typedef] = ACTIONS(898), + [anon_sym_extern] = ACTIONS(898), + [anon_sym___attribute__] = ACTIONS(898), + [anon_sym_LBRACK_LBRACK] = ACTIONS(900), + [anon_sym___declspec] = ACTIONS(898), + [anon_sym___cdecl] = ACTIONS(898), + [anon_sym___clrcall] = ACTIONS(898), + [anon_sym___stdcall] = ACTIONS(898), + [anon_sym___fastcall] = ACTIONS(898), + [anon_sym___thiscall] = ACTIONS(898), + [anon_sym___vectorcall] = ACTIONS(898), + [anon_sym_LBRACE] = ACTIONS(900), + [anon_sym_static] = ACTIONS(898), + [anon_sym_auto] = ACTIONS(898), + [anon_sym_register] = ACTIONS(898), + [anon_sym_inline] = ACTIONS(898), + [anon_sym_const] = ACTIONS(898), + [anon_sym_volatile] = ACTIONS(898), + [anon_sym_restrict] = ACTIONS(898), + [anon_sym__Atomic] = ACTIONS(898), + [anon_sym_signed] = ACTIONS(898), + [anon_sym_unsigned] = ACTIONS(898), + [anon_sym_long] = ACTIONS(898), + [anon_sym_short] = ACTIONS(898), + [sym_primitive_type] = ACTIONS(898), + [anon_sym_enum] = ACTIONS(898), + [anon_sym_struct] = ACTIONS(898), + [anon_sym_union] = ACTIONS(898), + [anon_sym_if] = ACTIONS(898), + [anon_sym_else] = ACTIONS(898), + [anon_sym_switch] = ACTIONS(898), + [anon_sym_case] = ACTIONS(898), + [anon_sym_default] = ACTIONS(898), + [anon_sym_while] = ACTIONS(898), + [anon_sym_do] = ACTIONS(898), + [anon_sym_for] = ACTIONS(898), + [anon_sym_return] = ACTIONS(898), + [anon_sym_break] = ACTIONS(898), + [anon_sym_continue] = ACTIONS(898), + [anon_sym_goto] = ACTIONS(898), + [anon_sym_DASH_DASH] = ACTIONS(900), + [anon_sym_PLUS_PLUS] = ACTIONS(900), + [anon_sym_sizeof] = ACTIONS(898), + [sym_number_literal] = ACTIONS(900), + [anon_sym_L_SQUOTE] = ACTIONS(900), + [anon_sym_u_SQUOTE] = ACTIONS(900), + [anon_sym_U_SQUOTE] = ACTIONS(900), + [anon_sym_u8_SQUOTE] = ACTIONS(900), + [anon_sym_SQUOTE] = ACTIONS(900), + [anon_sym_L_DQUOTE] = ACTIONS(900), + [anon_sym_u_DQUOTE] = ACTIONS(900), + [anon_sym_U_DQUOTE] = ACTIONS(900), + [anon_sym_u8_DQUOTE] = ACTIONS(900), + [anon_sym_DQUOTE] = ACTIONS(900), + [sym_true] = ACTIONS(898), + [sym_false] = ACTIONS(898), + [sym_null] = ACTIONS(898), + [sym_comment] = ACTIONS(3), + }, + [71] = { + [sym_identifier] = ACTIONS(902), + [aux_sym_preproc_include_token1] = ACTIONS(902), + [aux_sym_preproc_def_token1] = ACTIONS(902), + [aux_sym_preproc_if_token1] = ACTIONS(902), + [aux_sym_preproc_if_token2] = ACTIONS(902), + [aux_sym_preproc_ifdef_token1] = ACTIONS(902), + [aux_sym_preproc_ifdef_token2] = ACTIONS(902), + [aux_sym_preproc_else_token1] = ACTIONS(902), + [aux_sym_preproc_elif_token1] = ACTIONS(902), + [sym_preproc_directive] = ACTIONS(902), + [anon_sym_LPAREN2] = ACTIONS(904), + [anon_sym_BANG] = ACTIONS(904), + [anon_sym_TILDE] = ACTIONS(904), + [anon_sym_DASH] = ACTIONS(902), + [anon_sym_PLUS] = ACTIONS(902), + [anon_sym_STAR] = ACTIONS(904), + [anon_sym_AMP] = ACTIONS(904), + [anon_sym_SEMI] = ACTIONS(904), + [anon_sym_typedef] = ACTIONS(902), + [anon_sym_extern] = ACTIONS(902), + [anon_sym___attribute__] = ACTIONS(902), + [anon_sym_LBRACK_LBRACK] = ACTIONS(904), + [anon_sym___declspec] = ACTIONS(902), + [anon_sym___cdecl] = ACTIONS(902), + [anon_sym___clrcall] = ACTIONS(902), + [anon_sym___stdcall] = ACTIONS(902), + [anon_sym___fastcall] = ACTIONS(902), + [anon_sym___thiscall] = ACTIONS(902), + [anon_sym___vectorcall] = ACTIONS(902), + [anon_sym_LBRACE] = ACTIONS(904), + [anon_sym_static] = ACTIONS(902), + [anon_sym_auto] = ACTIONS(902), + [anon_sym_register] = ACTIONS(902), + [anon_sym_inline] = ACTIONS(902), + [anon_sym_const] = ACTIONS(902), + [anon_sym_volatile] = ACTIONS(902), + [anon_sym_restrict] = ACTIONS(902), + [anon_sym__Atomic] = ACTIONS(902), + [anon_sym_signed] = ACTIONS(902), + [anon_sym_unsigned] = ACTIONS(902), + [anon_sym_long] = ACTIONS(902), + [anon_sym_short] = ACTIONS(902), + [sym_primitive_type] = ACTIONS(902), + [anon_sym_enum] = ACTIONS(902), + [anon_sym_struct] = ACTIONS(902), + [anon_sym_union] = ACTIONS(902), + [anon_sym_if] = ACTIONS(902), + [anon_sym_else] = ACTIONS(902), + [anon_sym_switch] = ACTIONS(902), + [anon_sym_case] = ACTIONS(902), + [anon_sym_default] = ACTIONS(902), + [anon_sym_while] = ACTIONS(902), + [anon_sym_do] = ACTIONS(902), + [anon_sym_for] = ACTIONS(902), + [anon_sym_return] = ACTIONS(902), + [anon_sym_break] = ACTIONS(902), + [anon_sym_continue] = ACTIONS(902), + [anon_sym_goto] = ACTIONS(902), + [anon_sym_DASH_DASH] = ACTIONS(904), + [anon_sym_PLUS_PLUS] = ACTIONS(904), + [anon_sym_sizeof] = ACTIONS(902), + [sym_number_literal] = ACTIONS(904), + [anon_sym_L_SQUOTE] = ACTIONS(904), + [anon_sym_u_SQUOTE] = ACTIONS(904), + [anon_sym_U_SQUOTE] = ACTIONS(904), + [anon_sym_u8_SQUOTE] = ACTIONS(904), + [anon_sym_SQUOTE] = ACTIONS(904), + [anon_sym_L_DQUOTE] = ACTIONS(904), + [anon_sym_u_DQUOTE] = ACTIONS(904), + [anon_sym_U_DQUOTE] = ACTIONS(904), + [anon_sym_u8_DQUOTE] = ACTIONS(904), + [anon_sym_DQUOTE] = ACTIONS(904), + [sym_true] = ACTIONS(902), + [sym_false] = ACTIONS(902), + [sym_null] = ACTIONS(902), + [sym_comment] = ACTIONS(3), + }, + [72] = { + [sym_identifier] = ACTIONS(906), + [aux_sym_preproc_include_token1] = ACTIONS(906), + [aux_sym_preproc_def_token1] = ACTIONS(906), + [aux_sym_preproc_if_token1] = ACTIONS(906), + [aux_sym_preproc_if_token2] = ACTIONS(906), + [aux_sym_preproc_ifdef_token1] = ACTIONS(906), + [aux_sym_preproc_ifdef_token2] = ACTIONS(906), + [aux_sym_preproc_else_token1] = ACTIONS(906), + [aux_sym_preproc_elif_token1] = ACTIONS(906), + [sym_preproc_directive] = ACTIONS(906), + [anon_sym_LPAREN2] = ACTIONS(908), + [anon_sym_BANG] = ACTIONS(908), + [anon_sym_TILDE] = ACTIONS(908), + [anon_sym_DASH] = ACTIONS(906), + [anon_sym_PLUS] = ACTIONS(906), + [anon_sym_STAR] = ACTIONS(908), + [anon_sym_AMP] = ACTIONS(908), + [anon_sym_SEMI] = ACTIONS(908), + [anon_sym_typedef] = ACTIONS(906), + [anon_sym_extern] = ACTIONS(906), + [anon_sym___attribute__] = ACTIONS(906), + [anon_sym_LBRACK_LBRACK] = ACTIONS(908), + [anon_sym___declspec] = ACTIONS(906), + [anon_sym___cdecl] = ACTIONS(906), + [anon_sym___clrcall] = ACTIONS(906), + [anon_sym___stdcall] = ACTIONS(906), + [anon_sym___fastcall] = ACTIONS(906), + [anon_sym___thiscall] = ACTIONS(906), + [anon_sym___vectorcall] = ACTIONS(906), + [anon_sym_LBRACE] = ACTIONS(908), + [anon_sym_static] = ACTIONS(906), + [anon_sym_auto] = ACTIONS(906), + [anon_sym_register] = ACTIONS(906), + [anon_sym_inline] = ACTIONS(906), + [anon_sym_const] = ACTIONS(906), + [anon_sym_volatile] = ACTIONS(906), + [anon_sym_restrict] = ACTIONS(906), + [anon_sym__Atomic] = ACTIONS(906), + [anon_sym_signed] = ACTIONS(906), + [anon_sym_unsigned] = ACTIONS(906), + [anon_sym_long] = ACTIONS(906), + [anon_sym_short] = ACTIONS(906), + [sym_primitive_type] = ACTIONS(906), + [anon_sym_enum] = ACTIONS(906), + [anon_sym_struct] = ACTIONS(906), + [anon_sym_union] = ACTIONS(906), + [anon_sym_if] = ACTIONS(906), + [anon_sym_else] = ACTIONS(906), + [anon_sym_switch] = ACTIONS(906), + [anon_sym_case] = ACTIONS(906), + [anon_sym_default] = ACTIONS(906), + [anon_sym_while] = ACTIONS(906), + [anon_sym_do] = ACTIONS(906), + [anon_sym_for] = ACTIONS(906), + [anon_sym_return] = ACTIONS(906), + [anon_sym_break] = ACTIONS(906), + [anon_sym_continue] = ACTIONS(906), + [anon_sym_goto] = ACTIONS(906), + [anon_sym_DASH_DASH] = ACTIONS(908), + [anon_sym_PLUS_PLUS] = ACTIONS(908), + [anon_sym_sizeof] = ACTIONS(906), + [sym_number_literal] = ACTIONS(908), + [anon_sym_L_SQUOTE] = ACTIONS(908), + [anon_sym_u_SQUOTE] = ACTIONS(908), + [anon_sym_U_SQUOTE] = ACTIONS(908), + [anon_sym_u8_SQUOTE] = ACTIONS(908), + [anon_sym_SQUOTE] = ACTIONS(908), + [anon_sym_L_DQUOTE] = ACTIONS(908), + [anon_sym_u_DQUOTE] = ACTIONS(908), + [anon_sym_U_DQUOTE] = ACTIONS(908), + [anon_sym_u8_DQUOTE] = ACTIONS(908), + [anon_sym_DQUOTE] = ACTIONS(908), + [sym_true] = ACTIONS(906), + [sym_false] = ACTIONS(906), + [sym_null] = ACTIONS(906), + [sym_comment] = ACTIONS(3), + }, + [73] = { + [sym_identifier] = ACTIONS(910), + [aux_sym_preproc_include_token1] = ACTIONS(910), + [aux_sym_preproc_def_token1] = ACTIONS(910), + [aux_sym_preproc_if_token1] = ACTIONS(910), + [aux_sym_preproc_if_token2] = ACTIONS(910), + [aux_sym_preproc_ifdef_token1] = ACTIONS(910), + [aux_sym_preproc_ifdef_token2] = ACTIONS(910), + [aux_sym_preproc_else_token1] = ACTIONS(910), + [aux_sym_preproc_elif_token1] = ACTIONS(910), + [sym_preproc_directive] = ACTIONS(910), + [anon_sym_LPAREN2] = ACTIONS(912), + [anon_sym_BANG] = ACTIONS(912), + [anon_sym_TILDE] = ACTIONS(912), + [anon_sym_DASH] = ACTIONS(910), + [anon_sym_PLUS] = ACTIONS(910), + [anon_sym_STAR] = ACTIONS(912), + [anon_sym_AMP] = ACTIONS(912), + [anon_sym_SEMI] = ACTIONS(912), + [anon_sym_typedef] = ACTIONS(910), + [anon_sym_extern] = ACTIONS(910), + [anon_sym___attribute__] = ACTIONS(910), + [anon_sym_LBRACK_LBRACK] = ACTIONS(912), + [anon_sym___declspec] = ACTIONS(910), + [anon_sym___cdecl] = ACTIONS(910), + [anon_sym___clrcall] = ACTIONS(910), + [anon_sym___stdcall] = ACTIONS(910), + [anon_sym___fastcall] = ACTIONS(910), + [anon_sym___thiscall] = ACTIONS(910), + [anon_sym___vectorcall] = ACTIONS(910), + [anon_sym_LBRACE] = ACTIONS(912), + [anon_sym_static] = ACTIONS(910), + [anon_sym_auto] = ACTIONS(910), + [anon_sym_register] = ACTIONS(910), + [anon_sym_inline] = ACTIONS(910), + [anon_sym_const] = ACTIONS(910), + [anon_sym_volatile] = ACTIONS(910), + [anon_sym_restrict] = ACTIONS(910), + [anon_sym__Atomic] = ACTIONS(910), + [anon_sym_signed] = ACTIONS(910), + [anon_sym_unsigned] = ACTIONS(910), + [anon_sym_long] = ACTIONS(910), + [anon_sym_short] = ACTIONS(910), + [sym_primitive_type] = ACTIONS(910), + [anon_sym_enum] = ACTIONS(910), + [anon_sym_struct] = ACTIONS(910), + [anon_sym_union] = ACTIONS(910), + [anon_sym_if] = ACTIONS(910), + [anon_sym_else] = ACTIONS(910), + [anon_sym_switch] = ACTIONS(910), + [anon_sym_case] = ACTIONS(910), + [anon_sym_default] = ACTIONS(910), + [anon_sym_while] = ACTIONS(910), + [anon_sym_do] = ACTIONS(910), + [anon_sym_for] = ACTIONS(910), + [anon_sym_return] = ACTIONS(910), + [anon_sym_break] = ACTIONS(910), + [anon_sym_continue] = ACTIONS(910), + [anon_sym_goto] = ACTIONS(910), + [anon_sym_DASH_DASH] = ACTIONS(912), + [anon_sym_PLUS_PLUS] = ACTIONS(912), + [anon_sym_sizeof] = ACTIONS(910), + [sym_number_literal] = ACTIONS(912), + [anon_sym_L_SQUOTE] = ACTIONS(912), + [anon_sym_u_SQUOTE] = ACTIONS(912), + [anon_sym_U_SQUOTE] = ACTIONS(912), + [anon_sym_u8_SQUOTE] = ACTIONS(912), + [anon_sym_SQUOTE] = ACTIONS(912), + [anon_sym_L_DQUOTE] = ACTIONS(912), + [anon_sym_u_DQUOTE] = ACTIONS(912), + [anon_sym_U_DQUOTE] = ACTIONS(912), + [anon_sym_u8_DQUOTE] = ACTIONS(912), + [anon_sym_DQUOTE] = ACTIONS(912), + [sym_true] = ACTIONS(910), + [sym_false] = ACTIONS(910), + [sym_null] = ACTIONS(910), + [sym_comment] = ACTIONS(3), + }, + [74] = { + [sym_identifier] = ACTIONS(890), + [aux_sym_preproc_include_token1] = ACTIONS(890), + [aux_sym_preproc_def_token1] = ACTIONS(890), + [aux_sym_preproc_if_token1] = ACTIONS(890), + [aux_sym_preproc_if_token2] = ACTIONS(890), + [aux_sym_preproc_ifdef_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token2] = ACTIONS(890), + [aux_sym_preproc_else_token1] = ACTIONS(890), + [aux_sym_preproc_elif_token1] = ACTIONS(890), + [sym_preproc_directive] = ACTIONS(890), + [anon_sym_LPAREN2] = ACTIONS(892), + [anon_sym_BANG] = ACTIONS(892), + [anon_sym_TILDE] = ACTIONS(892), + [anon_sym_DASH] = ACTIONS(890), + [anon_sym_PLUS] = ACTIONS(890), + [anon_sym_STAR] = ACTIONS(892), + [anon_sym_AMP] = ACTIONS(892), + [anon_sym_SEMI] = ACTIONS(892), + [anon_sym_typedef] = ACTIONS(890), + [anon_sym_extern] = ACTIONS(890), + [anon_sym___attribute__] = ACTIONS(890), + [anon_sym_LBRACK_LBRACK] = ACTIONS(892), + [anon_sym___declspec] = ACTIONS(890), + [anon_sym___cdecl] = ACTIONS(890), + [anon_sym___clrcall] = ACTIONS(890), + [anon_sym___stdcall] = ACTIONS(890), + [anon_sym___fastcall] = ACTIONS(890), + [anon_sym___thiscall] = ACTIONS(890), + [anon_sym___vectorcall] = ACTIONS(890), + [anon_sym_LBRACE] = ACTIONS(892), + [anon_sym_static] = ACTIONS(890), + [anon_sym_auto] = ACTIONS(890), + [anon_sym_register] = ACTIONS(890), + [anon_sym_inline] = ACTIONS(890), + [anon_sym_const] = ACTIONS(890), + [anon_sym_volatile] = ACTIONS(890), + [anon_sym_restrict] = ACTIONS(890), + [anon_sym__Atomic] = ACTIONS(890), + [anon_sym_signed] = ACTIONS(890), + [anon_sym_unsigned] = ACTIONS(890), + [anon_sym_long] = ACTIONS(890), + [anon_sym_short] = ACTIONS(890), + [sym_primitive_type] = ACTIONS(890), + [anon_sym_enum] = ACTIONS(890), + [anon_sym_struct] = ACTIONS(890), + [anon_sym_union] = ACTIONS(890), + [anon_sym_if] = ACTIONS(890), + [anon_sym_else] = ACTIONS(890), + [anon_sym_switch] = ACTIONS(890), + [anon_sym_case] = ACTIONS(890), + [anon_sym_default] = ACTIONS(890), + [anon_sym_while] = ACTIONS(890), + [anon_sym_do] = ACTIONS(890), + [anon_sym_for] = ACTIONS(890), + [anon_sym_return] = ACTIONS(890), + [anon_sym_break] = ACTIONS(890), + [anon_sym_continue] = ACTIONS(890), + [anon_sym_goto] = ACTIONS(890), + [anon_sym_DASH_DASH] = ACTIONS(892), + [anon_sym_PLUS_PLUS] = ACTIONS(892), + [anon_sym_sizeof] = ACTIONS(890), + [sym_number_literal] = ACTIONS(892), + [anon_sym_L_SQUOTE] = ACTIONS(892), + [anon_sym_u_SQUOTE] = ACTIONS(892), + [anon_sym_U_SQUOTE] = ACTIONS(892), + [anon_sym_u8_SQUOTE] = ACTIONS(892), + [anon_sym_SQUOTE] = ACTIONS(892), + [anon_sym_L_DQUOTE] = ACTIONS(892), + [anon_sym_u_DQUOTE] = ACTIONS(892), + [anon_sym_U_DQUOTE] = ACTIONS(892), + [anon_sym_u8_DQUOTE] = ACTIONS(892), + [anon_sym_DQUOTE] = ACTIONS(892), + [sym_true] = ACTIONS(890), + [sym_false] = ACTIONS(890), + [sym_null] = ACTIONS(890), + [sym_comment] = ACTIONS(3), + }, + [75] = { + [sym_identifier] = ACTIONS(914), + [aux_sym_preproc_include_token1] = ACTIONS(914), + [aux_sym_preproc_def_token1] = ACTIONS(914), + [aux_sym_preproc_if_token1] = ACTIONS(914), + [aux_sym_preproc_if_token2] = ACTIONS(914), + [aux_sym_preproc_ifdef_token1] = ACTIONS(914), + [aux_sym_preproc_ifdef_token2] = ACTIONS(914), + [aux_sym_preproc_else_token1] = ACTIONS(914), + [aux_sym_preproc_elif_token1] = ACTIONS(914), + [sym_preproc_directive] = ACTIONS(914), + [anon_sym_LPAREN2] = ACTIONS(916), + [anon_sym_BANG] = ACTIONS(916), + [anon_sym_TILDE] = ACTIONS(916), + [anon_sym_DASH] = ACTIONS(914), + [anon_sym_PLUS] = ACTIONS(914), + [anon_sym_STAR] = ACTIONS(916), + [anon_sym_AMP] = ACTIONS(916), + [anon_sym_SEMI] = ACTIONS(916), + [anon_sym_typedef] = ACTIONS(914), + [anon_sym_extern] = ACTIONS(914), + [anon_sym___attribute__] = ACTIONS(914), + [anon_sym_LBRACK_LBRACK] = ACTIONS(916), + [anon_sym___declspec] = ACTIONS(914), + [anon_sym___cdecl] = ACTIONS(914), + [anon_sym___clrcall] = ACTIONS(914), + [anon_sym___stdcall] = ACTIONS(914), + [anon_sym___fastcall] = ACTIONS(914), + [anon_sym___thiscall] = ACTIONS(914), + [anon_sym___vectorcall] = ACTIONS(914), + [anon_sym_LBRACE] = ACTIONS(916), + [anon_sym_static] = ACTIONS(914), + [anon_sym_auto] = ACTIONS(914), + [anon_sym_register] = ACTIONS(914), + [anon_sym_inline] = ACTIONS(914), + [anon_sym_const] = ACTIONS(914), + [anon_sym_volatile] = ACTIONS(914), + [anon_sym_restrict] = ACTIONS(914), + [anon_sym__Atomic] = ACTIONS(914), + [anon_sym_signed] = ACTIONS(914), + [anon_sym_unsigned] = ACTIONS(914), + [anon_sym_long] = ACTIONS(914), + [anon_sym_short] = ACTIONS(914), + [sym_primitive_type] = ACTIONS(914), + [anon_sym_enum] = ACTIONS(914), + [anon_sym_struct] = ACTIONS(914), + [anon_sym_union] = ACTIONS(914), + [anon_sym_if] = ACTIONS(914), + [anon_sym_else] = ACTIONS(918), + [anon_sym_switch] = ACTIONS(914), + [anon_sym_case] = ACTIONS(914), + [anon_sym_default] = ACTIONS(914), + [anon_sym_while] = ACTIONS(914), + [anon_sym_do] = ACTIONS(914), + [anon_sym_for] = ACTIONS(914), + [anon_sym_return] = ACTIONS(914), + [anon_sym_break] = ACTIONS(914), + [anon_sym_continue] = ACTIONS(914), + [anon_sym_goto] = ACTIONS(914), + [anon_sym_DASH_DASH] = ACTIONS(916), + [anon_sym_PLUS_PLUS] = ACTIONS(916), + [anon_sym_sizeof] = ACTIONS(914), + [sym_number_literal] = ACTIONS(916), + [anon_sym_L_SQUOTE] = ACTIONS(916), + [anon_sym_u_SQUOTE] = ACTIONS(916), + [anon_sym_U_SQUOTE] = ACTIONS(916), + [anon_sym_u8_SQUOTE] = ACTIONS(916), + [anon_sym_SQUOTE] = ACTIONS(916), + [anon_sym_L_DQUOTE] = ACTIONS(916), + [anon_sym_u_DQUOTE] = ACTIONS(916), + [anon_sym_U_DQUOTE] = ACTIONS(916), + [anon_sym_u8_DQUOTE] = ACTIONS(916), + [anon_sym_DQUOTE] = ACTIONS(916), + [sym_true] = ACTIONS(914), + [sym_false] = ACTIONS(914), + [sym_null] = ACTIONS(914), + [sym_comment] = ACTIONS(3), + }, + [76] = { + [sym_identifier] = ACTIONS(920), + [aux_sym_preproc_include_token1] = ACTIONS(920), + [aux_sym_preproc_def_token1] = ACTIONS(920), + [aux_sym_preproc_if_token1] = ACTIONS(920), + [aux_sym_preproc_if_token2] = ACTIONS(920), + [aux_sym_preproc_ifdef_token1] = ACTIONS(920), + [aux_sym_preproc_ifdef_token2] = ACTIONS(920), + [aux_sym_preproc_else_token1] = ACTIONS(920), + [aux_sym_preproc_elif_token1] = ACTIONS(920), + [sym_preproc_directive] = ACTIONS(920), + [anon_sym_LPAREN2] = ACTIONS(922), + [anon_sym_BANG] = ACTIONS(922), + [anon_sym_TILDE] = ACTIONS(922), + [anon_sym_DASH] = ACTIONS(920), + [anon_sym_PLUS] = ACTIONS(920), + [anon_sym_STAR] = ACTIONS(922), + [anon_sym_AMP] = ACTIONS(922), + [anon_sym_SEMI] = ACTIONS(922), + [anon_sym_typedef] = ACTIONS(920), + [anon_sym_extern] = ACTIONS(920), + [anon_sym___attribute__] = ACTIONS(920), + [anon_sym_LBRACK_LBRACK] = ACTIONS(922), + [anon_sym___declspec] = ACTIONS(920), + [anon_sym___cdecl] = ACTIONS(920), + [anon_sym___clrcall] = ACTIONS(920), + [anon_sym___stdcall] = ACTIONS(920), + [anon_sym___fastcall] = ACTIONS(920), + [anon_sym___thiscall] = ACTIONS(920), + [anon_sym___vectorcall] = ACTIONS(920), + [anon_sym_LBRACE] = ACTIONS(922), + [anon_sym_static] = ACTIONS(920), + [anon_sym_auto] = ACTIONS(920), + [anon_sym_register] = ACTIONS(920), + [anon_sym_inline] = ACTIONS(920), + [anon_sym_const] = ACTIONS(920), + [anon_sym_volatile] = ACTIONS(920), + [anon_sym_restrict] = ACTIONS(920), + [anon_sym__Atomic] = ACTIONS(920), + [anon_sym_signed] = ACTIONS(920), + [anon_sym_unsigned] = ACTIONS(920), + [anon_sym_long] = ACTIONS(920), + [anon_sym_short] = ACTIONS(920), + [sym_primitive_type] = ACTIONS(920), + [anon_sym_enum] = ACTIONS(920), + [anon_sym_struct] = ACTIONS(920), + [anon_sym_union] = ACTIONS(920), + [anon_sym_if] = ACTIONS(920), + [anon_sym_else] = ACTIONS(920), + [anon_sym_switch] = ACTIONS(920), + [anon_sym_case] = ACTIONS(920), + [anon_sym_default] = ACTIONS(920), + [anon_sym_while] = ACTIONS(920), + [anon_sym_do] = ACTIONS(920), + [anon_sym_for] = ACTIONS(920), + [anon_sym_return] = ACTIONS(920), + [anon_sym_break] = ACTIONS(920), + [anon_sym_continue] = ACTIONS(920), + [anon_sym_goto] = ACTIONS(920), + [anon_sym_DASH_DASH] = ACTIONS(922), + [anon_sym_PLUS_PLUS] = ACTIONS(922), + [anon_sym_sizeof] = ACTIONS(920), + [sym_number_literal] = ACTIONS(922), + [anon_sym_L_SQUOTE] = ACTIONS(922), + [anon_sym_u_SQUOTE] = ACTIONS(922), + [anon_sym_U_SQUOTE] = ACTIONS(922), + [anon_sym_u8_SQUOTE] = ACTIONS(922), + [anon_sym_SQUOTE] = ACTIONS(922), + [anon_sym_L_DQUOTE] = ACTIONS(922), + [anon_sym_u_DQUOTE] = ACTIONS(922), + [anon_sym_U_DQUOTE] = ACTIONS(922), + [anon_sym_u8_DQUOTE] = ACTIONS(922), + [anon_sym_DQUOTE] = ACTIONS(922), + [sym_true] = ACTIONS(920), + [sym_false] = ACTIONS(920), + [sym_null] = ACTIONS(920), + [sym_comment] = ACTIONS(3), + }, + [77] = { + [sym_identifier] = ACTIONS(924), + [aux_sym_preproc_include_token1] = ACTIONS(924), + [aux_sym_preproc_def_token1] = ACTIONS(924), + [aux_sym_preproc_if_token1] = ACTIONS(924), + [aux_sym_preproc_if_token2] = ACTIONS(924), + [aux_sym_preproc_ifdef_token1] = ACTIONS(924), + [aux_sym_preproc_ifdef_token2] = ACTIONS(924), + [aux_sym_preproc_else_token1] = ACTIONS(924), + [aux_sym_preproc_elif_token1] = ACTIONS(924), + [sym_preproc_directive] = ACTIONS(924), + [anon_sym_LPAREN2] = ACTIONS(926), + [anon_sym_BANG] = ACTIONS(926), + [anon_sym_TILDE] = ACTIONS(926), + [anon_sym_DASH] = ACTIONS(924), + [anon_sym_PLUS] = ACTIONS(924), + [anon_sym_STAR] = ACTIONS(926), + [anon_sym_AMP] = ACTIONS(926), + [anon_sym_SEMI] = ACTIONS(926), + [anon_sym_typedef] = ACTIONS(924), + [anon_sym_extern] = ACTIONS(924), + [anon_sym___attribute__] = ACTIONS(924), + [anon_sym_LBRACK_LBRACK] = ACTIONS(926), + [anon_sym___declspec] = ACTIONS(924), + [anon_sym___cdecl] = ACTIONS(924), + [anon_sym___clrcall] = ACTIONS(924), + [anon_sym___stdcall] = ACTIONS(924), + [anon_sym___fastcall] = ACTIONS(924), + [anon_sym___thiscall] = ACTIONS(924), + [anon_sym___vectorcall] = ACTIONS(924), + [anon_sym_LBRACE] = ACTIONS(926), + [anon_sym_static] = ACTIONS(924), + [anon_sym_auto] = ACTIONS(924), + [anon_sym_register] = ACTIONS(924), + [anon_sym_inline] = ACTIONS(924), + [anon_sym_const] = ACTIONS(924), + [anon_sym_volatile] = ACTIONS(924), + [anon_sym_restrict] = ACTIONS(924), + [anon_sym__Atomic] = ACTIONS(924), + [anon_sym_signed] = ACTIONS(924), + [anon_sym_unsigned] = ACTIONS(924), + [anon_sym_long] = ACTIONS(924), + [anon_sym_short] = ACTIONS(924), + [sym_primitive_type] = ACTIONS(924), + [anon_sym_enum] = ACTIONS(924), + [anon_sym_struct] = ACTIONS(924), + [anon_sym_union] = ACTIONS(924), + [anon_sym_if] = ACTIONS(924), + [anon_sym_else] = ACTIONS(924), + [anon_sym_switch] = ACTIONS(924), + [anon_sym_case] = ACTIONS(924), + [anon_sym_default] = ACTIONS(924), + [anon_sym_while] = ACTIONS(924), + [anon_sym_do] = ACTIONS(924), + [anon_sym_for] = ACTIONS(924), + [anon_sym_return] = ACTIONS(924), + [anon_sym_break] = ACTIONS(924), + [anon_sym_continue] = ACTIONS(924), + [anon_sym_goto] = ACTIONS(924), + [anon_sym_DASH_DASH] = ACTIONS(926), + [anon_sym_PLUS_PLUS] = ACTIONS(926), + [anon_sym_sizeof] = ACTIONS(924), + [sym_number_literal] = ACTIONS(926), + [anon_sym_L_SQUOTE] = ACTIONS(926), + [anon_sym_u_SQUOTE] = ACTIONS(926), + [anon_sym_U_SQUOTE] = ACTIONS(926), + [anon_sym_u8_SQUOTE] = ACTIONS(926), + [anon_sym_SQUOTE] = ACTIONS(926), + [anon_sym_L_DQUOTE] = ACTIONS(926), + [anon_sym_u_DQUOTE] = ACTIONS(926), + [anon_sym_U_DQUOTE] = ACTIONS(926), + [anon_sym_u8_DQUOTE] = ACTIONS(926), + [anon_sym_DQUOTE] = ACTIONS(926), + [sym_true] = ACTIONS(924), + [sym_false] = ACTIONS(924), + [sym_null] = ACTIONS(924), + [sym_comment] = ACTIONS(3), + }, + [78] = { + [sym_identifier] = ACTIONS(928), + [aux_sym_preproc_include_token1] = ACTIONS(928), + [aux_sym_preproc_def_token1] = ACTIONS(928), + [aux_sym_preproc_if_token1] = ACTIONS(928), + [aux_sym_preproc_if_token2] = ACTIONS(928), + [aux_sym_preproc_ifdef_token1] = ACTIONS(928), + [aux_sym_preproc_ifdef_token2] = ACTIONS(928), + [aux_sym_preproc_else_token1] = ACTIONS(928), + [aux_sym_preproc_elif_token1] = ACTIONS(928), + [sym_preproc_directive] = ACTIONS(928), + [anon_sym_LPAREN2] = ACTIONS(930), + [anon_sym_BANG] = ACTIONS(930), + [anon_sym_TILDE] = ACTIONS(930), + [anon_sym_DASH] = ACTIONS(928), + [anon_sym_PLUS] = ACTIONS(928), + [anon_sym_STAR] = ACTIONS(930), + [anon_sym_AMP] = ACTIONS(930), + [anon_sym_SEMI] = ACTIONS(930), + [anon_sym_typedef] = ACTIONS(928), + [anon_sym_extern] = ACTIONS(928), + [anon_sym___attribute__] = ACTIONS(928), + [anon_sym_LBRACK_LBRACK] = ACTIONS(930), + [anon_sym___declspec] = ACTIONS(928), + [anon_sym___cdecl] = ACTIONS(928), + [anon_sym___clrcall] = ACTIONS(928), + [anon_sym___stdcall] = ACTIONS(928), + [anon_sym___fastcall] = ACTIONS(928), + [anon_sym___thiscall] = ACTIONS(928), + [anon_sym___vectorcall] = ACTIONS(928), + [anon_sym_LBRACE] = ACTIONS(930), + [anon_sym_static] = ACTIONS(928), + [anon_sym_auto] = ACTIONS(928), + [anon_sym_register] = ACTIONS(928), + [anon_sym_inline] = ACTIONS(928), + [anon_sym_const] = ACTIONS(928), + [anon_sym_volatile] = ACTIONS(928), + [anon_sym_restrict] = ACTIONS(928), + [anon_sym__Atomic] = ACTIONS(928), + [anon_sym_signed] = ACTIONS(928), + [anon_sym_unsigned] = ACTIONS(928), + [anon_sym_long] = ACTIONS(928), + [anon_sym_short] = ACTIONS(928), + [sym_primitive_type] = ACTIONS(928), + [anon_sym_enum] = ACTIONS(928), + [anon_sym_struct] = ACTIONS(928), + [anon_sym_union] = ACTIONS(928), + [anon_sym_if] = ACTIONS(928), + [anon_sym_else] = ACTIONS(928), + [anon_sym_switch] = ACTIONS(928), + [anon_sym_case] = ACTIONS(928), + [anon_sym_default] = ACTIONS(928), + [anon_sym_while] = ACTIONS(928), + [anon_sym_do] = ACTIONS(928), + [anon_sym_for] = ACTIONS(928), + [anon_sym_return] = ACTIONS(928), + [anon_sym_break] = ACTIONS(928), + [anon_sym_continue] = ACTIONS(928), + [anon_sym_goto] = ACTIONS(928), + [anon_sym_DASH_DASH] = ACTIONS(930), + [anon_sym_PLUS_PLUS] = ACTIONS(930), + [anon_sym_sizeof] = ACTIONS(928), + [sym_number_literal] = ACTIONS(930), + [anon_sym_L_SQUOTE] = ACTIONS(930), + [anon_sym_u_SQUOTE] = ACTIONS(930), + [anon_sym_U_SQUOTE] = ACTIONS(930), + [anon_sym_u8_SQUOTE] = ACTIONS(930), + [anon_sym_SQUOTE] = ACTIONS(930), + [anon_sym_L_DQUOTE] = ACTIONS(930), + [anon_sym_u_DQUOTE] = ACTIONS(930), + [anon_sym_U_DQUOTE] = ACTIONS(930), + [anon_sym_u8_DQUOTE] = ACTIONS(930), + [anon_sym_DQUOTE] = ACTIONS(930), + [sym_true] = ACTIONS(928), + [sym_false] = ACTIONS(928), + [sym_null] = ACTIONS(928), + [sym_comment] = ACTIONS(3), + }, + [79] = { + [sym_identifier] = ACTIONS(932), + [aux_sym_preproc_include_token1] = ACTIONS(932), + [aux_sym_preproc_def_token1] = ACTIONS(932), + [aux_sym_preproc_if_token1] = ACTIONS(932), + [aux_sym_preproc_if_token2] = ACTIONS(932), + [aux_sym_preproc_ifdef_token1] = ACTIONS(932), + [aux_sym_preproc_ifdef_token2] = ACTIONS(932), + [aux_sym_preproc_else_token1] = ACTIONS(932), + [aux_sym_preproc_elif_token1] = ACTIONS(932), + [sym_preproc_directive] = ACTIONS(932), + [anon_sym_LPAREN2] = ACTIONS(934), + [anon_sym_BANG] = ACTIONS(934), + [anon_sym_TILDE] = ACTIONS(934), + [anon_sym_DASH] = ACTIONS(932), + [anon_sym_PLUS] = ACTIONS(932), + [anon_sym_STAR] = ACTIONS(934), + [anon_sym_AMP] = ACTIONS(934), + [anon_sym_SEMI] = ACTIONS(934), + [anon_sym_typedef] = ACTIONS(932), + [anon_sym_extern] = ACTIONS(932), + [anon_sym___attribute__] = ACTIONS(932), + [anon_sym_LBRACK_LBRACK] = ACTIONS(934), + [anon_sym___declspec] = ACTIONS(932), + [anon_sym___cdecl] = ACTIONS(932), + [anon_sym___clrcall] = ACTIONS(932), + [anon_sym___stdcall] = ACTIONS(932), + [anon_sym___fastcall] = ACTIONS(932), + [anon_sym___thiscall] = ACTIONS(932), + [anon_sym___vectorcall] = ACTIONS(932), + [anon_sym_LBRACE] = ACTIONS(934), + [anon_sym_static] = ACTIONS(932), + [anon_sym_auto] = ACTIONS(932), + [anon_sym_register] = ACTIONS(932), + [anon_sym_inline] = ACTIONS(932), + [anon_sym_const] = ACTIONS(932), + [anon_sym_volatile] = ACTIONS(932), + [anon_sym_restrict] = ACTIONS(932), + [anon_sym__Atomic] = ACTIONS(932), + [anon_sym_signed] = ACTIONS(932), + [anon_sym_unsigned] = ACTIONS(932), + [anon_sym_long] = ACTIONS(932), + [anon_sym_short] = ACTIONS(932), + [sym_primitive_type] = ACTIONS(932), + [anon_sym_enum] = ACTIONS(932), + [anon_sym_struct] = ACTIONS(932), + [anon_sym_union] = ACTIONS(932), + [anon_sym_if] = ACTIONS(932), + [anon_sym_else] = ACTIONS(932), + [anon_sym_switch] = ACTIONS(932), + [anon_sym_case] = ACTIONS(932), + [anon_sym_default] = ACTIONS(932), + [anon_sym_while] = ACTIONS(932), + [anon_sym_do] = ACTIONS(932), + [anon_sym_for] = ACTIONS(932), + [anon_sym_return] = ACTIONS(932), + [anon_sym_break] = ACTIONS(932), + [anon_sym_continue] = ACTIONS(932), + [anon_sym_goto] = ACTIONS(932), + [anon_sym_DASH_DASH] = ACTIONS(934), + [anon_sym_PLUS_PLUS] = ACTIONS(934), + [anon_sym_sizeof] = ACTIONS(932), + [sym_number_literal] = ACTIONS(934), + [anon_sym_L_SQUOTE] = ACTIONS(934), + [anon_sym_u_SQUOTE] = ACTIONS(934), + [anon_sym_U_SQUOTE] = ACTIONS(934), + [anon_sym_u8_SQUOTE] = ACTIONS(934), + [anon_sym_SQUOTE] = ACTIONS(934), + [anon_sym_L_DQUOTE] = ACTIONS(934), + [anon_sym_u_DQUOTE] = ACTIONS(934), + [anon_sym_U_DQUOTE] = ACTIONS(934), + [anon_sym_u8_DQUOTE] = ACTIONS(934), + [anon_sym_DQUOTE] = ACTIONS(934), + [sym_true] = ACTIONS(932), + [sym_false] = ACTIONS(932), + [sym_null] = ACTIONS(932), + [sym_comment] = ACTIONS(3), + }, + [80] = { + [sym_identifier] = ACTIONS(936), + [aux_sym_preproc_include_token1] = ACTIONS(936), + [aux_sym_preproc_def_token1] = ACTIONS(936), + [aux_sym_preproc_if_token1] = ACTIONS(936), + [aux_sym_preproc_if_token2] = ACTIONS(936), + [aux_sym_preproc_ifdef_token1] = ACTIONS(936), + [aux_sym_preproc_ifdef_token2] = ACTIONS(936), + [aux_sym_preproc_else_token1] = ACTIONS(936), + [aux_sym_preproc_elif_token1] = ACTIONS(936), + [sym_preproc_directive] = ACTIONS(936), + [anon_sym_LPAREN2] = ACTIONS(938), + [anon_sym_BANG] = ACTIONS(938), + [anon_sym_TILDE] = ACTIONS(938), + [anon_sym_DASH] = ACTIONS(936), + [anon_sym_PLUS] = ACTIONS(936), + [anon_sym_STAR] = ACTIONS(938), + [anon_sym_AMP] = ACTIONS(938), + [anon_sym_SEMI] = ACTIONS(938), + [anon_sym_typedef] = ACTIONS(936), + [anon_sym_extern] = ACTIONS(936), + [anon_sym___attribute__] = ACTIONS(936), + [anon_sym_LBRACK_LBRACK] = ACTIONS(938), + [anon_sym___declspec] = ACTIONS(936), + [anon_sym___cdecl] = ACTIONS(936), + [anon_sym___clrcall] = ACTIONS(936), + [anon_sym___stdcall] = ACTIONS(936), + [anon_sym___fastcall] = ACTIONS(936), + [anon_sym___thiscall] = ACTIONS(936), + [anon_sym___vectorcall] = ACTIONS(936), + [anon_sym_LBRACE] = ACTIONS(938), + [anon_sym_static] = ACTIONS(936), + [anon_sym_auto] = ACTIONS(936), + [anon_sym_register] = ACTIONS(936), + [anon_sym_inline] = ACTIONS(936), + [anon_sym_const] = ACTIONS(936), + [anon_sym_volatile] = ACTIONS(936), + [anon_sym_restrict] = ACTIONS(936), + [anon_sym__Atomic] = ACTIONS(936), + [anon_sym_signed] = ACTIONS(936), + [anon_sym_unsigned] = ACTIONS(936), + [anon_sym_long] = ACTIONS(936), + [anon_sym_short] = ACTIONS(936), + [sym_primitive_type] = ACTIONS(936), + [anon_sym_enum] = ACTIONS(936), + [anon_sym_struct] = ACTIONS(936), + [anon_sym_union] = ACTIONS(936), + [anon_sym_if] = ACTIONS(936), + [anon_sym_else] = ACTIONS(936), + [anon_sym_switch] = ACTIONS(936), + [anon_sym_case] = ACTIONS(936), + [anon_sym_default] = ACTIONS(936), + [anon_sym_while] = ACTIONS(936), + [anon_sym_do] = ACTIONS(936), + [anon_sym_for] = ACTIONS(936), + [anon_sym_return] = ACTIONS(936), + [anon_sym_break] = ACTIONS(936), + [anon_sym_continue] = ACTIONS(936), + [anon_sym_goto] = ACTIONS(936), + [anon_sym_DASH_DASH] = ACTIONS(938), + [anon_sym_PLUS_PLUS] = ACTIONS(938), + [anon_sym_sizeof] = ACTIONS(936), + [sym_number_literal] = ACTIONS(938), + [anon_sym_L_SQUOTE] = ACTIONS(938), + [anon_sym_u_SQUOTE] = ACTIONS(938), + [anon_sym_U_SQUOTE] = ACTIONS(938), + [anon_sym_u8_SQUOTE] = ACTIONS(938), + [anon_sym_SQUOTE] = ACTIONS(938), + [anon_sym_L_DQUOTE] = ACTIONS(938), + [anon_sym_u_DQUOTE] = ACTIONS(938), + [anon_sym_U_DQUOTE] = ACTIONS(938), + [anon_sym_u8_DQUOTE] = ACTIONS(938), + [anon_sym_DQUOTE] = ACTIONS(938), + [sym_true] = ACTIONS(936), + [sym_false] = ACTIONS(936), + [sym_null] = ACTIONS(936), + [sym_comment] = ACTIONS(3), + }, + [81] = { + [sym_identifier] = ACTIONS(940), + [aux_sym_preproc_include_token1] = ACTIONS(940), + [aux_sym_preproc_def_token1] = ACTIONS(940), + [aux_sym_preproc_if_token1] = ACTIONS(940), + [aux_sym_preproc_if_token2] = ACTIONS(940), + [aux_sym_preproc_ifdef_token1] = ACTIONS(940), + [aux_sym_preproc_ifdef_token2] = ACTIONS(940), + [aux_sym_preproc_else_token1] = ACTIONS(940), + [aux_sym_preproc_elif_token1] = ACTIONS(940), + [sym_preproc_directive] = ACTIONS(940), + [anon_sym_LPAREN2] = ACTIONS(942), + [anon_sym_BANG] = ACTIONS(942), + [anon_sym_TILDE] = ACTIONS(942), + [anon_sym_DASH] = ACTIONS(940), + [anon_sym_PLUS] = ACTIONS(940), + [anon_sym_STAR] = ACTIONS(942), + [anon_sym_AMP] = ACTIONS(942), + [anon_sym_SEMI] = ACTIONS(942), + [anon_sym_typedef] = ACTIONS(940), + [anon_sym_extern] = ACTIONS(940), + [anon_sym___attribute__] = ACTIONS(940), + [anon_sym_LBRACK_LBRACK] = ACTIONS(942), + [anon_sym___declspec] = ACTIONS(940), + [anon_sym___cdecl] = ACTIONS(940), + [anon_sym___clrcall] = ACTIONS(940), + [anon_sym___stdcall] = ACTIONS(940), + [anon_sym___fastcall] = ACTIONS(940), + [anon_sym___thiscall] = ACTIONS(940), + [anon_sym___vectorcall] = ACTIONS(940), + [anon_sym_LBRACE] = ACTIONS(942), + [anon_sym_static] = ACTIONS(940), + [anon_sym_auto] = ACTIONS(940), + [anon_sym_register] = ACTIONS(940), + [anon_sym_inline] = ACTIONS(940), + [anon_sym_const] = ACTIONS(940), + [anon_sym_volatile] = ACTIONS(940), + [anon_sym_restrict] = ACTIONS(940), + [anon_sym__Atomic] = ACTIONS(940), + [anon_sym_signed] = ACTIONS(940), + [anon_sym_unsigned] = ACTIONS(940), + [anon_sym_long] = ACTIONS(940), + [anon_sym_short] = ACTIONS(940), + [sym_primitive_type] = ACTIONS(940), + [anon_sym_enum] = ACTIONS(940), + [anon_sym_struct] = ACTIONS(940), + [anon_sym_union] = ACTIONS(940), + [anon_sym_if] = ACTIONS(940), + [anon_sym_else] = ACTIONS(940), + [anon_sym_switch] = ACTIONS(940), + [anon_sym_case] = ACTIONS(940), + [anon_sym_default] = ACTIONS(940), + [anon_sym_while] = ACTIONS(940), + [anon_sym_do] = ACTIONS(940), + [anon_sym_for] = ACTIONS(940), + [anon_sym_return] = ACTIONS(940), + [anon_sym_break] = ACTIONS(940), + [anon_sym_continue] = ACTIONS(940), + [anon_sym_goto] = ACTIONS(940), + [anon_sym_DASH_DASH] = ACTIONS(942), + [anon_sym_PLUS_PLUS] = ACTIONS(942), + [anon_sym_sizeof] = ACTIONS(940), + [sym_number_literal] = ACTIONS(942), + [anon_sym_L_SQUOTE] = ACTIONS(942), + [anon_sym_u_SQUOTE] = ACTIONS(942), + [anon_sym_U_SQUOTE] = ACTIONS(942), + [anon_sym_u8_SQUOTE] = ACTIONS(942), + [anon_sym_SQUOTE] = ACTIONS(942), + [anon_sym_L_DQUOTE] = ACTIONS(942), + [anon_sym_u_DQUOTE] = ACTIONS(942), + [anon_sym_U_DQUOTE] = ACTIONS(942), + [anon_sym_u8_DQUOTE] = ACTIONS(942), + [anon_sym_DQUOTE] = ACTIONS(942), + [sym_true] = ACTIONS(940), + [sym_false] = ACTIONS(940), + [sym_null] = ACTIONS(940), + [sym_comment] = ACTIONS(3), + }, + [82] = { + [sym_identifier] = ACTIONS(944), + [aux_sym_preproc_include_token1] = ACTIONS(944), + [aux_sym_preproc_def_token1] = ACTIONS(944), + [aux_sym_preproc_if_token1] = ACTIONS(944), + [aux_sym_preproc_if_token2] = ACTIONS(944), + [aux_sym_preproc_ifdef_token1] = ACTIONS(944), + [aux_sym_preproc_ifdef_token2] = ACTIONS(944), + [aux_sym_preproc_else_token1] = ACTIONS(944), + [aux_sym_preproc_elif_token1] = ACTIONS(944), + [sym_preproc_directive] = ACTIONS(944), + [anon_sym_LPAREN2] = ACTIONS(946), + [anon_sym_BANG] = ACTIONS(946), + [anon_sym_TILDE] = ACTIONS(946), + [anon_sym_DASH] = ACTIONS(944), + [anon_sym_PLUS] = ACTIONS(944), + [anon_sym_STAR] = ACTIONS(946), + [anon_sym_AMP] = ACTIONS(946), + [anon_sym_SEMI] = ACTIONS(946), + [anon_sym_typedef] = ACTIONS(944), + [anon_sym_extern] = ACTIONS(944), + [anon_sym___attribute__] = ACTIONS(944), + [anon_sym_LBRACK_LBRACK] = ACTIONS(946), + [anon_sym___declspec] = ACTIONS(944), + [anon_sym___cdecl] = ACTIONS(944), + [anon_sym___clrcall] = ACTIONS(944), + [anon_sym___stdcall] = ACTIONS(944), + [anon_sym___fastcall] = ACTIONS(944), + [anon_sym___thiscall] = ACTIONS(944), + [anon_sym___vectorcall] = ACTIONS(944), + [anon_sym_LBRACE] = ACTIONS(946), + [anon_sym_static] = ACTIONS(944), + [anon_sym_auto] = ACTIONS(944), + [anon_sym_register] = ACTIONS(944), + [anon_sym_inline] = ACTIONS(944), + [anon_sym_const] = ACTIONS(944), + [anon_sym_volatile] = ACTIONS(944), + [anon_sym_restrict] = ACTIONS(944), + [anon_sym__Atomic] = ACTIONS(944), + [anon_sym_signed] = ACTIONS(944), + [anon_sym_unsigned] = ACTIONS(944), + [anon_sym_long] = ACTIONS(944), + [anon_sym_short] = ACTIONS(944), + [sym_primitive_type] = ACTIONS(944), + [anon_sym_enum] = ACTIONS(944), + [anon_sym_struct] = ACTIONS(944), + [anon_sym_union] = ACTIONS(944), + [anon_sym_if] = ACTIONS(944), + [anon_sym_else] = ACTIONS(944), + [anon_sym_switch] = ACTIONS(944), + [anon_sym_case] = ACTIONS(944), + [anon_sym_default] = ACTIONS(944), + [anon_sym_while] = ACTIONS(944), + [anon_sym_do] = ACTIONS(944), + [anon_sym_for] = ACTIONS(944), + [anon_sym_return] = ACTIONS(944), + [anon_sym_break] = ACTIONS(944), + [anon_sym_continue] = ACTIONS(944), + [anon_sym_goto] = ACTIONS(944), + [anon_sym_DASH_DASH] = ACTIONS(946), + [anon_sym_PLUS_PLUS] = ACTIONS(946), + [anon_sym_sizeof] = ACTIONS(944), + [sym_number_literal] = ACTIONS(946), + [anon_sym_L_SQUOTE] = ACTIONS(946), + [anon_sym_u_SQUOTE] = ACTIONS(946), + [anon_sym_U_SQUOTE] = ACTIONS(946), + [anon_sym_u8_SQUOTE] = ACTIONS(946), + [anon_sym_SQUOTE] = ACTIONS(946), + [anon_sym_L_DQUOTE] = ACTIONS(946), + [anon_sym_u_DQUOTE] = ACTIONS(946), + [anon_sym_U_DQUOTE] = ACTIONS(946), + [anon_sym_u8_DQUOTE] = ACTIONS(946), + [anon_sym_DQUOTE] = ACTIONS(946), + [sym_true] = ACTIONS(944), + [sym_false] = ACTIONS(944), + [sym_null] = ACTIONS(944), + [sym_comment] = ACTIONS(3), + }, + [83] = { + [sym_identifier] = ACTIONS(948), + [aux_sym_preproc_include_token1] = ACTIONS(948), + [aux_sym_preproc_def_token1] = ACTIONS(948), + [aux_sym_preproc_if_token1] = ACTIONS(948), + [aux_sym_preproc_if_token2] = ACTIONS(948), + [aux_sym_preproc_ifdef_token1] = ACTIONS(948), + [aux_sym_preproc_ifdef_token2] = ACTIONS(948), + [aux_sym_preproc_else_token1] = ACTIONS(948), + [aux_sym_preproc_elif_token1] = ACTIONS(948), + [sym_preproc_directive] = ACTIONS(948), + [anon_sym_LPAREN2] = ACTIONS(950), + [anon_sym_BANG] = ACTIONS(950), + [anon_sym_TILDE] = ACTIONS(950), + [anon_sym_DASH] = ACTIONS(948), + [anon_sym_PLUS] = ACTIONS(948), + [anon_sym_STAR] = ACTIONS(950), + [anon_sym_AMP] = ACTIONS(950), + [anon_sym_SEMI] = ACTIONS(950), + [anon_sym_typedef] = ACTIONS(948), + [anon_sym_extern] = ACTIONS(948), + [anon_sym___attribute__] = ACTIONS(948), + [anon_sym_LBRACK_LBRACK] = ACTIONS(950), + [anon_sym___declspec] = ACTIONS(948), + [anon_sym___cdecl] = ACTIONS(948), + [anon_sym___clrcall] = ACTIONS(948), + [anon_sym___stdcall] = ACTIONS(948), + [anon_sym___fastcall] = ACTIONS(948), + [anon_sym___thiscall] = ACTIONS(948), + [anon_sym___vectorcall] = ACTIONS(948), + [anon_sym_LBRACE] = ACTIONS(950), + [anon_sym_static] = ACTIONS(948), + [anon_sym_auto] = ACTIONS(948), + [anon_sym_register] = ACTIONS(948), + [anon_sym_inline] = ACTIONS(948), + [anon_sym_const] = ACTIONS(948), + [anon_sym_volatile] = ACTIONS(948), + [anon_sym_restrict] = ACTIONS(948), + [anon_sym__Atomic] = ACTIONS(948), + [anon_sym_signed] = ACTIONS(948), + [anon_sym_unsigned] = ACTIONS(948), + [anon_sym_long] = ACTIONS(948), + [anon_sym_short] = ACTIONS(948), + [sym_primitive_type] = ACTIONS(948), + [anon_sym_enum] = ACTIONS(948), + [anon_sym_struct] = ACTIONS(948), + [anon_sym_union] = ACTIONS(948), + [anon_sym_if] = ACTIONS(948), + [anon_sym_else] = ACTIONS(948), + [anon_sym_switch] = ACTIONS(948), + [anon_sym_case] = ACTIONS(948), + [anon_sym_default] = ACTIONS(948), + [anon_sym_while] = ACTIONS(948), + [anon_sym_do] = ACTIONS(948), + [anon_sym_for] = ACTIONS(948), + [anon_sym_return] = ACTIONS(948), + [anon_sym_break] = ACTIONS(948), + [anon_sym_continue] = ACTIONS(948), + [anon_sym_goto] = ACTIONS(948), + [anon_sym_DASH_DASH] = ACTIONS(950), + [anon_sym_PLUS_PLUS] = ACTIONS(950), + [anon_sym_sizeof] = ACTIONS(948), + [sym_number_literal] = ACTIONS(950), + [anon_sym_L_SQUOTE] = ACTIONS(950), + [anon_sym_u_SQUOTE] = ACTIONS(950), + [anon_sym_U_SQUOTE] = ACTIONS(950), + [anon_sym_u8_SQUOTE] = ACTIONS(950), + [anon_sym_SQUOTE] = ACTIONS(950), + [anon_sym_L_DQUOTE] = ACTIONS(950), + [anon_sym_u_DQUOTE] = ACTIONS(950), + [anon_sym_U_DQUOTE] = ACTIONS(950), + [anon_sym_u8_DQUOTE] = ACTIONS(950), + [anon_sym_DQUOTE] = ACTIONS(950), + [sym_true] = ACTIONS(948), + [sym_false] = ACTIONS(948), + [sym_null] = ACTIONS(948), + [sym_comment] = ACTIONS(3), + }, + [84] = { + [sym_identifier] = ACTIONS(952), + [aux_sym_preproc_include_token1] = ACTIONS(952), + [aux_sym_preproc_def_token1] = ACTIONS(952), + [aux_sym_preproc_if_token1] = ACTIONS(952), + [aux_sym_preproc_if_token2] = ACTIONS(952), + [aux_sym_preproc_ifdef_token1] = ACTIONS(952), + [aux_sym_preproc_ifdef_token2] = ACTIONS(952), + [aux_sym_preproc_else_token1] = ACTIONS(952), + [aux_sym_preproc_elif_token1] = ACTIONS(952), + [sym_preproc_directive] = ACTIONS(952), + [anon_sym_LPAREN2] = ACTIONS(954), + [anon_sym_BANG] = ACTIONS(954), + [anon_sym_TILDE] = ACTIONS(954), + [anon_sym_DASH] = ACTIONS(952), + [anon_sym_PLUS] = ACTIONS(952), + [anon_sym_STAR] = ACTIONS(954), + [anon_sym_AMP] = ACTIONS(954), + [anon_sym_SEMI] = ACTIONS(954), + [anon_sym_typedef] = ACTIONS(952), + [anon_sym_extern] = ACTIONS(952), + [anon_sym___attribute__] = ACTIONS(952), + [anon_sym_LBRACK_LBRACK] = ACTIONS(954), + [anon_sym___declspec] = ACTIONS(952), + [anon_sym___cdecl] = ACTIONS(952), + [anon_sym___clrcall] = ACTIONS(952), + [anon_sym___stdcall] = ACTIONS(952), + [anon_sym___fastcall] = ACTIONS(952), + [anon_sym___thiscall] = ACTIONS(952), + [anon_sym___vectorcall] = ACTIONS(952), + [anon_sym_LBRACE] = ACTIONS(954), + [anon_sym_static] = ACTIONS(952), + [anon_sym_auto] = ACTIONS(952), + [anon_sym_register] = ACTIONS(952), + [anon_sym_inline] = ACTIONS(952), + [anon_sym_const] = ACTIONS(952), + [anon_sym_volatile] = ACTIONS(952), + [anon_sym_restrict] = ACTIONS(952), + [anon_sym__Atomic] = ACTIONS(952), + [anon_sym_signed] = ACTIONS(952), + [anon_sym_unsigned] = ACTIONS(952), + [anon_sym_long] = ACTIONS(952), + [anon_sym_short] = ACTIONS(952), + [sym_primitive_type] = ACTIONS(952), + [anon_sym_enum] = ACTIONS(952), + [anon_sym_struct] = ACTIONS(952), + [anon_sym_union] = ACTIONS(952), + [anon_sym_if] = ACTIONS(952), + [anon_sym_else] = ACTIONS(952), + [anon_sym_switch] = ACTIONS(952), + [anon_sym_case] = ACTIONS(952), + [anon_sym_default] = ACTIONS(952), + [anon_sym_while] = ACTIONS(952), + [anon_sym_do] = ACTIONS(952), + [anon_sym_for] = ACTIONS(952), + [anon_sym_return] = ACTIONS(952), + [anon_sym_break] = ACTIONS(952), + [anon_sym_continue] = ACTIONS(952), + [anon_sym_goto] = ACTIONS(952), + [anon_sym_DASH_DASH] = ACTIONS(954), + [anon_sym_PLUS_PLUS] = ACTIONS(954), + [anon_sym_sizeof] = ACTIONS(952), + [sym_number_literal] = ACTIONS(954), + [anon_sym_L_SQUOTE] = ACTIONS(954), + [anon_sym_u_SQUOTE] = ACTIONS(954), + [anon_sym_U_SQUOTE] = ACTIONS(954), + [anon_sym_u8_SQUOTE] = ACTIONS(954), + [anon_sym_SQUOTE] = ACTIONS(954), + [anon_sym_L_DQUOTE] = ACTIONS(954), + [anon_sym_u_DQUOTE] = ACTIONS(954), + [anon_sym_U_DQUOTE] = ACTIONS(954), + [anon_sym_u8_DQUOTE] = ACTIONS(954), + [anon_sym_DQUOTE] = ACTIONS(954), + [sym_true] = ACTIONS(952), + [sym_false] = ACTIONS(952), + [sym_null] = ACTIONS(952), + [sym_comment] = ACTIONS(3), + }, + [85] = { + [sym_identifier] = ACTIONS(898), + [aux_sym_preproc_include_token1] = ACTIONS(898), + [aux_sym_preproc_def_token1] = ACTIONS(898), + [aux_sym_preproc_if_token1] = ACTIONS(898), + [aux_sym_preproc_if_token2] = ACTIONS(898), + [aux_sym_preproc_ifdef_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token2] = ACTIONS(898), + [aux_sym_preproc_else_token1] = ACTIONS(898), + [aux_sym_preproc_elif_token1] = ACTIONS(898), + [sym_preproc_directive] = ACTIONS(898), + [anon_sym_LPAREN2] = ACTIONS(900), + [anon_sym_BANG] = ACTIONS(900), + [anon_sym_TILDE] = ACTIONS(900), + [anon_sym_DASH] = ACTIONS(898), + [anon_sym_PLUS] = ACTIONS(898), + [anon_sym_STAR] = ACTIONS(900), + [anon_sym_AMP] = ACTIONS(900), + [anon_sym_SEMI] = ACTIONS(900), + [anon_sym_typedef] = ACTIONS(898), + [anon_sym_extern] = ACTIONS(898), + [anon_sym___attribute__] = ACTIONS(898), + [anon_sym_LBRACK_LBRACK] = ACTIONS(900), + [anon_sym___declspec] = ACTIONS(898), + [anon_sym___cdecl] = ACTIONS(898), + [anon_sym___clrcall] = ACTIONS(898), + [anon_sym___stdcall] = ACTIONS(898), + [anon_sym___fastcall] = ACTIONS(898), + [anon_sym___thiscall] = ACTIONS(898), + [anon_sym___vectorcall] = ACTIONS(898), + [anon_sym_LBRACE] = ACTIONS(900), + [anon_sym_static] = ACTIONS(898), + [anon_sym_auto] = ACTIONS(898), + [anon_sym_register] = ACTIONS(898), + [anon_sym_inline] = ACTIONS(898), + [anon_sym_const] = ACTIONS(898), + [anon_sym_volatile] = ACTIONS(898), + [anon_sym_restrict] = ACTIONS(898), + [anon_sym__Atomic] = ACTIONS(898), + [anon_sym_signed] = ACTIONS(898), + [anon_sym_unsigned] = ACTIONS(898), + [anon_sym_long] = ACTIONS(898), + [anon_sym_short] = ACTIONS(898), + [sym_primitive_type] = ACTIONS(898), + [anon_sym_enum] = ACTIONS(898), + [anon_sym_struct] = ACTIONS(898), + [anon_sym_union] = ACTIONS(898), + [anon_sym_if] = ACTIONS(898), + [anon_sym_else] = ACTIONS(898), + [anon_sym_switch] = ACTIONS(898), + [anon_sym_case] = ACTIONS(898), + [anon_sym_default] = ACTIONS(898), + [anon_sym_while] = ACTIONS(898), + [anon_sym_do] = ACTIONS(898), + [anon_sym_for] = ACTIONS(898), + [anon_sym_return] = ACTIONS(898), + [anon_sym_break] = ACTIONS(898), + [anon_sym_continue] = ACTIONS(898), + [anon_sym_goto] = ACTIONS(898), + [anon_sym_DASH_DASH] = ACTIONS(900), + [anon_sym_PLUS_PLUS] = ACTIONS(900), + [anon_sym_sizeof] = ACTIONS(898), + [sym_number_literal] = ACTIONS(900), + [anon_sym_L_SQUOTE] = ACTIONS(900), + [anon_sym_u_SQUOTE] = ACTIONS(900), + [anon_sym_U_SQUOTE] = ACTIONS(900), + [anon_sym_u8_SQUOTE] = ACTIONS(900), + [anon_sym_SQUOTE] = ACTIONS(900), + [anon_sym_L_DQUOTE] = ACTIONS(900), + [anon_sym_u_DQUOTE] = ACTIONS(900), + [anon_sym_U_DQUOTE] = ACTIONS(900), + [anon_sym_u8_DQUOTE] = ACTIONS(900), + [anon_sym_DQUOTE] = ACTIONS(900), + [sym_true] = ACTIONS(898), + [sym_false] = ACTIONS(898), + [sym_null] = ACTIONS(898), + [sym_comment] = ACTIONS(3), + }, + [86] = { + [sym_identifier] = ACTIONS(956), + [aux_sym_preproc_include_token1] = ACTIONS(956), + [aux_sym_preproc_def_token1] = ACTIONS(956), + [aux_sym_preproc_if_token1] = ACTIONS(956), + [aux_sym_preproc_if_token2] = ACTIONS(956), + [aux_sym_preproc_ifdef_token1] = ACTIONS(956), + [aux_sym_preproc_ifdef_token2] = ACTIONS(956), + [aux_sym_preproc_else_token1] = ACTIONS(956), + [aux_sym_preproc_elif_token1] = ACTIONS(956), + [sym_preproc_directive] = ACTIONS(956), + [anon_sym_LPAREN2] = ACTIONS(958), + [anon_sym_BANG] = ACTIONS(958), + [anon_sym_TILDE] = ACTIONS(958), + [anon_sym_DASH] = ACTIONS(956), + [anon_sym_PLUS] = ACTIONS(956), + [anon_sym_STAR] = ACTIONS(958), + [anon_sym_AMP] = ACTIONS(958), + [anon_sym_SEMI] = ACTIONS(958), + [anon_sym_typedef] = ACTIONS(956), + [anon_sym_extern] = ACTIONS(956), + [anon_sym___attribute__] = ACTIONS(956), + [anon_sym_LBRACK_LBRACK] = ACTIONS(958), + [anon_sym___declspec] = ACTIONS(956), + [anon_sym___cdecl] = ACTIONS(956), + [anon_sym___clrcall] = ACTIONS(956), + [anon_sym___stdcall] = ACTIONS(956), + [anon_sym___fastcall] = ACTIONS(956), + [anon_sym___thiscall] = ACTIONS(956), + [anon_sym___vectorcall] = ACTIONS(956), + [anon_sym_LBRACE] = ACTIONS(958), + [anon_sym_static] = ACTIONS(956), + [anon_sym_auto] = ACTIONS(956), + [anon_sym_register] = ACTIONS(956), + [anon_sym_inline] = ACTIONS(956), + [anon_sym_const] = ACTIONS(956), + [anon_sym_volatile] = ACTIONS(956), + [anon_sym_restrict] = ACTIONS(956), + [anon_sym__Atomic] = ACTIONS(956), + [anon_sym_signed] = ACTIONS(956), + [anon_sym_unsigned] = ACTIONS(956), + [anon_sym_long] = ACTIONS(956), + [anon_sym_short] = ACTIONS(956), + [sym_primitive_type] = ACTIONS(956), + [anon_sym_enum] = ACTIONS(956), + [anon_sym_struct] = ACTIONS(956), + [anon_sym_union] = ACTIONS(956), + [anon_sym_if] = ACTIONS(956), + [anon_sym_else] = ACTIONS(956), + [anon_sym_switch] = ACTIONS(956), + [anon_sym_case] = ACTIONS(956), + [anon_sym_default] = ACTIONS(956), + [anon_sym_while] = ACTIONS(956), + [anon_sym_do] = ACTIONS(956), + [anon_sym_for] = ACTIONS(956), + [anon_sym_return] = ACTIONS(956), + [anon_sym_break] = ACTIONS(956), + [anon_sym_continue] = ACTIONS(956), + [anon_sym_goto] = ACTIONS(956), + [anon_sym_DASH_DASH] = ACTIONS(958), + [anon_sym_PLUS_PLUS] = ACTIONS(958), + [anon_sym_sizeof] = ACTIONS(956), + [sym_number_literal] = ACTIONS(958), + [anon_sym_L_SQUOTE] = ACTIONS(958), + [anon_sym_u_SQUOTE] = ACTIONS(958), + [anon_sym_U_SQUOTE] = ACTIONS(958), + [anon_sym_u8_SQUOTE] = ACTIONS(958), + [anon_sym_SQUOTE] = ACTIONS(958), + [anon_sym_L_DQUOTE] = ACTIONS(958), + [anon_sym_u_DQUOTE] = ACTIONS(958), + [anon_sym_U_DQUOTE] = ACTIONS(958), + [anon_sym_u8_DQUOTE] = ACTIONS(958), + [anon_sym_DQUOTE] = ACTIONS(958), + [sym_true] = ACTIONS(956), + [sym_false] = ACTIONS(956), + [sym_null] = ACTIONS(956), + [sym_comment] = ACTIONS(3), + }, + [87] = { + [sym_identifier] = ACTIONS(960), + [aux_sym_preproc_include_token1] = ACTIONS(960), + [aux_sym_preproc_def_token1] = ACTIONS(960), + [aux_sym_preproc_if_token1] = ACTIONS(960), + [aux_sym_preproc_if_token2] = ACTIONS(960), + [aux_sym_preproc_ifdef_token1] = ACTIONS(960), + [aux_sym_preproc_ifdef_token2] = ACTIONS(960), + [aux_sym_preproc_else_token1] = ACTIONS(960), + [aux_sym_preproc_elif_token1] = ACTIONS(960), + [sym_preproc_directive] = ACTIONS(960), + [anon_sym_LPAREN2] = ACTIONS(962), + [anon_sym_BANG] = ACTIONS(962), + [anon_sym_TILDE] = ACTIONS(962), + [anon_sym_DASH] = ACTIONS(960), + [anon_sym_PLUS] = ACTIONS(960), + [anon_sym_STAR] = ACTIONS(962), + [anon_sym_AMP] = ACTIONS(962), + [anon_sym_SEMI] = ACTIONS(962), + [anon_sym_typedef] = ACTIONS(960), + [anon_sym_extern] = ACTIONS(960), + [anon_sym___attribute__] = ACTIONS(960), + [anon_sym_LBRACK_LBRACK] = ACTIONS(962), + [anon_sym___declspec] = ACTIONS(960), + [anon_sym___cdecl] = ACTIONS(960), + [anon_sym___clrcall] = ACTIONS(960), + [anon_sym___stdcall] = ACTIONS(960), + [anon_sym___fastcall] = ACTIONS(960), + [anon_sym___thiscall] = ACTIONS(960), + [anon_sym___vectorcall] = ACTIONS(960), + [anon_sym_LBRACE] = ACTIONS(962), + [anon_sym_static] = ACTIONS(960), + [anon_sym_auto] = ACTIONS(960), + [anon_sym_register] = ACTIONS(960), + [anon_sym_inline] = ACTIONS(960), + [anon_sym_const] = ACTIONS(960), + [anon_sym_volatile] = ACTIONS(960), + [anon_sym_restrict] = ACTIONS(960), + [anon_sym__Atomic] = ACTIONS(960), + [anon_sym_signed] = ACTIONS(960), + [anon_sym_unsigned] = ACTIONS(960), + [anon_sym_long] = ACTIONS(960), + [anon_sym_short] = ACTIONS(960), + [sym_primitive_type] = ACTIONS(960), + [anon_sym_enum] = ACTIONS(960), + [anon_sym_struct] = ACTIONS(960), + [anon_sym_union] = ACTIONS(960), + [anon_sym_if] = ACTIONS(960), + [anon_sym_else] = ACTIONS(960), + [anon_sym_switch] = ACTIONS(960), + [anon_sym_case] = ACTIONS(960), + [anon_sym_default] = ACTIONS(960), + [anon_sym_while] = ACTIONS(960), + [anon_sym_do] = ACTIONS(960), + [anon_sym_for] = ACTIONS(960), + [anon_sym_return] = ACTIONS(960), + [anon_sym_break] = ACTIONS(960), + [anon_sym_continue] = ACTIONS(960), + [anon_sym_goto] = ACTIONS(960), + [anon_sym_DASH_DASH] = ACTIONS(962), + [anon_sym_PLUS_PLUS] = ACTIONS(962), + [anon_sym_sizeof] = ACTIONS(960), + [sym_number_literal] = ACTIONS(962), + [anon_sym_L_SQUOTE] = ACTIONS(962), + [anon_sym_u_SQUOTE] = ACTIONS(962), + [anon_sym_U_SQUOTE] = ACTIONS(962), + [anon_sym_u8_SQUOTE] = ACTIONS(962), + [anon_sym_SQUOTE] = ACTIONS(962), + [anon_sym_L_DQUOTE] = ACTIONS(962), + [anon_sym_u_DQUOTE] = ACTIONS(962), + [anon_sym_U_DQUOTE] = ACTIONS(962), + [anon_sym_u8_DQUOTE] = ACTIONS(962), + [anon_sym_DQUOTE] = ACTIONS(962), + [sym_true] = ACTIONS(960), + [sym_false] = ACTIONS(960), + [sym_null] = ACTIONS(960), + [sym_comment] = ACTIONS(3), + }, + [88] = { + [sym_identifier] = ACTIONS(964), + [aux_sym_preproc_include_token1] = ACTIONS(964), + [aux_sym_preproc_def_token1] = ACTIONS(964), + [aux_sym_preproc_if_token1] = ACTIONS(964), + [aux_sym_preproc_if_token2] = ACTIONS(964), + [aux_sym_preproc_ifdef_token1] = ACTIONS(964), + [aux_sym_preproc_ifdef_token2] = ACTIONS(964), + [aux_sym_preproc_else_token1] = ACTIONS(964), + [aux_sym_preproc_elif_token1] = ACTIONS(964), + [sym_preproc_directive] = ACTIONS(964), + [anon_sym_LPAREN2] = ACTIONS(966), + [anon_sym_BANG] = ACTIONS(966), + [anon_sym_TILDE] = ACTIONS(966), + [anon_sym_DASH] = ACTIONS(964), + [anon_sym_PLUS] = ACTIONS(964), + [anon_sym_STAR] = ACTIONS(966), + [anon_sym_AMP] = ACTIONS(966), + [anon_sym_SEMI] = ACTIONS(966), + [anon_sym_typedef] = ACTIONS(964), + [anon_sym_extern] = ACTIONS(964), + [anon_sym___attribute__] = ACTIONS(964), + [anon_sym_LBRACK_LBRACK] = ACTIONS(966), + [anon_sym___declspec] = ACTIONS(964), + [anon_sym___cdecl] = ACTIONS(964), + [anon_sym___clrcall] = ACTIONS(964), + [anon_sym___stdcall] = ACTIONS(964), + [anon_sym___fastcall] = ACTIONS(964), + [anon_sym___thiscall] = ACTIONS(964), + [anon_sym___vectorcall] = ACTIONS(964), + [anon_sym_LBRACE] = ACTIONS(966), + [anon_sym_static] = ACTIONS(964), + [anon_sym_auto] = ACTIONS(964), + [anon_sym_register] = ACTIONS(964), + [anon_sym_inline] = ACTIONS(964), + [anon_sym_const] = ACTIONS(964), + [anon_sym_volatile] = ACTIONS(964), + [anon_sym_restrict] = ACTIONS(964), + [anon_sym__Atomic] = ACTIONS(964), + [anon_sym_signed] = ACTIONS(964), + [anon_sym_unsigned] = ACTIONS(964), + [anon_sym_long] = ACTIONS(964), + [anon_sym_short] = ACTIONS(964), + [sym_primitive_type] = ACTIONS(964), + [anon_sym_enum] = ACTIONS(964), + [anon_sym_struct] = ACTIONS(964), + [anon_sym_union] = ACTIONS(964), + [anon_sym_if] = ACTIONS(964), + [anon_sym_else] = ACTIONS(964), + [anon_sym_switch] = ACTIONS(964), + [anon_sym_case] = ACTIONS(964), + [anon_sym_default] = ACTIONS(964), + [anon_sym_while] = ACTIONS(964), + [anon_sym_do] = ACTIONS(964), + [anon_sym_for] = ACTIONS(964), + [anon_sym_return] = ACTIONS(964), + [anon_sym_break] = ACTIONS(964), + [anon_sym_continue] = ACTIONS(964), + [anon_sym_goto] = ACTIONS(964), + [anon_sym_DASH_DASH] = ACTIONS(966), + [anon_sym_PLUS_PLUS] = ACTIONS(966), + [anon_sym_sizeof] = ACTIONS(964), + [sym_number_literal] = ACTIONS(966), + [anon_sym_L_SQUOTE] = ACTIONS(966), + [anon_sym_u_SQUOTE] = ACTIONS(966), + [anon_sym_U_SQUOTE] = ACTIONS(966), + [anon_sym_u8_SQUOTE] = ACTIONS(966), + [anon_sym_SQUOTE] = ACTIONS(966), + [anon_sym_L_DQUOTE] = ACTIONS(966), + [anon_sym_u_DQUOTE] = ACTIONS(966), + [anon_sym_U_DQUOTE] = ACTIONS(966), + [anon_sym_u8_DQUOTE] = ACTIONS(966), + [anon_sym_DQUOTE] = ACTIONS(966), + [sym_true] = ACTIONS(964), + [sym_false] = ACTIONS(964), + [sym_null] = ACTIONS(964), + [sym_comment] = ACTIONS(3), + }, + [89] = { + [sym_identifier] = ACTIONS(968), + [aux_sym_preproc_include_token1] = ACTIONS(968), + [aux_sym_preproc_def_token1] = ACTIONS(968), + [aux_sym_preproc_if_token1] = ACTIONS(968), + [aux_sym_preproc_if_token2] = ACTIONS(968), + [aux_sym_preproc_ifdef_token1] = ACTIONS(968), + [aux_sym_preproc_ifdef_token2] = ACTIONS(968), + [aux_sym_preproc_else_token1] = ACTIONS(968), + [aux_sym_preproc_elif_token1] = ACTIONS(968), + [sym_preproc_directive] = ACTIONS(968), + [anon_sym_LPAREN2] = ACTIONS(970), + [anon_sym_BANG] = ACTIONS(970), + [anon_sym_TILDE] = ACTIONS(970), + [anon_sym_DASH] = ACTIONS(968), + [anon_sym_PLUS] = ACTIONS(968), + [anon_sym_STAR] = ACTIONS(970), + [anon_sym_AMP] = ACTIONS(970), + [anon_sym_SEMI] = ACTIONS(970), + [anon_sym_typedef] = ACTIONS(968), + [anon_sym_extern] = ACTIONS(968), + [anon_sym___attribute__] = ACTIONS(968), + [anon_sym_LBRACK_LBRACK] = ACTIONS(970), + [anon_sym___declspec] = ACTIONS(968), + [anon_sym___cdecl] = ACTIONS(968), + [anon_sym___clrcall] = ACTIONS(968), + [anon_sym___stdcall] = ACTIONS(968), + [anon_sym___fastcall] = ACTIONS(968), + [anon_sym___thiscall] = ACTIONS(968), + [anon_sym___vectorcall] = ACTIONS(968), + [anon_sym_LBRACE] = ACTIONS(970), + [anon_sym_static] = ACTIONS(968), + [anon_sym_auto] = ACTIONS(968), + [anon_sym_register] = ACTIONS(968), + [anon_sym_inline] = ACTIONS(968), + [anon_sym_const] = ACTIONS(968), + [anon_sym_volatile] = ACTIONS(968), + [anon_sym_restrict] = ACTIONS(968), + [anon_sym__Atomic] = ACTIONS(968), + [anon_sym_signed] = ACTIONS(968), + [anon_sym_unsigned] = ACTIONS(968), + [anon_sym_long] = ACTIONS(968), + [anon_sym_short] = ACTIONS(968), + [sym_primitive_type] = ACTIONS(968), + [anon_sym_enum] = ACTIONS(968), + [anon_sym_struct] = ACTIONS(968), + [anon_sym_union] = ACTIONS(968), + [anon_sym_if] = ACTIONS(968), + [anon_sym_else] = ACTIONS(968), + [anon_sym_switch] = ACTIONS(968), + [anon_sym_case] = ACTIONS(968), + [anon_sym_default] = ACTIONS(968), + [anon_sym_while] = ACTIONS(968), + [anon_sym_do] = ACTIONS(968), + [anon_sym_for] = ACTIONS(968), + [anon_sym_return] = ACTIONS(968), + [anon_sym_break] = ACTIONS(968), + [anon_sym_continue] = ACTIONS(968), + [anon_sym_goto] = ACTIONS(968), + [anon_sym_DASH_DASH] = ACTIONS(970), + [anon_sym_PLUS_PLUS] = ACTIONS(970), + [anon_sym_sizeof] = ACTIONS(968), + [sym_number_literal] = ACTIONS(970), + [anon_sym_L_SQUOTE] = ACTIONS(970), + [anon_sym_u_SQUOTE] = ACTIONS(970), + [anon_sym_U_SQUOTE] = ACTIONS(970), + [anon_sym_u8_SQUOTE] = ACTIONS(970), + [anon_sym_SQUOTE] = ACTIONS(970), + [anon_sym_L_DQUOTE] = ACTIONS(970), + [anon_sym_u_DQUOTE] = ACTIONS(970), + [anon_sym_U_DQUOTE] = ACTIONS(970), + [anon_sym_u8_DQUOTE] = ACTIONS(970), + [anon_sym_DQUOTE] = ACTIONS(970), + [sym_true] = ACTIONS(968), + [sym_false] = ACTIONS(968), + [sym_null] = ACTIONS(968), + [sym_comment] = ACTIONS(3), + }, + [90] = { + [sym_identifier] = ACTIONS(972), + [aux_sym_preproc_include_token1] = ACTIONS(972), + [aux_sym_preproc_def_token1] = ACTIONS(972), + [aux_sym_preproc_if_token1] = ACTIONS(972), + [aux_sym_preproc_if_token2] = ACTIONS(972), + [aux_sym_preproc_ifdef_token1] = ACTIONS(972), + [aux_sym_preproc_ifdef_token2] = ACTIONS(972), + [aux_sym_preproc_else_token1] = ACTIONS(972), + [aux_sym_preproc_elif_token1] = ACTIONS(972), + [sym_preproc_directive] = ACTIONS(972), + [anon_sym_LPAREN2] = ACTIONS(974), + [anon_sym_BANG] = ACTIONS(974), + [anon_sym_TILDE] = ACTIONS(974), + [anon_sym_DASH] = ACTIONS(972), + [anon_sym_PLUS] = ACTIONS(972), + [anon_sym_STAR] = ACTIONS(974), + [anon_sym_AMP] = ACTIONS(974), + [anon_sym_SEMI] = ACTIONS(974), + [anon_sym_typedef] = ACTIONS(972), + [anon_sym_extern] = ACTIONS(972), + [anon_sym___attribute__] = ACTIONS(972), + [anon_sym_LBRACK_LBRACK] = ACTIONS(974), + [anon_sym___declspec] = ACTIONS(972), + [anon_sym___cdecl] = ACTIONS(972), + [anon_sym___clrcall] = ACTIONS(972), + [anon_sym___stdcall] = ACTIONS(972), + [anon_sym___fastcall] = ACTIONS(972), + [anon_sym___thiscall] = ACTIONS(972), + [anon_sym___vectorcall] = ACTIONS(972), + [anon_sym_LBRACE] = ACTIONS(974), + [anon_sym_static] = ACTIONS(972), + [anon_sym_auto] = ACTIONS(972), + [anon_sym_register] = ACTIONS(972), + [anon_sym_inline] = ACTIONS(972), + [anon_sym_const] = ACTIONS(972), + [anon_sym_volatile] = ACTIONS(972), + [anon_sym_restrict] = ACTIONS(972), + [anon_sym__Atomic] = ACTIONS(972), + [anon_sym_signed] = ACTIONS(972), + [anon_sym_unsigned] = ACTIONS(972), + [anon_sym_long] = ACTIONS(972), + [anon_sym_short] = ACTIONS(972), + [sym_primitive_type] = ACTIONS(972), + [anon_sym_enum] = ACTIONS(972), + [anon_sym_struct] = ACTIONS(972), + [anon_sym_union] = ACTIONS(972), + [anon_sym_if] = ACTIONS(972), + [anon_sym_else] = ACTIONS(972), + [anon_sym_switch] = ACTIONS(972), + [anon_sym_case] = ACTIONS(972), + [anon_sym_default] = ACTIONS(972), + [anon_sym_while] = ACTIONS(972), + [anon_sym_do] = ACTIONS(972), + [anon_sym_for] = ACTIONS(972), + [anon_sym_return] = ACTIONS(972), + [anon_sym_break] = ACTIONS(972), + [anon_sym_continue] = ACTIONS(972), + [anon_sym_goto] = ACTIONS(972), + [anon_sym_DASH_DASH] = ACTIONS(974), + [anon_sym_PLUS_PLUS] = ACTIONS(974), + [anon_sym_sizeof] = ACTIONS(972), + [sym_number_literal] = ACTIONS(974), + [anon_sym_L_SQUOTE] = ACTIONS(974), + [anon_sym_u_SQUOTE] = ACTIONS(974), + [anon_sym_U_SQUOTE] = ACTIONS(974), + [anon_sym_u8_SQUOTE] = ACTIONS(974), + [anon_sym_SQUOTE] = ACTIONS(974), + [anon_sym_L_DQUOTE] = ACTIONS(974), + [anon_sym_u_DQUOTE] = ACTIONS(974), + [anon_sym_U_DQUOTE] = ACTIONS(974), + [anon_sym_u8_DQUOTE] = ACTIONS(974), + [anon_sym_DQUOTE] = ACTIONS(974), + [sym_true] = ACTIONS(972), + [sym_false] = ACTIONS(972), + [sym_null] = ACTIONS(972), + [sym_comment] = ACTIONS(3), + }, + [91] = { + [sym_identifier] = ACTIONS(976), + [aux_sym_preproc_include_token1] = ACTIONS(976), + [aux_sym_preproc_def_token1] = ACTIONS(976), + [aux_sym_preproc_if_token1] = ACTIONS(976), + [aux_sym_preproc_if_token2] = ACTIONS(976), + [aux_sym_preproc_ifdef_token1] = ACTIONS(976), + [aux_sym_preproc_ifdef_token2] = ACTIONS(976), + [aux_sym_preproc_else_token1] = ACTIONS(976), + [aux_sym_preproc_elif_token1] = ACTIONS(976), + [sym_preproc_directive] = ACTIONS(976), + [anon_sym_LPAREN2] = ACTIONS(978), + [anon_sym_BANG] = ACTIONS(978), + [anon_sym_TILDE] = ACTIONS(978), + [anon_sym_DASH] = ACTIONS(976), + [anon_sym_PLUS] = ACTIONS(976), + [anon_sym_STAR] = ACTIONS(978), + [anon_sym_AMP] = ACTIONS(978), + [anon_sym_SEMI] = ACTIONS(978), + [anon_sym_typedef] = ACTIONS(976), + [anon_sym_extern] = ACTIONS(976), + [anon_sym___attribute__] = ACTIONS(976), + [anon_sym_LBRACK_LBRACK] = ACTIONS(978), + [anon_sym___declspec] = ACTIONS(976), + [anon_sym___cdecl] = ACTIONS(976), + [anon_sym___clrcall] = ACTIONS(976), + [anon_sym___stdcall] = ACTIONS(976), + [anon_sym___fastcall] = ACTIONS(976), + [anon_sym___thiscall] = ACTIONS(976), + [anon_sym___vectorcall] = ACTIONS(976), + [anon_sym_LBRACE] = ACTIONS(978), + [anon_sym_static] = ACTIONS(976), + [anon_sym_auto] = ACTIONS(976), + [anon_sym_register] = ACTIONS(976), + [anon_sym_inline] = ACTIONS(976), + [anon_sym_const] = ACTIONS(976), + [anon_sym_volatile] = ACTIONS(976), + [anon_sym_restrict] = ACTIONS(976), + [anon_sym__Atomic] = ACTIONS(976), + [anon_sym_signed] = ACTIONS(976), + [anon_sym_unsigned] = ACTIONS(976), + [anon_sym_long] = ACTIONS(976), + [anon_sym_short] = ACTIONS(976), + [sym_primitive_type] = ACTIONS(976), + [anon_sym_enum] = ACTIONS(976), + [anon_sym_struct] = ACTIONS(976), + [anon_sym_union] = ACTIONS(976), + [anon_sym_if] = ACTIONS(976), + [anon_sym_else] = ACTIONS(976), + [anon_sym_switch] = ACTIONS(976), + [anon_sym_case] = ACTIONS(976), + [anon_sym_default] = ACTIONS(976), + [anon_sym_while] = ACTIONS(976), + [anon_sym_do] = ACTIONS(976), + [anon_sym_for] = ACTIONS(976), + [anon_sym_return] = ACTIONS(976), + [anon_sym_break] = ACTIONS(976), + [anon_sym_continue] = ACTIONS(976), + [anon_sym_goto] = ACTIONS(976), + [anon_sym_DASH_DASH] = ACTIONS(978), + [anon_sym_PLUS_PLUS] = ACTIONS(978), + [anon_sym_sizeof] = ACTIONS(976), + [sym_number_literal] = ACTIONS(978), + [anon_sym_L_SQUOTE] = ACTIONS(978), + [anon_sym_u_SQUOTE] = ACTIONS(978), + [anon_sym_U_SQUOTE] = ACTIONS(978), + [anon_sym_u8_SQUOTE] = ACTIONS(978), + [anon_sym_SQUOTE] = ACTIONS(978), + [anon_sym_L_DQUOTE] = ACTIONS(978), + [anon_sym_u_DQUOTE] = ACTIONS(978), + [anon_sym_U_DQUOTE] = ACTIONS(978), + [anon_sym_u8_DQUOTE] = ACTIONS(978), + [anon_sym_DQUOTE] = ACTIONS(978), + [sym_true] = ACTIONS(976), + [sym_false] = ACTIONS(976), + [sym_null] = ACTIONS(976), + [sym_comment] = ACTIONS(3), + }, + [92] = { + [sym_identifier] = ACTIONS(980), + [aux_sym_preproc_include_token1] = ACTIONS(980), + [aux_sym_preproc_def_token1] = ACTIONS(980), + [aux_sym_preproc_if_token1] = ACTIONS(980), + [aux_sym_preproc_if_token2] = ACTIONS(980), + [aux_sym_preproc_ifdef_token1] = ACTIONS(980), + [aux_sym_preproc_ifdef_token2] = ACTIONS(980), + [aux_sym_preproc_else_token1] = ACTIONS(980), + [aux_sym_preproc_elif_token1] = ACTIONS(980), + [sym_preproc_directive] = ACTIONS(980), + [anon_sym_LPAREN2] = ACTIONS(982), + [anon_sym_BANG] = ACTIONS(982), + [anon_sym_TILDE] = ACTIONS(982), + [anon_sym_DASH] = ACTIONS(980), + [anon_sym_PLUS] = ACTIONS(980), + [anon_sym_STAR] = ACTIONS(982), + [anon_sym_AMP] = ACTIONS(982), + [anon_sym_SEMI] = ACTIONS(982), + [anon_sym_typedef] = ACTIONS(980), + [anon_sym_extern] = ACTIONS(980), + [anon_sym___attribute__] = ACTIONS(980), + [anon_sym_LBRACK_LBRACK] = ACTIONS(982), + [anon_sym___declspec] = ACTIONS(980), + [anon_sym___cdecl] = ACTIONS(980), + [anon_sym___clrcall] = ACTIONS(980), + [anon_sym___stdcall] = ACTIONS(980), + [anon_sym___fastcall] = ACTIONS(980), + [anon_sym___thiscall] = ACTIONS(980), + [anon_sym___vectorcall] = ACTIONS(980), + [anon_sym_LBRACE] = ACTIONS(982), + [anon_sym_static] = ACTIONS(980), + [anon_sym_auto] = ACTIONS(980), + [anon_sym_register] = ACTIONS(980), + [anon_sym_inline] = ACTIONS(980), + [anon_sym_const] = ACTIONS(980), + [anon_sym_volatile] = ACTIONS(980), + [anon_sym_restrict] = ACTIONS(980), + [anon_sym__Atomic] = ACTIONS(980), + [anon_sym_signed] = ACTIONS(980), + [anon_sym_unsigned] = ACTIONS(980), + [anon_sym_long] = ACTIONS(980), + [anon_sym_short] = ACTIONS(980), + [sym_primitive_type] = ACTIONS(980), + [anon_sym_enum] = ACTIONS(980), + [anon_sym_struct] = ACTIONS(980), + [anon_sym_union] = ACTIONS(980), + [anon_sym_if] = ACTIONS(980), + [anon_sym_else] = ACTIONS(980), + [anon_sym_switch] = ACTIONS(980), + [anon_sym_case] = ACTIONS(980), + [anon_sym_default] = ACTIONS(980), + [anon_sym_while] = ACTIONS(980), + [anon_sym_do] = ACTIONS(980), + [anon_sym_for] = ACTIONS(980), + [anon_sym_return] = ACTIONS(980), + [anon_sym_break] = ACTIONS(980), + [anon_sym_continue] = ACTIONS(980), + [anon_sym_goto] = ACTIONS(980), + [anon_sym_DASH_DASH] = ACTIONS(982), + [anon_sym_PLUS_PLUS] = ACTIONS(982), + [anon_sym_sizeof] = ACTIONS(980), + [sym_number_literal] = ACTIONS(982), + [anon_sym_L_SQUOTE] = ACTIONS(982), + [anon_sym_u_SQUOTE] = ACTIONS(982), + [anon_sym_U_SQUOTE] = ACTIONS(982), + [anon_sym_u8_SQUOTE] = ACTIONS(982), + [anon_sym_SQUOTE] = ACTIONS(982), + [anon_sym_L_DQUOTE] = ACTIONS(982), + [anon_sym_u_DQUOTE] = ACTIONS(982), + [anon_sym_U_DQUOTE] = ACTIONS(982), + [anon_sym_u8_DQUOTE] = ACTIONS(982), + [anon_sym_DQUOTE] = ACTIONS(982), + [sym_true] = ACTIONS(980), + [sym_false] = ACTIONS(980), + [sym_null] = ACTIONS(980), + [sym_comment] = ACTIONS(3), + }, + [93] = { + [sym_identifier] = ACTIONS(984), + [aux_sym_preproc_include_token1] = ACTIONS(984), + [aux_sym_preproc_def_token1] = ACTIONS(984), + [aux_sym_preproc_if_token1] = ACTIONS(984), + [aux_sym_preproc_if_token2] = ACTIONS(984), + [aux_sym_preproc_ifdef_token1] = ACTIONS(984), + [aux_sym_preproc_ifdef_token2] = ACTIONS(984), + [aux_sym_preproc_else_token1] = ACTIONS(984), + [aux_sym_preproc_elif_token1] = ACTIONS(984), + [sym_preproc_directive] = ACTIONS(984), + [anon_sym_LPAREN2] = ACTIONS(986), + [anon_sym_BANG] = ACTIONS(986), + [anon_sym_TILDE] = ACTIONS(986), + [anon_sym_DASH] = ACTIONS(984), + [anon_sym_PLUS] = ACTIONS(984), + [anon_sym_STAR] = ACTIONS(986), + [anon_sym_AMP] = ACTIONS(986), + [anon_sym_SEMI] = ACTIONS(986), + [anon_sym_typedef] = ACTIONS(984), + [anon_sym_extern] = ACTIONS(984), + [anon_sym___attribute__] = ACTIONS(984), + [anon_sym_LBRACK_LBRACK] = ACTIONS(986), + [anon_sym___declspec] = ACTIONS(984), + [anon_sym___cdecl] = ACTIONS(984), + [anon_sym___clrcall] = ACTIONS(984), + [anon_sym___stdcall] = ACTIONS(984), + [anon_sym___fastcall] = ACTIONS(984), + [anon_sym___thiscall] = ACTIONS(984), + [anon_sym___vectorcall] = ACTIONS(984), + [anon_sym_LBRACE] = ACTIONS(986), + [anon_sym_static] = ACTIONS(984), + [anon_sym_auto] = ACTIONS(984), + [anon_sym_register] = ACTIONS(984), + [anon_sym_inline] = ACTIONS(984), + [anon_sym_const] = ACTIONS(984), + [anon_sym_volatile] = ACTIONS(984), + [anon_sym_restrict] = ACTIONS(984), + [anon_sym__Atomic] = ACTIONS(984), + [anon_sym_signed] = ACTIONS(984), + [anon_sym_unsigned] = ACTIONS(984), + [anon_sym_long] = ACTIONS(984), + [anon_sym_short] = ACTIONS(984), + [sym_primitive_type] = ACTIONS(984), + [anon_sym_enum] = ACTIONS(984), + [anon_sym_struct] = ACTIONS(984), + [anon_sym_union] = ACTIONS(984), + [anon_sym_if] = ACTIONS(984), + [anon_sym_else] = ACTIONS(984), + [anon_sym_switch] = ACTIONS(984), + [anon_sym_case] = ACTIONS(984), + [anon_sym_default] = ACTIONS(984), + [anon_sym_while] = ACTIONS(984), + [anon_sym_do] = ACTIONS(984), + [anon_sym_for] = ACTIONS(984), + [anon_sym_return] = ACTIONS(984), + [anon_sym_break] = ACTIONS(984), + [anon_sym_continue] = ACTIONS(984), + [anon_sym_goto] = ACTIONS(984), + [anon_sym_DASH_DASH] = ACTIONS(986), + [anon_sym_PLUS_PLUS] = ACTIONS(986), + [anon_sym_sizeof] = ACTIONS(984), + [sym_number_literal] = ACTIONS(986), + [anon_sym_L_SQUOTE] = ACTIONS(986), + [anon_sym_u_SQUOTE] = ACTIONS(986), + [anon_sym_U_SQUOTE] = ACTIONS(986), + [anon_sym_u8_SQUOTE] = ACTIONS(986), + [anon_sym_SQUOTE] = ACTIONS(986), + [anon_sym_L_DQUOTE] = ACTIONS(986), + [anon_sym_u_DQUOTE] = ACTIONS(986), + [anon_sym_U_DQUOTE] = ACTIONS(986), + [anon_sym_u8_DQUOTE] = ACTIONS(986), + [anon_sym_DQUOTE] = ACTIONS(986), + [sym_true] = ACTIONS(984), + [sym_false] = ACTIONS(984), + [sym_null] = ACTIONS(984), + [sym_comment] = ACTIONS(3), + }, + [94] = { + [sym_identifier] = ACTIONS(988), + [aux_sym_preproc_include_token1] = ACTIONS(988), + [aux_sym_preproc_def_token1] = ACTIONS(988), + [aux_sym_preproc_if_token1] = ACTIONS(988), + [aux_sym_preproc_if_token2] = ACTIONS(988), + [aux_sym_preproc_ifdef_token1] = ACTIONS(988), + [aux_sym_preproc_ifdef_token2] = ACTIONS(988), + [aux_sym_preproc_else_token1] = ACTIONS(988), + [aux_sym_preproc_elif_token1] = ACTIONS(988), + [sym_preproc_directive] = ACTIONS(988), + [anon_sym_LPAREN2] = ACTIONS(990), + [anon_sym_BANG] = ACTIONS(990), + [anon_sym_TILDE] = ACTIONS(990), + [anon_sym_DASH] = ACTIONS(988), + [anon_sym_PLUS] = ACTIONS(988), + [anon_sym_STAR] = ACTIONS(990), + [anon_sym_AMP] = ACTIONS(990), + [anon_sym_SEMI] = ACTIONS(990), + [anon_sym_typedef] = ACTIONS(988), + [anon_sym_extern] = ACTIONS(988), + [anon_sym___attribute__] = ACTIONS(988), + [anon_sym_LBRACK_LBRACK] = ACTIONS(990), + [anon_sym___declspec] = ACTIONS(988), + [anon_sym___cdecl] = ACTIONS(988), + [anon_sym___clrcall] = ACTIONS(988), + [anon_sym___stdcall] = ACTIONS(988), + [anon_sym___fastcall] = ACTIONS(988), + [anon_sym___thiscall] = ACTIONS(988), + [anon_sym___vectorcall] = ACTIONS(988), + [anon_sym_LBRACE] = ACTIONS(990), + [anon_sym_static] = ACTIONS(988), + [anon_sym_auto] = ACTIONS(988), + [anon_sym_register] = ACTIONS(988), + [anon_sym_inline] = ACTIONS(988), + [anon_sym_const] = ACTIONS(988), + [anon_sym_volatile] = ACTIONS(988), + [anon_sym_restrict] = ACTIONS(988), + [anon_sym__Atomic] = ACTIONS(988), + [anon_sym_signed] = ACTIONS(988), + [anon_sym_unsigned] = ACTIONS(988), + [anon_sym_long] = ACTIONS(988), + [anon_sym_short] = ACTIONS(988), + [sym_primitive_type] = ACTIONS(988), + [anon_sym_enum] = ACTIONS(988), + [anon_sym_struct] = ACTIONS(988), + [anon_sym_union] = ACTIONS(988), + [anon_sym_if] = ACTIONS(988), + [anon_sym_else] = ACTIONS(988), + [anon_sym_switch] = ACTIONS(988), + [anon_sym_case] = ACTIONS(988), + [anon_sym_default] = ACTIONS(988), + [anon_sym_while] = ACTIONS(988), + [anon_sym_do] = ACTIONS(988), + [anon_sym_for] = ACTIONS(988), + [anon_sym_return] = ACTIONS(988), + [anon_sym_break] = ACTIONS(988), + [anon_sym_continue] = ACTIONS(988), + [anon_sym_goto] = ACTIONS(988), + [anon_sym_DASH_DASH] = ACTIONS(990), + [anon_sym_PLUS_PLUS] = ACTIONS(990), + [anon_sym_sizeof] = ACTIONS(988), + [sym_number_literal] = ACTIONS(990), + [anon_sym_L_SQUOTE] = ACTIONS(990), + [anon_sym_u_SQUOTE] = ACTIONS(990), + [anon_sym_U_SQUOTE] = ACTIONS(990), + [anon_sym_u8_SQUOTE] = ACTIONS(990), + [anon_sym_SQUOTE] = ACTIONS(990), + [anon_sym_L_DQUOTE] = ACTIONS(990), + [anon_sym_u_DQUOTE] = ACTIONS(990), + [anon_sym_U_DQUOTE] = ACTIONS(990), + [anon_sym_u8_DQUOTE] = ACTIONS(990), + [anon_sym_DQUOTE] = ACTIONS(990), + [sym_true] = ACTIONS(988), + [sym_false] = ACTIONS(988), + [sym_null] = ACTIONS(988), + [sym_comment] = ACTIONS(3), + }, + [95] = { + [sym_identifier] = ACTIONS(992), + [aux_sym_preproc_include_token1] = ACTIONS(992), + [aux_sym_preproc_def_token1] = ACTIONS(992), + [aux_sym_preproc_if_token1] = ACTIONS(992), + [aux_sym_preproc_if_token2] = ACTIONS(992), + [aux_sym_preproc_ifdef_token1] = ACTIONS(992), + [aux_sym_preproc_ifdef_token2] = ACTIONS(992), + [aux_sym_preproc_else_token1] = ACTIONS(992), + [aux_sym_preproc_elif_token1] = ACTIONS(992), + [sym_preproc_directive] = ACTIONS(992), + [anon_sym_LPAREN2] = ACTIONS(994), + [anon_sym_BANG] = ACTIONS(994), + [anon_sym_TILDE] = ACTIONS(994), + [anon_sym_DASH] = ACTIONS(992), + [anon_sym_PLUS] = ACTIONS(992), + [anon_sym_STAR] = ACTIONS(994), + [anon_sym_AMP] = ACTIONS(994), + [anon_sym_SEMI] = ACTIONS(994), + [anon_sym_typedef] = ACTIONS(992), + [anon_sym_extern] = ACTIONS(992), + [anon_sym___attribute__] = ACTIONS(992), + [anon_sym_LBRACK_LBRACK] = ACTIONS(994), + [anon_sym___declspec] = ACTIONS(992), + [anon_sym___cdecl] = ACTIONS(992), + [anon_sym___clrcall] = ACTIONS(992), + [anon_sym___stdcall] = ACTIONS(992), + [anon_sym___fastcall] = ACTIONS(992), + [anon_sym___thiscall] = ACTIONS(992), + [anon_sym___vectorcall] = ACTIONS(992), + [anon_sym_LBRACE] = ACTIONS(994), + [anon_sym_static] = ACTIONS(992), + [anon_sym_auto] = ACTIONS(992), + [anon_sym_register] = ACTIONS(992), + [anon_sym_inline] = ACTIONS(992), + [anon_sym_const] = ACTIONS(992), + [anon_sym_volatile] = ACTIONS(992), + [anon_sym_restrict] = ACTIONS(992), + [anon_sym__Atomic] = ACTIONS(992), + [anon_sym_signed] = ACTIONS(992), + [anon_sym_unsigned] = ACTIONS(992), + [anon_sym_long] = ACTIONS(992), + [anon_sym_short] = ACTIONS(992), + [sym_primitive_type] = ACTIONS(992), + [anon_sym_enum] = ACTIONS(992), + [anon_sym_struct] = ACTIONS(992), + [anon_sym_union] = ACTIONS(992), + [anon_sym_if] = ACTIONS(992), + [anon_sym_else] = ACTIONS(992), + [anon_sym_switch] = ACTIONS(992), + [anon_sym_case] = ACTIONS(992), + [anon_sym_default] = ACTIONS(992), + [anon_sym_while] = ACTIONS(992), + [anon_sym_do] = ACTIONS(992), + [anon_sym_for] = ACTIONS(992), + [anon_sym_return] = ACTIONS(992), + [anon_sym_break] = ACTIONS(992), + [anon_sym_continue] = ACTIONS(992), + [anon_sym_goto] = ACTIONS(992), + [anon_sym_DASH_DASH] = ACTIONS(994), + [anon_sym_PLUS_PLUS] = ACTIONS(994), + [anon_sym_sizeof] = ACTIONS(992), + [sym_number_literal] = ACTIONS(994), + [anon_sym_L_SQUOTE] = ACTIONS(994), + [anon_sym_u_SQUOTE] = ACTIONS(994), + [anon_sym_U_SQUOTE] = ACTIONS(994), + [anon_sym_u8_SQUOTE] = ACTIONS(994), + [anon_sym_SQUOTE] = ACTIONS(994), + [anon_sym_L_DQUOTE] = ACTIONS(994), + [anon_sym_u_DQUOTE] = ACTIONS(994), + [anon_sym_U_DQUOTE] = ACTIONS(994), + [anon_sym_u8_DQUOTE] = ACTIONS(994), + [anon_sym_DQUOTE] = ACTIONS(994), + [sym_true] = ACTIONS(992), + [sym_false] = ACTIONS(992), + [sym_null] = ACTIONS(992), + [sym_comment] = ACTIONS(3), + }, + [96] = { + [sym_identifier] = ACTIONS(996), + [aux_sym_preproc_include_token1] = ACTIONS(996), + [aux_sym_preproc_def_token1] = ACTIONS(996), + [aux_sym_preproc_if_token1] = ACTIONS(996), + [aux_sym_preproc_if_token2] = ACTIONS(996), + [aux_sym_preproc_ifdef_token1] = ACTIONS(996), + [aux_sym_preproc_ifdef_token2] = ACTIONS(996), + [aux_sym_preproc_else_token1] = ACTIONS(996), + [aux_sym_preproc_elif_token1] = ACTIONS(996), + [sym_preproc_directive] = ACTIONS(996), + [anon_sym_LPAREN2] = ACTIONS(998), + [anon_sym_BANG] = ACTIONS(998), + [anon_sym_TILDE] = ACTIONS(998), + [anon_sym_DASH] = ACTIONS(996), + [anon_sym_PLUS] = ACTIONS(996), + [anon_sym_STAR] = ACTIONS(998), + [anon_sym_AMP] = ACTIONS(998), + [anon_sym_SEMI] = ACTIONS(998), + [anon_sym_typedef] = ACTIONS(996), + [anon_sym_extern] = ACTIONS(996), + [anon_sym___attribute__] = ACTIONS(996), + [anon_sym_LBRACK_LBRACK] = ACTIONS(998), + [anon_sym___declspec] = ACTIONS(996), + [anon_sym___cdecl] = ACTIONS(996), + [anon_sym___clrcall] = ACTIONS(996), + [anon_sym___stdcall] = ACTIONS(996), + [anon_sym___fastcall] = ACTIONS(996), + [anon_sym___thiscall] = ACTIONS(996), + [anon_sym___vectorcall] = ACTIONS(996), + [anon_sym_LBRACE] = ACTIONS(998), + [anon_sym_static] = ACTIONS(996), + [anon_sym_auto] = ACTIONS(996), + [anon_sym_register] = ACTIONS(996), + [anon_sym_inline] = ACTIONS(996), + [anon_sym_const] = ACTIONS(996), + [anon_sym_volatile] = ACTIONS(996), + [anon_sym_restrict] = ACTIONS(996), + [anon_sym__Atomic] = ACTIONS(996), + [anon_sym_signed] = ACTIONS(996), + [anon_sym_unsigned] = ACTIONS(996), + [anon_sym_long] = ACTIONS(996), + [anon_sym_short] = ACTIONS(996), + [sym_primitive_type] = ACTIONS(996), + [anon_sym_enum] = ACTIONS(996), + [anon_sym_struct] = ACTIONS(996), + [anon_sym_union] = ACTIONS(996), + [anon_sym_if] = ACTIONS(996), + [anon_sym_else] = ACTIONS(996), + [anon_sym_switch] = ACTIONS(996), + [anon_sym_case] = ACTIONS(996), + [anon_sym_default] = ACTIONS(996), + [anon_sym_while] = ACTIONS(996), + [anon_sym_do] = ACTIONS(996), + [anon_sym_for] = ACTIONS(996), + [anon_sym_return] = ACTIONS(996), + [anon_sym_break] = ACTIONS(996), + [anon_sym_continue] = ACTIONS(996), + [anon_sym_goto] = ACTIONS(996), + [anon_sym_DASH_DASH] = ACTIONS(998), + [anon_sym_PLUS_PLUS] = ACTIONS(998), + [anon_sym_sizeof] = ACTIONS(996), + [sym_number_literal] = ACTIONS(998), + [anon_sym_L_SQUOTE] = ACTIONS(998), + [anon_sym_u_SQUOTE] = ACTIONS(998), + [anon_sym_U_SQUOTE] = ACTIONS(998), + [anon_sym_u8_SQUOTE] = ACTIONS(998), + [anon_sym_SQUOTE] = ACTIONS(998), + [anon_sym_L_DQUOTE] = ACTIONS(998), + [anon_sym_u_DQUOTE] = ACTIONS(998), + [anon_sym_U_DQUOTE] = ACTIONS(998), + [anon_sym_u8_DQUOTE] = ACTIONS(998), + [anon_sym_DQUOTE] = ACTIONS(998), + [sym_true] = ACTIONS(996), + [sym_false] = ACTIONS(996), + [sym_null] = ACTIONS(996), + [sym_comment] = ACTIONS(3), + }, + [97] = { + [sym_identifier] = ACTIONS(1000), + [aux_sym_preproc_include_token1] = ACTIONS(1000), + [aux_sym_preproc_def_token1] = ACTIONS(1000), + [aux_sym_preproc_if_token1] = ACTIONS(1000), + [aux_sym_preproc_if_token2] = ACTIONS(1000), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1000), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1000), + [aux_sym_preproc_else_token1] = ACTIONS(1000), + [aux_sym_preproc_elif_token1] = ACTIONS(1000), + [sym_preproc_directive] = ACTIONS(1000), + [anon_sym_LPAREN2] = ACTIONS(1002), + [anon_sym_BANG] = ACTIONS(1002), + [anon_sym_TILDE] = ACTIONS(1002), + [anon_sym_DASH] = ACTIONS(1000), + [anon_sym_PLUS] = ACTIONS(1000), + [anon_sym_STAR] = ACTIONS(1002), + [anon_sym_AMP] = ACTIONS(1002), + [anon_sym_SEMI] = ACTIONS(1002), + [anon_sym_typedef] = ACTIONS(1000), + [anon_sym_extern] = ACTIONS(1000), + [anon_sym___attribute__] = ACTIONS(1000), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1002), + [anon_sym___declspec] = ACTIONS(1000), + [anon_sym___cdecl] = ACTIONS(1000), + [anon_sym___clrcall] = ACTIONS(1000), + [anon_sym___stdcall] = ACTIONS(1000), + [anon_sym___fastcall] = ACTIONS(1000), + [anon_sym___thiscall] = ACTIONS(1000), + [anon_sym___vectorcall] = ACTIONS(1000), + [anon_sym_LBRACE] = ACTIONS(1002), + [anon_sym_static] = ACTIONS(1000), + [anon_sym_auto] = ACTIONS(1000), + [anon_sym_register] = ACTIONS(1000), + [anon_sym_inline] = ACTIONS(1000), + [anon_sym_const] = ACTIONS(1000), + [anon_sym_volatile] = ACTIONS(1000), + [anon_sym_restrict] = ACTIONS(1000), + [anon_sym__Atomic] = ACTIONS(1000), + [anon_sym_signed] = ACTIONS(1000), + [anon_sym_unsigned] = ACTIONS(1000), + [anon_sym_long] = ACTIONS(1000), + [anon_sym_short] = ACTIONS(1000), + [sym_primitive_type] = ACTIONS(1000), + [anon_sym_enum] = ACTIONS(1000), + [anon_sym_struct] = ACTIONS(1000), + [anon_sym_union] = ACTIONS(1000), + [anon_sym_if] = ACTIONS(1000), + [anon_sym_else] = ACTIONS(1000), + [anon_sym_switch] = ACTIONS(1000), + [anon_sym_case] = ACTIONS(1000), + [anon_sym_default] = ACTIONS(1000), + [anon_sym_while] = ACTIONS(1000), + [anon_sym_do] = ACTIONS(1000), + [anon_sym_for] = ACTIONS(1000), + [anon_sym_return] = ACTIONS(1000), + [anon_sym_break] = ACTIONS(1000), + [anon_sym_continue] = ACTIONS(1000), + [anon_sym_goto] = ACTIONS(1000), + [anon_sym_DASH_DASH] = ACTIONS(1002), + [anon_sym_PLUS_PLUS] = ACTIONS(1002), + [anon_sym_sizeof] = ACTIONS(1000), + [sym_number_literal] = ACTIONS(1002), + [anon_sym_L_SQUOTE] = ACTIONS(1002), + [anon_sym_u_SQUOTE] = ACTIONS(1002), + [anon_sym_U_SQUOTE] = ACTIONS(1002), + [anon_sym_u8_SQUOTE] = ACTIONS(1002), + [anon_sym_SQUOTE] = ACTIONS(1002), + [anon_sym_L_DQUOTE] = ACTIONS(1002), + [anon_sym_u_DQUOTE] = ACTIONS(1002), + [anon_sym_U_DQUOTE] = ACTIONS(1002), + [anon_sym_u8_DQUOTE] = ACTIONS(1002), + [anon_sym_DQUOTE] = ACTIONS(1002), + [sym_true] = ACTIONS(1000), + [sym_false] = ACTIONS(1000), + [sym_null] = ACTIONS(1000), + [sym_comment] = ACTIONS(3), + }, + [98] = { + [sym_identifier] = ACTIONS(1004), + [aux_sym_preproc_include_token1] = ACTIONS(1004), + [aux_sym_preproc_def_token1] = ACTIONS(1004), + [aux_sym_preproc_if_token1] = ACTIONS(1004), + [aux_sym_preproc_if_token2] = ACTIONS(1004), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1004), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1004), + [aux_sym_preproc_else_token1] = ACTIONS(1004), + [aux_sym_preproc_elif_token1] = ACTIONS(1004), + [sym_preproc_directive] = ACTIONS(1004), + [anon_sym_LPAREN2] = ACTIONS(1006), + [anon_sym_BANG] = ACTIONS(1006), + [anon_sym_TILDE] = ACTIONS(1006), + [anon_sym_DASH] = ACTIONS(1004), + [anon_sym_PLUS] = ACTIONS(1004), + [anon_sym_STAR] = ACTIONS(1006), + [anon_sym_AMP] = ACTIONS(1006), + [anon_sym_SEMI] = ACTIONS(1006), + [anon_sym_typedef] = ACTIONS(1004), + [anon_sym_extern] = ACTIONS(1004), + [anon_sym___attribute__] = ACTIONS(1004), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1006), + [anon_sym___declspec] = ACTIONS(1004), + [anon_sym___cdecl] = ACTIONS(1004), + [anon_sym___clrcall] = ACTIONS(1004), + [anon_sym___stdcall] = ACTIONS(1004), + [anon_sym___fastcall] = ACTIONS(1004), + [anon_sym___thiscall] = ACTIONS(1004), + [anon_sym___vectorcall] = ACTIONS(1004), + [anon_sym_LBRACE] = ACTIONS(1006), + [anon_sym_static] = ACTIONS(1004), + [anon_sym_auto] = ACTIONS(1004), + [anon_sym_register] = ACTIONS(1004), + [anon_sym_inline] = ACTIONS(1004), + [anon_sym_const] = ACTIONS(1004), + [anon_sym_volatile] = ACTIONS(1004), + [anon_sym_restrict] = ACTIONS(1004), + [anon_sym__Atomic] = ACTIONS(1004), + [anon_sym_signed] = ACTIONS(1004), + [anon_sym_unsigned] = ACTIONS(1004), + [anon_sym_long] = ACTIONS(1004), + [anon_sym_short] = ACTIONS(1004), + [sym_primitive_type] = ACTIONS(1004), + [anon_sym_enum] = ACTIONS(1004), + [anon_sym_struct] = ACTIONS(1004), + [anon_sym_union] = ACTIONS(1004), + [anon_sym_if] = ACTIONS(1004), + [anon_sym_else] = ACTIONS(1004), + [anon_sym_switch] = ACTIONS(1004), + [anon_sym_case] = ACTIONS(1004), + [anon_sym_default] = ACTIONS(1004), + [anon_sym_while] = ACTIONS(1004), + [anon_sym_do] = ACTIONS(1004), + [anon_sym_for] = ACTIONS(1004), + [anon_sym_return] = ACTIONS(1004), + [anon_sym_break] = ACTIONS(1004), + [anon_sym_continue] = ACTIONS(1004), + [anon_sym_goto] = ACTIONS(1004), + [anon_sym_DASH_DASH] = ACTIONS(1006), + [anon_sym_PLUS_PLUS] = ACTIONS(1006), + [anon_sym_sizeof] = ACTIONS(1004), + [sym_number_literal] = ACTIONS(1006), + [anon_sym_L_SQUOTE] = ACTIONS(1006), + [anon_sym_u_SQUOTE] = ACTIONS(1006), + [anon_sym_U_SQUOTE] = ACTIONS(1006), + [anon_sym_u8_SQUOTE] = ACTIONS(1006), + [anon_sym_SQUOTE] = ACTIONS(1006), + [anon_sym_L_DQUOTE] = ACTIONS(1006), + [anon_sym_u_DQUOTE] = ACTIONS(1006), + [anon_sym_U_DQUOTE] = ACTIONS(1006), + [anon_sym_u8_DQUOTE] = ACTIONS(1006), + [anon_sym_DQUOTE] = ACTIONS(1006), + [sym_true] = ACTIONS(1004), + [sym_false] = ACTIONS(1004), + [sym_null] = ACTIONS(1004), + [sym_comment] = ACTIONS(3), + }, + [99] = { + [sym_identifier] = ACTIONS(1008), + [aux_sym_preproc_include_token1] = ACTIONS(1008), + [aux_sym_preproc_def_token1] = ACTIONS(1008), + [aux_sym_preproc_if_token1] = ACTIONS(1008), + [aux_sym_preproc_if_token2] = ACTIONS(1008), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1008), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1008), + [aux_sym_preproc_else_token1] = ACTIONS(1008), + [aux_sym_preproc_elif_token1] = ACTIONS(1008), + [sym_preproc_directive] = ACTIONS(1008), + [anon_sym_LPAREN2] = ACTIONS(1010), + [anon_sym_BANG] = ACTIONS(1010), + [anon_sym_TILDE] = ACTIONS(1010), + [anon_sym_DASH] = ACTIONS(1008), + [anon_sym_PLUS] = ACTIONS(1008), + [anon_sym_STAR] = ACTIONS(1010), + [anon_sym_AMP] = ACTIONS(1010), + [anon_sym_SEMI] = ACTIONS(1010), + [anon_sym_typedef] = ACTIONS(1008), + [anon_sym_extern] = ACTIONS(1008), + [anon_sym___attribute__] = ACTIONS(1008), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1010), + [anon_sym___declspec] = ACTIONS(1008), + [anon_sym___cdecl] = ACTIONS(1008), + [anon_sym___clrcall] = ACTIONS(1008), + [anon_sym___stdcall] = ACTIONS(1008), + [anon_sym___fastcall] = ACTIONS(1008), + [anon_sym___thiscall] = ACTIONS(1008), + [anon_sym___vectorcall] = ACTIONS(1008), + [anon_sym_LBRACE] = ACTIONS(1010), + [anon_sym_static] = ACTIONS(1008), + [anon_sym_auto] = ACTIONS(1008), + [anon_sym_register] = ACTIONS(1008), + [anon_sym_inline] = ACTIONS(1008), + [anon_sym_const] = ACTIONS(1008), + [anon_sym_volatile] = ACTIONS(1008), + [anon_sym_restrict] = ACTIONS(1008), + [anon_sym__Atomic] = ACTIONS(1008), + [anon_sym_signed] = ACTIONS(1008), + [anon_sym_unsigned] = ACTIONS(1008), + [anon_sym_long] = ACTIONS(1008), + [anon_sym_short] = ACTIONS(1008), + [sym_primitive_type] = ACTIONS(1008), + [anon_sym_enum] = ACTIONS(1008), + [anon_sym_struct] = ACTIONS(1008), + [anon_sym_union] = ACTIONS(1008), + [anon_sym_if] = ACTIONS(1008), + [anon_sym_else] = ACTIONS(1008), + [anon_sym_switch] = ACTIONS(1008), + [anon_sym_case] = ACTIONS(1008), + [anon_sym_default] = ACTIONS(1008), + [anon_sym_while] = ACTIONS(1008), + [anon_sym_do] = ACTIONS(1008), + [anon_sym_for] = ACTIONS(1008), + [anon_sym_return] = ACTIONS(1008), + [anon_sym_break] = ACTIONS(1008), + [anon_sym_continue] = ACTIONS(1008), + [anon_sym_goto] = ACTIONS(1008), + [anon_sym_DASH_DASH] = ACTIONS(1010), + [anon_sym_PLUS_PLUS] = ACTIONS(1010), + [anon_sym_sizeof] = ACTIONS(1008), + [sym_number_literal] = ACTIONS(1010), + [anon_sym_L_SQUOTE] = ACTIONS(1010), + [anon_sym_u_SQUOTE] = ACTIONS(1010), + [anon_sym_U_SQUOTE] = ACTIONS(1010), + [anon_sym_u8_SQUOTE] = ACTIONS(1010), + [anon_sym_SQUOTE] = ACTIONS(1010), + [anon_sym_L_DQUOTE] = ACTIONS(1010), + [anon_sym_u_DQUOTE] = ACTIONS(1010), + [anon_sym_U_DQUOTE] = ACTIONS(1010), + [anon_sym_u8_DQUOTE] = ACTIONS(1010), + [anon_sym_DQUOTE] = ACTIONS(1010), + [sym_true] = ACTIONS(1008), + [sym_false] = ACTIONS(1008), + [sym_null] = ACTIONS(1008), + [sym_comment] = ACTIONS(3), + }, + [100] = { + [sym_identifier] = ACTIONS(1012), + [aux_sym_preproc_include_token1] = ACTIONS(1012), + [aux_sym_preproc_def_token1] = ACTIONS(1012), + [aux_sym_preproc_if_token1] = ACTIONS(1012), + [aux_sym_preproc_if_token2] = ACTIONS(1012), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1012), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1012), + [aux_sym_preproc_else_token1] = ACTIONS(1012), + [aux_sym_preproc_elif_token1] = ACTIONS(1012), + [sym_preproc_directive] = ACTIONS(1012), + [anon_sym_LPAREN2] = ACTIONS(1014), + [anon_sym_BANG] = ACTIONS(1014), + [anon_sym_TILDE] = ACTIONS(1014), + [anon_sym_DASH] = ACTIONS(1012), + [anon_sym_PLUS] = ACTIONS(1012), + [anon_sym_STAR] = ACTIONS(1014), + [anon_sym_AMP] = ACTIONS(1014), + [anon_sym_SEMI] = ACTIONS(1014), + [anon_sym_typedef] = ACTIONS(1012), + [anon_sym_extern] = ACTIONS(1012), + [anon_sym___attribute__] = ACTIONS(1012), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1014), + [anon_sym___declspec] = ACTIONS(1012), + [anon_sym___cdecl] = ACTIONS(1012), + [anon_sym___clrcall] = ACTIONS(1012), + [anon_sym___stdcall] = ACTIONS(1012), + [anon_sym___fastcall] = ACTIONS(1012), + [anon_sym___thiscall] = ACTIONS(1012), + [anon_sym___vectorcall] = ACTIONS(1012), + [anon_sym_LBRACE] = ACTIONS(1014), + [anon_sym_static] = ACTIONS(1012), + [anon_sym_auto] = ACTIONS(1012), + [anon_sym_register] = ACTIONS(1012), + [anon_sym_inline] = ACTIONS(1012), + [anon_sym_const] = ACTIONS(1012), + [anon_sym_volatile] = ACTIONS(1012), + [anon_sym_restrict] = ACTIONS(1012), + [anon_sym__Atomic] = ACTIONS(1012), + [anon_sym_signed] = ACTIONS(1012), + [anon_sym_unsigned] = ACTIONS(1012), + [anon_sym_long] = ACTIONS(1012), + [anon_sym_short] = ACTIONS(1012), + [sym_primitive_type] = ACTIONS(1012), + [anon_sym_enum] = ACTIONS(1012), + [anon_sym_struct] = ACTIONS(1012), + [anon_sym_union] = ACTIONS(1012), + [anon_sym_if] = ACTIONS(1012), + [anon_sym_else] = ACTIONS(1012), + [anon_sym_switch] = ACTIONS(1012), + [anon_sym_case] = ACTIONS(1012), + [anon_sym_default] = ACTIONS(1012), + [anon_sym_while] = ACTIONS(1012), + [anon_sym_do] = ACTIONS(1012), + [anon_sym_for] = ACTIONS(1012), + [anon_sym_return] = ACTIONS(1012), + [anon_sym_break] = ACTIONS(1012), + [anon_sym_continue] = ACTIONS(1012), + [anon_sym_goto] = ACTIONS(1012), + [anon_sym_DASH_DASH] = ACTIONS(1014), + [anon_sym_PLUS_PLUS] = ACTIONS(1014), + [anon_sym_sizeof] = ACTIONS(1012), + [sym_number_literal] = ACTIONS(1014), + [anon_sym_L_SQUOTE] = ACTIONS(1014), + [anon_sym_u_SQUOTE] = ACTIONS(1014), + [anon_sym_U_SQUOTE] = ACTIONS(1014), + [anon_sym_u8_SQUOTE] = ACTIONS(1014), + [anon_sym_SQUOTE] = ACTIONS(1014), + [anon_sym_L_DQUOTE] = ACTIONS(1014), + [anon_sym_u_DQUOTE] = ACTIONS(1014), + [anon_sym_U_DQUOTE] = ACTIONS(1014), + [anon_sym_u8_DQUOTE] = ACTIONS(1014), + [anon_sym_DQUOTE] = ACTIONS(1014), + [sym_true] = ACTIONS(1012), + [sym_false] = ACTIONS(1012), + [sym_null] = ACTIONS(1012), + [sym_comment] = ACTIONS(3), + }, + [101] = { + [sym_identifier] = ACTIONS(1016), + [aux_sym_preproc_include_token1] = ACTIONS(1016), + [aux_sym_preproc_def_token1] = ACTIONS(1016), + [aux_sym_preproc_if_token1] = ACTIONS(1016), + [aux_sym_preproc_if_token2] = ACTIONS(1016), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1016), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1016), + [aux_sym_preproc_else_token1] = ACTIONS(1016), + [aux_sym_preproc_elif_token1] = ACTIONS(1016), + [sym_preproc_directive] = ACTIONS(1016), + [anon_sym_LPAREN2] = ACTIONS(1018), + [anon_sym_BANG] = ACTIONS(1018), + [anon_sym_TILDE] = ACTIONS(1018), + [anon_sym_DASH] = ACTIONS(1016), + [anon_sym_PLUS] = ACTIONS(1016), + [anon_sym_STAR] = ACTIONS(1018), + [anon_sym_AMP] = ACTIONS(1018), + [anon_sym_SEMI] = ACTIONS(1018), + [anon_sym_typedef] = ACTIONS(1016), + [anon_sym_extern] = ACTIONS(1016), + [anon_sym___attribute__] = ACTIONS(1016), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1018), + [anon_sym___declspec] = ACTIONS(1016), + [anon_sym___cdecl] = ACTIONS(1016), + [anon_sym___clrcall] = ACTIONS(1016), + [anon_sym___stdcall] = ACTIONS(1016), + [anon_sym___fastcall] = ACTIONS(1016), + [anon_sym___thiscall] = ACTIONS(1016), + [anon_sym___vectorcall] = ACTIONS(1016), + [anon_sym_LBRACE] = ACTIONS(1018), + [anon_sym_static] = ACTIONS(1016), + [anon_sym_auto] = ACTIONS(1016), + [anon_sym_register] = ACTIONS(1016), + [anon_sym_inline] = ACTIONS(1016), + [anon_sym_const] = ACTIONS(1016), + [anon_sym_volatile] = ACTIONS(1016), + [anon_sym_restrict] = ACTIONS(1016), + [anon_sym__Atomic] = ACTIONS(1016), + [anon_sym_signed] = ACTIONS(1016), + [anon_sym_unsigned] = ACTIONS(1016), + [anon_sym_long] = ACTIONS(1016), + [anon_sym_short] = ACTIONS(1016), + [sym_primitive_type] = ACTIONS(1016), + [anon_sym_enum] = ACTIONS(1016), + [anon_sym_struct] = ACTIONS(1016), + [anon_sym_union] = ACTIONS(1016), + [anon_sym_if] = ACTIONS(1016), + [anon_sym_else] = ACTIONS(1016), + [anon_sym_switch] = ACTIONS(1016), + [anon_sym_case] = ACTIONS(1016), + [anon_sym_default] = ACTIONS(1016), + [anon_sym_while] = ACTIONS(1016), + [anon_sym_do] = ACTIONS(1016), + [anon_sym_for] = ACTIONS(1016), + [anon_sym_return] = ACTIONS(1016), + [anon_sym_break] = ACTIONS(1016), + [anon_sym_continue] = ACTIONS(1016), + [anon_sym_goto] = ACTIONS(1016), + [anon_sym_DASH_DASH] = ACTIONS(1018), + [anon_sym_PLUS_PLUS] = ACTIONS(1018), + [anon_sym_sizeof] = ACTIONS(1016), + [sym_number_literal] = ACTIONS(1018), + [anon_sym_L_SQUOTE] = ACTIONS(1018), + [anon_sym_u_SQUOTE] = ACTIONS(1018), + [anon_sym_U_SQUOTE] = ACTIONS(1018), + [anon_sym_u8_SQUOTE] = ACTIONS(1018), + [anon_sym_SQUOTE] = ACTIONS(1018), + [anon_sym_L_DQUOTE] = ACTIONS(1018), + [anon_sym_u_DQUOTE] = ACTIONS(1018), + [anon_sym_U_DQUOTE] = ACTIONS(1018), + [anon_sym_u8_DQUOTE] = ACTIONS(1018), + [anon_sym_DQUOTE] = ACTIONS(1018), + [sym_true] = ACTIONS(1016), + [sym_false] = ACTIONS(1016), + [sym_null] = ACTIONS(1016), + [sym_comment] = ACTIONS(3), + }, + [102] = { + [sym_identifier] = ACTIONS(1020), + [aux_sym_preproc_include_token1] = ACTIONS(1020), + [aux_sym_preproc_def_token1] = ACTIONS(1020), + [aux_sym_preproc_if_token1] = ACTIONS(1020), + [aux_sym_preproc_if_token2] = ACTIONS(1020), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1020), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1020), + [aux_sym_preproc_else_token1] = ACTIONS(1020), + [aux_sym_preproc_elif_token1] = ACTIONS(1020), + [sym_preproc_directive] = ACTIONS(1020), + [anon_sym_LPAREN2] = ACTIONS(1022), + [anon_sym_BANG] = ACTIONS(1022), + [anon_sym_TILDE] = ACTIONS(1022), + [anon_sym_DASH] = ACTIONS(1020), + [anon_sym_PLUS] = ACTIONS(1020), + [anon_sym_STAR] = ACTIONS(1022), + [anon_sym_AMP] = ACTIONS(1022), + [anon_sym_SEMI] = ACTIONS(1022), + [anon_sym_typedef] = ACTIONS(1020), + [anon_sym_extern] = ACTIONS(1020), + [anon_sym___attribute__] = ACTIONS(1020), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1022), + [anon_sym___declspec] = ACTIONS(1020), + [anon_sym___cdecl] = ACTIONS(1020), + [anon_sym___clrcall] = ACTIONS(1020), + [anon_sym___stdcall] = ACTIONS(1020), + [anon_sym___fastcall] = ACTIONS(1020), + [anon_sym___thiscall] = ACTIONS(1020), + [anon_sym___vectorcall] = ACTIONS(1020), + [anon_sym_LBRACE] = ACTIONS(1022), + [anon_sym_static] = ACTIONS(1020), + [anon_sym_auto] = ACTIONS(1020), + [anon_sym_register] = ACTIONS(1020), + [anon_sym_inline] = ACTIONS(1020), + [anon_sym_const] = ACTIONS(1020), + [anon_sym_volatile] = ACTIONS(1020), + [anon_sym_restrict] = ACTIONS(1020), + [anon_sym__Atomic] = ACTIONS(1020), + [anon_sym_signed] = ACTIONS(1020), + [anon_sym_unsigned] = ACTIONS(1020), + [anon_sym_long] = ACTIONS(1020), + [anon_sym_short] = ACTIONS(1020), + [sym_primitive_type] = ACTIONS(1020), + [anon_sym_enum] = ACTIONS(1020), + [anon_sym_struct] = ACTIONS(1020), + [anon_sym_union] = ACTIONS(1020), + [anon_sym_if] = ACTIONS(1020), + [anon_sym_else] = ACTIONS(1020), + [anon_sym_switch] = ACTIONS(1020), + [anon_sym_case] = ACTIONS(1020), + [anon_sym_default] = ACTIONS(1020), + [anon_sym_while] = ACTIONS(1020), + [anon_sym_do] = ACTIONS(1020), + [anon_sym_for] = ACTIONS(1020), + [anon_sym_return] = ACTIONS(1020), + [anon_sym_break] = ACTIONS(1020), + [anon_sym_continue] = ACTIONS(1020), + [anon_sym_goto] = ACTIONS(1020), + [anon_sym_DASH_DASH] = ACTIONS(1022), + [anon_sym_PLUS_PLUS] = ACTIONS(1022), + [anon_sym_sizeof] = ACTIONS(1020), + [sym_number_literal] = ACTIONS(1022), + [anon_sym_L_SQUOTE] = ACTIONS(1022), + [anon_sym_u_SQUOTE] = ACTIONS(1022), + [anon_sym_U_SQUOTE] = ACTIONS(1022), + [anon_sym_u8_SQUOTE] = ACTIONS(1022), + [anon_sym_SQUOTE] = ACTIONS(1022), + [anon_sym_L_DQUOTE] = ACTIONS(1022), + [anon_sym_u_DQUOTE] = ACTIONS(1022), + [anon_sym_U_DQUOTE] = ACTIONS(1022), + [anon_sym_u8_DQUOTE] = ACTIONS(1022), + [anon_sym_DQUOTE] = ACTIONS(1022), + [sym_true] = ACTIONS(1020), + [sym_false] = ACTIONS(1020), + [sym_null] = ACTIONS(1020), + [sym_comment] = ACTIONS(3), + }, + [103] = { + [sym_identifier] = ACTIONS(1024), + [aux_sym_preproc_include_token1] = ACTIONS(1024), + [aux_sym_preproc_def_token1] = ACTIONS(1024), + [aux_sym_preproc_if_token1] = ACTIONS(1024), + [aux_sym_preproc_if_token2] = ACTIONS(1024), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1024), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1024), + [aux_sym_preproc_else_token1] = ACTIONS(1024), + [aux_sym_preproc_elif_token1] = ACTIONS(1024), + [sym_preproc_directive] = ACTIONS(1024), + [anon_sym_LPAREN2] = ACTIONS(1026), + [anon_sym_BANG] = ACTIONS(1026), + [anon_sym_TILDE] = ACTIONS(1026), + [anon_sym_DASH] = ACTIONS(1024), + [anon_sym_PLUS] = ACTIONS(1024), + [anon_sym_STAR] = ACTIONS(1026), + [anon_sym_AMP] = ACTIONS(1026), + [anon_sym_SEMI] = ACTIONS(1026), + [anon_sym_typedef] = ACTIONS(1024), + [anon_sym_extern] = ACTIONS(1024), + [anon_sym___attribute__] = ACTIONS(1024), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1026), + [anon_sym___declspec] = ACTIONS(1024), + [anon_sym___cdecl] = ACTIONS(1024), + [anon_sym___clrcall] = ACTIONS(1024), + [anon_sym___stdcall] = ACTIONS(1024), + [anon_sym___fastcall] = ACTIONS(1024), + [anon_sym___thiscall] = ACTIONS(1024), + [anon_sym___vectorcall] = ACTIONS(1024), + [anon_sym_LBRACE] = ACTIONS(1026), + [anon_sym_static] = ACTIONS(1024), + [anon_sym_auto] = ACTIONS(1024), + [anon_sym_register] = ACTIONS(1024), + [anon_sym_inline] = ACTIONS(1024), + [anon_sym_const] = ACTIONS(1024), + [anon_sym_volatile] = ACTIONS(1024), + [anon_sym_restrict] = ACTIONS(1024), + [anon_sym__Atomic] = ACTIONS(1024), + [anon_sym_signed] = ACTIONS(1024), + [anon_sym_unsigned] = ACTIONS(1024), + [anon_sym_long] = ACTIONS(1024), + [anon_sym_short] = ACTIONS(1024), + [sym_primitive_type] = ACTIONS(1024), + [anon_sym_enum] = ACTIONS(1024), + [anon_sym_struct] = ACTIONS(1024), + [anon_sym_union] = ACTIONS(1024), + [anon_sym_if] = ACTIONS(1024), + [anon_sym_else] = ACTIONS(1024), + [anon_sym_switch] = ACTIONS(1024), + [anon_sym_case] = ACTIONS(1024), + [anon_sym_default] = ACTIONS(1024), + [anon_sym_while] = ACTIONS(1024), + [anon_sym_do] = ACTIONS(1024), + [anon_sym_for] = ACTIONS(1024), + [anon_sym_return] = ACTIONS(1024), + [anon_sym_break] = ACTIONS(1024), + [anon_sym_continue] = ACTIONS(1024), + [anon_sym_goto] = ACTIONS(1024), + [anon_sym_DASH_DASH] = ACTIONS(1026), + [anon_sym_PLUS_PLUS] = ACTIONS(1026), + [anon_sym_sizeof] = ACTIONS(1024), + [sym_number_literal] = ACTIONS(1026), + [anon_sym_L_SQUOTE] = ACTIONS(1026), + [anon_sym_u_SQUOTE] = ACTIONS(1026), + [anon_sym_U_SQUOTE] = ACTIONS(1026), + [anon_sym_u8_SQUOTE] = ACTIONS(1026), + [anon_sym_SQUOTE] = ACTIONS(1026), + [anon_sym_L_DQUOTE] = ACTIONS(1026), + [anon_sym_u_DQUOTE] = ACTIONS(1026), + [anon_sym_U_DQUOTE] = ACTIONS(1026), + [anon_sym_u8_DQUOTE] = ACTIONS(1026), + [anon_sym_DQUOTE] = ACTIONS(1026), + [sym_true] = ACTIONS(1024), + [sym_false] = ACTIONS(1024), + [sym_null] = ACTIONS(1024), + [sym_comment] = ACTIONS(3), + }, + [104] = { + [sym_identifier] = ACTIONS(1028), + [aux_sym_preproc_include_token1] = ACTIONS(1028), + [aux_sym_preproc_def_token1] = ACTIONS(1028), + [aux_sym_preproc_if_token1] = ACTIONS(1028), + [aux_sym_preproc_if_token2] = ACTIONS(1028), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1028), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1028), + [aux_sym_preproc_else_token1] = ACTIONS(1028), + [aux_sym_preproc_elif_token1] = ACTIONS(1028), + [sym_preproc_directive] = ACTIONS(1028), + [anon_sym_LPAREN2] = ACTIONS(1030), + [anon_sym_BANG] = ACTIONS(1030), + [anon_sym_TILDE] = ACTIONS(1030), + [anon_sym_DASH] = ACTIONS(1028), + [anon_sym_PLUS] = ACTIONS(1028), + [anon_sym_STAR] = ACTIONS(1030), + [anon_sym_AMP] = ACTIONS(1030), + [anon_sym_SEMI] = ACTIONS(1030), + [anon_sym_typedef] = ACTIONS(1028), + [anon_sym_extern] = ACTIONS(1028), + [anon_sym___attribute__] = ACTIONS(1028), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1030), + [anon_sym___declspec] = ACTIONS(1028), + [anon_sym___cdecl] = ACTIONS(1028), + [anon_sym___clrcall] = ACTIONS(1028), + [anon_sym___stdcall] = ACTIONS(1028), + [anon_sym___fastcall] = ACTIONS(1028), + [anon_sym___thiscall] = ACTIONS(1028), + [anon_sym___vectorcall] = ACTIONS(1028), + [anon_sym_LBRACE] = ACTIONS(1030), + [anon_sym_static] = ACTIONS(1028), + [anon_sym_auto] = ACTIONS(1028), + [anon_sym_register] = ACTIONS(1028), + [anon_sym_inline] = ACTIONS(1028), + [anon_sym_const] = ACTIONS(1028), + [anon_sym_volatile] = ACTIONS(1028), + [anon_sym_restrict] = ACTIONS(1028), + [anon_sym__Atomic] = ACTIONS(1028), + [anon_sym_signed] = ACTIONS(1028), + [anon_sym_unsigned] = ACTIONS(1028), + [anon_sym_long] = ACTIONS(1028), + [anon_sym_short] = ACTIONS(1028), + [sym_primitive_type] = ACTIONS(1028), + [anon_sym_enum] = ACTIONS(1028), + [anon_sym_struct] = ACTIONS(1028), + [anon_sym_union] = ACTIONS(1028), + [anon_sym_if] = ACTIONS(1028), + [anon_sym_switch] = ACTIONS(1028), + [anon_sym_case] = ACTIONS(1028), + [anon_sym_default] = ACTIONS(1028), + [anon_sym_while] = ACTIONS(1028), + [anon_sym_do] = ACTIONS(1028), + [anon_sym_for] = ACTIONS(1028), + [anon_sym_return] = ACTIONS(1028), + [anon_sym_break] = ACTIONS(1028), + [anon_sym_continue] = ACTIONS(1028), + [anon_sym_goto] = ACTIONS(1028), + [anon_sym_DASH_DASH] = ACTIONS(1030), + [anon_sym_PLUS_PLUS] = ACTIONS(1030), + [anon_sym_sizeof] = ACTIONS(1028), + [sym_number_literal] = ACTIONS(1030), + [anon_sym_L_SQUOTE] = ACTIONS(1030), + [anon_sym_u_SQUOTE] = ACTIONS(1030), + [anon_sym_U_SQUOTE] = ACTIONS(1030), + [anon_sym_u8_SQUOTE] = ACTIONS(1030), + [anon_sym_SQUOTE] = ACTIONS(1030), + [anon_sym_L_DQUOTE] = ACTIONS(1030), + [anon_sym_u_DQUOTE] = ACTIONS(1030), + [anon_sym_U_DQUOTE] = ACTIONS(1030), + [anon_sym_u8_DQUOTE] = ACTIONS(1030), + [anon_sym_DQUOTE] = ACTIONS(1030), + [sym_true] = ACTIONS(1028), + [sym_false] = ACTIONS(1028), + [sym_null] = ACTIONS(1028), + [sym_comment] = ACTIONS(3), + }, + [105] = { + [sym_identifier] = ACTIONS(1032), + [aux_sym_preproc_include_token1] = ACTIONS(1032), + [aux_sym_preproc_def_token1] = ACTIONS(1032), + [aux_sym_preproc_if_token1] = ACTIONS(1032), + [aux_sym_preproc_if_token2] = ACTIONS(1032), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1032), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1032), + [aux_sym_preproc_else_token1] = ACTIONS(1032), + [aux_sym_preproc_elif_token1] = ACTIONS(1032), + [sym_preproc_directive] = ACTIONS(1032), + [anon_sym_LPAREN2] = ACTIONS(1034), + [anon_sym_BANG] = ACTIONS(1034), + [anon_sym_TILDE] = ACTIONS(1034), + [anon_sym_DASH] = ACTIONS(1032), + [anon_sym_PLUS] = ACTIONS(1032), + [anon_sym_STAR] = ACTIONS(1034), + [anon_sym_AMP] = ACTIONS(1034), + [anon_sym_SEMI] = ACTIONS(1034), + [anon_sym_typedef] = ACTIONS(1032), + [anon_sym_extern] = ACTIONS(1032), + [anon_sym___attribute__] = ACTIONS(1032), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1034), + [anon_sym___declspec] = ACTIONS(1032), + [anon_sym___cdecl] = ACTIONS(1032), + [anon_sym___clrcall] = ACTIONS(1032), + [anon_sym___stdcall] = ACTIONS(1032), + [anon_sym___fastcall] = ACTIONS(1032), + [anon_sym___thiscall] = ACTIONS(1032), + [anon_sym___vectorcall] = ACTIONS(1032), + [anon_sym_LBRACE] = ACTIONS(1034), + [anon_sym_static] = ACTIONS(1032), + [anon_sym_auto] = ACTIONS(1032), + [anon_sym_register] = ACTIONS(1032), + [anon_sym_inline] = ACTIONS(1032), + [anon_sym_const] = ACTIONS(1032), + [anon_sym_volatile] = ACTIONS(1032), + [anon_sym_restrict] = ACTIONS(1032), + [anon_sym__Atomic] = ACTIONS(1032), + [anon_sym_signed] = ACTIONS(1032), + [anon_sym_unsigned] = ACTIONS(1032), + [anon_sym_long] = ACTIONS(1032), + [anon_sym_short] = ACTIONS(1032), + [sym_primitive_type] = ACTIONS(1032), + [anon_sym_enum] = ACTIONS(1032), + [anon_sym_struct] = ACTIONS(1032), + [anon_sym_union] = ACTIONS(1032), + [anon_sym_if] = ACTIONS(1032), + [anon_sym_switch] = ACTIONS(1032), + [anon_sym_case] = ACTIONS(1032), + [anon_sym_default] = ACTIONS(1032), + [anon_sym_while] = ACTIONS(1032), + [anon_sym_do] = ACTIONS(1032), + [anon_sym_for] = ACTIONS(1032), + [anon_sym_return] = ACTIONS(1032), + [anon_sym_break] = ACTIONS(1032), + [anon_sym_continue] = ACTIONS(1032), + [anon_sym_goto] = ACTIONS(1032), + [anon_sym_DASH_DASH] = ACTIONS(1034), + [anon_sym_PLUS_PLUS] = ACTIONS(1034), + [anon_sym_sizeof] = ACTIONS(1032), + [sym_number_literal] = ACTIONS(1034), + [anon_sym_L_SQUOTE] = ACTIONS(1034), + [anon_sym_u_SQUOTE] = ACTIONS(1034), + [anon_sym_U_SQUOTE] = ACTIONS(1034), + [anon_sym_u8_SQUOTE] = ACTIONS(1034), + [anon_sym_SQUOTE] = ACTIONS(1034), + [anon_sym_L_DQUOTE] = ACTIONS(1034), + [anon_sym_u_DQUOTE] = ACTIONS(1034), + [anon_sym_U_DQUOTE] = ACTIONS(1034), + [anon_sym_u8_DQUOTE] = ACTIONS(1034), + [anon_sym_DQUOTE] = ACTIONS(1034), + [sym_true] = ACTIONS(1032), + [sym_false] = ACTIONS(1032), + [sym_null] = ACTIONS(1032), + [sym_comment] = ACTIONS(3), + }, + [106] = { + [sym__expression] = STATE(630), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(527), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(527), + [sym_call_expression] = STATE(527), + [sym_field_expression] = STATE(527), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(527), + [sym_initializer_list] = STATE(516), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_identifier] = ACTIONS(870), + [anon_sym_LPAREN2] = ACTIONS(1036), + [anon_sym_BANG] = ACTIONS(1038), + [anon_sym_TILDE] = ACTIONS(1040), + [anon_sym_DASH] = ACTIONS(1038), + [anon_sym_PLUS] = ACTIONS(1038), + [anon_sym_STAR] = ACTIONS(1042), + [anon_sym_SLASH] = ACTIONS(882), + [anon_sym_PERCENT] = ACTIONS(882), + [anon_sym_PIPE_PIPE] = ACTIONS(872), + [anon_sym_AMP_AMP] = ACTIONS(872), + [anon_sym_PIPE] = ACTIONS(882), + [anon_sym_CARET] = ACTIONS(882), + [anon_sym_AMP] = ACTIONS(1042), + [anon_sym_EQ_EQ] = ACTIONS(872), + [anon_sym_BANG_EQ] = ACTIONS(872), + [anon_sym_GT] = ACTIONS(882), + [anon_sym_GT_EQ] = ACTIONS(872), + [anon_sym_LT_EQ] = ACTIONS(872), + [anon_sym_LT] = ACTIONS(882), + [anon_sym_LT_LT] = ACTIONS(882), + [anon_sym_GT_GT] = ACTIONS(882), + [anon_sym_LBRACE] = ACTIONS(884), + [anon_sym_LBRACK] = ACTIONS(872), + [anon_sym_RBRACK] = ACTIONS(872), + [anon_sym_EQ] = ACTIONS(882), + [anon_sym_QMARK] = ACTIONS(872), + [anon_sym_STAR_EQ] = ACTIONS(872), + [anon_sym_SLASH_EQ] = ACTIONS(872), + [anon_sym_PERCENT_EQ] = ACTIONS(872), + [anon_sym_PLUS_EQ] = ACTIONS(872), + [anon_sym_DASH_EQ] = ACTIONS(872), + [anon_sym_LT_LT_EQ] = ACTIONS(872), + [anon_sym_GT_GT_EQ] = ACTIONS(872), + [anon_sym_AMP_EQ] = ACTIONS(872), + [anon_sym_CARET_EQ] = ACTIONS(872), + [anon_sym_PIPE_EQ] = ACTIONS(872), + [anon_sym_DASH_DASH] = ACTIONS(1044), + [anon_sym_PLUS_PLUS] = ACTIONS(1044), + [anon_sym_sizeof] = ACTIONS(1046), + [anon_sym_DOT] = ACTIONS(882), + [anon_sym_DASH_GT] = ACTIONS(872), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [107] = { + [sym_identifier] = ACTIONS(1048), + [aux_sym_preproc_include_token1] = ACTIONS(1048), + [aux_sym_preproc_def_token1] = ACTIONS(1048), + [aux_sym_preproc_if_token1] = ACTIONS(1048), + [aux_sym_preproc_if_token2] = ACTIONS(1048), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1048), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1048), + [aux_sym_preproc_else_token1] = ACTIONS(1048), + [aux_sym_preproc_elif_token1] = ACTIONS(1048), + [sym_preproc_directive] = ACTIONS(1048), + [anon_sym_LPAREN2] = ACTIONS(1050), + [anon_sym_BANG] = ACTIONS(1050), + [anon_sym_TILDE] = ACTIONS(1050), + [anon_sym_DASH] = ACTIONS(1048), + [anon_sym_PLUS] = ACTIONS(1048), + [anon_sym_STAR] = ACTIONS(1050), + [anon_sym_AMP] = ACTIONS(1050), + [anon_sym_SEMI] = ACTIONS(1050), + [anon_sym_typedef] = ACTIONS(1048), + [anon_sym_extern] = ACTIONS(1048), + [anon_sym___attribute__] = ACTIONS(1048), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1050), + [anon_sym___declspec] = ACTIONS(1048), + [anon_sym___cdecl] = ACTIONS(1048), + [anon_sym___clrcall] = ACTIONS(1048), + [anon_sym___stdcall] = ACTIONS(1048), + [anon_sym___fastcall] = ACTIONS(1048), + [anon_sym___thiscall] = ACTIONS(1048), + [anon_sym___vectorcall] = ACTIONS(1048), + [anon_sym_LBRACE] = ACTIONS(1050), + [anon_sym_static] = ACTIONS(1048), + [anon_sym_auto] = ACTIONS(1048), + [anon_sym_register] = ACTIONS(1048), + [anon_sym_inline] = ACTIONS(1048), + [anon_sym_const] = ACTIONS(1048), + [anon_sym_volatile] = ACTIONS(1048), + [anon_sym_restrict] = ACTIONS(1048), + [anon_sym__Atomic] = ACTIONS(1048), + [anon_sym_signed] = ACTIONS(1048), + [anon_sym_unsigned] = ACTIONS(1048), + [anon_sym_long] = ACTIONS(1048), + [anon_sym_short] = ACTIONS(1048), + [sym_primitive_type] = ACTIONS(1048), + [anon_sym_enum] = ACTIONS(1048), + [anon_sym_struct] = ACTIONS(1048), + [anon_sym_union] = ACTIONS(1048), + [anon_sym_if] = ACTIONS(1048), + [anon_sym_switch] = ACTIONS(1048), + [anon_sym_case] = ACTIONS(1048), + [anon_sym_default] = ACTIONS(1048), + [anon_sym_while] = ACTIONS(1048), + [anon_sym_do] = ACTIONS(1048), + [anon_sym_for] = ACTIONS(1048), + [anon_sym_return] = ACTIONS(1048), + [anon_sym_break] = ACTIONS(1048), + [anon_sym_continue] = ACTIONS(1048), + [anon_sym_goto] = ACTIONS(1048), + [anon_sym_DASH_DASH] = ACTIONS(1050), + [anon_sym_PLUS_PLUS] = ACTIONS(1050), + [anon_sym_sizeof] = ACTIONS(1048), + [sym_number_literal] = ACTIONS(1050), + [anon_sym_L_SQUOTE] = ACTIONS(1050), + [anon_sym_u_SQUOTE] = ACTIONS(1050), + [anon_sym_U_SQUOTE] = ACTIONS(1050), + [anon_sym_u8_SQUOTE] = ACTIONS(1050), + [anon_sym_SQUOTE] = ACTIONS(1050), + [anon_sym_L_DQUOTE] = ACTIONS(1050), + [anon_sym_u_DQUOTE] = ACTIONS(1050), + [anon_sym_U_DQUOTE] = ACTIONS(1050), + [anon_sym_u8_DQUOTE] = ACTIONS(1050), + [anon_sym_DQUOTE] = ACTIONS(1050), + [sym_true] = ACTIONS(1048), + [sym_false] = ACTIONS(1048), + [sym_null] = ACTIONS(1048), + [sym_comment] = ACTIONS(3), + }, + [108] = { + [sym_identifier] = ACTIONS(1052), + [aux_sym_preproc_include_token1] = ACTIONS(1052), + [aux_sym_preproc_def_token1] = ACTIONS(1052), + [aux_sym_preproc_if_token1] = ACTIONS(1052), + [aux_sym_preproc_if_token2] = ACTIONS(1052), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1052), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1052), + [aux_sym_preproc_else_token1] = ACTIONS(1052), + [aux_sym_preproc_elif_token1] = ACTIONS(1052), + [sym_preproc_directive] = ACTIONS(1052), + [anon_sym_LPAREN2] = ACTIONS(1054), + [anon_sym_BANG] = ACTIONS(1054), + [anon_sym_TILDE] = ACTIONS(1054), + [anon_sym_DASH] = ACTIONS(1052), + [anon_sym_PLUS] = ACTIONS(1052), + [anon_sym_STAR] = ACTIONS(1054), + [anon_sym_AMP] = ACTIONS(1054), + [anon_sym_SEMI] = ACTIONS(1054), + [anon_sym_typedef] = ACTIONS(1052), + [anon_sym_extern] = ACTIONS(1052), + [anon_sym___attribute__] = ACTIONS(1052), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1054), + [anon_sym___declspec] = ACTIONS(1052), + [anon_sym___cdecl] = ACTIONS(1052), + [anon_sym___clrcall] = ACTIONS(1052), + [anon_sym___stdcall] = ACTIONS(1052), + [anon_sym___fastcall] = ACTIONS(1052), + [anon_sym___thiscall] = ACTIONS(1052), + [anon_sym___vectorcall] = ACTIONS(1052), + [anon_sym_LBRACE] = ACTIONS(1054), + [anon_sym_static] = ACTIONS(1052), + [anon_sym_auto] = ACTIONS(1052), + [anon_sym_register] = ACTIONS(1052), + [anon_sym_inline] = ACTIONS(1052), + [anon_sym_const] = ACTIONS(1052), + [anon_sym_volatile] = ACTIONS(1052), + [anon_sym_restrict] = ACTIONS(1052), + [anon_sym__Atomic] = ACTIONS(1052), + [anon_sym_signed] = ACTIONS(1052), + [anon_sym_unsigned] = ACTIONS(1052), + [anon_sym_long] = ACTIONS(1052), + [anon_sym_short] = ACTIONS(1052), + [sym_primitive_type] = ACTIONS(1052), + [anon_sym_enum] = ACTIONS(1052), + [anon_sym_struct] = ACTIONS(1052), + [anon_sym_union] = ACTIONS(1052), + [anon_sym_if] = ACTIONS(1052), + [anon_sym_switch] = ACTIONS(1052), + [anon_sym_case] = ACTIONS(1052), + [anon_sym_default] = ACTIONS(1052), + [anon_sym_while] = ACTIONS(1052), + [anon_sym_do] = ACTIONS(1052), + [anon_sym_for] = ACTIONS(1052), + [anon_sym_return] = ACTIONS(1052), + [anon_sym_break] = ACTIONS(1052), + [anon_sym_continue] = ACTIONS(1052), + [anon_sym_goto] = ACTIONS(1052), + [anon_sym_DASH_DASH] = ACTIONS(1054), + [anon_sym_PLUS_PLUS] = ACTIONS(1054), + [anon_sym_sizeof] = ACTIONS(1052), + [sym_number_literal] = ACTIONS(1054), + [anon_sym_L_SQUOTE] = ACTIONS(1054), + [anon_sym_u_SQUOTE] = ACTIONS(1054), + [anon_sym_U_SQUOTE] = ACTIONS(1054), + [anon_sym_u8_SQUOTE] = ACTIONS(1054), + [anon_sym_SQUOTE] = ACTIONS(1054), + [anon_sym_L_DQUOTE] = ACTIONS(1054), + [anon_sym_u_DQUOTE] = ACTIONS(1054), + [anon_sym_U_DQUOTE] = ACTIONS(1054), + [anon_sym_u8_DQUOTE] = ACTIONS(1054), + [anon_sym_DQUOTE] = ACTIONS(1054), + [sym_true] = ACTIONS(1052), + [sym_false] = ACTIONS(1052), + [sym_null] = ACTIONS(1052), + [sym_comment] = ACTIONS(3), + }, + [109] = { + [sym_identifier] = ACTIONS(1056), + [aux_sym_preproc_include_token1] = ACTIONS(1056), + [aux_sym_preproc_def_token1] = ACTIONS(1056), + [aux_sym_preproc_if_token1] = ACTIONS(1056), + [aux_sym_preproc_if_token2] = ACTIONS(1056), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1056), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1056), + [aux_sym_preproc_else_token1] = ACTIONS(1056), + [aux_sym_preproc_elif_token1] = ACTIONS(1056), + [sym_preproc_directive] = ACTIONS(1056), + [anon_sym_LPAREN2] = ACTIONS(1058), + [anon_sym_BANG] = ACTIONS(1058), + [anon_sym_TILDE] = ACTIONS(1058), + [anon_sym_DASH] = ACTIONS(1056), + [anon_sym_PLUS] = ACTIONS(1056), + [anon_sym_STAR] = ACTIONS(1058), + [anon_sym_AMP] = ACTIONS(1058), + [anon_sym_SEMI] = ACTIONS(1058), + [anon_sym_typedef] = ACTIONS(1056), + [anon_sym_extern] = ACTIONS(1056), + [anon_sym___attribute__] = ACTIONS(1056), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1058), + [anon_sym___declspec] = ACTIONS(1056), + [anon_sym___cdecl] = ACTIONS(1056), + [anon_sym___clrcall] = ACTIONS(1056), + [anon_sym___stdcall] = ACTIONS(1056), + [anon_sym___fastcall] = ACTIONS(1056), + [anon_sym___thiscall] = ACTIONS(1056), + [anon_sym___vectorcall] = ACTIONS(1056), + [anon_sym_LBRACE] = ACTIONS(1058), + [anon_sym_static] = ACTIONS(1056), + [anon_sym_auto] = ACTIONS(1056), + [anon_sym_register] = ACTIONS(1056), + [anon_sym_inline] = ACTIONS(1056), + [anon_sym_const] = ACTIONS(1056), + [anon_sym_volatile] = ACTIONS(1056), + [anon_sym_restrict] = ACTIONS(1056), + [anon_sym__Atomic] = ACTIONS(1056), + [anon_sym_signed] = ACTIONS(1056), + [anon_sym_unsigned] = ACTIONS(1056), + [anon_sym_long] = ACTIONS(1056), + [anon_sym_short] = ACTIONS(1056), + [sym_primitive_type] = ACTIONS(1056), + [anon_sym_enum] = ACTIONS(1056), + [anon_sym_struct] = ACTIONS(1056), + [anon_sym_union] = ACTIONS(1056), + [anon_sym_if] = ACTIONS(1056), + [anon_sym_switch] = ACTIONS(1056), + [anon_sym_case] = ACTIONS(1056), + [anon_sym_default] = ACTIONS(1056), + [anon_sym_while] = ACTIONS(1056), + [anon_sym_do] = ACTIONS(1056), + [anon_sym_for] = ACTIONS(1056), + [anon_sym_return] = ACTIONS(1056), + [anon_sym_break] = ACTIONS(1056), + [anon_sym_continue] = ACTIONS(1056), + [anon_sym_goto] = ACTIONS(1056), + [anon_sym_DASH_DASH] = ACTIONS(1058), + [anon_sym_PLUS_PLUS] = ACTIONS(1058), + [anon_sym_sizeof] = ACTIONS(1056), + [sym_number_literal] = ACTIONS(1058), + [anon_sym_L_SQUOTE] = ACTIONS(1058), + [anon_sym_u_SQUOTE] = ACTIONS(1058), + [anon_sym_U_SQUOTE] = ACTIONS(1058), + [anon_sym_u8_SQUOTE] = ACTIONS(1058), + [anon_sym_SQUOTE] = ACTIONS(1058), + [anon_sym_L_DQUOTE] = ACTIONS(1058), + [anon_sym_u_DQUOTE] = ACTIONS(1058), + [anon_sym_U_DQUOTE] = ACTIONS(1058), + [anon_sym_u8_DQUOTE] = ACTIONS(1058), + [anon_sym_DQUOTE] = ACTIONS(1058), + [sym_true] = ACTIONS(1056), + [sym_false] = ACTIONS(1056), + [sym_null] = ACTIONS(1056), + [sym_comment] = ACTIONS(3), + }, + [110] = { + [sym_identifier] = ACTIONS(1060), + [aux_sym_preproc_include_token1] = ACTIONS(1060), + [aux_sym_preproc_def_token1] = ACTIONS(1060), + [aux_sym_preproc_if_token1] = ACTIONS(1060), + [aux_sym_preproc_if_token2] = ACTIONS(1060), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1060), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1060), + [aux_sym_preproc_else_token1] = ACTIONS(1060), + [aux_sym_preproc_elif_token1] = ACTIONS(1060), + [sym_preproc_directive] = ACTIONS(1060), + [anon_sym_LPAREN2] = ACTIONS(1062), + [anon_sym_BANG] = ACTIONS(1062), + [anon_sym_TILDE] = ACTIONS(1062), + [anon_sym_DASH] = ACTIONS(1060), + [anon_sym_PLUS] = ACTIONS(1060), + [anon_sym_STAR] = ACTIONS(1062), + [anon_sym_AMP] = ACTIONS(1062), + [anon_sym_SEMI] = ACTIONS(1062), + [anon_sym_typedef] = ACTIONS(1060), + [anon_sym_extern] = ACTIONS(1060), + [anon_sym___attribute__] = ACTIONS(1060), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1062), + [anon_sym___declspec] = ACTIONS(1060), + [anon_sym___cdecl] = ACTIONS(1060), + [anon_sym___clrcall] = ACTIONS(1060), + [anon_sym___stdcall] = ACTIONS(1060), + [anon_sym___fastcall] = ACTIONS(1060), + [anon_sym___thiscall] = ACTIONS(1060), + [anon_sym___vectorcall] = ACTIONS(1060), + [anon_sym_LBRACE] = ACTIONS(1062), + [anon_sym_static] = ACTIONS(1060), + [anon_sym_auto] = ACTIONS(1060), + [anon_sym_register] = ACTIONS(1060), + [anon_sym_inline] = ACTIONS(1060), + [anon_sym_const] = ACTIONS(1060), + [anon_sym_volatile] = ACTIONS(1060), + [anon_sym_restrict] = ACTIONS(1060), + [anon_sym__Atomic] = ACTIONS(1060), + [anon_sym_signed] = ACTIONS(1060), + [anon_sym_unsigned] = ACTIONS(1060), + [anon_sym_long] = ACTIONS(1060), + [anon_sym_short] = ACTIONS(1060), + [sym_primitive_type] = ACTIONS(1060), + [anon_sym_enum] = ACTIONS(1060), + [anon_sym_struct] = ACTIONS(1060), + [anon_sym_union] = ACTIONS(1060), + [anon_sym_if] = ACTIONS(1060), + [anon_sym_switch] = ACTIONS(1060), + [anon_sym_case] = ACTIONS(1060), + [anon_sym_default] = ACTIONS(1060), + [anon_sym_while] = ACTIONS(1060), + [anon_sym_do] = ACTIONS(1060), + [anon_sym_for] = ACTIONS(1060), + [anon_sym_return] = ACTIONS(1060), + [anon_sym_break] = ACTIONS(1060), + [anon_sym_continue] = ACTIONS(1060), + [anon_sym_goto] = ACTIONS(1060), + [anon_sym_DASH_DASH] = ACTIONS(1062), + [anon_sym_PLUS_PLUS] = ACTIONS(1062), + [anon_sym_sizeof] = ACTIONS(1060), + [sym_number_literal] = ACTIONS(1062), + [anon_sym_L_SQUOTE] = ACTIONS(1062), + [anon_sym_u_SQUOTE] = ACTIONS(1062), + [anon_sym_U_SQUOTE] = ACTIONS(1062), + [anon_sym_u8_SQUOTE] = ACTIONS(1062), + [anon_sym_SQUOTE] = ACTIONS(1062), + [anon_sym_L_DQUOTE] = ACTIONS(1062), + [anon_sym_u_DQUOTE] = ACTIONS(1062), + [anon_sym_U_DQUOTE] = ACTIONS(1062), + [anon_sym_u8_DQUOTE] = ACTIONS(1062), + [anon_sym_DQUOTE] = ACTIONS(1062), + [sym_true] = ACTIONS(1060), + [sym_false] = ACTIONS(1060), + [sym_null] = ACTIONS(1060), + [sym_comment] = ACTIONS(3), + }, + [111] = { + [sym_identifier] = ACTIONS(1064), + [aux_sym_preproc_include_token1] = ACTIONS(1064), + [aux_sym_preproc_def_token1] = ACTIONS(1064), + [aux_sym_preproc_if_token1] = ACTIONS(1064), + [aux_sym_preproc_if_token2] = ACTIONS(1064), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1064), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1064), + [aux_sym_preproc_else_token1] = ACTIONS(1064), + [aux_sym_preproc_elif_token1] = ACTIONS(1064), + [sym_preproc_directive] = ACTIONS(1064), + [anon_sym_LPAREN2] = ACTIONS(1066), + [anon_sym_BANG] = ACTIONS(1066), + [anon_sym_TILDE] = ACTIONS(1066), + [anon_sym_DASH] = ACTIONS(1064), + [anon_sym_PLUS] = ACTIONS(1064), + [anon_sym_STAR] = ACTIONS(1066), + [anon_sym_AMP] = ACTIONS(1066), + [anon_sym_SEMI] = ACTIONS(1066), + [anon_sym_typedef] = ACTIONS(1064), + [anon_sym_extern] = ACTIONS(1064), + [anon_sym___attribute__] = ACTIONS(1064), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1066), + [anon_sym___declspec] = ACTIONS(1064), + [anon_sym___cdecl] = ACTIONS(1064), + [anon_sym___clrcall] = ACTIONS(1064), + [anon_sym___stdcall] = ACTIONS(1064), + [anon_sym___fastcall] = ACTIONS(1064), + [anon_sym___thiscall] = ACTIONS(1064), + [anon_sym___vectorcall] = ACTIONS(1064), + [anon_sym_LBRACE] = ACTIONS(1066), + [anon_sym_static] = ACTIONS(1064), + [anon_sym_auto] = ACTIONS(1064), + [anon_sym_register] = ACTIONS(1064), + [anon_sym_inline] = ACTIONS(1064), + [anon_sym_const] = ACTIONS(1064), + [anon_sym_volatile] = ACTIONS(1064), + [anon_sym_restrict] = ACTIONS(1064), + [anon_sym__Atomic] = ACTIONS(1064), + [anon_sym_signed] = ACTIONS(1064), + [anon_sym_unsigned] = ACTIONS(1064), + [anon_sym_long] = ACTIONS(1064), + [anon_sym_short] = ACTIONS(1064), + [sym_primitive_type] = ACTIONS(1064), + [anon_sym_enum] = ACTIONS(1064), + [anon_sym_struct] = ACTIONS(1064), + [anon_sym_union] = ACTIONS(1064), + [anon_sym_if] = ACTIONS(1064), + [anon_sym_switch] = ACTIONS(1064), + [anon_sym_case] = ACTIONS(1064), + [anon_sym_default] = ACTIONS(1064), + [anon_sym_while] = ACTIONS(1064), + [anon_sym_do] = ACTIONS(1064), + [anon_sym_for] = ACTIONS(1064), + [anon_sym_return] = ACTIONS(1064), + [anon_sym_break] = ACTIONS(1064), + [anon_sym_continue] = ACTIONS(1064), + [anon_sym_goto] = ACTIONS(1064), + [anon_sym_DASH_DASH] = ACTIONS(1066), + [anon_sym_PLUS_PLUS] = ACTIONS(1066), + [anon_sym_sizeof] = ACTIONS(1064), + [sym_number_literal] = ACTIONS(1066), + [anon_sym_L_SQUOTE] = ACTIONS(1066), + [anon_sym_u_SQUOTE] = ACTIONS(1066), + [anon_sym_U_SQUOTE] = ACTIONS(1066), + [anon_sym_u8_SQUOTE] = ACTIONS(1066), + [anon_sym_SQUOTE] = ACTIONS(1066), + [anon_sym_L_DQUOTE] = ACTIONS(1066), + [anon_sym_u_DQUOTE] = ACTIONS(1066), + [anon_sym_U_DQUOTE] = ACTIONS(1066), + [anon_sym_u8_DQUOTE] = ACTIONS(1066), + [anon_sym_DQUOTE] = ACTIONS(1066), + [sym_true] = ACTIONS(1064), + [sym_false] = ACTIONS(1064), + [sym_null] = ACTIONS(1064), + [sym_comment] = ACTIONS(3), + }, + [112] = { + [sym_identifier] = ACTIONS(1068), + [aux_sym_preproc_include_token1] = ACTIONS(1068), + [aux_sym_preproc_def_token1] = ACTIONS(1068), + [aux_sym_preproc_if_token1] = ACTIONS(1068), + [aux_sym_preproc_if_token2] = ACTIONS(1068), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1068), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1068), + [aux_sym_preproc_else_token1] = ACTIONS(1068), + [aux_sym_preproc_elif_token1] = ACTIONS(1068), + [sym_preproc_directive] = ACTIONS(1068), + [anon_sym_LPAREN2] = ACTIONS(1070), + [anon_sym_BANG] = ACTIONS(1070), + [anon_sym_TILDE] = ACTIONS(1070), + [anon_sym_DASH] = ACTIONS(1068), + [anon_sym_PLUS] = ACTIONS(1068), + [anon_sym_STAR] = ACTIONS(1070), + [anon_sym_AMP] = ACTIONS(1070), + [anon_sym_SEMI] = ACTIONS(1070), + [anon_sym_typedef] = ACTIONS(1068), + [anon_sym_extern] = ACTIONS(1068), + [anon_sym___attribute__] = ACTIONS(1068), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1070), + [anon_sym___declspec] = ACTIONS(1068), + [anon_sym___cdecl] = ACTIONS(1068), + [anon_sym___clrcall] = ACTIONS(1068), + [anon_sym___stdcall] = ACTIONS(1068), + [anon_sym___fastcall] = ACTIONS(1068), + [anon_sym___thiscall] = ACTIONS(1068), + [anon_sym___vectorcall] = ACTIONS(1068), + [anon_sym_LBRACE] = ACTIONS(1070), + [anon_sym_static] = ACTIONS(1068), + [anon_sym_auto] = ACTIONS(1068), + [anon_sym_register] = ACTIONS(1068), + [anon_sym_inline] = ACTIONS(1068), + [anon_sym_const] = ACTIONS(1068), + [anon_sym_volatile] = ACTIONS(1068), + [anon_sym_restrict] = ACTIONS(1068), + [anon_sym__Atomic] = ACTIONS(1068), + [anon_sym_signed] = ACTIONS(1068), + [anon_sym_unsigned] = ACTIONS(1068), + [anon_sym_long] = ACTIONS(1068), + [anon_sym_short] = ACTIONS(1068), + [sym_primitive_type] = ACTIONS(1068), + [anon_sym_enum] = ACTIONS(1068), + [anon_sym_struct] = ACTIONS(1068), + [anon_sym_union] = ACTIONS(1068), + [anon_sym_if] = ACTIONS(1068), + [anon_sym_switch] = ACTIONS(1068), + [anon_sym_case] = ACTIONS(1068), + [anon_sym_default] = ACTIONS(1068), + [anon_sym_while] = ACTIONS(1068), + [anon_sym_do] = ACTIONS(1068), + [anon_sym_for] = ACTIONS(1068), + [anon_sym_return] = ACTIONS(1068), + [anon_sym_break] = ACTIONS(1068), + [anon_sym_continue] = ACTIONS(1068), + [anon_sym_goto] = ACTIONS(1068), + [anon_sym_DASH_DASH] = ACTIONS(1070), + [anon_sym_PLUS_PLUS] = ACTIONS(1070), + [anon_sym_sizeof] = ACTIONS(1068), + [sym_number_literal] = ACTIONS(1070), + [anon_sym_L_SQUOTE] = ACTIONS(1070), + [anon_sym_u_SQUOTE] = ACTIONS(1070), + [anon_sym_U_SQUOTE] = ACTIONS(1070), + [anon_sym_u8_SQUOTE] = ACTIONS(1070), + [anon_sym_SQUOTE] = ACTIONS(1070), + [anon_sym_L_DQUOTE] = ACTIONS(1070), + [anon_sym_u_DQUOTE] = ACTIONS(1070), + [anon_sym_U_DQUOTE] = ACTIONS(1070), + [anon_sym_u8_DQUOTE] = ACTIONS(1070), + [anon_sym_DQUOTE] = ACTIONS(1070), + [sym_true] = ACTIONS(1068), + [sym_false] = ACTIONS(1068), + [sym_null] = ACTIONS(1068), + [sym_comment] = ACTIONS(3), + }, + [113] = { + [sym_identifier] = ACTIONS(1072), + [aux_sym_preproc_include_token1] = ACTIONS(1072), + [aux_sym_preproc_def_token1] = ACTIONS(1072), + [aux_sym_preproc_if_token1] = ACTIONS(1072), + [aux_sym_preproc_if_token2] = ACTIONS(1072), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1072), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1072), + [aux_sym_preproc_else_token1] = ACTIONS(1072), + [aux_sym_preproc_elif_token1] = ACTIONS(1072), + [sym_preproc_directive] = ACTIONS(1072), + [anon_sym_LPAREN2] = ACTIONS(1074), + [anon_sym_BANG] = ACTIONS(1074), + [anon_sym_TILDE] = ACTIONS(1074), + [anon_sym_DASH] = ACTIONS(1072), + [anon_sym_PLUS] = ACTIONS(1072), + [anon_sym_STAR] = ACTIONS(1074), + [anon_sym_AMP] = ACTIONS(1074), + [anon_sym_SEMI] = ACTIONS(1074), + [anon_sym_typedef] = ACTIONS(1072), + [anon_sym_extern] = ACTIONS(1072), + [anon_sym___attribute__] = ACTIONS(1072), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1074), + [anon_sym___declspec] = ACTIONS(1072), + [anon_sym___cdecl] = ACTIONS(1072), + [anon_sym___clrcall] = ACTIONS(1072), + [anon_sym___stdcall] = ACTIONS(1072), + [anon_sym___fastcall] = ACTIONS(1072), + [anon_sym___thiscall] = ACTIONS(1072), + [anon_sym___vectorcall] = ACTIONS(1072), + [anon_sym_LBRACE] = ACTIONS(1074), + [anon_sym_static] = ACTIONS(1072), + [anon_sym_auto] = ACTIONS(1072), + [anon_sym_register] = ACTIONS(1072), + [anon_sym_inline] = ACTIONS(1072), + [anon_sym_const] = ACTIONS(1072), + [anon_sym_volatile] = ACTIONS(1072), + [anon_sym_restrict] = ACTIONS(1072), + [anon_sym__Atomic] = ACTIONS(1072), + [anon_sym_signed] = ACTIONS(1072), + [anon_sym_unsigned] = ACTIONS(1072), + [anon_sym_long] = ACTIONS(1072), + [anon_sym_short] = ACTIONS(1072), + [sym_primitive_type] = ACTIONS(1072), + [anon_sym_enum] = ACTIONS(1072), + [anon_sym_struct] = ACTIONS(1072), + [anon_sym_union] = ACTIONS(1072), + [anon_sym_if] = ACTIONS(1072), + [anon_sym_switch] = ACTIONS(1072), + [anon_sym_case] = ACTIONS(1072), + [anon_sym_default] = ACTIONS(1072), + [anon_sym_while] = ACTIONS(1072), + [anon_sym_do] = ACTIONS(1072), + [anon_sym_for] = ACTIONS(1072), + [anon_sym_return] = ACTIONS(1072), + [anon_sym_break] = ACTIONS(1072), + [anon_sym_continue] = ACTIONS(1072), + [anon_sym_goto] = ACTIONS(1072), + [anon_sym_DASH_DASH] = ACTIONS(1074), + [anon_sym_PLUS_PLUS] = ACTIONS(1074), + [anon_sym_sizeof] = ACTIONS(1072), + [sym_number_literal] = ACTIONS(1074), + [anon_sym_L_SQUOTE] = ACTIONS(1074), + [anon_sym_u_SQUOTE] = ACTIONS(1074), + [anon_sym_U_SQUOTE] = ACTIONS(1074), + [anon_sym_u8_SQUOTE] = ACTIONS(1074), + [anon_sym_SQUOTE] = ACTIONS(1074), + [anon_sym_L_DQUOTE] = ACTIONS(1074), + [anon_sym_u_DQUOTE] = ACTIONS(1074), + [anon_sym_U_DQUOTE] = ACTIONS(1074), + [anon_sym_u8_DQUOTE] = ACTIONS(1074), + [anon_sym_DQUOTE] = ACTIONS(1074), + [sym_true] = ACTIONS(1072), + [sym_false] = ACTIONS(1072), + [sym_null] = ACTIONS(1072), + [sym_comment] = ACTIONS(3), + }, + [114] = { + [sym_identifier] = ACTIONS(1076), + [aux_sym_preproc_include_token1] = ACTIONS(1076), + [aux_sym_preproc_def_token1] = ACTIONS(1076), + [aux_sym_preproc_if_token1] = ACTIONS(1076), + [aux_sym_preproc_if_token2] = ACTIONS(1076), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1076), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1076), + [aux_sym_preproc_else_token1] = ACTIONS(1076), + [aux_sym_preproc_elif_token1] = ACTIONS(1076), + [sym_preproc_directive] = ACTIONS(1076), + [anon_sym_LPAREN2] = ACTIONS(1078), + [anon_sym_BANG] = ACTIONS(1078), + [anon_sym_TILDE] = ACTIONS(1078), + [anon_sym_DASH] = ACTIONS(1076), + [anon_sym_PLUS] = ACTIONS(1076), + [anon_sym_STAR] = ACTIONS(1078), + [anon_sym_AMP] = ACTIONS(1078), + [anon_sym_SEMI] = ACTIONS(1078), + [anon_sym_typedef] = ACTIONS(1076), + [anon_sym_extern] = ACTIONS(1076), + [anon_sym___attribute__] = ACTIONS(1076), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1078), + [anon_sym___declspec] = ACTIONS(1076), + [anon_sym___cdecl] = ACTIONS(1076), + [anon_sym___clrcall] = ACTIONS(1076), + [anon_sym___stdcall] = ACTIONS(1076), + [anon_sym___fastcall] = ACTIONS(1076), + [anon_sym___thiscall] = ACTIONS(1076), + [anon_sym___vectorcall] = ACTIONS(1076), + [anon_sym_LBRACE] = ACTIONS(1078), + [anon_sym_static] = ACTIONS(1076), + [anon_sym_auto] = ACTIONS(1076), + [anon_sym_register] = ACTIONS(1076), + [anon_sym_inline] = ACTIONS(1076), + [anon_sym_const] = ACTIONS(1076), + [anon_sym_volatile] = ACTIONS(1076), + [anon_sym_restrict] = ACTIONS(1076), + [anon_sym__Atomic] = ACTIONS(1076), + [anon_sym_signed] = ACTIONS(1076), + [anon_sym_unsigned] = ACTIONS(1076), + [anon_sym_long] = ACTIONS(1076), + [anon_sym_short] = ACTIONS(1076), + [sym_primitive_type] = ACTIONS(1076), + [anon_sym_enum] = ACTIONS(1076), + [anon_sym_struct] = ACTIONS(1076), + [anon_sym_union] = ACTIONS(1076), + [anon_sym_if] = ACTIONS(1076), + [anon_sym_switch] = ACTIONS(1076), + [anon_sym_case] = ACTIONS(1076), + [anon_sym_default] = ACTIONS(1076), + [anon_sym_while] = ACTIONS(1076), + [anon_sym_do] = ACTIONS(1076), + [anon_sym_for] = ACTIONS(1076), + [anon_sym_return] = ACTIONS(1076), + [anon_sym_break] = ACTIONS(1076), + [anon_sym_continue] = ACTIONS(1076), + [anon_sym_goto] = ACTIONS(1076), + [anon_sym_DASH_DASH] = ACTIONS(1078), + [anon_sym_PLUS_PLUS] = ACTIONS(1078), + [anon_sym_sizeof] = ACTIONS(1076), + [sym_number_literal] = ACTIONS(1078), + [anon_sym_L_SQUOTE] = ACTIONS(1078), + [anon_sym_u_SQUOTE] = ACTIONS(1078), + [anon_sym_U_SQUOTE] = ACTIONS(1078), + [anon_sym_u8_SQUOTE] = ACTIONS(1078), + [anon_sym_SQUOTE] = ACTIONS(1078), + [anon_sym_L_DQUOTE] = ACTIONS(1078), + [anon_sym_u_DQUOTE] = ACTIONS(1078), + [anon_sym_U_DQUOTE] = ACTIONS(1078), + [anon_sym_u8_DQUOTE] = ACTIONS(1078), + [anon_sym_DQUOTE] = ACTIONS(1078), + [sym_true] = ACTIONS(1076), + [sym_false] = ACTIONS(1076), + [sym_null] = ACTIONS(1076), + [sym_comment] = ACTIONS(3), + }, + [115] = { + [sym_identifier] = ACTIONS(1080), + [aux_sym_preproc_include_token1] = ACTIONS(1080), + [aux_sym_preproc_def_token1] = ACTIONS(1080), + [aux_sym_preproc_if_token1] = ACTIONS(1080), + [aux_sym_preproc_if_token2] = ACTIONS(1080), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1080), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1080), + [aux_sym_preproc_else_token1] = ACTIONS(1080), + [aux_sym_preproc_elif_token1] = ACTIONS(1080), + [sym_preproc_directive] = ACTIONS(1080), + [anon_sym_LPAREN2] = ACTIONS(1082), + [anon_sym_BANG] = ACTIONS(1082), + [anon_sym_TILDE] = ACTIONS(1082), + [anon_sym_DASH] = ACTIONS(1080), + [anon_sym_PLUS] = ACTIONS(1080), + [anon_sym_STAR] = ACTIONS(1082), + [anon_sym_AMP] = ACTIONS(1082), + [anon_sym_SEMI] = ACTIONS(1082), + [anon_sym_typedef] = ACTIONS(1080), + [anon_sym_extern] = ACTIONS(1080), + [anon_sym___attribute__] = ACTIONS(1080), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1082), + [anon_sym___declspec] = ACTIONS(1080), + [anon_sym___cdecl] = ACTIONS(1080), + [anon_sym___clrcall] = ACTIONS(1080), + [anon_sym___stdcall] = ACTIONS(1080), + [anon_sym___fastcall] = ACTIONS(1080), + [anon_sym___thiscall] = ACTIONS(1080), + [anon_sym___vectorcall] = ACTIONS(1080), + [anon_sym_LBRACE] = ACTIONS(1082), + [anon_sym_static] = ACTIONS(1080), + [anon_sym_auto] = ACTIONS(1080), + [anon_sym_register] = ACTIONS(1080), + [anon_sym_inline] = ACTIONS(1080), + [anon_sym_const] = ACTIONS(1080), + [anon_sym_volatile] = ACTIONS(1080), + [anon_sym_restrict] = ACTIONS(1080), + [anon_sym__Atomic] = ACTIONS(1080), + [anon_sym_signed] = ACTIONS(1080), + [anon_sym_unsigned] = ACTIONS(1080), + [anon_sym_long] = ACTIONS(1080), + [anon_sym_short] = ACTIONS(1080), + [sym_primitive_type] = ACTIONS(1080), + [anon_sym_enum] = ACTIONS(1080), + [anon_sym_struct] = ACTIONS(1080), + [anon_sym_union] = ACTIONS(1080), + [anon_sym_if] = ACTIONS(1080), + [anon_sym_switch] = ACTIONS(1080), + [anon_sym_case] = ACTIONS(1080), + [anon_sym_default] = ACTIONS(1080), + [anon_sym_while] = ACTIONS(1080), + [anon_sym_do] = ACTIONS(1080), + [anon_sym_for] = ACTIONS(1080), + [anon_sym_return] = ACTIONS(1080), + [anon_sym_break] = ACTIONS(1080), + [anon_sym_continue] = ACTIONS(1080), + [anon_sym_goto] = ACTIONS(1080), + [anon_sym_DASH_DASH] = ACTIONS(1082), + [anon_sym_PLUS_PLUS] = ACTIONS(1082), + [anon_sym_sizeof] = ACTIONS(1080), + [sym_number_literal] = ACTIONS(1082), + [anon_sym_L_SQUOTE] = ACTIONS(1082), + [anon_sym_u_SQUOTE] = ACTIONS(1082), + [anon_sym_U_SQUOTE] = ACTIONS(1082), + [anon_sym_u8_SQUOTE] = ACTIONS(1082), + [anon_sym_SQUOTE] = ACTIONS(1082), + [anon_sym_L_DQUOTE] = ACTIONS(1082), + [anon_sym_u_DQUOTE] = ACTIONS(1082), + [anon_sym_U_DQUOTE] = ACTIONS(1082), + [anon_sym_u8_DQUOTE] = ACTIONS(1082), + [anon_sym_DQUOTE] = ACTIONS(1082), + [sym_true] = ACTIONS(1080), + [sym_false] = ACTIONS(1080), + [sym_null] = ACTIONS(1080), + [sym_comment] = ACTIONS(3), + }, + [116] = { + [sym_identifier] = ACTIONS(1084), + [aux_sym_preproc_include_token1] = ACTIONS(1084), + [aux_sym_preproc_def_token1] = ACTIONS(1084), + [aux_sym_preproc_if_token1] = ACTIONS(1084), + [aux_sym_preproc_if_token2] = ACTIONS(1084), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1084), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1084), + [aux_sym_preproc_else_token1] = ACTIONS(1084), + [aux_sym_preproc_elif_token1] = ACTIONS(1084), + [sym_preproc_directive] = ACTIONS(1084), + [anon_sym_LPAREN2] = ACTIONS(1086), + [anon_sym_BANG] = ACTIONS(1086), + [anon_sym_TILDE] = ACTIONS(1086), + [anon_sym_DASH] = ACTIONS(1084), + [anon_sym_PLUS] = ACTIONS(1084), + [anon_sym_STAR] = ACTIONS(1086), + [anon_sym_AMP] = ACTIONS(1086), + [anon_sym_SEMI] = ACTIONS(1086), + [anon_sym_typedef] = ACTIONS(1084), + [anon_sym_extern] = ACTIONS(1084), + [anon_sym___attribute__] = ACTIONS(1084), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1086), + [anon_sym___declspec] = ACTIONS(1084), + [anon_sym___cdecl] = ACTIONS(1084), + [anon_sym___clrcall] = ACTIONS(1084), + [anon_sym___stdcall] = ACTIONS(1084), + [anon_sym___fastcall] = ACTIONS(1084), + [anon_sym___thiscall] = ACTIONS(1084), + [anon_sym___vectorcall] = ACTIONS(1084), + [anon_sym_LBRACE] = ACTIONS(1086), + [anon_sym_static] = ACTIONS(1084), + [anon_sym_auto] = ACTIONS(1084), + [anon_sym_register] = ACTIONS(1084), + [anon_sym_inline] = ACTIONS(1084), + [anon_sym_const] = ACTIONS(1084), + [anon_sym_volatile] = ACTIONS(1084), + [anon_sym_restrict] = ACTIONS(1084), + [anon_sym__Atomic] = ACTIONS(1084), + [anon_sym_signed] = ACTIONS(1084), + [anon_sym_unsigned] = ACTIONS(1084), + [anon_sym_long] = ACTIONS(1084), + [anon_sym_short] = ACTIONS(1084), + [sym_primitive_type] = ACTIONS(1084), + [anon_sym_enum] = ACTIONS(1084), + [anon_sym_struct] = ACTIONS(1084), + [anon_sym_union] = ACTIONS(1084), + [anon_sym_if] = ACTIONS(1084), + [anon_sym_switch] = ACTIONS(1084), + [anon_sym_case] = ACTIONS(1084), + [anon_sym_default] = ACTIONS(1084), + [anon_sym_while] = ACTIONS(1084), + [anon_sym_do] = ACTIONS(1084), + [anon_sym_for] = ACTIONS(1084), + [anon_sym_return] = ACTIONS(1084), + [anon_sym_break] = ACTIONS(1084), + [anon_sym_continue] = ACTIONS(1084), + [anon_sym_goto] = ACTIONS(1084), + [anon_sym_DASH_DASH] = ACTIONS(1086), + [anon_sym_PLUS_PLUS] = ACTIONS(1086), + [anon_sym_sizeof] = ACTIONS(1084), + [sym_number_literal] = ACTIONS(1086), + [anon_sym_L_SQUOTE] = ACTIONS(1086), + [anon_sym_u_SQUOTE] = ACTIONS(1086), + [anon_sym_U_SQUOTE] = ACTIONS(1086), + [anon_sym_u8_SQUOTE] = ACTIONS(1086), + [anon_sym_SQUOTE] = ACTIONS(1086), + [anon_sym_L_DQUOTE] = ACTIONS(1086), + [anon_sym_u_DQUOTE] = ACTIONS(1086), + [anon_sym_U_DQUOTE] = ACTIONS(1086), + [anon_sym_u8_DQUOTE] = ACTIONS(1086), + [anon_sym_DQUOTE] = ACTIONS(1086), + [sym_true] = ACTIONS(1084), + [sym_false] = ACTIONS(1084), + [sym_null] = ACTIONS(1084), + [sym_comment] = ACTIONS(3), + }, + [117] = { + [sym_identifier] = ACTIONS(1088), + [aux_sym_preproc_include_token1] = ACTIONS(1088), + [aux_sym_preproc_def_token1] = ACTIONS(1088), + [aux_sym_preproc_if_token1] = ACTIONS(1088), + [aux_sym_preproc_if_token2] = ACTIONS(1088), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1088), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1088), + [aux_sym_preproc_else_token1] = ACTIONS(1088), + [aux_sym_preproc_elif_token1] = ACTIONS(1088), + [sym_preproc_directive] = ACTIONS(1088), + [anon_sym_LPAREN2] = ACTIONS(1090), + [anon_sym_BANG] = ACTIONS(1090), + [anon_sym_TILDE] = ACTIONS(1090), + [anon_sym_DASH] = ACTIONS(1088), + [anon_sym_PLUS] = ACTIONS(1088), + [anon_sym_STAR] = ACTIONS(1090), + [anon_sym_AMP] = ACTIONS(1090), + [anon_sym_SEMI] = ACTIONS(1090), + [anon_sym_typedef] = ACTIONS(1088), + [anon_sym_extern] = ACTIONS(1088), + [anon_sym___attribute__] = ACTIONS(1088), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1090), + [anon_sym___declspec] = ACTIONS(1088), + [anon_sym___cdecl] = ACTIONS(1088), + [anon_sym___clrcall] = ACTIONS(1088), + [anon_sym___stdcall] = ACTIONS(1088), + [anon_sym___fastcall] = ACTIONS(1088), + [anon_sym___thiscall] = ACTIONS(1088), + [anon_sym___vectorcall] = ACTIONS(1088), + [anon_sym_LBRACE] = ACTIONS(1090), + [anon_sym_static] = ACTIONS(1088), + [anon_sym_auto] = ACTIONS(1088), + [anon_sym_register] = ACTIONS(1088), + [anon_sym_inline] = ACTIONS(1088), + [anon_sym_const] = ACTIONS(1088), + [anon_sym_volatile] = ACTIONS(1088), + [anon_sym_restrict] = ACTIONS(1088), + [anon_sym__Atomic] = ACTIONS(1088), + [anon_sym_signed] = ACTIONS(1088), + [anon_sym_unsigned] = ACTIONS(1088), + [anon_sym_long] = ACTIONS(1088), + [anon_sym_short] = ACTIONS(1088), + [sym_primitive_type] = ACTIONS(1088), + [anon_sym_enum] = ACTIONS(1088), + [anon_sym_struct] = ACTIONS(1088), + [anon_sym_union] = ACTIONS(1088), + [anon_sym_if] = ACTIONS(1088), + [anon_sym_switch] = ACTIONS(1088), + [anon_sym_case] = ACTIONS(1088), + [anon_sym_default] = ACTIONS(1088), + [anon_sym_while] = ACTIONS(1088), + [anon_sym_do] = ACTIONS(1088), + [anon_sym_for] = ACTIONS(1088), + [anon_sym_return] = ACTIONS(1088), + [anon_sym_break] = ACTIONS(1088), + [anon_sym_continue] = ACTIONS(1088), + [anon_sym_goto] = ACTIONS(1088), + [anon_sym_DASH_DASH] = ACTIONS(1090), + [anon_sym_PLUS_PLUS] = ACTIONS(1090), + [anon_sym_sizeof] = ACTIONS(1088), + [sym_number_literal] = ACTIONS(1090), + [anon_sym_L_SQUOTE] = ACTIONS(1090), + [anon_sym_u_SQUOTE] = ACTIONS(1090), + [anon_sym_U_SQUOTE] = ACTIONS(1090), + [anon_sym_u8_SQUOTE] = ACTIONS(1090), + [anon_sym_SQUOTE] = ACTIONS(1090), + [anon_sym_L_DQUOTE] = ACTIONS(1090), + [anon_sym_u_DQUOTE] = ACTIONS(1090), + [anon_sym_U_DQUOTE] = ACTIONS(1090), + [anon_sym_u8_DQUOTE] = ACTIONS(1090), + [anon_sym_DQUOTE] = ACTIONS(1090), + [sym_true] = ACTIONS(1088), + [sym_false] = ACTIONS(1088), + [sym_null] = ACTIONS(1088), + [sym_comment] = ACTIONS(3), + }, + [118] = { + [sym_identifier] = ACTIONS(1092), + [aux_sym_preproc_include_token1] = ACTIONS(1092), + [aux_sym_preproc_def_token1] = ACTIONS(1092), + [aux_sym_preproc_if_token1] = ACTIONS(1092), + [aux_sym_preproc_if_token2] = ACTIONS(1092), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1092), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1092), + [aux_sym_preproc_else_token1] = ACTIONS(1092), + [aux_sym_preproc_elif_token1] = ACTIONS(1092), + [sym_preproc_directive] = ACTIONS(1092), + [anon_sym_LPAREN2] = ACTIONS(1094), + [anon_sym_BANG] = ACTIONS(1094), + [anon_sym_TILDE] = ACTIONS(1094), + [anon_sym_DASH] = ACTIONS(1092), + [anon_sym_PLUS] = ACTIONS(1092), + [anon_sym_STAR] = ACTIONS(1094), + [anon_sym_AMP] = ACTIONS(1094), + [anon_sym_SEMI] = ACTIONS(1094), + [anon_sym_typedef] = ACTIONS(1092), + [anon_sym_extern] = ACTIONS(1092), + [anon_sym___attribute__] = ACTIONS(1092), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1094), + [anon_sym___declspec] = ACTIONS(1092), + [anon_sym___cdecl] = ACTIONS(1092), + [anon_sym___clrcall] = ACTIONS(1092), + [anon_sym___stdcall] = ACTIONS(1092), + [anon_sym___fastcall] = ACTIONS(1092), + [anon_sym___thiscall] = ACTIONS(1092), + [anon_sym___vectorcall] = ACTIONS(1092), + [anon_sym_LBRACE] = ACTIONS(1094), + [anon_sym_static] = ACTIONS(1092), + [anon_sym_auto] = ACTIONS(1092), + [anon_sym_register] = ACTIONS(1092), + [anon_sym_inline] = ACTIONS(1092), + [anon_sym_const] = ACTIONS(1092), + [anon_sym_volatile] = ACTIONS(1092), + [anon_sym_restrict] = ACTIONS(1092), + [anon_sym__Atomic] = ACTIONS(1092), + [anon_sym_signed] = ACTIONS(1092), + [anon_sym_unsigned] = ACTIONS(1092), + [anon_sym_long] = ACTIONS(1092), + [anon_sym_short] = ACTIONS(1092), + [sym_primitive_type] = ACTIONS(1092), + [anon_sym_enum] = ACTIONS(1092), + [anon_sym_struct] = ACTIONS(1092), + [anon_sym_union] = ACTIONS(1092), + [anon_sym_if] = ACTIONS(1092), + [anon_sym_switch] = ACTIONS(1092), + [anon_sym_case] = ACTIONS(1092), + [anon_sym_default] = ACTIONS(1092), + [anon_sym_while] = ACTIONS(1092), + [anon_sym_do] = ACTIONS(1092), + [anon_sym_for] = ACTIONS(1092), + [anon_sym_return] = ACTIONS(1092), + [anon_sym_break] = ACTIONS(1092), + [anon_sym_continue] = ACTIONS(1092), + [anon_sym_goto] = ACTIONS(1092), + [anon_sym_DASH_DASH] = ACTIONS(1094), + [anon_sym_PLUS_PLUS] = ACTIONS(1094), + [anon_sym_sizeof] = ACTIONS(1092), + [sym_number_literal] = ACTIONS(1094), + [anon_sym_L_SQUOTE] = ACTIONS(1094), + [anon_sym_u_SQUOTE] = ACTIONS(1094), + [anon_sym_U_SQUOTE] = ACTIONS(1094), + [anon_sym_u8_SQUOTE] = ACTIONS(1094), + [anon_sym_SQUOTE] = ACTIONS(1094), + [anon_sym_L_DQUOTE] = ACTIONS(1094), + [anon_sym_u_DQUOTE] = ACTIONS(1094), + [anon_sym_U_DQUOTE] = ACTIONS(1094), + [anon_sym_u8_DQUOTE] = ACTIONS(1094), + [anon_sym_DQUOTE] = ACTIONS(1094), + [sym_true] = ACTIONS(1092), + [sym_false] = ACTIONS(1092), + [sym_null] = ACTIONS(1092), + [sym_comment] = ACTIONS(3), + }, + [119] = { + [sym_identifier] = ACTIONS(1096), + [aux_sym_preproc_include_token1] = ACTIONS(1096), + [aux_sym_preproc_def_token1] = ACTIONS(1096), + [aux_sym_preproc_if_token1] = ACTIONS(1096), + [aux_sym_preproc_if_token2] = ACTIONS(1096), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1096), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1096), + [aux_sym_preproc_else_token1] = ACTIONS(1096), + [aux_sym_preproc_elif_token1] = ACTIONS(1096), + [sym_preproc_directive] = ACTIONS(1096), + [anon_sym_LPAREN2] = ACTIONS(1098), + [anon_sym_BANG] = ACTIONS(1098), + [anon_sym_TILDE] = ACTIONS(1098), + [anon_sym_DASH] = ACTIONS(1096), + [anon_sym_PLUS] = ACTIONS(1096), + [anon_sym_STAR] = ACTIONS(1098), + [anon_sym_AMP] = ACTIONS(1098), + [anon_sym_SEMI] = ACTIONS(1098), + [anon_sym_typedef] = ACTIONS(1096), + [anon_sym_extern] = ACTIONS(1096), + [anon_sym___attribute__] = ACTIONS(1096), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1098), + [anon_sym___declspec] = ACTIONS(1096), + [anon_sym___cdecl] = ACTIONS(1096), + [anon_sym___clrcall] = ACTIONS(1096), + [anon_sym___stdcall] = ACTIONS(1096), + [anon_sym___fastcall] = ACTIONS(1096), + [anon_sym___thiscall] = ACTIONS(1096), + [anon_sym___vectorcall] = ACTIONS(1096), + [anon_sym_LBRACE] = ACTIONS(1098), + [anon_sym_static] = ACTIONS(1096), + [anon_sym_auto] = ACTIONS(1096), + [anon_sym_register] = ACTIONS(1096), + [anon_sym_inline] = ACTIONS(1096), + [anon_sym_const] = ACTIONS(1096), + [anon_sym_volatile] = ACTIONS(1096), + [anon_sym_restrict] = ACTIONS(1096), + [anon_sym__Atomic] = ACTIONS(1096), + [anon_sym_signed] = ACTIONS(1096), + [anon_sym_unsigned] = ACTIONS(1096), + [anon_sym_long] = ACTIONS(1096), + [anon_sym_short] = ACTIONS(1096), + [sym_primitive_type] = ACTIONS(1096), + [anon_sym_enum] = ACTIONS(1096), + [anon_sym_struct] = ACTIONS(1096), + [anon_sym_union] = ACTIONS(1096), + [anon_sym_if] = ACTIONS(1096), + [anon_sym_switch] = ACTIONS(1096), + [anon_sym_case] = ACTIONS(1096), + [anon_sym_default] = ACTIONS(1096), + [anon_sym_while] = ACTIONS(1096), + [anon_sym_do] = ACTIONS(1096), + [anon_sym_for] = ACTIONS(1096), + [anon_sym_return] = ACTIONS(1096), + [anon_sym_break] = ACTIONS(1096), + [anon_sym_continue] = ACTIONS(1096), + [anon_sym_goto] = ACTIONS(1096), + [anon_sym_DASH_DASH] = ACTIONS(1098), + [anon_sym_PLUS_PLUS] = ACTIONS(1098), + [anon_sym_sizeof] = ACTIONS(1096), + [sym_number_literal] = ACTIONS(1098), + [anon_sym_L_SQUOTE] = ACTIONS(1098), + [anon_sym_u_SQUOTE] = ACTIONS(1098), + [anon_sym_U_SQUOTE] = ACTIONS(1098), + [anon_sym_u8_SQUOTE] = ACTIONS(1098), + [anon_sym_SQUOTE] = ACTIONS(1098), + [anon_sym_L_DQUOTE] = ACTIONS(1098), + [anon_sym_u_DQUOTE] = ACTIONS(1098), + [anon_sym_U_DQUOTE] = ACTIONS(1098), + [anon_sym_u8_DQUOTE] = ACTIONS(1098), + [anon_sym_DQUOTE] = ACTIONS(1098), + [sym_true] = ACTIONS(1096), + [sym_false] = ACTIONS(1096), + [sym_null] = ACTIONS(1096), + [sym_comment] = ACTIONS(3), + }, + [120] = { + [sym_identifier] = ACTIONS(1100), + [aux_sym_preproc_include_token1] = ACTIONS(1100), + [aux_sym_preproc_def_token1] = ACTIONS(1100), + [aux_sym_preproc_if_token1] = ACTIONS(1100), + [aux_sym_preproc_if_token2] = ACTIONS(1100), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1100), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1100), + [aux_sym_preproc_else_token1] = ACTIONS(1100), + [aux_sym_preproc_elif_token1] = ACTIONS(1100), + [sym_preproc_directive] = ACTIONS(1100), + [anon_sym_LPAREN2] = ACTIONS(1102), + [anon_sym_BANG] = ACTIONS(1102), + [anon_sym_TILDE] = ACTIONS(1102), + [anon_sym_DASH] = ACTIONS(1100), + [anon_sym_PLUS] = ACTIONS(1100), + [anon_sym_STAR] = ACTIONS(1102), + [anon_sym_AMP] = ACTIONS(1102), + [anon_sym_SEMI] = ACTIONS(1102), + [anon_sym_typedef] = ACTIONS(1100), + [anon_sym_extern] = ACTIONS(1100), + [anon_sym___attribute__] = ACTIONS(1100), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1102), + [anon_sym___declspec] = ACTIONS(1100), + [anon_sym___cdecl] = ACTIONS(1100), + [anon_sym___clrcall] = ACTIONS(1100), + [anon_sym___stdcall] = ACTIONS(1100), + [anon_sym___fastcall] = ACTIONS(1100), + [anon_sym___thiscall] = ACTIONS(1100), + [anon_sym___vectorcall] = ACTIONS(1100), + [anon_sym_LBRACE] = ACTIONS(1102), + [anon_sym_static] = ACTIONS(1100), + [anon_sym_auto] = ACTIONS(1100), + [anon_sym_register] = ACTIONS(1100), + [anon_sym_inline] = ACTIONS(1100), + [anon_sym_const] = ACTIONS(1100), + [anon_sym_volatile] = ACTIONS(1100), + [anon_sym_restrict] = ACTIONS(1100), + [anon_sym__Atomic] = ACTIONS(1100), + [anon_sym_signed] = ACTIONS(1100), + [anon_sym_unsigned] = ACTIONS(1100), + [anon_sym_long] = ACTIONS(1100), + [anon_sym_short] = ACTIONS(1100), + [sym_primitive_type] = ACTIONS(1100), + [anon_sym_enum] = ACTIONS(1100), + [anon_sym_struct] = ACTIONS(1100), + [anon_sym_union] = ACTIONS(1100), + [anon_sym_if] = ACTIONS(1100), + [anon_sym_switch] = ACTIONS(1100), + [anon_sym_case] = ACTIONS(1100), + [anon_sym_default] = ACTIONS(1100), + [anon_sym_while] = ACTIONS(1100), + [anon_sym_do] = ACTIONS(1100), + [anon_sym_for] = ACTIONS(1100), + [anon_sym_return] = ACTIONS(1100), + [anon_sym_break] = ACTIONS(1100), + [anon_sym_continue] = ACTIONS(1100), + [anon_sym_goto] = ACTIONS(1100), + [anon_sym_DASH_DASH] = ACTIONS(1102), + [anon_sym_PLUS_PLUS] = ACTIONS(1102), + [anon_sym_sizeof] = ACTIONS(1100), + [sym_number_literal] = ACTIONS(1102), + [anon_sym_L_SQUOTE] = ACTIONS(1102), + [anon_sym_u_SQUOTE] = ACTIONS(1102), + [anon_sym_U_SQUOTE] = ACTIONS(1102), + [anon_sym_u8_SQUOTE] = ACTIONS(1102), + [anon_sym_SQUOTE] = ACTIONS(1102), + [anon_sym_L_DQUOTE] = ACTIONS(1102), + [anon_sym_u_DQUOTE] = ACTIONS(1102), + [anon_sym_U_DQUOTE] = ACTIONS(1102), + [anon_sym_u8_DQUOTE] = ACTIONS(1102), + [anon_sym_DQUOTE] = ACTIONS(1102), + [sym_true] = ACTIONS(1100), + [sym_false] = ACTIONS(1100), + [sym_null] = ACTIONS(1100), + [sym_comment] = ACTIONS(3), + }, + [121] = { + [sym_identifier] = ACTIONS(1104), + [aux_sym_preproc_include_token1] = ACTIONS(1104), + [aux_sym_preproc_def_token1] = ACTIONS(1104), + [aux_sym_preproc_if_token1] = ACTIONS(1104), + [aux_sym_preproc_if_token2] = ACTIONS(1104), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1104), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1104), + [aux_sym_preproc_else_token1] = ACTIONS(1104), + [aux_sym_preproc_elif_token1] = ACTIONS(1104), + [sym_preproc_directive] = ACTIONS(1104), + [anon_sym_LPAREN2] = ACTIONS(1106), + [anon_sym_BANG] = ACTIONS(1106), + [anon_sym_TILDE] = ACTIONS(1106), + [anon_sym_DASH] = ACTIONS(1104), + [anon_sym_PLUS] = ACTIONS(1104), + [anon_sym_STAR] = ACTIONS(1106), + [anon_sym_AMP] = ACTIONS(1106), + [anon_sym_SEMI] = ACTIONS(1106), + [anon_sym_typedef] = ACTIONS(1104), + [anon_sym_extern] = ACTIONS(1104), + [anon_sym___attribute__] = ACTIONS(1104), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1106), + [anon_sym___declspec] = ACTIONS(1104), + [anon_sym___cdecl] = ACTIONS(1104), + [anon_sym___clrcall] = ACTIONS(1104), + [anon_sym___stdcall] = ACTIONS(1104), + [anon_sym___fastcall] = ACTIONS(1104), + [anon_sym___thiscall] = ACTIONS(1104), + [anon_sym___vectorcall] = ACTIONS(1104), + [anon_sym_LBRACE] = ACTIONS(1106), + [anon_sym_static] = ACTIONS(1104), + [anon_sym_auto] = ACTIONS(1104), + [anon_sym_register] = ACTIONS(1104), + [anon_sym_inline] = ACTIONS(1104), + [anon_sym_const] = ACTIONS(1104), + [anon_sym_volatile] = ACTIONS(1104), + [anon_sym_restrict] = ACTIONS(1104), + [anon_sym__Atomic] = ACTIONS(1104), + [anon_sym_signed] = ACTIONS(1104), + [anon_sym_unsigned] = ACTIONS(1104), + [anon_sym_long] = ACTIONS(1104), + [anon_sym_short] = ACTIONS(1104), + [sym_primitive_type] = ACTIONS(1104), + [anon_sym_enum] = ACTIONS(1104), + [anon_sym_struct] = ACTIONS(1104), + [anon_sym_union] = ACTIONS(1104), + [anon_sym_if] = ACTIONS(1104), + [anon_sym_switch] = ACTIONS(1104), + [anon_sym_case] = ACTIONS(1104), + [anon_sym_default] = ACTIONS(1104), + [anon_sym_while] = ACTIONS(1104), + [anon_sym_do] = ACTIONS(1104), + [anon_sym_for] = ACTIONS(1104), + [anon_sym_return] = ACTIONS(1104), + [anon_sym_break] = ACTIONS(1104), + [anon_sym_continue] = ACTIONS(1104), + [anon_sym_goto] = ACTIONS(1104), + [anon_sym_DASH_DASH] = ACTIONS(1106), + [anon_sym_PLUS_PLUS] = ACTIONS(1106), + [anon_sym_sizeof] = ACTIONS(1104), + [sym_number_literal] = ACTIONS(1106), + [anon_sym_L_SQUOTE] = ACTIONS(1106), + [anon_sym_u_SQUOTE] = ACTIONS(1106), + [anon_sym_U_SQUOTE] = ACTIONS(1106), + [anon_sym_u8_SQUOTE] = ACTIONS(1106), + [anon_sym_SQUOTE] = ACTIONS(1106), + [anon_sym_L_DQUOTE] = ACTIONS(1106), + [anon_sym_u_DQUOTE] = ACTIONS(1106), + [anon_sym_U_DQUOTE] = ACTIONS(1106), + [anon_sym_u8_DQUOTE] = ACTIONS(1106), + [anon_sym_DQUOTE] = ACTIONS(1106), + [sym_true] = ACTIONS(1104), + [sym_false] = ACTIONS(1104), + [sym_null] = ACTIONS(1104), + [sym_comment] = ACTIONS(3), + }, + [122] = { + [sym_identifier] = ACTIONS(1108), + [aux_sym_preproc_include_token1] = ACTIONS(1108), + [aux_sym_preproc_def_token1] = ACTIONS(1108), + [aux_sym_preproc_if_token1] = ACTIONS(1108), + [aux_sym_preproc_if_token2] = ACTIONS(1108), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1108), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1108), + [aux_sym_preproc_else_token1] = ACTIONS(1108), + [aux_sym_preproc_elif_token1] = ACTIONS(1108), + [sym_preproc_directive] = ACTIONS(1108), + [anon_sym_LPAREN2] = ACTIONS(1110), + [anon_sym_BANG] = ACTIONS(1110), + [anon_sym_TILDE] = ACTIONS(1110), + [anon_sym_DASH] = ACTIONS(1108), + [anon_sym_PLUS] = ACTIONS(1108), + [anon_sym_STAR] = ACTIONS(1110), + [anon_sym_AMP] = ACTIONS(1110), + [anon_sym_SEMI] = ACTIONS(1110), + [anon_sym_typedef] = ACTIONS(1108), + [anon_sym_extern] = ACTIONS(1108), + [anon_sym___attribute__] = ACTIONS(1108), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1110), + [anon_sym___declspec] = ACTIONS(1108), + [anon_sym___cdecl] = ACTIONS(1108), + [anon_sym___clrcall] = ACTIONS(1108), + [anon_sym___stdcall] = ACTIONS(1108), + [anon_sym___fastcall] = ACTIONS(1108), + [anon_sym___thiscall] = ACTIONS(1108), + [anon_sym___vectorcall] = ACTIONS(1108), + [anon_sym_LBRACE] = ACTIONS(1110), + [anon_sym_static] = ACTIONS(1108), + [anon_sym_auto] = ACTIONS(1108), + [anon_sym_register] = ACTIONS(1108), + [anon_sym_inline] = ACTIONS(1108), + [anon_sym_const] = ACTIONS(1108), + [anon_sym_volatile] = ACTIONS(1108), + [anon_sym_restrict] = ACTIONS(1108), + [anon_sym__Atomic] = ACTIONS(1108), + [anon_sym_signed] = ACTIONS(1108), + [anon_sym_unsigned] = ACTIONS(1108), + [anon_sym_long] = ACTIONS(1108), + [anon_sym_short] = ACTIONS(1108), + [sym_primitive_type] = ACTIONS(1108), + [anon_sym_enum] = ACTIONS(1108), + [anon_sym_struct] = ACTIONS(1108), + [anon_sym_union] = ACTIONS(1108), + [anon_sym_if] = ACTIONS(1108), + [anon_sym_switch] = ACTIONS(1108), + [anon_sym_case] = ACTIONS(1108), + [anon_sym_default] = ACTIONS(1108), + [anon_sym_while] = ACTIONS(1108), + [anon_sym_do] = ACTIONS(1108), + [anon_sym_for] = ACTIONS(1108), + [anon_sym_return] = ACTIONS(1108), + [anon_sym_break] = ACTIONS(1108), + [anon_sym_continue] = ACTIONS(1108), + [anon_sym_goto] = ACTIONS(1108), + [anon_sym_DASH_DASH] = ACTIONS(1110), + [anon_sym_PLUS_PLUS] = ACTIONS(1110), + [anon_sym_sizeof] = ACTIONS(1108), + [sym_number_literal] = ACTIONS(1110), + [anon_sym_L_SQUOTE] = ACTIONS(1110), + [anon_sym_u_SQUOTE] = ACTIONS(1110), + [anon_sym_U_SQUOTE] = ACTIONS(1110), + [anon_sym_u8_SQUOTE] = ACTIONS(1110), + [anon_sym_SQUOTE] = ACTIONS(1110), + [anon_sym_L_DQUOTE] = ACTIONS(1110), + [anon_sym_u_DQUOTE] = ACTIONS(1110), + [anon_sym_U_DQUOTE] = ACTIONS(1110), + [anon_sym_u8_DQUOTE] = ACTIONS(1110), + [anon_sym_DQUOTE] = ACTIONS(1110), + [sym_true] = ACTIONS(1108), + [sym_false] = ACTIONS(1108), + [sym_null] = ACTIONS(1108), + [sym_comment] = ACTIONS(3), + }, + [123] = { + [sym_identifier] = ACTIONS(1112), + [aux_sym_preproc_include_token1] = ACTIONS(1112), + [aux_sym_preproc_def_token1] = ACTIONS(1112), + [aux_sym_preproc_if_token1] = ACTIONS(1112), + [aux_sym_preproc_if_token2] = ACTIONS(1112), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1112), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1112), + [aux_sym_preproc_else_token1] = ACTIONS(1112), + [aux_sym_preproc_elif_token1] = ACTIONS(1112), + [sym_preproc_directive] = ACTIONS(1112), + [anon_sym_LPAREN2] = ACTIONS(1114), + [anon_sym_BANG] = ACTIONS(1114), + [anon_sym_TILDE] = ACTIONS(1114), + [anon_sym_DASH] = ACTIONS(1112), + [anon_sym_PLUS] = ACTIONS(1112), + [anon_sym_STAR] = ACTIONS(1114), + [anon_sym_AMP] = ACTIONS(1114), + [anon_sym_SEMI] = ACTIONS(1114), + [anon_sym_typedef] = ACTIONS(1112), + [anon_sym_extern] = ACTIONS(1112), + [anon_sym___attribute__] = ACTIONS(1112), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1114), + [anon_sym___declspec] = ACTIONS(1112), + [anon_sym___cdecl] = ACTIONS(1112), + [anon_sym___clrcall] = ACTIONS(1112), + [anon_sym___stdcall] = ACTIONS(1112), + [anon_sym___fastcall] = ACTIONS(1112), + [anon_sym___thiscall] = ACTIONS(1112), + [anon_sym___vectorcall] = ACTIONS(1112), + [anon_sym_LBRACE] = ACTIONS(1114), + [anon_sym_static] = ACTIONS(1112), + [anon_sym_auto] = ACTIONS(1112), + [anon_sym_register] = ACTIONS(1112), + [anon_sym_inline] = ACTIONS(1112), + [anon_sym_const] = ACTIONS(1112), + [anon_sym_volatile] = ACTIONS(1112), + [anon_sym_restrict] = ACTIONS(1112), + [anon_sym__Atomic] = ACTIONS(1112), + [anon_sym_signed] = ACTIONS(1112), + [anon_sym_unsigned] = ACTIONS(1112), + [anon_sym_long] = ACTIONS(1112), + [anon_sym_short] = ACTIONS(1112), + [sym_primitive_type] = ACTIONS(1112), + [anon_sym_enum] = ACTIONS(1112), + [anon_sym_struct] = ACTIONS(1112), + [anon_sym_union] = ACTIONS(1112), + [anon_sym_if] = ACTIONS(1112), + [anon_sym_switch] = ACTIONS(1112), + [anon_sym_case] = ACTIONS(1112), + [anon_sym_default] = ACTIONS(1112), + [anon_sym_while] = ACTIONS(1112), + [anon_sym_do] = ACTIONS(1112), + [anon_sym_for] = ACTIONS(1112), + [anon_sym_return] = ACTIONS(1112), + [anon_sym_break] = ACTIONS(1112), + [anon_sym_continue] = ACTIONS(1112), + [anon_sym_goto] = ACTIONS(1112), + [anon_sym_DASH_DASH] = ACTIONS(1114), + [anon_sym_PLUS_PLUS] = ACTIONS(1114), + [anon_sym_sizeof] = ACTIONS(1112), + [sym_number_literal] = ACTIONS(1114), + [anon_sym_L_SQUOTE] = ACTIONS(1114), + [anon_sym_u_SQUOTE] = ACTIONS(1114), + [anon_sym_U_SQUOTE] = ACTIONS(1114), + [anon_sym_u8_SQUOTE] = ACTIONS(1114), + [anon_sym_SQUOTE] = ACTIONS(1114), + [anon_sym_L_DQUOTE] = ACTIONS(1114), + [anon_sym_u_DQUOTE] = ACTIONS(1114), + [anon_sym_U_DQUOTE] = ACTIONS(1114), + [anon_sym_u8_DQUOTE] = ACTIONS(1114), + [anon_sym_DQUOTE] = ACTIONS(1114), + [sym_true] = ACTIONS(1112), + [sym_false] = ACTIONS(1112), + [sym_null] = ACTIONS(1112), + [sym_comment] = ACTIONS(3), + }, + [124] = { + [sym_identifier] = ACTIONS(1116), + [aux_sym_preproc_include_token1] = ACTIONS(1116), + [aux_sym_preproc_def_token1] = ACTIONS(1116), + [aux_sym_preproc_if_token1] = ACTIONS(1116), + [aux_sym_preproc_if_token2] = ACTIONS(1116), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1116), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1116), + [aux_sym_preproc_else_token1] = ACTIONS(1116), + [aux_sym_preproc_elif_token1] = ACTIONS(1116), + [sym_preproc_directive] = ACTIONS(1116), + [anon_sym_LPAREN2] = ACTIONS(1118), + [anon_sym_BANG] = ACTIONS(1118), + [anon_sym_TILDE] = ACTIONS(1118), + [anon_sym_DASH] = ACTIONS(1116), + [anon_sym_PLUS] = ACTIONS(1116), + [anon_sym_STAR] = ACTIONS(1118), + [anon_sym_AMP] = ACTIONS(1118), + [anon_sym_SEMI] = ACTIONS(1118), + [anon_sym_typedef] = ACTIONS(1116), + [anon_sym_extern] = ACTIONS(1116), + [anon_sym___attribute__] = ACTIONS(1116), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1118), + [anon_sym___declspec] = ACTIONS(1116), + [anon_sym___cdecl] = ACTIONS(1116), + [anon_sym___clrcall] = ACTIONS(1116), + [anon_sym___stdcall] = ACTIONS(1116), + [anon_sym___fastcall] = ACTIONS(1116), + [anon_sym___thiscall] = ACTIONS(1116), + [anon_sym___vectorcall] = ACTIONS(1116), + [anon_sym_LBRACE] = ACTIONS(1118), + [anon_sym_static] = ACTIONS(1116), + [anon_sym_auto] = ACTIONS(1116), + [anon_sym_register] = ACTIONS(1116), + [anon_sym_inline] = ACTIONS(1116), + [anon_sym_const] = ACTIONS(1116), + [anon_sym_volatile] = ACTIONS(1116), + [anon_sym_restrict] = ACTIONS(1116), + [anon_sym__Atomic] = ACTIONS(1116), + [anon_sym_signed] = ACTIONS(1116), + [anon_sym_unsigned] = ACTIONS(1116), + [anon_sym_long] = ACTIONS(1116), + [anon_sym_short] = ACTIONS(1116), + [sym_primitive_type] = ACTIONS(1116), + [anon_sym_enum] = ACTIONS(1116), + [anon_sym_struct] = ACTIONS(1116), + [anon_sym_union] = ACTIONS(1116), + [anon_sym_if] = ACTIONS(1116), + [anon_sym_switch] = ACTIONS(1116), + [anon_sym_case] = ACTIONS(1116), + [anon_sym_default] = ACTIONS(1116), + [anon_sym_while] = ACTIONS(1116), + [anon_sym_do] = ACTIONS(1116), + [anon_sym_for] = ACTIONS(1116), + [anon_sym_return] = ACTIONS(1116), + [anon_sym_break] = ACTIONS(1116), + [anon_sym_continue] = ACTIONS(1116), + [anon_sym_goto] = ACTIONS(1116), + [anon_sym_DASH_DASH] = ACTIONS(1118), + [anon_sym_PLUS_PLUS] = ACTIONS(1118), + [anon_sym_sizeof] = ACTIONS(1116), + [sym_number_literal] = ACTIONS(1118), + [anon_sym_L_SQUOTE] = ACTIONS(1118), + [anon_sym_u_SQUOTE] = ACTIONS(1118), + [anon_sym_U_SQUOTE] = ACTIONS(1118), + [anon_sym_u8_SQUOTE] = ACTIONS(1118), + [anon_sym_SQUOTE] = ACTIONS(1118), + [anon_sym_L_DQUOTE] = ACTIONS(1118), + [anon_sym_u_DQUOTE] = ACTIONS(1118), + [anon_sym_U_DQUOTE] = ACTIONS(1118), + [anon_sym_u8_DQUOTE] = ACTIONS(1118), + [anon_sym_DQUOTE] = ACTIONS(1118), + [sym_true] = ACTIONS(1116), + [sym_false] = ACTIONS(1116), + [sym_null] = ACTIONS(1116), + [sym_comment] = ACTIONS(3), + }, + [125] = { + [sym_identifier] = ACTIONS(1120), + [aux_sym_preproc_include_token1] = ACTIONS(1120), + [aux_sym_preproc_def_token1] = ACTIONS(1120), + [aux_sym_preproc_if_token1] = ACTIONS(1120), + [aux_sym_preproc_if_token2] = ACTIONS(1120), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1120), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1120), + [aux_sym_preproc_else_token1] = ACTIONS(1120), + [aux_sym_preproc_elif_token1] = ACTIONS(1120), + [sym_preproc_directive] = ACTIONS(1120), + [anon_sym_LPAREN2] = ACTIONS(1122), + [anon_sym_BANG] = ACTIONS(1122), + [anon_sym_TILDE] = ACTIONS(1122), + [anon_sym_DASH] = ACTIONS(1120), + [anon_sym_PLUS] = ACTIONS(1120), + [anon_sym_STAR] = ACTIONS(1122), + [anon_sym_AMP] = ACTIONS(1122), + [anon_sym_SEMI] = ACTIONS(1122), + [anon_sym_typedef] = ACTIONS(1120), + [anon_sym_extern] = ACTIONS(1120), + [anon_sym___attribute__] = ACTIONS(1120), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1122), + [anon_sym___declspec] = ACTIONS(1120), + [anon_sym___cdecl] = ACTIONS(1120), + [anon_sym___clrcall] = ACTIONS(1120), + [anon_sym___stdcall] = ACTIONS(1120), + [anon_sym___fastcall] = ACTIONS(1120), + [anon_sym___thiscall] = ACTIONS(1120), + [anon_sym___vectorcall] = ACTIONS(1120), + [anon_sym_LBRACE] = ACTIONS(1122), + [anon_sym_static] = ACTIONS(1120), + [anon_sym_auto] = ACTIONS(1120), + [anon_sym_register] = ACTIONS(1120), + [anon_sym_inline] = ACTIONS(1120), + [anon_sym_const] = ACTIONS(1120), + [anon_sym_volatile] = ACTIONS(1120), + [anon_sym_restrict] = ACTIONS(1120), + [anon_sym__Atomic] = ACTIONS(1120), + [anon_sym_signed] = ACTIONS(1120), + [anon_sym_unsigned] = ACTIONS(1120), + [anon_sym_long] = ACTIONS(1120), + [anon_sym_short] = ACTIONS(1120), + [sym_primitive_type] = ACTIONS(1120), + [anon_sym_enum] = ACTIONS(1120), + [anon_sym_struct] = ACTIONS(1120), + [anon_sym_union] = ACTIONS(1120), + [anon_sym_if] = ACTIONS(1120), + [anon_sym_switch] = ACTIONS(1120), + [anon_sym_case] = ACTIONS(1120), + [anon_sym_default] = ACTIONS(1120), + [anon_sym_while] = ACTIONS(1120), + [anon_sym_do] = ACTIONS(1120), + [anon_sym_for] = ACTIONS(1120), + [anon_sym_return] = ACTIONS(1120), + [anon_sym_break] = ACTIONS(1120), + [anon_sym_continue] = ACTIONS(1120), + [anon_sym_goto] = ACTIONS(1120), + [anon_sym_DASH_DASH] = ACTIONS(1122), + [anon_sym_PLUS_PLUS] = ACTIONS(1122), + [anon_sym_sizeof] = ACTIONS(1120), + [sym_number_literal] = ACTIONS(1122), + [anon_sym_L_SQUOTE] = ACTIONS(1122), + [anon_sym_u_SQUOTE] = ACTIONS(1122), + [anon_sym_U_SQUOTE] = ACTIONS(1122), + [anon_sym_u8_SQUOTE] = ACTIONS(1122), + [anon_sym_SQUOTE] = ACTIONS(1122), + [anon_sym_L_DQUOTE] = ACTIONS(1122), + [anon_sym_u_DQUOTE] = ACTIONS(1122), + [anon_sym_U_DQUOTE] = ACTIONS(1122), + [anon_sym_u8_DQUOTE] = ACTIONS(1122), + [anon_sym_DQUOTE] = ACTIONS(1122), + [sym_true] = ACTIONS(1120), + [sym_false] = ACTIONS(1120), + [sym_null] = ACTIONS(1120), + [sym_comment] = ACTIONS(3), + }, + [126] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(267), + [sym_attributed_statement] = STATE(267), + [sym_labeled_statement] = STATE(267), + [sym_expression_statement] = STATE(267), + [sym_if_statement] = STATE(267), + [sym_switch_statement] = STATE(267), + [sym_case_statement] = STATE(267), + [sym_while_statement] = STATE(267), + [sym_do_statement] = STATE(267), + [sym_for_statement] = STATE(267), + [sym_return_statement] = STATE(267), + [sym_break_statement] = STATE(267), + [sym_continue_statement] = STATE(267), + [sym_goto_statement] = STATE(267), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [127] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(193), + [sym_attributed_statement] = STATE(193), + [sym_labeled_statement] = STATE(193), + [sym_expression_statement] = STATE(193), + [sym_if_statement] = STATE(193), + [sym_switch_statement] = STATE(193), + [sym_case_statement] = STATE(193), + [sym_while_statement] = STATE(193), + [sym_do_statement] = STATE(193), + [sym_for_statement] = STATE(193), + [sym_return_statement] = STATE(193), + [sym_break_statement] = STATE(193), + [sym_continue_statement] = STATE(193), + [sym_goto_statement] = STATE(193), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [128] = { + [ts_builtin_sym_end] = ACTIONS(1002), + [sym_identifier] = ACTIONS(1000), + [aux_sym_preproc_include_token1] = ACTIONS(1000), + [aux_sym_preproc_def_token1] = ACTIONS(1000), + [aux_sym_preproc_if_token1] = ACTIONS(1000), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1000), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1000), + [sym_preproc_directive] = ACTIONS(1000), + [anon_sym_LPAREN2] = ACTIONS(1002), + [anon_sym_BANG] = ACTIONS(1002), + [anon_sym_TILDE] = ACTIONS(1002), + [anon_sym_DASH] = ACTIONS(1000), + [anon_sym_PLUS] = ACTIONS(1000), + [anon_sym_STAR] = ACTIONS(1002), + [anon_sym_AMP] = ACTIONS(1002), + [anon_sym_SEMI] = ACTIONS(1002), + [anon_sym_typedef] = ACTIONS(1000), + [anon_sym_extern] = ACTIONS(1000), + [anon_sym___attribute__] = ACTIONS(1000), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1002), + [anon_sym___declspec] = ACTIONS(1000), + [anon_sym___cdecl] = ACTIONS(1000), + [anon_sym___clrcall] = ACTIONS(1000), + [anon_sym___stdcall] = ACTIONS(1000), + [anon_sym___fastcall] = ACTIONS(1000), + [anon_sym___thiscall] = ACTIONS(1000), + [anon_sym___vectorcall] = ACTIONS(1000), + [anon_sym_LBRACE] = ACTIONS(1002), + [anon_sym_static] = ACTIONS(1000), + [anon_sym_auto] = ACTIONS(1000), + [anon_sym_register] = ACTIONS(1000), + [anon_sym_inline] = ACTIONS(1000), + [anon_sym_const] = ACTIONS(1000), + [anon_sym_volatile] = ACTIONS(1000), + [anon_sym_restrict] = ACTIONS(1000), + [anon_sym__Atomic] = ACTIONS(1000), + [anon_sym_signed] = ACTIONS(1000), + [anon_sym_unsigned] = ACTIONS(1000), + [anon_sym_long] = ACTIONS(1000), + [anon_sym_short] = ACTIONS(1000), + [sym_primitive_type] = ACTIONS(1000), + [anon_sym_enum] = ACTIONS(1000), + [anon_sym_struct] = ACTIONS(1000), + [anon_sym_union] = ACTIONS(1000), + [anon_sym_if] = ACTIONS(1000), + [anon_sym_else] = ACTIONS(1000), + [anon_sym_switch] = ACTIONS(1000), + [anon_sym_case] = ACTIONS(1000), + [anon_sym_default] = ACTIONS(1000), + [anon_sym_while] = ACTIONS(1000), + [anon_sym_do] = ACTIONS(1000), + [anon_sym_for] = ACTIONS(1000), + [anon_sym_return] = ACTIONS(1000), + [anon_sym_break] = ACTIONS(1000), + [anon_sym_continue] = ACTIONS(1000), + [anon_sym_goto] = ACTIONS(1000), + [anon_sym_DASH_DASH] = ACTIONS(1002), + [anon_sym_PLUS_PLUS] = ACTIONS(1002), + [anon_sym_sizeof] = ACTIONS(1000), + [sym_number_literal] = ACTIONS(1002), + [anon_sym_L_SQUOTE] = ACTIONS(1002), + [anon_sym_u_SQUOTE] = ACTIONS(1002), + [anon_sym_U_SQUOTE] = ACTIONS(1002), + [anon_sym_u8_SQUOTE] = ACTIONS(1002), + [anon_sym_SQUOTE] = ACTIONS(1002), + [anon_sym_L_DQUOTE] = ACTIONS(1002), + [anon_sym_u_DQUOTE] = ACTIONS(1002), + [anon_sym_U_DQUOTE] = ACTIONS(1002), + [anon_sym_u8_DQUOTE] = ACTIONS(1002), + [anon_sym_DQUOTE] = ACTIONS(1002), + [sym_true] = ACTIONS(1000), + [sym_false] = ACTIONS(1000), + [sym_null] = ACTIONS(1000), + [sym_comment] = ACTIONS(3), + }, + [129] = { + [sym_identifier] = ACTIONS(948), + [aux_sym_preproc_include_token1] = ACTIONS(948), + [aux_sym_preproc_def_token1] = ACTIONS(948), + [aux_sym_preproc_if_token1] = ACTIONS(948), + [aux_sym_preproc_if_token2] = ACTIONS(948), + [aux_sym_preproc_ifdef_token1] = ACTIONS(948), + [aux_sym_preproc_ifdef_token2] = ACTIONS(948), + [sym_preproc_directive] = ACTIONS(948), + [anon_sym_LPAREN2] = ACTIONS(950), + [anon_sym_BANG] = ACTIONS(950), + [anon_sym_TILDE] = ACTIONS(950), + [anon_sym_DASH] = ACTIONS(948), + [anon_sym_PLUS] = ACTIONS(948), + [anon_sym_STAR] = ACTIONS(950), + [anon_sym_AMP] = ACTIONS(950), + [anon_sym_SEMI] = ACTIONS(950), + [anon_sym_typedef] = ACTIONS(948), + [anon_sym_extern] = ACTIONS(948), + [anon_sym___attribute__] = ACTIONS(948), + [anon_sym_LBRACK_LBRACK] = ACTIONS(950), + [anon_sym___declspec] = ACTIONS(948), + [anon_sym___cdecl] = ACTIONS(948), + [anon_sym___clrcall] = ACTIONS(948), + [anon_sym___stdcall] = ACTIONS(948), + [anon_sym___fastcall] = ACTIONS(948), + [anon_sym___thiscall] = ACTIONS(948), + [anon_sym___vectorcall] = ACTIONS(948), + [anon_sym_LBRACE] = ACTIONS(950), + [anon_sym_static] = ACTIONS(948), + [anon_sym_auto] = ACTIONS(948), + [anon_sym_register] = ACTIONS(948), + [anon_sym_inline] = ACTIONS(948), + [anon_sym_const] = ACTIONS(948), + [anon_sym_volatile] = ACTIONS(948), + [anon_sym_restrict] = ACTIONS(948), + [anon_sym__Atomic] = ACTIONS(948), + [anon_sym_signed] = ACTIONS(948), + [anon_sym_unsigned] = ACTIONS(948), + [anon_sym_long] = ACTIONS(948), + [anon_sym_short] = ACTIONS(948), + [sym_primitive_type] = ACTIONS(948), + [anon_sym_enum] = ACTIONS(948), + [anon_sym_struct] = ACTIONS(948), + [anon_sym_union] = ACTIONS(948), + [anon_sym_if] = ACTIONS(948), + [anon_sym_else] = ACTIONS(948), + [anon_sym_switch] = ACTIONS(948), + [anon_sym_case] = ACTIONS(948), + [anon_sym_default] = ACTIONS(948), + [anon_sym_while] = ACTIONS(948), + [anon_sym_do] = ACTIONS(948), + [anon_sym_for] = ACTIONS(948), + [anon_sym_return] = ACTIONS(948), + [anon_sym_break] = ACTIONS(948), + [anon_sym_continue] = ACTIONS(948), + [anon_sym_goto] = ACTIONS(948), + [anon_sym_DASH_DASH] = ACTIONS(950), + [anon_sym_PLUS_PLUS] = ACTIONS(950), + [anon_sym_sizeof] = ACTIONS(948), + [sym_number_literal] = ACTIONS(950), + [anon_sym_L_SQUOTE] = ACTIONS(950), + [anon_sym_u_SQUOTE] = ACTIONS(950), + [anon_sym_U_SQUOTE] = ACTIONS(950), + [anon_sym_u8_SQUOTE] = ACTIONS(950), + [anon_sym_SQUOTE] = ACTIONS(950), + [anon_sym_L_DQUOTE] = ACTIONS(950), + [anon_sym_u_DQUOTE] = ACTIONS(950), + [anon_sym_U_DQUOTE] = ACTIONS(950), + [anon_sym_u8_DQUOTE] = ACTIONS(950), + [anon_sym_DQUOTE] = ACTIONS(950), + [sym_true] = ACTIONS(948), + [sym_false] = ACTIONS(948), + [sym_null] = ACTIONS(948), + [sym_comment] = ACTIONS(3), + }, + [130] = { + [sym_identifier] = ACTIONS(910), + [aux_sym_preproc_include_token1] = ACTIONS(910), + [aux_sym_preproc_def_token1] = ACTIONS(910), + [aux_sym_preproc_if_token1] = ACTIONS(910), + [aux_sym_preproc_if_token2] = ACTIONS(910), + [aux_sym_preproc_ifdef_token1] = ACTIONS(910), + [aux_sym_preproc_ifdef_token2] = ACTIONS(910), + [sym_preproc_directive] = ACTIONS(910), + [anon_sym_LPAREN2] = ACTIONS(912), + [anon_sym_BANG] = ACTIONS(912), + [anon_sym_TILDE] = ACTIONS(912), + [anon_sym_DASH] = ACTIONS(910), + [anon_sym_PLUS] = ACTIONS(910), + [anon_sym_STAR] = ACTIONS(912), + [anon_sym_AMP] = ACTIONS(912), + [anon_sym_SEMI] = ACTIONS(912), + [anon_sym_typedef] = ACTIONS(910), + [anon_sym_extern] = ACTIONS(910), + [anon_sym___attribute__] = ACTIONS(910), + [anon_sym_LBRACK_LBRACK] = ACTIONS(912), + [anon_sym___declspec] = ACTIONS(910), + [anon_sym___cdecl] = ACTIONS(910), + [anon_sym___clrcall] = ACTIONS(910), + [anon_sym___stdcall] = ACTIONS(910), + [anon_sym___fastcall] = ACTIONS(910), + [anon_sym___thiscall] = ACTIONS(910), + [anon_sym___vectorcall] = ACTIONS(910), + [anon_sym_LBRACE] = ACTIONS(912), + [anon_sym_static] = ACTIONS(910), + [anon_sym_auto] = ACTIONS(910), + [anon_sym_register] = ACTIONS(910), + [anon_sym_inline] = ACTIONS(910), + [anon_sym_const] = ACTIONS(910), + [anon_sym_volatile] = ACTIONS(910), + [anon_sym_restrict] = ACTIONS(910), + [anon_sym__Atomic] = ACTIONS(910), + [anon_sym_signed] = ACTIONS(910), + [anon_sym_unsigned] = ACTIONS(910), + [anon_sym_long] = ACTIONS(910), + [anon_sym_short] = ACTIONS(910), + [sym_primitive_type] = ACTIONS(910), + [anon_sym_enum] = ACTIONS(910), + [anon_sym_struct] = ACTIONS(910), + [anon_sym_union] = ACTIONS(910), + [anon_sym_if] = ACTIONS(910), + [anon_sym_else] = ACTIONS(910), + [anon_sym_switch] = ACTIONS(910), + [anon_sym_case] = ACTIONS(910), + [anon_sym_default] = ACTIONS(910), + [anon_sym_while] = ACTIONS(910), + [anon_sym_do] = ACTIONS(910), + [anon_sym_for] = ACTIONS(910), + [anon_sym_return] = ACTIONS(910), + [anon_sym_break] = ACTIONS(910), + [anon_sym_continue] = ACTIONS(910), + [anon_sym_goto] = ACTIONS(910), + [anon_sym_DASH_DASH] = ACTIONS(912), + [anon_sym_PLUS_PLUS] = ACTIONS(912), + [anon_sym_sizeof] = ACTIONS(910), + [sym_number_literal] = ACTIONS(912), + [anon_sym_L_SQUOTE] = ACTIONS(912), + [anon_sym_u_SQUOTE] = ACTIONS(912), + [anon_sym_U_SQUOTE] = ACTIONS(912), + [anon_sym_u8_SQUOTE] = ACTIONS(912), + [anon_sym_SQUOTE] = ACTIONS(912), + [anon_sym_L_DQUOTE] = ACTIONS(912), + [anon_sym_u_DQUOTE] = ACTIONS(912), + [anon_sym_U_DQUOTE] = ACTIONS(912), + [anon_sym_u8_DQUOTE] = ACTIONS(912), + [anon_sym_DQUOTE] = ACTIONS(912), + [sym_true] = ACTIONS(910), + [sym_false] = ACTIONS(910), + [sym_null] = ACTIONS(910), + [sym_comment] = ACTIONS(3), + }, + [131] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(1454), + [sym_attributed_statement] = STATE(1454), + [sym_labeled_statement] = STATE(1454), + [sym_expression_statement] = STATE(1454), + [sym_if_statement] = STATE(1454), + [sym_switch_statement] = STATE(1454), + [sym_case_statement] = STATE(1454), + [sym_while_statement] = STATE(1454), + [sym_do_statement] = STATE(1454), + [sym_for_statement] = STATE(1454), + [sym_return_statement] = STATE(1454), + [sym_break_statement] = STATE(1454), + [sym_continue_statement] = STATE(1454), + [sym_goto_statement] = STATE(1454), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [132] = { + [ts_builtin_sym_end] = ACTIONS(930), + [sym_identifier] = ACTIONS(928), + [aux_sym_preproc_include_token1] = ACTIONS(928), + [aux_sym_preproc_def_token1] = ACTIONS(928), + [aux_sym_preproc_if_token1] = ACTIONS(928), + [aux_sym_preproc_ifdef_token1] = ACTIONS(928), + [aux_sym_preproc_ifdef_token2] = ACTIONS(928), + [sym_preproc_directive] = ACTIONS(928), + [anon_sym_LPAREN2] = ACTIONS(930), + [anon_sym_BANG] = ACTIONS(930), + [anon_sym_TILDE] = ACTIONS(930), + [anon_sym_DASH] = ACTIONS(928), + [anon_sym_PLUS] = ACTIONS(928), + [anon_sym_STAR] = ACTIONS(930), + [anon_sym_AMP] = ACTIONS(930), + [anon_sym_SEMI] = ACTIONS(930), + [anon_sym_typedef] = ACTIONS(928), + [anon_sym_extern] = ACTIONS(928), + [anon_sym___attribute__] = ACTIONS(928), + [anon_sym_LBRACK_LBRACK] = ACTIONS(930), + [anon_sym___declspec] = ACTIONS(928), + [anon_sym___cdecl] = ACTIONS(928), + [anon_sym___clrcall] = ACTIONS(928), + [anon_sym___stdcall] = ACTIONS(928), + [anon_sym___fastcall] = ACTIONS(928), + [anon_sym___thiscall] = ACTIONS(928), + [anon_sym___vectorcall] = ACTIONS(928), + [anon_sym_LBRACE] = ACTIONS(930), + [anon_sym_static] = ACTIONS(928), + [anon_sym_auto] = ACTIONS(928), + [anon_sym_register] = ACTIONS(928), + [anon_sym_inline] = ACTIONS(928), + [anon_sym_const] = ACTIONS(928), + [anon_sym_volatile] = ACTIONS(928), + [anon_sym_restrict] = ACTIONS(928), + [anon_sym__Atomic] = ACTIONS(928), + [anon_sym_signed] = ACTIONS(928), + [anon_sym_unsigned] = ACTIONS(928), + [anon_sym_long] = ACTIONS(928), + [anon_sym_short] = ACTIONS(928), + [sym_primitive_type] = ACTIONS(928), + [anon_sym_enum] = ACTIONS(928), + [anon_sym_struct] = ACTIONS(928), + [anon_sym_union] = ACTIONS(928), + [anon_sym_if] = ACTIONS(928), + [anon_sym_else] = ACTIONS(928), + [anon_sym_switch] = ACTIONS(928), + [anon_sym_case] = ACTIONS(928), + [anon_sym_default] = ACTIONS(928), + [anon_sym_while] = ACTIONS(928), + [anon_sym_do] = ACTIONS(928), + [anon_sym_for] = ACTIONS(928), + [anon_sym_return] = ACTIONS(928), + [anon_sym_break] = ACTIONS(928), + [anon_sym_continue] = ACTIONS(928), + [anon_sym_goto] = ACTIONS(928), + [anon_sym_DASH_DASH] = ACTIONS(930), + [anon_sym_PLUS_PLUS] = ACTIONS(930), + [anon_sym_sizeof] = ACTIONS(928), + [sym_number_literal] = ACTIONS(930), + [anon_sym_L_SQUOTE] = ACTIONS(930), + [anon_sym_u_SQUOTE] = ACTIONS(930), + [anon_sym_U_SQUOTE] = ACTIONS(930), + [anon_sym_u8_SQUOTE] = ACTIONS(930), + [anon_sym_SQUOTE] = ACTIONS(930), + [anon_sym_L_DQUOTE] = ACTIONS(930), + [anon_sym_u_DQUOTE] = ACTIONS(930), + [anon_sym_U_DQUOTE] = ACTIONS(930), + [anon_sym_u8_DQUOTE] = ACTIONS(930), + [anon_sym_DQUOTE] = ACTIONS(930), + [sym_true] = ACTIONS(928), + [sym_false] = ACTIONS(928), + [sym_null] = ACTIONS(928), + [sym_comment] = ACTIONS(3), + }, + [133] = { + [sym_identifier] = ACTIONS(906), + [aux_sym_preproc_include_token1] = ACTIONS(906), + [aux_sym_preproc_def_token1] = ACTIONS(906), + [aux_sym_preproc_if_token1] = ACTIONS(906), + [aux_sym_preproc_if_token2] = ACTIONS(906), + [aux_sym_preproc_ifdef_token1] = ACTIONS(906), + [aux_sym_preproc_ifdef_token2] = ACTIONS(906), + [sym_preproc_directive] = ACTIONS(906), + [anon_sym_LPAREN2] = ACTIONS(908), + [anon_sym_BANG] = ACTIONS(908), + [anon_sym_TILDE] = ACTIONS(908), + [anon_sym_DASH] = ACTIONS(906), + [anon_sym_PLUS] = ACTIONS(906), + [anon_sym_STAR] = ACTIONS(908), + [anon_sym_AMP] = ACTIONS(908), + [anon_sym_SEMI] = ACTIONS(908), + [anon_sym_typedef] = ACTIONS(906), + [anon_sym_extern] = ACTIONS(906), + [anon_sym___attribute__] = ACTIONS(906), + [anon_sym_LBRACK_LBRACK] = ACTIONS(908), + [anon_sym___declspec] = ACTIONS(906), + [anon_sym___cdecl] = ACTIONS(906), + [anon_sym___clrcall] = ACTIONS(906), + [anon_sym___stdcall] = ACTIONS(906), + [anon_sym___fastcall] = ACTIONS(906), + [anon_sym___thiscall] = ACTIONS(906), + [anon_sym___vectorcall] = ACTIONS(906), + [anon_sym_LBRACE] = ACTIONS(908), + [anon_sym_static] = ACTIONS(906), + [anon_sym_auto] = ACTIONS(906), + [anon_sym_register] = ACTIONS(906), + [anon_sym_inline] = ACTIONS(906), + [anon_sym_const] = ACTIONS(906), + [anon_sym_volatile] = ACTIONS(906), + [anon_sym_restrict] = ACTIONS(906), + [anon_sym__Atomic] = ACTIONS(906), + [anon_sym_signed] = ACTIONS(906), + [anon_sym_unsigned] = ACTIONS(906), + [anon_sym_long] = ACTIONS(906), + [anon_sym_short] = ACTIONS(906), + [sym_primitive_type] = ACTIONS(906), + [anon_sym_enum] = ACTIONS(906), + [anon_sym_struct] = ACTIONS(906), + [anon_sym_union] = ACTIONS(906), + [anon_sym_if] = ACTIONS(906), + [anon_sym_else] = ACTIONS(906), + [anon_sym_switch] = ACTIONS(906), + [anon_sym_case] = ACTIONS(906), + [anon_sym_default] = ACTIONS(906), + [anon_sym_while] = ACTIONS(906), + [anon_sym_do] = ACTIONS(906), + [anon_sym_for] = ACTIONS(906), + [anon_sym_return] = ACTIONS(906), + [anon_sym_break] = ACTIONS(906), + [anon_sym_continue] = ACTIONS(906), + [anon_sym_goto] = ACTIONS(906), + [anon_sym_DASH_DASH] = ACTIONS(908), + [anon_sym_PLUS_PLUS] = ACTIONS(908), + [anon_sym_sizeof] = ACTIONS(906), + [sym_number_literal] = ACTIONS(908), + [anon_sym_L_SQUOTE] = ACTIONS(908), + [anon_sym_u_SQUOTE] = ACTIONS(908), + [anon_sym_U_SQUOTE] = ACTIONS(908), + [anon_sym_u8_SQUOTE] = ACTIONS(908), + [anon_sym_SQUOTE] = ACTIONS(908), + [anon_sym_L_DQUOTE] = ACTIONS(908), + [anon_sym_u_DQUOTE] = ACTIONS(908), + [anon_sym_U_DQUOTE] = ACTIONS(908), + [anon_sym_u8_DQUOTE] = ACTIONS(908), + [anon_sym_DQUOTE] = ACTIONS(908), + [sym_true] = ACTIONS(906), + [sym_false] = ACTIONS(906), + [sym_null] = ACTIONS(906), + [sym_comment] = ACTIONS(3), + }, + [134] = { + [sym_identifier] = ACTIONS(914), + [aux_sym_preproc_include_token1] = ACTIONS(914), + [aux_sym_preproc_def_token1] = ACTIONS(914), + [aux_sym_preproc_if_token1] = ACTIONS(914), + [aux_sym_preproc_if_token2] = ACTIONS(914), + [aux_sym_preproc_ifdef_token1] = ACTIONS(914), + [aux_sym_preproc_ifdef_token2] = ACTIONS(914), + [sym_preproc_directive] = ACTIONS(914), + [anon_sym_LPAREN2] = ACTIONS(916), + [anon_sym_BANG] = ACTIONS(916), + [anon_sym_TILDE] = ACTIONS(916), + [anon_sym_DASH] = ACTIONS(914), + [anon_sym_PLUS] = ACTIONS(914), + [anon_sym_STAR] = ACTIONS(916), + [anon_sym_AMP] = ACTIONS(916), + [anon_sym_SEMI] = ACTIONS(916), + [anon_sym_typedef] = ACTIONS(914), + [anon_sym_extern] = ACTIONS(914), + [anon_sym___attribute__] = ACTIONS(914), + [anon_sym_LBRACK_LBRACK] = ACTIONS(916), + [anon_sym___declspec] = ACTIONS(914), + [anon_sym___cdecl] = ACTIONS(914), + [anon_sym___clrcall] = ACTIONS(914), + [anon_sym___stdcall] = ACTIONS(914), + [anon_sym___fastcall] = ACTIONS(914), + [anon_sym___thiscall] = ACTIONS(914), + [anon_sym___vectorcall] = ACTIONS(914), + [anon_sym_LBRACE] = ACTIONS(916), + [anon_sym_static] = ACTIONS(914), + [anon_sym_auto] = ACTIONS(914), + [anon_sym_register] = ACTIONS(914), + [anon_sym_inline] = ACTIONS(914), + [anon_sym_const] = ACTIONS(914), + [anon_sym_volatile] = ACTIONS(914), + [anon_sym_restrict] = ACTIONS(914), + [anon_sym__Atomic] = ACTIONS(914), + [anon_sym_signed] = ACTIONS(914), + [anon_sym_unsigned] = ACTIONS(914), + [anon_sym_long] = ACTIONS(914), + [anon_sym_short] = ACTIONS(914), + [sym_primitive_type] = ACTIONS(914), + [anon_sym_enum] = ACTIONS(914), + [anon_sym_struct] = ACTIONS(914), + [anon_sym_union] = ACTIONS(914), + [anon_sym_if] = ACTIONS(914), + [anon_sym_else] = ACTIONS(1130), + [anon_sym_switch] = ACTIONS(914), + [anon_sym_case] = ACTIONS(914), + [anon_sym_default] = ACTIONS(914), + [anon_sym_while] = ACTIONS(914), + [anon_sym_do] = ACTIONS(914), + [anon_sym_for] = ACTIONS(914), + [anon_sym_return] = ACTIONS(914), + [anon_sym_break] = ACTIONS(914), + [anon_sym_continue] = ACTIONS(914), + [anon_sym_goto] = ACTIONS(914), + [anon_sym_DASH_DASH] = ACTIONS(916), + [anon_sym_PLUS_PLUS] = ACTIONS(916), + [anon_sym_sizeof] = ACTIONS(914), + [sym_number_literal] = ACTIONS(916), + [anon_sym_L_SQUOTE] = ACTIONS(916), + [anon_sym_u_SQUOTE] = ACTIONS(916), + [anon_sym_U_SQUOTE] = ACTIONS(916), + [anon_sym_u8_SQUOTE] = ACTIONS(916), + [anon_sym_SQUOTE] = ACTIONS(916), + [anon_sym_L_DQUOTE] = ACTIONS(916), + [anon_sym_u_DQUOTE] = ACTIONS(916), + [anon_sym_U_DQUOTE] = ACTIONS(916), + [anon_sym_u8_DQUOTE] = ACTIONS(916), + [anon_sym_DQUOTE] = ACTIONS(916), + [sym_true] = ACTIONS(914), + [sym_false] = ACTIONS(914), + [sym_null] = ACTIONS(914), + [sym_comment] = ACTIONS(3), + }, + [135] = { + [sym_identifier] = ACTIONS(920), + [aux_sym_preproc_include_token1] = ACTIONS(920), + [aux_sym_preproc_def_token1] = ACTIONS(920), + [aux_sym_preproc_if_token1] = ACTIONS(920), + [aux_sym_preproc_if_token2] = ACTIONS(920), + [aux_sym_preproc_ifdef_token1] = ACTIONS(920), + [aux_sym_preproc_ifdef_token2] = ACTIONS(920), + [sym_preproc_directive] = ACTIONS(920), + [anon_sym_LPAREN2] = ACTIONS(922), + [anon_sym_BANG] = ACTIONS(922), + [anon_sym_TILDE] = ACTIONS(922), + [anon_sym_DASH] = ACTIONS(920), + [anon_sym_PLUS] = ACTIONS(920), + [anon_sym_STAR] = ACTIONS(922), + [anon_sym_AMP] = ACTIONS(922), + [anon_sym_SEMI] = ACTIONS(922), + [anon_sym_typedef] = ACTIONS(920), + [anon_sym_extern] = ACTIONS(920), + [anon_sym___attribute__] = ACTIONS(920), + [anon_sym_LBRACK_LBRACK] = ACTIONS(922), + [anon_sym___declspec] = ACTIONS(920), + [anon_sym___cdecl] = ACTIONS(920), + [anon_sym___clrcall] = ACTIONS(920), + [anon_sym___stdcall] = ACTIONS(920), + [anon_sym___fastcall] = ACTIONS(920), + [anon_sym___thiscall] = ACTIONS(920), + [anon_sym___vectorcall] = ACTIONS(920), + [anon_sym_LBRACE] = ACTIONS(922), + [anon_sym_static] = ACTIONS(920), + [anon_sym_auto] = ACTIONS(920), + [anon_sym_register] = ACTIONS(920), + [anon_sym_inline] = ACTIONS(920), + [anon_sym_const] = ACTIONS(920), + [anon_sym_volatile] = ACTIONS(920), + [anon_sym_restrict] = ACTIONS(920), + [anon_sym__Atomic] = ACTIONS(920), + [anon_sym_signed] = ACTIONS(920), + [anon_sym_unsigned] = ACTIONS(920), + [anon_sym_long] = ACTIONS(920), + [anon_sym_short] = ACTIONS(920), + [sym_primitive_type] = ACTIONS(920), + [anon_sym_enum] = ACTIONS(920), + [anon_sym_struct] = ACTIONS(920), + [anon_sym_union] = ACTIONS(920), + [anon_sym_if] = ACTIONS(920), + [anon_sym_else] = ACTIONS(920), + [anon_sym_switch] = ACTIONS(920), + [anon_sym_case] = ACTIONS(920), + [anon_sym_default] = ACTIONS(920), + [anon_sym_while] = ACTIONS(920), + [anon_sym_do] = ACTIONS(920), + [anon_sym_for] = ACTIONS(920), + [anon_sym_return] = ACTIONS(920), + [anon_sym_break] = ACTIONS(920), + [anon_sym_continue] = ACTIONS(920), + [anon_sym_goto] = ACTIONS(920), + [anon_sym_DASH_DASH] = ACTIONS(922), + [anon_sym_PLUS_PLUS] = ACTIONS(922), + [anon_sym_sizeof] = ACTIONS(920), + [sym_number_literal] = ACTIONS(922), + [anon_sym_L_SQUOTE] = ACTIONS(922), + [anon_sym_u_SQUOTE] = ACTIONS(922), + [anon_sym_U_SQUOTE] = ACTIONS(922), + [anon_sym_u8_SQUOTE] = ACTIONS(922), + [anon_sym_SQUOTE] = ACTIONS(922), + [anon_sym_L_DQUOTE] = ACTIONS(922), + [anon_sym_u_DQUOTE] = ACTIONS(922), + [anon_sym_U_DQUOTE] = ACTIONS(922), + [anon_sym_u8_DQUOTE] = ACTIONS(922), + [anon_sym_DQUOTE] = ACTIONS(922), + [sym_true] = ACTIONS(920), + [sym_false] = ACTIONS(920), + [sym_null] = ACTIONS(920), + [sym_comment] = ACTIONS(3), + }, + [136] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(246), + [sym_attributed_statement] = STATE(246), + [sym_labeled_statement] = STATE(246), + [sym_expression_statement] = STATE(246), + [sym_if_statement] = STATE(246), + [sym_switch_statement] = STATE(246), + [sym_case_statement] = STATE(246), + [sym_while_statement] = STATE(246), + [sym_do_statement] = STATE(246), + [sym_for_statement] = STATE(246), + [sym_return_statement] = STATE(246), + [sym_break_statement] = STATE(246), + [sym_continue_statement] = STATE(246), + [sym_goto_statement] = STATE(246), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [137] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(174), + [sym_attributed_statement] = STATE(174), + [sym_labeled_statement] = STATE(174), + [sym_expression_statement] = STATE(174), + [sym_if_statement] = STATE(174), + [sym_switch_statement] = STATE(174), + [sym_case_statement] = STATE(174), + [sym_while_statement] = STATE(174), + [sym_do_statement] = STATE(174), + [sym_for_statement] = STATE(174), + [sym_return_statement] = STATE(174), + [sym_break_statement] = STATE(174), + [sym_continue_statement] = STATE(174), + [sym_goto_statement] = STATE(174), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [138] = { + [ts_builtin_sym_end] = ACTIONS(926), + [sym_identifier] = ACTIONS(924), + [aux_sym_preproc_include_token1] = ACTIONS(924), + [aux_sym_preproc_def_token1] = ACTIONS(924), + [aux_sym_preproc_if_token1] = ACTIONS(924), + [aux_sym_preproc_ifdef_token1] = ACTIONS(924), + [aux_sym_preproc_ifdef_token2] = ACTIONS(924), + [sym_preproc_directive] = ACTIONS(924), + [anon_sym_LPAREN2] = ACTIONS(926), + [anon_sym_BANG] = ACTIONS(926), + [anon_sym_TILDE] = ACTIONS(926), + [anon_sym_DASH] = ACTIONS(924), + [anon_sym_PLUS] = ACTIONS(924), + [anon_sym_STAR] = ACTIONS(926), + [anon_sym_AMP] = ACTIONS(926), + [anon_sym_SEMI] = ACTIONS(926), + [anon_sym_typedef] = ACTIONS(924), + [anon_sym_extern] = ACTIONS(924), + [anon_sym___attribute__] = ACTIONS(924), + [anon_sym_LBRACK_LBRACK] = ACTIONS(926), + [anon_sym___declspec] = ACTIONS(924), + [anon_sym___cdecl] = ACTIONS(924), + [anon_sym___clrcall] = ACTIONS(924), + [anon_sym___stdcall] = ACTIONS(924), + [anon_sym___fastcall] = ACTIONS(924), + [anon_sym___thiscall] = ACTIONS(924), + [anon_sym___vectorcall] = ACTIONS(924), + [anon_sym_LBRACE] = ACTIONS(926), + [anon_sym_static] = ACTIONS(924), + [anon_sym_auto] = ACTIONS(924), + [anon_sym_register] = ACTIONS(924), + [anon_sym_inline] = ACTIONS(924), + [anon_sym_const] = ACTIONS(924), + [anon_sym_volatile] = ACTIONS(924), + [anon_sym_restrict] = ACTIONS(924), + [anon_sym__Atomic] = ACTIONS(924), + [anon_sym_signed] = ACTIONS(924), + [anon_sym_unsigned] = ACTIONS(924), + [anon_sym_long] = ACTIONS(924), + [anon_sym_short] = ACTIONS(924), + [sym_primitive_type] = ACTIONS(924), + [anon_sym_enum] = ACTIONS(924), + [anon_sym_struct] = ACTIONS(924), + [anon_sym_union] = ACTIONS(924), + [anon_sym_if] = ACTIONS(924), + [anon_sym_else] = ACTIONS(924), + [anon_sym_switch] = ACTIONS(924), + [anon_sym_case] = ACTIONS(924), + [anon_sym_default] = ACTIONS(924), + [anon_sym_while] = ACTIONS(924), + [anon_sym_do] = ACTIONS(924), + [anon_sym_for] = ACTIONS(924), + [anon_sym_return] = ACTIONS(924), + [anon_sym_break] = ACTIONS(924), + [anon_sym_continue] = ACTIONS(924), + [anon_sym_goto] = ACTIONS(924), + [anon_sym_DASH_DASH] = ACTIONS(926), + [anon_sym_PLUS_PLUS] = ACTIONS(926), + [anon_sym_sizeof] = ACTIONS(924), + [sym_number_literal] = ACTIONS(926), + [anon_sym_L_SQUOTE] = ACTIONS(926), + [anon_sym_u_SQUOTE] = ACTIONS(926), + [anon_sym_U_SQUOTE] = ACTIONS(926), + [anon_sym_u8_SQUOTE] = ACTIONS(926), + [anon_sym_SQUOTE] = ACTIONS(926), + [anon_sym_L_DQUOTE] = ACTIONS(926), + [anon_sym_u_DQUOTE] = ACTIONS(926), + [anon_sym_U_DQUOTE] = ACTIONS(926), + [anon_sym_u8_DQUOTE] = ACTIONS(926), + [anon_sym_DQUOTE] = ACTIONS(926), + [sym_true] = ACTIONS(924), + [sym_false] = ACTIONS(924), + [sym_null] = ACTIONS(924), + [sym_comment] = ACTIONS(3), + }, + [139] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(1445), + [sym_attributed_statement] = STATE(1445), + [sym_labeled_statement] = STATE(1445), + [sym_expression_statement] = STATE(1445), + [sym_if_statement] = STATE(1445), + [sym_switch_statement] = STATE(1445), + [sym_case_statement] = STATE(1445), + [sym_while_statement] = STATE(1445), + [sym_do_statement] = STATE(1445), + [sym_for_statement] = STATE(1445), + [sym_return_statement] = STATE(1445), + [sym_break_statement] = STATE(1445), + [sym_continue_statement] = STATE(1445), + [sym_goto_statement] = STATE(1445), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [140] = { + [sym_attribute_declaration] = STATE(140), + [sym_compound_statement] = STATE(141), + [sym_attributed_statement] = STATE(141), + [sym_labeled_statement] = STATE(141), + [sym_expression_statement] = STATE(141), + [sym_if_statement] = STATE(141), + [sym_switch_statement] = STATE(141), + [sym_case_statement] = STATE(141), + [sym_while_statement] = STATE(141), + [sym_do_statement] = STATE(141), + [sym_for_statement] = STATE(141), + [sym_return_statement] = STATE(141), + [sym_break_statement] = STATE(141), + [sym_continue_statement] = STATE(141), + [sym_goto_statement] = STATE(141), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(140), + [sym_identifier] = ACTIONS(1132), + [anon_sym_LPAREN2] = ACTIONS(1135), + [anon_sym_BANG] = ACTIONS(1138), + [anon_sym_TILDE] = ACTIONS(1138), + [anon_sym_DASH] = ACTIONS(1141), + [anon_sym_PLUS] = ACTIONS(1141), + [anon_sym_STAR] = ACTIONS(1144), + [anon_sym_AMP] = ACTIONS(1144), + [anon_sym_SEMI] = ACTIONS(1147), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1150), + [anon_sym_LBRACE] = ACTIONS(1153), + [anon_sym_if] = ACTIONS(1156), + [anon_sym_switch] = ACTIONS(1159), + [anon_sym_case] = ACTIONS(1162), + [anon_sym_default] = ACTIONS(1165), + [anon_sym_while] = ACTIONS(1168), + [anon_sym_do] = ACTIONS(1171), + [anon_sym_for] = ACTIONS(1174), + [anon_sym_return] = ACTIONS(1177), + [anon_sym_break] = ACTIONS(1180), + [anon_sym_continue] = ACTIONS(1183), + [anon_sym_goto] = ACTIONS(1186), + [anon_sym_DASH_DASH] = ACTIONS(1189), + [anon_sym_PLUS_PLUS] = ACTIONS(1189), + [anon_sym_sizeof] = ACTIONS(1192), + [sym_number_literal] = ACTIONS(1195), + [anon_sym_L_SQUOTE] = ACTIONS(1198), + [anon_sym_u_SQUOTE] = ACTIONS(1198), + [anon_sym_U_SQUOTE] = ACTIONS(1198), + [anon_sym_u8_SQUOTE] = ACTIONS(1198), + [anon_sym_SQUOTE] = ACTIONS(1198), + [anon_sym_L_DQUOTE] = ACTIONS(1201), + [anon_sym_u_DQUOTE] = ACTIONS(1201), + [anon_sym_U_DQUOTE] = ACTIONS(1201), + [anon_sym_u8_DQUOTE] = ACTIONS(1201), + [anon_sym_DQUOTE] = ACTIONS(1201), + [sym_true] = ACTIONS(1204), + [sym_false] = ACTIONS(1204), + [sym_null] = ACTIONS(1204), + [sym_comment] = ACTIONS(3), + }, + [141] = { + [sym_identifier] = ACTIONS(944), + [aux_sym_preproc_include_token1] = ACTIONS(944), + [aux_sym_preproc_def_token1] = ACTIONS(944), + [aux_sym_preproc_if_token1] = ACTIONS(944), + [aux_sym_preproc_if_token2] = ACTIONS(944), + [aux_sym_preproc_ifdef_token1] = ACTIONS(944), + [aux_sym_preproc_ifdef_token2] = ACTIONS(944), + [sym_preproc_directive] = ACTIONS(944), + [anon_sym_LPAREN2] = ACTIONS(946), + [anon_sym_BANG] = ACTIONS(946), + [anon_sym_TILDE] = ACTIONS(946), + [anon_sym_DASH] = ACTIONS(944), + [anon_sym_PLUS] = ACTIONS(944), + [anon_sym_STAR] = ACTIONS(946), + [anon_sym_AMP] = ACTIONS(946), + [anon_sym_SEMI] = ACTIONS(946), + [anon_sym_typedef] = ACTIONS(944), + [anon_sym_extern] = ACTIONS(944), + [anon_sym___attribute__] = ACTIONS(944), + [anon_sym_LBRACK_LBRACK] = ACTIONS(946), + [anon_sym___declspec] = ACTIONS(944), + [anon_sym___cdecl] = ACTIONS(944), + [anon_sym___clrcall] = ACTIONS(944), + [anon_sym___stdcall] = ACTIONS(944), + [anon_sym___fastcall] = ACTIONS(944), + [anon_sym___thiscall] = ACTIONS(944), + [anon_sym___vectorcall] = ACTIONS(944), + [anon_sym_LBRACE] = ACTIONS(946), + [anon_sym_static] = ACTIONS(944), + [anon_sym_auto] = ACTIONS(944), + [anon_sym_register] = ACTIONS(944), + [anon_sym_inline] = ACTIONS(944), + [anon_sym_const] = ACTIONS(944), + [anon_sym_volatile] = ACTIONS(944), + [anon_sym_restrict] = ACTIONS(944), + [anon_sym__Atomic] = ACTIONS(944), + [anon_sym_signed] = ACTIONS(944), + [anon_sym_unsigned] = ACTIONS(944), + [anon_sym_long] = ACTIONS(944), + [anon_sym_short] = ACTIONS(944), + [sym_primitive_type] = ACTIONS(944), + [anon_sym_enum] = ACTIONS(944), + [anon_sym_struct] = ACTIONS(944), + [anon_sym_union] = ACTIONS(944), + [anon_sym_if] = ACTIONS(944), + [anon_sym_else] = ACTIONS(944), + [anon_sym_switch] = ACTIONS(944), + [anon_sym_case] = ACTIONS(944), + [anon_sym_default] = ACTIONS(944), + [anon_sym_while] = ACTIONS(944), + [anon_sym_do] = ACTIONS(944), + [anon_sym_for] = ACTIONS(944), + [anon_sym_return] = ACTIONS(944), + [anon_sym_break] = ACTIONS(944), + [anon_sym_continue] = ACTIONS(944), + [anon_sym_goto] = ACTIONS(944), + [anon_sym_DASH_DASH] = ACTIONS(946), + [anon_sym_PLUS_PLUS] = ACTIONS(946), + [anon_sym_sizeof] = ACTIONS(944), + [sym_number_literal] = ACTIONS(946), + [anon_sym_L_SQUOTE] = ACTIONS(946), + [anon_sym_u_SQUOTE] = ACTIONS(946), + [anon_sym_U_SQUOTE] = ACTIONS(946), + [anon_sym_u8_SQUOTE] = ACTIONS(946), + [anon_sym_SQUOTE] = ACTIONS(946), + [anon_sym_L_DQUOTE] = ACTIONS(946), + [anon_sym_u_DQUOTE] = ACTIONS(946), + [anon_sym_U_DQUOTE] = ACTIONS(946), + [anon_sym_u8_DQUOTE] = ACTIONS(946), + [anon_sym_DQUOTE] = ACTIONS(946), + [sym_true] = ACTIONS(944), + [sym_false] = ACTIONS(944), + [sym_null] = ACTIONS(944), + [sym_comment] = ACTIONS(3), + }, + [142] = { + [sym_identifier] = ACTIONS(984), + [aux_sym_preproc_include_token1] = ACTIONS(984), + [aux_sym_preproc_def_token1] = ACTIONS(984), + [aux_sym_preproc_if_token1] = ACTIONS(984), + [aux_sym_preproc_if_token2] = ACTIONS(984), + [aux_sym_preproc_ifdef_token1] = ACTIONS(984), + [aux_sym_preproc_ifdef_token2] = ACTIONS(984), + [sym_preproc_directive] = ACTIONS(984), + [anon_sym_LPAREN2] = ACTIONS(986), + [anon_sym_BANG] = ACTIONS(986), + [anon_sym_TILDE] = ACTIONS(986), + [anon_sym_DASH] = ACTIONS(984), + [anon_sym_PLUS] = ACTIONS(984), + [anon_sym_STAR] = ACTIONS(986), + [anon_sym_AMP] = ACTIONS(986), + [anon_sym_SEMI] = ACTIONS(986), + [anon_sym_typedef] = ACTIONS(984), + [anon_sym_extern] = ACTIONS(984), + [anon_sym___attribute__] = ACTIONS(984), + [anon_sym_LBRACK_LBRACK] = ACTIONS(986), + [anon_sym___declspec] = ACTIONS(984), + [anon_sym___cdecl] = ACTIONS(984), + [anon_sym___clrcall] = ACTIONS(984), + [anon_sym___stdcall] = ACTIONS(984), + [anon_sym___fastcall] = ACTIONS(984), + [anon_sym___thiscall] = ACTIONS(984), + [anon_sym___vectorcall] = ACTIONS(984), + [anon_sym_LBRACE] = ACTIONS(986), + [anon_sym_static] = ACTIONS(984), + [anon_sym_auto] = ACTIONS(984), + [anon_sym_register] = ACTIONS(984), + [anon_sym_inline] = ACTIONS(984), + [anon_sym_const] = ACTIONS(984), + [anon_sym_volatile] = ACTIONS(984), + [anon_sym_restrict] = ACTIONS(984), + [anon_sym__Atomic] = ACTIONS(984), + [anon_sym_signed] = ACTIONS(984), + [anon_sym_unsigned] = ACTIONS(984), + [anon_sym_long] = ACTIONS(984), + [anon_sym_short] = ACTIONS(984), + [sym_primitive_type] = ACTIONS(984), + [anon_sym_enum] = ACTIONS(984), + [anon_sym_struct] = ACTIONS(984), + [anon_sym_union] = ACTIONS(984), + [anon_sym_if] = ACTIONS(984), + [anon_sym_else] = ACTIONS(984), + [anon_sym_switch] = ACTIONS(984), + [anon_sym_case] = ACTIONS(984), + [anon_sym_default] = ACTIONS(984), + [anon_sym_while] = ACTIONS(984), + [anon_sym_do] = ACTIONS(984), + [anon_sym_for] = ACTIONS(984), + [anon_sym_return] = ACTIONS(984), + [anon_sym_break] = ACTIONS(984), + [anon_sym_continue] = ACTIONS(984), + [anon_sym_goto] = ACTIONS(984), + [anon_sym_DASH_DASH] = ACTIONS(986), + [anon_sym_PLUS_PLUS] = ACTIONS(986), + [anon_sym_sizeof] = ACTIONS(984), + [sym_number_literal] = ACTIONS(986), + [anon_sym_L_SQUOTE] = ACTIONS(986), + [anon_sym_u_SQUOTE] = ACTIONS(986), + [anon_sym_U_SQUOTE] = ACTIONS(986), + [anon_sym_u8_SQUOTE] = ACTIONS(986), + [anon_sym_SQUOTE] = ACTIONS(986), + [anon_sym_L_DQUOTE] = ACTIONS(986), + [anon_sym_u_DQUOTE] = ACTIONS(986), + [anon_sym_U_DQUOTE] = ACTIONS(986), + [anon_sym_u8_DQUOTE] = ACTIONS(986), + [anon_sym_DQUOTE] = ACTIONS(986), + [sym_true] = ACTIONS(984), + [sym_false] = ACTIONS(984), + [sym_null] = ACTIONS(984), + [sym_comment] = ACTIONS(3), + }, + [143] = { + [ts_builtin_sym_end] = ACTIONS(938), + [sym_identifier] = ACTIONS(936), + [aux_sym_preproc_include_token1] = ACTIONS(936), + [aux_sym_preproc_def_token1] = ACTIONS(936), + [aux_sym_preproc_if_token1] = ACTIONS(936), + [aux_sym_preproc_ifdef_token1] = ACTIONS(936), + [aux_sym_preproc_ifdef_token2] = ACTIONS(936), + [sym_preproc_directive] = ACTIONS(936), + [anon_sym_LPAREN2] = ACTIONS(938), + [anon_sym_BANG] = ACTIONS(938), + [anon_sym_TILDE] = ACTIONS(938), + [anon_sym_DASH] = ACTIONS(936), + [anon_sym_PLUS] = ACTIONS(936), + [anon_sym_STAR] = ACTIONS(938), + [anon_sym_AMP] = ACTIONS(938), + [anon_sym_SEMI] = ACTIONS(938), + [anon_sym_typedef] = ACTIONS(936), + [anon_sym_extern] = ACTIONS(936), + [anon_sym___attribute__] = ACTIONS(936), + [anon_sym_LBRACK_LBRACK] = ACTIONS(938), + [anon_sym___declspec] = ACTIONS(936), + [anon_sym___cdecl] = ACTIONS(936), + [anon_sym___clrcall] = ACTIONS(936), + [anon_sym___stdcall] = ACTIONS(936), + [anon_sym___fastcall] = ACTIONS(936), + [anon_sym___thiscall] = ACTIONS(936), + [anon_sym___vectorcall] = ACTIONS(936), + [anon_sym_LBRACE] = ACTIONS(938), + [anon_sym_static] = ACTIONS(936), + [anon_sym_auto] = ACTIONS(936), + [anon_sym_register] = ACTIONS(936), + [anon_sym_inline] = ACTIONS(936), + [anon_sym_const] = ACTIONS(936), + [anon_sym_volatile] = ACTIONS(936), + [anon_sym_restrict] = ACTIONS(936), + [anon_sym__Atomic] = ACTIONS(936), + [anon_sym_signed] = ACTIONS(936), + [anon_sym_unsigned] = ACTIONS(936), + [anon_sym_long] = ACTIONS(936), + [anon_sym_short] = ACTIONS(936), + [sym_primitive_type] = ACTIONS(936), + [anon_sym_enum] = ACTIONS(936), + [anon_sym_struct] = ACTIONS(936), + [anon_sym_union] = ACTIONS(936), + [anon_sym_if] = ACTIONS(936), + [anon_sym_else] = ACTIONS(936), + [anon_sym_switch] = ACTIONS(936), + [anon_sym_case] = ACTIONS(936), + [anon_sym_default] = ACTIONS(936), + [anon_sym_while] = ACTIONS(936), + [anon_sym_do] = ACTIONS(936), + [anon_sym_for] = ACTIONS(936), + [anon_sym_return] = ACTIONS(936), + [anon_sym_break] = ACTIONS(936), + [anon_sym_continue] = ACTIONS(936), + [anon_sym_goto] = ACTIONS(936), + [anon_sym_DASH_DASH] = ACTIONS(938), + [anon_sym_PLUS_PLUS] = ACTIONS(938), + [anon_sym_sizeof] = ACTIONS(936), + [sym_number_literal] = ACTIONS(938), + [anon_sym_L_SQUOTE] = ACTIONS(938), + [anon_sym_u_SQUOTE] = ACTIONS(938), + [anon_sym_U_SQUOTE] = ACTIONS(938), + [anon_sym_u8_SQUOTE] = ACTIONS(938), + [anon_sym_SQUOTE] = ACTIONS(938), + [anon_sym_L_DQUOTE] = ACTIONS(938), + [anon_sym_u_DQUOTE] = ACTIONS(938), + [anon_sym_U_DQUOTE] = ACTIONS(938), + [anon_sym_u8_DQUOTE] = ACTIONS(938), + [anon_sym_DQUOTE] = ACTIONS(938), + [sym_true] = ACTIONS(936), + [sym_false] = ACTIONS(936), + [sym_null] = ACTIONS(936), + [sym_comment] = ACTIONS(3), + }, + [144] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(191), + [sym_attributed_statement] = STATE(191), + [sym_labeled_statement] = STATE(191), + [sym_expression_statement] = STATE(191), + [sym_if_statement] = STATE(191), + [sym_switch_statement] = STATE(191), + [sym_case_statement] = STATE(191), + [sym_while_statement] = STATE(191), + [sym_do_statement] = STATE(191), + [sym_for_statement] = STATE(191), + [sym_return_statement] = STATE(191), + [sym_break_statement] = STATE(191), + [sym_continue_statement] = STATE(191), + [sym_goto_statement] = STATE(191), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [145] = { + [ts_builtin_sym_end] = ACTIONS(934), + [sym_identifier] = ACTIONS(932), + [aux_sym_preproc_include_token1] = ACTIONS(932), + [aux_sym_preproc_def_token1] = ACTIONS(932), + [aux_sym_preproc_if_token1] = ACTIONS(932), + [aux_sym_preproc_ifdef_token1] = ACTIONS(932), + [aux_sym_preproc_ifdef_token2] = ACTIONS(932), + [sym_preproc_directive] = ACTIONS(932), + [anon_sym_LPAREN2] = ACTIONS(934), + [anon_sym_BANG] = ACTIONS(934), + [anon_sym_TILDE] = ACTIONS(934), + [anon_sym_DASH] = ACTIONS(932), + [anon_sym_PLUS] = ACTIONS(932), + [anon_sym_STAR] = ACTIONS(934), + [anon_sym_AMP] = ACTIONS(934), + [anon_sym_SEMI] = ACTIONS(934), + [anon_sym_typedef] = ACTIONS(932), + [anon_sym_extern] = ACTIONS(932), + [anon_sym___attribute__] = ACTIONS(932), + [anon_sym_LBRACK_LBRACK] = ACTIONS(934), + [anon_sym___declspec] = ACTIONS(932), + [anon_sym___cdecl] = ACTIONS(932), + [anon_sym___clrcall] = ACTIONS(932), + [anon_sym___stdcall] = ACTIONS(932), + [anon_sym___fastcall] = ACTIONS(932), + [anon_sym___thiscall] = ACTIONS(932), + [anon_sym___vectorcall] = ACTIONS(932), + [anon_sym_LBRACE] = ACTIONS(934), + [anon_sym_static] = ACTIONS(932), + [anon_sym_auto] = ACTIONS(932), + [anon_sym_register] = ACTIONS(932), + [anon_sym_inline] = ACTIONS(932), + [anon_sym_const] = ACTIONS(932), + [anon_sym_volatile] = ACTIONS(932), + [anon_sym_restrict] = ACTIONS(932), + [anon_sym__Atomic] = ACTIONS(932), + [anon_sym_signed] = ACTIONS(932), + [anon_sym_unsigned] = ACTIONS(932), + [anon_sym_long] = ACTIONS(932), + [anon_sym_short] = ACTIONS(932), + [sym_primitive_type] = ACTIONS(932), + [anon_sym_enum] = ACTIONS(932), + [anon_sym_struct] = ACTIONS(932), + [anon_sym_union] = ACTIONS(932), + [anon_sym_if] = ACTIONS(932), + [anon_sym_else] = ACTIONS(932), + [anon_sym_switch] = ACTIONS(932), + [anon_sym_case] = ACTIONS(932), + [anon_sym_default] = ACTIONS(932), + [anon_sym_while] = ACTIONS(932), + [anon_sym_do] = ACTIONS(932), + [anon_sym_for] = ACTIONS(932), + [anon_sym_return] = ACTIONS(932), + [anon_sym_break] = ACTIONS(932), + [anon_sym_continue] = ACTIONS(932), + [anon_sym_goto] = ACTIONS(932), + [anon_sym_DASH_DASH] = ACTIONS(934), + [anon_sym_PLUS_PLUS] = ACTIONS(934), + [anon_sym_sizeof] = ACTIONS(932), + [sym_number_literal] = ACTIONS(934), + [anon_sym_L_SQUOTE] = ACTIONS(934), + [anon_sym_u_SQUOTE] = ACTIONS(934), + [anon_sym_U_SQUOTE] = ACTIONS(934), + [anon_sym_u8_SQUOTE] = ACTIONS(934), + [anon_sym_SQUOTE] = ACTIONS(934), + [anon_sym_L_DQUOTE] = ACTIONS(934), + [anon_sym_u_DQUOTE] = ACTIONS(934), + [anon_sym_U_DQUOTE] = ACTIONS(934), + [anon_sym_u8_DQUOTE] = ACTIONS(934), + [anon_sym_DQUOTE] = ACTIONS(934), + [sym_true] = ACTIONS(932), + [sym_false] = ACTIONS(932), + [sym_null] = ACTIONS(932), + [sym_comment] = ACTIONS(3), + }, + [146] = { + [sym_identifier] = ACTIONS(1000), + [aux_sym_preproc_include_token1] = ACTIONS(1000), + [aux_sym_preproc_def_token1] = ACTIONS(1000), + [aux_sym_preproc_if_token1] = ACTIONS(1000), + [aux_sym_preproc_if_token2] = ACTIONS(1000), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1000), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1000), + [sym_preproc_directive] = ACTIONS(1000), + [anon_sym_LPAREN2] = ACTIONS(1002), + [anon_sym_BANG] = ACTIONS(1002), + [anon_sym_TILDE] = ACTIONS(1002), + [anon_sym_DASH] = ACTIONS(1000), + [anon_sym_PLUS] = ACTIONS(1000), + [anon_sym_STAR] = ACTIONS(1002), + [anon_sym_AMP] = ACTIONS(1002), + [anon_sym_SEMI] = ACTIONS(1002), + [anon_sym_typedef] = ACTIONS(1000), + [anon_sym_extern] = ACTIONS(1000), + [anon_sym___attribute__] = ACTIONS(1000), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1002), + [anon_sym___declspec] = ACTIONS(1000), + [anon_sym___cdecl] = ACTIONS(1000), + [anon_sym___clrcall] = ACTIONS(1000), + [anon_sym___stdcall] = ACTIONS(1000), + [anon_sym___fastcall] = ACTIONS(1000), + [anon_sym___thiscall] = ACTIONS(1000), + [anon_sym___vectorcall] = ACTIONS(1000), + [anon_sym_LBRACE] = ACTIONS(1002), + [anon_sym_static] = ACTIONS(1000), + [anon_sym_auto] = ACTIONS(1000), + [anon_sym_register] = ACTIONS(1000), + [anon_sym_inline] = ACTIONS(1000), + [anon_sym_const] = ACTIONS(1000), + [anon_sym_volatile] = ACTIONS(1000), + [anon_sym_restrict] = ACTIONS(1000), + [anon_sym__Atomic] = ACTIONS(1000), + [anon_sym_signed] = ACTIONS(1000), + [anon_sym_unsigned] = ACTIONS(1000), + [anon_sym_long] = ACTIONS(1000), + [anon_sym_short] = ACTIONS(1000), + [sym_primitive_type] = ACTIONS(1000), + [anon_sym_enum] = ACTIONS(1000), + [anon_sym_struct] = ACTIONS(1000), + [anon_sym_union] = ACTIONS(1000), + [anon_sym_if] = ACTIONS(1000), + [anon_sym_else] = ACTIONS(1000), + [anon_sym_switch] = ACTIONS(1000), + [anon_sym_case] = ACTIONS(1000), + [anon_sym_default] = ACTIONS(1000), + [anon_sym_while] = ACTIONS(1000), + [anon_sym_do] = ACTIONS(1000), + [anon_sym_for] = ACTIONS(1000), + [anon_sym_return] = ACTIONS(1000), + [anon_sym_break] = ACTIONS(1000), + [anon_sym_continue] = ACTIONS(1000), + [anon_sym_goto] = ACTIONS(1000), + [anon_sym_DASH_DASH] = ACTIONS(1002), + [anon_sym_PLUS_PLUS] = ACTIONS(1002), + [anon_sym_sizeof] = ACTIONS(1000), + [sym_number_literal] = ACTIONS(1002), + [anon_sym_L_SQUOTE] = ACTIONS(1002), + [anon_sym_u_SQUOTE] = ACTIONS(1002), + [anon_sym_U_SQUOTE] = ACTIONS(1002), + [anon_sym_u8_SQUOTE] = ACTIONS(1002), + [anon_sym_SQUOTE] = ACTIONS(1002), + [anon_sym_L_DQUOTE] = ACTIONS(1002), + [anon_sym_u_DQUOTE] = ACTIONS(1002), + [anon_sym_U_DQUOTE] = ACTIONS(1002), + [anon_sym_u8_DQUOTE] = ACTIONS(1002), + [anon_sym_DQUOTE] = ACTIONS(1002), + [sym_true] = ACTIONS(1000), + [sym_false] = ACTIONS(1000), + [sym_null] = ACTIONS(1000), + [sym_comment] = ACTIONS(3), + }, + [147] = { + [sym_identifier] = ACTIONS(1012), + [aux_sym_preproc_include_token1] = ACTIONS(1012), + [aux_sym_preproc_def_token1] = ACTIONS(1012), + [aux_sym_preproc_if_token1] = ACTIONS(1012), + [aux_sym_preproc_if_token2] = ACTIONS(1012), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1012), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1012), + [sym_preproc_directive] = ACTIONS(1012), + [anon_sym_LPAREN2] = ACTIONS(1014), + [anon_sym_BANG] = ACTIONS(1014), + [anon_sym_TILDE] = ACTIONS(1014), + [anon_sym_DASH] = ACTIONS(1012), + [anon_sym_PLUS] = ACTIONS(1012), + [anon_sym_STAR] = ACTIONS(1014), + [anon_sym_AMP] = ACTIONS(1014), + [anon_sym_SEMI] = ACTIONS(1014), + [anon_sym_typedef] = ACTIONS(1012), + [anon_sym_extern] = ACTIONS(1012), + [anon_sym___attribute__] = ACTIONS(1012), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1014), + [anon_sym___declspec] = ACTIONS(1012), + [anon_sym___cdecl] = ACTIONS(1012), + [anon_sym___clrcall] = ACTIONS(1012), + [anon_sym___stdcall] = ACTIONS(1012), + [anon_sym___fastcall] = ACTIONS(1012), + [anon_sym___thiscall] = ACTIONS(1012), + [anon_sym___vectorcall] = ACTIONS(1012), + [anon_sym_LBRACE] = ACTIONS(1014), + [anon_sym_static] = ACTIONS(1012), + [anon_sym_auto] = ACTIONS(1012), + [anon_sym_register] = ACTIONS(1012), + [anon_sym_inline] = ACTIONS(1012), + [anon_sym_const] = ACTIONS(1012), + [anon_sym_volatile] = ACTIONS(1012), + [anon_sym_restrict] = ACTIONS(1012), + [anon_sym__Atomic] = ACTIONS(1012), + [anon_sym_signed] = ACTIONS(1012), + [anon_sym_unsigned] = ACTIONS(1012), + [anon_sym_long] = ACTIONS(1012), + [anon_sym_short] = ACTIONS(1012), + [sym_primitive_type] = ACTIONS(1012), + [anon_sym_enum] = ACTIONS(1012), + [anon_sym_struct] = ACTIONS(1012), + [anon_sym_union] = ACTIONS(1012), + [anon_sym_if] = ACTIONS(1012), + [anon_sym_else] = ACTIONS(1012), + [anon_sym_switch] = ACTIONS(1012), + [anon_sym_case] = ACTIONS(1012), + [anon_sym_default] = ACTIONS(1012), + [anon_sym_while] = ACTIONS(1012), + [anon_sym_do] = ACTIONS(1012), + [anon_sym_for] = ACTIONS(1012), + [anon_sym_return] = ACTIONS(1012), + [anon_sym_break] = ACTIONS(1012), + [anon_sym_continue] = ACTIONS(1012), + [anon_sym_goto] = ACTIONS(1012), + [anon_sym_DASH_DASH] = ACTIONS(1014), + [anon_sym_PLUS_PLUS] = ACTIONS(1014), + [anon_sym_sizeof] = ACTIONS(1012), + [sym_number_literal] = ACTIONS(1014), + [anon_sym_L_SQUOTE] = ACTIONS(1014), + [anon_sym_u_SQUOTE] = ACTIONS(1014), + [anon_sym_U_SQUOTE] = ACTIONS(1014), + [anon_sym_u8_SQUOTE] = ACTIONS(1014), + [anon_sym_SQUOTE] = ACTIONS(1014), + [anon_sym_L_DQUOTE] = ACTIONS(1014), + [anon_sym_u_DQUOTE] = ACTIONS(1014), + [anon_sym_U_DQUOTE] = ACTIONS(1014), + [anon_sym_u8_DQUOTE] = ACTIONS(1014), + [anon_sym_DQUOTE] = ACTIONS(1014), + [sym_true] = ACTIONS(1012), + [sym_false] = ACTIONS(1012), + [sym_null] = ACTIONS(1012), + [sym_comment] = ACTIONS(3), + }, + [148] = { + [sym_identifier] = ACTIONS(1020), + [aux_sym_preproc_include_token1] = ACTIONS(1020), + [aux_sym_preproc_def_token1] = ACTIONS(1020), + [aux_sym_preproc_if_token1] = ACTIONS(1020), + [aux_sym_preproc_if_token2] = ACTIONS(1020), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1020), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1020), + [sym_preproc_directive] = ACTIONS(1020), + [anon_sym_LPAREN2] = ACTIONS(1022), + [anon_sym_BANG] = ACTIONS(1022), + [anon_sym_TILDE] = ACTIONS(1022), + [anon_sym_DASH] = ACTIONS(1020), + [anon_sym_PLUS] = ACTIONS(1020), + [anon_sym_STAR] = ACTIONS(1022), + [anon_sym_AMP] = ACTIONS(1022), + [anon_sym_SEMI] = ACTIONS(1022), + [anon_sym_typedef] = ACTIONS(1020), + [anon_sym_extern] = ACTIONS(1020), + [anon_sym___attribute__] = ACTIONS(1020), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1022), + [anon_sym___declspec] = ACTIONS(1020), + [anon_sym___cdecl] = ACTIONS(1020), + [anon_sym___clrcall] = ACTIONS(1020), + [anon_sym___stdcall] = ACTIONS(1020), + [anon_sym___fastcall] = ACTIONS(1020), + [anon_sym___thiscall] = ACTIONS(1020), + [anon_sym___vectorcall] = ACTIONS(1020), + [anon_sym_LBRACE] = ACTIONS(1022), + [anon_sym_static] = ACTIONS(1020), + [anon_sym_auto] = ACTIONS(1020), + [anon_sym_register] = ACTIONS(1020), + [anon_sym_inline] = ACTIONS(1020), + [anon_sym_const] = ACTIONS(1020), + [anon_sym_volatile] = ACTIONS(1020), + [anon_sym_restrict] = ACTIONS(1020), + [anon_sym__Atomic] = ACTIONS(1020), + [anon_sym_signed] = ACTIONS(1020), + [anon_sym_unsigned] = ACTIONS(1020), + [anon_sym_long] = ACTIONS(1020), + [anon_sym_short] = ACTIONS(1020), + [sym_primitive_type] = ACTIONS(1020), + [anon_sym_enum] = ACTIONS(1020), + [anon_sym_struct] = ACTIONS(1020), + [anon_sym_union] = ACTIONS(1020), + [anon_sym_if] = ACTIONS(1020), + [anon_sym_else] = ACTIONS(1020), + [anon_sym_switch] = ACTIONS(1020), + [anon_sym_case] = ACTIONS(1020), + [anon_sym_default] = ACTIONS(1020), + [anon_sym_while] = ACTIONS(1020), + [anon_sym_do] = ACTIONS(1020), + [anon_sym_for] = ACTIONS(1020), + [anon_sym_return] = ACTIONS(1020), + [anon_sym_break] = ACTIONS(1020), + [anon_sym_continue] = ACTIONS(1020), + [anon_sym_goto] = ACTIONS(1020), + [anon_sym_DASH_DASH] = ACTIONS(1022), + [anon_sym_PLUS_PLUS] = ACTIONS(1022), + [anon_sym_sizeof] = ACTIONS(1020), + [sym_number_literal] = ACTIONS(1022), + [anon_sym_L_SQUOTE] = ACTIONS(1022), + [anon_sym_u_SQUOTE] = ACTIONS(1022), + [anon_sym_U_SQUOTE] = ACTIONS(1022), + [anon_sym_u8_SQUOTE] = ACTIONS(1022), + [anon_sym_SQUOTE] = ACTIONS(1022), + [anon_sym_L_DQUOTE] = ACTIONS(1022), + [anon_sym_u_DQUOTE] = ACTIONS(1022), + [anon_sym_U_DQUOTE] = ACTIONS(1022), + [anon_sym_u8_DQUOTE] = ACTIONS(1022), + [anon_sym_DQUOTE] = ACTIONS(1022), + [sym_true] = ACTIONS(1020), + [sym_false] = ACTIONS(1020), + [sym_null] = ACTIONS(1020), + [sym_comment] = ACTIONS(3), + }, + [149] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(130), + [sym_attributed_statement] = STATE(130), + [sym_labeled_statement] = STATE(130), + [sym_expression_statement] = STATE(130), + [sym_if_statement] = STATE(130), + [sym_switch_statement] = STATE(130), + [sym_case_statement] = STATE(130), + [sym_while_statement] = STATE(130), + [sym_do_statement] = STATE(130), + [sym_for_statement] = STATE(130), + [sym_return_statement] = STATE(130), + [sym_break_statement] = STATE(130), + [sym_continue_statement] = STATE(130), + [sym_goto_statement] = STATE(130), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [150] = { + [sym_identifier] = ACTIONS(928), + [aux_sym_preproc_include_token1] = ACTIONS(928), + [aux_sym_preproc_def_token1] = ACTIONS(928), + [aux_sym_preproc_if_token1] = ACTIONS(928), + [aux_sym_preproc_if_token2] = ACTIONS(928), + [aux_sym_preproc_ifdef_token1] = ACTIONS(928), + [aux_sym_preproc_ifdef_token2] = ACTIONS(928), + [sym_preproc_directive] = ACTIONS(928), + [anon_sym_LPAREN2] = ACTIONS(930), + [anon_sym_BANG] = ACTIONS(930), + [anon_sym_TILDE] = ACTIONS(930), + [anon_sym_DASH] = ACTIONS(928), + [anon_sym_PLUS] = ACTIONS(928), + [anon_sym_STAR] = ACTIONS(930), + [anon_sym_AMP] = ACTIONS(930), + [anon_sym_SEMI] = ACTIONS(930), + [anon_sym_typedef] = ACTIONS(928), + [anon_sym_extern] = ACTIONS(928), + [anon_sym___attribute__] = ACTIONS(928), + [anon_sym_LBRACK_LBRACK] = ACTIONS(930), + [anon_sym___declspec] = ACTIONS(928), + [anon_sym___cdecl] = ACTIONS(928), + [anon_sym___clrcall] = ACTIONS(928), + [anon_sym___stdcall] = ACTIONS(928), + [anon_sym___fastcall] = ACTIONS(928), + [anon_sym___thiscall] = ACTIONS(928), + [anon_sym___vectorcall] = ACTIONS(928), + [anon_sym_LBRACE] = ACTIONS(930), + [anon_sym_static] = ACTIONS(928), + [anon_sym_auto] = ACTIONS(928), + [anon_sym_register] = ACTIONS(928), + [anon_sym_inline] = ACTIONS(928), + [anon_sym_const] = ACTIONS(928), + [anon_sym_volatile] = ACTIONS(928), + [anon_sym_restrict] = ACTIONS(928), + [anon_sym__Atomic] = ACTIONS(928), + [anon_sym_signed] = ACTIONS(928), + [anon_sym_unsigned] = ACTIONS(928), + [anon_sym_long] = ACTIONS(928), + [anon_sym_short] = ACTIONS(928), + [sym_primitive_type] = ACTIONS(928), + [anon_sym_enum] = ACTIONS(928), + [anon_sym_struct] = ACTIONS(928), + [anon_sym_union] = ACTIONS(928), + [anon_sym_if] = ACTIONS(928), + [anon_sym_else] = ACTIONS(928), + [anon_sym_switch] = ACTIONS(928), + [anon_sym_case] = ACTIONS(928), + [anon_sym_default] = ACTIONS(928), + [anon_sym_while] = ACTIONS(928), + [anon_sym_do] = ACTIONS(928), + [anon_sym_for] = ACTIONS(928), + [anon_sym_return] = ACTIONS(928), + [anon_sym_break] = ACTIONS(928), + [anon_sym_continue] = ACTIONS(928), + [anon_sym_goto] = ACTIONS(928), + [anon_sym_DASH_DASH] = ACTIONS(930), + [anon_sym_PLUS_PLUS] = ACTIONS(930), + [anon_sym_sizeof] = ACTIONS(928), + [sym_number_literal] = ACTIONS(930), + [anon_sym_L_SQUOTE] = ACTIONS(930), + [anon_sym_u_SQUOTE] = ACTIONS(930), + [anon_sym_U_SQUOTE] = ACTIONS(930), + [anon_sym_u8_SQUOTE] = ACTIONS(930), + [anon_sym_SQUOTE] = ACTIONS(930), + [anon_sym_L_DQUOTE] = ACTIONS(930), + [anon_sym_u_DQUOTE] = ACTIONS(930), + [anon_sym_U_DQUOTE] = ACTIONS(930), + [anon_sym_u8_DQUOTE] = ACTIONS(930), + [anon_sym_DQUOTE] = ACTIONS(930), + [sym_true] = ACTIONS(928), + [sym_false] = ACTIONS(928), + [sym_null] = ACTIONS(928), + [sym_comment] = ACTIONS(3), + }, + [151] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(134), + [sym_attributed_statement] = STATE(134), + [sym_labeled_statement] = STATE(134), + [sym_expression_statement] = STATE(134), + [sym_if_statement] = STATE(134), + [sym_switch_statement] = STATE(134), + [sym_case_statement] = STATE(134), + [sym_while_statement] = STATE(134), + [sym_do_statement] = STATE(134), + [sym_for_statement] = STATE(134), + [sym_return_statement] = STATE(134), + [sym_break_statement] = STATE(134), + [sym_continue_statement] = STATE(134), + [sym_goto_statement] = STATE(134), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [152] = { + [sym_identifier] = ACTIONS(1024), + [aux_sym_preproc_include_token1] = ACTIONS(1024), + [aux_sym_preproc_def_token1] = ACTIONS(1024), + [aux_sym_preproc_if_token1] = ACTIONS(1024), + [aux_sym_preproc_if_token2] = ACTIONS(1024), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1024), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1024), + [sym_preproc_directive] = ACTIONS(1024), + [anon_sym_LPAREN2] = ACTIONS(1026), + [anon_sym_BANG] = ACTIONS(1026), + [anon_sym_TILDE] = ACTIONS(1026), + [anon_sym_DASH] = ACTIONS(1024), + [anon_sym_PLUS] = ACTIONS(1024), + [anon_sym_STAR] = ACTIONS(1026), + [anon_sym_AMP] = ACTIONS(1026), + [anon_sym_SEMI] = ACTIONS(1026), + [anon_sym_typedef] = ACTIONS(1024), + [anon_sym_extern] = ACTIONS(1024), + [anon_sym___attribute__] = ACTIONS(1024), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1026), + [anon_sym___declspec] = ACTIONS(1024), + [anon_sym___cdecl] = ACTIONS(1024), + [anon_sym___clrcall] = ACTIONS(1024), + [anon_sym___stdcall] = ACTIONS(1024), + [anon_sym___fastcall] = ACTIONS(1024), + [anon_sym___thiscall] = ACTIONS(1024), + [anon_sym___vectorcall] = ACTIONS(1024), + [anon_sym_LBRACE] = ACTIONS(1026), + [anon_sym_static] = ACTIONS(1024), + [anon_sym_auto] = ACTIONS(1024), + [anon_sym_register] = ACTIONS(1024), + [anon_sym_inline] = ACTIONS(1024), + [anon_sym_const] = ACTIONS(1024), + [anon_sym_volatile] = ACTIONS(1024), + [anon_sym_restrict] = ACTIONS(1024), + [anon_sym__Atomic] = ACTIONS(1024), + [anon_sym_signed] = ACTIONS(1024), + [anon_sym_unsigned] = ACTIONS(1024), + [anon_sym_long] = ACTIONS(1024), + [anon_sym_short] = ACTIONS(1024), + [sym_primitive_type] = ACTIONS(1024), + [anon_sym_enum] = ACTIONS(1024), + [anon_sym_struct] = ACTIONS(1024), + [anon_sym_union] = ACTIONS(1024), + [anon_sym_if] = ACTIONS(1024), + [anon_sym_else] = ACTIONS(1024), + [anon_sym_switch] = ACTIONS(1024), + [anon_sym_case] = ACTIONS(1024), + [anon_sym_default] = ACTIONS(1024), + [anon_sym_while] = ACTIONS(1024), + [anon_sym_do] = ACTIONS(1024), + [anon_sym_for] = ACTIONS(1024), + [anon_sym_return] = ACTIONS(1024), + [anon_sym_break] = ACTIONS(1024), + [anon_sym_continue] = ACTIONS(1024), + [anon_sym_goto] = ACTIONS(1024), + [anon_sym_DASH_DASH] = ACTIONS(1026), + [anon_sym_PLUS_PLUS] = ACTIONS(1026), + [anon_sym_sizeof] = ACTIONS(1024), + [sym_number_literal] = ACTIONS(1026), + [anon_sym_L_SQUOTE] = ACTIONS(1026), + [anon_sym_u_SQUOTE] = ACTIONS(1026), + [anon_sym_U_SQUOTE] = ACTIONS(1026), + [anon_sym_u8_SQUOTE] = ACTIONS(1026), + [anon_sym_SQUOTE] = ACTIONS(1026), + [anon_sym_L_DQUOTE] = ACTIONS(1026), + [anon_sym_u_DQUOTE] = ACTIONS(1026), + [anon_sym_U_DQUOTE] = ACTIONS(1026), + [anon_sym_u8_DQUOTE] = ACTIONS(1026), + [anon_sym_DQUOTE] = ACTIONS(1026), + [sym_true] = ACTIONS(1024), + [sym_false] = ACTIONS(1024), + [sym_null] = ACTIONS(1024), + [sym_comment] = ACTIONS(3), + }, + [153] = { + [sym_attribute_declaration] = STATE(140), + [sym_compound_statement] = STATE(141), + [sym_attributed_statement] = STATE(141), + [sym_labeled_statement] = STATE(141), + [sym_expression_statement] = STATE(141), + [sym_if_statement] = STATE(141), + [sym_switch_statement] = STATE(141), + [sym_case_statement] = STATE(141), + [sym_while_statement] = STATE(141), + [sym_do_statement] = STATE(141), + [sym_for_statement] = STATE(141), + [sym_return_statement] = STATE(141), + [sym_break_statement] = STATE(141), + [sym_continue_statement] = STATE(141), + [sym_goto_statement] = STATE(141), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(140), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [154] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(177), + [sym_attributed_statement] = STATE(177), + [sym_labeled_statement] = STATE(177), + [sym_expression_statement] = STATE(177), + [sym_if_statement] = STATE(177), + [sym_switch_statement] = STATE(177), + [sym_case_statement] = STATE(177), + [sym_while_statement] = STATE(177), + [sym_do_statement] = STATE(177), + [sym_for_statement] = STATE(177), + [sym_return_statement] = STATE(177), + [sym_break_statement] = STATE(177), + [sym_continue_statement] = STATE(177), + [sym_goto_statement] = STATE(177), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [155] = { + [sym_identifier] = ACTIONS(964), + [aux_sym_preproc_include_token1] = ACTIONS(964), + [aux_sym_preproc_def_token1] = ACTIONS(964), + [aux_sym_preproc_if_token1] = ACTIONS(964), + [aux_sym_preproc_if_token2] = ACTIONS(964), + [aux_sym_preproc_ifdef_token1] = ACTIONS(964), + [aux_sym_preproc_ifdef_token2] = ACTIONS(964), + [sym_preproc_directive] = ACTIONS(964), + [anon_sym_LPAREN2] = ACTIONS(966), + [anon_sym_BANG] = ACTIONS(966), + [anon_sym_TILDE] = ACTIONS(966), + [anon_sym_DASH] = ACTIONS(964), + [anon_sym_PLUS] = ACTIONS(964), + [anon_sym_STAR] = ACTIONS(966), + [anon_sym_AMP] = ACTIONS(966), + [anon_sym_SEMI] = ACTIONS(966), + [anon_sym_typedef] = ACTIONS(964), + [anon_sym_extern] = ACTIONS(964), + [anon_sym___attribute__] = ACTIONS(964), + [anon_sym_LBRACK_LBRACK] = ACTIONS(966), + [anon_sym___declspec] = ACTIONS(964), + [anon_sym___cdecl] = ACTIONS(964), + [anon_sym___clrcall] = ACTIONS(964), + [anon_sym___stdcall] = ACTIONS(964), + [anon_sym___fastcall] = ACTIONS(964), + [anon_sym___thiscall] = ACTIONS(964), + [anon_sym___vectorcall] = ACTIONS(964), + [anon_sym_LBRACE] = ACTIONS(966), + [anon_sym_static] = ACTIONS(964), + [anon_sym_auto] = ACTIONS(964), + [anon_sym_register] = ACTIONS(964), + [anon_sym_inline] = ACTIONS(964), + [anon_sym_const] = ACTIONS(964), + [anon_sym_volatile] = ACTIONS(964), + [anon_sym_restrict] = ACTIONS(964), + [anon_sym__Atomic] = ACTIONS(964), + [anon_sym_signed] = ACTIONS(964), + [anon_sym_unsigned] = ACTIONS(964), + [anon_sym_long] = ACTIONS(964), + [anon_sym_short] = ACTIONS(964), + [sym_primitive_type] = ACTIONS(964), + [anon_sym_enum] = ACTIONS(964), + [anon_sym_struct] = ACTIONS(964), + [anon_sym_union] = ACTIONS(964), + [anon_sym_if] = ACTIONS(964), + [anon_sym_else] = ACTIONS(964), + [anon_sym_switch] = ACTIONS(964), + [anon_sym_case] = ACTIONS(964), + [anon_sym_default] = ACTIONS(964), + [anon_sym_while] = ACTIONS(964), + [anon_sym_do] = ACTIONS(964), + [anon_sym_for] = ACTIONS(964), + [anon_sym_return] = ACTIONS(964), + [anon_sym_break] = ACTIONS(964), + [anon_sym_continue] = ACTIONS(964), + [anon_sym_goto] = ACTIONS(964), + [anon_sym_DASH_DASH] = ACTIONS(966), + [anon_sym_PLUS_PLUS] = ACTIONS(966), + [anon_sym_sizeof] = ACTIONS(964), + [sym_number_literal] = ACTIONS(966), + [anon_sym_L_SQUOTE] = ACTIONS(966), + [anon_sym_u_SQUOTE] = ACTIONS(966), + [anon_sym_U_SQUOTE] = ACTIONS(966), + [anon_sym_u8_SQUOTE] = ACTIONS(966), + [anon_sym_SQUOTE] = ACTIONS(966), + [anon_sym_L_DQUOTE] = ACTIONS(966), + [anon_sym_u_DQUOTE] = ACTIONS(966), + [anon_sym_U_DQUOTE] = ACTIONS(966), + [anon_sym_u8_DQUOTE] = ACTIONS(966), + [anon_sym_DQUOTE] = ACTIONS(966), + [sym_true] = ACTIONS(964), + [sym_false] = ACTIONS(964), + [sym_null] = ACTIONS(964), + [sym_comment] = ACTIONS(3), + }, + [156] = { + [sym_identifier] = ACTIONS(898), + [aux_sym_preproc_include_token1] = ACTIONS(898), + [aux_sym_preproc_def_token1] = ACTIONS(898), + [aux_sym_preproc_if_token1] = ACTIONS(898), + [aux_sym_preproc_if_token2] = ACTIONS(898), + [aux_sym_preproc_ifdef_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token2] = ACTIONS(898), + [sym_preproc_directive] = ACTIONS(898), + [anon_sym_LPAREN2] = ACTIONS(900), + [anon_sym_BANG] = ACTIONS(900), + [anon_sym_TILDE] = ACTIONS(900), + [anon_sym_DASH] = ACTIONS(898), + [anon_sym_PLUS] = ACTIONS(898), + [anon_sym_STAR] = ACTIONS(900), + [anon_sym_AMP] = ACTIONS(900), + [anon_sym_SEMI] = ACTIONS(900), + [anon_sym_typedef] = ACTIONS(898), + [anon_sym_extern] = ACTIONS(898), + [anon_sym___attribute__] = ACTIONS(898), + [anon_sym_LBRACK_LBRACK] = ACTIONS(900), + [anon_sym___declspec] = ACTIONS(898), + [anon_sym___cdecl] = ACTIONS(898), + [anon_sym___clrcall] = ACTIONS(898), + [anon_sym___stdcall] = ACTIONS(898), + [anon_sym___fastcall] = ACTIONS(898), + [anon_sym___thiscall] = ACTIONS(898), + [anon_sym___vectorcall] = ACTIONS(898), + [anon_sym_LBRACE] = ACTIONS(900), + [anon_sym_static] = ACTIONS(898), + [anon_sym_auto] = ACTIONS(898), + [anon_sym_register] = ACTIONS(898), + [anon_sym_inline] = ACTIONS(898), + [anon_sym_const] = ACTIONS(898), + [anon_sym_volatile] = ACTIONS(898), + [anon_sym_restrict] = ACTIONS(898), + [anon_sym__Atomic] = ACTIONS(898), + [anon_sym_signed] = ACTIONS(898), + [anon_sym_unsigned] = ACTIONS(898), + [anon_sym_long] = ACTIONS(898), + [anon_sym_short] = ACTIONS(898), + [sym_primitive_type] = ACTIONS(898), + [anon_sym_enum] = ACTIONS(898), + [anon_sym_struct] = ACTIONS(898), + [anon_sym_union] = ACTIONS(898), + [anon_sym_if] = ACTIONS(898), + [anon_sym_else] = ACTIONS(898), + [anon_sym_switch] = ACTIONS(898), + [anon_sym_case] = ACTIONS(898), + [anon_sym_default] = ACTIONS(898), + [anon_sym_while] = ACTIONS(898), + [anon_sym_do] = ACTIONS(898), + [anon_sym_for] = ACTIONS(898), + [anon_sym_return] = ACTIONS(898), + [anon_sym_break] = ACTIONS(898), + [anon_sym_continue] = ACTIONS(898), + [anon_sym_goto] = ACTIONS(898), + [anon_sym_DASH_DASH] = ACTIONS(900), + [anon_sym_PLUS_PLUS] = ACTIONS(900), + [anon_sym_sizeof] = ACTIONS(898), + [sym_number_literal] = ACTIONS(900), + [anon_sym_L_SQUOTE] = ACTIONS(900), + [anon_sym_u_SQUOTE] = ACTIONS(900), + [anon_sym_U_SQUOTE] = ACTIONS(900), + [anon_sym_u8_SQUOTE] = ACTIONS(900), + [anon_sym_SQUOTE] = ACTIONS(900), + [anon_sym_L_DQUOTE] = ACTIONS(900), + [anon_sym_u_DQUOTE] = ACTIONS(900), + [anon_sym_U_DQUOTE] = ACTIONS(900), + [anon_sym_u8_DQUOTE] = ACTIONS(900), + [anon_sym_DQUOTE] = ACTIONS(900), + [sym_true] = ACTIONS(898), + [sym_false] = ACTIONS(898), + [sym_null] = ACTIONS(898), + [sym_comment] = ACTIONS(3), + }, + [157] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(99), + [sym_attributed_statement] = STATE(99), + [sym_labeled_statement] = STATE(99), + [sym_expression_statement] = STATE(99), + [sym_if_statement] = STATE(99), + [sym_switch_statement] = STATE(99), + [sym_case_statement] = STATE(99), + [sym_while_statement] = STATE(99), + [sym_do_statement] = STATE(99), + [sym_for_statement] = STATE(99), + [sym_return_statement] = STATE(99), + [sym_break_statement] = STATE(99), + [sym_continue_statement] = STATE(99), + [sym_goto_statement] = STATE(99), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [158] = { + [ts_builtin_sym_end] = ACTIONS(966), + [sym_identifier] = ACTIONS(964), + [aux_sym_preproc_include_token1] = ACTIONS(964), + [aux_sym_preproc_def_token1] = ACTIONS(964), + [aux_sym_preproc_if_token1] = ACTIONS(964), + [aux_sym_preproc_ifdef_token1] = ACTIONS(964), + [aux_sym_preproc_ifdef_token2] = ACTIONS(964), + [sym_preproc_directive] = ACTIONS(964), + [anon_sym_LPAREN2] = ACTIONS(966), + [anon_sym_BANG] = ACTIONS(966), + [anon_sym_TILDE] = ACTIONS(966), + [anon_sym_DASH] = ACTIONS(964), + [anon_sym_PLUS] = ACTIONS(964), + [anon_sym_STAR] = ACTIONS(966), + [anon_sym_AMP] = ACTIONS(966), + [anon_sym_SEMI] = ACTIONS(966), + [anon_sym_typedef] = ACTIONS(964), + [anon_sym_extern] = ACTIONS(964), + [anon_sym___attribute__] = ACTIONS(964), + [anon_sym_LBRACK_LBRACK] = ACTIONS(966), + [anon_sym___declspec] = ACTIONS(964), + [anon_sym___cdecl] = ACTIONS(964), + [anon_sym___clrcall] = ACTIONS(964), + [anon_sym___stdcall] = ACTIONS(964), + [anon_sym___fastcall] = ACTIONS(964), + [anon_sym___thiscall] = ACTIONS(964), + [anon_sym___vectorcall] = ACTIONS(964), + [anon_sym_LBRACE] = ACTIONS(966), + [anon_sym_static] = ACTIONS(964), + [anon_sym_auto] = ACTIONS(964), + [anon_sym_register] = ACTIONS(964), + [anon_sym_inline] = ACTIONS(964), + [anon_sym_const] = ACTIONS(964), + [anon_sym_volatile] = ACTIONS(964), + [anon_sym_restrict] = ACTIONS(964), + [anon_sym__Atomic] = ACTIONS(964), + [anon_sym_signed] = ACTIONS(964), + [anon_sym_unsigned] = ACTIONS(964), + [anon_sym_long] = ACTIONS(964), + [anon_sym_short] = ACTIONS(964), + [sym_primitive_type] = ACTIONS(964), + [anon_sym_enum] = ACTIONS(964), + [anon_sym_struct] = ACTIONS(964), + [anon_sym_union] = ACTIONS(964), + [anon_sym_if] = ACTIONS(964), + [anon_sym_else] = ACTIONS(964), + [anon_sym_switch] = ACTIONS(964), + [anon_sym_case] = ACTIONS(964), + [anon_sym_default] = ACTIONS(964), + [anon_sym_while] = ACTIONS(964), + [anon_sym_do] = ACTIONS(964), + [anon_sym_for] = ACTIONS(964), + [anon_sym_return] = ACTIONS(964), + [anon_sym_break] = ACTIONS(964), + [anon_sym_continue] = ACTIONS(964), + [anon_sym_goto] = ACTIONS(964), + [anon_sym_DASH_DASH] = ACTIONS(966), + [anon_sym_PLUS_PLUS] = ACTIONS(966), + [anon_sym_sizeof] = ACTIONS(964), + [sym_number_literal] = ACTIONS(966), + [anon_sym_L_SQUOTE] = ACTIONS(966), + [anon_sym_u_SQUOTE] = ACTIONS(966), + [anon_sym_U_SQUOTE] = ACTIONS(966), + [anon_sym_u8_SQUOTE] = ACTIONS(966), + [anon_sym_SQUOTE] = ACTIONS(966), + [anon_sym_L_DQUOTE] = ACTIONS(966), + [anon_sym_u_DQUOTE] = ACTIONS(966), + [anon_sym_U_DQUOTE] = ACTIONS(966), + [anon_sym_u8_DQUOTE] = ACTIONS(966), + [anon_sym_DQUOTE] = ACTIONS(966), + [sym_true] = ACTIONS(964), + [sym_false] = ACTIONS(964), + [sym_null] = ACTIONS(964), + [sym_comment] = ACTIONS(3), + }, + [159] = { + [ts_builtin_sym_end] = ACTIONS(986), + [sym_identifier] = ACTIONS(984), + [aux_sym_preproc_include_token1] = ACTIONS(984), + [aux_sym_preproc_def_token1] = ACTIONS(984), + [aux_sym_preproc_if_token1] = ACTIONS(984), + [aux_sym_preproc_ifdef_token1] = ACTIONS(984), + [aux_sym_preproc_ifdef_token2] = ACTIONS(984), + [sym_preproc_directive] = ACTIONS(984), + [anon_sym_LPAREN2] = ACTIONS(986), + [anon_sym_BANG] = ACTIONS(986), + [anon_sym_TILDE] = ACTIONS(986), + [anon_sym_DASH] = ACTIONS(984), + [anon_sym_PLUS] = ACTIONS(984), + [anon_sym_STAR] = ACTIONS(986), + [anon_sym_AMP] = ACTIONS(986), + [anon_sym_SEMI] = ACTIONS(986), + [anon_sym_typedef] = ACTIONS(984), + [anon_sym_extern] = ACTIONS(984), + [anon_sym___attribute__] = ACTIONS(984), + [anon_sym_LBRACK_LBRACK] = ACTIONS(986), + [anon_sym___declspec] = ACTIONS(984), + [anon_sym___cdecl] = ACTIONS(984), + [anon_sym___clrcall] = ACTIONS(984), + [anon_sym___stdcall] = ACTIONS(984), + [anon_sym___fastcall] = ACTIONS(984), + [anon_sym___thiscall] = ACTIONS(984), + [anon_sym___vectorcall] = ACTIONS(984), + [anon_sym_LBRACE] = ACTIONS(986), + [anon_sym_static] = ACTIONS(984), + [anon_sym_auto] = ACTIONS(984), + [anon_sym_register] = ACTIONS(984), + [anon_sym_inline] = ACTIONS(984), + [anon_sym_const] = ACTIONS(984), + [anon_sym_volatile] = ACTIONS(984), + [anon_sym_restrict] = ACTIONS(984), + [anon_sym__Atomic] = ACTIONS(984), + [anon_sym_signed] = ACTIONS(984), + [anon_sym_unsigned] = ACTIONS(984), + [anon_sym_long] = ACTIONS(984), + [anon_sym_short] = ACTIONS(984), + [sym_primitive_type] = ACTIONS(984), + [anon_sym_enum] = ACTIONS(984), + [anon_sym_struct] = ACTIONS(984), + [anon_sym_union] = ACTIONS(984), + [anon_sym_if] = ACTIONS(984), + [anon_sym_else] = ACTIONS(984), + [anon_sym_switch] = ACTIONS(984), + [anon_sym_case] = ACTIONS(984), + [anon_sym_default] = ACTIONS(984), + [anon_sym_while] = ACTIONS(984), + [anon_sym_do] = ACTIONS(984), + [anon_sym_for] = ACTIONS(984), + [anon_sym_return] = ACTIONS(984), + [anon_sym_break] = ACTIONS(984), + [anon_sym_continue] = ACTIONS(984), + [anon_sym_goto] = ACTIONS(984), + [anon_sym_DASH_DASH] = ACTIONS(986), + [anon_sym_PLUS_PLUS] = ACTIONS(986), + [anon_sym_sizeof] = ACTIONS(984), + [sym_number_literal] = ACTIONS(986), + [anon_sym_L_SQUOTE] = ACTIONS(986), + [anon_sym_u_SQUOTE] = ACTIONS(986), + [anon_sym_U_SQUOTE] = ACTIONS(986), + [anon_sym_u8_SQUOTE] = ACTIONS(986), + [anon_sym_SQUOTE] = ACTIONS(986), + [anon_sym_L_DQUOTE] = ACTIONS(986), + [anon_sym_u_DQUOTE] = ACTIONS(986), + [anon_sym_U_DQUOTE] = ACTIONS(986), + [anon_sym_u8_DQUOTE] = ACTIONS(986), + [anon_sym_DQUOTE] = ACTIONS(986), + [sym_true] = ACTIONS(984), + [sym_false] = ACTIONS(984), + [sym_null] = ACTIONS(984), + [sym_comment] = ACTIONS(3), + }, + [160] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(233), + [sym_attributed_statement] = STATE(233), + [sym_labeled_statement] = STATE(233), + [sym_expression_statement] = STATE(233), + [sym_if_statement] = STATE(233), + [sym_switch_statement] = STATE(233), + [sym_case_statement] = STATE(233), + [sym_while_statement] = STATE(233), + [sym_do_statement] = STATE(233), + [sym_for_statement] = STATE(233), + [sym_return_statement] = STATE(233), + [sym_break_statement] = STATE(233), + [sym_continue_statement] = STATE(233), + [sym_goto_statement] = STATE(233), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [161] = { + [sym_identifier] = ACTIONS(898), + [aux_sym_preproc_include_token1] = ACTIONS(898), + [aux_sym_preproc_def_token1] = ACTIONS(898), + [aux_sym_preproc_if_token1] = ACTIONS(898), + [aux_sym_preproc_if_token2] = ACTIONS(898), + [aux_sym_preproc_ifdef_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token2] = ACTIONS(898), + [sym_preproc_directive] = ACTIONS(898), + [anon_sym_LPAREN2] = ACTIONS(900), + [anon_sym_BANG] = ACTIONS(900), + [anon_sym_TILDE] = ACTIONS(900), + [anon_sym_DASH] = ACTIONS(898), + [anon_sym_PLUS] = ACTIONS(898), + [anon_sym_STAR] = ACTIONS(900), + [anon_sym_AMP] = ACTIONS(900), + [anon_sym_SEMI] = ACTIONS(900), + [anon_sym_typedef] = ACTIONS(898), + [anon_sym_extern] = ACTIONS(898), + [anon_sym___attribute__] = ACTIONS(898), + [anon_sym_LBRACK_LBRACK] = ACTIONS(900), + [anon_sym___declspec] = ACTIONS(898), + [anon_sym___cdecl] = ACTIONS(898), + [anon_sym___clrcall] = ACTIONS(898), + [anon_sym___stdcall] = ACTIONS(898), + [anon_sym___fastcall] = ACTIONS(898), + [anon_sym___thiscall] = ACTIONS(898), + [anon_sym___vectorcall] = ACTIONS(898), + [anon_sym_LBRACE] = ACTIONS(900), + [anon_sym_static] = ACTIONS(898), + [anon_sym_auto] = ACTIONS(898), + [anon_sym_register] = ACTIONS(898), + [anon_sym_inline] = ACTIONS(898), + [anon_sym_const] = ACTIONS(898), + [anon_sym_volatile] = ACTIONS(898), + [anon_sym_restrict] = ACTIONS(898), + [anon_sym__Atomic] = ACTIONS(898), + [anon_sym_signed] = ACTIONS(898), + [anon_sym_unsigned] = ACTIONS(898), + [anon_sym_long] = ACTIONS(898), + [anon_sym_short] = ACTIONS(898), + [sym_primitive_type] = ACTIONS(898), + [anon_sym_enum] = ACTIONS(898), + [anon_sym_struct] = ACTIONS(898), + [anon_sym_union] = ACTIONS(898), + [anon_sym_if] = ACTIONS(898), + [anon_sym_else] = ACTIONS(898), + [anon_sym_switch] = ACTIONS(898), + [anon_sym_case] = ACTIONS(898), + [anon_sym_default] = ACTIONS(898), + [anon_sym_while] = ACTIONS(898), + [anon_sym_do] = ACTIONS(898), + [anon_sym_for] = ACTIONS(898), + [anon_sym_return] = ACTIONS(898), + [anon_sym_break] = ACTIONS(898), + [anon_sym_continue] = ACTIONS(898), + [anon_sym_goto] = ACTIONS(898), + [anon_sym_DASH_DASH] = ACTIONS(900), + [anon_sym_PLUS_PLUS] = ACTIONS(900), + [anon_sym_sizeof] = ACTIONS(898), + [sym_number_literal] = ACTIONS(900), + [anon_sym_L_SQUOTE] = ACTIONS(900), + [anon_sym_u_SQUOTE] = ACTIONS(900), + [anon_sym_U_SQUOTE] = ACTIONS(900), + [anon_sym_u8_SQUOTE] = ACTIONS(900), + [anon_sym_SQUOTE] = ACTIONS(900), + [anon_sym_L_DQUOTE] = ACTIONS(900), + [anon_sym_u_DQUOTE] = ACTIONS(900), + [anon_sym_U_DQUOTE] = ACTIONS(900), + [anon_sym_u8_DQUOTE] = ACTIONS(900), + [anon_sym_DQUOTE] = ACTIONS(900), + [sym_true] = ACTIONS(898), + [sym_false] = ACTIONS(898), + [sym_null] = ACTIONS(898), + [sym_comment] = ACTIONS(3), + }, + [162] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(1434), + [sym_attributed_statement] = STATE(1434), + [sym_labeled_statement] = STATE(1434), + [sym_expression_statement] = STATE(1434), + [sym_if_statement] = STATE(1434), + [sym_switch_statement] = STATE(1434), + [sym_case_statement] = STATE(1434), + [sym_while_statement] = STATE(1434), + [sym_do_statement] = STATE(1434), + [sym_for_statement] = STATE(1434), + [sym_return_statement] = STATE(1434), + [sym_break_statement] = STATE(1434), + [sym_continue_statement] = STATE(1434), + [sym_goto_statement] = STATE(1434), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [163] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(98), + [sym_attributed_statement] = STATE(98), + [sym_labeled_statement] = STATE(98), + [sym_expression_statement] = STATE(98), + [sym_if_statement] = STATE(98), + [sym_switch_statement] = STATE(98), + [sym_case_statement] = STATE(98), + [sym_while_statement] = STATE(98), + [sym_do_statement] = STATE(98), + [sym_for_statement] = STATE(98), + [sym_return_statement] = STATE(98), + [sym_break_statement] = STATE(98), + [sym_continue_statement] = STATE(98), + [sym_goto_statement] = STATE(98), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [164] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(96), + [sym_attributed_statement] = STATE(96), + [sym_labeled_statement] = STATE(96), + [sym_expression_statement] = STATE(96), + [sym_if_statement] = STATE(96), + [sym_switch_statement] = STATE(96), + [sym_case_statement] = STATE(96), + [sym_while_statement] = STATE(96), + [sym_do_statement] = STATE(96), + [sym_for_statement] = STATE(96), + [sym_return_statement] = STATE(96), + [sym_break_statement] = STATE(96), + [sym_continue_statement] = STATE(96), + [sym_goto_statement] = STATE(96), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [165] = { + [ts_builtin_sym_end] = ACTIONS(942), + [sym_identifier] = ACTIONS(940), + [aux_sym_preproc_include_token1] = ACTIONS(940), + [aux_sym_preproc_def_token1] = ACTIONS(940), + [aux_sym_preproc_if_token1] = ACTIONS(940), + [aux_sym_preproc_ifdef_token1] = ACTIONS(940), + [aux_sym_preproc_ifdef_token2] = ACTIONS(940), + [sym_preproc_directive] = ACTIONS(940), + [anon_sym_LPAREN2] = ACTIONS(942), + [anon_sym_BANG] = ACTIONS(942), + [anon_sym_TILDE] = ACTIONS(942), + [anon_sym_DASH] = ACTIONS(940), + [anon_sym_PLUS] = ACTIONS(940), + [anon_sym_STAR] = ACTIONS(942), + [anon_sym_AMP] = ACTIONS(942), + [anon_sym_SEMI] = ACTIONS(942), + [anon_sym_typedef] = ACTIONS(940), + [anon_sym_extern] = ACTIONS(940), + [anon_sym___attribute__] = ACTIONS(940), + [anon_sym_LBRACK_LBRACK] = ACTIONS(942), + [anon_sym___declspec] = ACTIONS(940), + [anon_sym___cdecl] = ACTIONS(940), + [anon_sym___clrcall] = ACTIONS(940), + [anon_sym___stdcall] = ACTIONS(940), + [anon_sym___fastcall] = ACTIONS(940), + [anon_sym___thiscall] = ACTIONS(940), + [anon_sym___vectorcall] = ACTIONS(940), + [anon_sym_LBRACE] = ACTIONS(942), + [anon_sym_static] = ACTIONS(940), + [anon_sym_auto] = ACTIONS(940), + [anon_sym_register] = ACTIONS(940), + [anon_sym_inline] = ACTIONS(940), + [anon_sym_const] = ACTIONS(940), + [anon_sym_volatile] = ACTIONS(940), + [anon_sym_restrict] = ACTIONS(940), + [anon_sym__Atomic] = ACTIONS(940), + [anon_sym_signed] = ACTIONS(940), + [anon_sym_unsigned] = ACTIONS(940), + [anon_sym_long] = ACTIONS(940), + [anon_sym_short] = ACTIONS(940), + [sym_primitive_type] = ACTIONS(940), + [anon_sym_enum] = ACTIONS(940), + [anon_sym_struct] = ACTIONS(940), + [anon_sym_union] = ACTIONS(940), + [anon_sym_if] = ACTIONS(940), + [anon_sym_else] = ACTIONS(940), + [anon_sym_switch] = ACTIONS(940), + [anon_sym_case] = ACTIONS(940), + [anon_sym_default] = ACTIONS(940), + [anon_sym_while] = ACTIONS(940), + [anon_sym_do] = ACTIONS(940), + [anon_sym_for] = ACTIONS(940), + [anon_sym_return] = ACTIONS(940), + [anon_sym_break] = ACTIONS(940), + [anon_sym_continue] = ACTIONS(940), + [anon_sym_goto] = ACTIONS(940), + [anon_sym_DASH_DASH] = ACTIONS(942), + [anon_sym_PLUS_PLUS] = ACTIONS(942), + [anon_sym_sizeof] = ACTIONS(940), + [sym_number_literal] = ACTIONS(942), + [anon_sym_L_SQUOTE] = ACTIONS(942), + [anon_sym_u_SQUOTE] = ACTIONS(942), + [anon_sym_U_SQUOTE] = ACTIONS(942), + [anon_sym_u8_SQUOTE] = ACTIONS(942), + [anon_sym_SQUOTE] = ACTIONS(942), + [anon_sym_L_DQUOTE] = ACTIONS(942), + [anon_sym_u_DQUOTE] = ACTIONS(942), + [anon_sym_U_DQUOTE] = ACTIONS(942), + [anon_sym_u8_DQUOTE] = ACTIONS(942), + [anon_sym_DQUOTE] = ACTIONS(942), + [sym_true] = ACTIONS(940), + [sym_false] = ACTIONS(940), + [sym_null] = ACTIONS(940), + [sym_comment] = ACTIONS(3), + }, + [166] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(228), + [sym_attributed_statement] = STATE(228), + [sym_labeled_statement] = STATE(228), + [sym_expression_statement] = STATE(228), + [sym_if_statement] = STATE(228), + [sym_switch_statement] = STATE(228), + [sym_case_statement] = STATE(228), + [sym_while_statement] = STATE(228), + [sym_do_statement] = STATE(228), + [sym_for_statement] = STATE(228), + [sym_return_statement] = STATE(228), + [sym_break_statement] = STATE(228), + [sym_continue_statement] = STATE(228), + [sym_goto_statement] = STATE(228), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [167] = { + [ts_builtin_sym_end] = ACTIONS(892), + [sym_identifier] = ACTIONS(890), + [aux_sym_preproc_include_token1] = ACTIONS(890), + [aux_sym_preproc_def_token1] = ACTIONS(890), + [aux_sym_preproc_if_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token2] = ACTIONS(890), + [sym_preproc_directive] = ACTIONS(890), + [anon_sym_LPAREN2] = ACTIONS(892), + [anon_sym_BANG] = ACTIONS(892), + [anon_sym_TILDE] = ACTIONS(892), + [anon_sym_DASH] = ACTIONS(890), + [anon_sym_PLUS] = ACTIONS(890), + [anon_sym_STAR] = ACTIONS(892), + [anon_sym_AMP] = ACTIONS(892), + [anon_sym_SEMI] = ACTIONS(892), + [anon_sym_typedef] = ACTIONS(890), + [anon_sym_extern] = ACTIONS(890), + [anon_sym___attribute__] = ACTIONS(890), + [anon_sym_LBRACK_LBRACK] = ACTIONS(892), + [anon_sym___declspec] = ACTIONS(890), + [anon_sym___cdecl] = ACTIONS(890), + [anon_sym___clrcall] = ACTIONS(890), + [anon_sym___stdcall] = ACTIONS(890), + [anon_sym___fastcall] = ACTIONS(890), + [anon_sym___thiscall] = ACTIONS(890), + [anon_sym___vectorcall] = ACTIONS(890), + [anon_sym_LBRACE] = ACTIONS(892), + [anon_sym_static] = ACTIONS(890), + [anon_sym_auto] = ACTIONS(890), + [anon_sym_register] = ACTIONS(890), + [anon_sym_inline] = ACTIONS(890), + [anon_sym_const] = ACTIONS(890), + [anon_sym_volatile] = ACTIONS(890), + [anon_sym_restrict] = ACTIONS(890), + [anon_sym__Atomic] = ACTIONS(890), + [anon_sym_signed] = ACTIONS(890), + [anon_sym_unsigned] = ACTIONS(890), + [anon_sym_long] = ACTIONS(890), + [anon_sym_short] = ACTIONS(890), + [sym_primitive_type] = ACTIONS(890), + [anon_sym_enum] = ACTIONS(890), + [anon_sym_struct] = ACTIONS(890), + [anon_sym_union] = ACTIONS(890), + [anon_sym_if] = ACTIONS(890), + [anon_sym_else] = ACTIONS(890), + [anon_sym_switch] = ACTIONS(890), + [anon_sym_case] = ACTIONS(890), + [anon_sym_default] = ACTIONS(890), + [anon_sym_while] = ACTIONS(890), + [anon_sym_do] = ACTIONS(890), + [anon_sym_for] = ACTIONS(890), + [anon_sym_return] = ACTIONS(890), + [anon_sym_break] = ACTIONS(890), + [anon_sym_continue] = ACTIONS(890), + [anon_sym_goto] = ACTIONS(890), + [anon_sym_DASH_DASH] = ACTIONS(892), + [anon_sym_PLUS_PLUS] = ACTIONS(892), + [anon_sym_sizeof] = ACTIONS(890), + [sym_number_literal] = ACTIONS(892), + [anon_sym_L_SQUOTE] = ACTIONS(892), + [anon_sym_u_SQUOTE] = ACTIONS(892), + [anon_sym_U_SQUOTE] = ACTIONS(892), + [anon_sym_u8_SQUOTE] = ACTIONS(892), + [anon_sym_SQUOTE] = ACTIONS(892), + [anon_sym_L_DQUOTE] = ACTIONS(892), + [anon_sym_u_DQUOTE] = ACTIONS(892), + [anon_sym_U_DQUOTE] = ACTIONS(892), + [anon_sym_u8_DQUOTE] = ACTIONS(892), + [anon_sym_DQUOTE] = ACTIONS(892), + [sym_true] = ACTIONS(890), + [sym_false] = ACTIONS(890), + [sym_null] = ACTIONS(890), + [sym_comment] = ACTIONS(3), + }, + [168] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(95), + [sym_attributed_statement] = STATE(95), + [sym_labeled_statement] = STATE(95), + [sym_expression_statement] = STATE(95), + [sym_if_statement] = STATE(95), + [sym_switch_statement] = STATE(95), + [sym_case_statement] = STATE(95), + [sym_while_statement] = STATE(95), + [sym_do_statement] = STATE(95), + [sym_for_statement] = STATE(95), + [sym_return_statement] = STATE(95), + [sym_break_statement] = STATE(95), + [sym_continue_statement] = STATE(95), + [sym_goto_statement] = STATE(95), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [169] = { + [ts_builtin_sym_end] = ACTIONS(946), + [sym_identifier] = ACTIONS(944), + [aux_sym_preproc_include_token1] = ACTIONS(944), + [aux_sym_preproc_def_token1] = ACTIONS(944), + [aux_sym_preproc_if_token1] = ACTIONS(944), + [aux_sym_preproc_ifdef_token1] = ACTIONS(944), + [aux_sym_preproc_ifdef_token2] = ACTIONS(944), + [sym_preproc_directive] = ACTIONS(944), + [anon_sym_LPAREN2] = ACTIONS(946), + [anon_sym_BANG] = ACTIONS(946), + [anon_sym_TILDE] = ACTIONS(946), + [anon_sym_DASH] = ACTIONS(944), + [anon_sym_PLUS] = ACTIONS(944), + [anon_sym_STAR] = ACTIONS(946), + [anon_sym_AMP] = ACTIONS(946), + [anon_sym_SEMI] = ACTIONS(946), + [anon_sym_typedef] = ACTIONS(944), + [anon_sym_extern] = ACTIONS(944), + [anon_sym___attribute__] = ACTIONS(944), + [anon_sym_LBRACK_LBRACK] = ACTIONS(946), + [anon_sym___declspec] = ACTIONS(944), + [anon_sym___cdecl] = ACTIONS(944), + [anon_sym___clrcall] = ACTIONS(944), + [anon_sym___stdcall] = ACTIONS(944), + [anon_sym___fastcall] = ACTIONS(944), + [anon_sym___thiscall] = ACTIONS(944), + [anon_sym___vectorcall] = ACTIONS(944), + [anon_sym_LBRACE] = ACTIONS(946), + [anon_sym_static] = ACTIONS(944), + [anon_sym_auto] = ACTIONS(944), + [anon_sym_register] = ACTIONS(944), + [anon_sym_inline] = ACTIONS(944), + [anon_sym_const] = ACTIONS(944), + [anon_sym_volatile] = ACTIONS(944), + [anon_sym_restrict] = ACTIONS(944), + [anon_sym__Atomic] = ACTIONS(944), + [anon_sym_signed] = ACTIONS(944), + [anon_sym_unsigned] = ACTIONS(944), + [anon_sym_long] = ACTIONS(944), + [anon_sym_short] = ACTIONS(944), + [sym_primitive_type] = ACTIONS(944), + [anon_sym_enum] = ACTIONS(944), + [anon_sym_struct] = ACTIONS(944), + [anon_sym_union] = ACTIONS(944), + [anon_sym_if] = ACTIONS(944), + [anon_sym_else] = ACTIONS(944), + [anon_sym_switch] = ACTIONS(944), + [anon_sym_case] = ACTIONS(944), + [anon_sym_default] = ACTIONS(944), + [anon_sym_while] = ACTIONS(944), + [anon_sym_do] = ACTIONS(944), + [anon_sym_for] = ACTIONS(944), + [anon_sym_return] = ACTIONS(944), + [anon_sym_break] = ACTIONS(944), + [anon_sym_continue] = ACTIONS(944), + [anon_sym_goto] = ACTIONS(944), + [anon_sym_DASH_DASH] = ACTIONS(946), + [anon_sym_PLUS_PLUS] = ACTIONS(946), + [anon_sym_sizeof] = ACTIONS(944), + [sym_number_literal] = ACTIONS(946), + [anon_sym_L_SQUOTE] = ACTIONS(946), + [anon_sym_u_SQUOTE] = ACTIONS(946), + [anon_sym_U_SQUOTE] = ACTIONS(946), + [anon_sym_u8_SQUOTE] = ACTIONS(946), + [anon_sym_SQUOTE] = ACTIONS(946), + [anon_sym_L_DQUOTE] = ACTIONS(946), + [anon_sym_u_DQUOTE] = ACTIONS(946), + [anon_sym_U_DQUOTE] = ACTIONS(946), + [anon_sym_u8_DQUOTE] = ACTIONS(946), + [anon_sym_DQUOTE] = ACTIONS(946), + [sym_true] = ACTIONS(944), + [sym_false] = ACTIONS(944), + [sym_null] = ACTIONS(944), + [sym_comment] = ACTIONS(3), + }, + [170] = { + [sym_attribute_declaration] = STATE(170), + [sym_compound_statement] = STATE(169), + [sym_attributed_statement] = STATE(169), + [sym_labeled_statement] = STATE(169), + [sym_expression_statement] = STATE(169), + [sym_if_statement] = STATE(169), + [sym_switch_statement] = STATE(169), + [sym_case_statement] = STATE(169), + [sym_while_statement] = STATE(169), + [sym_do_statement] = STATE(169), + [sym_for_statement] = STATE(169), + [sym_return_statement] = STATE(169), + [sym_break_statement] = STATE(169), + [sym_continue_statement] = STATE(169), + [sym_goto_statement] = STATE(169), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(170), + [sym_identifier] = ACTIONS(1211), + [anon_sym_LPAREN2] = ACTIONS(1135), + [anon_sym_BANG] = ACTIONS(1138), + [anon_sym_TILDE] = ACTIONS(1138), + [anon_sym_DASH] = ACTIONS(1141), + [anon_sym_PLUS] = ACTIONS(1141), + [anon_sym_STAR] = ACTIONS(1144), + [anon_sym_AMP] = ACTIONS(1144), + [anon_sym_SEMI] = ACTIONS(1214), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1150), + [anon_sym_LBRACE] = ACTIONS(1217), + [anon_sym_if] = ACTIONS(1220), + [anon_sym_switch] = ACTIONS(1223), + [anon_sym_case] = ACTIONS(1226), + [anon_sym_default] = ACTIONS(1229), + [anon_sym_while] = ACTIONS(1232), + [anon_sym_do] = ACTIONS(1235), + [anon_sym_for] = ACTIONS(1238), + [anon_sym_return] = ACTIONS(1241), + [anon_sym_break] = ACTIONS(1244), + [anon_sym_continue] = ACTIONS(1247), + [anon_sym_goto] = ACTIONS(1250), + [anon_sym_DASH_DASH] = ACTIONS(1189), + [anon_sym_PLUS_PLUS] = ACTIONS(1189), + [anon_sym_sizeof] = ACTIONS(1192), + [sym_number_literal] = ACTIONS(1195), + [anon_sym_L_SQUOTE] = ACTIONS(1198), + [anon_sym_u_SQUOTE] = ACTIONS(1198), + [anon_sym_U_SQUOTE] = ACTIONS(1198), + [anon_sym_u8_SQUOTE] = ACTIONS(1198), + [anon_sym_SQUOTE] = ACTIONS(1198), + [anon_sym_L_DQUOTE] = ACTIONS(1201), + [anon_sym_u_DQUOTE] = ACTIONS(1201), + [anon_sym_U_DQUOTE] = ACTIONS(1201), + [anon_sym_u8_DQUOTE] = ACTIONS(1201), + [anon_sym_DQUOTE] = ACTIONS(1201), + [sym_true] = ACTIONS(1204), + [sym_false] = ACTIONS(1204), + [sym_null] = ACTIONS(1204), + [sym_comment] = ACTIONS(3), + }, + [171] = { + [ts_builtin_sym_end] = ACTIONS(892), + [sym_identifier] = ACTIONS(890), + [aux_sym_preproc_include_token1] = ACTIONS(890), + [aux_sym_preproc_def_token1] = ACTIONS(890), + [aux_sym_preproc_if_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token2] = ACTIONS(890), + [sym_preproc_directive] = ACTIONS(890), + [anon_sym_LPAREN2] = ACTIONS(892), + [anon_sym_BANG] = ACTIONS(892), + [anon_sym_TILDE] = ACTIONS(892), + [anon_sym_DASH] = ACTIONS(890), + [anon_sym_PLUS] = ACTIONS(890), + [anon_sym_STAR] = ACTIONS(892), + [anon_sym_AMP] = ACTIONS(892), + [anon_sym_SEMI] = ACTIONS(892), + [anon_sym_typedef] = ACTIONS(890), + [anon_sym_extern] = ACTIONS(890), + [anon_sym___attribute__] = ACTIONS(890), + [anon_sym_LBRACK_LBRACK] = ACTIONS(892), + [anon_sym___declspec] = ACTIONS(890), + [anon_sym___cdecl] = ACTIONS(890), + [anon_sym___clrcall] = ACTIONS(890), + [anon_sym___stdcall] = ACTIONS(890), + [anon_sym___fastcall] = ACTIONS(890), + [anon_sym___thiscall] = ACTIONS(890), + [anon_sym___vectorcall] = ACTIONS(890), + [anon_sym_LBRACE] = ACTIONS(892), + [anon_sym_static] = ACTIONS(890), + [anon_sym_auto] = ACTIONS(890), + [anon_sym_register] = ACTIONS(890), + [anon_sym_inline] = ACTIONS(890), + [anon_sym_const] = ACTIONS(890), + [anon_sym_volatile] = ACTIONS(890), + [anon_sym_restrict] = ACTIONS(890), + [anon_sym__Atomic] = ACTIONS(890), + [anon_sym_signed] = ACTIONS(890), + [anon_sym_unsigned] = ACTIONS(890), + [anon_sym_long] = ACTIONS(890), + [anon_sym_short] = ACTIONS(890), + [sym_primitive_type] = ACTIONS(890), + [anon_sym_enum] = ACTIONS(890), + [anon_sym_struct] = ACTIONS(890), + [anon_sym_union] = ACTIONS(890), + [anon_sym_if] = ACTIONS(890), + [anon_sym_else] = ACTIONS(890), + [anon_sym_switch] = ACTIONS(890), + [anon_sym_case] = ACTIONS(890), + [anon_sym_default] = ACTIONS(890), + [anon_sym_while] = ACTIONS(890), + [anon_sym_do] = ACTIONS(890), + [anon_sym_for] = ACTIONS(890), + [anon_sym_return] = ACTIONS(890), + [anon_sym_break] = ACTIONS(890), + [anon_sym_continue] = ACTIONS(890), + [anon_sym_goto] = ACTIONS(890), + [anon_sym_DASH_DASH] = ACTIONS(892), + [anon_sym_PLUS_PLUS] = ACTIONS(892), + [anon_sym_sizeof] = ACTIONS(890), + [sym_number_literal] = ACTIONS(892), + [anon_sym_L_SQUOTE] = ACTIONS(892), + [anon_sym_u_SQUOTE] = ACTIONS(892), + [anon_sym_U_SQUOTE] = ACTIONS(892), + [anon_sym_u8_SQUOTE] = ACTIONS(892), + [anon_sym_SQUOTE] = ACTIONS(892), + [anon_sym_L_DQUOTE] = ACTIONS(892), + [anon_sym_u_DQUOTE] = ACTIONS(892), + [anon_sym_U_DQUOTE] = ACTIONS(892), + [anon_sym_u8_DQUOTE] = ACTIONS(892), + [anon_sym_DQUOTE] = ACTIONS(892), + [sym_true] = ACTIONS(890), + [sym_false] = ACTIONS(890), + [sym_null] = ACTIONS(890), + [sym_comment] = ACTIONS(3), + }, + [172] = { + [sym_identifier] = ACTIONS(902), + [aux_sym_preproc_include_token1] = ACTIONS(902), + [aux_sym_preproc_def_token1] = ACTIONS(902), + [aux_sym_preproc_if_token1] = ACTIONS(902), + [aux_sym_preproc_if_token2] = ACTIONS(902), + [aux_sym_preproc_ifdef_token1] = ACTIONS(902), + [aux_sym_preproc_ifdef_token2] = ACTIONS(902), + [sym_preproc_directive] = ACTIONS(902), + [anon_sym_LPAREN2] = ACTIONS(904), + [anon_sym_BANG] = ACTIONS(904), + [anon_sym_TILDE] = ACTIONS(904), + [anon_sym_DASH] = ACTIONS(902), + [anon_sym_PLUS] = ACTIONS(902), + [anon_sym_STAR] = ACTIONS(904), + [anon_sym_AMP] = ACTIONS(904), + [anon_sym_SEMI] = ACTIONS(904), + [anon_sym_typedef] = ACTIONS(902), + [anon_sym_extern] = ACTIONS(902), + [anon_sym___attribute__] = ACTIONS(902), + [anon_sym_LBRACK_LBRACK] = ACTIONS(904), + [anon_sym___declspec] = ACTIONS(902), + [anon_sym___cdecl] = ACTIONS(902), + [anon_sym___clrcall] = ACTIONS(902), + [anon_sym___stdcall] = ACTIONS(902), + [anon_sym___fastcall] = ACTIONS(902), + [anon_sym___thiscall] = ACTIONS(902), + [anon_sym___vectorcall] = ACTIONS(902), + [anon_sym_LBRACE] = ACTIONS(904), + [anon_sym_static] = ACTIONS(902), + [anon_sym_auto] = ACTIONS(902), + [anon_sym_register] = ACTIONS(902), + [anon_sym_inline] = ACTIONS(902), + [anon_sym_const] = ACTIONS(902), + [anon_sym_volatile] = ACTIONS(902), + [anon_sym_restrict] = ACTIONS(902), + [anon_sym__Atomic] = ACTIONS(902), + [anon_sym_signed] = ACTIONS(902), + [anon_sym_unsigned] = ACTIONS(902), + [anon_sym_long] = ACTIONS(902), + [anon_sym_short] = ACTIONS(902), + [sym_primitive_type] = ACTIONS(902), + [anon_sym_enum] = ACTIONS(902), + [anon_sym_struct] = ACTIONS(902), + [anon_sym_union] = ACTIONS(902), + [anon_sym_if] = ACTIONS(902), + [anon_sym_else] = ACTIONS(902), + [anon_sym_switch] = ACTIONS(902), + [anon_sym_case] = ACTIONS(902), + [anon_sym_default] = ACTIONS(902), + [anon_sym_while] = ACTIONS(902), + [anon_sym_do] = ACTIONS(902), + [anon_sym_for] = ACTIONS(902), + [anon_sym_return] = ACTIONS(902), + [anon_sym_break] = ACTIONS(902), + [anon_sym_continue] = ACTIONS(902), + [anon_sym_goto] = ACTIONS(902), + [anon_sym_DASH_DASH] = ACTIONS(904), + [anon_sym_PLUS_PLUS] = ACTIONS(904), + [anon_sym_sizeof] = ACTIONS(902), + [sym_number_literal] = ACTIONS(904), + [anon_sym_L_SQUOTE] = ACTIONS(904), + [anon_sym_u_SQUOTE] = ACTIONS(904), + [anon_sym_U_SQUOTE] = ACTIONS(904), + [anon_sym_u8_SQUOTE] = ACTIONS(904), + [anon_sym_SQUOTE] = ACTIONS(904), + [anon_sym_L_DQUOTE] = ACTIONS(904), + [anon_sym_u_DQUOTE] = ACTIONS(904), + [anon_sym_U_DQUOTE] = ACTIONS(904), + [anon_sym_u8_DQUOTE] = ACTIONS(904), + [anon_sym_DQUOTE] = ACTIONS(904), + [sym_true] = ACTIONS(902), + [sym_false] = ACTIONS(902), + [sym_null] = ACTIONS(902), + [sym_comment] = ACTIONS(3), + }, + [173] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(94), + [sym_attributed_statement] = STATE(94), + [sym_labeled_statement] = STATE(94), + [sym_expression_statement] = STATE(94), + [sym_if_statement] = STATE(94), + [sym_switch_statement] = STATE(94), + [sym_case_statement] = STATE(94), + [sym_while_statement] = STATE(94), + [sym_do_statement] = STATE(94), + [sym_for_statement] = STATE(94), + [sym_return_statement] = STATE(94), + [sym_break_statement] = STATE(94), + [sym_continue_statement] = STATE(94), + [sym_goto_statement] = STATE(94), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [174] = { + [ts_builtin_sym_end] = ACTIONS(954), + [sym_identifier] = ACTIONS(952), + [aux_sym_preproc_include_token1] = ACTIONS(952), + [aux_sym_preproc_def_token1] = ACTIONS(952), + [aux_sym_preproc_if_token1] = ACTIONS(952), + [aux_sym_preproc_ifdef_token1] = ACTIONS(952), + [aux_sym_preproc_ifdef_token2] = ACTIONS(952), + [sym_preproc_directive] = ACTIONS(952), + [anon_sym_LPAREN2] = ACTIONS(954), + [anon_sym_BANG] = ACTIONS(954), + [anon_sym_TILDE] = ACTIONS(954), + [anon_sym_DASH] = ACTIONS(952), + [anon_sym_PLUS] = ACTIONS(952), + [anon_sym_STAR] = ACTIONS(954), + [anon_sym_AMP] = ACTIONS(954), + [anon_sym_SEMI] = ACTIONS(954), + [anon_sym_typedef] = ACTIONS(952), + [anon_sym_extern] = ACTIONS(952), + [anon_sym___attribute__] = ACTIONS(952), + [anon_sym_LBRACK_LBRACK] = ACTIONS(954), + [anon_sym___declspec] = ACTIONS(952), + [anon_sym___cdecl] = ACTIONS(952), + [anon_sym___clrcall] = ACTIONS(952), + [anon_sym___stdcall] = ACTIONS(952), + [anon_sym___fastcall] = ACTIONS(952), + [anon_sym___thiscall] = ACTIONS(952), + [anon_sym___vectorcall] = ACTIONS(952), + [anon_sym_LBRACE] = ACTIONS(954), + [anon_sym_static] = ACTIONS(952), + [anon_sym_auto] = ACTIONS(952), + [anon_sym_register] = ACTIONS(952), + [anon_sym_inline] = ACTIONS(952), + [anon_sym_const] = ACTIONS(952), + [anon_sym_volatile] = ACTIONS(952), + [anon_sym_restrict] = ACTIONS(952), + [anon_sym__Atomic] = ACTIONS(952), + [anon_sym_signed] = ACTIONS(952), + [anon_sym_unsigned] = ACTIONS(952), + [anon_sym_long] = ACTIONS(952), + [anon_sym_short] = ACTIONS(952), + [sym_primitive_type] = ACTIONS(952), + [anon_sym_enum] = ACTIONS(952), + [anon_sym_struct] = ACTIONS(952), + [anon_sym_union] = ACTIONS(952), + [anon_sym_if] = ACTIONS(952), + [anon_sym_else] = ACTIONS(952), + [anon_sym_switch] = ACTIONS(952), + [anon_sym_case] = ACTIONS(952), + [anon_sym_default] = ACTIONS(952), + [anon_sym_while] = ACTIONS(952), + [anon_sym_do] = ACTIONS(952), + [anon_sym_for] = ACTIONS(952), + [anon_sym_return] = ACTIONS(952), + [anon_sym_break] = ACTIONS(952), + [anon_sym_continue] = ACTIONS(952), + [anon_sym_goto] = ACTIONS(952), + [anon_sym_DASH_DASH] = ACTIONS(954), + [anon_sym_PLUS_PLUS] = ACTIONS(954), + [anon_sym_sizeof] = ACTIONS(952), + [sym_number_literal] = ACTIONS(954), + [anon_sym_L_SQUOTE] = ACTIONS(954), + [anon_sym_u_SQUOTE] = ACTIONS(954), + [anon_sym_U_SQUOTE] = ACTIONS(954), + [anon_sym_u8_SQUOTE] = ACTIONS(954), + [anon_sym_SQUOTE] = ACTIONS(954), + [anon_sym_L_DQUOTE] = ACTIONS(954), + [anon_sym_u_DQUOTE] = ACTIONS(954), + [anon_sym_U_DQUOTE] = ACTIONS(954), + [anon_sym_u8_DQUOTE] = ACTIONS(954), + [anon_sym_DQUOTE] = ACTIONS(954), + [sym_true] = ACTIONS(952), + [sym_false] = ACTIONS(952), + [sym_null] = ACTIONS(952), + [sym_comment] = ACTIONS(3), + }, + [175] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(192), + [sym_attributed_statement] = STATE(192), + [sym_labeled_statement] = STATE(192), + [sym_expression_statement] = STATE(192), + [sym_if_statement] = STATE(192), + [sym_switch_statement] = STATE(192), + [sym_case_statement] = STATE(192), + [sym_while_statement] = STATE(192), + [sym_do_statement] = STATE(192), + [sym_for_statement] = STATE(192), + [sym_return_statement] = STATE(192), + [sym_break_statement] = STATE(192), + [sym_continue_statement] = STATE(192), + [sym_goto_statement] = STATE(192), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [176] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(201), + [sym_attributed_statement] = STATE(201), + [sym_labeled_statement] = STATE(201), + [sym_expression_statement] = STATE(201), + [sym_if_statement] = STATE(201), + [sym_switch_statement] = STATE(201), + [sym_case_statement] = STATE(201), + [sym_while_statement] = STATE(201), + [sym_do_statement] = STATE(201), + [sym_for_statement] = STATE(201), + [sym_return_statement] = STATE(201), + [sym_break_statement] = STATE(201), + [sym_continue_statement] = STATE(201), + [sym_goto_statement] = STATE(201), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [177] = { + [ts_builtin_sym_end] = ACTIONS(896), + [sym_identifier] = ACTIONS(894), + [aux_sym_preproc_include_token1] = ACTIONS(894), + [aux_sym_preproc_def_token1] = ACTIONS(894), + [aux_sym_preproc_if_token1] = ACTIONS(894), + [aux_sym_preproc_ifdef_token1] = ACTIONS(894), + [aux_sym_preproc_ifdef_token2] = ACTIONS(894), + [sym_preproc_directive] = ACTIONS(894), + [anon_sym_LPAREN2] = ACTIONS(896), + [anon_sym_BANG] = ACTIONS(896), + [anon_sym_TILDE] = ACTIONS(896), + [anon_sym_DASH] = ACTIONS(894), + [anon_sym_PLUS] = ACTIONS(894), + [anon_sym_STAR] = ACTIONS(896), + [anon_sym_AMP] = ACTIONS(896), + [anon_sym_SEMI] = ACTIONS(896), + [anon_sym_typedef] = ACTIONS(894), + [anon_sym_extern] = ACTIONS(894), + [anon_sym___attribute__] = ACTIONS(894), + [anon_sym_LBRACK_LBRACK] = ACTIONS(896), + [anon_sym___declspec] = ACTIONS(894), + [anon_sym___cdecl] = ACTIONS(894), + [anon_sym___clrcall] = ACTIONS(894), + [anon_sym___stdcall] = ACTIONS(894), + [anon_sym___fastcall] = ACTIONS(894), + [anon_sym___thiscall] = ACTIONS(894), + [anon_sym___vectorcall] = ACTIONS(894), + [anon_sym_LBRACE] = ACTIONS(896), + [anon_sym_static] = ACTIONS(894), + [anon_sym_auto] = ACTIONS(894), + [anon_sym_register] = ACTIONS(894), + [anon_sym_inline] = ACTIONS(894), + [anon_sym_const] = ACTIONS(894), + [anon_sym_volatile] = ACTIONS(894), + [anon_sym_restrict] = ACTIONS(894), + [anon_sym__Atomic] = ACTIONS(894), + [anon_sym_signed] = ACTIONS(894), + [anon_sym_unsigned] = ACTIONS(894), + [anon_sym_long] = ACTIONS(894), + [anon_sym_short] = ACTIONS(894), + [sym_primitive_type] = ACTIONS(894), + [anon_sym_enum] = ACTIONS(894), + [anon_sym_struct] = ACTIONS(894), + [anon_sym_union] = ACTIONS(894), + [anon_sym_if] = ACTIONS(894), + [anon_sym_else] = ACTIONS(894), + [anon_sym_switch] = ACTIONS(894), + [anon_sym_case] = ACTIONS(894), + [anon_sym_default] = ACTIONS(894), + [anon_sym_while] = ACTIONS(894), + [anon_sym_do] = ACTIONS(894), + [anon_sym_for] = ACTIONS(894), + [anon_sym_return] = ACTIONS(894), + [anon_sym_break] = ACTIONS(894), + [anon_sym_continue] = ACTIONS(894), + [anon_sym_goto] = ACTIONS(894), + [anon_sym_DASH_DASH] = ACTIONS(896), + [anon_sym_PLUS_PLUS] = ACTIONS(896), + [anon_sym_sizeof] = ACTIONS(894), + [sym_number_literal] = ACTIONS(896), + [anon_sym_L_SQUOTE] = ACTIONS(896), + [anon_sym_u_SQUOTE] = ACTIONS(896), + [anon_sym_U_SQUOTE] = ACTIONS(896), + [anon_sym_u8_SQUOTE] = ACTIONS(896), + [anon_sym_SQUOTE] = ACTIONS(896), + [anon_sym_L_DQUOTE] = ACTIONS(896), + [anon_sym_u_DQUOTE] = ACTIONS(896), + [anon_sym_U_DQUOTE] = ACTIONS(896), + [anon_sym_u8_DQUOTE] = ACTIONS(896), + [anon_sym_DQUOTE] = ACTIONS(896), + [sym_true] = ACTIONS(894), + [sym_false] = ACTIONS(894), + [sym_null] = ACTIONS(894), + [sym_comment] = ACTIONS(3), + }, + [178] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(92), + [sym_attributed_statement] = STATE(92), + [sym_labeled_statement] = STATE(92), + [sym_expression_statement] = STATE(92), + [sym_if_statement] = STATE(92), + [sym_switch_statement] = STATE(92), + [sym_case_statement] = STATE(92), + [sym_while_statement] = STATE(92), + [sym_do_statement] = STATE(92), + [sym_for_statement] = STATE(92), + [sym_return_statement] = STATE(92), + [sym_break_statement] = STATE(92), + [sym_continue_statement] = STATE(92), + [sym_goto_statement] = STATE(92), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [179] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(91), + [sym_attributed_statement] = STATE(91), + [sym_labeled_statement] = STATE(91), + [sym_expression_statement] = STATE(91), + [sym_if_statement] = STATE(91), + [sym_switch_statement] = STATE(91), + [sym_case_statement] = STATE(91), + [sym_while_statement] = STATE(91), + [sym_do_statement] = STATE(91), + [sym_for_statement] = STATE(91), + [sym_return_statement] = STATE(91), + [sym_break_statement] = STATE(91), + [sym_continue_statement] = STATE(91), + [sym_goto_statement] = STATE(91), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [180] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(90), + [sym_attributed_statement] = STATE(90), + [sym_labeled_statement] = STATE(90), + [sym_expression_statement] = STATE(90), + [sym_if_statement] = STATE(90), + [sym_switch_statement] = STATE(90), + [sym_case_statement] = STATE(90), + [sym_while_statement] = STATE(90), + [sym_do_statement] = STATE(90), + [sym_for_statement] = STATE(90), + [sym_return_statement] = STATE(90), + [sym_break_statement] = STATE(90), + [sym_continue_statement] = STATE(90), + [sym_goto_statement] = STATE(90), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [181] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(196), + [sym_attributed_statement] = STATE(196), + [sym_labeled_statement] = STATE(196), + [sym_expression_statement] = STATE(196), + [sym_if_statement] = STATE(196), + [sym_switch_statement] = STATE(196), + [sym_case_statement] = STATE(196), + [sym_while_statement] = STATE(196), + [sym_do_statement] = STATE(196), + [sym_for_statement] = STATE(196), + [sym_return_statement] = STATE(196), + [sym_break_statement] = STATE(196), + [sym_continue_statement] = STATE(196), + [sym_goto_statement] = STATE(196), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [182] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(89), + [sym_attributed_statement] = STATE(89), + [sym_labeled_statement] = STATE(89), + [sym_expression_statement] = STATE(89), + [sym_if_statement] = STATE(89), + [sym_switch_statement] = STATE(89), + [sym_case_statement] = STATE(89), + [sym_while_statement] = STATE(89), + [sym_do_statement] = STATE(89), + [sym_for_statement] = STATE(89), + [sym_return_statement] = STATE(89), + [sym_break_statement] = STATE(89), + [sym_continue_statement] = STATE(89), + [sym_goto_statement] = STATE(89), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [183] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(86), + [sym_attributed_statement] = STATE(86), + [sym_labeled_statement] = STATE(86), + [sym_expression_statement] = STATE(86), + [sym_if_statement] = STATE(86), + [sym_switch_statement] = STATE(86), + [sym_case_statement] = STATE(86), + [sym_while_statement] = STATE(86), + [sym_do_statement] = STATE(86), + [sym_for_statement] = STATE(86), + [sym_return_statement] = STATE(86), + [sym_break_statement] = STATE(86), + [sym_continue_statement] = STATE(86), + [sym_goto_statement] = STATE(86), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [184] = { + [sym_identifier] = ACTIONS(890), + [aux_sym_preproc_include_token1] = ACTIONS(890), + [aux_sym_preproc_def_token1] = ACTIONS(890), + [aux_sym_preproc_if_token1] = ACTIONS(890), + [aux_sym_preproc_if_token2] = ACTIONS(890), + [aux_sym_preproc_ifdef_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token2] = ACTIONS(890), + [sym_preproc_directive] = ACTIONS(890), + [anon_sym_LPAREN2] = ACTIONS(892), + [anon_sym_BANG] = ACTIONS(892), + [anon_sym_TILDE] = ACTIONS(892), + [anon_sym_DASH] = ACTIONS(890), + [anon_sym_PLUS] = ACTIONS(890), + [anon_sym_STAR] = ACTIONS(892), + [anon_sym_AMP] = ACTIONS(892), + [anon_sym_SEMI] = ACTIONS(892), + [anon_sym_typedef] = ACTIONS(890), + [anon_sym_extern] = ACTIONS(890), + [anon_sym___attribute__] = ACTIONS(890), + [anon_sym_LBRACK_LBRACK] = ACTIONS(892), + [anon_sym___declspec] = ACTIONS(890), + [anon_sym___cdecl] = ACTIONS(890), + [anon_sym___clrcall] = ACTIONS(890), + [anon_sym___stdcall] = ACTIONS(890), + [anon_sym___fastcall] = ACTIONS(890), + [anon_sym___thiscall] = ACTIONS(890), + [anon_sym___vectorcall] = ACTIONS(890), + [anon_sym_LBRACE] = ACTIONS(892), + [anon_sym_static] = ACTIONS(890), + [anon_sym_auto] = ACTIONS(890), + [anon_sym_register] = ACTIONS(890), + [anon_sym_inline] = ACTIONS(890), + [anon_sym_const] = ACTIONS(890), + [anon_sym_volatile] = ACTIONS(890), + [anon_sym_restrict] = ACTIONS(890), + [anon_sym__Atomic] = ACTIONS(890), + [anon_sym_signed] = ACTIONS(890), + [anon_sym_unsigned] = ACTIONS(890), + [anon_sym_long] = ACTIONS(890), + [anon_sym_short] = ACTIONS(890), + [sym_primitive_type] = ACTIONS(890), + [anon_sym_enum] = ACTIONS(890), + [anon_sym_struct] = ACTIONS(890), + [anon_sym_union] = ACTIONS(890), + [anon_sym_if] = ACTIONS(890), + [anon_sym_else] = ACTIONS(890), + [anon_sym_switch] = ACTIONS(890), + [anon_sym_case] = ACTIONS(890), + [anon_sym_default] = ACTIONS(890), + [anon_sym_while] = ACTIONS(890), + [anon_sym_do] = ACTIONS(890), + [anon_sym_for] = ACTIONS(890), + [anon_sym_return] = ACTIONS(890), + [anon_sym_break] = ACTIONS(890), + [anon_sym_continue] = ACTIONS(890), + [anon_sym_goto] = ACTIONS(890), + [anon_sym_DASH_DASH] = ACTIONS(892), + [anon_sym_PLUS_PLUS] = ACTIONS(892), + [anon_sym_sizeof] = ACTIONS(890), + [sym_number_literal] = ACTIONS(892), + [anon_sym_L_SQUOTE] = ACTIONS(892), + [anon_sym_u_SQUOTE] = ACTIONS(892), + [anon_sym_U_SQUOTE] = ACTIONS(892), + [anon_sym_u8_SQUOTE] = ACTIONS(892), + [anon_sym_SQUOTE] = ACTIONS(892), + [anon_sym_L_DQUOTE] = ACTIONS(892), + [anon_sym_u_DQUOTE] = ACTIONS(892), + [anon_sym_U_DQUOTE] = ACTIONS(892), + [anon_sym_u8_DQUOTE] = ACTIONS(892), + [anon_sym_DQUOTE] = ACTIONS(892), + [sym_true] = ACTIONS(890), + [sym_false] = ACTIONS(890), + [sym_null] = ACTIONS(890), + [sym_comment] = ACTIONS(3), + }, + [185] = { + [sym_identifier] = ACTIONS(890), + [aux_sym_preproc_include_token1] = ACTIONS(890), + [aux_sym_preproc_def_token1] = ACTIONS(890), + [aux_sym_preproc_if_token1] = ACTIONS(890), + [aux_sym_preproc_if_token2] = ACTIONS(890), + [aux_sym_preproc_ifdef_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token2] = ACTIONS(890), + [sym_preproc_directive] = ACTIONS(890), + [anon_sym_LPAREN2] = ACTIONS(892), + [anon_sym_BANG] = ACTIONS(892), + [anon_sym_TILDE] = ACTIONS(892), + [anon_sym_DASH] = ACTIONS(890), + [anon_sym_PLUS] = ACTIONS(890), + [anon_sym_STAR] = ACTIONS(892), + [anon_sym_AMP] = ACTIONS(892), + [anon_sym_SEMI] = ACTIONS(892), + [anon_sym_typedef] = ACTIONS(890), + [anon_sym_extern] = ACTIONS(890), + [anon_sym___attribute__] = ACTIONS(890), + [anon_sym_LBRACK_LBRACK] = ACTIONS(892), + [anon_sym___declspec] = ACTIONS(890), + [anon_sym___cdecl] = ACTIONS(890), + [anon_sym___clrcall] = ACTIONS(890), + [anon_sym___stdcall] = ACTIONS(890), + [anon_sym___fastcall] = ACTIONS(890), + [anon_sym___thiscall] = ACTIONS(890), + [anon_sym___vectorcall] = ACTIONS(890), + [anon_sym_LBRACE] = ACTIONS(892), + [anon_sym_static] = ACTIONS(890), + [anon_sym_auto] = ACTIONS(890), + [anon_sym_register] = ACTIONS(890), + [anon_sym_inline] = ACTIONS(890), + [anon_sym_const] = ACTIONS(890), + [anon_sym_volatile] = ACTIONS(890), + [anon_sym_restrict] = ACTIONS(890), + [anon_sym__Atomic] = ACTIONS(890), + [anon_sym_signed] = ACTIONS(890), + [anon_sym_unsigned] = ACTIONS(890), + [anon_sym_long] = ACTIONS(890), + [anon_sym_short] = ACTIONS(890), + [sym_primitive_type] = ACTIONS(890), + [anon_sym_enum] = ACTIONS(890), + [anon_sym_struct] = ACTIONS(890), + [anon_sym_union] = ACTIONS(890), + [anon_sym_if] = ACTIONS(890), + [anon_sym_else] = ACTIONS(890), + [anon_sym_switch] = ACTIONS(890), + [anon_sym_case] = ACTIONS(890), + [anon_sym_default] = ACTIONS(890), + [anon_sym_while] = ACTIONS(890), + [anon_sym_do] = ACTIONS(890), + [anon_sym_for] = ACTIONS(890), + [anon_sym_return] = ACTIONS(890), + [anon_sym_break] = ACTIONS(890), + [anon_sym_continue] = ACTIONS(890), + [anon_sym_goto] = ACTIONS(890), + [anon_sym_DASH_DASH] = ACTIONS(892), + [anon_sym_PLUS_PLUS] = ACTIONS(892), + [anon_sym_sizeof] = ACTIONS(890), + [sym_number_literal] = ACTIONS(892), + [anon_sym_L_SQUOTE] = ACTIONS(892), + [anon_sym_u_SQUOTE] = ACTIONS(892), + [anon_sym_U_SQUOTE] = ACTIONS(892), + [anon_sym_u8_SQUOTE] = ACTIONS(892), + [anon_sym_SQUOTE] = ACTIONS(892), + [anon_sym_L_DQUOTE] = ACTIONS(892), + [anon_sym_u_DQUOTE] = ACTIONS(892), + [anon_sym_U_DQUOTE] = ACTIONS(892), + [anon_sym_u8_DQUOTE] = ACTIONS(892), + [anon_sym_DQUOTE] = ACTIONS(892), + [sym_true] = ACTIONS(890), + [sym_false] = ACTIONS(890), + [sym_null] = ACTIONS(890), + [sym_comment] = ACTIONS(3), + }, + [186] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(197), + [sym_attributed_statement] = STATE(197), + [sym_labeled_statement] = STATE(197), + [sym_expression_statement] = STATE(197), + [sym_if_statement] = STATE(197), + [sym_switch_statement] = STATE(197), + [sym_case_statement] = STATE(197), + [sym_while_statement] = STATE(197), + [sym_do_statement] = STATE(197), + [sym_for_statement] = STATE(197), + [sym_return_statement] = STATE(197), + [sym_break_statement] = STATE(197), + [sym_continue_statement] = STATE(197), + [sym_goto_statement] = STATE(197), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [187] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(69), + [sym_attributed_statement] = STATE(69), + [sym_labeled_statement] = STATE(69), + [sym_expression_statement] = STATE(69), + [sym_if_statement] = STATE(69), + [sym_switch_statement] = STATE(69), + [sym_case_statement] = STATE(69), + [sym_while_statement] = STATE(69), + [sym_do_statement] = STATE(69), + [sym_for_statement] = STATE(69), + [sym_return_statement] = STATE(69), + [sym_break_statement] = STATE(69), + [sym_continue_statement] = STATE(69), + [sym_goto_statement] = STATE(69), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [188] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(84), + [sym_attributed_statement] = STATE(84), + [sym_labeled_statement] = STATE(84), + [sym_expression_statement] = STATE(84), + [sym_if_statement] = STATE(84), + [sym_switch_statement] = STATE(84), + [sym_case_statement] = STATE(84), + [sym_while_statement] = STATE(84), + [sym_do_statement] = STATE(84), + [sym_for_statement] = STATE(84), + [sym_return_statement] = STATE(84), + [sym_break_statement] = STATE(84), + [sym_continue_statement] = STATE(84), + [sym_goto_statement] = STATE(84), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [189] = { + [ts_builtin_sym_end] = ACTIONS(1026), + [sym_identifier] = ACTIONS(1024), + [aux_sym_preproc_include_token1] = ACTIONS(1024), + [aux_sym_preproc_def_token1] = ACTIONS(1024), + [aux_sym_preproc_if_token1] = ACTIONS(1024), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1024), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1024), + [sym_preproc_directive] = ACTIONS(1024), + [anon_sym_LPAREN2] = ACTIONS(1026), + [anon_sym_BANG] = ACTIONS(1026), + [anon_sym_TILDE] = ACTIONS(1026), + [anon_sym_DASH] = ACTIONS(1024), + [anon_sym_PLUS] = ACTIONS(1024), + [anon_sym_STAR] = ACTIONS(1026), + [anon_sym_AMP] = ACTIONS(1026), + [anon_sym_SEMI] = ACTIONS(1026), + [anon_sym_typedef] = ACTIONS(1024), + [anon_sym_extern] = ACTIONS(1024), + [anon_sym___attribute__] = ACTIONS(1024), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1026), + [anon_sym___declspec] = ACTIONS(1024), + [anon_sym___cdecl] = ACTIONS(1024), + [anon_sym___clrcall] = ACTIONS(1024), + [anon_sym___stdcall] = ACTIONS(1024), + [anon_sym___fastcall] = ACTIONS(1024), + [anon_sym___thiscall] = ACTIONS(1024), + [anon_sym___vectorcall] = ACTIONS(1024), + [anon_sym_LBRACE] = ACTIONS(1026), + [anon_sym_static] = ACTIONS(1024), + [anon_sym_auto] = ACTIONS(1024), + [anon_sym_register] = ACTIONS(1024), + [anon_sym_inline] = ACTIONS(1024), + [anon_sym_const] = ACTIONS(1024), + [anon_sym_volatile] = ACTIONS(1024), + [anon_sym_restrict] = ACTIONS(1024), + [anon_sym__Atomic] = ACTIONS(1024), + [anon_sym_signed] = ACTIONS(1024), + [anon_sym_unsigned] = ACTIONS(1024), + [anon_sym_long] = ACTIONS(1024), + [anon_sym_short] = ACTIONS(1024), + [sym_primitive_type] = ACTIONS(1024), + [anon_sym_enum] = ACTIONS(1024), + [anon_sym_struct] = ACTIONS(1024), + [anon_sym_union] = ACTIONS(1024), + [anon_sym_if] = ACTIONS(1024), + [anon_sym_else] = ACTIONS(1024), + [anon_sym_switch] = ACTIONS(1024), + [anon_sym_case] = ACTIONS(1024), + [anon_sym_default] = ACTIONS(1024), + [anon_sym_while] = ACTIONS(1024), + [anon_sym_do] = ACTIONS(1024), + [anon_sym_for] = ACTIONS(1024), + [anon_sym_return] = ACTIONS(1024), + [anon_sym_break] = ACTIONS(1024), + [anon_sym_continue] = ACTIONS(1024), + [anon_sym_goto] = ACTIONS(1024), + [anon_sym_DASH_DASH] = ACTIONS(1026), + [anon_sym_PLUS_PLUS] = ACTIONS(1026), + [anon_sym_sizeof] = ACTIONS(1024), + [sym_number_literal] = ACTIONS(1026), + [anon_sym_L_SQUOTE] = ACTIONS(1026), + [anon_sym_u_SQUOTE] = ACTIONS(1026), + [anon_sym_U_SQUOTE] = ACTIONS(1026), + [anon_sym_u8_SQUOTE] = ACTIONS(1026), + [anon_sym_SQUOTE] = ACTIONS(1026), + [anon_sym_L_DQUOTE] = ACTIONS(1026), + [anon_sym_u_DQUOTE] = ACTIONS(1026), + [anon_sym_U_DQUOTE] = ACTIONS(1026), + [anon_sym_u8_DQUOTE] = ACTIONS(1026), + [anon_sym_DQUOTE] = ACTIONS(1026), + [sym_true] = ACTIONS(1024), + [sym_false] = ACTIONS(1024), + [sym_null] = ACTIONS(1024), + [sym_comment] = ACTIONS(3), + }, + [190] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(204), + [sym_attributed_statement] = STATE(204), + [sym_labeled_statement] = STATE(204), + [sym_expression_statement] = STATE(204), + [sym_if_statement] = STATE(204), + [sym_switch_statement] = STATE(204), + [sym_case_statement] = STATE(204), + [sym_while_statement] = STATE(204), + [sym_do_statement] = STATE(204), + [sym_for_statement] = STATE(204), + [sym_return_statement] = STATE(204), + [sym_break_statement] = STATE(204), + [sym_continue_statement] = STATE(204), + [sym_goto_statement] = STATE(204), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [191] = { + [sym_identifier] = ACTIONS(960), + [aux_sym_preproc_include_token1] = ACTIONS(960), + [aux_sym_preproc_def_token1] = ACTIONS(960), + [aux_sym_preproc_if_token1] = ACTIONS(960), + [aux_sym_preproc_if_token2] = ACTIONS(960), + [aux_sym_preproc_ifdef_token1] = ACTIONS(960), + [aux_sym_preproc_ifdef_token2] = ACTIONS(960), + [sym_preproc_directive] = ACTIONS(960), + [anon_sym_LPAREN2] = ACTIONS(962), + [anon_sym_BANG] = ACTIONS(962), + [anon_sym_TILDE] = ACTIONS(962), + [anon_sym_DASH] = ACTIONS(960), + [anon_sym_PLUS] = ACTIONS(960), + [anon_sym_STAR] = ACTIONS(962), + [anon_sym_AMP] = ACTIONS(962), + [anon_sym_SEMI] = ACTIONS(962), + [anon_sym_typedef] = ACTIONS(960), + [anon_sym_extern] = ACTIONS(960), + [anon_sym___attribute__] = ACTIONS(960), + [anon_sym_LBRACK_LBRACK] = ACTIONS(962), + [anon_sym___declspec] = ACTIONS(960), + [anon_sym___cdecl] = ACTIONS(960), + [anon_sym___clrcall] = ACTIONS(960), + [anon_sym___stdcall] = ACTIONS(960), + [anon_sym___fastcall] = ACTIONS(960), + [anon_sym___thiscall] = ACTIONS(960), + [anon_sym___vectorcall] = ACTIONS(960), + [anon_sym_LBRACE] = ACTIONS(962), + [anon_sym_static] = ACTIONS(960), + [anon_sym_auto] = ACTIONS(960), + [anon_sym_register] = ACTIONS(960), + [anon_sym_inline] = ACTIONS(960), + [anon_sym_const] = ACTIONS(960), + [anon_sym_volatile] = ACTIONS(960), + [anon_sym_restrict] = ACTIONS(960), + [anon_sym__Atomic] = ACTIONS(960), + [anon_sym_signed] = ACTIONS(960), + [anon_sym_unsigned] = ACTIONS(960), + [anon_sym_long] = ACTIONS(960), + [anon_sym_short] = ACTIONS(960), + [sym_primitive_type] = ACTIONS(960), + [anon_sym_enum] = ACTIONS(960), + [anon_sym_struct] = ACTIONS(960), + [anon_sym_union] = ACTIONS(960), + [anon_sym_if] = ACTIONS(960), + [anon_sym_else] = ACTIONS(960), + [anon_sym_switch] = ACTIONS(960), + [anon_sym_case] = ACTIONS(960), + [anon_sym_default] = ACTIONS(960), + [anon_sym_while] = ACTIONS(960), + [anon_sym_do] = ACTIONS(960), + [anon_sym_for] = ACTIONS(960), + [anon_sym_return] = ACTIONS(960), + [anon_sym_break] = ACTIONS(960), + [anon_sym_continue] = ACTIONS(960), + [anon_sym_goto] = ACTIONS(960), + [anon_sym_DASH_DASH] = ACTIONS(962), + [anon_sym_PLUS_PLUS] = ACTIONS(962), + [anon_sym_sizeof] = ACTIONS(960), + [sym_number_literal] = ACTIONS(962), + [anon_sym_L_SQUOTE] = ACTIONS(962), + [anon_sym_u_SQUOTE] = ACTIONS(962), + [anon_sym_U_SQUOTE] = ACTIONS(962), + [anon_sym_u8_SQUOTE] = ACTIONS(962), + [anon_sym_SQUOTE] = ACTIONS(962), + [anon_sym_L_DQUOTE] = ACTIONS(962), + [anon_sym_u_DQUOTE] = ACTIONS(962), + [anon_sym_U_DQUOTE] = ACTIONS(962), + [anon_sym_u8_DQUOTE] = ACTIONS(962), + [anon_sym_DQUOTE] = ACTIONS(962), + [sym_true] = ACTIONS(960), + [sym_false] = ACTIONS(960), + [sym_null] = ACTIONS(960), + [sym_comment] = ACTIONS(3), + }, + [192] = { + [ts_builtin_sym_end] = ACTIONS(958), + [sym_identifier] = ACTIONS(956), + [aux_sym_preproc_include_token1] = ACTIONS(956), + [aux_sym_preproc_def_token1] = ACTIONS(956), + [aux_sym_preproc_if_token1] = ACTIONS(956), + [aux_sym_preproc_ifdef_token1] = ACTIONS(956), + [aux_sym_preproc_ifdef_token2] = ACTIONS(956), + [sym_preproc_directive] = ACTIONS(956), + [anon_sym_LPAREN2] = ACTIONS(958), + [anon_sym_BANG] = ACTIONS(958), + [anon_sym_TILDE] = ACTIONS(958), + [anon_sym_DASH] = ACTIONS(956), + [anon_sym_PLUS] = ACTIONS(956), + [anon_sym_STAR] = ACTIONS(958), + [anon_sym_AMP] = ACTIONS(958), + [anon_sym_SEMI] = ACTIONS(958), + [anon_sym_typedef] = ACTIONS(956), + [anon_sym_extern] = ACTIONS(956), + [anon_sym___attribute__] = ACTIONS(956), + [anon_sym_LBRACK_LBRACK] = ACTIONS(958), + [anon_sym___declspec] = ACTIONS(956), + [anon_sym___cdecl] = ACTIONS(956), + [anon_sym___clrcall] = ACTIONS(956), + [anon_sym___stdcall] = ACTIONS(956), + [anon_sym___fastcall] = ACTIONS(956), + [anon_sym___thiscall] = ACTIONS(956), + [anon_sym___vectorcall] = ACTIONS(956), + [anon_sym_LBRACE] = ACTIONS(958), + [anon_sym_static] = ACTIONS(956), + [anon_sym_auto] = ACTIONS(956), + [anon_sym_register] = ACTIONS(956), + [anon_sym_inline] = ACTIONS(956), + [anon_sym_const] = ACTIONS(956), + [anon_sym_volatile] = ACTIONS(956), + [anon_sym_restrict] = ACTIONS(956), + [anon_sym__Atomic] = ACTIONS(956), + [anon_sym_signed] = ACTIONS(956), + [anon_sym_unsigned] = ACTIONS(956), + [anon_sym_long] = ACTIONS(956), + [anon_sym_short] = ACTIONS(956), + [sym_primitive_type] = ACTIONS(956), + [anon_sym_enum] = ACTIONS(956), + [anon_sym_struct] = ACTIONS(956), + [anon_sym_union] = ACTIONS(956), + [anon_sym_if] = ACTIONS(956), + [anon_sym_else] = ACTIONS(956), + [anon_sym_switch] = ACTIONS(956), + [anon_sym_case] = ACTIONS(956), + [anon_sym_default] = ACTIONS(956), + [anon_sym_while] = ACTIONS(956), + [anon_sym_do] = ACTIONS(956), + [anon_sym_for] = ACTIONS(956), + [anon_sym_return] = ACTIONS(956), + [anon_sym_break] = ACTIONS(956), + [anon_sym_continue] = ACTIONS(956), + [anon_sym_goto] = ACTIONS(956), + [anon_sym_DASH_DASH] = ACTIONS(958), + [anon_sym_PLUS_PLUS] = ACTIONS(958), + [anon_sym_sizeof] = ACTIONS(956), + [sym_number_literal] = ACTIONS(958), + [anon_sym_L_SQUOTE] = ACTIONS(958), + [anon_sym_u_SQUOTE] = ACTIONS(958), + [anon_sym_U_SQUOTE] = ACTIONS(958), + [anon_sym_u8_SQUOTE] = ACTIONS(958), + [anon_sym_SQUOTE] = ACTIONS(958), + [anon_sym_L_DQUOTE] = ACTIONS(958), + [anon_sym_u_DQUOTE] = ACTIONS(958), + [anon_sym_U_DQUOTE] = ACTIONS(958), + [anon_sym_u8_DQUOTE] = ACTIONS(958), + [anon_sym_DQUOTE] = ACTIONS(958), + [sym_true] = ACTIONS(956), + [sym_false] = ACTIONS(956), + [sym_null] = ACTIONS(956), + [sym_comment] = ACTIONS(3), + }, + [193] = { + [ts_builtin_sym_end] = ACTIONS(970), + [sym_identifier] = ACTIONS(968), + [aux_sym_preproc_include_token1] = ACTIONS(968), + [aux_sym_preproc_def_token1] = ACTIONS(968), + [aux_sym_preproc_if_token1] = ACTIONS(968), + [aux_sym_preproc_ifdef_token1] = ACTIONS(968), + [aux_sym_preproc_ifdef_token2] = ACTIONS(968), + [sym_preproc_directive] = ACTIONS(968), + [anon_sym_LPAREN2] = ACTIONS(970), + [anon_sym_BANG] = ACTIONS(970), + [anon_sym_TILDE] = ACTIONS(970), + [anon_sym_DASH] = ACTIONS(968), + [anon_sym_PLUS] = ACTIONS(968), + [anon_sym_STAR] = ACTIONS(970), + [anon_sym_AMP] = ACTIONS(970), + [anon_sym_SEMI] = ACTIONS(970), + [anon_sym_typedef] = ACTIONS(968), + [anon_sym_extern] = ACTIONS(968), + [anon_sym___attribute__] = ACTIONS(968), + [anon_sym_LBRACK_LBRACK] = ACTIONS(970), + [anon_sym___declspec] = ACTIONS(968), + [anon_sym___cdecl] = ACTIONS(968), + [anon_sym___clrcall] = ACTIONS(968), + [anon_sym___stdcall] = ACTIONS(968), + [anon_sym___fastcall] = ACTIONS(968), + [anon_sym___thiscall] = ACTIONS(968), + [anon_sym___vectorcall] = ACTIONS(968), + [anon_sym_LBRACE] = ACTIONS(970), + [anon_sym_static] = ACTIONS(968), + [anon_sym_auto] = ACTIONS(968), + [anon_sym_register] = ACTIONS(968), + [anon_sym_inline] = ACTIONS(968), + [anon_sym_const] = ACTIONS(968), + [anon_sym_volatile] = ACTIONS(968), + [anon_sym_restrict] = ACTIONS(968), + [anon_sym__Atomic] = ACTIONS(968), + [anon_sym_signed] = ACTIONS(968), + [anon_sym_unsigned] = ACTIONS(968), + [anon_sym_long] = ACTIONS(968), + [anon_sym_short] = ACTIONS(968), + [sym_primitive_type] = ACTIONS(968), + [anon_sym_enum] = ACTIONS(968), + [anon_sym_struct] = ACTIONS(968), + [anon_sym_union] = ACTIONS(968), + [anon_sym_if] = ACTIONS(968), + [anon_sym_else] = ACTIONS(968), + [anon_sym_switch] = ACTIONS(968), + [anon_sym_case] = ACTIONS(968), + [anon_sym_default] = ACTIONS(968), + [anon_sym_while] = ACTIONS(968), + [anon_sym_do] = ACTIONS(968), + [anon_sym_for] = ACTIONS(968), + [anon_sym_return] = ACTIONS(968), + [anon_sym_break] = ACTIONS(968), + [anon_sym_continue] = ACTIONS(968), + [anon_sym_goto] = ACTIONS(968), + [anon_sym_DASH_DASH] = ACTIONS(970), + [anon_sym_PLUS_PLUS] = ACTIONS(970), + [anon_sym_sizeof] = ACTIONS(968), + [sym_number_literal] = ACTIONS(970), + [anon_sym_L_SQUOTE] = ACTIONS(970), + [anon_sym_u_SQUOTE] = ACTIONS(970), + [anon_sym_U_SQUOTE] = ACTIONS(970), + [anon_sym_u8_SQUOTE] = ACTIONS(970), + [anon_sym_SQUOTE] = ACTIONS(970), + [anon_sym_L_DQUOTE] = ACTIONS(970), + [anon_sym_u_DQUOTE] = ACTIONS(970), + [anon_sym_U_DQUOTE] = ACTIONS(970), + [anon_sym_u8_DQUOTE] = ACTIONS(970), + [anon_sym_DQUOTE] = ACTIONS(970), + [sym_true] = ACTIONS(968), + [sym_false] = ACTIONS(968), + [sym_null] = ACTIONS(968), + [sym_comment] = ACTIONS(3), + }, + [194] = { + [sym_identifier] = ACTIONS(924), + [aux_sym_preproc_include_token1] = ACTIONS(924), + [aux_sym_preproc_def_token1] = ACTIONS(924), + [aux_sym_preproc_if_token1] = ACTIONS(924), + [aux_sym_preproc_if_token2] = ACTIONS(924), + [aux_sym_preproc_ifdef_token1] = ACTIONS(924), + [aux_sym_preproc_ifdef_token2] = ACTIONS(924), + [sym_preproc_directive] = ACTIONS(924), + [anon_sym_LPAREN2] = ACTIONS(926), + [anon_sym_BANG] = ACTIONS(926), + [anon_sym_TILDE] = ACTIONS(926), + [anon_sym_DASH] = ACTIONS(924), + [anon_sym_PLUS] = ACTIONS(924), + [anon_sym_STAR] = ACTIONS(926), + [anon_sym_AMP] = ACTIONS(926), + [anon_sym_SEMI] = ACTIONS(926), + [anon_sym_typedef] = ACTIONS(924), + [anon_sym_extern] = ACTIONS(924), + [anon_sym___attribute__] = ACTIONS(924), + [anon_sym_LBRACK_LBRACK] = ACTIONS(926), + [anon_sym___declspec] = ACTIONS(924), + [anon_sym___cdecl] = ACTIONS(924), + [anon_sym___clrcall] = ACTIONS(924), + [anon_sym___stdcall] = ACTIONS(924), + [anon_sym___fastcall] = ACTIONS(924), + [anon_sym___thiscall] = ACTIONS(924), + [anon_sym___vectorcall] = ACTIONS(924), + [anon_sym_LBRACE] = ACTIONS(926), + [anon_sym_static] = ACTIONS(924), + [anon_sym_auto] = ACTIONS(924), + [anon_sym_register] = ACTIONS(924), + [anon_sym_inline] = ACTIONS(924), + [anon_sym_const] = ACTIONS(924), + [anon_sym_volatile] = ACTIONS(924), + [anon_sym_restrict] = ACTIONS(924), + [anon_sym__Atomic] = ACTIONS(924), + [anon_sym_signed] = ACTIONS(924), + [anon_sym_unsigned] = ACTIONS(924), + [anon_sym_long] = ACTIONS(924), + [anon_sym_short] = ACTIONS(924), + [sym_primitive_type] = ACTIONS(924), + [anon_sym_enum] = ACTIONS(924), + [anon_sym_struct] = ACTIONS(924), + [anon_sym_union] = ACTIONS(924), + [anon_sym_if] = ACTIONS(924), + [anon_sym_else] = ACTIONS(924), + [anon_sym_switch] = ACTIONS(924), + [anon_sym_case] = ACTIONS(924), + [anon_sym_default] = ACTIONS(924), + [anon_sym_while] = ACTIONS(924), + [anon_sym_do] = ACTIONS(924), + [anon_sym_for] = ACTIONS(924), + [anon_sym_return] = ACTIONS(924), + [anon_sym_break] = ACTIONS(924), + [anon_sym_continue] = ACTIONS(924), + [anon_sym_goto] = ACTIONS(924), + [anon_sym_DASH_DASH] = ACTIONS(926), + [anon_sym_PLUS_PLUS] = ACTIONS(926), + [anon_sym_sizeof] = ACTIONS(924), + [sym_number_literal] = ACTIONS(926), + [anon_sym_L_SQUOTE] = ACTIONS(926), + [anon_sym_u_SQUOTE] = ACTIONS(926), + [anon_sym_U_SQUOTE] = ACTIONS(926), + [anon_sym_u8_SQUOTE] = ACTIONS(926), + [anon_sym_SQUOTE] = ACTIONS(926), + [anon_sym_L_DQUOTE] = ACTIONS(926), + [anon_sym_u_DQUOTE] = ACTIONS(926), + [anon_sym_U_DQUOTE] = ACTIONS(926), + [anon_sym_u8_DQUOTE] = ACTIONS(926), + [anon_sym_DQUOTE] = ACTIONS(926), + [sym_true] = ACTIONS(924), + [sym_false] = ACTIONS(924), + [sym_null] = ACTIONS(924), + [sym_comment] = ACTIONS(3), + }, + [195] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(212), + [sym_attributed_statement] = STATE(212), + [sym_labeled_statement] = STATE(212), + [sym_expression_statement] = STATE(212), + [sym_if_statement] = STATE(212), + [sym_switch_statement] = STATE(212), + [sym_case_statement] = STATE(212), + [sym_while_statement] = STATE(212), + [sym_do_statement] = STATE(212), + [sym_for_statement] = STATE(212), + [sym_return_statement] = STATE(212), + [sym_break_statement] = STATE(212), + [sym_continue_statement] = STATE(212), + [sym_goto_statement] = STATE(212), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [196] = { + [ts_builtin_sym_end] = ACTIONS(974), + [sym_identifier] = ACTIONS(972), + [aux_sym_preproc_include_token1] = ACTIONS(972), + [aux_sym_preproc_def_token1] = ACTIONS(972), + [aux_sym_preproc_if_token1] = ACTIONS(972), + [aux_sym_preproc_ifdef_token1] = ACTIONS(972), + [aux_sym_preproc_ifdef_token2] = ACTIONS(972), + [sym_preproc_directive] = ACTIONS(972), + [anon_sym_LPAREN2] = ACTIONS(974), + [anon_sym_BANG] = ACTIONS(974), + [anon_sym_TILDE] = ACTIONS(974), + [anon_sym_DASH] = ACTIONS(972), + [anon_sym_PLUS] = ACTIONS(972), + [anon_sym_STAR] = ACTIONS(974), + [anon_sym_AMP] = ACTIONS(974), + [anon_sym_SEMI] = ACTIONS(974), + [anon_sym_typedef] = ACTIONS(972), + [anon_sym_extern] = ACTIONS(972), + [anon_sym___attribute__] = ACTIONS(972), + [anon_sym_LBRACK_LBRACK] = ACTIONS(974), + [anon_sym___declspec] = ACTIONS(972), + [anon_sym___cdecl] = ACTIONS(972), + [anon_sym___clrcall] = ACTIONS(972), + [anon_sym___stdcall] = ACTIONS(972), + [anon_sym___fastcall] = ACTIONS(972), + [anon_sym___thiscall] = ACTIONS(972), + [anon_sym___vectorcall] = ACTIONS(972), + [anon_sym_LBRACE] = ACTIONS(974), + [anon_sym_static] = ACTIONS(972), + [anon_sym_auto] = ACTIONS(972), + [anon_sym_register] = ACTIONS(972), + [anon_sym_inline] = ACTIONS(972), + [anon_sym_const] = ACTIONS(972), + [anon_sym_volatile] = ACTIONS(972), + [anon_sym_restrict] = ACTIONS(972), + [anon_sym__Atomic] = ACTIONS(972), + [anon_sym_signed] = ACTIONS(972), + [anon_sym_unsigned] = ACTIONS(972), + [anon_sym_long] = ACTIONS(972), + [anon_sym_short] = ACTIONS(972), + [sym_primitive_type] = ACTIONS(972), + [anon_sym_enum] = ACTIONS(972), + [anon_sym_struct] = ACTIONS(972), + [anon_sym_union] = ACTIONS(972), + [anon_sym_if] = ACTIONS(972), + [anon_sym_else] = ACTIONS(972), + [anon_sym_switch] = ACTIONS(972), + [anon_sym_case] = ACTIONS(972), + [anon_sym_default] = ACTIONS(972), + [anon_sym_while] = ACTIONS(972), + [anon_sym_do] = ACTIONS(972), + [anon_sym_for] = ACTIONS(972), + [anon_sym_return] = ACTIONS(972), + [anon_sym_break] = ACTIONS(972), + [anon_sym_continue] = ACTIONS(972), + [anon_sym_goto] = ACTIONS(972), + [anon_sym_DASH_DASH] = ACTIONS(974), + [anon_sym_PLUS_PLUS] = ACTIONS(974), + [anon_sym_sizeof] = ACTIONS(972), + [sym_number_literal] = ACTIONS(974), + [anon_sym_L_SQUOTE] = ACTIONS(974), + [anon_sym_u_SQUOTE] = ACTIONS(974), + [anon_sym_U_SQUOTE] = ACTIONS(974), + [anon_sym_u8_SQUOTE] = ACTIONS(974), + [anon_sym_SQUOTE] = ACTIONS(974), + [anon_sym_L_DQUOTE] = ACTIONS(974), + [anon_sym_u_DQUOTE] = ACTIONS(974), + [anon_sym_U_DQUOTE] = ACTIONS(974), + [anon_sym_u8_DQUOTE] = ACTIONS(974), + [anon_sym_DQUOTE] = ACTIONS(974), + [sym_true] = ACTIONS(972), + [sym_false] = ACTIONS(972), + [sym_null] = ACTIONS(972), + [sym_comment] = ACTIONS(3), + }, + [197] = { + [ts_builtin_sym_end] = ACTIONS(978), + [sym_identifier] = ACTIONS(976), + [aux_sym_preproc_include_token1] = ACTIONS(976), + [aux_sym_preproc_def_token1] = ACTIONS(976), + [aux_sym_preproc_if_token1] = ACTIONS(976), + [aux_sym_preproc_ifdef_token1] = ACTIONS(976), + [aux_sym_preproc_ifdef_token2] = ACTIONS(976), + [sym_preproc_directive] = ACTIONS(976), + [anon_sym_LPAREN2] = ACTIONS(978), + [anon_sym_BANG] = ACTIONS(978), + [anon_sym_TILDE] = ACTIONS(978), + [anon_sym_DASH] = ACTIONS(976), + [anon_sym_PLUS] = ACTIONS(976), + [anon_sym_STAR] = ACTIONS(978), + [anon_sym_AMP] = ACTIONS(978), + [anon_sym_SEMI] = ACTIONS(978), + [anon_sym_typedef] = ACTIONS(976), + [anon_sym_extern] = ACTIONS(976), + [anon_sym___attribute__] = ACTIONS(976), + [anon_sym_LBRACK_LBRACK] = ACTIONS(978), + [anon_sym___declspec] = ACTIONS(976), + [anon_sym___cdecl] = ACTIONS(976), + [anon_sym___clrcall] = ACTIONS(976), + [anon_sym___stdcall] = ACTIONS(976), + [anon_sym___fastcall] = ACTIONS(976), + [anon_sym___thiscall] = ACTIONS(976), + [anon_sym___vectorcall] = ACTIONS(976), + [anon_sym_LBRACE] = ACTIONS(978), + [anon_sym_static] = ACTIONS(976), + [anon_sym_auto] = ACTIONS(976), + [anon_sym_register] = ACTIONS(976), + [anon_sym_inline] = ACTIONS(976), + [anon_sym_const] = ACTIONS(976), + [anon_sym_volatile] = ACTIONS(976), + [anon_sym_restrict] = ACTIONS(976), + [anon_sym__Atomic] = ACTIONS(976), + [anon_sym_signed] = ACTIONS(976), + [anon_sym_unsigned] = ACTIONS(976), + [anon_sym_long] = ACTIONS(976), + [anon_sym_short] = ACTIONS(976), + [sym_primitive_type] = ACTIONS(976), + [anon_sym_enum] = ACTIONS(976), + [anon_sym_struct] = ACTIONS(976), + [anon_sym_union] = ACTIONS(976), + [anon_sym_if] = ACTIONS(976), + [anon_sym_else] = ACTIONS(976), + [anon_sym_switch] = ACTIONS(976), + [anon_sym_case] = ACTIONS(976), + [anon_sym_default] = ACTIONS(976), + [anon_sym_while] = ACTIONS(976), + [anon_sym_do] = ACTIONS(976), + [anon_sym_for] = ACTIONS(976), + [anon_sym_return] = ACTIONS(976), + [anon_sym_break] = ACTIONS(976), + [anon_sym_continue] = ACTIONS(976), + [anon_sym_goto] = ACTIONS(976), + [anon_sym_DASH_DASH] = ACTIONS(978), + [anon_sym_PLUS_PLUS] = ACTIONS(978), + [anon_sym_sizeof] = ACTIONS(976), + [sym_number_literal] = ACTIONS(978), + [anon_sym_L_SQUOTE] = ACTIONS(978), + [anon_sym_u_SQUOTE] = ACTIONS(978), + [anon_sym_U_SQUOTE] = ACTIONS(978), + [anon_sym_u8_SQUOTE] = ACTIONS(978), + [anon_sym_SQUOTE] = ACTIONS(978), + [anon_sym_L_DQUOTE] = ACTIONS(978), + [anon_sym_u_DQUOTE] = ACTIONS(978), + [anon_sym_U_DQUOTE] = ACTIONS(978), + [anon_sym_u8_DQUOTE] = ACTIONS(978), + [anon_sym_DQUOTE] = ACTIONS(978), + [sym_true] = ACTIONS(976), + [sym_false] = ACTIONS(976), + [sym_null] = ACTIONS(976), + [sym_comment] = ACTIONS(3), + }, + [198] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(216), + [sym_attributed_statement] = STATE(216), + [sym_labeled_statement] = STATE(216), + [sym_expression_statement] = STATE(216), + [sym_if_statement] = STATE(216), + [sym_switch_statement] = STATE(216), + [sym_case_statement] = STATE(216), + [sym_while_statement] = STATE(216), + [sym_do_statement] = STATE(216), + [sym_for_statement] = STATE(216), + [sym_return_statement] = STATE(216), + [sym_break_statement] = STATE(216), + [sym_continue_statement] = STATE(216), + [sym_goto_statement] = STATE(216), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [199] = { + [sym_identifier] = ACTIONS(1004), + [aux_sym_preproc_include_token1] = ACTIONS(1004), + [aux_sym_preproc_def_token1] = ACTIONS(1004), + [aux_sym_preproc_if_token1] = ACTIONS(1004), + [aux_sym_preproc_if_token2] = ACTIONS(1004), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1004), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1004), + [sym_preproc_directive] = ACTIONS(1004), + [anon_sym_LPAREN2] = ACTIONS(1006), + [anon_sym_BANG] = ACTIONS(1006), + [anon_sym_TILDE] = ACTIONS(1006), + [anon_sym_DASH] = ACTIONS(1004), + [anon_sym_PLUS] = ACTIONS(1004), + [anon_sym_STAR] = ACTIONS(1006), + [anon_sym_AMP] = ACTIONS(1006), + [anon_sym_SEMI] = ACTIONS(1006), + [anon_sym_typedef] = ACTIONS(1004), + [anon_sym_extern] = ACTIONS(1004), + [anon_sym___attribute__] = ACTIONS(1004), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1006), + [anon_sym___declspec] = ACTIONS(1004), + [anon_sym___cdecl] = ACTIONS(1004), + [anon_sym___clrcall] = ACTIONS(1004), + [anon_sym___stdcall] = ACTIONS(1004), + [anon_sym___fastcall] = ACTIONS(1004), + [anon_sym___thiscall] = ACTIONS(1004), + [anon_sym___vectorcall] = ACTIONS(1004), + [anon_sym_LBRACE] = ACTIONS(1006), + [anon_sym_static] = ACTIONS(1004), + [anon_sym_auto] = ACTIONS(1004), + [anon_sym_register] = ACTIONS(1004), + [anon_sym_inline] = ACTIONS(1004), + [anon_sym_const] = ACTIONS(1004), + [anon_sym_volatile] = ACTIONS(1004), + [anon_sym_restrict] = ACTIONS(1004), + [anon_sym__Atomic] = ACTIONS(1004), + [anon_sym_signed] = ACTIONS(1004), + [anon_sym_unsigned] = ACTIONS(1004), + [anon_sym_long] = ACTIONS(1004), + [anon_sym_short] = ACTIONS(1004), + [sym_primitive_type] = ACTIONS(1004), + [anon_sym_enum] = ACTIONS(1004), + [anon_sym_struct] = ACTIONS(1004), + [anon_sym_union] = ACTIONS(1004), + [anon_sym_if] = ACTIONS(1004), + [anon_sym_else] = ACTIONS(1004), + [anon_sym_switch] = ACTIONS(1004), + [anon_sym_case] = ACTIONS(1004), + [anon_sym_default] = ACTIONS(1004), + [anon_sym_while] = ACTIONS(1004), + [anon_sym_do] = ACTIONS(1004), + [anon_sym_for] = ACTIONS(1004), + [anon_sym_return] = ACTIONS(1004), + [anon_sym_break] = ACTIONS(1004), + [anon_sym_continue] = ACTIONS(1004), + [anon_sym_goto] = ACTIONS(1004), + [anon_sym_DASH_DASH] = ACTIONS(1006), + [anon_sym_PLUS_PLUS] = ACTIONS(1006), + [anon_sym_sizeof] = ACTIONS(1004), + [sym_number_literal] = ACTIONS(1006), + [anon_sym_L_SQUOTE] = ACTIONS(1006), + [anon_sym_u_SQUOTE] = ACTIONS(1006), + [anon_sym_U_SQUOTE] = ACTIONS(1006), + [anon_sym_u8_SQUOTE] = ACTIONS(1006), + [anon_sym_SQUOTE] = ACTIONS(1006), + [anon_sym_L_DQUOTE] = ACTIONS(1006), + [anon_sym_u_DQUOTE] = ACTIONS(1006), + [anon_sym_U_DQUOTE] = ACTIONS(1006), + [anon_sym_u8_DQUOTE] = ACTIONS(1006), + [anon_sym_DQUOTE] = ACTIONS(1006), + [sym_true] = ACTIONS(1004), + [sym_false] = ACTIONS(1004), + [sym_null] = ACTIONS(1004), + [sym_comment] = ACTIONS(3), + }, + [200] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(1414), + [sym_attributed_statement] = STATE(1414), + [sym_labeled_statement] = STATE(1414), + [sym_expression_statement] = STATE(1414), + [sym_if_statement] = STATE(1414), + [sym_switch_statement] = STATE(1414), + [sym_case_statement] = STATE(1414), + [sym_while_statement] = STATE(1414), + [sym_do_statement] = STATE(1414), + [sym_for_statement] = STATE(1414), + [sym_return_statement] = STATE(1414), + [sym_break_statement] = STATE(1414), + [sym_continue_statement] = STATE(1414), + [sym_goto_statement] = STATE(1414), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [201] = { + [sym_identifier] = ACTIONS(932), + [aux_sym_preproc_include_token1] = ACTIONS(932), + [aux_sym_preproc_def_token1] = ACTIONS(932), + [aux_sym_preproc_if_token1] = ACTIONS(932), + [aux_sym_preproc_if_token2] = ACTIONS(932), + [aux_sym_preproc_ifdef_token1] = ACTIONS(932), + [aux_sym_preproc_ifdef_token2] = ACTIONS(932), + [sym_preproc_directive] = ACTIONS(932), + [anon_sym_LPAREN2] = ACTIONS(934), + [anon_sym_BANG] = ACTIONS(934), + [anon_sym_TILDE] = ACTIONS(934), + [anon_sym_DASH] = ACTIONS(932), + [anon_sym_PLUS] = ACTIONS(932), + [anon_sym_STAR] = ACTIONS(934), + [anon_sym_AMP] = ACTIONS(934), + [anon_sym_SEMI] = ACTIONS(934), + [anon_sym_typedef] = ACTIONS(932), + [anon_sym_extern] = ACTIONS(932), + [anon_sym___attribute__] = ACTIONS(932), + [anon_sym_LBRACK_LBRACK] = ACTIONS(934), + [anon_sym___declspec] = ACTIONS(932), + [anon_sym___cdecl] = ACTIONS(932), + [anon_sym___clrcall] = ACTIONS(932), + [anon_sym___stdcall] = ACTIONS(932), + [anon_sym___fastcall] = ACTIONS(932), + [anon_sym___thiscall] = ACTIONS(932), + [anon_sym___vectorcall] = ACTIONS(932), + [anon_sym_LBRACE] = ACTIONS(934), + [anon_sym_static] = ACTIONS(932), + [anon_sym_auto] = ACTIONS(932), + [anon_sym_register] = ACTIONS(932), + [anon_sym_inline] = ACTIONS(932), + [anon_sym_const] = ACTIONS(932), + [anon_sym_volatile] = ACTIONS(932), + [anon_sym_restrict] = ACTIONS(932), + [anon_sym__Atomic] = ACTIONS(932), + [anon_sym_signed] = ACTIONS(932), + [anon_sym_unsigned] = ACTIONS(932), + [anon_sym_long] = ACTIONS(932), + [anon_sym_short] = ACTIONS(932), + [sym_primitive_type] = ACTIONS(932), + [anon_sym_enum] = ACTIONS(932), + [anon_sym_struct] = ACTIONS(932), + [anon_sym_union] = ACTIONS(932), + [anon_sym_if] = ACTIONS(932), + [anon_sym_else] = ACTIONS(932), + [anon_sym_switch] = ACTIONS(932), + [anon_sym_case] = ACTIONS(932), + [anon_sym_default] = ACTIONS(932), + [anon_sym_while] = ACTIONS(932), + [anon_sym_do] = ACTIONS(932), + [anon_sym_for] = ACTIONS(932), + [anon_sym_return] = ACTIONS(932), + [anon_sym_break] = ACTIONS(932), + [anon_sym_continue] = ACTIONS(932), + [anon_sym_goto] = ACTIONS(932), + [anon_sym_DASH_DASH] = ACTIONS(934), + [anon_sym_PLUS_PLUS] = ACTIONS(934), + [anon_sym_sizeof] = ACTIONS(932), + [sym_number_literal] = ACTIONS(934), + [anon_sym_L_SQUOTE] = ACTIONS(934), + [anon_sym_u_SQUOTE] = ACTIONS(934), + [anon_sym_U_SQUOTE] = ACTIONS(934), + [anon_sym_u8_SQUOTE] = ACTIONS(934), + [anon_sym_SQUOTE] = ACTIONS(934), + [anon_sym_L_DQUOTE] = ACTIONS(934), + [anon_sym_u_DQUOTE] = ACTIONS(934), + [anon_sym_U_DQUOTE] = ACTIONS(934), + [anon_sym_u8_DQUOTE] = ACTIONS(934), + [anon_sym_DQUOTE] = ACTIONS(934), + [sym_true] = ACTIONS(932), + [sym_false] = ACTIONS(932), + [sym_null] = ACTIONS(932), + [sym_comment] = ACTIONS(3), + }, + [202] = { + [sym_identifier] = ACTIONS(936), + [aux_sym_preproc_include_token1] = ACTIONS(936), + [aux_sym_preproc_def_token1] = ACTIONS(936), + [aux_sym_preproc_if_token1] = ACTIONS(936), + [aux_sym_preproc_if_token2] = ACTIONS(936), + [aux_sym_preproc_ifdef_token1] = ACTIONS(936), + [aux_sym_preproc_ifdef_token2] = ACTIONS(936), + [sym_preproc_directive] = ACTIONS(936), + [anon_sym_LPAREN2] = ACTIONS(938), + [anon_sym_BANG] = ACTIONS(938), + [anon_sym_TILDE] = ACTIONS(938), + [anon_sym_DASH] = ACTIONS(936), + [anon_sym_PLUS] = ACTIONS(936), + [anon_sym_STAR] = ACTIONS(938), + [anon_sym_AMP] = ACTIONS(938), + [anon_sym_SEMI] = ACTIONS(938), + [anon_sym_typedef] = ACTIONS(936), + [anon_sym_extern] = ACTIONS(936), + [anon_sym___attribute__] = ACTIONS(936), + [anon_sym_LBRACK_LBRACK] = ACTIONS(938), + [anon_sym___declspec] = ACTIONS(936), + [anon_sym___cdecl] = ACTIONS(936), + [anon_sym___clrcall] = ACTIONS(936), + [anon_sym___stdcall] = ACTIONS(936), + [anon_sym___fastcall] = ACTIONS(936), + [anon_sym___thiscall] = ACTIONS(936), + [anon_sym___vectorcall] = ACTIONS(936), + [anon_sym_LBRACE] = ACTIONS(938), + [anon_sym_static] = ACTIONS(936), + [anon_sym_auto] = ACTIONS(936), + [anon_sym_register] = ACTIONS(936), + [anon_sym_inline] = ACTIONS(936), + [anon_sym_const] = ACTIONS(936), + [anon_sym_volatile] = ACTIONS(936), + [anon_sym_restrict] = ACTIONS(936), + [anon_sym__Atomic] = ACTIONS(936), + [anon_sym_signed] = ACTIONS(936), + [anon_sym_unsigned] = ACTIONS(936), + [anon_sym_long] = ACTIONS(936), + [anon_sym_short] = ACTIONS(936), + [sym_primitive_type] = ACTIONS(936), + [anon_sym_enum] = ACTIONS(936), + [anon_sym_struct] = ACTIONS(936), + [anon_sym_union] = ACTIONS(936), + [anon_sym_if] = ACTIONS(936), + [anon_sym_else] = ACTIONS(936), + [anon_sym_switch] = ACTIONS(936), + [anon_sym_case] = ACTIONS(936), + [anon_sym_default] = ACTIONS(936), + [anon_sym_while] = ACTIONS(936), + [anon_sym_do] = ACTIONS(936), + [anon_sym_for] = ACTIONS(936), + [anon_sym_return] = ACTIONS(936), + [anon_sym_break] = ACTIONS(936), + [anon_sym_continue] = ACTIONS(936), + [anon_sym_goto] = ACTIONS(936), + [anon_sym_DASH_DASH] = ACTIONS(938), + [anon_sym_PLUS_PLUS] = ACTIONS(938), + [anon_sym_sizeof] = ACTIONS(936), + [sym_number_literal] = ACTIONS(938), + [anon_sym_L_SQUOTE] = ACTIONS(938), + [anon_sym_u_SQUOTE] = ACTIONS(938), + [anon_sym_U_SQUOTE] = ACTIONS(938), + [anon_sym_u8_SQUOTE] = ACTIONS(938), + [anon_sym_SQUOTE] = ACTIONS(938), + [anon_sym_L_DQUOTE] = ACTIONS(938), + [anon_sym_u_DQUOTE] = ACTIONS(938), + [anon_sym_U_DQUOTE] = ACTIONS(938), + [anon_sym_u8_DQUOTE] = ACTIONS(938), + [anon_sym_DQUOTE] = ACTIONS(938), + [sym_true] = ACTIONS(936), + [sym_false] = ACTIONS(936), + [sym_null] = ACTIONS(936), + [sym_comment] = ACTIONS(3), + }, + [203] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(79), + [sym_attributed_statement] = STATE(79), + [sym_labeled_statement] = STATE(79), + [sym_expression_statement] = STATE(79), + [sym_if_statement] = STATE(79), + [sym_switch_statement] = STATE(79), + [sym_case_statement] = STATE(79), + [sym_while_statement] = STATE(79), + [sym_do_statement] = STATE(79), + [sym_for_statement] = STATE(79), + [sym_return_statement] = STATE(79), + [sym_break_statement] = STATE(79), + [sym_continue_statement] = STATE(79), + [sym_goto_statement] = STATE(79), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [204] = { + [ts_builtin_sym_end] = ACTIONS(982), + [sym_identifier] = ACTIONS(980), + [aux_sym_preproc_include_token1] = ACTIONS(980), + [aux_sym_preproc_def_token1] = ACTIONS(980), + [aux_sym_preproc_if_token1] = ACTIONS(980), + [aux_sym_preproc_ifdef_token1] = ACTIONS(980), + [aux_sym_preproc_ifdef_token2] = ACTIONS(980), + [sym_preproc_directive] = ACTIONS(980), + [anon_sym_LPAREN2] = ACTIONS(982), + [anon_sym_BANG] = ACTIONS(982), + [anon_sym_TILDE] = ACTIONS(982), + [anon_sym_DASH] = ACTIONS(980), + [anon_sym_PLUS] = ACTIONS(980), + [anon_sym_STAR] = ACTIONS(982), + [anon_sym_AMP] = ACTIONS(982), + [anon_sym_SEMI] = ACTIONS(982), + [anon_sym_typedef] = ACTIONS(980), + [anon_sym_extern] = ACTIONS(980), + [anon_sym___attribute__] = ACTIONS(980), + [anon_sym_LBRACK_LBRACK] = ACTIONS(982), + [anon_sym___declspec] = ACTIONS(980), + [anon_sym___cdecl] = ACTIONS(980), + [anon_sym___clrcall] = ACTIONS(980), + [anon_sym___stdcall] = ACTIONS(980), + [anon_sym___fastcall] = ACTIONS(980), + [anon_sym___thiscall] = ACTIONS(980), + [anon_sym___vectorcall] = ACTIONS(980), + [anon_sym_LBRACE] = ACTIONS(982), + [anon_sym_static] = ACTIONS(980), + [anon_sym_auto] = ACTIONS(980), + [anon_sym_register] = ACTIONS(980), + [anon_sym_inline] = ACTIONS(980), + [anon_sym_const] = ACTIONS(980), + [anon_sym_volatile] = ACTIONS(980), + [anon_sym_restrict] = ACTIONS(980), + [anon_sym__Atomic] = ACTIONS(980), + [anon_sym_signed] = ACTIONS(980), + [anon_sym_unsigned] = ACTIONS(980), + [anon_sym_long] = ACTIONS(980), + [anon_sym_short] = ACTIONS(980), + [sym_primitive_type] = ACTIONS(980), + [anon_sym_enum] = ACTIONS(980), + [anon_sym_struct] = ACTIONS(980), + [anon_sym_union] = ACTIONS(980), + [anon_sym_if] = ACTIONS(980), + [anon_sym_else] = ACTIONS(980), + [anon_sym_switch] = ACTIONS(980), + [anon_sym_case] = ACTIONS(980), + [anon_sym_default] = ACTIONS(980), + [anon_sym_while] = ACTIONS(980), + [anon_sym_do] = ACTIONS(980), + [anon_sym_for] = ACTIONS(980), + [anon_sym_return] = ACTIONS(980), + [anon_sym_break] = ACTIONS(980), + [anon_sym_continue] = ACTIONS(980), + [anon_sym_goto] = ACTIONS(980), + [anon_sym_DASH_DASH] = ACTIONS(982), + [anon_sym_PLUS_PLUS] = ACTIONS(982), + [anon_sym_sizeof] = ACTIONS(980), + [sym_number_literal] = ACTIONS(982), + [anon_sym_L_SQUOTE] = ACTIONS(982), + [anon_sym_u_SQUOTE] = ACTIONS(982), + [anon_sym_U_SQUOTE] = ACTIONS(982), + [anon_sym_u8_SQUOTE] = ACTIONS(982), + [anon_sym_SQUOTE] = ACTIONS(982), + [anon_sym_L_DQUOTE] = ACTIONS(982), + [anon_sym_u_DQUOTE] = ACTIONS(982), + [anon_sym_U_DQUOTE] = ACTIONS(982), + [anon_sym_u8_DQUOTE] = ACTIONS(982), + [anon_sym_DQUOTE] = ACTIONS(982), + [sym_true] = ACTIONS(980), + [sym_false] = ACTIONS(980), + [sym_null] = ACTIONS(980), + [sym_comment] = ACTIONS(3), + }, + [205] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(211), + [sym_attributed_statement] = STATE(211), + [sym_labeled_statement] = STATE(211), + [sym_expression_statement] = STATE(211), + [sym_if_statement] = STATE(211), + [sym_switch_statement] = STATE(211), + [sym_case_statement] = STATE(211), + [sym_while_statement] = STATE(211), + [sym_do_statement] = STATE(211), + [sym_for_statement] = STATE(211), + [sym_return_statement] = STATE(211), + [sym_break_statement] = STATE(211), + [sym_continue_statement] = STATE(211), + [sym_goto_statement] = STATE(211), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [206] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(217), + [sym_attributed_statement] = STATE(217), + [sym_labeled_statement] = STATE(217), + [sym_expression_statement] = STATE(217), + [sym_if_statement] = STATE(217), + [sym_switch_statement] = STATE(217), + [sym_case_statement] = STATE(217), + [sym_while_statement] = STATE(217), + [sym_do_statement] = STATE(217), + [sym_for_statement] = STATE(217), + [sym_return_statement] = STATE(217), + [sym_break_statement] = STATE(217), + [sym_continue_statement] = STATE(217), + [sym_goto_statement] = STATE(217), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [207] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(145), + [sym_attributed_statement] = STATE(145), + [sym_labeled_statement] = STATE(145), + [sym_expression_statement] = STATE(145), + [sym_if_statement] = STATE(145), + [sym_switch_statement] = STATE(145), + [sym_case_statement] = STATE(145), + [sym_while_statement] = STATE(145), + [sym_do_statement] = STATE(145), + [sym_for_statement] = STATE(145), + [sym_return_statement] = STATE(145), + [sym_break_statement] = STATE(145), + [sym_continue_statement] = STATE(145), + [sym_goto_statement] = STATE(145), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [208] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(218), + [sym_attributed_statement] = STATE(218), + [sym_labeled_statement] = STATE(218), + [sym_expression_statement] = STATE(218), + [sym_if_statement] = STATE(218), + [sym_switch_statement] = STATE(218), + [sym_case_statement] = STATE(218), + [sym_while_statement] = STATE(218), + [sym_do_statement] = STATE(218), + [sym_for_statement] = STATE(218), + [sym_return_statement] = STATE(218), + [sym_break_statement] = STATE(218), + [sym_continue_statement] = STATE(218), + [sym_goto_statement] = STATE(218), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [209] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(223), + [sym_attributed_statement] = STATE(223), + [sym_labeled_statement] = STATE(223), + [sym_expression_statement] = STATE(223), + [sym_if_statement] = STATE(223), + [sym_switch_statement] = STATE(223), + [sym_case_statement] = STATE(223), + [sym_while_statement] = STATE(223), + [sym_do_statement] = STATE(223), + [sym_for_statement] = STATE(223), + [sym_return_statement] = STATE(223), + [sym_break_statement] = STATE(223), + [sym_continue_statement] = STATE(223), + [sym_goto_statement] = STATE(223), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [210] = { + [sym_identifier] = ACTIONS(940), + [aux_sym_preproc_include_token1] = ACTIONS(940), + [aux_sym_preproc_def_token1] = ACTIONS(940), + [aux_sym_preproc_if_token1] = ACTIONS(940), + [aux_sym_preproc_if_token2] = ACTIONS(940), + [aux_sym_preproc_ifdef_token1] = ACTIONS(940), + [aux_sym_preproc_ifdef_token2] = ACTIONS(940), + [sym_preproc_directive] = ACTIONS(940), + [anon_sym_LPAREN2] = ACTIONS(942), + [anon_sym_BANG] = ACTIONS(942), + [anon_sym_TILDE] = ACTIONS(942), + [anon_sym_DASH] = ACTIONS(940), + [anon_sym_PLUS] = ACTIONS(940), + [anon_sym_STAR] = ACTIONS(942), + [anon_sym_AMP] = ACTIONS(942), + [anon_sym_SEMI] = ACTIONS(942), + [anon_sym_typedef] = ACTIONS(940), + [anon_sym_extern] = ACTIONS(940), + [anon_sym___attribute__] = ACTIONS(940), + [anon_sym_LBRACK_LBRACK] = ACTIONS(942), + [anon_sym___declspec] = ACTIONS(940), + [anon_sym___cdecl] = ACTIONS(940), + [anon_sym___clrcall] = ACTIONS(940), + [anon_sym___stdcall] = ACTIONS(940), + [anon_sym___fastcall] = ACTIONS(940), + [anon_sym___thiscall] = ACTIONS(940), + [anon_sym___vectorcall] = ACTIONS(940), + [anon_sym_LBRACE] = ACTIONS(942), + [anon_sym_static] = ACTIONS(940), + [anon_sym_auto] = ACTIONS(940), + [anon_sym_register] = ACTIONS(940), + [anon_sym_inline] = ACTIONS(940), + [anon_sym_const] = ACTIONS(940), + [anon_sym_volatile] = ACTIONS(940), + [anon_sym_restrict] = ACTIONS(940), + [anon_sym__Atomic] = ACTIONS(940), + [anon_sym_signed] = ACTIONS(940), + [anon_sym_unsigned] = ACTIONS(940), + [anon_sym_long] = ACTIONS(940), + [anon_sym_short] = ACTIONS(940), + [sym_primitive_type] = ACTIONS(940), + [anon_sym_enum] = ACTIONS(940), + [anon_sym_struct] = ACTIONS(940), + [anon_sym_union] = ACTIONS(940), + [anon_sym_if] = ACTIONS(940), + [anon_sym_else] = ACTIONS(940), + [anon_sym_switch] = ACTIONS(940), + [anon_sym_case] = ACTIONS(940), + [anon_sym_default] = ACTIONS(940), + [anon_sym_while] = ACTIONS(940), + [anon_sym_do] = ACTIONS(940), + [anon_sym_for] = ACTIONS(940), + [anon_sym_return] = ACTIONS(940), + [anon_sym_break] = ACTIONS(940), + [anon_sym_continue] = ACTIONS(940), + [anon_sym_goto] = ACTIONS(940), + [anon_sym_DASH_DASH] = ACTIONS(942), + [anon_sym_PLUS_PLUS] = ACTIONS(942), + [anon_sym_sizeof] = ACTIONS(940), + [sym_number_literal] = ACTIONS(942), + [anon_sym_L_SQUOTE] = ACTIONS(942), + [anon_sym_u_SQUOTE] = ACTIONS(942), + [anon_sym_U_SQUOTE] = ACTIONS(942), + [anon_sym_u8_SQUOTE] = ACTIONS(942), + [anon_sym_SQUOTE] = ACTIONS(942), + [anon_sym_L_DQUOTE] = ACTIONS(942), + [anon_sym_u_DQUOTE] = ACTIONS(942), + [anon_sym_U_DQUOTE] = ACTIONS(942), + [anon_sym_u8_DQUOTE] = ACTIONS(942), + [anon_sym_DQUOTE] = ACTIONS(942), + [sym_true] = ACTIONS(940), + [sym_false] = ACTIONS(940), + [sym_null] = ACTIONS(940), + [sym_comment] = ACTIONS(3), + }, + [211] = { + [sym_identifier] = ACTIONS(952), + [aux_sym_preproc_include_token1] = ACTIONS(952), + [aux_sym_preproc_def_token1] = ACTIONS(952), + [aux_sym_preproc_if_token1] = ACTIONS(952), + [aux_sym_preproc_if_token2] = ACTIONS(952), + [aux_sym_preproc_ifdef_token1] = ACTIONS(952), + [aux_sym_preproc_ifdef_token2] = ACTIONS(952), + [sym_preproc_directive] = ACTIONS(952), + [anon_sym_LPAREN2] = ACTIONS(954), + [anon_sym_BANG] = ACTIONS(954), + [anon_sym_TILDE] = ACTIONS(954), + [anon_sym_DASH] = ACTIONS(952), + [anon_sym_PLUS] = ACTIONS(952), + [anon_sym_STAR] = ACTIONS(954), + [anon_sym_AMP] = ACTIONS(954), + [anon_sym_SEMI] = ACTIONS(954), + [anon_sym_typedef] = ACTIONS(952), + [anon_sym_extern] = ACTIONS(952), + [anon_sym___attribute__] = ACTIONS(952), + [anon_sym_LBRACK_LBRACK] = ACTIONS(954), + [anon_sym___declspec] = ACTIONS(952), + [anon_sym___cdecl] = ACTIONS(952), + [anon_sym___clrcall] = ACTIONS(952), + [anon_sym___stdcall] = ACTIONS(952), + [anon_sym___fastcall] = ACTIONS(952), + [anon_sym___thiscall] = ACTIONS(952), + [anon_sym___vectorcall] = ACTIONS(952), + [anon_sym_LBRACE] = ACTIONS(954), + [anon_sym_static] = ACTIONS(952), + [anon_sym_auto] = ACTIONS(952), + [anon_sym_register] = ACTIONS(952), + [anon_sym_inline] = ACTIONS(952), + [anon_sym_const] = ACTIONS(952), + [anon_sym_volatile] = ACTIONS(952), + [anon_sym_restrict] = ACTIONS(952), + [anon_sym__Atomic] = ACTIONS(952), + [anon_sym_signed] = ACTIONS(952), + [anon_sym_unsigned] = ACTIONS(952), + [anon_sym_long] = ACTIONS(952), + [anon_sym_short] = ACTIONS(952), + [sym_primitive_type] = ACTIONS(952), + [anon_sym_enum] = ACTIONS(952), + [anon_sym_struct] = ACTIONS(952), + [anon_sym_union] = ACTIONS(952), + [anon_sym_if] = ACTIONS(952), + [anon_sym_else] = ACTIONS(952), + [anon_sym_switch] = ACTIONS(952), + [anon_sym_case] = ACTIONS(952), + [anon_sym_default] = ACTIONS(952), + [anon_sym_while] = ACTIONS(952), + [anon_sym_do] = ACTIONS(952), + [anon_sym_for] = ACTIONS(952), + [anon_sym_return] = ACTIONS(952), + [anon_sym_break] = ACTIONS(952), + [anon_sym_continue] = ACTIONS(952), + [anon_sym_goto] = ACTIONS(952), + [anon_sym_DASH_DASH] = ACTIONS(954), + [anon_sym_PLUS_PLUS] = ACTIONS(954), + [anon_sym_sizeof] = ACTIONS(952), + [sym_number_literal] = ACTIONS(954), + [anon_sym_L_SQUOTE] = ACTIONS(954), + [anon_sym_u_SQUOTE] = ACTIONS(954), + [anon_sym_U_SQUOTE] = ACTIONS(954), + [anon_sym_u8_SQUOTE] = ACTIONS(954), + [anon_sym_SQUOTE] = ACTIONS(954), + [anon_sym_L_DQUOTE] = ACTIONS(954), + [anon_sym_u_DQUOTE] = ACTIONS(954), + [anon_sym_U_DQUOTE] = ACTIONS(954), + [anon_sym_u8_DQUOTE] = ACTIONS(954), + [anon_sym_DQUOTE] = ACTIONS(954), + [sym_true] = ACTIONS(952), + [sym_false] = ACTIONS(952), + [sym_null] = ACTIONS(952), + [sym_comment] = ACTIONS(3), + }, + [212] = { + [ts_builtin_sym_end] = ACTIONS(990), + [sym_identifier] = ACTIONS(988), + [aux_sym_preproc_include_token1] = ACTIONS(988), + [aux_sym_preproc_def_token1] = ACTIONS(988), + [aux_sym_preproc_if_token1] = ACTIONS(988), + [aux_sym_preproc_ifdef_token1] = ACTIONS(988), + [aux_sym_preproc_ifdef_token2] = ACTIONS(988), + [sym_preproc_directive] = ACTIONS(988), + [anon_sym_LPAREN2] = ACTIONS(990), + [anon_sym_BANG] = ACTIONS(990), + [anon_sym_TILDE] = ACTIONS(990), + [anon_sym_DASH] = ACTIONS(988), + [anon_sym_PLUS] = ACTIONS(988), + [anon_sym_STAR] = ACTIONS(990), + [anon_sym_AMP] = ACTIONS(990), + [anon_sym_SEMI] = ACTIONS(990), + [anon_sym_typedef] = ACTIONS(988), + [anon_sym_extern] = ACTIONS(988), + [anon_sym___attribute__] = ACTIONS(988), + [anon_sym_LBRACK_LBRACK] = ACTIONS(990), + [anon_sym___declspec] = ACTIONS(988), + [anon_sym___cdecl] = ACTIONS(988), + [anon_sym___clrcall] = ACTIONS(988), + [anon_sym___stdcall] = ACTIONS(988), + [anon_sym___fastcall] = ACTIONS(988), + [anon_sym___thiscall] = ACTIONS(988), + [anon_sym___vectorcall] = ACTIONS(988), + [anon_sym_LBRACE] = ACTIONS(990), + [anon_sym_static] = ACTIONS(988), + [anon_sym_auto] = ACTIONS(988), + [anon_sym_register] = ACTIONS(988), + [anon_sym_inline] = ACTIONS(988), + [anon_sym_const] = ACTIONS(988), + [anon_sym_volatile] = ACTIONS(988), + [anon_sym_restrict] = ACTIONS(988), + [anon_sym__Atomic] = ACTIONS(988), + [anon_sym_signed] = ACTIONS(988), + [anon_sym_unsigned] = ACTIONS(988), + [anon_sym_long] = ACTIONS(988), + [anon_sym_short] = ACTIONS(988), + [sym_primitive_type] = ACTIONS(988), + [anon_sym_enum] = ACTIONS(988), + [anon_sym_struct] = ACTIONS(988), + [anon_sym_union] = ACTIONS(988), + [anon_sym_if] = ACTIONS(988), + [anon_sym_else] = ACTIONS(988), + [anon_sym_switch] = ACTIONS(988), + [anon_sym_case] = ACTIONS(988), + [anon_sym_default] = ACTIONS(988), + [anon_sym_while] = ACTIONS(988), + [anon_sym_do] = ACTIONS(988), + [anon_sym_for] = ACTIONS(988), + [anon_sym_return] = ACTIONS(988), + [anon_sym_break] = ACTIONS(988), + [anon_sym_continue] = ACTIONS(988), + [anon_sym_goto] = ACTIONS(988), + [anon_sym_DASH_DASH] = ACTIONS(990), + [anon_sym_PLUS_PLUS] = ACTIONS(990), + [anon_sym_sizeof] = ACTIONS(988), + [sym_number_literal] = ACTIONS(990), + [anon_sym_L_SQUOTE] = ACTIONS(990), + [anon_sym_u_SQUOTE] = ACTIONS(990), + [anon_sym_U_SQUOTE] = ACTIONS(990), + [anon_sym_u8_SQUOTE] = ACTIONS(990), + [anon_sym_SQUOTE] = ACTIONS(990), + [anon_sym_L_DQUOTE] = ACTIONS(990), + [anon_sym_u_DQUOTE] = ACTIONS(990), + [anon_sym_U_DQUOTE] = ACTIONS(990), + [anon_sym_u8_DQUOTE] = ACTIONS(990), + [anon_sym_DQUOTE] = ACTIONS(990), + [sym_true] = ACTIONS(988), + [sym_false] = ACTIONS(988), + [sym_null] = ACTIONS(988), + [sym_comment] = ACTIONS(3), + }, + [213] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(283), + [sym_attributed_statement] = STATE(283), + [sym_labeled_statement] = STATE(283), + [sym_expression_statement] = STATE(283), + [sym_if_statement] = STATE(283), + [sym_switch_statement] = STATE(283), + [sym_case_statement] = STATE(283), + [sym_while_statement] = STATE(283), + [sym_do_statement] = STATE(283), + [sym_for_statement] = STATE(283), + [sym_return_statement] = STATE(283), + [sym_break_statement] = STATE(283), + [sym_continue_statement] = STATE(283), + [sym_goto_statement] = STATE(283), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [214] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(226), + [sym_attributed_statement] = STATE(226), + [sym_labeled_statement] = STATE(226), + [sym_expression_statement] = STATE(226), + [sym_if_statement] = STATE(226), + [sym_switch_statement] = STATE(226), + [sym_case_statement] = STATE(226), + [sym_while_statement] = STATE(226), + [sym_do_statement] = STATE(226), + [sym_for_statement] = STATE(226), + [sym_return_statement] = STATE(226), + [sym_break_statement] = STATE(226), + [sym_continue_statement] = STATE(226), + [sym_goto_statement] = STATE(226), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [215] = { + [ts_builtin_sym_end] = ACTIONS(922), + [sym_identifier] = ACTIONS(920), + [aux_sym_preproc_include_token1] = ACTIONS(920), + [aux_sym_preproc_def_token1] = ACTIONS(920), + [aux_sym_preproc_if_token1] = ACTIONS(920), + [aux_sym_preproc_ifdef_token1] = ACTIONS(920), + [aux_sym_preproc_ifdef_token2] = ACTIONS(920), + [sym_preproc_directive] = ACTIONS(920), + [anon_sym_LPAREN2] = ACTIONS(922), + [anon_sym_BANG] = ACTIONS(922), + [anon_sym_TILDE] = ACTIONS(922), + [anon_sym_DASH] = ACTIONS(920), + [anon_sym_PLUS] = ACTIONS(920), + [anon_sym_STAR] = ACTIONS(922), + [anon_sym_AMP] = ACTIONS(922), + [anon_sym_SEMI] = ACTIONS(922), + [anon_sym_typedef] = ACTIONS(920), + [anon_sym_extern] = ACTIONS(920), + [anon_sym___attribute__] = ACTIONS(920), + [anon_sym_LBRACK_LBRACK] = ACTIONS(922), + [anon_sym___declspec] = ACTIONS(920), + [anon_sym___cdecl] = ACTIONS(920), + [anon_sym___clrcall] = ACTIONS(920), + [anon_sym___stdcall] = ACTIONS(920), + [anon_sym___fastcall] = ACTIONS(920), + [anon_sym___thiscall] = ACTIONS(920), + [anon_sym___vectorcall] = ACTIONS(920), + [anon_sym_LBRACE] = ACTIONS(922), + [anon_sym_static] = ACTIONS(920), + [anon_sym_auto] = ACTIONS(920), + [anon_sym_register] = ACTIONS(920), + [anon_sym_inline] = ACTIONS(920), + [anon_sym_const] = ACTIONS(920), + [anon_sym_volatile] = ACTIONS(920), + [anon_sym_restrict] = ACTIONS(920), + [anon_sym__Atomic] = ACTIONS(920), + [anon_sym_signed] = ACTIONS(920), + [anon_sym_unsigned] = ACTIONS(920), + [anon_sym_long] = ACTIONS(920), + [anon_sym_short] = ACTIONS(920), + [sym_primitive_type] = ACTIONS(920), + [anon_sym_enum] = ACTIONS(920), + [anon_sym_struct] = ACTIONS(920), + [anon_sym_union] = ACTIONS(920), + [anon_sym_if] = ACTIONS(920), + [anon_sym_else] = ACTIONS(920), + [anon_sym_switch] = ACTIONS(920), + [anon_sym_case] = ACTIONS(920), + [anon_sym_default] = ACTIONS(920), + [anon_sym_while] = ACTIONS(920), + [anon_sym_do] = ACTIONS(920), + [anon_sym_for] = ACTIONS(920), + [anon_sym_return] = ACTIONS(920), + [anon_sym_break] = ACTIONS(920), + [anon_sym_continue] = ACTIONS(920), + [anon_sym_goto] = ACTIONS(920), + [anon_sym_DASH_DASH] = ACTIONS(922), + [anon_sym_PLUS_PLUS] = ACTIONS(922), + [anon_sym_sizeof] = ACTIONS(920), + [sym_number_literal] = ACTIONS(922), + [anon_sym_L_SQUOTE] = ACTIONS(922), + [anon_sym_u_SQUOTE] = ACTIONS(922), + [anon_sym_U_SQUOTE] = ACTIONS(922), + [anon_sym_u8_SQUOTE] = ACTIONS(922), + [anon_sym_SQUOTE] = ACTIONS(922), + [anon_sym_L_DQUOTE] = ACTIONS(922), + [anon_sym_u_DQUOTE] = ACTIONS(922), + [anon_sym_U_DQUOTE] = ACTIONS(922), + [anon_sym_u8_DQUOTE] = ACTIONS(922), + [anon_sym_DQUOTE] = ACTIONS(922), + [sym_true] = ACTIONS(920), + [sym_false] = ACTIONS(920), + [sym_null] = ACTIONS(920), + [sym_comment] = ACTIONS(3), + }, + [216] = { + [ts_builtin_sym_end] = ACTIONS(994), + [sym_identifier] = ACTIONS(992), + [aux_sym_preproc_include_token1] = ACTIONS(992), + [aux_sym_preproc_def_token1] = ACTIONS(992), + [aux_sym_preproc_if_token1] = ACTIONS(992), + [aux_sym_preproc_ifdef_token1] = ACTIONS(992), + [aux_sym_preproc_ifdef_token2] = ACTIONS(992), + [sym_preproc_directive] = ACTIONS(992), + [anon_sym_LPAREN2] = ACTIONS(994), + [anon_sym_BANG] = ACTIONS(994), + [anon_sym_TILDE] = ACTIONS(994), + [anon_sym_DASH] = ACTIONS(992), + [anon_sym_PLUS] = ACTIONS(992), + [anon_sym_STAR] = ACTIONS(994), + [anon_sym_AMP] = ACTIONS(994), + [anon_sym_SEMI] = ACTIONS(994), + [anon_sym_typedef] = ACTIONS(992), + [anon_sym_extern] = ACTIONS(992), + [anon_sym___attribute__] = ACTIONS(992), + [anon_sym_LBRACK_LBRACK] = ACTIONS(994), + [anon_sym___declspec] = ACTIONS(992), + [anon_sym___cdecl] = ACTIONS(992), + [anon_sym___clrcall] = ACTIONS(992), + [anon_sym___stdcall] = ACTIONS(992), + [anon_sym___fastcall] = ACTIONS(992), + [anon_sym___thiscall] = ACTIONS(992), + [anon_sym___vectorcall] = ACTIONS(992), + [anon_sym_LBRACE] = ACTIONS(994), + [anon_sym_static] = ACTIONS(992), + [anon_sym_auto] = ACTIONS(992), + [anon_sym_register] = ACTIONS(992), + [anon_sym_inline] = ACTIONS(992), + [anon_sym_const] = ACTIONS(992), + [anon_sym_volatile] = ACTIONS(992), + [anon_sym_restrict] = ACTIONS(992), + [anon_sym__Atomic] = ACTIONS(992), + [anon_sym_signed] = ACTIONS(992), + [anon_sym_unsigned] = ACTIONS(992), + [anon_sym_long] = ACTIONS(992), + [anon_sym_short] = ACTIONS(992), + [sym_primitive_type] = ACTIONS(992), + [anon_sym_enum] = ACTIONS(992), + [anon_sym_struct] = ACTIONS(992), + [anon_sym_union] = ACTIONS(992), + [anon_sym_if] = ACTIONS(992), + [anon_sym_else] = ACTIONS(992), + [anon_sym_switch] = ACTIONS(992), + [anon_sym_case] = ACTIONS(992), + [anon_sym_default] = ACTIONS(992), + [anon_sym_while] = ACTIONS(992), + [anon_sym_do] = ACTIONS(992), + [anon_sym_for] = ACTIONS(992), + [anon_sym_return] = ACTIONS(992), + [anon_sym_break] = ACTIONS(992), + [anon_sym_continue] = ACTIONS(992), + [anon_sym_goto] = ACTIONS(992), + [anon_sym_DASH_DASH] = ACTIONS(994), + [anon_sym_PLUS_PLUS] = ACTIONS(994), + [anon_sym_sizeof] = ACTIONS(992), + [sym_number_literal] = ACTIONS(994), + [anon_sym_L_SQUOTE] = ACTIONS(994), + [anon_sym_u_SQUOTE] = ACTIONS(994), + [anon_sym_U_SQUOTE] = ACTIONS(994), + [anon_sym_u8_SQUOTE] = ACTIONS(994), + [anon_sym_SQUOTE] = ACTIONS(994), + [anon_sym_L_DQUOTE] = ACTIONS(994), + [anon_sym_u_DQUOTE] = ACTIONS(994), + [anon_sym_U_DQUOTE] = ACTIONS(994), + [anon_sym_u8_DQUOTE] = ACTIONS(994), + [anon_sym_DQUOTE] = ACTIONS(994), + [sym_true] = ACTIONS(992), + [sym_false] = ACTIONS(992), + [sym_null] = ACTIONS(992), + [sym_comment] = ACTIONS(3), + }, + [217] = { + [sym_identifier] = ACTIONS(894), + [aux_sym_preproc_include_token1] = ACTIONS(894), + [aux_sym_preproc_def_token1] = ACTIONS(894), + [aux_sym_preproc_if_token1] = ACTIONS(894), + [aux_sym_preproc_if_token2] = ACTIONS(894), + [aux_sym_preproc_ifdef_token1] = ACTIONS(894), + [aux_sym_preproc_ifdef_token2] = ACTIONS(894), + [sym_preproc_directive] = ACTIONS(894), + [anon_sym_LPAREN2] = ACTIONS(896), + [anon_sym_BANG] = ACTIONS(896), + [anon_sym_TILDE] = ACTIONS(896), + [anon_sym_DASH] = ACTIONS(894), + [anon_sym_PLUS] = ACTIONS(894), + [anon_sym_STAR] = ACTIONS(896), + [anon_sym_AMP] = ACTIONS(896), + [anon_sym_SEMI] = ACTIONS(896), + [anon_sym_typedef] = ACTIONS(894), + [anon_sym_extern] = ACTIONS(894), + [anon_sym___attribute__] = ACTIONS(894), + [anon_sym_LBRACK_LBRACK] = ACTIONS(896), + [anon_sym___declspec] = ACTIONS(894), + [anon_sym___cdecl] = ACTIONS(894), + [anon_sym___clrcall] = ACTIONS(894), + [anon_sym___stdcall] = ACTIONS(894), + [anon_sym___fastcall] = ACTIONS(894), + [anon_sym___thiscall] = ACTIONS(894), + [anon_sym___vectorcall] = ACTIONS(894), + [anon_sym_LBRACE] = ACTIONS(896), + [anon_sym_static] = ACTIONS(894), + [anon_sym_auto] = ACTIONS(894), + [anon_sym_register] = ACTIONS(894), + [anon_sym_inline] = ACTIONS(894), + [anon_sym_const] = ACTIONS(894), + [anon_sym_volatile] = ACTIONS(894), + [anon_sym_restrict] = ACTIONS(894), + [anon_sym__Atomic] = ACTIONS(894), + [anon_sym_signed] = ACTIONS(894), + [anon_sym_unsigned] = ACTIONS(894), + [anon_sym_long] = ACTIONS(894), + [anon_sym_short] = ACTIONS(894), + [sym_primitive_type] = ACTIONS(894), + [anon_sym_enum] = ACTIONS(894), + [anon_sym_struct] = ACTIONS(894), + [anon_sym_union] = ACTIONS(894), + [anon_sym_if] = ACTIONS(894), + [anon_sym_else] = ACTIONS(894), + [anon_sym_switch] = ACTIONS(894), + [anon_sym_case] = ACTIONS(894), + [anon_sym_default] = ACTIONS(894), + [anon_sym_while] = ACTIONS(894), + [anon_sym_do] = ACTIONS(894), + [anon_sym_for] = ACTIONS(894), + [anon_sym_return] = ACTIONS(894), + [anon_sym_break] = ACTIONS(894), + [anon_sym_continue] = ACTIONS(894), + [anon_sym_goto] = ACTIONS(894), + [anon_sym_DASH_DASH] = ACTIONS(896), + [anon_sym_PLUS_PLUS] = ACTIONS(896), + [anon_sym_sizeof] = ACTIONS(894), + [sym_number_literal] = ACTIONS(896), + [anon_sym_L_SQUOTE] = ACTIONS(896), + [anon_sym_u_SQUOTE] = ACTIONS(896), + [anon_sym_U_SQUOTE] = ACTIONS(896), + [anon_sym_u8_SQUOTE] = ACTIONS(896), + [anon_sym_SQUOTE] = ACTIONS(896), + [anon_sym_L_DQUOTE] = ACTIONS(896), + [anon_sym_u_DQUOTE] = ACTIONS(896), + [anon_sym_U_DQUOTE] = ACTIONS(896), + [anon_sym_u8_DQUOTE] = ACTIONS(896), + [anon_sym_DQUOTE] = ACTIONS(896), + [sym_true] = ACTIONS(894), + [sym_false] = ACTIONS(894), + [sym_null] = ACTIONS(894), + [sym_comment] = ACTIONS(3), + }, + [218] = { + [ts_builtin_sym_end] = ACTIONS(998), + [sym_identifier] = ACTIONS(996), + [aux_sym_preproc_include_token1] = ACTIONS(996), + [aux_sym_preproc_def_token1] = ACTIONS(996), + [aux_sym_preproc_if_token1] = ACTIONS(996), + [aux_sym_preproc_ifdef_token1] = ACTIONS(996), + [aux_sym_preproc_ifdef_token2] = ACTIONS(996), + [sym_preproc_directive] = ACTIONS(996), + [anon_sym_LPAREN2] = ACTIONS(998), + [anon_sym_BANG] = ACTIONS(998), + [anon_sym_TILDE] = ACTIONS(998), + [anon_sym_DASH] = ACTIONS(996), + [anon_sym_PLUS] = ACTIONS(996), + [anon_sym_STAR] = ACTIONS(998), + [anon_sym_AMP] = ACTIONS(998), + [anon_sym_SEMI] = ACTIONS(998), + [anon_sym_typedef] = ACTIONS(996), + [anon_sym_extern] = ACTIONS(996), + [anon_sym___attribute__] = ACTIONS(996), + [anon_sym_LBRACK_LBRACK] = ACTIONS(998), + [anon_sym___declspec] = ACTIONS(996), + [anon_sym___cdecl] = ACTIONS(996), + [anon_sym___clrcall] = ACTIONS(996), + [anon_sym___stdcall] = ACTIONS(996), + [anon_sym___fastcall] = ACTIONS(996), + [anon_sym___thiscall] = ACTIONS(996), + [anon_sym___vectorcall] = ACTIONS(996), + [anon_sym_LBRACE] = ACTIONS(998), + [anon_sym_static] = ACTIONS(996), + [anon_sym_auto] = ACTIONS(996), + [anon_sym_register] = ACTIONS(996), + [anon_sym_inline] = ACTIONS(996), + [anon_sym_const] = ACTIONS(996), + [anon_sym_volatile] = ACTIONS(996), + [anon_sym_restrict] = ACTIONS(996), + [anon_sym__Atomic] = ACTIONS(996), + [anon_sym_signed] = ACTIONS(996), + [anon_sym_unsigned] = ACTIONS(996), + [anon_sym_long] = ACTIONS(996), + [anon_sym_short] = ACTIONS(996), + [sym_primitive_type] = ACTIONS(996), + [anon_sym_enum] = ACTIONS(996), + [anon_sym_struct] = ACTIONS(996), + [anon_sym_union] = ACTIONS(996), + [anon_sym_if] = ACTIONS(996), + [anon_sym_else] = ACTIONS(996), + [anon_sym_switch] = ACTIONS(996), + [anon_sym_case] = ACTIONS(996), + [anon_sym_default] = ACTIONS(996), + [anon_sym_while] = ACTIONS(996), + [anon_sym_do] = ACTIONS(996), + [anon_sym_for] = ACTIONS(996), + [anon_sym_return] = ACTIONS(996), + [anon_sym_break] = ACTIONS(996), + [anon_sym_continue] = ACTIONS(996), + [anon_sym_goto] = ACTIONS(996), + [anon_sym_DASH_DASH] = ACTIONS(998), + [anon_sym_PLUS_PLUS] = ACTIONS(998), + [anon_sym_sizeof] = ACTIONS(996), + [sym_number_literal] = ACTIONS(998), + [anon_sym_L_SQUOTE] = ACTIONS(998), + [anon_sym_u_SQUOTE] = ACTIONS(998), + [anon_sym_U_SQUOTE] = ACTIONS(998), + [anon_sym_u8_SQUOTE] = ACTIONS(998), + [anon_sym_SQUOTE] = ACTIONS(998), + [anon_sym_L_DQUOTE] = ACTIONS(998), + [anon_sym_u_DQUOTE] = ACTIONS(998), + [anon_sym_U_DQUOTE] = ACTIONS(998), + [anon_sym_u8_DQUOTE] = ACTIONS(998), + [anon_sym_DQUOTE] = ACTIONS(998), + [sym_true] = ACTIONS(996), + [sym_false] = ACTIONS(996), + [sym_null] = ACTIONS(996), + [sym_comment] = ACTIONS(3), + }, + [219] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(231), + [sym_attributed_statement] = STATE(231), + [sym_labeled_statement] = STATE(231), + [sym_expression_statement] = STATE(231), + [sym_if_statement] = STATE(231), + [sym_switch_statement] = STATE(231), + [sym_case_statement] = STATE(231), + [sym_while_statement] = STATE(231), + [sym_do_statement] = STATE(231), + [sym_for_statement] = STATE(231), + [sym_return_statement] = STATE(231), + [sym_break_statement] = STATE(231), + [sym_continue_statement] = STATE(231), + [sym_goto_statement] = STATE(231), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [220] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(235), + [sym_attributed_statement] = STATE(235), + [sym_labeled_statement] = STATE(235), + [sym_expression_statement] = STATE(235), + [sym_if_statement] = STATE(235), + [sym_switch_statement] = STATE(235), + [sym_case_statement] = STATE(235), + [sym_while_statement] = STATE(235), + [sym_do_statement] = STATE(235), + [sym_for_statement] = STATE(235), + [sym_return_statement] = STATE(235), + [sym_break_statement] = STATE(235), + [sym_continue_statement] = STATE(235), + [sym_goto_statement] = STATE(235), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [221] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(241), + [sym_attributed_statement] = STATE(241), + [sym_labeled_statement] = STATE(241), + [sym_expression_statement] = STATE(241), + [sym_if_statement] = STATE(241), + [sym_switch_statement] = STATE(241), + [sym_case_statement] = STATE(241), + [sym_while_statement] = STATE(241), + [sym_do_statement] = STATE(241), + [sym_for_statement] = STATE(241), + [sym_return_statement] = STATE(241), + [sym_break_statement] = STATE(241), + [sym_continue_statement] = STATE(241), + [sym_goto_statement] = STATE(241), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [222] = { + [sym_identifier] = ACTIONS(928), + [aux_sym_preproc_include_token1] = ACTIONS(928), + [aux_sym_preproc_def_token1] = ACTIONS(928), + [aux_sym_preproc_if_token1] = ACTIONS(928), + [aux_sym_preproc_ifdef_token1] = ACTIONS(928), + [aux_sym_preproc_ifdef_token2] = ACTIONS(928), + [sym_preproc_directive] = ACTIONS(928), + [anon_sym_LPAREN2] = ACTIONS(930), + [anon_sym_BANG] = ACTIONS(930), + [anon_sym_TILDE] = ACTIONS(930), + [anon_sym_DASH] = ACTIONS(928), + [anon_sym_PLUS] = ACTIONS(928), + [anon_sym_STAR] = ACTIONS(930), + [anon_sym_AMP] = ACTIONS(930), + [anon_sym_SEMI] = ACTIONS(930), + [anon_sym_typedef] = ACTIONS(928), + [anon_sym_extern] = ACTIONS(928), + [anon_sym___attribute__] = ACTIONS(928), + [anon_sym_LBRACK_LBRACK] = ACTIONS(930), + [anon_sym___declspec] = ACTIONS(928), + [anon_sym___cdecl] = ACTIONS(928), + [anon_sym___clrcall] = ACTIONS(928), + [anon_sym___stdcall] = ACTIONS(928), + [anon_sym___fastcall] = ACTIONS(928), + [anon_sym___thiscall] = ACTIONS(928), + [anon_sym___vectorcall] = ACTIONS(928), + [anon_sym_LBRACE] = ACTIONS(930), + [anon_sym_RBRACE] = ACTIONS(930), + [anon_sym_static] = ACTIONS(928), + [anon_sym_auto] = ACTIONS(928), + [anon_sym_register] = ACTIONS(928), + [anon_sym_inline] = ACTIONS(928), + [anon_sym_const] = ACTIONS(928), + [anon_sym_volatile] = ACTIONS(928), + [anon_sym_restrict] = ACTIONS(928), + [anon_sym__Atomic] = ACTIONS(928), + [anon_sym_signed] = ACTIONS(928), + [anon_sym_unsigned] = ACTIONS(928), + [anon_sym_long] = ACTIONS(928), + [anon_sym_short] = ACTIONS(928), + [sym_primitive_type] = ACTIONS(928), + [anon_sym_enum] = ACTIONS(928), + [anon_sym_struct] = ACTIONS(928), + [anon_sym_union] = ACTIONS(928), + [anon_sym_if] = ACTIONS(928), + [anon_sym_else] = ACTIONS(928), + [anon_sym_switch] = ACTIONS(928), + [anon_sym_case] = ACTIONS(928), + [anon_sym_default] = ACTIONS(928), + [anon_sym_while] = ACTIONS(928), + [anon_sym_do] = ACTIONS(928), + [anon_sym_for] = ACTIONS(928), + [anon_sym_return] = ACTIONS(928), + [anon_sym_break] = ACTIONS(928), + [anon_sym_continue] = ACTIONS(928), + [anon_sym_goto] = ACTIONS(928), + [anon_sym_DASH_DASH] = ACTIONS(930), + [anon_sym_PLUS_PLUS] = ACTIONS(930), + [anon_sym_sizeof] = ACTIONS(928), + [sym_number_literal] = ACTIONS(930), + [anon_sym_L_SQUOTE] = ACTIONS(930), + [anon_sym_u_SQUOTE] = ACTIONS(930), + [anon_sym_U_SQUOTE] = ACTIONS(930), + [anon_sym_u8_SQUOTE] = ACTIONS(930), + [anon_sym_SQUOTE] = ACTIONS(930), + [anon_sym_L_DQUOTE] = ACTIONS(930), + [anon_sym_u_DQUOTE] = ACTIONS(930), + [anon_sym_U_DQUOTE] = ACTIONS(930), + [anon_sym_u8_DQUOTE] = ACTIONS(930), + [anon_sym_DQUOTE] = ACTIONS(930), + [sym_true] = ACTIONS(928), + [sym_false] = ACTIONS(928), + [sym_null] = ACTIONS(928), + [sym_comment] = ACTIONS(3), + }, + [223] = { + [ts_builtin_sym_end] = ACTIONS(1006), + [sym_identifier] = ACTIONS(1004), + [aux_sym_preproc_include_token1] = ACTIONS(1004), + [aux_sym_preproc_def_token1] = ACTIONS(1004), + [aux_sym_preproc_if_token1] = ACTIONS(1004), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1004), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1004), + [sym_preproc_directive] = ACTIONS(1004), + [anon_sym_LPAREN2] = ACTIONS(1006), + [anon_sym_BANG] = ACTIONS(1006), + [anon_sym_TILDE] = ACTIONS(1006), + [anon_sym_DASH] = ACTIONS(1004), + [anon_sym_PLUS] = ACTIONS(1004), + [anon_sym_STAR] = ACTIONS(1006), + [anon_sym_AMP] = ACTIONS(1006), + [anon_sym_SEMI] = ACTIONS(1006), + [anon_sym_typedef] = ACTIONS(1004), + [anon_sym_extern] = ACTIONS(1004), + [anon_sym___attribute__] = ACTIONS(1004), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1006), + [anon_sym___declspec] = ACTIONS(1004), + [anon_sym___cdecl] = ACTIONS(1004), + [anon_sym___clrcall] = ACTIONS(1004), + [anon_sym___stdcall] = ACTIONS(1004), + [anon_sym___fastcall] = ACTIONS(1004), + [anon_sym___thiscall] = ACTIONS(1004), + [anon_sym___vectorcall] = ACTIONS(1004), + [anon_sym_LBRACE] = ACTIONS(1006), + [anon_sym_static] = ACTIONS(1004), + [anon_sym_auto] = ACTIONS(1004), + [anon_sym_register] = ACTIONS(1004), + [anon_sym_inline] = ACTIONS(1004), + [anon_sym_const] = ACTIONS(1004), + [anon_sym_volatile] = ACTIONS(1004), + [anon_sym_restrict] = ACTIONS(1004), + [anon_sym__Atomic] = ACTIONS(1004), + [anon_sym_signed] = ACTIONS(1004), + [anon_sym_unsigned] = ACTIONS(1004), + [anon_sym_long] = ACTIONS(1004), + [anon_sym_short] = ACTIONS(1004), + [sym_primitive_type] = ACTIONS(1004), + [anon_sym_enum] = ACTIONS(1004), + [anon_sym_struct] = ACTIONS(1004), + [anon_sym_union] = ACTIONS(1004), + [anon_sym_if] = ACTIONS(1004), + [anon_sym_else] = ACTIONS(1004), + [anon_sym_switch] = ACTIONS(1004), + [anon_sym_case] = ACTIONS(1004), + [anon_sym_default] = ACTIONS(1004), + [anon_sym_while] = ACTIONS(1004), + [anon_sym_do] = ACTIONS(1004), + [anon_sym_for] = ACTIONS(1004), + [anon_sym_return] = ACTIONS(1004), + [anon_sym_break] = ACTIONS(1004), + [anon_sym_continue] = ACTIONS(1004), + [anon_sym_goto] = ACTIONS(1004), + [anon_sym_DASH_DASH] = ACTIONS(1006), + [anon_sym_PLUS_PLUS] = ACTIONS(1006), + [anon_sym_sizeof] = ACTIONS(1004), + [sym_number_literal] = ACTIONS(1006), + [anon_sym_L_SQUOTE] = ACTIONS(1006), + [anon_sym_u_SQUOTE] = ACTIONS(1006), + [anon_sym_U_SQUOTE] = ACTIONS(1006), + [anon_sym_u8_SQUOTE] = ACTIONS(1006), + [anon_sym_SQUOTE] = ACTIONS(1006), + [anon_sym_L_DQUOTE] = ACTIONS(1006), + [anon_sym_u_DQUOTE] = ACTIONS(1006), + [anon_sym_U_DQUOTE] = ACTIONS(1006), + [anon_sym_u8_DQUOTE] = ACTIONS(1006), + [anon_sym_DQUOTE] = ACTIONS(1006), + [sym_true] = ACTIONS(1004), + [sym_false] = ACTIONS(1004), + [sym_null] = ACTIONS(1004), + [sym_comment] = ACTIONS(3), + }, + [224] = { + [sym_attribute_declaration] = STATE(232), + [sym_compound_statement] = STATE(230), + [sym_attributed_statement] = STATE(230), + [sym_labeled_statement] = STATE(230), + [sym_expression_statement] = STATE(230), + [sym_if_statement] = STATE(230), + [sym_switch_statement] = STATE(230), + [sym_case_statement] = STATE(230), + [sym_while_statement] = STATE(230), + [sym_do_statement] = STATE(230), + [sym_for_statement] = STATE(230), + [sym_return_statement] = STATE(230), + [sym_break_statement] = STATE(230), + [sym_continue_statement] = STATE(230), + [sym_goto_statement] = STATE(230), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(232), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [225] = { + [sym_attribute_declaration] = STATE(225), + [sym_compound_statement] = STATE(82), + [sym_attributed_statement] = STATE(82), + [sym_labeled_statement] = STATE(82), + [sym_expression_statement] = STATE(82), + [sym_if_statement] = STATE(82), + [sym_switch_statement] = STATE(82), + [sym_case_statement] = STATE(82), + [sym_while_statement] = STATE(82), + [sym_do_statement] = STATE(82), + [sym_for_statement] = STATE(82), + [sym_return_statement] = STATE(82), + [sym_break_statement] = STATE(82), + [sym_continue_statement] = STATE(82), + [sym_goto_statement] = STATE(82), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(225), + [sym_identifier] = ACTIONS(1253), + [anon_sym_LPAREN2] = ACTIONS(1135), + [anon_sym_BANG] = ACTIONS(1138), + [anon_sym_TILDE] = ACTIONS(1138), + [anon_sym_DASH] = ACTIONS(1141), + [anon_sym_PLUS] = ACTIONS(1141), + [anon_sym_STAR] = ACTIONS(1144), + [anon_sym_AMP] = ACTIONS(1144), + [anon_sym_SEMI] = ACTIONS(1256), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1150), + [anon_sym_LBRACE] = ACTIONS(1259), + [anon_sym_if] = ACTIONS(1262), + [anon_sym_switch] = ACTIONS(1265), + [anon_sym_case] = ACTIONS(1268), + [anon_sym_default] = ACTIONS(1271), + [anon_sym_while] = ACTIONS(1274), + [anon_sym_do] = ACTIONS(1277), + [anon_sym_for] = ACTIONS(1280), + [anon_sym_return] = ACTIONS(1283), + [anon_sym_break] = ACTIONS(1286), + [anon_sym_continue] = ACTIONS(1289), + [anon_sym_goto] = ACTIONS(1292), + [anon_sym_DASH_DASH] = ACTIONS(1189), + [anon_sym_PLUS_PLUS] = ACTIONS(1189), + [anon_sym_sizeof] = ACTIONS(1192), + [sym_number_literal] = ACTIONS(1195), + [anon_sym_L_SQUOTE] = ACTIONS(1198), + [anon_sym_u_SQUOTE] = ACTIONS(1198), + [anon_sym_U_SQUOTE] = ACTIONS(1198), + [anon_sym_u8_SQUOTE] = ACTIONS(1198), + [anon_sym_SQUOTE] = ACTIONS(1198), + [anon_sym_L_DQUOTE] = ACTIONS(1201), + [anon_sym_u_DQUOTE] = ACTIONS(1201), + [anon_sym_U_DQUOTE] = ACTIONS(1201), + [anon_sym_u8_DQUOTE] = ACTIONS(1201), + [anon_sym_DQUOTE] = ACTIONS(1201), + [sym_true] = ACTIONS(1204), + [sym_false] = ACTIONS(1204), + [sym_null] = ACTIONS(1204), + [sym_comment] = ACTIONS(3), + }, + [226] = { + [sym_identifier] = ACTIONS(968), + [aux_sym_preproc_include_token1] = ACTIONS(968), + [aux_sym_preproc_def_token1] = ACTIONS(968), + [aux_sym_preproc_if_token1] = ACTIONS(968), + [aux_sym_preproc_if_token2] = ACTIONS(968), + [aux_sym_preproc_ifdef_token1] = ACTIONS(968), + [aux_sym_preproc_ifdef_token2] = ACTIONS(968), + [sym_preproc_directive] = ACTIONS(968), + [anon_sym_LPAREN2] = ACTIONS(970), + [anon_sym_BANG] = ACTIONS(970), + [anon_sym_TILDE] = ACTIONS(970), + [anon_sym_DASH] = ACTIONS(968), + [anon_sym_PLUS] = ACTIONS(968), + [anon_sym_STAR] = ACTIONS(970), + [anon_sym_AMP] = ACTIONS(970), + [anon_sym_SEMI] = ACTIONS(970), + [anon_sym_typedef] = ACTIONS(968), + [anon_sym_extern] = ACTIONS(968), + [anon_sym___attribute__] = ACTIONS(968), + [anon_sym_LBRACK_LBRACK] = ACTIONS(970), + [anon_sym___declspec] = ACTIONS(968), + [anon_sym___cdecl] = ACTIONS(968), + [anon_sym___clrcall] = ACTIONS(968), + [anon_sym___stdcall] = ACTIONS(968), + [anon_sym___fastcall] = ACTIONS(968), + [anon_sym___thiscall] = ACTIONS(968), + [anon_sym___vectorcall] = ACTIONS(968), + [anon_sym_LBRACE] = ACTIONS(970), + [anon_sym_static] = ACTIONS(968), + [anon_sym_auto] = ACTIONS(968), + [anon_sym_register] = ACTIONS(968), + [anon_sym_inline] = ACTIONS(968), + [anon_sym_const] = ACTIONS(968), + [anon_sym_volatile] = ACTIONS(968), + [anon_sym_restrict] = ACTIONS(968), + [anon_sym__Atomic] = ACTIONS(968), + [anon_sym_signed] = ACTIONS(968), + [anon_sym_unsigned] = ACTIONS(968), + [anon_sym_long] = ACTIONS(968), + [anon_sym_short] = ACTIONS(968), + [sym_primitive_type] = ACTIONS(968), + [anon_sym_enum] = ACTIONS(968), + [anon_sym_struct] = ACTIONS(968), + [anon_sym_union] = ACTIONS(968), + [anon_sym_if] = ACTIONS(968), + [anon_sym_else] = ACTIONS(968), + [anon_sym_switch] = ACTIONS(968), + [anon_sym_case] = ACTIONS(968), + [anon_sym_default] = ACTIONS(968), + [anon_sym_while] = ACTIONS(968), + [anon_sym_do] = ACTIONS(968), + [anon_sym_for] = ACTIONS(968), + [anon_sym_return] = ACTIONS(968), + [anon_sym_break] = ACTIONS(968), + [anon_sym_continue] = ACTIONS(968), + [anon_sym_goto] = ACTIONS(968), + [anon_sym_DASH_DASH] = ACTIONS(970), + [anon_sym_PLUS_PLUS] = ACTIONS(970), + [anon_sym_sizeof] = ACTIONS(968), + [sym_number_literal] = ACTIONS(970), + [anon_sym_L_SQUOTE] = ACTIONS(970), + [anon_sym_u_SQUOTE] = ACTIONS(970), + [anon_sym_U_SQUOTE] = ACTIONS(970), + [anon_sym_u8_SQUOTE] = ACTIONS(970), + [anon_sym_SQUOTE] = ACTIONS(970), + [anon_sym_L_DQUOTE] = ACTIONS(970), + [anon_sym_u_DQUOTE] = ACTIONS(970), + [anon_sym_U_DQUOTE] = ACTIONS(970), + [anon_sym_u8_DQUOTE] = ACTIONS(970), + [anon_sym_DQUOTE] = ACTIONS(970), + [sym_true] = ACTIONS(968), + [sym_false] = ACTIONS(968), + [sym_null] = ACTIONS(968), + [sym_comment] = ACTIONS(3), + }, + [227] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(296), + [sym_attributed_statement] = STATE(296), + [sym_labeled_statement] = STATE(296), + [sym_expression_statement] = STATE(296), + [sym_if_statement] = STATE(296), + [sym_switch_statement] = STATE(296), + [sym_case_statement] = STATE(296), + [sym_while_statement] = STATE(296), + [sym_do_statement] = STATE(296), + [sym_for_statement] = STATE(296), + [sym_return_statement] = STATE(296), + [sym_break_statement] = STATE(296), + [sym_continue_statement] = STATE(296), + [sym_goto_statement] = STATE(296), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [228] = { + [ts_builtin_sym_end] = ACTIONS(916), + [sym_identifier] = ACTIONS(914), + [aux_sym_preproc_include_token1] = ACTIONS(914), + [aux_sym_preproc_def_token1] = ACTIONS(914), + [aux_sym_preproc_if_token1] = ACTIONS(914), + [aux_sym_preproc_ifdef_token1] = ACTIONS(914), + [aux_sym_preproc_ifdef_token2] = ACTIONS(914), + [sym_preproc_directive] = ACTIONS(914), + [anon_sym_LPAREN2] = ACTIONS(916), + [anon_sym_BANG] = ACTIONS(916), + [anon_sym_TILDE] = ACTIONS(916), + [anon_sym_DASH] = ACTIONS(914), + [anon_sym_PLUS] = ACTIONS(914), + [anon_sym_STAR] = ACTIONS(916), + [anon_sym_AMP] = ACTIONS(916), + [anon_sym_SEMI] = ACTIONS(916), + [anon_sym_typedef] = ACTIONS(914), + [anon_sym_extern] = ACTIONS(914), + [anon_sym___attribute__] = ACTIONS(914), + [anon_sym_LBRACK_LBRACK] = ACTIONS(916), + [anon_sym___declspec] = ACTIONS(914), + [anon_sym___cdecl] = ACTIONS(914), + [anon_sym___clrcall] = ACTIONS(914), + [anon_sym___stdcall] = ACTIONS(914), + [anon_sym___fastcall] = ACTIONS(914), + [anon_sym___thiscall] = ACTIONS(914), + [anon_sym___vectorcall] = ACTIONS(914), + [anon_sym_LBRACE] = ACTIONS(916), + [anon_sym_static] = ACTIONS(914), + [anon_sym_auto] = ACTIONS(914), + [anon_sym_register] = ACTIONS(914), + [anon_sym_inline] = ACTIONS(914), + [anon_sym_const] = ACTIONS(914), + [anon_sym_volatile] = ACTIONS(914), + [anon_sym_restrict] = ACTIONS(914), + [anon_sym__Atomic] = ACTIONS(914), + [anon_sym_signed] = ACTIONS(914), + [anon_sym_unsigned] = ACTIONS(914), + [anon_sym_long] = ACTIONS(914), + [anon_sym_short] = ACTIONS(914), + [sym_primitive_type] = ACTIONS(914), + [anon_sym_enum] = ACTIONS(914), + [anon_sym_struct] = ACTIONS(914), + [anon_sym_union] = ACTIONS(914), + [anon_sym_if] = ACTIONS(914), + [anon_sym_else] = ACTIONS(1295), + [anon_sym_switch] = ACTIONS(914), + [anon_sym_case] = ACTIONS(914), + [anon_sym_default] = ACTIONS(914), + [anon_sym_while] = ACTIONS(914), + [anon_sym_do] = ACTIONS(914), + [anon_sym_for] = ACTIONS(914), + [anon_sym_return] = ACTIONS(914), + [anon_sym_break] = ACTIONS(914), + [anon_sym_continue] = ACTIONS(914), + [anon_sym_goto] = ACTIONS(914), + [anon_sym_DASH_DASH] = ACTIONS(916), + [anon_sym_PLUS_PLUS] = ACTIONS(916), + [anon_sym_sizeof] = ACTIONS(914), + [sym_number_literal] = ACTIONS(916), + [anon_sym_L_SQUOTE] = ACTIONS(916), + [anon_sym_u_SQUOTE] = ACTIONS(916), + [anon_sym_U_SQUOTE] = ACTIONS(916), + [anon_sym_u8_SQUOTE] = ACTIONS(916), + [anon_sym_SQUOTE] = ACTIONS(916), + [anon_sym_L_DQUOTE] = ACTIONS(916), + [anon_sym_u_DQUOTE] = ACTIONS(916), + [anon_sym_U_DQUOTE] = ACTIONS(916), + [anon_sym_u8_DQUOTE] = ACTIONS(916), + [anon_sym_DQUOTE] = ACTIONS(916), + [sym_true] = ACTIONS(914), + [sym_false] = ACTIONS(914), + [sym_null] = ACTIONS(914), + [sym_comment] = ACTIONS(3), + }, + [229] = { + [ts_builtin_sym_end] = ACTIONS(908), + [sym_identifier] = ACTIONS(906), + [aux_sym_preproc_include_token1] = ACTIONS(906), + [aux_sym_preproc_def_token1] = ACTIONS(906), + [aux_sym_preproc_if_token1] = ACTIONS(906), + [aux_sym_preproc_ifdef_token1] = ACTIONS(906), + [aux_sym_preproc_ifdef_token2] = ACTIONS(906), + [sym_preproc_directive] = ACTIONS(906), + [anon_sym_LPAREN2] = ACTIONS(908), + [anon_sym_BANG] = ACTIONS(908), + [anon_sym_TILDE] = ACTIONS(908), + [anon_sym_DASH] = ACTIONS(906), + [anon_sym_PLUS] = ACTIONS(906), + [anon_sym_STAR] = ACTIONS(908), + [anon_sym_AMP] = ACTIONS(908), + [anon_sym_SEMI] = ACTIONS(908), + [anon_sym_typedef] = ACTIONS(906), + [anon_sym_extern] = ACTIONS(906), + [anon_sym___attribute__] = ACTIONS(906), + [anon_sym_LBRACK_LBRACK] = ACTIONS(908), + [anon_sym___declspec] = ACTIONS(906), + [anon_sym___cdecl] = ACTIONS(906), + [anon_sym___clrcall] = ACTIONS(906), + [anon_sym___stdcall] = ACTIONS(906), + [anon_sym___fastcall] = ACTIONS(906), + [anon_sym___thiscall] = ACTIONS(906), + [anon_sym___vectorcall] = ACTIONS(906), + [anon_sym_LBRACE] = ACTIONS(908), + [anon_sym_static] = ACTIONS(906), + [anon_sym_auto] = ACTIONS(906), + [anon_sym_register] = ACTIONS(906), + [anon_sym_inline] = ACTIONS(906), + [anon_sym_const] = ACTIONS(906), + [anon_sym_volatile] = ACTIONS(906), + [anon_sym_restrict] = ACTIONS(906), + [anon_sym__Atomic] = ACTIONS(906), + [anon_sym_signed] = ACTIONS(906), + [anon_sym_unsigned] = ACTIONS(906), + [anon_sym_long] = ACTIONS(906), + [anon_sym_short] = ACTIONS(906), + [sym_primitive_type] = ACTIONS(906), + [anon_sym_enum] = ACTIONS(906), + [anon_sym_struct] = ACTIONS(906), + [anon_sym_union] = ACTIONS(906), + [anon_sym_if] = ACTIONS(906), + [anon_sym_else] = ACTIONS(906), + [anon_sym_switch] = ACTIONS(906), + [anon_sym_case] = ACTIONS(906), + [anon_sym_default] = ACTIONS(906), + [anon_sym_while] = ACTIONS(906), + [anon_sym_do] = ACTIONS(906), + [anon_sym_for] = ACTIONS(906), + [anon_sym_return] = ACTIONS(906), + [anon_sym_break] = ACTIONS(906), + [anon_sym_continue] = ACTIONS(906), + [anon_sym_goto] = ACTIONS(906), + [anon_sym_DASH_DASH] = ACTIONS(908), + [anon_sym_PLUS_PLUS] = ACTIONS(908), + [anon_sym_sizeof] = ACTIONS(906), + [sym_number_literal] = ACTIONS(908), + [anon_sym_L_SQUOTE] = ACTIONS(908), + [anon_sym_u_SQUOTE] = ACTIONS(908), + [anon_sym_U_SQUOTE] = ACTIONS(908), + [anon_sym_u8_SQUOTE] = ACTIONS(908), + [anon_sym_SQUOTE] = ACTIONS(908), + [anon_sym_L_DQUOTE] = ACTIONS(908), + [anon_sym_u_DQUOTE] = ACTIONS(908), + [anon_sym_U_DQUOTE] = ACTIONS(908), + [anon_sym_u8_DQUOTE] = ACTIONS(908), + [anon_sym_DQUOTE] = ACTIONS(908), + [sym_true] = ACTIONS(906), + [sym_false] = ACTIONS(906), + [sym_null] = ACTIONS(906), + [sym_comment] = ACTIONS(3), + }, + [230] = { + [ts_builtin_sym_end] = ACTIONS(1010), + [sym_identifier] = ACTIONS(1008), + [aux_sym_preproc_include_token1] = ACTIONS(1008), + [aux_sym_preproc_def_token1] = ACTIONS(1008), + [aux_sym_preproc_if_token1] = ACTIONS(1008), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1008), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1008), + [sym_preproc_directive] = ACTIONS(1008), + [anon_sym_LPAREN2] = ACTIONS(1010), + [anon_sym_BANG] = ACTIONS(1010), + [anon_sym_TILDE] = ACTIONS(1010), + [anon_sym_DASH] = ACTIONS(1008), + [anon_sym_PLUS] = ACTIONS(1008), + [anon_sym_STAR] = ACTIONS(1010), + [anon_sym_AMP] = ACTIONS(1010), + [anon_sym_SEMI] = ACTIONS(1010), + [anon_sym_typedef] = ACTIONS(1008), + [anon_sym_extern] = ACTIONS(1008), + [anon_sym___attribute__] = ACTIONS(1008), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1010), + [anon_sym___declspec] = ACTIONS(1008), + [anon_sym___cdecl] = ACTIONS(1008), + [anon_sym___clrcall] = ACTIONS(1008), + [anon_sym___stdcall] = ACTIONS(1008), + [anon_sym___fastcall] = ACTIONS(1008), + [anon_sym___thiscall] = ACTIONS(1008), + [anon_sym___vectorcall] = ACTIONS(1008), + [anon_sym_LBRACE] = ACTIONS(1010), + [anon_sym_static] = ACTIONS(1008), + [anon_sym_auto] = ACTIONS(1008), + [anon_sym_register] = ACTIONS(1008), + [anon_sym_inline] = ACTIONS(1008), + [anon_sym_const] = ACTIONS(1008), + [anon_sym_volatile] = ACTIONS(1008), + [anon_sym_restrict] = ACTIONS(1008), + [anon_sym__Atomic] = ACTIONS(1008), + [anon_sym_signed] = ACTIONS(1008), + [anon_sym_unsigned] = ACTIONS(1008), + [anon_sym_long] = ACTIONS(1008), + [anon_sym_short] = ACTIONS(1008), + [sym_primitive_type] = ACTIONS(1008), + [anon_sym_enum] = ACTIONS(1008), + [anon_sym_struct] = ACTIONS(1008), + [anon_sym_union] = ACTIONS(1008), + [anon_sym_if] = ACTIONS(1008), + [anon_sym_else] = ACTIONS(1008), + [anon_sym_switch] = ACTIONS(1008), + [anon_sym_case] = ACTIONS(1008), + [anon_sym_default] = ACTIONS(1008), + [anon_sym_while] = ACTIONS(1008), + [anon_sym_do] = ACTIONS(1008), + [anon_sym_for] = ACTIONS(1008), + [anon_sym_return] = ACTIONS(1008), + [anon_sym_break] = ACTIONS(1008), + [anon_sym_continue] = ACTIONS(1008), + [anon_sym_goto] = ACTIONS(1008), + [anon_sym_DASH_DASH] = ACTIONS(1010), + [anon_sym_PLUS_PLUS] = ACTIONS(1010), + [anon_sym_sizeof] = ACTIONS(1008), + [sym_number_literal] = ACTIONS(1010), + [anon_sym_L_SQUOTE] = ACTIONS(1010), + [anon_sym_u_SQUOTE] = ACTIONS(1010), + [anon_sym_U_SQUOTE] = ACTIONS(1010), + [anon_sym_u8_SQUOTE] = ACTIONS(1010), + [anon_sym_SQUOTE] = ACTIONS(1010), + [anon_sym_L_DQUOTE] = ACTIONS(1010), + [anon_sym_u_DQUOTE] = ACTIONS(1010), + [anon_sym_U_DQUOTE] = ACTIONS(1010), + [anon_sym_u8_DQUOTE] = ACTIONS(1010), + [anon_sym_DQUOTE] = ACTIONS(1010), + [sym_true] = ACTIONS(1008), + [sym_false] = ACTIONS(1008), + [sym_null] = ACTIONS(1008), + [sym_comment] = ACTIONS(3), + }, + [231] = { + [sym_identifier] = ACTIONS(972), + [aux_sym_preproc_include_token1] = ACTIONS(972), + [aux_sym_preproc_def_token1] = ACTIONS(972), + [aux_sym_preproc_if_token1] = ACTIONS(972), + [aux_sym_preproc_if_token2] = ACTIONS(972), + [aux_sym_preproc_ifdef_token1] = ACTIONS(972), + [aux_sym_preproc_ifdef_token2] = ACTIONS(972), + [sym_preproc_directive] = ACTIONS(972), + [anon_sym_LPAREN2] = ACTIONS(974), + [anon_sym_BANG] = ACTIONS(974), + [anon_sym_TILDE] = ACTIONS(974), + [anon_sym_DASH] = ACTIONS(972), + [anon_sym_PLUS] = ACTIONS(972), + [anon_sym_STAR] = ACTIONS(974), + [anon_sym_AMP] = ACTIONS(974), + [anon_sym_SEMI] = ACTIONS(974), + [anon_sym_typedef] = ACTIONS(972), + [anon_sym_extern] = ACTIONS(972), + [anon_sym___attribute__] = ACTIONS(972), + [anon_sym_LBRACK_LBRACK] = ACTIONS(974), + [anon_sym___declspec] = ACTIONS(972), + [anon_sym___cdecl] = ACTIONS(972), + [anon_sym___clrcall] = ACTIONS(972), + [anon_sym___stdcall] = ACTIONS(972), + [anon_sym___fastcall] = ACTIONS(972), + [anon_sym___thiscall] = ACTIONS(972), + [anon_sym___vectorcall] = ACTIONS(972), + [anon_sym_LBRACE] = ACTIONS(974), + [anon_sym_static] = ACTIONS(972), + [anon_sym_auto] = ACTIONS(972), + [anon_sym_register] = ACTIONS(972), + [anon_sym_inline] = ACTIONS(972), + [anon_sym_const] = ACTIONS(972), + [anon_sym_volatile] = ACTIONS(972), + [anon_sym_restrict] = ACTIONS(972), + [anon_sym__Atomic] = ACTIONS(972), + [anon_sym_signed] = ACTIONS(972), + [anon_sym_unsigned] = ACTIONS(972), + [anon_sym_long] = ACTIONS(972), + [anon_sym_short] = ACTIONS(972), + [sym_primitive_type] = ACTIONS(972), + [anon_sym_enum] = ACTIONS(972), + [anon_sym_struct] = ACTIONS(972), + [anon_sym_union] = ACTIONS(972), + [anon_sym_if] = ACTIONS(972), + [anon_sym_else] = ACTIONS(972), + [anon_sym_switch] = ACTIONS(972), + [anon_sym_case] = ACTIONS(972), + [anon_sym_default] = ACTIONS(972), + [anon_sym_while] = ACTIONS(972), + [anon_sym_do] = ACTIONS(972), + [anon_sym_for] = ACTIONS(972), + [anon_sym_return] = ACTIONS(972), + [anon_sym_break] = ACTIONS(972), + [anon_sym_continue] = ACTIONS(972), + [anon_sym_goto] = ACTIONS(972), + [anon_sym_DASH_DASH] = ACTIONS(974), + [anon_sym_PLUS_PLUS] = ACTIONS(974), + [anon_sym_sizeof] = ACTIONS(972), + [sym_number_literal] = ACTIONS(974), + [anon_sym_L_SQUOTE] = ACTIONS(974), + [anon_sym_u_SQUOTE] = ACTIONS(974), + [anon_sym_U_SQUOTE] = ACTIONS(974), + [anon_sym_u8_SQUOTE] = ACTIONS(974), + [anon_sym_SQUOTE] = ACTIONS(974), + [anon_sym_L_DQUOTE] = ACTIONS(974), + [anon_sym_u_DQUOTE] = ACTIONS(974), + [anon_sym_U_DQUOTE] = ACTIONS(974), + [anon_sym_u8_DQUOTE] = ACTIONS(974), + [anon_sym_DQUOTE] = ACTIONS(974), + [sym_true] = ACTIONS(972), + [sym_false] = ACTIONS(972), + [sym_null] = ACTIONS(972), + [sym_comment] = ACTIONS(3), + }, + [232] = { + [sym_attribute_declaration] = STATE(170), + [sym_compound_statement] = STATE(169), + [sym_attributed_statement] = STATE(169), + [sym_labeled_statement] = STATE(169), + [sym_expression_statement] = STATE(169), + [sym_if_statement] = STATE(169), + [sym_switch_statement] = STATE(169), + [sym_case_statement] = STATE(169), + [sym_while_statement] = STATE(169), + [sym_do_statement] = STATE(169), + [sym_for_statement] = STATE(169), + [sym_return_statement] = STATE(169), + [sym_break_statement] = STATE(169), + [sym_continue_statement] = STATE(169), + [sym_goto_statement] = STATE(169), + [sym__expression] = STATE(740), + [sym_comma_expression] = STATE(1438), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(170), + [sym_identifier] = ACTIONS(1128), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(27), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(41), + [anon_sym_if] = ACTIONS(57), + [anon_sym_switch] = ACTIONS(59), + [anon_sym_case] = ACTIONS(61), + [anon_sym_default] = ACTIONS(63), + [anon_sym_while] = ACTIONS(65), + [anon_sym_do] = ACTIONS(67), + [anon_sym_for] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_break] = ACTIONS(73), + [anon_sym_continue] = ACTIONS(75), + [anon_sym_goto] = ACTIONS(77), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [233] = { + [ts_builtin_sym_end] = ACTIONS(912), + [sym_identifier] = ACTIONS(910), + [aux_sym_preproc_include_token1] = ACTIONS(910), + [aux_sym_preproc_def_token1] = ACTIONS(910), + [aux_sym_preproc_if_token1] = ACTIONS(910), + [aux_sym_preproc_ifdef_token1] = ACTIONS(910), + [aux_sym_preproc_ifdef_token2] = ACTIONS(910), + [sym_preproc_directive] = ACTIONS(910), + [anon_sym_LPAREN2] = ACTIONS(912), + [anon_sym_BANG] = ACTIONS(912), + [anon_sym_TILDE] = ACTIONS(912), + [anon_sym_DASH] = ACTIONS(910), + [anon_sym_PLUS] = ACTIONS(910), + [anon_sym_STAR] = ACTIONS(912), + [anon_sym_AMP] = ACTIONS(912), + [anon_sym_SEMI] = ACTIONS(912), + [anon_sym_typedef] = ACTIONS(910), + [anon_sym_extern] = ACTIONS(910), + [anon_sym___attribute__] = ACTIONS(910), + [anon_sym_LBRACK_LBRACK] = ACTIONS(912), + [anon_sym___declspec] = ACTIONS(910), + [anon_sym___cdecl] = ACTIONS(910), + [anon_sym___clrcall] = ACTIONS(910), + [anon_sym___stdcall] = ACTIONS(910), + [anon_sym___fastcall] = ACTIONS(910), + [anon_sym___thiscall] = ACTIONS(910), + [anon_sym___vectorcall] = ACTIONS(910), + [anon_sym_LBRACE] = ACTIONS(912), + [anon_sym_static] = ACTIONS(910), + [anon_sym_auto] = ACTIONS(910), + [anon_sym_register] = ACTIONS(910), + [anon_sym_inline] = ACTIONS(910), + [anon_sym_const] = ACTIONS(910), + [anon_sym_volatile] = ACTIONS(910), + [anon_sym_restrict] = ACTIONS(910), + [anon_sym__Atomic] = ACTIONS(910), + [anon_sym_signed] = ACTIONS(910), + [anon_sym_unsigned] = ACTIONS(910), + [anon_sym_long] = ACTIONS(910), + [anon_sym_short] = ACTIONS(910), + [sym_primitive_type] = ACTIONS(910), + [anon_sym_enum] = ACTIONS(910), + [anon_sym_struct] = ACTIONS(910), + [anon_sym_union] = ACTIONS(910), + [anon_sym_if] = ACTIONS(910), + [anon_sym_else] = ACTIONS(910), + [anon_sym_switch] = ACTIONS(910), + [anon_sym_case] = ACTIONS(910), + [anon_sym_default] = ACTIONS(910), + [anon_sym_while] = ACTIONS(910), + [anon_sym_do] = ACTIONS(910), + [anon_sym_for] = ACTIONS(910), + [anon_sym_return] = ACTIONS(910), + [anon_sym_break] = ACTIONS(910), + [anon_sym_continue] = ACTIONS(910), + [anon_sym_goto] = ACTIONS(910), + [anon_sym_DASH_DASH] = ACTIONS(912), + [anon_sym_PLUS_PLUS] = ACTIONS(912), + [anon_sym_sizeof] = ACTIONS(910), + [sym_number_literal] = ACTIONS(912), + [anon_sym_L_SQUOTE] = ACTIONS(912), + [anon_sym_u_SQUOTE] = ACTIONS(912), + [anon_sym_U_SQUOTE] = ACTIONS(912), + [anon_sym_u8_SQUOTE] = ACTIONS(912), + [anon_sym_SQUOTE] = ACTIONS(912), + [anon_sym_L_DQUOTE] = ACTIONS(912), + [anon_sym_u_DQUOTE] = ACTIONS(912), + [anon_sym_U_DQUOTE] = ACTIONS(912), + [anon_sym_u8_DQUOTE] = ACTIONS(912), + [anon_sym_DQUOTE] = ACTIONS(912), + [sym_true] = ACTIONS(910), + [sym_false] = ACTIONS(910), + [sym_null] = ACTIONS(910), + [sym_comment] = ACTIONS(3), + }, + [234] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(87), + [sym_attributed_statement] = STATE(87), + [sym_labeled_statement] = STATE(87), + [sym_expression_statement] = STATE(87), + [sym_if_statement] = STATE(87), + [sym_switch_statement] = STATE(87), + [sym_case_statement] = STATE(87), + [sym_while_statement] = STATE(87), + [sym_do_statement] = STATE(87), + [sym_for_statement] = STATE(87), + [sym_return_statement] = STATE(87), + [sym_break_statement] = STATE(87), + [sym_continue_statement] = STATE(87), + [sym_goto_statement] = STATE(87), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [235] = { + [sym_identifier] = ACTIONS(976), + [aux_sym_preproc_include_token1] = ACTIONS(976), + [aux_sym_preproc_def_token1] = ACTIONS(976), + [aux_sym_preproc_if_token1] = ACTIONS(976), + [aux_sym_preproc_if_token2] = ACTIONS(976), + [aux_sym_preproc_ifdef_token1] = ACTIONS(976), + [aux_sym_preproc_ifdef_token2] = ACTIONS(976), + [sym_preproc_directive] = ACTIONS(976), + [anon_sym_LPAREN2] = ACTIONS(978), + [anon_sym_BANG] = ACTIONS(978), + [anon_sym_TILDE] = ACTIONS(978), + [anon_sym_DASH] = ACTIONS(976), + [anon_sym_PLUS] = ACTIONS(976), + [anon_sym_STAR] = ACTIONS(978), + [anon_sym_AMP] = ACTIONS(978), + [anon_sym_SEMI] = ACTIONS(978), + [anon_sym_typedef] = ACTIONS(976), + [anon_sym_extern] = ACTIONS(976), + [anon_sym___attribute__] = ACTIONS(976), + [anon_sym_LBRACK_LBRACK] = ACTIONS(978), + [anon_sym___declspec] = ACTIONS(976), + [anon_sym___cdecl] = ACTIONS(976), + [anon_sym___clrcall] = ACTIONS(976), + [anon_sym___stdcall] = ACTIONS(976), + [anon_sym___fastcall] = ACTIONS(976), + [anon_sym___thiscall] = ACTIONS(976), + [anon_sym___vectorcall] = ACTIONS(976), + [anon_sym_LBRACE] = ACTIONS(978), + [anon_sym_static] = ACTIONS(976), + [anon_sym_auto] = ACTIONS(976), + [anon_sym_register] = ACTIONS(976), + [anon_sym_inline] = ACTIONS(976), + [anon_sym_const] = ACTIONS(976), + [anon_sym_volatile] = ACTIONS(976), + [anon_sym_restrict] = ACTIONS(976), + [anon_sym__Atomic] = ACTIONS(976), + [anon_sym_signed] = ACTIONS(976), + [anon_sym_unsigned] = ACTIONS(976), + [anon_sym_long] = ACTIONS(976), + [anon_sym_short] = ACTIONS(976), + [sym_primitive_type] = ACTIONS(976), + [anon_sym_enum] = ACTIONS(976), + [anon_sym_struct] = ACTIONS(976), + [anon_sym_union] = ACTIONS(976), + [anon_sym_if] = ACTIONS(976), + [anon_sym_else] = ACTIONS(976), + [anon_sym_switch] = ACTIONS(976), + [anon_sym_case] = ACTIONS(976), + [anon_sym_default] = ACTIONS(976), + [anon_sym_while] = ACTIONS(976), + [anon_sym_do] = ACTIONS(976), + [anon_sym_for] = ACTIONS(976), + [anon_sym_return] = ACTIONS(976), + [anon_sym_break] = ACTIONS(976), + [anon_sym_continue] = ACTIONS(976), + [anon_sym_goto] = ACTIONS(976), + [anon_sym_DASH_DASH] = ACTIONS(978), + [anon_sym_PLUS_PLUS] = ACTIONS(978), + [anon_sym_sizeof] = ACTIONS(976), + [sym_number_literal] = ACTIONS(978), + [anon_sym_L_SQUOTE] = ACTIONS(978), + [anon_sym_u_SQUOTE] = ACTIONS(978), + [anon_sym_U_SQUOTE] = ACTIONS(978), + [anon_sym_u8_SQUOTE] = ACTIONS(978), + [anon_sym_SQUOTE] = ACTIONS(978), + [anon_sym_L_DQUOTE] = ACTIONS(978), + [anon_sym_u_DQUOTE] = ACTIONS(978), + [anon_sym_U_DQUOTE] = ACTIONS(978), + [anon_sym_u8_DQUOTE] = ACTIONS(978), + [anon_sym_DQUOTE] = ACTIONS(978), + [sym_true] = ACTIONS(976), + [sym_false] = ACTIONS(976), + [sym_null] = ACTIONS(976), + [sym_comment] = ACTIONS(3), + }, + [236] = { + [sym_identifier] = ACTIONS(964), + [aux_sym_preproc_include_token1] = ACTIONS(964), + [aux_sym_preproc_def_token1] = ACTIONS(964), + [aux_sym_preproc_if_token1] = ACTIONS(964), + [aux_sym_preproc_ifdef_token1] = ACTIONS(964), + [aux_sym_preproc_ifdef_token2] = ACTIONS(964), + [sym_preproc_directive] = ACTIONS(964), + [anon_sym_LPAREN2] = ACTIONS(966), + [anon_sym_BANG] = ACTIONS(966), + [anon_sym_TILDE] = ACTIONS(966), + [anon_sym_DASH] = ACTIONS(964), + [anon_sym_PLUS] = ACTIONS(964), + [anon_sym_STAR] = ACTIONS(966), + [anon_sym_AMP] = ACTIONS(966), + [anon_sym_SEMI] = ACTIONS(966), + [anon_sym_typedef] = ACTIONS(964), + [anon_sym_extern] = ACTIONS(964), + [anon_sym___attribute__] = ACTIONS(964), + [anon_sym_LBRACK_LBRACK] = ACTIONS(966), + [anon_sym___declspec] = ACTIONS(964), + [anon_sym___cdecl] = ACTIONS(964), + [anon_sym___clrcall] = ACTIONS(964), + [anon_sym___stdcall] = ACTIONS(964), + [anon_sym___fastcall] = ACTIONS(964), + [anon_sym___thiscall] = ACTIONS(964), + [anon_sym___vectorcall] = ACTIONS(964), + [anon_sym_LBRACE] = ACTIONS(966), + [anon_sym_RBRACE] = ACTIONS(966), + [anon_sym_static] = ACTIONS(964), + [anon_sym_auto] = ACTIONS(964), + [anon_sym_register] = ACTIONS(964), + [anon_sym_inline] = ACTIONS(964), + [anon_sym_const] = ACTIONS(964), + [anon_sym_volatile] = ACTIONS(964), + [anon_sym_restrict] = ACTIONS(964), + [anon_sym__Atomic] = ACTIONS(964), + [anon_sym_signed] = ACTIONS(964), + [anon_sym_unsigned] = ACTIONS(964), + [anon_sym_long] = ACTIONS(964), + [anon_sym_short] = ACTIONS(964), + [sym_primitive_type] = ACTIONS(964), + [anon_sym_enum] = ACTIONS(964), + [anon_sym_struct] = ACTIONS(964), + [anon_sym_union] = ACTIONS(964), + [anon_sym_if] = ACTIONS(964), + [anon_sym_else] = ACTIONS(964), + [anon_sym_switch] = ACTIONS(964), + [anon_sym_case] = ACTIONS(964), + [anon_sym_default] = ACTIONS(964), + [anon_sym_while] = ACTIONS(964), + [anon_sym_do] = ACTIONS(964), + [anon_sym_for] = ACTIONS(964), + [anon_sym_return] = ACTIONS(964), + [anon_sym_break] = ACTIONS(964), + [anon_sym_continue] = ACTIONS(964), + [anon_sym_goto] = ACTIONS(964), + [anon_sym_DASH_DASH] = ACTIONS(966), + [anon_sym_PLUS_PLUS] = ACTIONS(966), + [anon_sym_sizeof] = ACTIONS(964), + [sym_number_literal] = ACTIONS(966), + [anon_sym_L_SQUOTE] = ACTIONS(966), + [anon_sym_u_SQUOTE] = ACTIONS(966), + [anon_sym_U_SQUOTE] = ACTIONS(966), + [anon_sym_u8_SQUOTE] = ACTIONS(966), + [anon_sym_SQUOTE] = ACTIONS(966), + [anon_sym_L_DQUOTE] = ACTIONS(966), + [anon_sym_u_DQUOTE] = ACTIONS(966), + [anon_sym_U_DQUOTE] = ACTIONS(966), + [anon_sym_u8_DQUOTE] = ACTIONS(966), + [anon_sym_DQUOTE] = ACTIONS(966), + [sym_true] = ACTIONS(964), + [sym_false] = ACTIONS(964), + [sym_null] = ACTIONS(964), + [sym_comment] = ACTIONS(3), + }, + [237] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(298), + [sym_attributed_statement] = STATE(298), + [sym_labeled_statement] = STATE(298), + [sym_expression_statement] = STATE(298), + [sym_if_statement] = STATE(298), + [sym_switch_statement] = STATE(298), + [sym_case_statement] = STATE(298), + [sym_while_statement] = STATE(298), + [sym_do_statement] = STATE(298), + [sym_for_statement] = STATE(298), + [sym_return_statement] = STATE(298), + [sym_break_statement] = STATE(298), + [sym_continue_statement] = STATE(298), + [sym_goto_statement] = STATE(298), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [238] = { + [ts_builtin_sym_end] = ACTIONS(950), + [sym_identifier] = ACTIONS(948), + [aux_sym_preproc_include_token1] = ACTIONS(948), + [aux_sym_preproc_def_token1] = ACTIONS(948), + [aux_sym_preproc_if_token1] = ACTIONS(948), + [aux_sym_preproc_ifdef_token1] = ACTIONS(948), + [aux_sym_preproc_ifdef_token2] = ACTIONS(948), + [sym_preproc_directive] = ACTIONS(948), + [anon_sym_LPAREN2] = ACTIONS(950), + [anon_sym_BANG] = ACTIONS(950), + [anon_sym_TILDE] = ACTIONS(950), + [anon_sym_DASH] = ACTIONS(948), + [anon_sym_PLUS] = ACTIONS(948), + [anon_sym_STAR] = ACTIONS(950), + [anon_sym_AMP] = ACTIONS(950), + [anon_sym_SEMI] = ACTIONS(950), + [anon_sym_typedef] = ACTIONS(948), + [anon_sym_extern] = ACTIONS(948), + [anon_sym___attribute__] = ACTIONS(948), + [anon_sym_LBRACK_LBRACK] = ACTIONS(950), + [anon_sym___declspec] = ACTIONS(948), + [anon_sym___cdecl] = ACTIONS(948), + [anon_sym___clrcall] = ACTIONS(948), + [anon_sym___stdcall] = ACTIONS(948), + [anon_sym___fastcall] = ACTIONS(948), + [anon_sym___thiscall] = ACTIONS(948), + [anon_sym___vectorcall] = ACTIONS(948), + [anon_sym_LBRACE] = ACTIONS(950), + [anon_sym_static] = ACTIONS(948), + [anon_sym_auto] = ACTIONS(948), + [anon_sym_register] = ACTIONS(948), + [anon_sym_inline] = ACTIONS(948), + [anon_sym_const] = ACTIONS(948), + [anon_sym_volatile] = ACTIONS(948), + [anon_sym_restrict] = ACTIONS(948), + [anon_sym__Atomic] = ACTIONS(948), + [anon_sym_signed] = ACTIONS(948), + [anon_sym_unsigned] = ACTIONS(948), + [anon_sym_long] = ACTIONS(948), + [anon_sym_short] = ACTIONS(948), + [sym_primitive_type] = ACTIONS(948), + [anon_sym_enum] = ACTIONS(948), + [anon_sym_struct] = ACTIONS(948), + [anon_sym_union] = ACTIONS(948), + [anon_sym_if] = ACTIONS(948), + [anon_sym_else] = ACTIONS(948), + [anon_sym_switch] = ACTIONS(948), + [anon_sym_case] = ACTIONS(948), + [anon_sym_default] = ACTIONS(948), + [anon_sym_while] = ACTIONS(948), + [anon_sym_do] = ACTIONS(948), + [anon_sym_for] = ACTIONS(948), + [anon_sym_return] = ACTIONS(948), + [anon_sym_break] = ACTIONS(948), + [anon_sym_continue] = ACTIONS(948), + [anon_sym_goto] = ACTIONS(948), + [anon_sym_DASH_DASH] = ACTIONS(950), + [anon_sym_PLUS_PLUS] = ACTIONS(950), + [anon_sym_sizeof] = ACTIONS(948), + [sym_number_literal] = ACTIONS(950), + [anon_sym_L_SQUOTE] = ACTIONS(950), + [anon_sym_u_SQUOTE] = ACTIONS(950), + [anon_sym_U_SQUOTE] = ACTIONS(950), + [anon_sym_u8_SQUOTE] = ACTIONS(950), + [anon_sym_SQUOTE] = ACTIONS(950), + [anon_sym_L_DQUOTE] = ACTIONS(950), + [anon_sym_u_DQUOTE] = ACTIONS(950), + [anon_sym_U_DQUOTE] = ACTIONS(950), + [anon_sym_u8_DQUOTE] = ACTIONS(950), + [anon_sym_DQUOTE] = ACTIONS(950), + [sym_true] = ACTIONS(948), + [sym_false] = ACTIONS(948), + [sym_null] = ACTIONS(948), + [sym_comment] = ACTIONS(3), + }, + [239] = { + [ts_builtin_sym_end] = ACTIONS(1018), + [sym_identifier] = ACTIONS(1016), + [aux_sym_preproc_include_token1] = ACTIONS(1016), + [aux_sym_preproc_def_token1] = ACTIONS(1016), + [aux_sym_preproc_if_token1] = ACTIONS(1016), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1016), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1016), + [sym_preproc_directive] = ACTIONS(1016), + [anon_sym_LPAREN2] = ACTIONS(1018), + [anon_sym_BANG] = ACTIONS(1018), + [anon_sym_TILDE] = ACTIONS(1018), + [anon_sym_DASH] = ACTIONS(1016), + [anon_sym_PLUS] = ACTIONS(1016), + [anon_sym_STAR] = ACTIONS(1018), + [anon_sym_AMP] = ACTIONS(1018), + [anon_sym_SEMI] = ACTIONS(1018), + [anon_sym_typedef] = ACTIONS(1016), + [anon_sym_extern] = ACTIONS(1016), + [anon_sym___attribute__] = ACTIONS(1016), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1018), + [anon_sym___declspec] = ACTIONS(1016), + [anon_sym___cdecl] = ACTIONS(1016), + [anon_sym___clrcall] = ACTIONS(1016), + [anon_sym___stdcall] = ACTIONS(1016), + [anon_sym___fastcall] = ACTIONS(1016), + [anon_sym___thiscall] = ACTIONS(1016), + [anon_sym___vectorcall] = ACTIONS(1016), + [anon_sym_LBRACE] = ACTIONS(1018), + [anon_sym_static] = ACTIONS(1016), + [anon_sym_auto] = ACTIONS(1016), + [anon_sym_register] = ACTIONS(1016), + [anon_sym_inline] = ACTIONS(1016), + [anon_sym_const] = ACTIONS(1016), + [anon_sym_volatile] = ACTIONS(1016), + [anon_sym_restrict] = ACTIONS(1016), + [anon_sym__Atomic] = ACTIONS(1016), + [anon_sym_signed] = ACTIONS(1016), + [anon_sym_unsigned] = ACTIONS(1016), + [anon_sym_long] = ACTIONS(1016), + [anon_sym_short] = ACTIONS(1016), + [sym_primitive_type] = ACTIONS(1016), + [anon_sym_enum] = ACTIONS(1016), + [anon_sym_struct] = ACTIONS(1016), + [anon_sym_union] = ACTIONS(1016), + [anon_sym_if] = ACTIONS(1016), + [anon_sym_else] = ACTIONS(1016), + [anon_sym_switch] = ACTIONS(1016), + [anon_sym_case] = ACTIONS(1016), + [anon_sym_default] = ACTIONS(1016), + [anon_sym_while] = ACTIONS(1016), + [anon_sym_do] = ACTIONS(1016), + [anon_sym_for] = ACTIONS(1016), + [anon_sym_return] = ACTIONS(1016), + [anon_sym_break] = ACTIONS(1016), + [anon_sym_continue] = ACTIONS(1016), + [anon_sym_goto] = ACTIONS(1016), + [anon_sym_DASH_DASH] = ACTIONS(1018), + [anon_sym_PLUS_PLUS] = ACTIONS(1018), + [anon_sym_sizeof] = ACTIONS(1016), + [sym_number_literal] = ACTIONS(1018), + [anon_sym_L_SQUOTE] = ACTIONS(1018), + [anon_sym_u_SQUOTE] = ACTIONS(1018), + [anon_sym_U_SQUOTE] = ACTIONS(1018), + [anon_sym_u8_SQUOTE] = ACTIONS(1018), + [anon_sym_SQUOTE] = ACTIONS(1018), + [anon_sym_L_DQUOTE] = ACTIONS(1018), + [anon_sym_u_DQUOTE] = ACTIONS(1018), + [anon_sym_U_DQUOTE] = ACTIONS(1018), + [anon_sym_u8_DQUOTE] = ACTIONS(1018), + [anon_sym_DQUOTE] = ACTIONS(1018), + [sym_true] = ACTIONS(1016), + [sym_false] = ACTIONS(1016), + [sym_null] = ACTIONS(1016), + [sym_comment] = ACTIONS(3), + }, + [240] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(73), + [sym_attributed_statement] = STATE(73), + [sym_labeled_statement] = STATE(73), + [sym_expression_statement] = STATE(73), + [sym_if_statement] = STATE(73), + [sym_switch_statement] = STATE(73), + [sym_case_statement] = STATE(73), + [sym_while_statement] = STATE(73), + [sym_do_statement] = STATE(73), + [sym_for_statement] = STATE(73), + [sym_return_statement] = STATE(73), + [sym_break_statement] = STATE(73), + [sym_continue_statement] = STATE(73), + [sym_goto_statement] = STATE(73), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [241] = { + [sym_identifier] = ACTIONS(980), + [aux_sym_preproc_include_token1] = ACTIONS(980), + [aux_sym_preproc_def_token1] = ACTIONS(980), + [aux_sym_preproc_if_token1] = ACTIONS(980), + [aux_sym_preproc_if_token2] = ACTIONS(980), + [aux_sym_preproc_ifdef_token1] = ACTIONS(980), + [aux_sym_preproc_ifdef_token2] = ACTIONS(980), + [sym_preproc_directive] = ACTIONS(980), + [anon_sym_LPAREN2] = ACTIONS(982), + [anon_sym_BANG] = ACTIONS(982), + [anon_sym_TILDE] = ACTIONS(982), + [anon_sym_DASH] = ACTIONS(980), + [anon_sym_PLUS] = ACTIONS(980), + [anon_sym_STAR] = ACTIONS(982), + [anon_sym_AMP] = ACTIONS(982), + [anon_sym_SEMI] = ACTIONS(982), + [anon_sym_typedef] = ACTIONS(980), + [anon_sym_extern] = ACTIONS(980), + [anon_sym___attribute__] = ACTIONS(980), + [anon_sym_LBRACK_LBRACK] = ACTIONS(982), + [anon_sym___declspec] = ACTIONS(980), + [anon_sym___cdecl] = ACTIONS(980), + [anon_sym___clrcall] = ACTIONS(980), + [anon_sym___stdcall] = ACTIONS(980), + [anon_sym___fastcall] = ACTIONS(980), + [anon_sym___thiscall] = ACTIONS(980), + [anon_sym___vectorcall] = ACTIONS(980), + [anon_sym_LBRACE] = ACTIONS(982), + [anon_sym_static] = ACTIONS(980), + [anon_sym_auto] = ACTIONS(980), + [anon_sym_register] = ACTIONS(980), + [anon_sym_inline] = ACTIONS(980), + [anon_sym_const] = ACTIONS(980), + [anon_sym_volatile] = ACTIONS(980), + [anon_sym_restrict] = ACTIONS(980), + [anon_sym__Atomic] = ACTIONS(980), + [anon_sym_signed] = ACTIONS(980), + [anon_sym_unsigned] = ACTIONS(980), + [anon_sym_long] = ACTIONS(980), + [anon_sym_short] = ACTIONS(980), + [sym_primitive_type] = ACTIONS(980), + [anon_sym_enum] = ACTIONS(980), + [anon_sym_struct] = ACTIONS(980), + [anon_sym_union] = ACTIONS(980), + [anon_sym_if] = ACTIONS(980), + [anon_sym_else] = ACTIONS(980), + [anon_sym_switch] = ACTIONS(980), + [anon_sym_case] = ACTIONS(980), + [anon_sym_default] = ACTIONS(980), + [anon_sym_while] = ACTIONS(980), + [anon_sym_do] = ACTIONS(980), + [anon_sym_for] = ACTIONS(980), + [anon_sym_return] = ACTIONS(980), + [anon_sym_break] = ACTIONS(980), + [anon_sym_continue] = ACTIONS(980), + [anon_sym_goto] = ACTIONS(980), + [anon_sym_DASH_DASH] = ACTIONS(982), + [anon_sym_PLUS_PLUS] = ACTIONS(982), + [anon_sym_sizeof] = ACTIONS(980), + [sym_number_literal] = ACTIONS(982), + [anon_sym_L_SQUOTE] = ACTIONS(982), + [anon_sym_u_SQUOTE] = ACTIONS(982), + [anon_sym_U_SQUOTE] = ACTIONS(982), + [anon_sym_u8_SQUOTE] = ACTIONS(982), + [anon_sym_SQUOTE] = ACTIONS(982), + [anon_sym_L_DQUOTE] = ACTIONS(982), + [anon_sym_u_DQUOTE] = ACTIONS(982), + [anon_sym_U_DQUOTE] = ACTIONS(982), + [anon_sym_u8_DQUOTE] = ACTIONS(982), + [anon_sym_DQUOTE] = ACTIONS(982), + [sym_true] = ACTIONS(980), + [sym_false] = ACTIONS(980), + [sym_null] = ACTIONS(980), + [sym_comment] = ACTIONS(3), + }, + [242] = { + [sym_attribute_declaration] = STATE(292), + [sym_compound_statement] = STATE(291), + [sym_attributed_statement] = STATE(291), + [sym_labeled_statement] = STATE(291), + [sym_expression_statement] = STATE(291), + [sym_if_statement] = STATE(291), + [sym_switch_statement] = STATE(291), + [sym_case_statement] = STATE(291), + [sym_while_statement] = STATE(291), + [sym_do_statement] = STATE(291), + [sym_for_statement] = STATE(291), + [sym_return_statement] = STATE(291), + [sym_break_statement] = STATE(291), + [sym_continue_statement] = STATE(291), + [sym_goto_statement] = STATE(291), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(292), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [243] = { + [sym_attribute_declaration] = STATE(247), + [sym_compound_statement] = STATE(75), + [sym_attributed_statement] = STATE(75), + [sym_labeled_statement] = STATE(75), + [sym_expression_statement] = STATE(75), + [sym_if_statement] = STATE(75), + [sym_switch_statement] = STATE(75), + [sym_case_statement] = STATE(75), + [sym_while_statement] = STATE(75), + [sym_do_statement] = STATE(75), + [sym_for_statement] = STATE(75), + [sym_return_statement] = STATE(75), + [sym_break_statement] = STATE(75), + [sym_continue_statement] = STATE(75), + [sym_goto_statement] = STATE(75), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(247), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [244] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(299), + [sym_attributed_statement] = STATE(299), + [sym_labeled_statement] = STATE(299), + [sym_expression_statement] = STATE(299), + [sym_if_statement] = STATE(299), + [sym_switch_statement] = STATE(299), + [sym_case_statement] = STATE(299), + [sym_while_statement] = STATE(299), + [sym_do_statement] = STATE(299), + [sym_for_statement] = STATE(299), + [sym_return_statement] = STATE(299), + [sym_break_statement] = STATE(299), + [sym_continue_statement] = STATE(299), + [sym_goto_statement] = STATE(299), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [245] = { + [sym_identifier] = ACTIONS(1016), + [aux_sym_preproc_include_token1] = ACTIONS(1016), + [aux_sym_preproc_def_token1] = ACTIONS(1016), + [aux_sym_preproc_if_token1] = ACTIONS(1016), + [aux_sym_preproc_if_token2] = ACTIONS(1016), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1016), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1016), + [sym_preproc_directive] = ACTIONS(1016), + [anon_sym_LPAREN2] = ACTIONS(1018), + [anon_sym_BANG] = ACTIONS(1018), + [anon_sym_TILDE] = ACTIONS(1018), + [anon_sym_DASH] = ACTIONS(1016), + [anon_sym_PLUS] = ACTIONS(1016), + [anon_sym_STAR] = ACTIONS(1018), + [anon_sym_AMP] = ACTIONS(1018), + [anon_sym_SEMI] = ACTIONS(1018), + [anon_sym_typedef] = ACTIONS(1016), + [anon_sym_extern] = ACTIONS(1016), + [anon_sym___attribute__] = ACTIONS(1016), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1018), + [anon_sym___declspec] = ACTIONS(1016), + [anon_sym___cdecl] = ACTIONS(1016), + [anon_sym___clrcall] = ACTIONS(1016), + [anon_sym___stdcall] = ACTIONS(1016), + [anon_sym___fastcall] = ACTIONS(1016), + [anon_sym___thiscall] = ACTIONS(1016), + [anon_sym___vectorcall] = ACTIONS(1016), + [anon_sym_LBRACE] = ACTIONS(1018), + [anon_sym_static] = ACTIONS(1016), + [anon_sym_auto] = ACTIONS(1016), + [anon_sym_register] = ACTIONS(1016), + [anon_sym_inline] = ACTIONS(1016), + [anon_sym_const] = ACTIONS(1016), + [anon_sym_volatile] = ACTIONS(1016), + [anon_sym_restrict] = ACTIONS(1016), + [anon_sym__Atomic] = ACTIONS(1016), + [anon_sym_signed] = ACTIONS(1016), + [anon_sym_unsigned] = ACTIONS(1016), + [anon_sym_long] = ACTIONS(1016), + [anon_sym_short] = ACTIONS(1016), + [sym_primitive_type] = ACTIONS(1016), + [anon_sym_enum] = ACTIONS(1016), + [anon_sym_struct] = ACTIONS(1016), + [anon_sym_union] = ACTIONS(1016), + [anon_sym_if] = ACTIONS(1016), + [anon_sym_else] = ACTIONS(1016), + [anon_sym_switch] = ACTIONS(1016), + [anon_sym_case] = ACTIONS(1016), + [anon_sym_default] = ACTIONS(1016), + [anon_sym_while] = ACTIONS(1016), + [anon_sym_do] = ACTIONS(1016), + [anon_sym_for] = ACTIONS(1016), + [anon_sym_return] = ACTIONS(1016), + [anon_sym_break] = ACTIONS(1016), + [anon_sym_continue] = ACTIONS(1016), + [anon_sym_goto] = ACTIONS(1016), + [anon_sym_DASH_DASH] = ACTIONS(1018), + [anon_sym_PLUS_PLUS] = ACTIONS(1018), + [anon_sym_sizeof] = ACTIONS(1016), + [sym_number_literal] = ACTIONS(1018), + [anon_sym_L_SQUOTE] = ACTIONS(1018), + [anon_sym_u_SQUOTE] = ACTIONS(1018), + [anon_sym_U_SQUOTE] = ACTIONS(1018), + [anon_sym_u8_SQUOTE] = ACTIONS(1018), + [anon_sym_SQUOTE] = ACTIONS(1018), + [anon_sym_L_DQUOTE] = ACTIONS(1018), + [anon_sym_u_DQUOTE] = ACTIONS(1018), + [anon_sym_U_DQUOTE] = ACTIONS(1018), + [anon_sym_u8_DQUOTE] = ACTIONS(1018), + [anon_sym_DQUOTE] = ACTIONS(1018), + [sym_true] = ACTIONS(1016), + [sym_false] = ACTIONS(1016), + [sym_null] = ACTIONS(1016), + [sym_comment] = ACTIONS(3), + }, + [246] = { + [ts_builtin_sym_end] = ACTIONS(962), + [sym_identifier] = ACTIONS(960), + [aux_sym_preproc_include_token1] = ACTIONS(960), + [aux_sym_preproc_def_token1] = ACTIONS(960), + [aux_sym_preproc_if_token1] = ACTIONS(960), + [aux_sym_preproc_ifdef_token1] = ACTIONS(960), + [aux_sym_preproc_ifdef_token2] = ACTIONS(960), + [sym_preproc_directive] = ACTIONS(960), + [anon_sym_LPAREN2] = ACTIONS(962), + [anon_sym_BANG] = ACTIONS(962), + [anon_sym_TILDE] = ACTIONS(962), + [anon_sym_DASH] = ACTIONS(960), + [anon_sym_PLUS] = ACTIONS(960), + [anon_sym_STAR] = ACTIONS(962), + [anon_sym_AMP] = ACTIONS(962), + [anon_sym_SEMI] = ACTIONS(962), + [anon_sym_typedef] = ACTIONS(960), + [anon_sym_extern] = ACTIONS(960), + [anon_sym___attribute__] = ACTIONS(960), + [anon_sym_LBRACK_LBRACK] = ACTIONS(962), + [anon_sym___declspec] = ACTIONS(960), + [anon_sym___cdecl] = ACTIONS(960), + [anon_sym___clrcall] = ACTIONS(960), + [anon_sym___stdcall] = ACTIONS(960), + [anon_sym___fastcall] = ACTIONS(960), + [anon_sym___thiscall] = ACTIONS(960), + [anon_sym___vectorcall] = ACTIONS(960), + [anon_sym_LBRACE] = ACTIONS(962), + [anon_sym_static] = ACTIONS(960), + [anon_sym_auto] = ACTIONS(960), + [anon_sym_register] = ACTIONS(960), + [anon_sym_inline] = ACTIONS(960), + [anon_sym_const] = ACTIONS(960), + [anon_sym_volatile] = ACTIONS(960), + [anon_sym_restrict] = ACTIONS(960), + [anon_sym__Atomic] = ACTIONS(960), + [anon_sym_signed] = ACTIONS(960), + [anon_sym_unsigned] = ACTIONS(960), + [anon_sym_long] = ACTIONS(960), + [anon_sym_short] = ACTIONS(960), + [sym_primitive_type] = ACTIONS(960), + [anon_sym_enum] = ACTIONS(960), + [anon_sym_struct] = ACTIONS(960), + [anon_sym_union] = ACTIONS(960), + [anon_sym_if] = ACTIONS(960), + [anon_sym_else] = ACTIONS(960), + [anon_sym_switch] = ACTIONS(960), + [anon_sym_case] = ACTIONS(960), + [anon_sym_default] = ACTIONS(960), + [anon_sym_while] = ACTIONS(960), + [anon_sym_do] = ACTIONS(960), + [anon_sym_for] = ACTIONS(960), + [anon_sym_return] = ACTIONS(960), + [anon_sym_break] = ACTIONS(960), + [anon_sym_continue] = ACTIONS(960), + [anon_sym_goto] = ACTIONS(960), + [anon_sym_DASH_DASH] = ACTIONS(962), + [anon_sym_PLUS_PLUS] = ACTIONS(962), + [anon_sym_sizeof] = ACTIONS(960), + [sym_number_literal] = ACTIONS(962), + [anon_sym_L_SQUOTE] = ACTIONS(962), + [anon_sym_u_SQUOTE] = ACTIONS(962), + [anon_sym_U_SQUOTE] = ACTIONS(962), + [anon_sym_u8_SQUOTE] = ACTIONS(962), + [anon_sym_SQUOTE] = ACTIONS(962), + [anon_sym_L_DQUOTE] = ACTIONS(962), + [anon_sym_u_DQUOTE] = ACTIONS(962), + [anon_sym_U_DQUOTE] = ACTIONS(962), + [anon_sym_u8_DQUOTE] = ACTIONS(962), + [anon_sym_DQUOTE] = ACTIONS(962), + [sym_true] = ACTIONS(960), + [sym_false] = ACTIONS(960), + [sym_null] = ACTIONS(960), + [sym_comment] = ACTIONS(3), + }, + [247] = { + [sym_attribute_declaration] = STATE(225), + [sym_compound_statement] = STATE(82), + [sym_attributed_statement] = STATE(82), + [sym_labeled_statement] = STATE(82), + [sym_expression_statement] = STATE(82), + [sym_if_statement] = STATE(82), + [sym_switch_statement] = STATE(82), + [sym_case_statement] = STATE(82), + [sym_while_statement] = STATE(82), + [sym_do_statement] = STATE(82), + [sym_for_statement] = STATE(82), + [sym_return_statement] = STATE(82), + [sym_break_statement] = STATE(82), + [sym_continue_statement] = STATE(82), + [sym_goto_statement] = STATE(82), + [sym__expression] = STATE(697), + [sym_comma_expression] = STATE(1451), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(225), + [sym_identifier] = ACTIONS(1209), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(109), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(115), + [anon_sym_if] = ACTIONS(117), + [anon_sym_switch] = ACTIONS(119), + [anon_sym_case] = ACTIONS(121), + [anon_sym_default] = ACTIONS(123), + [anon_sym_while] = ACTIONS(125), + [anon_sym_do] = ACTIONS(127), + [anon_sym_for] = ACTIONS(129), + [anon_sym_return] = ACTIONS(131), + [anon_sym_break] = ACTIONS(133), + [anon_sym_continue] = ACTIONS(135), + [anon_sym_goto] = ACTIONS(137), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [248] = { + [sym_identifier] = ACTIONS(1024), + [aux_sym_preproc_include_token1] = ACTIONS(1024), + [aux_sym_preproc_def_token1] = ACTIONS(1024), + [aux_sym_preproc_if_token1] = ACTIONS(1024), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1024), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1024), + [sym_preproc_directive] = ACTIONS(1024), + [anon_sym_LPAREN2] = ACTIONS(1026), + [anon_sym_BANG] = ACTIONS(1026), + [anon_sym_TILDE] = ACTIONS(1026), + [anon_sym_DASH] = ACTIONS(1024), + [anon_sym_PLUS] = ACTIONS(1024), + [anon_sym_STAR] = ACTIONS(1026), + [anon_sym_AMP] = ACTIONS(1026), + [anon_sym_SEMI] = ACTIONS(1026), + [anon_sym_typedef] = ACTIONS(1024), + [anon_sym_extern] = ACTIONS(1024), + [anon_sym___attribute__] = ACTIONS(1024), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1026), + [anon_sym___declspec] = ACTIONS(1024), + [anon_sym___cdecl] = ACTIONS(1024), + [anon_sym___clrcall] = ACTIONS(1024), + [anon_sym___stdcall] = ACTIONS(1024), + [anon_sym___fastcall] = ACTIONS(1024), + [anon_sym___thiscall] = ACTIONS(1024), + [anon_sym___vectorcall] = ACTIONS(1024), + [anon_sym_LBRACE] = ACTIONS(1026), + [anon_sym_RBRACE] = ACTIONS(1026), + [anon_sym_static] = ACTIONS(1024), + [anon_sym_auto] = ACTIONS(1024), + [anon_sym_register] = ACTIONS(1024), + [anon_sym_inline] = ACTIONS(1024), + [anon_sym_const] = ACTIONS(1024), + [anon_sym_volatile] = ACTIONS(1024), + [anon_sym_restrict] = ACTIONS(1024), + [anon_sym__Atomic] = ACTIONS(1024), + [anon_sym_signed] = ACTIONS(1024), + [anon_sym_unsigned] = ACTIONS(1024), + [anon_sym_long] = ACTIONS(1024), + [anon_sym_short] = ACTIONS(1024), + [sym_primitive_type] = ACTIONS(1024), + [anon_sym_enum] = ACTIONS(1024), + [anon_sym_struct] = ACTIONS(1024), + [anon_sym_union] = ACTIONS(1024), + [anon_sym_if] = ACTIONS(1024), + [anon_sym_else] = ACTIONS(1024), + [anon_sym_switch] = ACTIONS(1024), + [anon_sym_case] = ACTIONS(1024), + [anon_sym_default] = ACTIONS(1024), + [anon_sym_while] = ACTIONS(1024), + [anon_sym_do] = ACTIONS(1024), + [anon_sym_for] = ACTIONS(1024), + [anon_sym_return] = ACTIONS(1024), + [anon_sym_break] = ACTIONS(1024), + [anon_sym_continue] = ACTIONS(1024), + [anon_sym_goto] = ACTIONS(1024), + [anon_sym_DASH_DASH] = ACTIONS(1026), + [anon_sym_PLUS_PLUS] = ACTIONS(1026), + [anon_sym_sizeof] = ACTIONS(1024), + [sym_number_literal] = ACTIONS(1026), + [anon_sym_L_SQUOTE] = ACTIONS(1026), + [anon_sym_u_SQUOTE] = ACTIONS(1026), + [anon_sym_U_SQUOTE] = ACTIONS(1026), + [anon_sym_u8_SQUOTE] = ACTIONS(1026), + [anon_sym_SQUOTE] = ACTIONS(1026), + [anon_sym_L_DQUOTE] = ACTIONS(1026), + [anon_sym_u_DQUOTE] = ACTIONS(1026), + [anon_sym_U_DQUOTE] = ACTIONS(1026), + [anon_sym_u8_DQUOTE] = ACTIONS(1026), + [anon_sym_DQUOTE] = ACTIONS(1026), + [sym_true] = ACTIONS(1024), + [sym_false] = ACTIONS(1024), + [sym_null] = ACTIONS(1024), + [sym_comment] = ACTIONS(3), + }, + [249] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(199), + [sym_attributed_statement] = STATE(199), + [sym_labeled_statement] = STATE(199), + [sym_expression_statement] = STATE(199), + [sym_if_statement] = STATE(199), + [sym_switch_statement] = STATE(199), + [sym_case_statement] = STATE(199), + [sym_while_statement] = STATE(199), + [sym_do_statement] = STATE(199), + [sym_for_statement] = STATE(199), + [sym_return_statement] = STATE(199), + [sym_break_statement] = STATE(199), + [sym_continue_statement] = STATE(199), + [sym_goto_statement] = STATE(199), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [250] = { + [sym_identifier] = ACTIONS(1008), + [aux_sym_preproc_include_token1] = ACTIONS(1008), + [aux_sym_preproc_def_token1] = ACTIONS(1008), + [aux_sym_preproc_if_token1] = ACTIONS(1008), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1008), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1008), + [sym_preproc_directive] = ACTIONS(1008), + [anon_sym_LPAREN2] = ACTIONS(1010), + [anon_sym_BANG] = ACTIONS(1010), + [anon_sym_TILDE] = ACTIONS(1010), + [anon_sym_DASH] = ACTIONS(1008), + [anon_sym_PLUS] = ACTIONS(1008), + [anon_sym_STAR] = ACTIONS(1010), + [anon_sym_AMP] = ACTIONS(1010), + [anon_sym_SEMI] = ACTIONS(1010), + [anon_sym_typedef] = ACTIONS(1008), + [anon_sym_extern] = ACTIONS(1008), + [anon_sym___attribute__] = ACTIONS(1008), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1010), + [anon_sym___declspec] = ACTIONS(1008), + [anon_sym___cdecl] = ACTIONS(1008), + [anon_sym___clrcall] = ACTIONS(1008), + [anon_sym___stdcall] = ACTIONS(1008), + [anon_sym___fastcall] = ACTIONS(1008), + [anon_sym___thiscall] = ACTIONS(1008), + [anon_sym___vectorcall] = ACTIONS(1008), + [anon_sym_LBRACE] = ACTIONS(1010), + [anon_sym_RBRACE] = ACTIONS(1010), + [anon_sym_static] = ACTIONS(1008), + [anon_sym_auto] = ACTIONS(1008), + [anon_sym_register] = ACTIONS(1008), + [anon_sym_inline] = ACTIONS(1008), + [anon_sym_const] = ACTIONS(1008), + [anon_sym_volatile] = ACTIONS(1008), + [anon_sym_restrict] = ACTIONS(1008), + [anon_sym__Atomic] = ACTIONS(1008), + [anon_sym_signed] = ACTIONS(1008), + [anon_sym_unsigned] = ACTIONS(1008), + [anon_sym_long] = ACTIONS(1008), + [anon_sym_short] = ACTIONS(1008), + [sym_primitive_type] = ACTIONS(1008), + [anon_sym_enum] = ACTIONS(1008), + [anon_sym_struct] = ACTIONS(1008), + [anon_sym_union] = ACTIONS(1008), + [anon_sym_if] = ACTIONS(1008), + [anon_sym_else] = ACTIONS(1008), + [anon_sym_switch] = ACTIONS(1008), + [anon_sym_case] = ACTIONS(1008), + [anon_sym_default] = ACTIONS(1008), + [anon_sym_while] = ACTIONS(1008), + [anon_sym_do] = ACTIONS(1008), + [anon_sym_for] = ACTIONS(1008), + [anon_sym_return] = ACTIONS(1008), + [anon_sym_break] = ACTIONS(1008), + [anon_sym_continue] = ACTIONS(1008), + [anon_sym_goto] = ACTIONS(1008), + [anon_sym_DASH_DASH] = ACTIONS(1010), + [anon_sym_PLUS_PLUS] = ACTIONS(1010), + [anon_sym_sizeof] = ACTIONS(1008), + [sym_number_literal] = ACTIONS(1010), + [anon_sym_L_SQUOTE] = ACTIONS(1010), + [anon_sym_u_SQUOTE] = ACTIONS(1010), + [anon_sym_U_SQUOTE] = ACTIONS(1010), + [anon_sym_u8_SQUOTE] = ACTIONS(1010), + [anon_sym_SQUOTE] = ACTIONS(1010), + [anon_sym_L_DQUOTE] = ACTIONS(1010), + [anon_sym_u_DQUOTE] = ACTIONS(1010), + [anon_sym_U_DQUOTE] = ACTIONS(1010), + [anon_sym_u8_DQUOTE] = ACTIONS(1010), + [anon_sym_DQUOTE] = ACTIONS(1010), + [sym_true] = ACTIONS(1008), + [sym_false] = ACTIONS(1008), + [sym_null] = ACTIONS(1008), + [sym_comment] = ACTIONS(3), + }, + [251] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(250), + [sym_attributed_statement] = STATE(250), + [sym_labeled_statement] = STATE(250), + [sym_expression_statement] = STATE(250), + [sym_if_statement] = STATE(250), + [sym_switch_statement] = STATE(250), + [sym_case_statement] = STATE(250), + [sym_while_statement] = STATE(250), + [sym_do_statement] = STATE(250), + [sym_for_statement] = STATE(250), + [sym_return_statement] = STATE(250), + [sym_break_statement] = STATE(250), + [sym_continue_statement] = STATE(250), + [sym_goto_statement] = STATE(250), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [252] = { + [sym_identifier] = ACTIONS(1004), + [aux_sym_preproc_include_token1] = ACTIONS(1004), + [aux_sym_preproc_def_token1] = ACTIONS(1004), + [aux_sym_preproc_if_token1] = ACTIONS(1004), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1004), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1004), + [sym_preproc_directive] = ACTIONS(1004), + [anon_sym_LPAREN2] = ACTIONS(1006), + [anon_sym_BANG] = ACTIONS(1006), + [anon_sym_TILDE] = ACTIONS(1006), + [anon_sym_DASH] = ACTIONS(1004), + [anon_sym_PLUS] = ACTIONS(1004), + [anon_sym_STAR] = ACTIONS(1006), + [anon_sym_AMP] = ACTIONS(1006), + [anon_sym_SEMI] = ACTIONS(1006), + [anon_sym_typedef] = ACTIONS(1004), + [anon_sym_extern] = ACTIONS(1004), + [anon_sym___attribute__] = ACTIONS(1004), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1006), + [anon_sym___declspec] = ACTIONS(1004), + [anon_sym___cdecl] = ACTIONS(1004), + [anon_sym___clrcall] = ACTIONS(1004), + [anon_sym___stdcall] = ACTIONS(1004), + [anon_sym___fastcall] = ACTIONS(1004), + [anon_sym___thiscall] = ACTIONS(1004), + [anon_sym___vectorcall] = ACTIONS(1004), + [anon_sym_LBRACE] = ACTIONS(1006), + [anon_sym_RBRACE] = ACTIONS(1006), + [anon_sym_static] = ACTIONS(1004), + [anon_sym_auto] = ACTIONS(1004), + [anon_sym_register] = ACTIONS(1004), + [anon_sym_inline] = ACTIONS(1004), + [anon_sym_const] = ACTIONS(1004), + [anon_sym_volatile] = ACTIONS(1004), + [anon_sym_restrict] = ACTIONS(1004), + [anon_sym__Atomic] = ACTIONS(1004), + [anon_sym_signed] = ACTIONS(1004), + [anon_sym_unsigned] = ACTIONS(1004), + [anon_sym_long] = ACTIONS(1004), + [anon_sym_short] = ACTIONS(1004), + [sym_primitive_type] = ACTIONS(1004), + [anon_sym_enum] = ACTIONS(1004), + [anon_sym_struct] = ACTIONS(1004), + [anon_sym_union] = ACTIONS(1004), + [anon_sym_if] = ACTIONS(1004), + [anon_sym_else] = ACTIONS(1004), + [anon_sym_switch] = ACTIONS(1004), + [anon_sym_case] = ACTIONS(1004), + [anon_sym_default] = ACTIONS(1004), + [anon_sym_while] = ACTIONS(1004), + [anon_sym_do] = ACTIONS(1004), + [anon_sym_for] = ACTIONS(1004), + [anon_sym_return] = ACTIONS(1004), + [anon_sym_break] = ACTIONS(1004), + [anon_sym_continue] = ACTIONS(1004), + [anon_sym_goto] = ACTIONS(1004), + [anon_sym_DASH_DASH] = ACTIONS(1006), + [anon_sym_PLUS_PLUS] = ACTIONS(1006), + [anon_sym_sizeof] = ACTIONS(1004), + [sym_number_literal] = ACTIONS(1006), + [anon_sym_L_SQUOTE] = ACTIONS(1006), + [anon_sym_u_SQUOTE] = ACTIONS(1006), + [anon_sym_U_SQUOTE] = ACTIONS(1006), + [anon_sym_u8_SQUOTE] = ACTIONS(1006), + [anon_sym_SQUOTE] = ACTIONS(1006), + [anon_sym_L_DQUOTE] = ACTIONS(1006), + [anon_sym_u_DQUOTE] = ACTIONS(1006), + [anon_sym_U_DQUOTE] = ACTIONS(1006), + [anon_sym_u8_DQUOTE] = ACTIONS(1006), + [anon_sym_DQUOTE] = ACTIONS(1006), + [sym_true] = ACTIONS(1004), + [sym_false] = ACTIONS(1004), + [sym_null] = ACTIONS(1004), + [sym_comment] = ACTIONS(3), + }, + [253] = { + [sym_identifier] = ACTIONS(996), + [aux_sym_preproc_include_token1] = ACTIONS(996), + [aux_sym_preproc_def_token1] = ACTIONS(996), + [aux_sym_preproc_if_token1] = ACTIONS(996), + [aux_sym_preproc_ifdef_token1] = ACTIONS(996), + [aux_sym_preproc_ifdef_token2] = ACTIONS(996), + [sym_preproc_directive] = ACTIONS(996), + [anon_sym_LPAREN2] = ACTIONS(998), + [anon_sym_BANG] = ACTIONS(998), + [anon_sym_TILDE] = ACTIONS(998), + [anon_sym_DASH] = ACTIONS(996), + [anon_sym_PLUS] = ACTIONS(996), + [anon_sym_STAR] = ACTIONS(998), + [anon_sym_AMP] = ACTIONS(998), + [anon_sym_SEMI] = ACTIONS(998), + [anon_sym_typedef] = ACTIONS(996), + [anon_sym_extern] = ACTIONS(996), + [anon_sym___attribute__] = ACTIONS(996), + [anon_sym_LBRACK_LBRACK] = ACTIONS(998), + [anon_sym___declspec] = ACTIONS(996), + [anon_sym___cdecl] = ACTIONS(996), + [anon_sym___clrcall] = ACTIONS(996), + [anon_sym___stdcall] = ACTIONS(996), + [anon_sym___fastcall] = ACTIONS(996), + [anon_sym___thiscall] = ACTIONS(996), + [anon_sym___vectorcall] = ACTIONS(996), + [anon_sym_LBRACE] = ACTIONS(998), + [anon_sym_RBRACE] = ACTIONS(998), + [anon_sym_static] = ACTIONS(996), + [anon_sym_auto] = ACTIONS(996), + [anon_sym_register] = ACTIONS(996), + [anon_sym_inline] = ACTIONS(996), + [anon_sym_const] = ACTIONS(996), + [anon_sym_volatile] = ACTIONS(996), + [anon_sym_restrict] = ACTIONS(996), + [anon_sym__Atomic] = ACTIONS(996), + [anon_sym_signed] = ACTIONS(996), + [anon_sym_unsigned] = ACTIONS(996), + [anon_sym_long] = ACTIONS(996), + [anon_sym_short] = ACTIONS(996), + [sym_primitive_type] = ACTIONS(996), + [anon_sym_enum] = ACTIONS(996), + [anon_sym_struct] = ACTIONS(996), + [anon_sym_union] = ACTIONS(996), + [anon_sym_if] = ACTIONS(996), + [anon_sym_else] = ACTIONS(996), + [anon_sym_switch] = ACTIONS(996), + [anon_sym_case] = ACTIONS(996), + [anon_sym_default] = ACTIONS(996), + [anon_sym_while] = ACTIONS(996), + [anon_sym_do] = ACTIONS(996), + [anon_sym_for] = ACTIONS(996), + [anon_sym_return] = ACTIONS(996), + [anon_sym_break] = ACTIONS(996), + [anon_sym_continue] = ACTIONS(996), + [anon_sym_goto] = ACTIONS(996), + [anon_sym_DASH_DASH] = ACTIONS(998), + [anon_sym_PLUS_PLUS] = ACTIONS(998), + [anon_sym_sizeof] = ACTIONS(996), + [sym_number_literal] = ACTIONS(998), + [anon_sym_L_SQUOTE] = ACTIONS(998), + [anon_sym_u_SQUOTE] = ACTIONS(998), + [anon_sym_U_SQUOTE] = ACTIONS(998), + [anon_sym_u8_SQUOTE] = ACTIONS(998), + [anon_sym_SQUOTE] = ACTIONS(998), + [anon_sym_L_DQUOTE] = ACTIONS(998), + [anon_sym_u_DQUOTE] = ACTIONS(998), + [anon_sym_U_DQUOTE] = ACTIONS(998), + [anon_sym_u8_DQUOTE] = ACTIONS(998), + [anon_sym_DQUOTE] = ACTIONS(998), + [sym_true] = ACTIONS(996), + [sym_false] = ACTIONS(996), + [sym_null] = ACTIONS(996), + [sym_comment] = ACTIONS(3), + }, + [254] = { + [sym_identifier] = ACTIONS(992), + [aux_sym_preproc_include_token1] = ACTIONS(992), + [aux_sym_preproc_def_token1] = ACTIONS(992), + [aux_sym_preproc_if_token1] = ACTIONS(992), + [aux_sym_preproc_ifdef_token1] = ACTIONS(992), + [aux_sym_preproc_ifdef_token2] = ACTIONS(992), + [sym_preproc_directive] = ACTIONS(992), + [anon_sym_LPAREN2] = ACTIONS(994), + [anon_sym_BANG] = ACTIONS(994), + [anon_sym_TILDE] = ACTIONS(994), + [anon_sym_DASH] = ACTIONS(992), + [anon_sym_PLUS] = ACTIONS(992), + [anon_sym_STAR] = ACTIONS(994), + [anon_sym_AMP] = ACTIONS(994), + [anon_sym_SEMI] = ACTIONS(994), + [anon_sym_typedef] = ACTIONS(992), + [anon_sym_extern] = ACTIONS(992), + [anon_sym___attribute__] = ACTIONS(992), + [anon_sym_LBRACK_LBRACK] = ACTIONS(994), + [anon_sym___declspec] = ACTIONS(992), + [anon_sym___cdecl] = ACTIONS(992), + [anon_sym___clrcall] = ACTIONS(992), + [anon_sym___stdcall] = ACTIONS(992), + [anon_sym___fastcall] = ACTIONS(992), + [anon_sym___thiscall] = ACTIONS(992), + [anon_sym___vectorcall] = ACTIONS(992), + [anon_sym_LBRACE] = ACTIONS(994), + [anon_sym_RBRACE] = ACTIONS(994), + [anon_sym_static] = ACTIONS(992), + [anon_sym_auto] = ACTIONS(992), + [anon_sym_register] = ACTIONS(992), + [anon_sym_inline] = ACTIONS(992), + [anon_sym_const] = ACTIONS(992), + [anon_sym_volatile] = ACTIONS(992), + [anon_sym_restrict] = ACTIONS(992), + [anon_sym__Atomic] = ACTIONS(992), + [anon_sym_signed] = ACTIONS(992), + [anon_sym_unsigned] = ACTIONS(992), + [anon_sym_long] = ACTIONS(992), + [anon_sym_short] = ACTIONS(992), + [sym_primitive_type] = ACTIONS(992), + [anon_sym_enum] = ACTIONS(992), + [anon_sym_struct] = ACTIONS(992), + [anon_sym_union] = ACTIONS(992), + [anon_sym_if] = ACTIONS(992), + [anon_sym_else] = ACTIONS(992), + [anon_sym_switch] = ACTIONS(992), + [anon_sym_case] = ACTIONS(992), + [anon_sym_default] = ACTIONS(992), + [anon_sym_while] = ACTIONS(992), + [anon_sym_do] = ACTIONS(992), + [anon_sym_for] = ACTIONS(992), + [anon_sym_return] = ACTIONS(992), + [anon_sym_break] = ACTIONS(992), + [anon_sym_continue] = ACTIONS(992), + [anon_sym_goto] = ACTIONS(992), + [anon_sym_DASH_DASH] = ACTIONS(994), + [anon_sym_PLUS_PLUS] = ACTIONS(994), + [anon_sym_sizeof] = ACTIONS(992), + [sym_number_literal] = ACTIONS(994), + [anon_sym_L_SQUOTE] = ACTIONS(994), + [anon_sym_u_SQUOTE] = ACTIONS(994), + [anon_sym_U_SQUOTE] = ACTIONS(994), + [anon_sym_u8_SQUOTE] = ACTIONS(994), + [anon_sym_SQUOTE] = ACTIONS(994), + [anon_sym_L_DQUOTE] = ACTIONS(994), + [anon_sym_u_DQUOTE] = ACTIONS(994), + [anon_sym_U_DQUOTE] = ACTIONS(994), + [anon_sym_u8_DQUOTE] = ACTIONS(994), + [anon_sym_DQUOTE] = ACTIONS(994), + [sym_true] = ACTIONS(992), + [sym_false] = ACTIONS(992), + [sym_null] = ACTIONS(992), + [sym_comment] = ACTIONS(3), + }, + [255] = { + [sym_identifier] = ACTIONS(988), + [aux_sym_preproc_include_token1] = ACTIONS(988), + [aux_sym_preproc_def_token1] = ACTIONS(988), + [aux_sym_preproc_if_token1] = ACTIONS(988), + [aux_sym_preproc_ifdef_token1] = ACTIONS(988), + [aux_sym_preproc_ifdef_token2] = ACTIONS(988), + [sym_preproc_directive] = ACTIONS(988), + [anon_sym_LPAREN2] = ACTIONS(990), + [anon_sym_BANG] = ACTIONS(990), + [anon_sym_TILDE] = ACTIONS(990), + [anon_sym_DASH] = ACTIONS(988), + [anon_sym_PLUS] = ACTIONS(988), + [anon_sym_STAR] = ACTIONS(990), + [anon_sym_AMP] = ACTIONS(990), + [anon_sym_SEMI] = ACTIONS(990), + [anon_sym_typedef] = ACTIONS(988), + [anon_sym_extern] = ACTIONS(988), + [anon_sym___attribute__] = ACTIONS(988), + [anon_sym_LBRACK_LBRACK] = ACTIONS(990), + [anon_sym___declspec] = ACTIONS(988), + [anon_sym___cdecl] = ACTIONS(988), + [anon_sym___clrcall] = ACTIONS(988), + [anon_sym___stdcall] = ACTIONS(988), + [anon_sym___fastcall] = ACTIONS(988), + [anon_sym___thiscall] = ACTIONS(988), + [anon_sym___vectorcall] = ACTIONS(988), + [anon_sym_LBRACE] = ACTIONS(990), + [anon_sym_RBRACE] = ACTIONS(990), + [anon_sym_static] = ACTIONS(988), + [anon_sym_auto] = ACTIONS(988), + [anon_sym_register] = ACTIONS(988), + [anon_sym_inline] = ACTIONS(988), + [anon_sym_const] = ACTIONS(988), + [anon_sym_volatile] = ACTIONS(988), + [anon_sym_restrict] = ACTIONS(988), + [anon_sym__Atomic] = ACTIONS(988), + [anon_sym_signed] = ACTIONS(988), + [anon_sym_unsigned] = ACTIONS(988), + [anon_sym_long] = ACTIONS(988), + [anon_sym_short] = ACTIONS(988), + [sym_primitive_type] = ACTIONS(988), + [anon_sym_enum] = ACTIONS(988), + [anon_sym_struct] = ACTIONS(988), + [anon_sym_union] = ACTIONS(988), + [anon_sym_if] = ACTIONS(988), + [anon_sym_else] = ACTIONS(988), + [anon_sym_switch] = ACTIONS(988), + [anon_sym_case] = ACTIONS(988), + [anon_sym_default] = ACTIONS(988), + [anon_sym_while] = ACTIONS(988), + [anon_sym_do] = ACTIONS(988), + [anon_sym_for] = ACTIONS(988), + [anon_sym_return] = ACTIONS(988), + [anon_sym_break] = ACTIONS(988), + [anon_sym_continue] = ACTIONS(988), + [anon_sym_goto] = ACTIONS(988), + [anon_sym_DASH_DASH] = ACTIONS(990), + [anon_sym_PLUS_PLUS] = ACTIONS(990), + [anon_sym_sizeof] = ACTIONS(988), + [sym_number_literal] = ACTIONS(990), + [anon_sym_L_SQUOTE] = ACTIONS(990), + [anon_sym_u_SQUOTE] = ACTIONS(990), + [anon_sym_U_SQUOTE] = ACTIONS(990), + [anon_sym_u8_SQUOTE] = ACTIONS(990), + [anon_sym_SQUOTE] = ACTIONS(990), + [anon_sym_L_DQUOTE] = ACTIONS(990), + [anon_sym_u_DQUOTE] = ACTIONS(990), + [anon_sym_U_DQUOTE] = ACTIONS(990), + [anon_sym_u8_DQUOTE] = ACTIONS(990), + [anon_sym_DQUOTE] = ACTIONS(990), + [sym_true] = ACTIONS(988), + [sym_false] = ACTIONS(988), + [sym_null] = ACTIONS(988), + [sym_comment] = ACTIONS(3), + }, + [256] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(252), + [sym_attributed_statement] = STATE(252), + [sym_labeled_statement] = STATE(252), + [sym_expression_statement] = STATE(252), + [sym_if_statement] = STATE(252), + [sym_switch_statement] = STATE(252), + [sym_case_statement] = STATE(252), + [sym_while_statement] = STATE(252), + [sym_do_statement] = STATE(252), + [sym_for_statement] = STATE(252), + [sym_return_statement] = STATE(252), + [sym_break_statement] = STATE(252), + [sym_continue_statement] = STATE(252), + [sym_goto_statement] = STATE(252), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [257] = { + [ts_builtin_sym_end] = ACTIONS(900), + [sym_identifier] = ACTIONS(898), + [aux_sym_preproc_include_token1] = ACTIONS(898), + [aux_sym_preproc_def_token1] = ACTIONS(898), + [aux_sym_preproc_if_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token2] = ACTIONS(898), + [sym_preproc_directive] = ACTIONS(898), + [anon_sym_LPAREN2] = ACTIONS(900), + [anon_sym_BANG] = ACTIONS(900), + [anon_sym_TILDE] = ACTIONS(900), + [anon_sym_DASH] = ACTIONS(898), + [anon_sym_PLUS] = ACTIONS(898), + [anon_sym_STAR] = ACTIONS(900), + [anon_sym_AMP] = ACTIONS(900), + [anon_sym_SEMI] = ACTIONS(900), + [anon_sym_typedef] = ACTIONS(898), + [anon_sym_extern] = ACTIONS(898), + [anon_sym___attribute__] = ACTIONS(898), + [anon_sym_LBRACK_LBRACK] = ACTIONS(900), + [anon_sym___declspec] = ACTIONS(898), + [anon_sym___cdecl] = ACTIONS(898), + [anon_sym___clrcall] = ACTIONS(898), + [anon_sym___stdcall] = ACTIONS(898), + [anon_sym___fastcall] = ACTIONS(898), + [anon_sym___thiscall] = ACTIONS(898), + [anon_sym___vectorcall] = ACTIONS(898), + [anon_sym_LBRACE] = ACTIONS(900), + [anon_sym_static] = ACTIONS(898), + [anon_sym_auto] = ACTIONS(898), + [anon_sym_register] = ACTIONS(898), + [anon_sym_inline] = ACTIONS(898), + [anon_sym_const] = ACTIONS(898), + [anon_sym_volatile] = ACTIONS(898), + [anon_sym_restrict] = ACTIONS(898), + [anon_sym__Atomic] = ACTIONS(898), + [anon_sym_signed] = ACTIONS(898), + [anon_sym_unsigned] = ACTIONS(898), + [anon_sym_long] = ACTIONS(898), + [anon_sym_short] = ACTIONS(898), + [sym_primitive_type] = ACTIONS(898), + [anon_sym_enum] = ACTIONS(898), + [anon_sym_struct] = ACTIONS(898), + [anon_sym_union] = ACTIONS(898), + [anon_sym_if] = ACTIONS(898), + [anon_sym_else] = ACTIONS(898), + [anon_sym_switch] = ACTIONS(898), + [anon_sym_case] = ACTIONS(898), + [anon_sym_default] = ACTIONS(898), + [anon_sym_while] = ACTIONS(898), + [anon_sym_do] = ACTIONS(898), + [anon_sym_for] = ACTIONS(898), + [anon_sym_return] = ACTIONS(898), + [anon_sym_break] = ACTIONS(898), + [anon_sym_continue] = ACTIONS(898), + [anon_sym_goto] = ACTIONS(898), + [anon_sym_DASH_DASH] = ACTIONS(900), + [anon_sym_PLUS_PLUS] = ACTIONS(900), + [anon_sym_sizeof] = ACTIONS(898), + [sym_number_literal] = ACTIONS(900), + [anon_sym_L_SQUOTE] = ACTIONS(900), + [anon_sym_u_SQUOTE] = ACTIONS(900), + [anon_sym_U_SQUOTE] = ACTIONS(900), + [anon_sym_u8_SQUOTE] = ACTIONS(900), + [anon_sym_SQUOTE] = ACTIONS(900), + [anon_sym_L_DQUOTE] = ACTIONS(900), + [anon_sym_u_DQUOTE] = ACTIONS(900), + [anon_sym_U_DQUOTE] = ACTIONS(900), + [anon_sym_u8_DQUOTE] = ACTIONS(900), + [anon_sym_DQUOTE] = ACTIONS(900), + [sym_true] = ACTIONS(898), + [sym_false] = ACTIONS(898), + [sym_null] = ACTIONS(898), + [sym_comment] = ACTIONS(3), + }, + [258] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(297), + [sym_attributed_statement] = STATE(297), + [sym_labeled_statement] = STATE(297), + [sym_expression_statement] = STATE(297), + [sym_if_statement] = STATE(297), + [sym_switch_statement] = STATE(297), + [sym_case_statement] = STATE(297), + [sym_while_statement] = STATE(297), + [sym_do_statement] = STATE(297), + [sym_for_statement] = STATE(297), + [sym_return_statement] = STATE(297), + [sym_break_statement] = STATE(297), + [sym_continue_statement] = STATE(297), + [sym_goto_statement] = STATE(297), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [259] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(253), + [sym_attributed_statement] = STATE(253), + [sym_labeled_statement] = STATE(253), + [sym_expression_statement] = STATE(253), + [sym_if_statement] = STATE(253), + [sym_switch_statement] = STATE(253), + [sym_case_statement] = STATE(253), + [sym_while_statement] = STATE(253), + [sym_do_statement] = STATE(253), + [sym_for_statement] = STATE(253), + [sym_return_statement] = STATE(253), + [sym_break_statement] = STATE(253), + [sym_continue_statement] = STATE(253), + [sym_goto_statement] = STATE(253), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [260] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(304), + [sym_attributed_statement] = STATE(304), + [sym_labeled_statement] = STATE(304), + [sym_expression_statement] = STATE(304), + [sym_if_statement] = STATE(304), + [sym_switch_statement] = STATE(304), + [sym_case_statement] = STATE(304), + [sym_while_statement] = STATE(304), + [sym_do_statement] = STATE(304), + [sym_for_statement] = STATE(304), + [sym_return_statement] = STATE(304), + [sym_break_statement] = STATE(304), + [sym_continue_statement] = STATE(304), + [sym_goto_statement] = STATE(304), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [261] = { + [sym_identifier] = ACTIONS(980), + [aux_sym_preproc_include_token1] = ACTIONS(980), + [aux_sym_preproc_def_token1] = ACTIONS(980), + [aux_sym_preproc_if_token1] = ACTIONS(980), + [aux_sym_preproc_ifdef_token1] = ACTIONS(980), + [aux_sym_preproc_ifdef_token2] = ACTIONS(980), + [sym_preproc_directive] = ACTIONS(980), + [anon_sym_LPAREN2] = ACTIONS(982), + [anon_sym_BANG] = ACTIONS(982), + [anon_sym_TILDE] = ACTIONS(982), + [anon_sym_DASH] = ACTIONS(980), + [anon_sym_PLUS] = ACTIONS(980), + [anon_sym_STAR] = ACTIONS(982), + [anon_sym_AMP] = ACTIONS(982), + [anon_sym_SEMI] = ACTIONS(982), + [anon_sym_typedef] = ACTIONS(980), + [anon_sym_extern] = ACTIONS(980), + [anon_sym___attribute__] = ACTIONS(980), + [anon_sym_LBRACK_LBRACK] = ACTIONS(982), + [anon_sym___declspec] = ACTIONS(980), + [anon_sym___cdecl] = ACTIONS(980), + [anon_sym___clrcall] = ACTIONS(980), + [anon_sym___stdcall] = ACTIONS(980), + [anon_sym___fastcall] = ACTIONS(980), + [anon_sym___thiscall] = ACTIONS(980), + [anon_sym___vectorcall] = ACTIONS(980), + [anon_sym_LBRACE] = ACTIONS(982), + [anon_sym_RBRACE] = ACTIONS(982), + [anon_sym_static] = ACTIONS(980), + [anon_sym_auto] = ACTIONS(980), + [anon_sym_register] = ACTIONS(980), + [anon_sym_inline] = ACTIONS(980), + [anon_sym_const] = ACTIONS(980), + [anon_sym_volatile] = ACTIONS(980), + [anon_sym_restrict] = ACTIONS(980), + [anon_sym__Atomic] = ACTIONS(980), + [anon_sym_signed] = ACTIONS(980), + [anon_sym_unsigned] = ACTIONS(980), + [anon_sym_long] = ACTIONS(980), + [anon_sym_short] = ACTIONS(980), + [sym_primitive_type] = ACTIONS(980), + [anon_sym_enum] = ACTIONS(980), + [anon_sym_struct] = ACTIONS(980), + [anon_sym_union] = ACTIONS(980), + [anon_sym_if] = ACTIONS(980), + [anon_sym_else] = ACTIONS(980), + [anon_sym_switch] = ACTIONS(980), + [anon_sym_case] = ACTIONS(980), + [anon_sym_default] = ACTIONS(980), + [anon_sym_while] = ACTIONS(980), + [anon_sym_do] = ACTIONS(980), + [anon_sym_for] = ACTIONS(980), + [anon_sym_return] = ACTIONS(980), + [anon_sym_break] = ACTIONS(980), + [anon_sym_continue] = ACTIONS(980), + [anon_sym_goto] = ACTIONS(980), + [anon_sym_DASH_DASH] = ACTIONS(982), + [anon_sym_PLUS_PLUS] = ACTIONS(982), + [anon_sym_sizeof] = ACTIONS(980), + [sym_number_literal] = ACTIONS(982), + [anon_sym_L_SQUOTE] = ACTIONS(982), + [anon_sym_u_SQUOTE] = ACTIONS(982), + [anon_sym_U_SQUOTE] = ACTIONS(982), + [anon_sym_u8_SQUOTE] = ACTIONS(982), + [anon_sym_SQUOTE] = ACTIONS(982), + [anon_sym_L_DQUOTE] = ACTIONS(982), + [anon_sym_u_DQUOTE] = ACTIONS(982), + [anon_sym_U_DQUOTE] = ACTIONS(982), + [anon_sym_u8_DQUOTE] = ACTIONS(982), + [anon_sym_DQUOTE] = ACTIONS(982), + [sym_true] = ACTIONS(980), + [sym_false] = ACTIONS(980), + [sym_null] = ACTIONS(980), + [sym_comment] = ACTIONS(3), + }, + [262] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(254), + [sym_attributed_statement] = STATE(254), + [sym_labeled_statement] = STATE(254), + [sym_expression_statement] = STATE(254), + [sym_if_statement] = STATE(254), + [sym_switch_statement] = STATE(254), + [sym_case_statement] = STATE(254), + [sym_while_statement] = STATE(254), + [sym_do_statement] = STATE(254), + [sym_for_statement] = STATE(254), + [sym_return_statement] = STATE(254), + [sym_break_statement] = STATE(254), + [sym_continue_statement] = STATE(254), + [sym_goto_statement] = STATE(254), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [263] = { + [sym_identifier] = ACTIONS(976), + [aux_sym_preproc_include_token1] = ACTIONS(976), + [aux_sym_preproc_def_token1] = ACTIONS(976), + [aux_sym_preproc_if_token1] = ACTIONS(976), + [aux_sym_preproc_ifdef_token1] = ACTIONS(976), + [aux_sym_preproc_ifdef_token2] = ACTIONS(976), + [sym_preproc_directive] = ACTIONS(976), + [anon_sym_LPAREN2] = ACTIONS(978), + [anon_sym_BANG] = ACTIONS(978), + [anon_sym_TILDE] = ACTIONS(978), + [anon_sym_DASH] = ACTIONS(976), + [anon_sym_PLUS] = ACTIONS(976), + [anon_sym_STAR] = ACTIONS(978), + [anon_sym_AMP] = ACTIONS(978), + [anon_sym_SEMI] = ACTIONS(978), + [anon_sym_typedef] = ACTIONS(976), + [anon_sym_extern] = ACTIONS(976), + [anon_sym___attribute__] = ACTIONS(976), + [anon_sym_LBRACK_LBRACK] = ACTIONS(978), + [anon_sym___declspec] = ACTIONS(976), + [anon_sym___cdecl] = ACTIONS(976), + [anon_sym___clrcall] = ACTIONS(976), + [anon_sym___stdcall] = ACTIONS(976), + [anon_sym___fastcall] = ACTIONS(976), + [anon_sym___thiscall] = ACTIONS(976), + [anon_sym___vectorcall] = ACTIONS(976), + [anon_sym_LBRACE] = ACTIONS(978), + [anon_sym_RBRACE] = ACTIONS(978), + [anon_sym_static] = ACTIONS(976), + [anon_sym_auto] = ACTIONS(976), + [anon_sym_register] = ACTIONS(976), + [anon_sym_inline] = ACTIONS(976), + [anon_sym_const] = ACTIONS(976), + [anon_sym_volatile] = ACTIONS(976), + [anon_sym_restrict] = ACTIONS(976), + [anon_sym__Atomic] = ACTIONS(976), + [anon_sym_signed] = ACTIONS(976), + [anon_sym_unsigned] = ACTIONS(976), + [anon_sym_long] = ACTIONS(976), + [anon_sym_short] = ACTIONS(976), + [sym_primitive_type] = ACTIONS(976), + [anon_sym_enum] = ACTIONS(976), + [anon_sym_struct] = ACTIONS(976), + [anon_sym_union] = ACTIONS(976), + [anon_sym_if] = ACTIONS(976), + [anon_sym_else] = ACTIONS(976), + [anon_sym_switch] = ACTIONS(976), + [anon_sym_case] = ACTIONS(976), + [anon_sym_default] = ACTIONS(976), + [anon_sym_while] = ACTIONS(976), + [anon_sym_do] = ACTIONS(976), + [anon_sym_for] = ACTIONS(976), + [anon_sym_return] = ACTIONS(976), + [anon_sym_break] = ACTIONS(976), + [anon_sym_continue] = ACTIONS(976), + [anon_sym_goto] = ACTIONS(976), + [anon_sym_DASH_DASH] = ACTIONS(978), + [anon_sym_PLUS_PLUS] = ACTIONS(978), + [anon_sym_sizeof] = ACTIONS(976), + [sym_number_literal] = ACTIONS(978), + [anon_sym_L_SQUOTE] = ACTIONS(978), + [anon_sym_u_SQUOTE] = ACTIONS(978), + [anon_sym_U_SQUOTE] = ACTIONS(978), + [anon_sym_u8_SQUOTE] = ACTIONS(978), + [anon_sym_SQUOTE] = ACTIONS(978), + [anon_sym_L_DQUOTE] = ACTIONS(978), + [anon_sym_u_DQUOTE] = ACTIONS(978), + [anon_sym_U_DQUOTE] = ACTIONS(978), + [anon_sym_u8_DQUOTE] = ACTIONS(978), + [anon_sym_DQUOTE] = ACTIONS(978), + [sym_true] = ACTIONS(976), + [sym_false] = ACTIONS(976), + [sym_null] = ACTIONS(976), + [sym_comment] = ACTIONS(3), + }, + [264] = { + [ts_builtin_sym_end] = ACTIONS(900), + [sym_identifier] = ACTIONS(898), + [aux_sym_preproc_include_token1] = ACTIONS(898), + [aux_sym_preproc_def_token1] = ACTIONS(898), + [aux_sym_preproc_if_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token2] = ACTIONS(898), + [sym_preproc_directive] = ACTIONS(898), + [anon_sym_LPAREN2] = ACTIONS(900), + [anon_sym_BANG] = ACTIONS(900), + [anon_sym_TILDE] = ACTIONS(900), + [anon_sym_DASH] = ACTIONS(898), + [anon_sym_PLUS] = ACTIONS(898), + [anon_sym_STAR] = ACTIONS(900), + [anon_sym_AMP] = ACTIONS(900), + [anon_sym_SEMI] = ACTIONS(900), + [anon_sym_typedef] = ACTIONS(898), + [anon_sym_extern] = ACTIONS(898), + [anon_sym___attribute__] = ACTIONS(898), + [anon_sym_LBRACK_LBRACK] = ACTIONS(900), + [anon_sym___declspec] = ACTIONS(898), + [anon_sym___cdecl] = ACTIONS(898), + [anon_sym___clrcall] = ACTIONS(898), + [anon_sym___stdcall] = ACTIONS(898), + [anon_sym___fastcall] = ACTIONS(898), + [anon_sym___thiscall] = ACTIONS(898), + [anon_sym___vectorcall] = ACTIONS(898), + [anon_sym_LBRACE] = ACTIONS(900), + [anon_sym_static] = ACTIONS(898), + [anon_sym_auto] = ACTIONS(898), + [anon_sym_register] = ACTIONS(898), + [anon_sym_inline] = ACTIONS(898), + [anon_sym_const] = ACTIONS(898), + [anon_sym_volatile] = ACTIONS(898), + [anon_sym_restrict] = ACTIONS(898), + [anon_sym__Atomic] = ACTIONS(898), + [anon_sym_signed] = ACTIONS(898), + [anon_sym_unsigned] = ACTIONS(898), + [anon_sym_long] = ACTIONS(898), + [anon_sym_short] = ACTIONS(898), + [sym_primitive_type] = ACTIONS(898), + [anon_sym_enum] = ACTIONS(898), + [anon_sym_struct] = ACTIONS(898), + [anon_sym_union] = ACTIONS(898), + [anon_sym_if] = ACTIONS(898), + [anon_sym_else] = ACTIONS(898), + [anon_sym_switch] = ACTIONS(898), + [anon_sym_case] = ACTIONS(898), + [anon_sym_default] = ACTIONS(898), + [anon_sym_while] = ACTIONS(898), + [anon_sym_do] = ACTIONS(898), + [anon_sym_for] = ACTIONS(898), + [anon_sym_return] = ACTIONS(898), + [anon_sym_break] = ACTIONS(898), + [anon_sym_continue] = ACTIONS(898), + [anon_sym_goto] = ACTIONS(898), + [anon_sym_DASH_DASH] = ACTIONS(900), + [anon_sym_PLUS_PLUS] = ACTIONS(900), + [anon_sym_sizeof] = ACTIONS(898), + [sym_number_literal] = ACTIONS(900), + [anon_sym_L_SQUOTE] = ACTIONS(900), + [anon_sym_u_SQUOTE] = ACTIONS(900), + [anon_sym_U_SQUOTE] = ACTIONS(900), + [anon_sym_u8_SQUOTE] = ACTIONS(900), + [anon_sym_SQUOTE] = ACTIONS(900), + [anon_sym_L_DQUOTE] = ACTIONS(900), + [anon_sym_u_DQUOTE] = ACTIONS(900), + [anon_sym_U_DQUOTE] = ACTIONS(900), + [anon_sym_u8_DQUOTE] = ACTIONS(900), + [anon_sym_DQUOTE] = ACTIONS(900), + [sym_true] = ACTIONS(898), + [sym_false] = ACTIONS(898), + [sym_null] = ACTIONS(898), + [sym_comment] = ACTIONS(3), + }, + [265] = { + [sym_identifier] = ACTIONS(972), + [aux_sym_preproc_include_token1] = ACTIONS(972), + [aux_sym_preproc_def_token1] = ACTIONS(972), + [aux_sym_preproc_if_token1] = ACTIONS(972), + [aux_sym_preproc_ifdef_token1] = ACTIONS(972), + [aux_sym_preproc_ifdef_token2] = ACTIONS(972), + [sym_preproc_directive] = ACTIONS(972), + [anon_sym_LPAREN2] = ACTIONS(974), + [anon_sym_BANG] = ACTIONS(974), + [anon_sym_TILDE] = ACTIONS(974), + [anon_sym_DASH] = ACTIONS(972), + [anon_sym_PLUS] = ACTIONS(972), + [anon_sym_STAR] = ACTIONS(974), + [anon_sym_AMP] = ACTIONS(974), + [anon_sym_SEMI] = ACTIONS(974), + [anon_sym_typedef] = ACTIONS(972), + [anon_sym_extern] = ACTIONS(972), + [anon_sym___attribute__] = ACTIONS(972), + [anon_sym_LBRACK_LBRACK] = ACTIONS(974), + [anon_sym___declspec] = ACTIONS(972), + [anon_sym___cdecl] = ACTIONS(972), + [anon_sym___clrcall] = ACTIONS(972), + [anon_sym___stdcall] = ACTIONS(972), + [anon_sym___fastcall] = ACTIONS(972), + [anon_sym___thiscall] = ACTIONS(972), + [anon_sym___vectorcall] = ACTIONS(972), + [anon_sym_LBRACE] = ACTIONS(974), + [anon_sym_RBRACE] = ACTIONS(974), + [anon_sym_static] = ACTIONS(972), + [anon_sym_auto] = ACTIONS(972), + [anon_sym_register] = ACTIONS(972), + [anon_sym_inline] = ACTIONS(972), + [anon_sym_const] = ACTIONS(972), + [anon_sym_volatile] = ACTIONS(972), + [anon_sym_restrict] = ACTIONS(972), + [anon_sym__Atomic] = ACTIONS(972), + [anon_sym_signed] = ACTIONS(972), + [anon_sym_unsigned] = ACTIONS(972), + [anon_sym_long] = ACTIONS(972), + [anon_sym_short] = ACTIONS(972), + [sym_primitive_type] = ACTIONS(972), + [anon_sym_enum] = ACTIONS(972), + [anon_sym_struct] = ACTIONS(972), + [anon_sym_union] = ACTIONS(972), + [anon_sym_if] = ACTIONS(972), + [anon_sym_else] = ACTIONS(972), + [anon_sym_switch] = ACTIONS(972), + [anon_sym_case] = ACTIONS(972), + [anon_sym_default] = ACTIONS(972), + [anon_sym_while] = ACTIONS(972), + [anon_sym_do] = ACTIONS(972), + [anon_sym_for] = ACTIONS(972), + [anon_sym_return] = ACTIONS(972), + [anon_sym_break] = ACTIONS(972), + [anon_sym_continue] = ACTIONS(972), + [anon_sym_goto] = ACTIONS(972), + [anon_sym_DASH_DASH] = ACTIONS(974), + [anon_sym_PLUS_PLUS] = ACTIONS(974), + [anon_sym_sizeof] = ACTIONS(972), + [sym_number_literal] = ACTIONS(974), + [anon_sym_L_SQUOTE] = ACTIONS(974), + [anon_sym_u_SQUOTE] = ACTIONS(974), + [anon_sym_U_SQUOTE] = ACTIONS(974), + [anon_sym_u8_SQUOTE] = ACTIONS(974), + [anon_sym_SQUOTE] = ACTIONS(974), + [anon_sym_L_DQUOTE] = ACTIONS(974), + [anon_sym_u_DQUOTE] = ACTIONS(974), + [anon_sym_U_DQUOTE] = ACTIONS(974), + [anon_sym_u8_DQUOTE] = ACTIONS(974), + [anon_sym_DQUOTE] = ACTIONS(974), + [sym_true] = ACTIONS(972), + [sym_false] = ACTIONS(972), + [sym_null] = ACTIONS(972), + [sym_comment] = ACTIONS(3), + }, + [266] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(255), + [sym_attributed_statement] = STATE(255), + [sym_labeled_statement] = STATE(255), + [sym_expression_statement] = STATE(255), + [sym_if_statement] = STATE(255), + [sym_switch_statement] = STATE(255), + [sym_case_statement] = STATE(255), + [sym_while_statement] = STATE(255), + [sym_do_statement] = STATE(255), + [sym_for_statement] = STATE(255), + [sym_return_statement] = STATE(255), + [sym_break_statement] = STATE(255), + [sym_continue_statement] = STATE(255), + [sym_goto_statement] = STATE(255), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [267] = { + [sym_identifier] = ACTIONS(968), + [aux_sym_preproc_include_token1] = ACTIONS(968), + [aux_sym_preproc_def_token1] = ACTIONS(968), + [aux_sym_preproc_if_token1] = ACTIONS(968), + [aux_sym_preproc_ifdef_token1] = ACTIONS(968), + [aux_sym_preproc_ifdef_token2] = ACTIONS(968), + [sym_preproc_directive] = ACTIONS(968), + [anon_sym_LPAREN2] = ACTIONS(970), + [anon_sym_BANG] = ACTIONS(970), + [anon_sym_TILDE] = ACTIONS(970), + [anon_sym_DASH] = ACTIONS(968), + [anon_sym_PLUS] = ACTIONS(968), + [anon_sym_STAR] = ACTIONS(970), + [anon_sym_AMP] = ACTIONS(970), + [anon_sym_SEMI] = ACTIONS(970), + [anon_sym_typedef] = ACTIONS(968), + [anon_sym_extern] = ACTIONS(968), + [anon_sym___attribute__] = ACTIONS(968), + [anon_sym_LBRACK_LBRACK] = ACTIONS(970), + [anon_sym___declspec] = ACTIONS(968), + [anon_sym___cdecl] = ACTIONS(968), + [anon_sym___clrcall] = ACTIONS(968), + [anon_sym___stdcall] = ACTIONS(968), + [anon_sym___fastcall] = ACTIONS(968), + [anon_sym___thiscall] = ACTIONS(968), + [anon_sym___vectorcall] = ACTIONS(968), + [anon_sym_LBRACE] = ACTIONS(970), + [anon_sym_RBRACE] = ACTIONS(970), + [anon_sym_static] = ACTIONS(968), + [anon_sym_auto] = ACTIONS(968), + [anon_sym_register] = ACTIONS(968), + [anon_sym_inline] = ACTIONS(968), + [anon_sym_const] = ACTIONS(968), + [anon_sym_volatile] = ACTIONS(968), + [anon_sym_restrict] = ACTIONS(968), + [anon_sym__Atomic] = ACTIONS(968), + [anon_sym_signed] = ACTIONS(968), + [anon_sym_unsigned] = ACTIONS(968), + [anon_sym_long] = ACTIONS(968), + [anon_sym_short] = ACTIONS(968), + [sym_primitive_type] = ACTIONS(968), + [anon_sym_enum] = ACTIONS(968), + [anon_sym_struct] = ACTIONS(968), + [anon_sym_union] = ACTIONS(968), + [anon_sym_if] = ACTIONS(968), + [anon_sym_else] = ACTIONS(968), + [anon_sym_switch] = ACTIONS(968), + [anon_sym_case] = ACTIONS(968), + [anon_sym_default] = ACTIONS(968), + [anon_sym_while] = ACTIONS(968), + [anon_sym_do] = ACTIONS(968), + [anon_sym_for] = ACTIONS(968), + [anon_sym_return] = ACTIONS(968), + [anon_sym_break] = ACTIONS(968), + [anon_sym_continue] = ACTIONS(968), + [anon_sym_goto] = ACTIONS(968), + [anon_sym_DASH_DASH] = ACTIONS(970), + [anon_sym_PLUS_PLUS] = ACTIONS(970), + [anon_sym_sizeof] = ACTIONS(968), + [sym_number_literal] = ACTIONS(970), + [anon_sym_L_SQUOTE] = ACTIONS(970), + [anon_sym_u_SQUOTE] = ACTIONS(970), + [anon_sym_U_SQUOTE] = ACTIONS(970), + [anon_sym_u8_SQUOTE] = ACTIONS(970), + [anon_sym_SQUOTE] = ACTIONS(970), + [anon_sym_L_DQUOTE] = ACTIONS(970), + [anon_sym_u_DQUOTE] = ACTIONS(970), + [anon_sym_U_DQUOTE] = ACTIONS(970), + [anon_sym_u8_DQUOTE] = ACTIONS(970), + [anon_sym_DQUOTE] = ACTIONS(970), + [sym_true] = ACTIONS(968), + [sym_false] = ACTIONS(968), + [sym_null] = ACTIONS(968), + [sym_comment] = ACTIONS(3), + }, + [268] = { + [sym_identifier] = ACTIONS(956), + [aux_sym_preproc_include_token1] = ACTIONS(956), + [aux_sym_preproc_def_token1] = ACTIONS(956), + [aux_sym_preproc_if_token1] = ACTIONS(956), + [aux_sym_preproc_ifdef_token1] = ACTIONS(956), + [aux_sym_preproc_ifdef_token2] = ACTIONS(956), + [sym_preproc_directive] = ACTIONS(956), + [anon_sym_LPAREN2] = ACTIONS(958), + [anon_sym_BANG] = ACTIONS(958), + [anon_sym_TILDE] = ACTIONS(958), + [anon_sym_DASH] = ACTIONS(956), + [anon_sym_PLUS] = ACTIONS(956), + [anon_sym_STAR] = ACTIONS(958), + [anon_sym_AMP] = ACTIONS(958), + [anon_sym_SEMI] = ACTIONS(958), + [anon_sym_typedef] = ACTIONS(956), + [anon_sym_extern] = ACTIONS(956), + [anon_sym___attribute__] = ACTIONS(956), + [anon_sym_LBRACK_LBRACK] = ACTIONS(958), + [anon_sym___declspec] = ACTIONS(956), + [anon_sym___cdecl] = ACTIONS(956), + [anon_sym___clrcall] = ACTIONS(956), + [anon_sym___stdcall] = ACTIONS(956), + [anon_sym___fastcall] = ACTIONS(956), + [anon_sym___thiscall] = ACTIONS(956), + [anon_sym___vectorcall] = ACTIONS(956), + [anon_sym_LBRACE] = ACTIONS(958), + [anon_sym_RBRACE] = ACTIONS(958), + [anon_sym_static] = ACTIONS(956), + [anon_sym_auto] = ACTIONS(956), + [anon_sym_register] = ACTIONS(956), + [anon_sym_inline] = ACTIONS(956), + [anon_sym_const] = ACTIONS(956), + [anon_sym_volatile] = ACTIONS(956), + [anon_sym_restrict] = ACTIONS(956), + [anon_sym__Atomic] = ACTIONS(956), + [anon_sym_signed] = ACTIONS(956), + [anon_sym_unsigned] = ACTIONS(956), + [anon_sym_long] = ACTIONS(956), + [anon_sym_short] = ACTIONS(956), + [sym_primitive_type] = ACTIONS(956), + [anon_sym_enum] = ACTIONS(956), + [anon_sym_struct] = ACTIONS(956), + [anon_sym_union] = ACTIONS(956), + [anon_sym_if] = ACTIONS(956), + [anon_sym_else] = ACTIONS(956), + [anon_sym_switch] = ACTIONS(956), + [anon_sym_case] = ACTIONS(956), + [anon_sym_default] = ACTIONS(956), + [anon_sym_while] = ACTIONS(956), + [anon_sym_do] = ACTIONS(956), + [anon_sym_for] = ACTIONS(956), + [anon_sym_return] = ACTIONS(956), + [anon_sym_break] = ACTIONS(956), + [anon_sym_continue] = ACTIONS(956), + [anon_sym_goto] = ACTIONS(956), + [anon_sym_DASH_DASH] = ACTIONS(958), + [anon_sym_PLUS_PLUS] = ACTIONS(958), + [anon_sym_sizeof] = ACTIONS(956), + [sym_number_literal] = ACTIONS(958), + [anon_sym_L_SQUOTE] = ACTIONS(958), + [anon_sym_u_SQUOTE] = ACTIONS(958), + [anon_sym_U_SQUOTE] = ACTIONS(958), + [anon_sym_u8_SQUOTE] = ACTIONS(958), + [anon_sym_SQUOTE] = ACTIONS(958), + [anon_sym_L_DQUOTE] = ACTIONS(958), + [anon_sym_u_DQUOTE] = ACTIONS(958), + [anon_sym_U_DQUOTE] = ACTIONS(958), + [anon_sym_u8_DQUOTE] = ACTIONS(958), + [anon_sym_DQUOTE] = ACTIONS(958), + [sym_true] = ACTIONS(956), + [sym_false] = ACTIONS(956), + [sym_null] = ACTIONS(956), + [sym_comment] = ACTIONS(3), + }, + [269] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(261), + [sym_attributed_statement] = STATE(261), + [sym_labeled_statement] = STATE(261), + [sym_expression_statement] = STATE(261), + [sym_if_statement] = STATE(261), + [sym_switch_statement] = STATE(261), + [sym_case_statement] = STATE(261), + [sym_while_statement] = STATE(261), + [sym_do_statement] = STATE(261), + [sym_for_statement] = STATE(261), + [sym_return_statement] = STATE(261), + [sym_break_statement] = STATE(261), + [sym_continue_statement] = STATE(261), + [sym_goto_statement] = STATE(261), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [270] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(263), + [sym_attributed_statement] = STATE(263), + [sym_labeled_statement] = STATE(263), + [sym_expression_statement] = STATE(263), + [sym_if_statement] = STATE(263), + [sym_switch_statement] = STATE(263), + [sym_case_statement] = STATE(263), + [sym_while_statement] = STATE(263), + [sym_do_statement] = STATE(263), + [sym_for_statement] = STATE(263), + [sym_return_statement] = STATE(263), + [sym_break_statement] = STATE(263), + [sym_continue_statement] = STATE(263), + [sym_goto_statement] = STATE(263), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [271] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(265), + [sym_attributed_statement] = STATE(265), + [sym_labeled_statement] = STATE(265), + [sym_expression_statement] = STATE(265), + [sym_if_statement] = STATE(265), + [sym_switch_statement] = STATE(265), + [sym_case_statement] = STATE(265), + [sym_while_statement] = STATE(265), + [sym_do_statement] = STATE(265), + [sym_for_statement] = STATE(265), + [sym_return_statement] = STATE(265), + [sym_break_statement] = STATE(265), + [sym_continue_statement] = STATE(265), + [sym_goto_statement] = STATE(265), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [272] = { + [sym_identifier] = ACTIONS(894), + [aux_sym_preproc_include_token1] = ACTIONS(894), + [aux_sym_preproc_def_token1] = ACTIONS(894), + [aux_sym_preproc_if_token1] = ACTIONS(894), + [aux_sym_preproc_ifdef_token1] = ACTIONS(894), + [aux_sym_preproc_ifdef_token2] = ACTIONS(894), + [sym_preproc_directive] = ACTIONS(894), + [anon_sym_LPAREN2] = ACTIONS(896), + [anon_sym_BANG] = ACTIONS(896), + [anon_sym_TILDE] = ACTIONS(896), + [anon_sym_DASH] = ACTIONS(894), + [anon_sym_PLUS] = ACTIONS(894), + [anon_sym_STAR] = ACTIONS(896), + [anon_sym_AMP] = ACTIONS(896), + [anon_sym_SEMI] = ACTIONS(896), + [anon_sym_typedef] = ACTIONS(894), + [anon_sym_extern] = ACTIONS(894), + [anon_sym___attribute__] = ACTIONS(894), + [anon_sym_LBRACK_LBRACK] = ACTIONS(896), + [anon_sym___declspec] = ACTIONS(894), + [anon_sym___cdecl] = ACTIONS(894), + [anon_sym___clrcall] = ACTIONS(894), + [anon_sym___stdcall] = ACTIONS(894), + [anon_sym___fastcall] = ACTIONS(894), + [anon_sym___thiscall] = ACTIONS(894), + [anon_sym___vectorcall] = ACTIONS(894), + [anon_sym_LBRACE] = ACTIONS(896), + [anon_sym_RBRACE] = ACTIONS(896), + [anon_sym_static] = ACTIONS(894), + [anon_sym_auto] = ACTIONS(894), + [anon_sym_register] = ACTIONS(894), + [anon_sym_inline] = ACTIONS(894), + [anon_sym_const] = ACTIONS(894), + [anon_sym_volatile] = ACTIONS(894), + [anon_sym_restrict] = ACTIONS(894), + [anon_sym__Atomic] = ACTIONS(894), + [anon_sym_signed] = ACTIONS(894), + [anon_sym_unsigned] = ACTIONS(894), + [anon_sym_long] = ACTIONS(894), + [anon_sym_short] = ACTIONS(894), + [sym_primitive_type] = ACTIONS(894), + [anon_sym_enum] = ACTIONS(894), + [anon_sym_struct] = ACTIONS(894), + [anon_sym_union] = ACTIONS(894), + [anon_sym_if] = ACTIONS(894), + [anon_sym_else] = ACTIONS(894), + [anon_sym_switch] = ACTIONS(894), + [anon_sym_case] = ACTIONS(894), + [anon_sym_default] = ACTIONS(894), + [anon_sym_while] = ACTIONS(894), + [anon_sym_do] = ACTIONS(894), + [anon_sym_for] = ACTIONS(894), + [anon_sym_return] = ACTIONS(894), + [anon_sym_break] = ACTIONS(894), + [anon_sym_continue] = ACTIONS(894), + [anon_sym_goto] = ACTIONS(894), + [anon_sym_DASH_DASH] = ACTIONS(896), + [anon_sym_PLUS_PLUS] = ACTIONS(896), + [anon_sym_sizeof] = ACTIONS(894), + [sym_number_literal] = ACTIONS(896), + [anon_sym_L_SQUOTE] = ACTIONS(896), + [anon_sym_u_SQUOTE] = ACTIONS(896), + [anon_sym_U_SQUOTE] = ACTIONS(896), + [anon_sym_u8_SQUOTE] = ACTIONS(896), + [anon_sym_SQUOTE] = ACTIONS(896), + [anon_sym_L_DQUOTE] = ACTIONS(896), + [anon_sym_u_DQUOTE] = ACTIONS(896), + [anon_sym_U_DQUOTE] = ACTIONS(896), + [anon_sym_u8_DQUOTE] = ACTIONS(896), + [anon_sym_DQUOTE] = ACTIONS(896), + [sym_true] = ACTIONS(894), + [sym_false] = ACTIONS(894), + [sym_null] = ACTIONS(894), + [sym_comment] = ACTIONS(3), + }, + [273] = { + [ts_builtin_sym_end] = ACTIONS(1022), + [sym_identifier] = ACTIONS(1020), + [aux_sym_preproc_include_token1] = ACTIONS(1020), + [aux_sym_preproc_def_token1] = ACTIONS(1020), + [aux_sym_preproc_if_token1] = ACTIONS(1020), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1020), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1020), + [sym_preproc_directive] = ACTIONS(1020), + [anon_sym_LPAREN2] = ACTIONS(1022), + [anon_sym_BANG] = ACTIONS(1022), + [anon_sym_TILDE] = ACTIONS(1022), + [anon_sym_DASH] = ACTIONS(1020), + [anon_sym_PLUS] = ACTIONS(1020), + [anon_sym_STAR] = ACTIONS(1022), + [anon_sym_AMP] = ACTIONS(1022), + [anon_sym_SEMI] = ACTIONS(1022), + [anon_sym_typedef] = ACTIONS(1020), + [anon_sym_extern] = ACTIONS(1020), + [anon_sym___attribute__] = ACTIONS(1020), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1022), + [anon_sym___declspec] = ACTIONS(1020), + [anon_sym___cdecl] = ACTIONS(1020), + [anon_sym___clrcall] = ACTIONS(1020), + [anon_sym___stdcall] = ACTIONS(1020), + [anon_sym___fastcall] = ACTIONS(1020), + [anon_sym___thiscall] = ACTIONS(1020), + [anon_sym___vectorcall] = ACTIONS(1020), + [anon_sym_LBRACE] = ACTIONS(1022), + [anon_sym_static] = ACTIONS(1020), + [anon_sym_auto] = ACTIONS(1020), + [anon_sym_register] = ACTIONS(1020), + [anon_sym_inline] = ACTIONS(1020), + [anon_sym_const] = ACTIONS(1020), + [anon_sym_volatile] = ACTIONS(1020), + [anon_sym_restrict] = ACTIONS(1020), + [anon_sym__Atomic] = ACTIONS(1020), + [anon_sym_signed] = ACTIONS(1020), + [anon_sym_unsigned] = ACTIONS(1020), + [anon_sym_long] = ACTIONS(1020), + [anon_sym_short] = ACTIONS(1020), + [sym_primitive_type] = ACTIONS(1020), + [anon_sym_enum] = ACTIONS(1020), + [anon_sym_struct] = ACTIONS(1020), + [anon_sym_union] = ACTIONS(1020), + [anon_sym_if] = ACTIONS(1020), + [anon_sym_else] = ACTIONS(1020), + [anon_sym_switch] = ACTIONS(1020), + [anon_sym_case] = ACTIONS(1020), + [anon_sym_default] = ACTIONS(1020), + [anon_sym_while] = ACTIONS(1020), + [anon_sym_do] = ACTIONS(1020), + [anon_sym_for] = ACTIONS(1020), + [anon_sym_return] = ACTIONS(1020), + [anon_sym_break] = ACTIONS(1020), + [anon_sym_continue] = ACTIONS(1020), + [anon_sym_goto] = ACTIONS(1020), + [anon_sym_DASH_DASH] = ACTIONS(1022), + [anon_sym_PLUS_PLUS] = ACTIONS(1022), + [anon_sym_sizeof] = ACTIONS(1020), + [sym_number_literal] = ACTIONS(1022), + [anon_sym_L_SQUOTE] = ACTIONS(1022), + [anon_sym_u_SQUOTE] = ACTIONS(1022), + [anon_sym_U_SQUOTE] = ACTIONS(1022), + [anon_sym_u8_SQUOTE] = ACTIONS(1022), + [anon_sym_SQUOTE] = ACTIONS(1022), + [anon_sym_L_DQUOTE] = ACTIONS(1022), + [anon_sym_u_DQUOTE] = ACTIONS(1022), + [anon_sym_U_DQUOTE] = ACTIONS(1022), + [anon_sym_u8_DQUOTE] = ACTIONS(1022), + [anon_sym_DQUOTE] = ACTIONS(1022), + [sym_true] = ACTIONS(1020), + [sym_false] = ACTIONS(1020), + [sym_null] = ACTIONS(1020), + [sym_comment] = ACTIONS(3), + }, + [274] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(268), + [sym_attributed_statement] = STATE(268), + [sym_labeled_statement] = STATE(268), + [sym_expression_statement] = STATE(268), + [sym_if_statement] = STATE(268), + [sym_switch_statement] = STATE(268), + [sym_case_statement] = STATE(268), + [sym_while_statement] = STATE(268), + [sym_do_statement] = STATE(268), + [sym_for_statement] = STATE(268), + [sym_return_statement] = STATE(268), + [sym_break_statement] = STATE(268), + [sym_continue_statement] = STATE(268), + [sym_goto_statement] = STATE(268), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [275] = { + [sym_identifier] = ACTIONS(952), + [aux_sym_preproc_include_token1] = ACTIONS(952), + [aux_sym_preproc_def_token1] = ACTIONS(952), + [aux_sym_preproc_if_token1] = ACTIONS(952), + [aux_sym_preproc_ifdef_token1] = ACTIONS(952), + [aux_sym_preproc_ifdef_token2] = ACTIONS(952), + [sym_preproc_directive] = ACTIONS(952), + [anon_sym_LPAREN2] = ACTIONS(954), + [anon_sym_BANG] = ACTIONS(954), + [anon_sym_TILDE] = ACTIONS(954), + [anon_sym_DASH] = ACTIONS(952), + [anon_sym_PLUS] = ACTIONS(952), + [anon_sym_STAR] = ACTIONS(954), + [anon_sym_AMP] = ACTIONS(954), + [anon_sym_SEMI] = ACTIONS(954), + [anon_sym_typedef] = ACTIONS(952), + [anon_sym_extern] = ACTIONS(952), + [anon_sym___attribute__] = ACTIONS(952), + [anon_sym_LBRACK_LBRACK] = ACTIONS(954), + [anon_sym___declspec] = ACTIONS(952), + [anon_sym___cdecl] = ACTIONS(952), + [anon_sym___clrcall] = ACTIONS(952), + [anon_sym___stdcall] = ACTIONS(952), + [anon_sym___fastcall] = ACTIONS(952), + [anon_sym___thiscall] = ACTIONS(952), + [anon_sym___vectorcall] = ACTIONS(952), + [anon_sym_LBRACE] = ACTIONS(954), + [anon_sym_RBRACE] = ACTIONS(954), + [anon_sym_static] = ACTIONS(952), + [anon_sym_auto] = ACTIONS(952), + [anon_sym_register] = ACTIONS(952), + [anon_sym_inline] = ACTIONS(952), + [anon_sym_const] = ACTIONS(952), + [anon_sym_volatile] = ACTIONS(952), + [anon_sym_restrict] = ACTIONS(952), + [anon_sym__Atomic] = ACTIONS(952), + [anon_sym_signed] = ACTIONS(952), + [anon_sym_unsigned] = ACTIONS(952), + [anon_sym_long] = ACTIONS(952), + [anon_sym_short] = ACTIONS(952), + [sym_primitive_type] = ACTIONS(952), + [anon_sym_enum] = ACTIONS(952), + [anon_sym_struct] = ACTIONS(952), + [anon_sym_union] = ACTIONS(952), + [anon_sym_if] = ACTIONS(952), + [anon_sym_else] = ACTIONS(952), + [anon_sym_switch] = ACTIONS(952), + [anon_sym_case] = ACTIONS(952), + [anon_sym_default] = ACTIONS(952), + [anon_sym_while] = ACTIONS(952), + [anon_sym_do] = ACTIONS(952), + [anon_sym_for] = ACTIONS(952), + [anon_sym_return] = ACTIONS(952), + [anon_sym_break] = ACTIONS(952), + [anon_sym_continue] = ACTIONS(952), + [anon_sym_goto] = ACTIONS(952), + [anon_sym_DASH_DASH] = ACTIONS(954), + [anon_sym_PLUS_PLUS] = ACTIONS(954), + [anon_sym_sizeof] = ACTIONS(952), + [sym_number_literal] = ACTIONS(954), + [anon_sym_L_SQUOTE] = ACTIONS(954), + [anon_sym_u_SQUOTE] = ACTIONS(954), + [anon_sym_U_SQUOTE] = ACTIONS(954), + [anon_sym_u8_SQUOTE] = ACTIONS(954), + [anon_sym_SQUOTE] = ACTIONS(954), + [anon_sym_L_DQUOTE] = ACTIONS(954), + [anon_sym_u_DQUOTE] = ACTIONS(954), + [anon_sym_U_DQUOTE] = ACTIONS(954), + [anon_sym_u8_DQUOTE] = ACTIONS(954), + [anon_sym_DQUOTE] = ACTIONS(954), + [sym_true] = ACTIONS(952), + [sym_false] = ACTIONS(952), + [sym_null] = ACTIONS(952), + [sym_comment] = ACTIONS(3), + }, + [276] = { + [sym_identifier] = ACTIONS(940), + [aux_sym_preproc_include_token1] = ACTIONS(940), + [aux_sym_preproc_def_token1] = ACTIONS(940), + [aux_sym_preproc_if_token1] = ACTIONS(940), + [aux_sym_preproc_ifdef_token1] = ACTIONS(940), + [aux_sym_preproc_ifdef_token2] = ACTIONS(940), + [sym_preproc_directive] = ACTIONS(940), + [anon_sym_LPAREN2] = ACTIONS(942), + [anon_sym_BANG] = ACTIONS(942), + [anon_sym_TILDE] = ACTIONS(942), + [anon_sym_DASH] = ACTIONS(940), + [anon_sym_PLUS] = ACTIONS(940), + [anon_sym_STAR] = ACTIONS(942), + [anon_sym_AMP] = ACTIONS(942), + [anon_sym_SEMI] = ACTIONS(942), + [anon_sym_typedef] = ACTIONS(940), + [anon_sym_extern] = ACTIONS(940), + [anon_sym___attribute__] = ACTIONS(940), + [anon_sym_LBRACK_LBRACK] = ACTIONS(942), + [anon_sym___declspec] = ACTIONS(940), + [anon_sym___cdecl] = ACTIONS(940), + [anon_sym___clrcall] = ACTIONS(940), + [anon_sym___stdcall] = ACTIONS(940), + [anon_sym___fastcall] = ACTIONS(940), + [anon_sym___thiscall] = ACTIONS(940), + [anon_sym___vectorcall] = ACTIONS(940), + [anon_sym_LBRACE] = ACTIONS(942), + [anon_sym_RBRACE] = ACTIONS(942), + [anon_sym_static] = ACTIONS(940), + [anon_sym_auto] = ACTIONS(940), + [anon_sym_register] = ACTIONS(940), + [anon_sym_inline] = ACTIONS(940), + [anon_sym_const] = ACTIONS(940), + [anon_sym_volatile] = ACTIONS(940), + [anon_sym_restrict] = ACTIONS(940), + [anon_sym__Atomic] = ACTIONS(940), + [anon_sym_signed] = ACTIONS(940), + [anon_sym_unsigned] = ACTIONS(940), + [anon_sym_long] = ACTIONS(940), + [anon_sym_short] = ACTIONS(940), + [sym_primitive_type] = ACTIONS(940), + [anon_sym_enum] = ACTIONS(940), + [anon_sym_struct] = ACTIONS(940), + [anon_sym_union] = ACTIONS(940), + [anon_sym_if] = ACTIONS(940), + [anon_sym_else] = ACTIONS(940), + [anon_sym_switch] = ACTIONS(940), + [anon_sym_case] = ACTIONS(940), + [anon_sym_default] = ACTIONS(940), + [anon_sym_while] = ACTIONS(940), + [anon_sym_do] = ACTIONS(940), + [anon_sym_for] = ACTIONS(940), + [anon_sym_return] = ACTIONS(940), + [anon_sym_break] = ACTIONS(940), + [anon_sym_continue] = ACTIONS(940), + [anon_sym_goto] = ACTIONS(940), + [anon_sym_DASH_DASH] = ACTIONS(942), + [anon_sym_PLUS_PLUS] = ACTIONS(942), + [anon_sym_sizeof] = ACTIONS(940), + [sym_number_literal] = ACTIONS(942), + [anon_sym_L_SQUOTE] = ACTIONS(942), + [anon_sym_u_SQUOTE] = ACTIONS(942), + [anon_sym_U_SQUOTE] = ACTIONS(942), + [anon_sym_u8_SQUOTE] = ACTIONS(942), + [anon_sym_SQUOTE] = ACTIONS(942), + [anon_sym_L_DQUOTE] = ACTIONS(942), + [anon_sym_u_DQUOTE] = ACTIONS(942), + [anon_sym_U_DQUOTE] = ACTIONS(942), + [anon_sym_u8_DQUOTE] = ACTIONS(942), + [anon_sym_DQUOTE] = ACTIONS(942), + [sym_true] = ACTIONS(940), + [sym_false] = ACTIONS(940), + [sym_null] = ACTIONS(940), + [sym_comment] = ACTIONS(3), + }, + [277] = { + [sym_identifier] = ACTIONS(1020), + [aux_sym_preproc_include_token1] = ACTIONS(1020), + [aux_sym_preproc_def_token1] = ACTIONS(1020), + [aux_sym_preproc_if_token1] = ACTIONS(1020), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1020), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1020), + [sym_preproc_directive] = ACTIONS(1020), + [anon_sym_LPAREN2] = ACTIONS(1022), + [anon_sym_BANG] = ACTIONS(1022), + [anon_sym_TILDE] = ACTIONS(1022), + [anon_sym_DASH] = ACTIONS(1020), + [anon_sym_PLUS] = ACTIONS(1020), + [anon_sym_STAR] = ACTIONS(1022), + [anon_sym_AMP] = ACTIONS(1022), + [anon_sym_SEMI] = ACTIONS(1022), + [anon_sym_typedef] = ACTIONS(1020), + [anon_sym_extern] = ACTIONS(1020), + [anon_sym___attribute__] = ACTIONS(1020), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1022), + [anon_sym___declspec] = ACTIONS(1020), + [anon_sym___cdecl] = ACTIONS(1020), + [anon_sym___clrcall] = ACTIONS(1020), + [anon_sym___stdcall] = ACTIONS(1020), + [anon_sym___fastcall] = ACTIONS(1020), + [anon_sym___thiscall] = ACTIONS(1020), + [anon_sym___vectorcall] = ACTIONS(1020), + [anon_sym_LBRACE] = ACTIONS(1022), + [anon_sym_RBRACE] = ACTIONS(1022), + [anon_sym_static] = ACTIONS(1020), + [anon_sym_auto] = ACTIONS(1020), + [anon_sym_register] = ACTIONS(1020), + [anon_sym_inline] = ACTIONS(1020), + [anon_sym_const] = ACTIONS(1020), + [anon_sym_volatile] = ACTIONS(1020), + [anon_sym_restrict] = ACTIONS(1020), + [anon_sym__Atomic] = ACTIONS(1020), + [anon_sym_signed] = ACTIONS(1020), + [anon_sym_unsigned] = ACTIONS(1020), + [anon_sym_long] = ACTIONS(1020), + [anon_sym_short] = ACTIONS(1020), + [sym_primitive_type] = ACTIONS(1020), + [anon_sym_enum] = ACTIONS(1020), + [anon_sym_struct] = ACTIONS(1020), + [anon_sym_union] = ACTIONS(1020), + [anon_sym_if] = ACTIONS(1020), + [anon_sym_else] = ACTIONS(1020), + [anon_sym_switch] = ACTIONS(1020), + [anon_sym_case] = ACTIONS(1020), + [anon_sym_default] = ACTIONS(1020), + [anon_sym_while] = ACTIONS(1020), + [anon_sym_do] = ACTIONS(1020), + [anon_sym_for] = ACTIONS(1020), + [anon_sym_return] = ACTIONS(1020), + [anon_sym_break] = ACTIONS(1020), + [anon_sym_continue] = ACTIONS(1020), + [anon_sym_goto] = ACTIONS(1020), + [anon_sym_DASH_DASH] = ACTIONS(1022), + [anon_sym_PLUS_PLUS] = ACTIONS(1022), + [anon_sym_sizeof] = ACTIONS(1020), + [sym_number_literal] = ACTIONS(1022), + [anon_sym_L_SQUOTE] = ACTIONS(1022), + [anon_sym_u_SQUOTE] = ACTIONS(1022), + [anon_sym_U_SQUOTE] = ACTIONS(1022), + [anon_sym_u8_SQUOTE] = ACTIONS(1022), + [anon_sym_SQUOTE] = ACTIONS(1022), + [anon_sym_L_DQUOTE] = ACTIONS(1022), + [anon_sym_u_DQUOTE] = ACTIONS(1022), + [anon_sym_U_DQUOTE] = ACTIONS(1022), + [anon_sym_u8_DQUOTE] = ACTIONS(1022), + [anon_sym_DQUOTE] = ACTIONS(1022), + [sym_true] = ACTIONS(1020), + [sym_false] = ACTIONS(1020), + [sym_null] = ACTIONS(1020), + [sym_comment] = ACTIONS(3), + }, + [278] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(272), + [sym_attributed_statement] = STATE(272), + [sym_labeled_statement] = STATE(272), + [sym_expression_statement] = STATE(272), + [sym_if_statement] = STATE(272), + [sym_switch_statement] = STATE(272), + [sym_case_statement] = STATE(272), + [sym_while_statement] = STATE(272), + [sym_do_statement] = STATE(272), + [sym_for_statement] = STATE(272), + [sym_return_statement] = STATE(272), + [sym_break_statement] = STATE(272), + [sym_continue_statement] = STATE(272), + [sym_goto_statement] = STATE(272), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [279] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(275), + [sym_attributed_statement] = STATE(275), + [sym_labeled_statement] = STATE(275), + [sym_expression_statement] = STATE(275), + [sym_if_statement] = STATE(275), + [sym_switch_statement] = STATE(275), + [sym_case_statement] = STATE(275), + [sym_while_statement] = STATE(275), + [sym_do_statement] = STATE(275), + [sym_for_statement] = STATE(275), + [sym_return_statement] = STATE(275), + [sym_break_statement] = STATE(275), + [sym_continue_statement] = STATE(275), + [sym_goto_statement] = STATE(275), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [280] = { + [sym_identifier] = ACTIONS(936), + [aux_sym_preproc_include_token1] = ACTIONS(936), + [aux_sym_preproc_def_token1] = ACTIONS(936), + [aux_sym_preproc_if_token1] = ACTIONS(936), + [aux_sym_preproc_ifdef_token1] = ACTIONS(936), + [aux_sym_preproc_ifdef_token2] = ACTIONS(936), + [sym_preproc_directive] = ACTIONS(936), + [anon_sym_LPAREN2] = ACTIONS(938), + [anon_sym_BANG] = ACTIONS(938), + [anon_sym_TILDE] = ACTIONS(938), + [anon_sym_DASH] = ACTIONS(936), + [anon_sym_PLUS] = ACTIONS(936), + [anon_sym_STAR] = ACTIONS(938), + [anon_sym_AMP] = ACTIONS(938), + [anon_sym_SEMI] = ACTIONS(938), + [anon_sym_typedef] = ACTIONS(936), + [anon_sym_extern] = ACTIONS(936), + [anon_sym___attribute__] = ACTIONS(936), + [anon_sym_LBRACK_LBRACK] = ACTIONS(938), + [anon_sym___declspec] = ACTIONS(936), + [anon_sym___cdecl] = ACTIONS(936), + [anon_sym___clrcall] = ACTIONS(936), + [anon_sym___stdcall] = ACTIONS(936), + [anon_sym___fastcall] = ACTIONS(936), + [anon_sym___thiscall] = ACTIONS(936), + [anon_sym___vectorcall] = ACTIONS(936), + [anon_sym_LBRACE] = ACTIONS(938), + [anon_sym_RBRACE] = ACTIONS(938), + [anon_sym_static] = ACTIONS(936), + [anon_sym_auto] = ACTIONS(936), + [anon_sym_register] = ACTIONS(936), + [anon_sym_inline] = ACTIONS(936), + [anon_sym_const] = ACTIONS(936), + [anon_sym_volatile] = ACTIONS(936), + [anon_sym_restrict] = ACTIONS(936), + [anon_sym__Atomic] = ACTIONS(936), + [anon_sym_signed] = ACTIONS(936), + [anon_sym_unsigned] = ACTIONS(936), + [anon_sym_long] = ACTIONS(936), + [anon_sym_short] = ACTIONS(936), + [sym_primitive_type] = ACTIONS(936), + [anon_sym_enum] = ACTIONS(936), + [anon_sym_struct] = ACTIONS(936), + [anon_sym_union] = ACTIONS(936), + [anon_sym_if] = ACTIONS(936), + [anon_sym_else] = ACTIONS(936), + [anon_sym_switch] = ACTIONS(936), + [anon_sym_case] = ACTIONS(936), + [anon_sym_default] = ACTIONS(936), + [anon_sym_while] = ACTIONS(936), + [anon_sym_do] = ACTIONS(936), + [anon_sym_for] = ACTIONS(936), + [anon_sym_return] = ACTIONS(936), + [anon_sym_break] = ACTIONS(936), + [anon_sym_continue] = ACTIONS(936), + [anon_sym_goto] = ACTIONS(936), + [anon_sym_DASH_DASH] = ACTIONS(938), + [anon_sym_PLUS_PLUS] = ACTIONS(938), + [anon_sym_sizeof] = ACTIONS(936), + [sym_number_literal] = ACTIONS(938), + [anon_sym_L_SQUOTE] = ACTIONS(938), + [anon_sym_u_SQUOTE] = ACTIONS(938), + [anon_sym_U_SQUOTE] = ACTIONS(938), + [anon_sym_u8_SQUOTE] = ACTIONS(938), + [anon_sym_SQUOTE] = ACTIONS(938), + [anon_sym_L_DQUOTE] = ACTIONS(938), + [anon_sym_u_DQUOTE] = ACTIONS(938), + [anon_sym_U_DQUOTE] = ACTIONS(938), + [anon_sym_u8_DQUOTE] = ACTIONS(938), + [anon_sym_DQUOTE] = ACTIONS(938), + [sym_true] = ACTIONS(936), + [sym_false] = ACTIONS(936), + [sym_null] = ACTIONS(936), + [sym_comment] = ACTIONS(3), + }, + [281] = { + [sym_identifier] = ACTIONS(932), + [aux_sym_preproc_include_token1] = ACTIONS(932), + [aux_sym_preproc_def_token1] = ACTIONS(932), + [aux_sym_preproc_if_token1] = ACTIONS(932), + [aux_sym_preproc_ifdef_token1] = ACTIONS(932), + [aux_sym_preproc_ifdef_token2] = ACTIONS(932), + [sym_preproc_directive] = ACTIONS(932), + [anon_sym_LPAREN2] = ACTIONS(934), + [anon_sym_BANG] = ACTIONS(934), + [anon_sym_TILDE] = ACTIONS(934), + [anon_sym_DASH] = ACTIONS(932), + [anon_sym_PLUS] = ACTIONS(932), + [anon_sym_STAR] = ACTIONS(934), + [anon_sym_AMP] = ACTIONS(934), + [anon_sym_SEMI] = ACTIONS(934), + [anon_sym_typedef] = ACTIONS(932), + [anon_sym_extern] = ACTIONS(932), + [anon_sym___attribute__] = ACTIONS(932), + [anon_sym_LBRACK_LBRACK] = ACTIONS(934), + [anon_sym___declspec] = ACTIONS(932), + [anon_sym___cdecl] = ACTIONS(932), + [anon_sym___clrcall] = ACTIONS(932), + [anon_sym___stdcall] = ACTIONS(932), + [anon_sym___fastcall] = ACTIONS(932), + [anon_sym___thiscall] = ACTIONS(932), + [anon_sym___vectorcall] = ACTIONS(932), + [anon_sym_LBRACE] = ACTIONS(934), + [anon_sym_RBRACE] = ACTIONS(934), + [anon_sym_static] = ACTIONS(932), + [anon_sym_auto] = ACTIONS(932), + [anon_sym_register] = ACTIONS(932), + [anon_sym_inline] = ACTIONS(932), + [anon_sym_const] = ACTIONS(932), + [anon_sym_volatile] = ACTIONS(932), + [anon_sym_restrict] = ACTIONS(932), + [anon_sym__Atomic] = ACTIONS(932), + [anon_sym_signed] = ACTIONS(932), + [anon_sym_unsigned] = ACTIONS(932), + [anon_sym_long] = ACTIONS(932), + [anon_sym_short] = ACTIONS(932), + [sym_primitive_type] = ACTIONS(932), + [anon_sym_enum] = ACTIONS(932), + [anon_sym_struct] = ACTIONS(932), + [anon_sym_union] = ACTIONS(932), + [anon_sym_if] = ACTIONS(932), + [anon_sym_else] = ACTIONS(932), + [anon_sym_switch] = ACTIONS(932), + [anon_sym_case] = ACTIONS(932), + [anon_sym_default] = ACTIONS(932), + [anon_sym_while] = ACTIONS(932), + [anon_sym_do] = ACTIONS(932), + [anon_sym_for] = ACTIONS(932), + [anon_sym_return] = ACTIONS(932), + [anon_sym_break] = ACTIONS(932), + [anon_sym_continue] = ACTIONS(932), + [anon_sym_goto] = ACTIONS(932), + [anon_sym_DASH_DASH] = ACTIONS(934), + [anon_sym_PLUS_PLUS] = ACTIONS(934), + [anon_sym_sizeof] = ACTIONS(932), + [sym_number_literal] = ACTIONS(934), + [anon_sym_L_SQUOTE] = ACTIONS(934), + [anon_sym_u_SQUOTE] = ACTIONS(934), + [anon_sym_U_SQUOTE] = ACTIONS(934), + [anon_sym_u8_SQUOTE] = ACTIONS(934), + [anon_sym_SQUOTE] = ACTIONS(934), + [anon_sym_L_DQUOTE] = ACTIONS(934), + [anon_sym_u_DQUOTE] = ACTIONS(934), + [anon_sym_U_DQUOTE] = ACTIONS(934), + [anon_sym_u8_DQUOTE] = ACTIONS(934), + [anon_sym_DQUOTE] = ACTIONS(934), + [sym_true] = ACTIONS(932), + [sym_false] = ACTIONS(932), + [sym_null] = ACTIONS(932), + [sym_comment] = ACTIONS(3), + }, + [282] = { + [sym_identifier] = ACTIONS(1012), + [aux_sym_preproc_include_token1] = ACTIONS(1012), + [aux_sym_preproc_def_token1] = ACTIONS(1012), + [aux_sym_preproc_if_token1] = ACTIONS(1012), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1012), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1012), + [sym_preproc_directive] = ACTIONS(1012), + [anon_sym_LPAREN2] = ACTIONS(1014), + [anon_sym_BANG] = ACTIONS(1014), + [anon_sym_TILDE] = ACTIONS(1014), + [anon_sym_DASH] = ACTIONS(1012), + [anon_sym_PLUS] = ACTIONS(1012), + [anon_sym_STAR] = ACTIONS(1014), + [anon_sym_AMP] = ACTIONS(1014), + [anon_sym_SEMI] = ACTIONS(1014), + [anon_sym_typedef] = ACTIONS(1012), + [anon_sym_extern] = ACTIONS(1012), + [anon_sym___attribute__] = ACTIONS(1012), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1014), + [anon_sym___declspec] = ACTIONS(1012), + [anon_sym___cdecl] = ACTIONS(1012), + [anon_sym___clrcall] = ACTIONS(1012), + [anon_sym___stdcall] = ACTIONS(1012), + [anon_sym___fastcall] = ACTIONS(1012), + [anon_sym___thiscall] = ACTIONS(1012), + [anon_sym___vectorcall] = ACTIONS(1012), + [anon_sym_LBRACE] = ACTIONS(1014), + [anon_sym_RBRACE] = ACTIONS(1014), + [anon_sym_static] = ACTIONS(1012), + [anon_sym_auto] = ACTIONS(1012), + [anon_sym_register] = ACTIONS(1012), + [anon_sym_inline] = ACTIONS(1012), + [anon_sym_const] = ACTIONS(1012), + [anon_sym_volatile] = ACTIONS(1012), + [anon_sym_restrict] = ACTIONS(1012), + [anon_sym__Atomic] = ACTIONS(1012), + [anon_sym_signed] = ACTIONS(1012), + [anon_sym_unsigned] = ACTIONS(1012), + [anon_sym_long] = ACTIONS(1012), + [anon_sym_short] = ACTIONS(1012), + [sym_primitive_type] = ACTIONS(1012), + [anon_sym_enum] = ACTIONS(1012), + [anon_sym_struct] = ACTIONS(1012), + [anon_sym_union] = ACTIONS(1012), + [anon_sym_if] = ACTIONS(1012), + [anon_sym_else] = ACTIONS(1012), + [anon_sym_switch] = ACTIONS(1012), + [anon_sym_case] = ACTIONS(1012), + [anon_sym_default] = ACTIONS(1012), + [anon_sym_while] = ACTIONS(1012), + [anon_sym_do] = ACTIONS(1012), + [anon_sym_for] = ACTIONS(1012), + [anon_sym_return] = ACTIONS(1012), + [anon_sym_break] = ACTIONS(1012), + [anon_sym_continue] = ACTIONS(1012), + [anon_sym_goto] = ACTIONS(1012), + [anon_sym_DASH_DASH] = ACTIONS(1014), + [anon_sym_PLUS_PLUS] = ACTIONS(1014), + [anon_sym_sizeof] = ACTIONS(1012), + [sym_number_literal] = ACTIONS(1014), + [anon_sym_L_SQUOTE] = ACTIONS(1014), + [anon_sym_u_SQUOTE] = ACTIONS(1014), + [anon_sym_U_SQUOTE] = ACTIONS(1014), + [anon_sym_u8_SQUOTE] = ACTIONS(1014), + [anon_sym_SQUOTE] = ACTIONS(1014), + [anon_sym_L_DQUOTE] = ACTIONS(1014), + [anon_sym_u_DQUOTE] = ACTIONS(1014), + [anon_sym_U_DQUOTE] = ACTIONS(1014), + [anon_sym_u8_DQUOTE] = ACTIONS(1014), + [anon_sym_DQUOTE] = ACTIONS(1014), + [sym_true] = ACTIONS(1012), + [sym_false] = ACTIONS(1012), + [sym_null] = ACTIONS(1012), + [sym_comment] = ACTIONS(3), + }, + [283] = { + [sym_identifier] = ACTIONS(956), + [aux_sym_preproc_include_token1] = ACTIONS(956), + [aux_sym_preproc_def_token1] = ACTIONS(956), + [aux_sym_preproc_if_token1] = ACTIONS(956), + [aux_sym_preproc_if_token2] = ACTIONS(956), + [aux_sym_preproc_ifdef_token1] = ACTIONS(956), + [aux_sym_preproc_ifdef_token2] = ACTIONS(956), + [sym_preproc_directive] = ACTIONS(956), + [anon_sym_LPAREN2] = ACTIONS(958), + [anon_sym_BANG] = ACTIONS(958), + [anon_sym_TILDE] = ACTIONS(958), + [anon_sym_DASH] = ACTIONS(956), + [anon_sym_PLUS] = ACTIONS(956), + [anon_sym_STAR] = ACTIONS(958), + [anon_sym_AMP] = ACTIONS(958), + [anon_sym_SEMI] = ACTIONS(958), + [anon_sym_typedef] = ACTIONS(956), + [anon_sym_extern] = ACTIONS(956), + [anon_sym___attribute__] = ACTIONS(956), + [anon_sym_LBRACK_LBRACK] = ACTIONS(958), + [anon_sym___declspec] = ACTIONS(956), + [anon_sym___cdecl] = ACTIONS(956), + [anon_sym___clrcall] = ACTIONS(956), + [anon_sym___stdcall] = ACTIONS(956), + [anon_sym___fastcall] = ACTIONS(956), + [anon_sym___thiscall] = ACTIONS(956), + [anon_sym___vectorcall] = ACTIONS(956), + [anon_sym_LBRACE] = ACTIONS(958), + [anon_sym_static] = ACTIONS(956), + [anon_sym_auto] = ACTIONS(956), + [anon_sym_register] = ACTIONS(956), + [anon_sym_inline] = ACTIONS(956), + [anon_sym_const] = ACTIONS(956), + [anon_sym_volatile] = ACTIONS(956), + [anon_sym_restrict] = ACTIONS(956), + [anon_sym__Atomic] = ACTIONS(956), + [anon_sym_signed] = ACTIONS(956), + [anon_sym_unsigned] = ACTIONS(956), + [anon_sym_long] = ACTIONS(956), + [anon_sym_short] = ACTIONS(956), + [sym_primitive_type] = ACTIONS(956), + [anon_sym_enum] = ACTIONS(956), + [anon_sym_struct] = ACTIONS(956), + [anon_sym_union] = ACTIONS(956), + [anon_sym_if] = ACTIONS(956), + [anon_sym_else] = ACTIONS(956), + [anon_sym_switch] = ACTIONS(956), + [anon_sym_case] = ACTIONS(956), + [anon_sym_default] = ACTIONS(956), + [anon_sym_while] = ACTIONS(956), + [anon_sym_do] = ACTIONS(956), + [anon_sym_for] = ACTIONS(956), + [anon_sym_return] = ACTIONS(956), + [anon_sym_break] = ACTIONS(956), + [anon_sym_continue] = ACTIONS(956), + [anon_sym_goto] = ACTIONS(956), + [anon_sym_DASH_DASH] = ACTIONS(958), + [anon_sym_PLUS_PLUS] = ACTIONS(958), + [anon_sym_sizeof] = ACTIONS(956), + [sym_number_literal] = ACTIONS(958), + [anon_sym_L_SQUOTE] = ACTIONS(958), + [anon_sym_u_SQUOTE] = ACTIONS(958), + [anon_sym_U_SQUOTE] = ACTIONS(958), + [anon_sym_u8_SQUOTE] = ACTIONS(958), + [anon_sym_SQUOTE] = ACTIONS(958), + [anon_sym_L_DQUOTE] = ACTIONS(958), + [anon_sym_u_DQUOTE] = ACTIONS(958), + [anon_sym_U_DQUOTE] = ACTIONS(958), + [anon_sym_u8_DQUOTE] = ACTIONS(958), + [anon_sym_DQUOTE] = ACTIONS(958), + [sym_true] = ACTIONS(956), + [sym_false] = ACTIONS(956), + [sym_null] = ACTIONS(956), + [sym_comment] = ACTIONS(3), + }, + [284] = { + [ts_builtin_sym_end] = ACTIONS(1014), + [sym_identifier] = ACTIONS(1012), + [aux_sym_preproc_include_token1] = ACTIONS(1012), + [aux_sym_preproc_def_token1] = ACTIONS(1012), + [aux_sym_preproc_if_token1] = ACTIONS(1012), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1012), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1012), + [sym_preproc_directive] = ACTIONS(1012), + [anon_sym_LPAREN2] = ACTIONS(1014), + [anon_sym_BANG] = ACTIONS(1014), + [anon_sym_TILDE] = ACTIONS(1014), + [anon_sym_DASH] = ACTIONS(1012), + [anon_sym_PLUS] = ACTIONS(1012), + [anon_sym_STAR] = ACTIONS(1014), + [anon_sym_AMP] = ACTIONS(1014), + [anon_sym_SEMI] = ACTIONS(1014), + [anon_sym_typedef] = ACTIONS(1012), + [anon_sym_extern] = ACTIONS(1012), + [anon_sym___attribute__] = ACTIONS(1012), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1014), + [anon_sym___declspec] = ACTIONS(1012), + [anon_sym___cdecl] = ACTIONS(1012), + [anon_sym___clrcall] = ACTIONS(1012), + [anon_sym___stdcall] = ACTIONS(1012), + [anon_sym___fastcall] = ACTIONS(1012), + [anon_sym___thiscall] = ACTIONS(1012), + [anon_sym___vectorcall] = ACTIONS(1012), + [anon_sym_LBRACE] = ACTIONS(1014), + [anon_sym_static] = ACTIONS(1012), + [anon_sym_auto] = ACTIONS(1012), + [anon_sym_register] = ACTIONS(1012), + [anon_sym_inline] = ACTIONS(1012), + [anon_sym_const] = ACTIONS(1012), + [anon_sym_volatile] = ACTIONS(1012), + [anon_sym_restrict] = ACTIONS(1012), + [anon_sym__Atomic] = ACTIONS(1012), + [anon_sym_signed] = ACTIONS(1012), + [anon_sym_unsigned] = ACTIONS(1012), + [anon_sym_long] = ACTIONS(1012), + [anon_sym_short] = ACTIONS(1012), + [sym_primitive_type] = ACTIONS(1012), + [anon_sym_enum] = ACTIONS(1012), + [anon_sym_struct] = ACTIONS(1012), + [anon_sym_union] = ACTIONS(1012), + [anon_sym_if] = ACTIONS(1012), + [anon_sym_else] = ACTIONS(1012), + [anon_sym_switch] = ACTIONS(1012), + [anon_sym_case] = ACTIONS(1012), + [anon_sym_default] = ACTIONS(1012), + [anon_sym_while] = ACTIONS(1012), + [anon_sym_do] = ACTIONS(1012), + [anon_sym_for] = ACTIONS(1012), + [anon_sym_return] = ACTIONS(1012), + [anon_sym_break] = ACTIONS(1012), + [anon_sym_continue] = ACTIONS(1012), + [anon_sym_goto] = ACTIONS(1012), + [anon_sym_DASH_DASH] = ACTIONS(1014), + [anon_sym_PLUS_PLUS] = ACTIONS(1014), + [anon_sym_sizeof] = ACTIONS(1012), + [sym_number_literal] = ACTIONS(1014), + [anon_sym_L_SQUOTE] = ACTIONS(1014), + [anon_sym_u_SQUOTE] = ACTIONS(1014), + [anon_sym_U_SQUOTE] = ACTIONS(1014), + [anon_sym_u8_SQUOTE] = ACTIONS(1014), + [anon_sym_SQUOTE] = ACTIONS(1014), + [anon_sym_L_DQUOTE] = ACTIONS(1014), + [anon_sym_u_DQUOTE] = ACTIONS(1014), + [anon_sym_U_DQUOTE] = ACTIONS(1014), + [anon_sym_u8_DQUOTE] = ACTIONS(1014), + [anon_sym_DQUOTE] = ACTIONS(1014), + [sym_true] = ACTIONS(1012), + [sym_false] = ACTIONS(1012), + [sym_null] = ACTIONS(1012), + [sym_comment] = ACTIONS(3), + }, + [285] = { + [sym_identifier] = ACTIONS(924), + [aux_sym_preproc_include_token1] = ACTIONS(924), + [aux_sym_preproc_def_token1] = ACTIONS(924), + [aux_sym_preproc_if_token1] = ACTIONS(924), + [aux_sym_preproc_ifdef_token1] = ACTIONS(924), + [aux_sym_preproc_ifdef_token2] = ACTIONS(924), + [sym_preproc_directive] = ACTIONS(924), + [anon_sym_LPAREN2] = ACTIONS(926), + [anon_sym_BANG] = ACTIONS(926), + [anon_sym_TILDE] = ACTIONS(926), + [anon_sym_DASH] = ACTIONS(924), + [anon_sym_PLUS] = ACTIONS(924), + [anon_sym_STAR] = ACTIONS(926), + [anon_sym_AMP] = ACTIONS(926), + [anon_sym_SEMI] = ACTIONS(926), + [anon_sym_typedef] = ACTIONS(924), + [anon_sym_extern] = ACTIONS(924), + [anon_sym___attribute__] = ACTIONS(924), + [anon_sym_LBRACK_LBRACK] = ACTIONS(926), + [anon_sym___declspec] = ACTIONS(924), + [anon_sym___cdecl] = ACTIONS(924), + [anon_sym___clrcall] = ACTIONS(924), + [anon_sym___stdcall] = ACTIONS(924), + [anon_sym___fastcall] = ACTIONS(924), + [anon_sym___thiscall] = ACTIONS(924), + [anon_sym___vectorcall] = ACTIONS(924), + [anon_sym_LBRACE] = ACTIONS(926), + [anon_sym_RBRACE] = ACTIONS(926), + [anon_sym_static] = ACTIONS(924), + [anon_sym_auto] = ACTIONS(924), + [anon_sym_register] = ACTIONS(924), + [anon_sym_inline] = ACTIONS(924), + [anon_sym_const] = ACTIONS(924), + [anon_sym_volatile] = ACTIONS(924), + [anon_sym_restrict] = ACTIONS(924), + [anon_sym__Atomic] = ACTIONS(924), + [anon_sym_signed] = ACTIONS(924), + [anon_sym_unsigned] = ACTIONS(924), + [anon_sym_long] = ACTIONS(924), + [anon_sym_short] = ACTIONS(924), + [sym_primitive_type] = ACTIONS(924), + [anon_sym_enum] = ACTIONS(924), + [anon_sym_struct] = ACTIONS(924), + [anon_sym_union] = ACTIONS(924), + [anon_sym_if] = ACTIONS(924), + [anon_sym_else] = ACTIONS(924), + [anon_sym_switch] = ACTIONS(924), + [anon_sym_case] = ACTIONS(924), + [anon_sym_default] = ACTIONS(924), + [anon_sym_while] = ACTIONS(924), + [anon_sym_do] = ACTIONS(924), + [anon_sym_for] = ACTIONS(924), + [anon_sym_return] = ACTIONS(924), + [anon_sym_break] = ACTIONS(924), + [anon_sym_continue] = ACTIONS(924), + [anon_sym_goto] = ACTIONS(924), + [anon_sym_DASH_DASH] = ACTIONS(926), + [anon_sym_PLUS_PLUS] = ACTIONS(926), + [anon_sym_sizeof] = ACTIONS(924), + [sym_number_literal] = ACTIONS(926), + [anon_sym_L_SQUOTE] = ACTIONS(926), + [anon_sym_u_SQUOTE] = ACTIONS(926), + [anon_sym_U_SQUOTE] = ACTIONS(926), + [anon_sym_u8_SQUOTE] = ACTIONS(926), + [anon_sym_SQUOTE] = ACTIONS(926), + [anon_sym_L_DQUOTE] = ACTIONS(926), + [anon_sym_u_DQUOTE] = ACTIONS(926), + [anon_sym_U_DQUOTE] = ACTIONS(926), + [anon_sym_u8_DQUOTE] = ACTIONS(926), + [anon_sym_DQUOTE] = ACTIONS(926), + [sym_true] = ACTIONS(924), + [sym_false] = ACTIONS(924), + [sym_null] = ACTIONS(924), + [sym_comment] = ACTIONS(3), + }, + [286] = { + [sym_identifier] = ACTIONS(1000), + [aux_sym_preproc_include_token1] = ACTIONS(1000), + [aux_sym_preproc_def_token1] = ACTIONS(1000), + [aux_sym_preproc_if_token1] = ACTIONS(1000), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1000), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1000), + [sym_preproc_directive] = ACTIONS(1000), + [anon_sym_LPAREN2] = ACTIONS(1002), + [anon_sym_BANG] = ACTIONS(1002), + [anon_sym_TILDE] = ACTIONS(1002), + [anon_sym_DASH] = ACTIONS(1000), + [anon_sym_PLUS] = ACTIONS(1000), + [anon_sym_STAR] = ACTIONS(1002), + [anon_sym_AMP] = ACTIONS(1002), + [anon_sym_SEMI] = ACTIONS(1002), + [anon_sym_typedef] = ACTIONS(1000), + [anon_sym_extern] = ACTIONS(1000), + [anon_sym___attribute__] = ACTIONS(1000), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1002), + [anon_sym___declspec] = ACTIONS(1000), + [anon_sym___cdecl] = ACTIONS(1000), + [anon_sym___clrcall] = ACTIONS(1000), + [anon_sym___stdcall] = ACTIONS(1000), + [anon_sym___fastcall] = ACTIONS(1000), + [anon_sym___thiscall] = ACTIONS(1000), + [anon_sym___vectorcall] = ACTIONS(1000), + [anon_sym_LBRACE] = ACTIONS(1002), + [anon_sym_RBRACE] = ACTIONS(1002), + [anon_sym_static] = ACTIONS(1000), + [anon_sym_auto] = ACTIONS(1000), + [anon_sym_register] = ACTIONS(1000), + [anon_sym_inline] = ACTIONS(1000), + [anon_sym_const] = ACTIONS(1000), + [anon_sym_volatile] = ACTIONS(1000), + [anon_sym_restrict] = ACTIONS(1000), + [anon_sym__Atomic] = ACTIONS(1000), + [anon_sym_signed] = ACTIONS(1000), + [anon_sym_unsigned] = ACTIONS(1000), + [anon_sym_long] = ACTIONS(1000), + [anon_sym_short] = ACTIONS(1000), + [sym_primitive_type] = ACTIONS(1000), + [anon_sym_enum] = ACTIONS(1000), + [anon_sym_struct] = ACTIONS(1000), + [anon_sym_union] = ACTIONS(1000), + [anon_sym_if] = ACTIONS(1000), + [anon_sym_else] = ACTIONS(1000), + [anon_sym_switch] = ACTIONS(1000), + [anon_sym_case] = ACTIONS(1000), + [anon_sym_default] = ACTIONS(1000), + [anon_sym_while] = ACTIONS(1000), + [anon_sym_do] = ACTIONS(1000), + [anon_sym_for] = ACTIONS(1000), + [anon_sym_return] = ACTIONS(1000), + [anon_sym_break] = ACTIONS(1000), + [anon_sym_continue] = ACTIONS(1000), + [anon_sym_goto] = ACTIONS(1000), + [anon_sym_DASH_DASH] = ACTIONS(1002), + [anon_sym_PLUS_PLUS] = ACTIONS(1002), + [anon_sym_sizeof] = ACTIONS(1000), + [sym_number_literal] = ACTIONS(1002), + [anon_sym_L_SQUOTE] = ACTIONS(1002), + [anon_sym_u_SQUOTE] = ACTIONS(1002), + [anon_sym_U_SQUOTE] = ACTIONS(1002), + [anon_sym_u8_SQUOTE] = ACTIONS(1002), + [anon_sym_SQUOTE] = ACTIONS(1002), + [anon_sym_L_DQUOTE] = ACTIONS(1002), + [anon_sym_u_DQUOTE] = ACTIONS(1002), + [anon_sym_U_DQUOTE] = ACTIONS(1002), + [anon_sym_u8_DQUOTE] = ACTIONS(1002), + [anon_sym_DQUOTE] = ACTIONS(1002), + [sym_true] = ACTIONS(1000), + [sym_false] = ACTIONS(1000), + [sym_null] = ACTIONS(1000), + [sym_comment] = ACTIONS(3), + }, + [287] = { + [ts_builtin_sym_end] = ACTIONS(904), + [sym_identifier] = ACTIONS(902), + [aux_sym_preproc_include_token1] = ACTIONS(902), + [aux_sym_preproc_def_token1] = ACTIONS(902), + [aux_sym_preproc_if_token1] = ACTIONS(902), + [aux_sym_preproc_ifdef_token1] = ACTIONS(902), + [aux_sym_preproc_ifdef_token2] = ACTIONS(902), + [sym_preproc_directive] = ACTIONS(902), + [anon_sym_LPAREN2] = ACTIONS(904), + [anon_sym_BANG] = ACTIONS(904), + [anon_sym_TILDE] = ACTIONS(904), + [anon_sym_DASH] = ACTIONS(902), + [anon_sym_PLUS] = ACTIONS(902), + [anon_sym_STAR] = ACTIONS(904), + [anon_sym_AMP] = ACTIONS(904), + [anon_sym_SEMI] = ACTIONS(904), + [anon_sym_typedef] = ACTIONS(902), + [anon_sym_extern] = ACTIONS(902), + [anon_sym___attribute__] = ACTIONS(902), + [anon_sym_LBRACK_LBRACK] = ACTIONS(904), + [anon_sym___declspec] = ACTIONS(902), + [anon_sym___cdecl] = ACTIONS(902), + [anon_sym___clrcall] = ACTIONS(902), + [anon_sym___stdcall] = ACTIONS(902), + [anon_sym___fastcall] = ACTIONS(902), + [anon_sym___thiscall] = ACTIONS(902), + [anon_sym___vectorcall] = ACTIONS(902), + [anon_sym_LBRACE] = ACTIONS(904), + [anon_sym_static] = ACTIONS(902), + [anon_sym_auto] = ACTIONS(902), + [anon_sym_register] = ACTIONS(902), + [anon_sym_inline] = ACTIONS(902), + [anon_sym_const] = ACTIONS(902), + [anon_sym_volatile] = ACTIONS(902), + [anon_sym_restrict] = ACTIONS(902), + [anon_sym__Atomic] = ACTIONS(902), + [anon_sym_signed] = ACTIONS(902), + [anon_sym_unsigned] = ACTIONS(902), + [anon_sym_long] = ACTIONS(902), + [anon_sym_short] = ACTIONS(902), + [sym_primitive_type] = ACTIONS(902), + [anon_sym_enum] = ACTIONS(902), + [anon_sym_struct] = ACTIONS(902), + [anon_sym_union] = ACTIONS(902), + [anon_sym_if] = ACTIONS(902), + [anon_sym_else] = ACTIONS(902), + [anon_sym_switch] = ACTIONS(902), + [anon_sym_case] = ACTIONS(902), + [anon_sym_default] = ACTIONS(902), + [anon_sym_while] = ACTIONS(902), + [anon_sym_do] = ACTIONS(902), + [anon_sym_for] = ACTIONS(902), + [anon_sym_return] = ACTIONS(902), + [anon_sym_break] = ACTIONS(902), + [anon_sym_continue] = ACTIONS(902), + [anon_sym_goto] = ACTIONS(902), + [anon_sym_DASH_DASH] = ACTIONS(904), + [anon_sym_PLUS_PLUS] = ACTIONS(904), + [anon_sym_sizeof] = ACTIONS(902), + [sym_number_literal] = ACTIONS(904), + [anon_sym_L_SQUOTE] = ACTIONS(904), + [anon_sym_u_SQUOTE] = ACTIONS(904), + [anon_sym_U_SQUOTE] = ACTIONS(904), + [anon_sym_u8_SQUOTE] = ACTIONS(904), + [anon_sym_SQUOTE] = ACTIONS(904), + [anon_sym_L_DQUOTE] = ACTIONS(904), + [anon_sym_u_DQUOTE] = ACTIONS(904), + [anon_sym_U_DQUOTE] = ACTIONS(904), + [anon_sym_u8_DQUOTE] = ACTIONS(904), + [anon_sym_DQUOTE] = ACTIONS(904), + [sym_true] = ACTIONS(902), + [sym_false] = ACTIONS(902), + [sym_null] = ACTIONS(902), + [sym_comment] = ACTIONS(3), + }, + [288] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(307), + [sym_attributed_statement] = STATE(307), + [sym_labeled_statement] = STATE(307), + [sym_expression_statement] = STATE(307), + [sym_if_statement] = STATE(307), + [sym_switch_statement] = STATE(307), + [sym_case_statement] = STATE(307), + [sym_while_statement] = STATE(307), + [sym_do_statement] = STATE(307), + [sym_for_statement] = STATE(307), + [sym_return_statement] = STATE(307), + [sym_break_statement] = STATE(307), + [sym_continue_statement] = STATE(307), + [sym_goto_statement] = STATE(307), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [289] = { + [sym_identifier] = ACTIONS(984), + [aux_sym_preproc_include_token1] = ACTIONS(984), + [aux_sym_preproc_def_token1] = ACTIONS(984), + [aux_sym_preproc_if_token1] = ACTIONS(984), + [aux_sym_preproc_ifdef_token1] = ACTIONS(984), + [aux_sym_preproc_ifdef_token2] = ACTIONS(984), + [sym_preproc_directive] = ACTIONS(984), + [anon_sym_LPAREN2] = ACTIONS(986), + [anon_sym_BANG] = ACTIONS(986), + [anon_sym_TILDE] = ACTIONS(986), + [anon_sym_DASH] = ACTIONS(984), + [anon_sym_PLUS] = ACTIONS(984), + [anon_sym_STAR] = ACTIONS(986), + [anon_sym_AMP] = ACTIONS(986), + [anon_sym_SEMI] = ACTIONS(986), + [anon_sym_typedef] = ACTIONS(984), + [anon_sym_extern] = ACTIONS(984), + [anon_sym___attribute__] = ACTIONS(984), + [anon_sym_LBRACK_LBRACK] = ACTIONS(986), + [anon_sym___declspec] = ACTIONS(984), + [anon_sym___cdecl] = ACTIONS(984), + [anon_sym___clrcall] = ACTIONS(984), + [anon_sym___stdcall] = ACTIONS(984), + [anon_sym___fastcall] = ACTIONS(984), + [anon_sym___thiscall] = ACTIONS(984), + [anon_sym___vectorcall] = ACTIONS(984), + [anon_sym_LBRACE] = ACTIONS(986), + [anon_sym_RBRACE] = ACTIONS(986), + [anon_sym_static] = ACTIONS(984), + [anon_sym_auto] = ACTIONS(984), + [anon_sym_register] = ACTIONS(984), + [anon_sym_inline] = ACTIONS(984), + [anon_sym_const] = ACTIONS(984), + [anon_sym_volatile] = ACTIONS(984), + [anon_sym_restrict] = ACTIONS(984), + [anon_sym__Atomic] = ACTIONS(984), + [anon_sym_signed] = ACTIONS(984), + [anon_sym_unsigned] = ACTIONS(984), + [anon_sym_long] = ACTIONS(984), + [anon_sym_short] = ACTIONS(984), + [sym_primitive_type] = ACTIONS(984), + [anon_sym_enum] = ACTIONS(984), + [anon_sym_struct] = ACTIONS(984), + [anon_sym_union] = ACTIONS(984), + [anon_sym_if] = ACTIONS(984), + [anon_sym_else] = ACTIONS(984), + [anon_sym_switch] = ACTIONS(984), + [anon_sym_case] = ACTIONS(984), + [anon_sym_default] = ACTIONS(984), + [anon_sym_while] = ACTIONS(984), + [anon_sym_do] = ACTIONS(984), + [anon_sym_for] = ACTIONS(984), + [anon_sym_return] = ACTIONS(984), + [anon_sym_break] = ACTIONS(984), + [anon_sym_continue] = ACTIONS(984), + [anon_sym_goto] = ACTIONS(984), + [anon_sym_DASH_DASH] = ACTIONS(986), + [anon_sym_PLUS_PLUS] = ACTIONS(986), + [anon_sym_sizeof] = ACTIONS(984), + [sym_number_literal] = ACTIONS(986), + [anon_sym_L_SQUOTE] = ACTIONS(986), + [anon_sym_u_SQUOTE] = ACTIONS(986), + [anon_sym_U_SQUOTE] = ACTIONS(986), + [anon_sym_u8_SQUOTE] = ACTIONS(986), + [anon_sym_SQUOTE] = ACTIONS(986), + [anon_sym_L_DQUOTE] = ACTIONS(986), + [anon_sym_u_DQUOTE] = ACTIONS(986), + [anon_sym_U_DQUOTE] = ACTIONS(986), + [anon_sym_u8_DQUOTE] = ACTIONS(986), + [anon_sym_DQUOTE] = ACTIONS(986), + [sym_true] = ACTIONS(984), + [sym_false] = ACTIONS(984), + [sym_null] = ACTIONS(984), + [sym_comment] = ACTIONS(3), + }, + [290] = { + [sym_identifier] = ACTIONS(1008), + [aux_sym_preproc_include_token1] = ACTIONS(1008), + [aux_sym_preproc_def_token1] = ACTIONS(1008), + [aux_sym_preproc_if_token1] = ACTIONS(1008), + [aux_sym_preproc_if_token2] = ACTIONS(1008), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1008), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1008), + [sym_preproc_directive] = ACTIONS(1008), + [anon_sym_LPAREN2] = ACTIONS(1010), + [anon_sym_BANG] = ACTIONS(1010), + [anon_sym_TILDE] = ACTIONS(1010), + [anon_sym_DASH] = ACTIONS(1008), + [anon_sym_PLUS] = ACTIONS(1008), + [anon_sym_STAR] = ACTIONS(1010), + [anon_sym_AMP] = ACTIONS(1010), + [anon_sym_SEMI] = ACTIONS(1010), + [anon_sym_typedef] = ACTIONS(1008), + [anon_sym_extern] = ACTIONS(1008), + [anon_sym___attribute__] = ACTIONS(1008), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1010), + [anon_sym___declspec] = ACTIONS(1008), + [anon_sym___cdecl] = ACTIONS(1008), + [anon_sym___clrcall] = ACTIONS(1008), + [anon_sym___stdcall] = ACTIONS(1008), + [anon_sym___fastcall] = ACTIONS(1008), + [anon_sym___thiscall] = ACTIONS(1008), + [anon_sym___vectorcall] = ACTIONS(1008), + [anon_sym_LBRACE] = ACTIONS(1010), + [anon_sym_static] = ACTIONS(1008), + [anon_sym_auto] = ACTIONS(1008), + [anon_sym_register] = ACTIONS(1008), + [anon_sym_inline] = ACTIONS(1008), + [anon_sym_const] = ACTIONS(1008), + [anon_sym_volatile] = ACTIONS(1008), + [anon_sym_restrict] = ACTIONS(1008), + [anon_sym__Atomic] = ACTIONS(1008), + [anon_sym_signed] = ACTIONS(1008), + [anon_sym_unsigned] = ACTIONS(1008), + [anon_sym_long] = ACTIONS(1008), + [anon_sym_short] = ACTIONS(1008), + [sym_primitive_type] = ACTIONS(1008), + [anon_sym_enum] = ACTIONS(1008), + [anon_sym_struct] = ACTIONS(1008), + [anon_sym_union] = ACTIONS(1008), + [anon_sym_if] = ACTIONS(1008), + [anon_sym_else] = ACTIONS(1008), + [anon_sym_switch] = ACTIONS(1008), + [anon_sym_case] = ACTIONS(1008), + [anon_sym_default] = ACTIONS(1008), + [anon_sym_while] = ACTIONS(1008), + [anon_sym_do] = ACTIONS(1008), + [anon_sym_for] = ACTIONS(1008), + [anon_sym_return] = ACTIONS(1008), + [anon_sym_break] = ACTIONS(1008), + [anon_sym_continue] = ACTIONS(1008), + [anon_sym_goto] = ACTIONS(1008), + [anon_sym_DASH_DASH] = ACTIONS(1010), + [anon_sym_PLUS_PLUS] = ACTIONS(1010), + [anon_sym_sizeof] = ACTIONS(1008), + [sym_number_literal] = ACTIONS(1010), + [anon_sym_L_SQUOTE] = ACTIONS(1010), + [anon_sym_u_SQUOTE] = ACTIONS(1010), + [anon_sym_U_SQUOTE] = ACTIONS(1010), + [anon_sym_u8_SQUOTE] = ACTIONS(1010), + [anon_sym_SQUOTE] = ACTIONS(1010), + [anon_sym_L_DQUOTE] = ACTIONS(1010), + [anon_sym_u_DQUOTE] = ACTIONS(1010), + [anon_sym_U_DQUOTE] = ACTIONS(1010), + [anon_sym_u8_DQUOTE] = ACTIONS(1010), + [anon_sym_DQUOTE] = ACTIONS(1010), + [sym_true] = ACTIONS(1008), + [sym_false] = ACTIONS(1008), + [sym_null] = ACTIONS(1008), + [sym_comment] = ACTIONS(3), + }, + [291] = { + [sym_identifier] = ACTIONS(944), + [aux_sym_preproc_include_token1] = ACTIONS(944), + [aux_sym_preproc_def_token1] = ACTIONS(944), + [aux_sym_preproc_if_token1] = ACTIONS(944), + [aux_sym_preproc_ifdef_token1] = ACTIONS(944), + [aux_sym_preproc_ifdef_token2] = ACTIONS(944), + [sym_preproc_directive] = ACTIONS(944), + [anon_sym_LPAREN2] = ACTIONS(946), + [anon_sym_BANG] = ACTIONS(946), + [anon_sym_TILDE] = ACTIONS(946), + [anon_sym_DASH] = ACTIONS(944), + [anon_sym_PLUS] = ACTIONS(944), + [anon_sym_STAR] = ACTIONS(946), + [anon_sym_AMP] = ACTIONS(946), + [anon_sym_SEMI] = ACTIONS(946), + [anon_sym_typedef] = ACTIONS(944), + [anon_sym_extern] = ACTIONS(944), + [anon_sym___attribute__] = ACTIONS(944), + [anon_sym_LBRACK_LBRACK] = ACTIONS(946), + [anon_sym___declspec] = ACTIONS(944), + [anon_sym___cdecl] = ACTIONS(944), + [anon_sym___clrcall] = ACTIONS(944), + [anon_sym___stdcall] = ACTIONS(944), + [anon_sym___fastcall] = ACTIONS(944), + [anon_sym___thiscall] = ACTIONS(944), + [anon_sym___vectorcall] = ACTIONS(944), + [anon_sym_LBRACE] = ACTIONS(946), + [anon_sym_RBRACE] = ACTIONS(946), + [anon_sym_static] = ACTIONS(944), + [anon_sym_auto] = ACTIONS(944), + [anon_sym_register] = ACTIONS(944), + [anon_sym_inline] = ACTIONS(944), + [anon_sym_const] = ACTIONS(944), + [anon_sym_volatile] = ACTIONS(944), + [anon_sym_restrict] = ACTIONS(944), + [anon_sym__Atomic] = ACTIONS(944), + [anon_sym_signed] = ACTIONS(944), + [anon_sym_unsigned] = ACTIONS(944), + [anon_sym_long] = ACTIONS(944), + [anon_sym_short] = ACTIONS(944), + [sym_primitive_type] = ACTIONS(944), + [anon_sym_enum] = ACTIONS(944), + [anon_sym_struct] = ACTIONS(944), + [anon_sym_union] = ACTIONS(944), + [anon_sym_if] = ACTIONS(944), + [anon_sym_else] = ACTIONS(944), + [anon_sym_switch] = ACTIONS(944), + [anon_sym_case] = ACTIONS(944), + [anon_sym_default] = ACTIONS(944), + [anon_sym_while] = ACTIONS(944), + [anon_sym_do] = ACTIONS(944), + [anon_sym_for] = ACTIONS(944), + [anon_sym_return] = ACTIONS(944), + [anon_sym_break] = ACTIONS(944), + [anon_sym_continue] = ACTIONS(944), + [anon_sym_goto] = ACTIONS(944), + [anon_sym_DASH_DASH] = ACTIONS(946), + [anon_sym_PLUS_PLUS] = ACTIONS(946), + [anon_sym_sizeof] = ACTIONS(944), + [sym_number_literal] = ACTIONS(946), + [anon_sym_L_SQUOTE] = ACTIONS(946), + [anon_sym_u_SQUOTE] = ACTIONS(946), + [anon_sym_U_SQUOTE] = ACTIONS(946), + [anon_sym_u8_SQUOTE] = ACTIONS(946), + [anon_sym_SQUOTE] = ACTIONS(946), + [anon_sym_L_DQUOTE] = ACTIONS(946), + [anon_sym_u_DQUOTE] = ACTIONS(946), + [anon_sym_U_DQUOTE] = ACTIONS(946), + [anon_sym_u8_DQUOTE] = ACTIONS(946), + [anon_sym_DQUOTE] = ACTIONS(946), + [sym_true] = ACTIONS(944), + [sym_false] = ACTIONS(944), + [sym_null] = ACTIONS(944), + [sym_comment] = ACTIONS(3), + }, + [292] = { + [sym_attribute_declaration] = STATE(292), + [sym_compound_statement] = STATE(291), + [sym_attributed_statement] = STATE(291), + [sym_labeled_statement] = STATE(291), + [sym_expression_statement] = STATE(291), + [sym_if_statement] = STATE(291), + [sym_switch_statement] = STATE(291), + [sym_case_statement] = STATE(291), + [sym_while_statement] = STATE(291), + [sym_do_statement] = STATE(291), + [sym_for_statement] = STATE(291), + [sym_return_statement] = STATE(291), + [sym_break_statement] = STATE(291), + [sym_continue_statement] = STATE(291), + [sym_goto_statement] = STATE(291), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(292), + [sym_identifier] = ACTIONS(1297), + [anon_sym_LPAREN2] = ACTIONS(1135), + [anon_sym_BANG] = ACTIONS(1138), + [anon_sym_TILDE] = ACTIONS(1138), + [anon_sym_DASH] = ACTIONS(1141), + [anon_sym_PLUS] = ACTIONS(1141), + [anon_sym_STAR] = ACTIONS(1144), + [anon_sym_AMP] = ACTIONS(1144), + [anon_sym_SEMI] = ACTIONS(1300), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1150), + [anon_sym_LBRACE] = ACTIONS(1303), + [anon_sym_if] = ACTIONS(1306), + [anon_sym_switch] = ACTIONS(1309), + [anon_sym_case] = ACTIONS(1312), + [anon_sym_default] = ACTIONS(1315), + [anon_sym_while] = ACTIONS(1318), + [anon_sym_do] = ACTIONS(1321), + [anon_sym_for] = ACTIONS(1324), + [anon_sym_return] = ACTIONS(1327), + [anon_sym_break] = ACTIONS(1330), + [anon_sym_continue] = ACTIONS(1333), + [anon_sym_goto] = ACTIONS(1336), + [anon_sym_DASH_DASH] = ACTIONS(1189), + [anon_sym_PLUS_PLUS] = ACTIONS(1189), + [anon_sym_sizeof] = ACTIONS(1192), + [sym_number_literal] = ACTIONS(1195), + [anon_sym_L_SQUOTE] = ACTIONS(1198), + [anon_sym_u_SQUOTE] = ACTIONS(1198), + [anon_sym_U_SQUOTE] = ACTIONS(1198), + [anon_sym_u8_SQUOTE] = ACTIONS(1198), + [anon_sym_SQUOTE] = ACTIONS(1198), + [anon_sym_L_DQUOTE] = ACTIONS(1201), + [anon_sym_u_DQUOTE] = ACTIONS(1201), + [anon_sym_U_DQUOTE] = ACTIONS(1201), + [anon_sym_u8_DQUOTE] = ACTIONS(1201), + [anon_sym_DQUOTE] = ACTIONS(1201), + [sym_true] = ACTIONS(1204), + [sym_false] = ACTIONS(1204), + [sym_null] = ACTIONS(1204), + [sym_comment] = ACTIONS(3), + }, + [293] = { + [sym_identifier] = ACTIONS(890), + [aux_sym_preproc_include_token1] = ACTIONS(890), + [aux_sym_preproc_def_token1] = ACTIONS(890), + [aux_sym_preproc_if_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token2] = ACTIONS(890), + [sym_preproc_directive] = ACTIONS(890), + [anon_sym_LPAREN2] = ACTIONS(892), + [anon_sym_BANG] = ACTIONS(892), + [anon_sym_TILDE] = ACTIONS(892), + [anon_sym_DASH] = ACTIONS(890), + [anon_sym_PLUS] = ACTIONS(890), + [anon_sym_STAR] = ACTIONS(892), + [anon_sym_AMP] = ACTIONS(892), + [anon_sym_SEMI] = ACTIONS(892), + [anon_sym_typedef] = ACTIONS(890), + [anon_sym_extern] = ACTIONS(890), + [anon_sym___attribute__] = ACTIONS(890), + [anon_sym_LBRACK_LBRACK] = ACTIONS(892), + [anon_sym___declspec] = ACTIONS(890), + [anon_sym___cdecl] = ACTIONS(890), + [anon_sym___clrcall] = ACTIONS(890), + [anon_sym___stdcall] = ACTIONS(890), + [anon_sym___fastcall] = ACTIONS(890), + [anon_sym___thiscall] = ACTIONS(890), + [anon_sym___vectorcall] = ACTIONS(890), + [anon_sym_LBRACE] = ACTIONS(892), + [anon_sym_RBRACE] = ACTIONS(892), + [anon_sym_static] = ACTIONS(890), + [anon_sym_auto] = ACTIONS(890), + [anon_sym_register] = ACTIONS(890), + [anon_sym_inline] = ACTIONS(890), + [anon_sym_const] = ACTIONS(890), + [anon_sym_volatile] = ACTIONS(890), + [anon_sym_restrict] = ACTIONS(890), + [anon_sym__Atomic] = ACTIONS(890), + [anon_sym_signed] = ACTIONS(890), + [anon_sym_unsigned] = ACTIONS(890), + [anon_sym_long] = ACTIONS(890), + [anon_sym_short] = ACTIONS(890), + [sym_primitive_type] = ACTIONS(890), + [anon_sym_enum] = ACTIONS(890), + [anon_sym_struct] = ACTIONS(890), + [anon_sym_union] = ACTIONS(890), + [anon_sym_if] = ACTIONS(890), + [anon_sym_else] = ACTIONS(890), + [anon_sym_switch] = ACTIONS(890), + [anon_sym_case] = ACTIONS(890), + [anon_sym_default] = ACTIONS(890), + [anon_sym_while] = ACTIONS(890), + [anon_sym_do] = ACTIONS(890), + [anon_sym_for] = ACTIONS(890), + [anon_sym_return] = ACTIONS(890), + [anon_sym_break] = ACTIONS(890), + [anon_sym_continue] = ACTIONS(890), + [anon_sym_goto] = ACTIONS(890), + [anon_sym_DASH_DASH] = ACTIONS(892), + [anon_sym_PLUS_PLUS] = ACTIONS(892), + [anon_sym_sizeof] = ACTIONS(890), + [sym_number_literal] = ACTIONS(892), + [anon_sym_L_SQUOTE] = ACTIONS(892), + [anon_sym_u_SQUOTE] = ACTIONS(892), + [anon_sym_U_SQUOTE] = ACTIONS(892), + [anon_sym_u8_SQUOTE] = ACTIONS(892), + [anon_sym_SQUOTE] = ACTIONS(892), + [anon_sym_L_DQUOTE] = ACTIONS(892), + [anon_sym_u_DQUOTE] = ACTIONS(892), + [anon_sym_U_DQUOTE] = ACTIONS(892), + [anon_sym_u8_DQUOTE] = ACTIONS(892), + [anon_sym_DQUOTE] = ACTIONS(892), + [sym_true] = ACTIONS(890), + [sym_false] = ACTIONS(890), + [sym_null] = ACTIONS(890), + [sym_comment] = ACTIONS(3), + }, + [294] = { + [sym_identifier] = ACTIONS(890), + [aux_sym_preproc_include_token1] = ACTIONS(890), + [aux_sym_preproc_def_token1] = ACTIONS(890), + [aux_sym_preproc_if_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token1] = ACTIONS(890), + [aux_sym_preproc_ifdef_token2] = ACTIONS(890), + [sym_preproc_directive] = ACTIONS(890), + [anon_sym_LPAREN2] = ACTIONS(892), + [anon_sym_BANG] = ACTIONS(892), + [anon_sym_TILDE] = ACTIONS(892), + [anon_sym_DASH] = ACTIONS(890), + [anon_sym_PLUS] = ACTIONS(890), + [anon_sym_STAR] = ACTIONS(892), + [anon_sym_AMP] = ACTIONS(892), + [anon_sym_SEMI] = ACTIONS(892), + [anon_sym_typedef] = ACTIONS(890), + [anon_sym_extern] = ACTIONS(890), + [anon_sym___attribute__] = ACTIONS(890), + [anon_sym_LBRACK_LBRACK] = ACTIONS(892), + [anon_sym___declspec] = ACTIONS(890), + [anon_sym___cdecl] = ACTIONS(890), + [anon_sym___clrcall] = ACTIONS(890), + [anon_sym___stdcall] = ACTIONS(890), + [anon_sym___fastcall] = ACTIONS(890), + [anon_sym___thiscall] = ACTIONS(890), + [anon_sym___vectorcall] = ACTIONS(890), + [anon_sym_LBRACE] = ACTIONS(892), + [anon_sym_RBRACE] = ACTIONS(892), + [anon_sym_static] = ACTIONS(890), + [anon_sym_auto] = ACTIONS(890), + [anon_sym_register] = ACTIONS(890), + [anon_sym_inline] = ACTIONS(890), + [anon_sym_const] = ACTIONS(890), + [anon_sym_volatile] = ACTIONS(890), + [anon_sym_restrict] = ACTIONS(890), + [anon_sym__Atomic] = ACTIONS(890), + [anon_sym_signed] = ACTIONS(890), + [anon_sym_unsigned] = ACTIONS(890), + [anon_sym_long] = ACTIONS(890), + [anon_sym_short] = ACTIONS(890), + [sym_primitive_type] = ACTIONS(890), + [anon_sym_enum] = ACTIONS(890), + [anon_sym_struct] = ACTIONS(890), + [anon_sym_union] = ACTIONS(890), + [anon_sym_if] = ACTIONS(890), + [anon_sym_else] = ACTIONS(890), + [anon_sym_switch] = ACTIONS(890), + [anon_sym_case] = ACTIONS(890), + [anon_sym_default] = ACTIONS(890), + [anon_sym_while] = ACTIONS(890), + [anon_sym_do] = ACTIONS(890), + [anon_sym_for] = ACTIONS(890), + [anon_sym_return] = ACTIONS(890), + [anon_sym_break] = ACTIONS(890), + [anon_sym_continue] = ACTIONS(890), + [anon_sym_goto] = ACTIONS(890), + [anon_sym_DASH_DASH] = ACTIONS(892), + [anon_sym_PLUS_PLUS] = ACTIONS(892), + [anon_sym_sizeof] = ACTIONS(890), + [sym_number_literal] = ACTIONS(892), + [anon_sym_L_SQUOTE] = ACTIONS(892), + [anon_sym_u_SQUOTE] = ACTIONS(892), + [anon_sym_U_SQUOTE] = ACTIONS(892), + [anon_sym_u8_SQUOTE] = ACTIONS(892), + [anon_sym_SQUOTE] = ACTIONS(892), + [anon_sym_L_DQUOTE] = ACTIONS(892), + [anon_sym_u_DQUOTE] = ACTIONS(892), + [anon_sym_U_DQUOTE] = ACTIONS(892), + [anon_sym_u8_DQUOTE] = ACTIONS(892), + [anon_sym_DQUOTE] = ACTIONS(892), + [sym_true] = ACTIONS(890), + [sym_false] = ACTIONS(890), + [sym_null] = ACTIONS(890), + [sym_comment] = ACTIONS(3), + }, + [295] = { + [sym_identifier] = ACTIONS(920), + [aux_sym_preproc_include_token1] = ACTIONS(920), + [aux_sym_preproc_def_token1] = ACTIONS(920), + [aux_sym_preproc_if_token1] = ACTIONS(920), + [aux_sym_preproc_ifdef_token1] = ACTIONS(920), + [aux_sym_preproc_ifdef_token2] = ACTIONS(920), + [sym_preproc_directive] = ACTIONS(920), + [anon_sym_LPAREN2] = ACTIONS(922), + [anon_sym_BANG] = ACTIONS(922), + [anon_sym_TILDE] = ACTIONS(922), + [anon_sym_DASH] = ACTIONS(920), + [anon_sym_PLUS] = ACTIONS(920), + [anon_sym_STAR] = ACTIONS(922), + [anon_sym_AMP] = ACTIONS(922), + [anon_sym_SEMI] = ACTIONS(922), + [anon_sym_typedef] = ACTIONS(920), + [anon_sym_extern] = ACTIONS(920), + [anon_sym___attribute__] = ACTIONS(920), + [anon_sym_LBRACK_LBRACK] = ACTIONS(922), + [anon_sym___declspec] = ACTIONS(920), + [anon_sym___cdecl] = ACTIONS(920), + [anon_sym___clrcall] = ACTIONS(920), + [anon_sym___stdcall] = ACTIONS(920), + [anon_sym___fastcall] = ACTIONS(920), + [anon_sym___thiscall] = ACTIONS(920), + [anon_sym___vectorcall] = ACTIONS(920), + [anon_sym_LBRACE] = ACTIONS(922), + [anon_sym_RBRACE] = ACTIONS(922), + [anon_sym_static] = ACTIONS(920), + [anon_sym_auto] = ACTIONS(920), + [anon_sym_register] = ACTIONS(920), + [anon_sym_inline] = ACTIONS(920), + [anon_sym_const] = ACTIONS(920), + [anon_sym_volatile] = ACTIONS(920), + [anon_sym_restrict] = ACTIONS(920), + [anon_sym__Atomic] = ACTIONS(920), + [anon_sym_signed] = ACTIONS(920), + [anon_sym_unsigned] = ACTIONS(920), + [anon_sym_long] = ACTIONS(920), + [anon_sym_short] = ACTIONS(920), + [sym_primitive_type] = ACTIONS(920), + [anon_sym_enum] = ACTIONS(920), + [anon_sym_struct] = ACTIONS(920), + [anon_sym_union] = ACTIONS(920), + [anon_sym_if] = ACTIONS(920), + [anon_sym_else] = ACTIONS(920), + [anon_sym_switch] = ACTIONS(920), + [anon_sym_case] = ACTIONS(920), + [anon_sym_default] = ACTIONS(920), + [anon_sym_while] = ACTIONS(920), + [anon_sym_do] = ACTIONS(920), + [anon_sym_for] = ACTIONS(920), + [anon_sym_return] = ACTIONS(920), + [anon_sym_break] = ACTIONS(920), + [anon_sym_continue] = ACTIONS(920), + [anon_sym_goto] = ACTIONS(920), + [anon_sym_DASH_DASH] = ACTIONS(922), + [anon_sym_PLUS_PLUS] = ACTIONS(922), + [anon_sym_sizeof] = ACTIONS(920), + [sym_number_literal] = ACTIONS(922), + [anon_sym_L_SQUOTE] = ACTIONS(922), + [anon_sym_u_SQUOTE] = ACTIONS(922), + [anon_sym_U_SQUOTE] = ACTIONS(922), + [anon_sym_u8_SQUOTE] = ACTIONS(922), + [anon_sym_SQUOTE] = ACTIONS(922), + [anon_sym_L_DQUOTE] = ACTIONS(922), + [anon_sym_u_DQUOTE] = ACTIONS(922), + [anon_sym_U_DQUOTE] = ACTIONS(922), + [anon_sym_u8_DQUOTE] = ACTIONS(922), + [anon_sym_DQUOTE] = ACTIONS(922), + [sym_true] = ACTIONS(920), + [sym_false] = ACTIONS(920), + [sym_null] = ACTIONS(920), + [sym_comment] = ACTIONS(3), + }, + [296] = { + [sym_identifier] = ACTIONS(988), + [aux_sym_preproc_include_token1] = ACTIONS(988), + [aux_sym_preproc_def_token1] = ACTIONS(988), + [aux_sym_preproc_if_token1] = ACTIONS(988), + [aux_sym_preproc_if_token2] = ACTIONS(988), + [aux_sym_preproc_ifdef_token1] = ACTIONS(988), + [aux_sym_preproc_ifdef_token2] = ACTIONS(988), + [sym_preproc_directive] = ACTIONS(988), + [anon_sym_LPAREN2] = ACTIONS(990), + [anon_sym_BANG] = ACTIONS(990), + [anon_sym_TILDE] = ACTIONS(990), + [anon_sym_DASH] = ACTIONS(988), + [anon_sym_PLUS] = ACTIONS(988), + [anon_sym_STAR] = ACTIONS(990), + [anon_sym_AMP] = ACTIONS(990), + [anon_sym_SEMI] = ACTIONS(990), + [anon_sym_typedef] = ACTIONS(988), + [anon_sym_extern] = ACTIONS(988), + [anon_sym___attribute__] = ACTIONS(988), + [anon_sym_LBRACK_LBRACK] = ACTIONS(990), + [anon_sym___declspec] = ACTIONS(988), + [anon_sym___cdecl] = ACTIONS(988), + [anon_sym___clrcall] = ACTIONS(988), + [anon_sym___stdcall] = ACTIONS(988), + [anon_sym___fastcall] = ACTIONS(988), + [anon_sym___thiscall] = ACTIONS(988), + [anon_sym___vectorcall] = ACTIONS(988), + [anon_sym_LBRACE] = ACTIONS(990), + [anon_sym_static] = ACTIONS(988), + [anon_sym_auto] = ACTIONS(988), + [anon_sym_register] = ACTIONS(988), + [anon_sym_inline] = ACTIONS(988), + [anon_sym_const] = ACTIONS(988), + [anon_sym_volatile] = ACTIONS(988), + [anon_sym_restrict] = ACTIONS(988), + [anon_sym__Atomic] = ACTIONS(988), + [anon_sym_signed] = ACTIONS(988), + [anon_sym_unsigned] = ACTIONS(988), + [anon_sym_long] = ACTIONS(988), + [anon_sym_short] = ACTIONS(988), + [sym_primitive_type] = ACTIONS(988), + [anon_sym_enum] = ACTIONS(988), + [anon_sym_struct] = ACTIONS(988), + [anon_sym_union] = ACTIONS(988), + [anon_sym_if] = ACTIONS(988), + [anon_sym_else] = ACTIONS(988), + [anon_sym_switch] = ACTIONS(988), + [anon_sym_case] = ACTIONS(988), + [anon_sym_default] = ACTIONS(988), + [anon_sym_while] = ACTIONS(988), + [anon_sym_do] = ACTIONS(988), + [anon_sym_for] = ACTIONS(988), + [anon_sym_return] = ACTIONS(988), + [anon_sym_break] = ACTIONS(988), + [anon_sym_continue] = ACTIONS(988), + [anon_sym_goto] = ACTIONS(988), + [anon_sym_DASH_DASH] = ACTIONS(990), + [anon_sym_PLUS_PLUS] = ACTIONS(990), + [anon_sym_sizeof] = ACTIONS(988), + [sym_number_literal] = ACTIONS(990), + [anon_sym_L_SQUOTE] = ACTIONS(990), + [anon_sym_u_SQUOTE] = ACTIONS(990), + [anon_sym_U_SQUOTE] = ACTIONS(990), + [anon_sym_u8_SQUOTE] = ACTIONS(990), + [anon_sym_SQUOTE] = ACTIONS(990), + [anon_sym_L_DQUOTE] = ACTIONS(990), + [anon_sym_u_DQUOTE] = ACTIONS(990), + [anon_sym_U_DQUOTE] = ACTIONS(990), + [anon_sym_u8_DQUOTE] = ACTIONS(990), + [anon_sym_DQUOTE] = ACTIONS(990), + [sym_true] = ACTIONS(988), + [sym_false] = ACTIONS(988), + [sym_null] = ACTIONS(988), + [sym_comment] = ACTIONS(3), + }, + [297] = { + [sym_identifier] = ACTIONS(914), + [aux_sym_preproc_include_token1] = ACTIONS(914), + [aux_sym_preproc_def_token1] = ACTIONS(914), + [aux_sym_preproc_if_token1] = ACTIONS(914), + [aux_sym_preproc_ifdef_token1] = ACTIONS(914), + [aux_sym_preproc_ifdef_token2] = ACTIONS(914), + [sym_preproc_directive] = ACTIONS(914), + [anon_sym_LPAREN2] = ACTIONS(916), + [anon_sym_BANG] = ACTIONS(916), + [anon_sym_TILDE] = ACTIONS(916), + [anon_sym_DASH] = ACTIONS(914), + [anon_sym_PLUS] = ACTIONS(914), + [anon_sym_STAR] = ACTIONS(916), + [anon_sym_AMP] = ACTIONS(916), + [anon_sym_SEMI] = ACTIONS(916), + [anon_sym_typedef] = ACTIONS(914), + [anon_sym_extern] = ACTIONS(914), + [anon_sym___attribute__] = ACTIONS(914), + [anon_sym_LBRACK_LBRACK] = ACTIONS(916), + [anon_sym___declspec] = ACTIONS(914), + [anon_sym___cdecl] = ACTIONS(914), + [anon_sym___clrcall] = ACTIONS(914), + [anon_sym___stdcall] = ACTIONS(914), + [anon_sym___fastcall] = ACTIONS(914), + [anon_sym___thiscall] = ACTIONS(914), + [anon_sym___vectorcall] = ACTIONS(914), + [anon_sym_LBRACE] = ACTIONS(916), + [anon_sym_RBRACE] = ACTIONS(916), + [anon_sym_static] = ACTIONS(914), + [anon_sym_auto] = ACTIONS(914), + [anon_sym_register] = ACTIONS(914), + [anon_sym_inline] = ACTIONS(914), + [anon_sym_const] = ACTIONS(914), + [anon_sym_volatile] = ACTIONS(914), + [anon_sym_restrict] = ACTIONS(914), + [anon_sym__Atomic] = ACTIONS(914), + [anon_sym_signed] = ACTIONS(914), + [anon_sym_unsigned] = ACTIONS(914), + [anon_sym_long] = ACTIONS(914), + [anon_sym_short] = ACTIONS(914), + [sym_primitive_type] = ACTIONS(914), + [anon_sym_enum] = ACTIONS(914), + [anon_sym_struct] = ACTIONS(914), + [anon_sym_union] = ACTIONS(914), + [anon_sym_if] = ACTIONS(914), + [anon_sym_else] = ACTIONS(1339), + [anon_sym_switch] = ACTIONS(914), + [anon_sym_case] = ACTIONS(914), + [anon_sym_default] = ACTIONS(914), + [anon_sym_while] = ACTIONS(914), + [anon_sym_do] = ACTIONS(914), + [anon_sym_for] = ACTIONS(914), + [anon_sym_return] = ACTIONS(914), + [anon_sym_break] = ACTIONS(914), + [anon_sym_continue] = ACTIONS(914), + [anon_sym_goto] = ACTIONS(914), + [anon_sym_DASH_DASH] = ACTIONS(916), + [anon_sym_PLUS_PLUS] = ACTIONS(916), + [anon_sym_sizeof] = ACTIONS(914), + [sym_number_literal] = ACTIONS(916), + [anon_sym_L_SQUOTE] = ACTIONS(916), + [anon_sym_u_SQUOTE] = ACTIONS(916), + [anon_sym_U_SQUOTE] = ACTIONS(916), + [anon_sym_u8_SQUOTE] = ACTIONS(916), + [anon_sym_SQUOTE] = ACTIONS(916), + [anon_sym_L_DQUOTE] = ACTIONS(916), + [anon_sym_u_DQUOTE] = ACTIONS(916), + [anon_sym_U_DQUOTE] = ACTIONS(916), + [anon_sym_u8_DQUOTE] = ACTIONS(916), + [anon_sym_DQUOTE] = ACTIONS(916), + [sym_true] = ACTIONS(914), + [sym_false] = ACTIONS(914), + [sym_null] = ACTIONS(914), + [sym_comment] = ACTIONS(3), + }, + [298] = { + [sym_identifier] = ACTIONS(992), + [aux_sym_preproc_include_token1] = ACTIONS(992), + [aux_sym_preproc_def_token1] = ACTIONS(992), + [aux_sym_preproc_if_token1] = ACTIONS(992), + [aux_sym_preproc_if_token2] = ACTIONS(992), + [aux_sym_preproc_ifdef_token1] = ACTIONS(992), + [aux_sym_preproc_ifdef_token2] = ACTIONS(992), + [sym_preproc_directive] = ACTIONS(992), + [anon_sym_LPAREN2] = ACTIONS(994), + [anon_sym_BANG] = ACTIONS(994), + [anon_sym_TILDE] = ACTIONS(994), + [anon_sym_DASH] = ACTIONS(992), + [anon_sym_PLUS] = ACTIONS(992), + [anon_sym_STAR] = ACTIONS(994), + [anon_sym_AMP] = ACTIONS(994), + [anon_sym_SEMI] = ACTIONS(994), + [anon_sym_typedef] = ACTIONS(992), + [anon_sym_extern] = ACTIONS(992), + [anon_sym___attribute__] = ACTIONS(992), + [anon_sym_LBRACK_LBRACK] = ACTIONS(994), + [anon_sym___declspec] = ACTIONS(992), + [anon_sym___cdecl] = ACTIONS(992), + [anon_sym___clrcall] = ACTIONS(992), + [anon_sym___stdcall] = ACTIONS(992), + [anon_sym___fastcall] = ACTIONS(992), + [anon_sym___thiscall] = ACTIONS(992), + [anon_sym___vectorcall] = ACTIONS(992), + [anon_sym_LBRACE] = ACTIONS(994), + [anon_sym_static] = ACTIONS(992), + [anon_sym_auto] = ACTIONS(992), + [anon_sym_register] = ACTIONS(992), + [anon_sym_inline] = ACTIONS(992), + [anon_sym_const] = ACTIONS(992), + [anon_sym_volatile] = ACTIONS(992), + [anon_sym_restrict] = ACTIONS(992), + [anon_sym__Atomic] = ACTIONS(992), + [anon_sym_signed] = ACTIONS(992), + [anon_sym_unsigned] = ACTIONS(992), + [anon_sym_long] = ACTIONS(992), + [anon_sym_short] = ACTIONS(992), + [sym_primitive_type] = ACTIONS(992), + [anon_sym_enum] = ACTIONS(992), + [anon_sym_struct] = ACTIONS(992), + [anon_sym_union] = ACTIONS(992), + [anon_sym_if] = ACTIONS(992), + [anon_sym_else] = ACTIONS(992), + [anon_sym_switch] = ACTIONS(992), + [anon_sym_case] = ACTIONS(992), + [anon_sym_default] = ACTIONS(992), + [anon_sym_while] = ACTIONS(992), + [anon_sym_do] = ACTIONS(992), + [anon_sym_for] = ACTIONS(992), + [anon_sym_return] = ACTIONS(992), + [anon_sym_break] = ACTIONS(992), + [anon_sym_continue] = ACTIONS(992), + [anon_sym_goto] = ACTIONS(992), + [anon_sym_DASH_DASH] = ACTIONS(994), + [anon_sym_PLUS_PLUS] = ACTIONS(994), + [anon_sym_sizeof] = ACTIONS(992), + [sym_number_literal] = ACTIONS(994), + [anon_sym_L_SQUOTE] = ACTIONS(994), + [anon_sym_u_SQUOTE] = ACTIONS(994), + [anon_sym_U_SQUOTE] = ACTIONS(994), + [anon_sym_u8_SQUOTE] = ACTIONS(994), + [anon_sym_SQUOTE] = ACTIONS(994), + [anon_sym_L_DQUOTE] = ACTIONS(994), + [anon_sym_u_DQUOTE] = ACTIONS(994), + [anon_sym_U_DQUOTE] = ACTIONS(994), + [anon_sym_u8_DQUOTE] = ACTIONS(994), + [anon_sym_DQUOTE] = ACTIONS(994), + [sym_true] = ACTIONS(992), + [sym_false] = ACTIONS(992), + [sym_null] = ACTIONS(992), + [sym_comment] = ACTIONS(3), + }, + [299] = { + [sym_identifier] = ACTIONS(996), + [aux_sym_preproc_include_token1] = ACTIONS(996), + [aux_sym_preproc_def_token1] = ACTIONS(996), + [aux_sym_preproc_if_token1] = ACTIONS(996), + [aux_sym_preproc_if_token2] = ACTIONS(996), + [aux_sym_preproc_ifdef_token1] = ACTIONS(996), + [aux_sym_preproc_ifdef_token2] = ACTIONS(996), + [sym_preproc_directive] = ACTIONS(996), + [anon_sym_LPAREN2] = ACTIONS(998), + [anon_sym_BANG] = ACTIONS(998), + [anon_sym_TILDE] = ACTIONS(998), + [anon_sym_DASH] = ACTIONS(996), + [anon_sym_PLUS] = ACTIONS(996), + [anon_sym_STAR] = ACTIONS(998), + [anon_sym_AMP] = ACTIONS(998), + [anon_sym_SEMI] = ACTIONS(998), + [anon_sym_typedef] = ACTIONS(996), + [anon_sym_extern] = ACTIONS(996), + [anon_sym___attribute__] = ACTIONS(996), + [anon_sym_LBRACK_LBRACK] = ACTIONS(998), + [anon_sym___declspec] = ACTIONS(996), + [anon_sym___cdecl] = ACTIONS(996), + [anon_sym___clrcall] = ACTIONS(996), + [anon_sym___stdcall] = ACTIONS(996), + [anon_sym___fastcall] = ACTIONS(996), + [anon_sym___thiscall] = ACTIONS(996), + [anon_sym___vectorcall] = ACTIONS(996), + [anon_sym_LBRACE] = ACTIONS(998), + [anon_sym_static] = ACTIONS(996), + [anon_sym_auto] = ACTIONS(996), + [anon_sym_register] = ACTIONS(996), + [anon_sym_inline] = ACTIONS(996), + [anon_sym_const] = ACTIONS(996), + [anon_sym_volatile] = ACTIONS(996), + [anon_sym_restrict] = ACTIONS(996), + [anon_sym__Atomic] = ACTIONS(996), + [anon_sym_signed] = ACTIONS(996), + [anon_sym_unsigned] = ACTIONS(996), + [anon_sym_long] = ACTIONS(996), + [anon_sym_short] = ACTIONS(996), + [sym_primitive_type] = ACTIONS(996), + [anon_sym_enum] = ACTIONS(996), + [anon_sym_struct] = ACTIONS(996), + [anon_sym_union] = ACTIONS(996), + [anon_sym_if] = ACTIONS(996), + [anon_sym_else] = ACTIONS(996), + [anon_sym_switch] = ACTIONS(996), + [anon_sym_case] = ACTIONS(996), + [anon_sym_default] = ACTIONS(996), + [anon_sym_while] = ACTIONS(996), + [anon_sym_do] = ACTIONS(996), + [anon_sym_for] = ACTIONS(996), + [anon_sym_return] = ACTIONS(996), + [anon_sym_break] = ACTIONS(996), + [anon_sym_continue] = ACTIONS(996), + [anon_sym_goto] = ACTIONS(996), + [anon_sym_DASH_DASH] = ACTIONS(998), + [anon_sym_PLUS_PLUS] = ACTIONS(998), + [anon_sym_sizeof] = ACTIONS(996), + [sym_number_literal] = ACTIONS(998), + [anon_sym_L_SQUOTE] = ACTIONS(998), + [anon_sym_u_SQUOTE] = ACTIONS(998), + [anon_sym_U_SQUOTE] = ACTIONS(998), + [anon_sym_u8_SQUOTE] = ACTIONS(998), + [anon_sym_SQUOTE] = ACTIONS(998), + [anon_sym_L_DQUOTE] = ACTIONS(998), + [anon_sym_u_DQUOTE] = ACTIONS(998), + [anon_sym_U_DQUOTE] = ACTIONS(998), + [anon_sym_u8_DQUOTE] = ACTIONS(998), + [anon_sym_DQUOTE] = ACTIONS(998), + [sym_true] = ACTIONS(996), + [sym_false] = ACTIONS(996), + [sym_null] = ACTIONS(996), + [sym_comment] = ACTIONS(3), + }, + [300] = { + [sym_attribute_declaration] = STATE(242), + [sym_compound_statement] = STATE(281), + [sym_attributed_statement] = STATE(281), + [sym_labeled_statement] = STATE(281), + [sym_expression_statement] = STATE(281), + [sym_if_statement] = STATE(281), + [sym_switch_statement] = STATE(281), + [sym_case_statement] = STATE(281), + [sym_while_statement] = STATE(281), + [sym_do_statement] = STATE(281), + [sym_for_statement] = STATE(281), + [sym_return_statement] = STATE(281), + [sym_break_statement] = STATE(281), + [sym_continue_statement] = STATE(281), + [sym_goto_statement] = STATE(281), + [sym__expression] = STATE(709), + [sym_comma_expression] = STATE(1337), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(242), + [sym_identifier] = ACTIONS(1124), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(313), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(319), + [anon_sym_if] = ACTIONS(323), + [anon_sym_switch] = ACTIONS(325), + [anon_sym_case] = ACTIONS(327), + [anon_sym_default] = ACTIONS(329), + [anon_sym_while] = ACTIONS(331), + [anon_sym_do] = ACTIONS(333), + [anon_sym_for] = ACTIONS(335), + [anon_sym_return] = ACTIONS(337), + [anon_sym_break] = ACTIONS(339), + [anon_sym_continue] = ACTIONS(341), + [anon_sym_goto] = ACTIONS(343), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [301] = { + [sym_identifier] = ACTIONS(906), + [aux_sym_preproc_include_token1] = ACTIONS(906), + [aux_sym_preproc_def_token1] = ACTIONS(906), + [aux_sym_preproc_if_token1] = ACTIONS(906), + [aux_sym_preproc_ifdef_token1] = ACTIONS(906), + [aux_sym_preproc_ifdef_token2] = ACTIONS(906), + [sym_preproc_directive] = ACTIONS(906), + [anon_sym_LPAREN2] = ACTIONS(908), + [anon_sym_BANG] = ACTIONS(908), + [anon_sym_TILDE] = ACTIONS(908), + [anon_sym_DASH] = ACTIONS(906), + [anon_sym_PLUS] = ACTIONS(906), + [anon_sym_STAR] = ACTIONS(908), + [anon_sym_AMP] = ACTIONS(908), + [anon_sym_SEMI] = ACTIONS(908), + [anon_sym_typedef] = ACTIONS(906), + [anon_sym_extern] = ACTIONS(906), + [anon_sym___attribute__] = ACTIONS(906), + [anon_sym_LBRACK_LBRACK] = ACTIONS(908), + [anon_sym___declspec] = ACTIONS(906), + [anon_sym___cdecl] = ACTIONS(906), + [anon_sym___clrcall] = ACTIONS(906), + [anon_sym___stdcall] = ACTIONS(906), + [anon_sym___fastcall] = ACTIONS(906), + [anon_sym___thiscall] = ACTIONS(906), + [anon_sym___vectorcall] = ACTIONS(906), + [anon_sym_LBRACE] = ACTIONS(908), + [anon_sym_RBRACE] = ACTIONS(908), + [anon_sym_static] = ACTIONS(906), + [anon_sym_auto] = ACTIONS(906), + [anon_sym_register] = ACTIONS(906), + [anon_sym_inline] = ACTIONS(906), + [anon_sym_const] = ACTIONS(906), + [anon_sym_volatile] = ACTIONS(906), + [anon_sym_restrict] = ACTIONS(906), + [anon_sym__Atomic] = ACTIONS(906), + [anon_sym_signed] = ACTIONS(906), + [anon_sym_unsigned] = ACTIONS(906), + [anon_sym_long] = ACTIONS(906), + [anon_sym_short] = ACTIONS(906), + [sym_primitive_type] = ACTIONS(906), + [anon_sym_enum] = ACTIONS(906), + [anon_sym_struct] = ACTIONS(906), + [anon_sym_union] = ACTIONS(906), + [anon_sym_if] = ACTIONS(906), + [anon_sym_else] = ACTIONS(906), + [anon_sym_switch] = ACTIONS(906), + [anon_sym_case] = ACTIONS(906), + [anon_sym_default] = ACTIONS(906), + [anon_sym_while] = ACTIONS(906), + [anon_sym_do] = ACTIONS(906), + [anon_sym_for] = ACTIONS(906), + [anon_sym_return] = ACTIONS(906), + [anon_sym_break] = ACTIONS(906), + [anon_sym_continue] = ACTIONS(906), + [anon_sym_goto] = ACTIONS(906), + [anon_sym_DASH_DASH] = ACTIONS(908), + [anon_sym_PLUS_PLUS] = ACTIONS(908), + [anon_sym_sizeof] = ACTIONS(906), + [sym_number_literal] = ACTIONS(908), + [anon_sym_L_SQUOTE] = ACTIONS(908), + [anon_sym_u_SQUOTE] = ACTIONS(908), + [anon_sym_U_SQUOTE] = ACTIONS(908), + [anon_sym_u8_SQUOTE] = ACTIONS(908), + [anon_sym_SQUOTE] = ACTIONS(908), + [anon_sym_L_DQUOTE] = ACTIONS(908), + [anon_sym_u_DQUOTE] = ACTIONS(908), + [anon_sym_U_DQUOTE] = ACTIONS(908), + [anon_sym_u8_DQUOTE] = ACTIONS(908), + [anon_sym_DQUOTE] = ACTIONS(908), + [sym_true] = ACTIONS(906), + [sym_false] = ACTIONS(906), + [sym_null] = ACTIONS(906), + [sym_comment] = ACTIONS(3), + }, + [302] = { + [sym_attribute_declaration] = STATE(153), + [sym_compound_statement] = STATE(290), + [sym_attributed_statement] = STATE(290), + [sym_labeled_statement] = STATE(290), + [sym_expression_statement] = STATE(290), + [sym_if_statement] = STATE(290), + [sym_switch_statement] = STATE(290), + [sym_case_statement] = STATE(290), + [sym_while_statement] = STATE(290), + [sym_do_statement] = STATE(290), + [sym_for_statement] = STATE(290), + [sym_return_statement] = STATE(290), + [sym_break_statement] = STATE(290), + [sym_continue_statement] = STATE(290), + [sym_goto_statement] = STATE(290), + [sym__expression] = STATE(748), + [sym_comma_expression] = STATE(1321), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [aux_sym_attributed_declarator_repeat1] = STATE(153), + [sym_identifier] = ACTIONS(1207), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_SEMI] = ACTIONS(505), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1126), + [anon_sym_LBRACE] = ACTIONS(511), + [anon_sym_if] = ACTIONS(513), + [anon_sym_switch] = ACTIONS(515), + [anon_sym_case] = ACTIONS(517), + [anon_sym_default] = ACTIONS(519), + [anon_sym_while] = ACTIONS(521), + [anon_sym_do] = ACTIONS(523), + [anon_sym_for] = ACTIONS(525), + [anon_sym_return] = ACTIONS(527), + [anon_sym_break] = ACTIONS(529), + [anon_sym_continue] = ACTIONS(531), + [anon_sym_goto] = ACTIONS(533), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [303] = { + [sym_identifier] = ACTIONS(902), + [aux_sym_preproc_include_token1] = ACTIONS(902), + [aux_sym_preproc_def_token1] = ACTIONS(902), + [aux_sym_preproc_if_token1] = ACTIONS(902), + [aux_sym_preproc_ifdef_token1] = ACTIONS(902), + [aux_sym_preproc_ifdef_token2] = ACTIONS(902), + [sym_preproc_directive] = ACTIONS(902), + [anon_sym_LPAREN2] = ACTIONS(904), + [anon_sym_BANG] = ACTIONS(904), + [anon_sym_TILDE] = ACTIONS(904), + [anon_sym_DASH] = ACTIONS(902), + [anon_sym_PLUS] = ACTIONS(902), + [anon_sym_STAR] = ACTIONS(904), + [anon_sym_AMP] = ACTIONS(904), + [anon_sym_SEMI] = ACTIONS(904), + [anon_sym_typedef] = ACTIONS(902), + [anon_sym_extern] = ACTIONS(902), + [anon_sym___attribute__] = ACTIONS(902), + [anon_sym_LBRACK_LBRACK] = ACTIONS(904), + [anon_sym___declspec] = ACTIONS(902), + [anon_sym___cdecl] = ACTIONS(902), + [anon_sym___clrcall] = ACTIONS(902), + [anon_sym___stdcall] = ACTIONS(902), + [anon_sym___fastcall] = ACTIONS(902), + [anon_sym___thiscall] = ACTIONS(902), + [anon_sym___vectorcall] = ACTIONS(902), + [anon_sym_LBRACE] = ACTIONS(904), + [anon_sym_RBRACE] = ACTIONS(904), + [anon_sym_static] = ACTIONS(902), + [anon_sym_auto] = ACTIONS(902), + [anon_sym_register] = ACTIONS(902), + [anon_sym_inline] = ACTIONS(902), + [anon_sym_const] = ACTIONS(902), + [anon_sym_volatile] = ACTIONS(902), + [anon_sym_restrict] = ACTIONS(902), + [anon_sym__Atomic] = ACTIONS(902), + [anon_sym_signed] = ACTIONS(902), + [anon_sym_unsigned] = ACTIONS(902), + [anon_sym_long] = ACTIONS(902), + [anon_sym_short] = ACTIONS(902), + [sym_primitive_type] = ACTIONS(902), + [anon_sym_enum] = ACTIONS(902), + [anon_sym_struct] = ACTIONS(902), + [anon_sym_union] = ACTIONS(902), + [anon_sym_if] = ACTIONS(902), + [anon_sym_else] = ACTIONS(902), + [anon_sym_switch] = ACTIONS(902), + [anon_sym_case] = ACTIONS(902), + [anon_sym_default] = ACTIONS(902), + [anon_sym_while] = ACTIONS(902), + [anon_sym_do] = ACTIONS(902), + [anon_sym_for] = ACTIONS(902), + [anon_sym_return] = ACTIONS(902), + [anon_sym_break] = ACTIONS(902), + [anon_sym_continue] = ACTIONS(902), + [anon_sym_goto] = ACTIONS(902), + [anon_sym_DASH_DASH] = ACTIONS(904), + [anon_sym_PLUS_PLUS] = ACTIONS(904), + [anon_sym_sizeof] = ACTIONS(902), + [sym_number_literal] = ACTIONS(904), + [anon_sym_L_SQUOTE] = ACTIONS(904), + [anon_sym_u_SQUOTE] = ACTIONS(904), + [anon_sym_U_SQUOTE] = ACTIONS(904), + [anon_sym_u8_SQUOTE] = ACTIONS(904), + [anon_sym_SQUOTE] = ACTIONS(904), + [anon_sym_L_DQUOTE] = ACTIONS(904), + [anon_sym_u_DQUOTE] = ACTIONS(904), + [anon_sym_U_DQUOTE] = ACTIONS(904), + [anon_sym_u8_DQUOTE] = ACTIONS(904), + [anon_sym_DQUOTE] = ACTIONS(904), + [sym_true] = ACTIONS(902), + [sym_false] = ACTIONS(902), + [sym_null] = ACTIONS(902), + [sym_comment] = ACTIONS(3), + }, + [304] = { + [sym_identifier] = ACTIONS(910), + [aux_sym_preproc_include_token1] = ACTIONS(910), + [aux_sym_preproc_def_token1] = ACTIONS(910), + [aux_sym_preproc_if_token1] = ACTIONS(910), + [aux_sym_preproc_ifdef_token1] = ACTIONS(910), + [aux_sym_preproc_ifdef_token2] = ACTIONS(910), + [sym_preproc_directive] = ACTIONS(910), + [anon_sym_LPAREN2] = ACTIONS(912), + [anon_sym_BANG] = ACTIONS(912), + [anon_sym_TILDE] = ACTIONS(912), + [anon_sym_DASH] = ACTIONS(910), + [anon_sym_PLUS] = ACTIONS(910), + [anon_sym_STAR] = ACTIONS(912), + [anon_sym_AMP] = ACTIONS(912), + [anon_sym_SEMI] = ACTIONS(912), + [anon_sym_typedef] = ACTIONS(910), + [anon_sym_extern] = ACTIONS(910), + [anon_sym___attribute__] = ACTIONS(910), + [anon_sym_LBRACK_LBRACK] = ACTIONS(912), + [anon_sym___declspec] = ACTIONS(910), + [anon_sym___cdecl] = ACTIONS(910), + [anon_sym___clrcall] = ACTIONS(910), + [anon_sym___stdcall] = ACTIONS(910), + [anon_sym___fastcall] = ACTIONS(910), + [anon_sym___thiscall] = ACTIONS(910), + [anon_sym___vectorcall] = ACTIONS(910), + [anon_sym_LBRACE] = ACTIONS(912), + [anon_sym_RBRACE] = ACTIONS(912), + [anon_sym_static] = ACTIONS(910), + [anon_sym_auto] = ACTIONS(910), + [anon_sym_register] = ACTIONS(910), + [anon_sym_inline] = ACTIONS(910), + [anon_sym_const] = ACTIONS(910), + [anon_sym_volatile] = ACTIONS(910), + [anon_sym_restrict] = ACTIONS(910), + [anon_sym__Atomic] = ACTIONS(910), + [anon_sym_signed] = ACTIONS(910), + [anon_sym_unsigned] = ACTIONS(910), + [anon_sym_long] = ACTIONS(910), + [anon_sym_short] = ACTIONS(910), + [sym_primitive_type] = ACTIONS(910), + [anon_sym_enum] = ACTIONS(910), + [anon_sym_struct] = ACTIONS(910), + [anon_sym_union] = ACTIONS(910), + [anon_sym_if] = ACTIONS(910), + [anon_sym_else] = ACTIONS(910), + [anon_sym_switch] = ACTIONS(910), + [anon_sym_case] = ACTIONS(910), + [anon_sym_default] = ACTIONS(910), + [anon_sym_while] = ACTIONS(910), + [anon_sym_do] = ACTIONS(910), + [anon_sym_for] = ACTIONS(910), + [anon_sym_return] = ACTIONS(910), + [anon_sym_break] = ACTIONS(910), + [anon_sym_continue] = ACTIONS(910), + [anon_sym_goto] = ACTIONS(910), + [anon_sym_DASH_DASH] = ACTIONS(912), + [anon_sym_PLUS_PLUS] = ACTIONS(912), + [anon_sym_sizeof] = ACTIONS(910), + [sym_number_literal] = ACTIONS(912), + [anon_sym_L_SQUOTE] = ACTIONS(912), + [anon_sym_u_SQUOTE] = ACTIONS(912), + [anon_sym_U_SQUOTE] = ACTIONS(912), + [anon_sym_u8_SQUOTE] = ACTIONS(912), + [anon_sym_SQUOTE] = ACTIONS(912), + [anon_sym_L_DQUOTE] = ACTIONS(912), + [anon_sym_u_DQUOTE] = ACTIONS(912), + [anon_sym_U_DQUOTE] = ACTIONS(912), + [anon_sym_u8_DQUOTE] = ACTIONS(912), + [anon_sym_DQUOTE] = ACTIONS(912), + [sym_true] = ACTIONS(910), + [sym_false] = ACTIONS(910), + [sym_null] = ACTIONS(910), + [sym_comment] = ACTIONS(3), + }, + [305] = { + [sym_identifier] = ACTIONS(948), + [aux_sym_preproc_include_token1] = ACTIONS(948), + [aux_sym_preproc_def_token1] = ACTIONS(948), + [aux_sym_preproc_if_token1] = ACTIONS(948), + [aux_sym_preproc_ifdef_token1] = ACTIONS(948), + [aux_sym_preproc_ifdef_token2] = ACTIONS(948), + [sym_preproc_directive] = ACTIONS(948), + [anon_sym_LPAREN2] = ACTIONS(950), + [anon_sym_BANG] = ACTIONS(950), + [anon_sym_TILDE] = ACTIONS(950), + [anon_sym_DASH] = ACTIONS(948), + [anon_sym_PLUS] = ACTIONS(948), + [anon_sym_STAR] = ACTIONS(950), + [anon_sym_AMP] = ACTIONS(950), + [anon_sym_SEMI] = ACTIONS(950), + [anon_sym_typedef] = ACTIONS(948), + [anon_sym_extern] = ACTIONS(948), + [anon_sym___attribute__] = ACTIONS(948), + [anon_sym_LBRACK_LBRACK] = ACTIONS(950), + [anon_sym___declspec] = ACTIONS(948), + [anon_sym___cdecl] = ACTIONS(948), + [anon_sym___clrcall] = ACTIONS(948), + [anon_sym___stdcall] = ACTIONS(948), + [anon_sym___fastcall] = ACTIONS(948), + [anon_sym___thiscall] = ACTIONS(948), + [anon_sym___vectorcall] = ACTIONS(948), + [anon_sym_LBRACE] = ACTIONS(950), + [anon_sym_RBRACE] = ACTIONS(950), + [anon_sym_static] = ACTIONS(948), + [anon_sym_auto] = ACTIONS(948), + [anon_sym_register] = ACTIONS(948), + [anon_sym_inline] = ACTIONS(948), + [anon_sym_const] = ACTIONS(948), + [anon_sym_volatile] = ACTIONS(948), + [anon_sym_restrict] = ACTIONS(948), + [anon_sym__Atomic] = ACTIONS(948), + [anon_sym_signed] = ACTIONS(948), + [anon_sym_unsigned] = ACTIONS(948), + [anon_sym_long] = ACTIONS(948), + [anon_sym_short] = ACTIONS(948), + [sym_primitive_type] = ACTIONS(948), + [anon_sym_enum] = ACTIONS(948), + [anon_sym_struct] = ACTIONS(948), + [anon_sym_union] = ACTIONS(948), + [anon_sym_if] = ACTIONS(948), + [anon_sym_else] = ACTIONS(948), + [anon_sym_switch] = ACTIONS(948), + [anon_sym_case] = ACTIONS(948), + [anon_sym_default] = ACTIONS(948), + [anon_sym_while] = ACTIONS(948), + [anon_sym_do] = ACTIONS(948), + [anon_sym_for] = ACTIONS(948), + [anon_sym_return] = ACTIONS(948), + [anon_sym_break] = ACTIONS(948), + [anon_sym_continue] = ACTIONS(948), + [anon_sym_goto] = ACTIONS(948), + [anon_sym_DASH_DASH] = ACTIONS(950), + [anon_sym_PLUS_PLUS] = ACTIONS(950), + [anon_sym_sizeof] = ACTIONS(948), + [sym_number_literal] = ACTIONS(950), + [anon_sym_L_SQUOTE] = ACTIONS(950), + [anon_sym_u_SQUOTE] = ACTIONS(950), + [anon_sym_U_SQUOTE] = ACTIONS(950), + [anon_sym_u8_SQUOTE] = ACTIONS(950), + [anon_sym_SQUOTE] = ACTIONS(950), + [anon_sym_L_DQUOTE] = ACTIONS(950), + [anon_sym_u_DQUOTE] = ACTIONS(950), + [anon_sym_U_DQUOTE] = ACTIONS(950), + [anon_sym_u8_DQUOTE] = ACTIONS(950), + [anon_sym_DQUOTE] = ACTIONS(950), + [sym_true] = ACTIONS(948), + [sym_false] = ACTIONS(948), + [sym_null] = ACTIONS(948), + [sym_comment] = ACTIONS(3), + }, + [306] = { + [sym_identifier] = ACTIONS(1016), + [aux_sym_preproc_include_token1] = ACTIONS(1016), + [aux_sym_preproc_def_token1] = ACTIONS(1016), + [aux_sym_preproc_if_token1] = ACTIONS(1016), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1016), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1016), + [sym_preproc_directive] = ACTIONS(1016), + [anon_sym_LPAREN2] = ACTIONS(1018), + [anon_sym_BANG] = ACTIONS(1018), + [anon_sym_TILDE] = ACTIONS(1018), + [anon_sym_DASH] = ACTIONS(1016), + [anon_sym_PLUS] = ACTIONS(1016), + [anon_sym_STAR] = ACTIONS(1018), + [anon_sym_AMP] = ACTIONS(1018), + [anon_sym_SEMI] = ACTIONS(1018), + [anon_sym_typedef] = ACTIONS(1016), + [anon_sym_extern] = ACTIONS(1016), + [anon_sym___attribute__] = ACTIONS(1016), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1018), + [anon_sym___declspec] = ACTIONS(1016), + [anon_sym___cdecl] = ACTIONS(1016), + [anon_sym___clrcall] = ACTIONS(1016), + [anon_sym___stdcall] = ACTIONS(1016), + [anon_sym___fastcall] = ACTIONS(1016), + [anon_sym___thiscall] = ACTIONS(1016), + [anon_sym___vectorcall] = ACTIONS(1016), + [anon_sym_LBRACE] = ACTIONS(1018), + [anon_sym_RBRACE] = ACTIONS(1018), + [anon_sym_static] = ACTIONS(1016), + [anon_sym_auto] = ACTIONS(1016), + [anon_sym_register] = ACTIONS(1016), + [anon_sym_inline] = ACTIONS(1016), + [anon_sym_const] = ACTIONS(1016), + [anon_sym_volatile] = ACTIONS(1016), + [anon_sym_restrict] = ACTIONS(1016), + [anon_sym__Atomic] = ACTIONS(1016), + [anon_sym_signed] = ACTIONS(1016), + [anon_sym_unsigned] = ACTIONS(1016), + [anon_sym_long] = ACTIONS(1016), + [anon_sym_short] = ACTIONS(1016), + [sym_primitive_type] = ACTIONS(1016), + [anon_sym_enum] = ACTIONS(1016), + [anon_sym_struct] = ACTIONS(1016), + [anon_sym_union] = ACTIONS(1016), + [anon_sym_if] = ACTIONS(1016), + [anon_sym_else] = ACTIONS(1016), + [anon_sym_switch] = ACTIONS(1016), + [anon_sym_case] = ACTIONS(1016), + [anon_sym_default] = ACTIONS(1016), + [anon_sym_while] = ACTIONS(1016), + [anon_sym_do] = ACTIONS(1016), + [anon_sym_for] = ACTIONS(1016), + [anon_sym_return] = ACTIONS(1016), + [anon_sym_break] = ACTIONS(1016), + [anon_sym_continue] = ACTIONS(1016), + [anon_sym_goto] = ACTIONS(1016), + [anon_sym_DASH_DASH] = ACTIONS(1018), + [anon_sym_PLUS_PLUS] = ACTIONS(1018), + [anon_sym_sizeof] = ACTIONS(1016), + [sym_number_literal] = ACTIONS(1018), + [anon_sym_L_SQUOTE] = ACTIONS(1018), + [anon_sym_u_SQUOTE] = ACTIONS(1018), + [anon_sym_U_SQUOTE] = ACTIONS(1018), + [anon_sym_u8_SQUOTE] = ACTIONS(1018), + [anon_sym_SQUOTE] = ACTIONS(1018), + [anon_sym_L_DQUOTE] = ACTIONS(1018), + [anon_sym_u_DQUOTE] = ACTIONS(1018), + [anon_sym_U_DQUOTE] = ACTIONS(1018), + [anon_sym_u8_DQUOTE] = ACTIONS(1018), + [anon_sym_DQUOTE] = ACTIONS(1018), + [sym_true] = ACTIONS(1016), + [sym_false] = ACTIONS(1016), + [sym_null] = ACTIONS(1016), + [sym_comment] = ACTIONS(3), + }, + [307] = { + [sym_identifier] = ACTIONS(960), + [aux_sym_preproc_include_token1] = ACTIONS(960), + [aux_sym_preproc_def_token1] = ACTIONS(960), + [aux_sym_preproc_if_token1] = ACTIONS(960), + [aux_sym_preproc_ifdef_token1] = ACTIONS(960), + [aux_sym_preproc_ifdef_token2] = ACTIONS(960), + [sym_preproc_directive] = ACTIONS(960), + [anon_sym_LPAREN2] = ACTIONS(962), + [anon_sym_BANG] = ACTIONS(962), + [anon_sym_TILDE] = ACTIONS(962), + [anon_sym_DASH] = ACTIONS(960), + [anon_sym_PLUS] = ACTIONS(960), + [anon_sym_STAR] = ACTIONS(962), + [anon_sym_AMP] = ACTIONS(962), + [anon_sym_SEMI] = ACTIONS(962), + [anon_sym_typedef] = ACTIONS(960), + [anon_sym_extern] = ACTIONS(960), + [anon_sym___attribute__] = ACTIONS(960), + [anon_sym_LBRACK_LBRACK] = ACTIONS(962), + [anon_sym___declspec] = ACTIONS(960), + [anon_sym___cdecl] = ACTIONS(960), + [anon_sym___clrcall] = ACTIONS(960), + [anon_sym___stdcall] = ACTIONS(960), + [anon_sym___fastcall] = ACTIONS(960), + [anon_sym___thiscall] = ACTIONS(960), + [anon_sym___vectorcall] = ACTIONS(960), + [anon_sym_LBRACE] = ACTIONS(962), + [anon_sym_RBRACE] = ACTIONS(962), + [anon_sym_static] = ACTIONS(960), + [anon_sym_auto] = ACTIONS(960), + [anon_sym_register] = ACTIONS(960), + [anon_sym_inline] = ACTIONS(960), + [anon_sym_const] = ACTIONS(960), + [anon_sym_volatile] = ACTIONS(960), + [anon_sym_restrict] = ACTIONS(960), + [anon_sym__Atomic] = ACTIONS(960), + [anon_sym_signed] = ACTIONS(960), + [anon_sym_unsigned] = ACTIONS(960), + [anon_sym_long] = ACTIONS(960), + [anon_sym_short] = ACTIONS(960), + [sym_primitive_type] = ACTIONS(960), + [anon_sym_enum] = ACTIONS(960), + [anon_sym_struct] = ACTIONS(960), + [anon_sym_union] = ACTIONS(960), + [anon_sym_if] = ACTIONS(960), + [anon_sym_else] = ACTIONS(960), + [anon_sym_switch] = ACTIONS(960), + [anon_sym_case] = ACTIONS(960), + [anon_sym_default] = ACTIONS(960), + [anon_sym_while] = ACTIONS(960), + [anon_sym_do] = ACTIONS(960), + [anon_sym_for] = ACTIONS(960), + [anon_sym_return] = ACTIONS(960), + [anon_sym_break] = ACTIONS(960), + [anon_sym_continue] = ACTIONS(960), + [anon_sym_goto] = ACTIONS(960), + [anon_sym_DASH_DASH] = ACTIONS(962), + [anon_sym_PLUS_PLUS] = ACTIONS(962), + [anon_sym_sizeof] = ACTIONS(960), + [sym_number_literal] = ACTIONS(962), + [anon_sym_L_SQUOTE] = ACTIONS(962), + [anon_sym_u_SQUOTE] = ACTIONS(962), + [anon_sym_U_SQUOTE] = ACTIONS(962), + [anon_sym_u8_SQUOTE] = ACTIONS(962), + [anon_sym_SQUOTE] = ACTIONS(962), + [anon_sym_L_DQUOTE] = ACTIONS(962), + [anon_sym_u_DQUOTE] = ACTIONS(962), + [anon_sym_U_DQUOTE] = ACTIONS(962), + [anon_sym_u8_DQUOTE] = ACTIONS(962), + [anon_sym_DQUOTE] = ACTIONS(962), + [sym_true] = ACTIONS(960), + [sym_false] = ACTIONS(960), + [sym_null] = ACTIONS(960), + [sym_comment] = ACTIONS(3), + }, + [308] = { + [sym_identifier] = ACTIONS(898), + [aux_sym_preproc_include_token1] = ACTIONS(898), + [aux_sym_preproc_def_token1] = ACTIONS(898), + [aux_sym_preproc_if_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token2] = ACTIONS(898), + [sym_preproc_directive] = ACTIONS(898), + [anon_sym_LPAREN2] = ACTIONS(900), + [anon_sym_BANG] = ACTIONS(900), + [anon_sym_TILDE] = ACTIONS(900), + [anon_sym_DASH] = ACTIONS(898), + [anon_sym_PLUS] = ACTIONS(898), + [anon_sym_STAR] = ACTIONS(900), + [anon_sym_AMP] = ACTIONS(900), + [anon_sym_SEMI] = ACTIONS(900), + [anon_sym_typedef] = ACTIONS(898), + [anon_sym_extern] = ACTIONS(898), + [anon_sym___attribute__] = ACTIONS(898), + [anon_sym_LBRACK_LBRACK] = ACTIONS(900), + [anon_sym___declspec] = ACTIONS(898), + [anon_sym___cdecl] = ACTIONS(898), + [anon_sym___clrcall] = ACTIONS(898), + [anon_sym___stdcall] = ACTIONS(898), + [anon_sym___fastcall] = ACTIONS(898), + [anon_sym___thiscall] = ACTIONS(898), + [anon_sym___vectorcall] = ACTIONS(898), + [anon_sym_LBRACE] = ACTIONS(900), + [anon_sym_RBRACE] = ACTIONS(900), + [anon_sym_static] = ACTIONS(898), + [anon_sym_auto] = ACTIONS(898), + [anon_sym_register] = ACTIONS(898), + [anon_sym_inline] = ACTIONS(898), + [anon_sym_const] = ACTIONS(898), + [anon_sym_volatile] = ACTIONS(898), + [anon_sym_restrict] = ACTIONS(898), + [anon_sym__Atomic] = ACTIONS(898), + [anon_sym_signed] = ACTIONS(898), + [anon_sym_unsigned] = ACTIONS(898), + [anon_sym_long] = ACTIONS(898), + [anon_sym_short] = ACTIONS(898), + [sym_primitive_type] = ACTIONS(898), + [anon_sym_enum] = ACTIONS(898), + [anon_sym_struct] = ACTIONS(898), + [anon_sym_union] = ACTIONS(898), + [anon_sym_if] = ACTIONS(898), + [anon_sym_else] = ACTIONS(898), + [anon_sym_switch] = ACTIONS(898), + [anon_sym_case] = ACTIONS(898), + [anon_sym_default] = ACTIONS(898), + [anon_sym_while] = ACTIONS(898), + [anon_sym_do] = ACTIONS(898), + [anon_sym_for] = ACTIONS(898), + [anon_sym_return] = ACTIONS(898), + [anon_sym_break] = ACTIONS(898), + [anon_sym_continue] = ACTIONS(898), + [anon_sym_goto] = ACTIONS(898), + [anon_sym_DASH_DASH] = ACTIONS(900), + [anon_sym_PLUS_PLUS] = ACTIONS(900), + [anon_sym_sizeof] = ACTIONS(898), + [sym_number_literal] = ACTIONS(900), + [anon_sym_L_SQUOTE] = ACTIONS(900), + [anon_sym_u_SQUOTE] = ACTIONS(900), + [anon_sym_U_SQUOTE] = ACTIONS(900), + [anon_sym_u8_SQUOTE] = ACTIONS(900), + [anon_sym_SQUOTE] = ACTIONS(900), + [anon_sym_L_DQUOTE] = ACTIONS(900), + [anon_sym_u_DQUOTE] = ACTIONS(900), + [anon_sym_U_DQUOTE] = ACTIONS(900), + [anon_sym_u8_DQUOTE] = ACTIONS(900), + [anon_sym_DQUOTE] = ACTIONS(900), + [sym_true] = ACTIONS(898), + [sym_false] = ACTIONS(898), + [sym_null] = ACTIONS(898), + [sym_comment] = ACTIONS(3), + }, + [309] = { + [sym_identifier] = ACTIONS(898), + [aux_sym_preproc_include_token1] = ACTIONS(898), + [aux_sym_preproc_def_token1] = ACTIONS(898), + [aux_sym_preproc_if_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token1] = ACTIONS(898), + [aux_sym_preproc_ifdef_token2] = ACTIONS(898), + [sym_preproc_directive] = ACTIONS(898), + [anon_sym_LPAREN2] = ACTIONS(900), + [anon_sym_BANG] = ACTIONS(900), + [anon_sym_TILDE] = ACTIONS(900), + [anon_sym_DASH] = ACTIONS(898), + [anon_sym_PLUS] = ACTIONS(898), + [anon_sym_STAR] = ACTIONS(900), + [anon_sym_AMP] = ACTIONS(900), + [anon_sym_SEMI] = ACTIONS(900), + [anon_sym_typedef] = ACTIONS(898), + [anon_sym_extern] = ACTIONS(898), + [anon_sym___attribute__] = ACTIONS(898), + [anon_sym_LBRACK_LBRACK] = ACTIONS(900), + [anon_sym___declspec] = ACTIONS(898), + [anon_sym___cdecl] = ACTIONS(898), + [anon_sym___clrcall] = ACTIONS(898), + [anon_sym___stdcall] = ACTIONS(898), + [anon_sym___fastcall] = ACTIONS(898), + [anon_sym___thiscall] = ACTIONS(898), + [anon_sym___vectorcall] = ACTIONS(898), + [anon_sym_LBRACE] = ACTIONS(900), + [anon_sym_RBRACE] = ACTIONS(900), + [anon_sym_static] = ACTIONS(898), + [anon_sym_auto] = ACTIONS(898), + [anon_sym_register] = ACTIONS(898), + [anon_sym_inline] = ACTIONS(898), + [anon_sym_const] = ACTIONS(898), + [anon_sym_volatile] = ACTIONS(898), + [anon_sym_restrict] = ACTIONS(898), + [anon_sym__Atomic] = ACTIONS(898), + [anon_sym_signed] = ACTIONS(898), + [anon_sym_unsigned] = ACTIONS(898), + [anon_sym_long] = ACTIONS(898), + [anon_sym_short] = ACTIONS(898), + [sym_primitive_type] = ACTIONS(898), + [anon_sym_enum] = ACTIONS(898), + [anon_sym_struct] = ACTIONS(898), + [anon_sym_union] = ACTIONS(898), + [anon_sym_if] = ACTIONS(898), + [anon_sym_else] = ACTIONS(898), + [anon_sym_switch] = ACTIONS(898), + [anon_sym_case] = ACTIONS(898), + [anon_sym_default] = ACTIONS(898), + [anon_sym_while] = ACTIONS(898), + [anon_sym_do] = ACTIONS(898), + [anon_sym_for] = ACTIONS(898), + [anon_sym_return] = ACTIONS(898), + [anon_sym_break] = ACTIONS(898), + [anon_sym_continue] = ACTIONS(898), + [anon_sym_goto] = ACTIONS(898), + [anon_sym_DASH_DASH] = ACTIONS(900), + [anon_sym_PLUS_PLUS] = ACTIONS(900), + [anon_sym_sizeof] = ACTIONS(898), + [sym_number_literal] = ACTIONS(900), + [anon_sym_L_SQUOTE] = ACTIONS(900), + [anon_sym_u_SQUOTE] = ACTIONS(900), + [anon_sym_U_SQUOTE] = ACTIONS(900), + [anon_sym_u8_SQUOTE] = ACTIONS(900), + [anon_sym_SQUOTE] = ACTIONS(900), + [anon_sym_L_DQUOTE] = ACTIONS(900), + [anon_sym_u_DQUOTE] = ACTIONS(900), + [anon_sym_U_DQUOTE] = ACTIONS(900), + [anon_sym_u8_DQUOTE] = ACTIONS(900), + [anon_sym_DQUOTE] = ACTIONS(900), + [sym_true] = ACTIONS(898), + [sym_false] = ACTIONS(898), + [sym_null] = ACTIONS(898), + [sym_comment] = ACTIONS(3), + }, + [310] = { + [ts_builtin_sym_end] = ACTIONS(1078), + [sym_identifier] = ACTIONS(1076), + [aux_sym_preproc_include_token1] = ACTIONS(1076), + [aux_sym_preproc_def_token1] = ACTIONS(1076), + [aux_sym_preproc_if_token1] = ACTIONS(1076), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1076), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1076), + [sym_preproc_directive] = ACTIONS(1076), + [anon_sym_LPAREN2] = ACTIONS(1078), + [anon_sym_BANG] = ACTIONS(1078), + [anon_sym_TILDE] = ACTIONS(1078), + [anon_sym_DASH] = ACTIONS(1076), + [anon_sym_PLUS] = ACTIONS(1076), + [anon_sym_STAR] = ACTIONS(1078), + [anon_sym_AMP] = ACTIONS(1078), + [anon_sym_SEMI] = ACTIONS(1078), + [anon_sym_typedef] = ACTIONS(1076), + [anon_sym_extern] = ACTIONS(1076), + [anon_sym___attribute__] = ACTIONS(1076), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1078), + [anon_sym___declspec] = ACTIONS(1076), + [anon_sym___cdecl] = ACTIONS(1076), + [anon_sym___clrcall] = ACTIONS(1076), + [anon_sym___stdcall] = ACTIONS(1076), + [anon_sym___fastcall] = ACTIONS(1076), + [anon_sym___thiscall] = ACTIONS(1076), + [anon_sym___vectorcall] = ACTIONS(1076), + [anon_sym_LBRACE] = ACTIONS(1078), + [anon_sym_static] = ACTIONS(1076), + [anon_sym_auto] = ACTIONS(1076), + [anon_sym_register] = ACTIONS(1076), + [anon_sym_inline] = ACTIONS(1076), + [anon_sym_const] = ACTIONS(1076), + [anon_sym_volatile] = ACTIONS(1076), + [anon_sym_restrict] = ACTIONS(1076), + [anon_sym__Atomic] = ACTIONS(1076), + [anon_sym_signed] = ACTIONS(1076), + [anon_sym_unsigned] = ACTIONS(1076), + [anon_sym_long] = ACTIONS(1076), + [anon_sym_short] = ACTIONS(1076), + [sym_primitive_type] = ACTIONS(1076), + [anon_sym_enum] = ACTIONS(1076), + [anon_sym_struct] = ACTIONS(1076), + [anon_sym_union] = ACTIONS(1076), + [anon_sym_if] = ACTIONS(1076), + [anon_sym_switch] = ACTIONS(1076), + [anon_sym_case] = ACTIONS(1076), + [anon_sym_default] = ACTIONS(1076), + [anon_sym_while] = ACTIONS(1076), + [anon_sym_do] = ACTIONS(1076), + [anon_sym_for] = ACTIONS(1076), + [anon_sym_return] = ACTIONS(1076), + [anon_sym_break] = ACTIONS(1076), + [anon_sym_continue] = ACTIONS(1076), + [anon_sym_goto] = ACTIONS(1076), + [anon_sym_DASH_DASH] = ACTIONS(1078), + [anon_sym_PLUS_PLUS] = ACTIONS(1078), + [anon_sym_sizeof] = ACTIONS(1076), + [sym_number_literal] = ACTIONS(1078), + [anon_sym_L_SQUOTE] = ACTIONS(1078), + [anon_sym_u_SQUOTE] = ACTIONS(1078), + [anon_sym_U_SQUOTE] = ACTIONS(1078), + [anon_sym_u8_SQUOTE] = ACTIONS(1078), + [anon_sym_SQUOTE] = ACTIONS(1078), + [anon_sym_L_DQUOTE] = ACTIONS(1078), + [anon_sym_u_DQUOTE] = ACTIONS(1078), + [anon_sym_U_DQUOTE] = ACTIONS(1078), + [anon_sym_u8_DQUOTE] = ACTIONS(1078), + [anon_sym_DQUOTE] = ACTIONS(1078), + [sym_true] = ACTIONS(1076), + [sym_false] = ACTIONS(1076), + [sym_null] = ACTIONS(1076), + [sym_comment] = ACTIONS(3), + }, + [311] = { + [sym_identifier] = ACTIONS(1028), + [aux_sym_preproc_include_token1] = ACTIONS(1028), + [aux_sym_preproc_def_token1] = ACTIONS(1028), + [aux_sym_preproc_if_token1] = ACTIONS(1028), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1028), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1028), + [sym_preproc_directive] = ACTIONS(1028), + [anon_sym_LPAREN2] = ACTIONS(1030), + [anon_sym_BANG] = ACTIONS(1030), + [anon_sym_TILDE] = ACTIONS(1030), + [anon_sym_DASH] = ACTIONS(1028), + [anon_sym_PLUS] = ACTIONS(1028), + [anon_sym_STAR] = ACTIONS(1030), + [anon_sym_AMP] = ACTIONS(1030), + [anon_sym_SEMI] = ACTIONS(1030), + [anon_sym_typedef] = ACTIONS(1028), + [anon_sym_extern] = ACTIONS(1028), + [anon_sym___attribute__] = ACTIONS(1028), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1030), + [anon_sym___declspec] = ACTIONS(1028), + [anon_sym___cdecl] = ACTIONS(1028), + [anon_sym___clrcall] = ACTIONS(1028), + [anon_sym___stdcall] = ACTIONS(1028), + [anon_sym___fastcall] = ACTIONS(1028), + [anon_sym___thiscall] = ACTIONS(1028), + [anon_sym___vectorcall] = ACTIONS(1028), + [anon_sym_LBRACE] = ACTIONS(1030), + [anon_sym_RBRACE] = ACTIONS(1030), + [anon_sym_static] = ACTIONS(1028), + [anon_sym_auto] = ACTIONS(1028), + [anon_sym_register] = ACTIONS(1028), + [anon_sym_inline] = ACTIONS(1028), + [anon_sym_const] = ACTIONS(1028), + [anon_sym_volatile] = ACTIONS(1028), + [anon_sym_restrict] = ACTIONS(1028), + [anon_sym__Atomic] = ACTIONS(1028), + [anon_sym_signed] = ACTIONS(1028), + [anon_sym_unsigned] = ACTIONS(1028), + [anon_sym_long] = ACTIONS(1028), + [anon_sym_short] = ACTIONS(1028), + [sym_primitive_type] = ACTIONS(1028), + [anon_sym_enum] = ACTIONS(1028), + [anon_sym_struct] = ACTIONS(1028), + [anon_sym_union] = ACTIONS(1028), + [anon_sym_if] = ACTIONS(1028), + [anon_sym_switch] = ACTIONS(1028), + [anon_sym_case] = ACTIONS(1028), + [anon_sym_default] = ACTIONS(1028), + [anon_sym_while] = ACTIONS(1028), + [anon_sym_do] = ACTIONS(1028), + [anon_sym_for] = ACTIONS(1028), + [anon_sym_return] = ACTIONS(1028), + [anon_sym_break] = ACTIONS(1028), + [anon_sym_continue] = ACTIONS(1028), + [anon_sym_goto] = ACTIONS(1028), + [anon_sym_DASH_DASH] = ACTIONS(1030), + [anon_sym_PLUS_PLUS] = ACTIONS(1030), + [anon_sym_sizeof] = ACTIONS(1028), + [sym_number_literal] = ACTIONS(1030), + [anon_sym_L_SQUOTE] = ACTIONS(1030), + [anon_sym_u_SQUOTE] = ACTIONS(1030), + [anon_sym_U_SQUOTE] = ACTIONS(1030), + [anon_sym_u8_SQUOTE] = ACTIONS(1030), + [anon_sym_SQUOTE] = ACTIONS(1030), + [anon_sym_L_DQUOTE] = ACTIONS(1030), + [anon_sym_u_DQUOTE] = ACTIONS(1030), + [anon_sym_U_DQUOTE] = ACTIONS(1030), + [anon_sym_u8_DQUOTE] = ACTIONS(1030), + [anon_sym_DQUOTE] = ACTIONS(1030), + [sym_true] = ACTIONS(1028), + [sym_false] = ACTIONS(1028), + [sym_null] = ACTIONS(1028), + [sym_comment] = ACTIONS(3), + }, + [312] = { + [sym_identifier] = ACTIONS(1068), + [aux_sym_preproc_include_token1] = ACTIONS(1068), + [aux_sym_preproc_def_token1] = ACTIONS(1068), + [aux_sym_preproc_if_token1] = ACTIONS(1068), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1068), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1068), + [sym_preproc_directive] = ACTIONS(1068), + [anon_sym_LPAREN2] = ACTIONS(1070), + [anon_sym_BANG] = ACTIONS(1070), + [anon_sym_TILDE] = ACTIONS(1070), + [anon_sym_DASH] = ACTIONS(1068), + [anon_sym_PLUS] = ACTIONS(1068), + [anon_sym_STAR] = ACTIONS(1070), + [anon_sym_AMP] = ACTIONS(1070), + [anon_sym_SEMI] = ACTIONS(1070), + [anon_sym_typedef] = ACTIONS(1068), + [anon_sym_extern] = ACTIONS(1068), + [anon_sym___attribute__] = ACTIONS(1068), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1070), + [anon_sym___declspec] = ACTIONS(1068), + [anon_sym___cdecl] = ACTIONS(1068), + [anon_sym___clrcall] = ACTIONS(1068), + [anon_sym___stdcall] = ACTIONS(1068), + [anon_sym___fastcall] = ACTIONS(1068), + [anon_sym___thiscall] = ACTIONS(1068), + [anon_sym___vectorcall] = ACTIONS(1068), + [anon_sym_LBRACE] = ACTIONS(1070), + [anon_sym_RBRACE] = ACTIONS(1070), + [anon_sym_static] = ACTIONS(1068), + [anon_sym_auto] = ACTIONS(1068), + [anon_sym_register] = ACTIONS(1068), + [anon_sym_inline] = ACTIONS(1068), + [anon_sym_const] = ACTIONS(1068), + [anon_sym_volatile] = ACTIONS(1068), + [anon_sym_restrict] = ACTIONS(1068), + [anon_sym__Atomic] = ACTIONS(1068), + [anon_sym_signed] = ACTIONS(1068), + [anon_sym_unsigned] = ACTIONS(1068), + [anon_sym_long] = ACTIONS(1068), + [anon_sym_short] = ACTIONS(1068), + [sym_primitive_type] = ACTIONS(1068), + [anon_sym_enum] = ACTIONS(1068), + [anon_sym_struct] = ACTIONS(1068), + [anon_sym_union] = ACTIONS(1068), + [anon_sym_if] = ACTIONS(1068), + [anon_sym_switch] = ACTIONS(1068), + [anon_sym_case] = ACTIONS(1068), + [anon_sym_default] = ACTIONS(1068), + [anon_sym_while] = ACTIONS(1068), + [anon_sym_do] = ACTIONS(1068), + [anon_sym_for] = ACTIONS(1068), + [anon_sym_return] = ACTIONS(1068), + [anon_sym_break] = ACTIONS(1068), + [anon_sym_continue] = ACTIONS(1068), + [anon_sym_goto] = ACTIONS(1068), + [anon_sym_DASH_DASH] = ACTIONS(1070), + [anon_sym_PLUS_PLUS] = ACTIONS(1070), + [anon_sym_sizeof] = ACTIONS(1068), + [sym_number_literal] = ACTIONS(1070), + [anon_sym_L_SQUOTE] = ACTIONS(1070), + [anon_sym_u_SQUOTE] = ACTIONS(1070), + [anon_sym_U_SQUOTE] = ACTIONS(1070), + [anon_sym_u8_SQUOTE] = ACTIONS(1070), + [anon_sym_SQUOTE] = ACTIONS(1070), + [anon_sym_L_DQUOTE] = ACTIONS(1070), + [anon_sym_u_DQUOTE] = ACTIONS(1070), + [anon_sym_U_DQUOTE] = ACTIONS(1070), + [anon_sym_u8_DQUOTE] = ACTIONS(1070), + [anon_sym_DQUOTE] = ACTIONS(1070), + [sym_true] = ACTIONS(1068), + [sym_false] = ACTIONS(1068), + [sym_null] = ACTIONS(1068), + [sym_comment] = ACTIONS(3), + }, + [313] = { + [sym_identifier] = ACTIONS(1092), + [aux_sym_preproc_include_token1] = ACTIONS(1092), + [aux_sym_preproc_def_token1] = ACTIONS(1092), + [aux_sym_preproc_if_token1] = ACTIONS(1092), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1092), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1092), + [sym_preproc_directive] = ACTIONS(1092), + [anon_sym_LPAREN2] = ACTIONS(1094), + [anon_sym_BANG] = ACTIONS(1094), + [anon_sym_TILDE] = ACTIONS(1094), + [anon_sym_DASH] = ACTIONS(1092), + [anon_sym_PLUS] = ACTIONS(1092), + [anon_sym_STAR] = ACTIONS(1094), + [anon_sym_AMP] = ACTIONS(1094), + [anon_sym_SEMI] = ACTIONS(1094), + [anon_sym_typedef] = ACTIONS(1092), + [anon_sym_extern] = ACTIONS(1092), + [anon_sym___attribute__] = ACTIONS(1092), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1094), + [anon_sym___declspec] = ACTIONS(1092), + [anon_sym___cdecl] = ACTIONS(1092), + [anon_sym___clrcall] = ACTIONS(1092), + [anon_sym___stdcall] = ACTIONS(1092), + [anon_sym___fastcall] = ACTIONS(1092), + [anon_sym___thiscall] = ACTIONS(1092), + [anon_sym___vectorcall] = ACTIONS(1092), + [anon_sym_LBRACE] = ACTIONS(1094), + [anon_sym_RBRACE] = ACTIONS(1094), + [anon_sym_static] = ACTIONS(1092), + [anon_sym_auto] = ACTIONS(1092), + [anon_sym_register] = ACTIONS(1092), + [anon_sym_inline] = ACTIONS(1092), + [anon_sym_const] = ACTIONS(1092), + [anon_sym_volatile] = ACTIONS(1092), + [anon_sym_restrict] = ACTIONS(1092), + [anon_sym__Atomic] = ACTIONS(1092), + [anon_sym_signed] = ACTIONS(1092), + [anon_sym_unsigned] = ACTIONS(1092), + [anon_sym_long] = ACTIONS(1092), + [anon_sym_short] = ACTIONS(1092), + [sym_primitive_type] = ACTIONS(1092), + [anon_sym_enum] = ACTIONS(1092), + [anon_sym_struct] = ACTIONS(1092), + [anon_sym_union] = ACTIONS(1092), + [anon_sym_if] = ACTIONS(1092), + [anon_sym_switch] = ACTIONS(1092), + [anon_sym_case] = ACTIONS(1092), + [anon_sym_default] = ACTIONS(1092), + [anon_sym_while] = ACTIONS(1092), + [anon_sym_do] = ACTIONS(1092), + [anon_sym_for] = ACTIONS(1092), + [anon_sym_return] = ACTIONS(1092), + [anon_sym_break] = ACTIONS(1092), + [anon_sym_continue] = ACTIONS(1092), + [anon_sym_goto] = ACTIONS(1092), + [anon_sym_DASH_DASH] = ACTIONS(1094), + [anon_sym_PLUS_PLUS] = ACTIONS(1094), + [anon_sym_sizeof] = ACTIONS(1092), + [sym_number_literal] = ACTIONS(1094), + [anon_sym_L_SQUOTE] = ACTIONS(1094), + [anon_sym_u_SQUOTE] = ACTIONS(1094), + [anon_sym_U_SQUOTE] = ACTIONS(1094), + [anon_sym_u8_SQUOTE] = ACTIONS(1094), + [anon_sym_SQUOTE] = ACTIONS(1094), + [anon_sym_L_DQUOTE] = ACTIONS(1094), + [anon_sym_u_DQUOTE] = ACTIONS(1094), + [anon_sym_U_DQUOTE] = ACTIONS(1094), + [anon_sym_u8_DQUOTE] = ACTIONS(1094), + [anon_sym_DQUOTE] = ACTIONS(1094), + [sym_true] = ACTIONS(1092), + [sym_false] = ACTIONS(1092), + [sym_null] = ACTIONS(1092), + [sym_comment] = ACTIONS(3), + }, + [314] = { + [ts_builtin_sym_end] = ACTIONS(1086), + [sym_identifier] = ACTIONS(1084), + [aux_sym_preproc_include_token1] = ACTIONS(1084), + [aux_sym_preproc_def_token1] = ACTIONS(1084), + [aux_sym_preproc_if_token1] = ACTIONS(1084), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1084), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1084), + [sym_preproc_directive] = ACTIONS(1084), + [anon_sym_LPAREN2] = ACTIONS(1086), + [anon_sym_BANG] = ACTIONS(1086), + [anon_sym_TILDE] = ACTIONS(1086), + [anon_sym_DASH] = ACTIONS(1084), + [anon_sym_PLUS] = ACTIONS(1084), + [anon_sym_STAR] = ACTIONS(1086), + [anon_sym_AMP] = ACTIONS(1086), + [anon_sym_SEMI] = ACTIONS(1086), + [anon_sym_typedef] = ACTIONS(1084), + [anon_sym_extern] = ACTIONS(1084), + [anon_sym___attribute__] = ACTIONS(1084), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1086), + [anon_sym___declspec] = ACTIONS(1084), + [anon_sym___cdecl] = ACTIONS(1084), + [anon_sym___clrcall] = ACTIONS(1084), + [anon_sym___stdcall] = ACTIONS(1084), + [anon_sym___fastcall] = ACTIONS(1084), + [anon_sym___thiscall] = ACTIONS(1084), + [anon_sym___vectorcall] = ACTIONS(1084), + [anon_sym_LBRACE] = ACTIONS(1086), + [anon_sym_static] = ACTIONS(1084), + [anon_sym_auto] = ACTIONS(1084), + [anon_sym_register] = ACTIONS(1084), + [anon_sym_inline] = ACTIONS(1084), + [anon_sym_const] = ACTIONS(1084), + [anon_sym_volatile] = ACTIONS(1084), + [anon_sym_restrict] = ACTIONS(1084), + [anon_sym__Atomic] = ACTIONS(1084), + [anon_sym_signed] = ACTIONS(1084), + [anon_sym_unsigned] = ACTIONS(1084), + [anon_sym_long] = ACTIONS(1084), + [anon_sym_short] = ACTIONS(1084), + [sym_primitive_type] = ACTIONS(1084), + [anon_sym_enum] = ACTIONS(1084), + [anon_sym_struct] = ACTIONS(1084), + [anon_sym_union] = ACTIONS(1084), + [anon_sym_if] = ACTIONS(1084), + [anon_sym_switch] = ACTIONS(1084), + [anon_sym_case] = ACTIONS(1084), + [anon_sym_default] = ACTIONS(1084), + [anon_sym_while] = ACTIONS(1084), + [anon_sym_do] = ACTIONS(1084), + [anon_sym_for] = ACTIONS(1084), + [anon_sym_return] = ACTIONS(1084), + [anon_sym_break] = ACTIONS(1084), + [anon_sym_continue] = ACTIONS(1084), + [anon_sym_goto] = ACTIONS(1084), + [anon_sym_DASH_DASH] = ACTIONS(1086), + [anon_sym_PLUS_PLUS] = ACTIONS(1086), + [anon_sym_sizeof] = ACTIONS(1084), + [sym_number_literal] = ACTIONS(1086), + [anon_sym_L_SQUOTE] = ACTIONS(1086), + [anon_sym_u_SQUOTE] = ACTIONS(1086), + [anon_sym_U_SQUOTE] = ACTIONS(1086), + [anon_sym_u8_SQUOTE] = ACTIONS(1086), + [anon_sym_SQUOTE] = ACTIONS(1086), + [anon_sym_L_DQUOTE] = ACTIONS(1086), + [anon_sym_u_DQUOTE] = ACTIONS(1086), + [anon_sym_U_DQUOTE] = ACTIONS(1086), + [anon_sym_u8_DQUOTE] = ACTIONS(1086), + [anon_sym_DQUOTE] = ACTIONS(1086), + [sym_true] = ACTIONS(1084), + [sym_false] = ACTIONS(1084), + [sym_null] = ACTIONS(1084), + [sym_comment] = ACTIONS(3), + }, + [315] = { + [sym_identifier] = ACTIONS(1084), + [aux_sym_preproc_include_token1] = ACTIONS(1084), + [aux_sym_preproc_def_token1] = ACTIONS(1084), + [aux_sym_preproc_if_token1] = ACTIONS(1084), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1084), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1084), + [sym_preproc_directive] = ACTIONS(1084), + [anon_sym_LPAREN2] = ACTIONS(1086), + [anon_sym_BANG] = ACTIONS(1086), + [anon_sym_TILDE] = ACTIONS(1086), + [anon_sym_DASH] = ACTIONS(1084), + [anon_sym_PLUS] = ACTIONS(1084), + [anon_sym_STAR] = ACTIONS(1086), + [anon_sym_AMP] = ACTIONS(1086), + [anon_sym_SEMI] = ACTIONS(1086), + [anon_sym_typedef] = ACTIONS(1084), + [anon_sym_extern] = ACTIONS(1084), + [anon_sym___attribute__] = ACTIONS(1084), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1086), + [anon_sym___declspec] = ACTIONS(1084), + [anon_sym___cdecl] = ACTIONS(1084), + [anon_sym___clrcall] = ACTIONS(1084), + [anon_sym___stdcall] = ACTIONS(1084), + [anon_sym___fastcall] = ACTIONS(1084), + [anon_sym___thiscall] = ACTIONS(1084), + [anon_sym___vectorcall] = ACTIONS(1084), + [anon_sym_LBRACE] = ACTIONS(1086), + [anon_sym_RBRACE] = ACTIONS(1086), + [anon_sym_static] = ACTIONS(1084), + [anon_sym_auto] = ACTIONS(1084), + [anon_sym_register] = ACTIONS(1084), + [anon_sym_inline] = ACTIONS(1084), + [anon_sym_const] = ACTIONS(1084), + [anon_sym_volatile] = ACTIONS(1084), + [anon_sym_restrict] = ACTIONS(1084), + [anon_sym__Atomic] = ACTIONS(1084), + [anon_sym_signed] = ACTIONS(1084), + [anon_sym_unsigned] = ACTIONS(1084), + [anon_sym_long] = ACTIONS(1084), + [anon_sym_short] = ACTIONS(1084), + [sym_primitive_type] = ACTIONS(1084), + [anon_sym_enum] = ACTIONS(1084), + [anon_sym_struct] = ACTIONS(1084), + [anon_sym_union] = ACTIONS(1084), + [anon_sym_if] = ACTIONS(1084), + [anon_sym_switch] = ACTIONS(1084), + [anon_sym_case] = ACTIONS(1084), + [anon_sym_default] = ACTIONS(1084), + [anon_sym_while] = ACTIONS(1084), + [anon_sym_do] = ACTIONS(1084), + [anon_sym_for] = ACTIONS(1084), + [anon_sym_return] = ACTIONS(1084), + [anon_sym_break] = ACTIONS(1084), + [anon_sym_continue] = ACTIONS(1084), + [anon_sym_goto] = ACTIONS(1084), + [anon_sym_DASH_DASH] = ACTIONS(1086), + [anon_sym_PLUS_PLUS] = ACTIONS(1086), + [anon_sym_sizeof] = ACTIONS(1084), + [sym_number_literal] = ACTIONS(1086), + [anon_sym_L_SQUOTE] = ACTIONS(1086), + [anon_sym_u_SQUOTE] = ACTIONS(1086), + [anon_sym_U_SQUOTE] = ACTIONS(1086), + [anon_sym_u8_SQUOTE] = ACTIONS(1086), + [anon_sym_SQUOTE] = ACTIONS(1086), + [anon_sym_L_DQUOTE] = ACTIONS(1086), + [anon_sym_u_DQUOTE] = ACTIONS(1086), + [anon_sym_U_DQUOTE] = ACTIONS(1086), + [anon_sym_u8_DQUOTE] = ACTIONS(1086), + [anon_sym_DQUOTE] = ACTIONS(1086), + [sym_true] = ACTIONS(1084), + [sym_false] = ACTIONS(1084), + [sym_null] = ACTIONS(1084), + [sym_comment] = ACTIONS(3), + }, + [316] = { + [sym_identifier] = ACTIONS(1032), + [aux_sym_preproc_include_token1] = ACTIONS(1032), + [aux_sym_preproc_def_token1] = ACTIONS(1032), + [aux_sym_preproc_if_token1] = ACTIONS(1032), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1032), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1032), + [sym_preproc_directive] = ACTIONS(1032), + [anon_sym_LPAREN2] = ACTIONS(1034), + [anon_sym_BANG] = ACTIONS(1034), + [anon_sym_TILDE] = ACTIONS(1034), + [anon_sym_DASH] = ACTIONS(1032), + [anon_sym_PLUS] = ACTIONS(1032), + [anon_sym_STAR] = ACTIONS(1034), + [anon_sym_AMP] = ACTIONS(1034), + [anon_sym_SEMI] = ACTIONS(1034), + [anon_sym_typedef] = ACTIONS(1032), + [anon_sym_extern] = ACTIONS(1032), + [anon_sym___attribute__] = ACTIONS(1032), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1034), + [anon_sym___declspec] = ACTIONS(1032), + [anon_sym___cdecl] = ACTIONS(1032), + [anon_sym___clrcall] = ACTIONS(1032), + [anon_sym___stdcall] = ACTIONS(1032), + [anon_sym___fastcall] = ACTIONS(1032), + [anon_sym___thiscall] = ACTIONS(1032), + [anon_sym___vectorcall] = ACTIONS(1032), + [anon_sym_LBRACE] = ACTIONS(1034), + [anon_sym_RBRACE] = ACTIONS(1034), + [anon_sym_static] = ACTIONS(1032), + [anon_sym_auto] = ACTIONS(1032), + [anon_sym_register] = ACTIONS(1032), + [anon_sym_inline] = ACTIONS(1032), + [anon_sym_const] = ACTIONS(1032), + [anon_sym_volatile] = ACTIONS(1032), + [anon_sym_restrict] = ACTIONS(1032), + [anon_sym__Atomic] = ACTIONS(1032), + [anon_sym_signed] = ACTIONS(1032), + [anon_sym_unsigned] = ACTIONS(1032), + [anon_sym_long] = ACTIONS(1032), + [anon_sym_short] = ACTIONS(1032), + [sym_primitive_type] = ACTIONS(1032), + [anon_sym_enum] = ACTIONS(1032), + [anon_sym_struct] = ACTIONS(1032), + [anon_sym_union] = ACTIONS(1032), + [anon_sym_if] = ACTIONS(1032), + [anon_sym_switch] = ACTIONS(1032), + [anon_sym_case] = ACTIONS(1032), + [anon_sym_default] = ACTIONS(1032), + [anon_sym_while] = ACTIONS(1032), + [anon_sym_do] = ACTIONS(1032), + [anon_sym_for] = ACTIONS(1032), + [anon_sym_return] = ACTIONS(1032), + [anon_sym_break] = ACTIONS(1032), + [anon_sym_continue] = ACTIONS(1032), + [anon_sym_goto] = ACTIONS(1032), + [anon_sym_DASH_DASH] = ACTIONS(1034), + [anon_sym_PLUS_PLUS] = ACTIONS(1034), + [anon_sym_sizeof] = ACTIONS(1032), + [sym_number_literal] = ACTIONS(1034), + [anon_sym_L_SQUOTE] = ACTIONS(1034), + [anon_sym_u_SQUOTE] = ACTIONS(1034), + [anon_sym_U_SQUOTE] = ACTIONS(1034), + [anon_sym_u8_SQUOTE] = ACTIONS(1034), + [anon_sym_SQUOTE] = ACTIONS(1034), + [anon_sym_L_DQUOTE] = ACTIONS(1034), + [anon_sym_u_DQUOTE] = ACTIONS(1034), + [anon_sym_U_DQUOTE] = ACTIONS(1034), + [anon_sym_u8_DQUOTE] = ACTIONS(1034), + [anon_sym_DQUOTE] = ACTIONS(1034), + [sym_true] = ACTIONS(1032), + [sym_false] = ACTIONS(1032), + [sym_null] = ACTIONS(1032), + [sym_comment] = ACTIONS(3), + }, + [317] = { + [sym_identifier] = ACTIONS(1120), + [aux_sym_preproc_include_token1] = ACTIONS(1120), + [aux_sym_preproc_def_token1] = ACTIONS(1120), + [aux_sym_preproc_if_token1] = ACTIONS(1120), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1120), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1120), + [sym_preproc_directive] = ACTIONS(1120), + [anon_sym_LPAREN2] = ACTIONS(1122), + [anon_sym_BANG] = ACTIONS(1122), + [anon_sym_TILDE] = ACTIONS(1122), + [anon_sym_DASH] = ACTIONS(1120), + [anon_sym_PLUS] = ACTIONS(1120), + [anon_sym_STAR] = ACTIONS(1122), + [anon_sym_AMP] = ACTIONS(1122), + [anon_sym_SEMI] = ACTIONS(1122), + [anon_sym_typedef] = ACTIONS(1120), + [anon_sym_extern] = ACTIONS(1120), + [anon_sym___attribute__] = ACTIONS(1120), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1122), + [anon_sym___declspec] = ACTIONS(1120), + [anon_sym___cdecl] = ACTIONS(1120), + [anon_sym___clrcall] = ACTIONS(1120), + [anon_sym___stdcall] = ACTIONS(1120), + [anon_sym___fastcall] = ACTIONS(1120), + [anon_sym___thiscall] = ACTIONS(1120), + [anon_sym___vectorcall] = ACTIONS(1120), + [anon_sym_LBRACE] = ACTIONS(1122), + [anon_sym_RBRACE] = ACTIONS(1122), + [anon_sym_static] = ACTIONS(1120), + [anon_sym_auto] = ACTIONS(1120), + [anon_sym_register] = ACTIONS(1120), + [anon_sym_inline] = ACTIONS(1120), + [anon_sym_const] = ACTIONS(1120), + [anon_sym_volatile] = ACTIONS(1120), + [anon_sym_restrict] = ACTIONS(1120), + [anon_sym__Atomic] = ACTIONS(1120), + [anon_sym_signed] = ACTIONS(1120), + [anon_sym_unsigned] = ACTIONS(1120), + [anon_sym_long] = ACTIONS(1120), + [anon_sym_short] = ACTIONS(1120), + [sym_primitive_type] = ACTIONS(1120), + [anon_sym_enum] = ACTIONS(1120), + [anon_sym_struct] = ACTIONS(1120), + [anon_sym_union] = ACTIONS(1120), + [anon_sym_if] = ACTIONS(1120), + [anon_sym_switch] = ACTIONS(1120), + [anon_sym_case] = ACTIONS(1120), + [anon_sym_default] = ACTIONS(1120), + [anon_sym_while] = ACTIONS(1120), + [anon_sym_do] = ACTIONS(1120), + [anon_sym_for] = ACTIONS(1120), + [anon_sym_return] = ACTIONS(1120), + [anon_sym_break] = ACTIONS(1120), + [anon_sym_continue] = ACTIONS(1120), + [anon_sym_goto] = ACTIONS(1120), + [anon_sym_DASH_DASH] = ACTIONS(1122), + [anon_sym_PLUS_PLUS] = ACTIONS(1122), + [anon_sym_sizeof] = ACTIONS(1120), + [sym_number_literal] = ACTIONS(1122), + [anon_sym_L_SQUOTE] = ACTIONS(1122), + [anon_sym_u_SQUOTE] = ACTIONS(1122), + [anon_sym_U_SQUOTE] = ACTIONS(1122), + [anon_sym_u8_SQUOTE] = ACTIONS(1122), + [anon_sym_SQUOTE] = ACTIONS(1122), + [anon_sym_L_DQUOTE] = ACTIONS(1122), + [anon_sym_u_DQUOTE] = ACTIONS(1122), + [anon_sym_U_DQUOTE] = ACTIONS(1122), + [anon_sym_u8_DQUOTE] = ACTIONS(1122), + [anon_sym_DQUOTE] = ACTIONS(1122), + [sym_true] = ACTIONS(1120), + [sym_false] = ACTIONS(1120), + [sym_null] = ACTIONS(1120), + [sym_comment] = ACTIONS(3), + }, + [318] = { + [sym_identifier] = ACTIONS(1116), + [aux_sym_preproc_include_token1] = ACTIONS(1116), + [aux_sym_preproc_def_token1] = ACTIONS(1116), + [aux_sym_preproc_if_token1] = ACTIONS(1116), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1116), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1116), + [sym_preproc_directive] = ACTIONS(1116), + [anon_sym_LPAREN2] = ACTIONS(1118), + [anon_sym_BANG] = ACTIONS(1118), + [anon_sym_TILDE] = ACTIONS(1118), + [anon_sym_DASH] = ACTIONS(1116), + [anon_sym_PLUS] = ACTIONS(1116), + [anon_sym_STAR] = ACTIONS(1118), + [anon_sym_AMP] = ACTIONS(1118), + [anon_sym_SEMI] = ACTIONS(1118), + [anon_sym_typedef] = ACTIONS(1116), + [anon_sym_extern] = ACTIONS(1116), + [anon_sym___attribute__] = ACTIONS(1116), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1118), + [anon_sym___declspec] = ACTIONS(1116), + [anon_sym___cdecl] = ACTIONS(1116), + [anon_sym___clrcall] = ACTIONS(1116), + [anon_sym___stdcall] = ACTIONS(1116), + [anon_sym___fastcall] = ACTIONS(1116), + [anon_sym___thiscall] = ACTIONS(1116), + [anon_sym___vectorcall] = ACTIONS(1116), + [anon_sym_LBRACE] = ACTIONS(1118), + [anon_sym_RBRACE] = ACTIONS(1118), + [anon_sym_static] = ACTIONS(1116), + [anon_sym_auto] = ACTIONS(1116), + [anon_sym_register] = ACTIONS(1116), + [anon_sym_inline] = ACTIONS(1116), + [anon_sym_const] = ACTIONS(1116), + [anon_sym_volatile] = ACTIONS(1116), + [anon_sym_restrict] = ACTIONS(1116), + [anon_sym__Atomic] = ACTIONS(1116), + [anon_sym_signed] = ACTIONS(1116), + [anon_sym_unsigned] = ACTIONS(1116), + [anon_sym_long] = ACTIONS(1116), + [anon_sym_short] = ACTIONS(1116), + [sym_primitive_type] = ACTIONS(1116), + [anon_sym_enum] = ACTIONS(1116), + [anon_sym_struct] = ACTIONS(1116), + [anon_sym_union] = ACTIONS(1116), + [anon_sym_if] = ACTIONS(1116), + [anon_sym_switch] = ACTIONS(1116), + [anon_sym_case] = ACTIONS(1116), + [anon_sym_default] = ACTIONS(1116), + [anon_sym_while] = ACTIONS(1116), + [anon_sym_do] = ACTIONS(1116), + [anon_sym_for] = ACTIONS(1116), + [anon_sym_return] = ACTIONS(1116), + [anon_sym_break] = ACTIONS(1116), + [anon_sym_continue] = ACTIONS(1116), + [anon_sym_goto] = ACTIONS(1116), + [anon_sym_DASH_DASH] = ACTIONS(1118), + [anon_sym_PLUS_PLUS] = ACTIONS(1118), + [anon_sym_sizeof] = ACTIONS(1116), + [sym_number_literal] = ACTIONS(1118), + [anon_sym_L_SQUOTE] = ACTIONS(1118), + [anon_sym_u_SQUOTE] = ACTIONS(1118), + [anon_sym_U_SQUOTE] = ACTIONS(1118), + [anon_sym_u8_SQUOTE] = ACTIONS(1118), + [anon_sym_SQUOTE] = ACTIONS(1118), + [anon_sym_L_DQUOTE] = ACTIONS(1118), + [anon_sym_u_DQUOTE] = ACTIONS(1118), + [anon_sym_U_DQUOTE] = ACTIONS(1118), + [anon_sym_u8_DQUOTE] = ACTIONS(1118), + [anon_sym_DQUOTE] = ACTIONS(1118), + [sym_true] = ACTIONS(1116), + [sym_false] = ACTIONS(1116), + [sym_null] = ACTIONS(1116), + [sym_comment] = ACTIONS(3), + }, + [319] = { + [sym_identifier] = ACTIONS(1080), + [aux_sym_preproc_include_token1] = ACTIONS(1080), + [aux_sym_preproc_def_token1] = ACTIONS(1080), + [aux_sym_preproc_if_token1] = ACTIONS(1080), + [aux_sym_preproc_if_token2] = ACTIONS(1080), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1080), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1080), + [sym_preproc_directive] = ACTIONS(1080), + [anon_sym_LPAREN2] = ACTIONS(1082), + [anon_sym_BANG] = ACTIONS(1082), + [anon_sym_TILDE] = ACTIONS(1082), + [anon_sym_DASH] = ACTIONS(1080), + [anon_sym_PLUS] = ACTIONS(1080), + [anon_sym_STAR] = ACTIONS(1082), + [anon_sym_AMP] = ACTIONS(1082), + [anon_sym_SEMI] = ACTIONS(1082), + [anon_sym_typedef] = ACTIONS(1080), + [anon_sym_extern] = ACTIONS(1080), + [anon_sym___attribute__] = ACTIONS(1080), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1082), + [anon_sym___declspec] = ACTIONS(1080), + [anon_sym___cdecl] = ACTIONS(1080), + [anon_sym___clrcall] = ACTIONS(1080), + [anon_sym___stdcall] = ACTIONS(1080), + [anon_sym___fastcall] = ACTIONS(1080), + [anon_sym___thiscall] = ACTIONS(1080), + [anon_sym___vectorcall] = ACTIONS(1080), + [anon_sym_LBRACE] = ACTIONS(1082), + [anon_sym_static] = ACTIONS(1080), + [anon_sym_auto] = ACTIONS(1080), + [anon_sym_register] = ACTIONS(1080), + [anon_sym_inline] = ACTIONS(1080), + [anon_sym_const] = ACTIONS(1080), + [anon_sym_volatile] = ACTIONS(1080), + [anon_sym_restrict] = ACTIONS(1080), + [anon_sym__Atomic] = ACTIONS(1080), + [anon_sym_signed] = ACTIONS(1080), + [anon_sym_unsigned] = ACTIONS(1080), + [anon_sym_long] = ACTIONS(1080), + [anon_sym_short] = ACTIONS(1080), + [sym_primitive_type] = ACTIONS(1080), + [anon_sym_enum] = ACTIONS(1080), + [anon_sym_struct] = ACTIONS(1080), + [anon_sym_union] = ACTIONS(1080), + [anon_sym_if] = ACTIONS(1080), + [anon_sym_switch] = ACTIONS(1080), + [anon_sym_case] = ACTIONS(1080), + [anon_sym_default] = ACTIONS(1080), + [anon_sym_while] = ACTIONS(1080), + [anon_sym_do] = ACTIONS(1080), + [anon_sym_for] = ACTIONS(1080), + [anon_sym_return] = ACTIONS(1080), + [anon_sym_break] = ACTIONS(1080), + [anon_sym_continue] = ACTIONS(1080), + [anon_sym_goto] = ACTIONS(1080), + [anon_sym_DASH_DASH] = ACTIONS(1082), + [anon_sym_PLUS_PLUS] = ACTIONS(1082), + [anon_sym_sizeof] = ACTIONS(1080), + [sym_number_literal] = ACTIONS(1082), + [anon_sym_L_SQUOTE] = ACTIONS(1082), + [anon_sym_u_SQUOTE] = ACTIONS(1082), + [anon_sym_U_SQUOTE] = ACTIONS(1082), + [anon_sym_u8_SQUOTE] = ACTIONS(1082), + [anon_sym_SQUOTE] = ACTIONS(1082), + [anon_sym_L_DQUOTE] = ACTIONS(1082), + [anon_sym_u_DQUOTE] = ACTIONS(1082), + [anon_sym_U_DQUOTE] = ACTIONS(1082), + [anon_sym_u8_DQUOTE] = ACTIONS(1082), + [anon_sym_DQUOTE] = ACTIONS(1082), + [sym_true] = ACTIONS(1080), + [sym_false] = ACTIONS(1080), + [sym_null] = ACTIONS(1080), + [sym_comment] = ACTIONS(3), + }, + [320] = { + [sym_identifier] = ACTIONS(1100), + [aux_sym_preproc_include_token1] = ACTIONS(1100), + [aux_sym_preproc_def_token1] = ACTIONS(1100), + [aux_sym_preproc_if_token1] = ACTIONS(1100), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1100), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1100), + [sym_preproc_directive] = ACTIONS(1100), + [anon_sym_LPAREN2] = ACTIONS(1102), + [anon_sym_BANG] = ACTIONS(1102), + [anon_sym_TILDE] = ACTIONS(1102), + [anon_sym_DASH] = ACTIONS(1100), + [anon_sym_PLUS] = ACTIONS(1100), + [anon_sym_STAR] = ACTIONS(1102), + [anon_sym_AMP] = ACTIONS(1102), + [anon_sym_SEMI] = ACTIONS(1102), + [anon_sym_typedef] = ACTIONS(1100), + [anon_sym_extern] = ACTIONS(1100), + [anon_sym___attribute__] = ACTIONS(1100), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1102), + [anon_sym___declspec] = ACTIONS(1100), + [anon_sym___cdecl] = ACTIONS(1100), + [anon_sym___clrcall] = ACTIONS(1100), + [anon_sym___stdcall] = ACTIONS(1100), + [anon_sym___fastcall] = ACTIONS(1100), + [anon_sym___thiscall] = ACTIONS(1100), + [anon_sym___vectorcall] = ACTIONS(1100), + [anon_sym_LBRACE] = ACTIONS(1102), + [anon_sym_RBRACE] = ACTIONS(1102), + [anon_sym_static] = ACTIONS(1100), + [anon_sym_auto] = ACTIONS(1100), + [anon_sym_register] = ACTIONS(1100), + [anon_sym_inline] = ACTIONS(1100), + [anon_sym_const] = ACTIONS(1100), + [anon_sym_volatile] = ACTIONS(1100), + [anon_sym_restrict] = ACTIONS(1100), + [anon_sym__Atomic] = ACTIONS(1100), + [anon_sym_signed] = ACTIONS(1100), + [anon_sym_unsigned] = ACTIONS(1100), + [anon_sym_long] = ACTIONS(1100), + [anon_sym_short] = ACTIONS(1100), + [sym_primitive_type] = ACTIONS(1100), + [anon_sym_enum] = ACTIONS(1100), + [anon_sym_struct] = ACTIONS(1100), + [anon_sym_union] = ACTIONS(1100), + [anon_sym_if] = ACTIONS(1100), + [anon_sym_switch] = ACTIONS(1100), + [anon_sym_case] = ACTIONS(1100), + [anon_sym_default] = ACTIONS(1100), + [anon_sym_while] = ACTIONS(1100), + [anon_sym_do] = ACTIONS(1100), + [anon_sym_for] = ACTIONS(1100), + [anon_sym_return] = ACTIONS(1100), + [anon_sym_break] = ACTIONS(1100), + [anon_sym_continue] = ACTIONS(1100), + [anon_sym_goto] = ACTIONS(1100), + [anon_sym_DASH_DASH] = ACTIONS(1102), + [anon_sym_PLUS_PLUS] = ACTIONS(1102), + [anon_sym_sizeof] = ACTIONS(1100), + [sym_number_literal] = ACTIONS(1102), + [anon_sym_L_SQUOTE] = ACTIONS(1102), + [anon_sym_u_SQUOTE] = ACTIONS(1102), + [anon_sym_U_SQUOTE] = ACTIONS(1102), + [anon_sym_u8_SQUOTE] = ACTIONS(1102), + [anon_sym_SQUOTE] = ACTIONS(1102), + [anon_sym_L_DQUOTE] = ACTIONS(1102), + [anon_sym_u_DQUOTE] = ACTIONS(1102), + [anon_sym_U_DQUOTE] = ACTIONS(1102), + [anon_sym_u8_DQUOTE] = ACTIONS(1102), + [anon_sym_DQUOTE] = ACTIONS(1102), + [sym_true] = ACTIONS(1100), + [sym_false] = ACTIONS(1100), + [sym_null] = ACTIONS(1100), + [sym_comment] = ACTIONS(3), + }, + [321] = { + [sym_identifier] = ACTIONS(1028), + [aux_sym_preproc_include_token1] = ACTIONS(1028), + [aux_sym_preproc_def_token1] = ACTIONS(1028), + [aux_sym_preproc_if_token1] = ACTIONS(1028), + [aux_sym_preproc_if_token2] = ACTIONS(1028), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1028), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1028), + [sym_preproc_directive] = ACTIONS(1028), + [anon_sym_LPAREN2] = ACTIONS(1030), + [anon_sym_BANG] = ACTIONS(1030), + [anon_sym_TILDE] = ACTIONS(1030), + [anon_sym_DASH] = ACTIONS(1028), + [anon_sym_PLUS] = ACTIONS(1028), + [anon_sym_STAR] = ACTIONS(1030), + [anon_sym_AMP] = ACTIONS(1030), + [anon_sym_SEMI] = ACTIONS(1030), + [anon_sym_typedef] = ACTIONS(1028), + [anon_sym_extern] = ACTIONS(1028), + [anon_sym___attribute__] = ACTIONS(1028), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1030), + [anon_sym___declspec] = ACTIONS(1028), + [anon_sym___cdecl] = ACTIONS(1028), + [anon_sym___clrcall] = ACTIONS(1028), + [anon_sym___stdcall] = ACTIONS(1028), + [anon_sym___fastcall] = ACTIONS(1028), + [anon_sym___thiscall] = ACTIONS(1028), + [anon_sym___vectorcall] = ACTIONS(1028), + [anon_sym_LBRACE] = ACTIONS(1030), + [anon_sym_static] = ACTIONS(1028), + [anon_sym_auto] = ACTIONS(1028), + [anon_sym_register] = ACTIONS(1028), + [anon_sym_inline] = ACTIONS(1028), + [anon_sym_const] = ACTIONS(1028), + [anon_sym_volatile] = ACTIONS(1028), + [anon_sym_restrict] = ACTIONS(1028), + [anon_sym__Atomic] = ACTIONS(1028), + [anon_sym_signed] = ACTIONS(1028), + [anon_sym_unsigned] = ACTIONS(1028), + [anon_sym_long] = ACTIONS(1028), + [anon_sym_short] = ACTIONS(1028), + [sym_primitive_type] = ACTIONS(1028), + [anon_sym_enum] = ACTIONS(1028), + [anon_sym_struct] = ACTIONS(1028), + [anon_sym_union] = ACTIONS(1028), + [anon_sym_if] = ACTIONS(1028), + [anon_sym_switch] = ACTIONS(1028), + [anon_sym_case] = ACTIONS(1028), + [anon_sym_default] = ACTIONS(1028), + [anon_sym_while] = ACTIONS(1028), + [anon_sym_do] = ACTIONS(1028), + [anon_sym_for] = ACTIONS(1028), + [anon_sym_return] = ACTIONS(1028), + [anon_sym_break] = ACTIONS(1028), + [anon_sym_continue] = ACTIONS(1028), + [anon_sym_goto] = ACTIONS(1028), + [anon_sym_DASH_DASH] = ACTIONS(1030), + [anon_sym_PLUS_PLUS] = ACTIONS(1030), + [anon_sym_sizeof] = ACTIONS(1028), + [sym_number_literal] = ACTIONS(1030), + [anon_sym_L_SQUOTE] = ACTIONS(1030), + [anon_sym_u_SQUOTE] = ACTIONS(1030), + [anon_sym_U_SQUOTE] = ACTIONS(1030), + [anon_sym_u8_SQUOTE] = ACTIONS(1030), + [anon_sym_SQUOTE] = ACTIONS(1030), + [anon_sym_L_DQUOTE] = ACTIONS(1030), + [anon_sym_u_DQUOTE] = ACTIONS(1030), + [anon_sym_U_DQUOTE] = ACTIONS(1030), + [anon_sym_u8_DQUOTE] = ACTIONS(1030), + [anon_sym_DQUOTE] = ACTIONS(1030), + [sym_true] = ACTIONS(1028), + [sym_false] = ACTIONS(1028), + [sym_null] = ACTIONS(1028), + [sym_comment] = ACTIONS(3), + }, + [322] = { + [sym_identifier] = ACTIONS(1104), + [aux_sym_preproc_include_token1] = ACTIONS(1104), + [aux_sym_preproc_def_token1] = ACTIONS(1104), + [aux_sym_preproc_if_token1] = ACTIONS(1104), + [aux_sym_preproc_if_token2] = ACTIONS(1104), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1104), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1104), + [sym_preproc_directive] = ACTIONS(1104), + [anon_sym_LPAREN2] = ACTIONS(1106), + [anon_sym_BANG] = ACTIONS(1106), + [anon_sym_TILDE] = ACTIONS(1106), + [anon_sym_DASH] = ACTIONS(1104), + [anon_sym_PLUS] = ACTIONS(1104), + [anon_sym_STAR] = ACTIONS(1106), + [anon_sym_AMP] = ACTIONS(1106), + [anon_sym_SEMI] = ACTIONS(1106), + [anon_sym_typedef] = ACTIONS(1104), + [anon_sym_extern] = ACTIONS(1104), + [anon_sym___attribute__] = ACTIONS(1104), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1106), + [anon_sym___declspec] = ACTIONS(1104), + [anon_sym___cdecl] = ACTIONS(1104), + [anon_sym___clrcall] = ACTIONS(1104), + [anon_sym___stdcall] = ACTIONS(1104), + [anon_sym___fastcall] = ACTIONS(1104), + [anon_sym___thiscall] = ACTIONS(1104), + [anon_sym___vectorcall] = ACTIONS(1104), + [anon_sym_LBRACE] = ACTIONS(1106), + [anon_sym_static] = ACTIONS(1104), + [anon_sym_auto] = ACTIONS(1104), + [anon_sym_register] = ACTIONS(1104), + [anon_sym_inline] = ACTIONS(1104), + [anon_sym_const] = ACTIONS(1104), + [anon_sym_volatile] = ACTIONS(1104), + [anon_sym_restrict] = ACTIONS(1104), + [anon_sym__Atomic] = ACTIONS(1104), + [anon_sym_signed] = ACTIONS(1104), + [anon_sym_unsigned] = ACTIONS(1104), + [anon_sym_long] = ACTIONS(1104), + [anon_sym_short] = ACTIONS(1104), + [sym_primitive_type] = ACTIONS(1104), + [anon_sym_enum] = ACTIONS(1104), + [anon_sym_struct] = ACTIONS(1104), + [anon_sym_union] = ACTIONS(1104), + [anon_sym_if] = ACTIONS(1104), + [anon_sym_switch] = ACTIONS(1104), + [anon_sym_case] = ACTIONS(1104), + [anon_sym_default] = ACTIONS(1104), + [anon_sym_while] = ACTIONS(1104), + [anon_sym_do] = ACTIONS(1104), + [anon_sym_for] = ACTIONS(1104), + [anon_sym_return] = ACTIONS(1104), + [anon_sym_break] = ACTIONS(1104), + [anon_sym_continue] = ACTIONS(1104), + [anon_sym_goto] = ACTIONS(1104), + [anon_sym_DASH_DASH] = ACTIONS(1106), + [anon_sym_PLUS_PLUS] = ACTIONS(1106), + [anon_sym_sizeof] = ACTIONS(1104), + [sym_number_literal] = ACTIONS(1106), + [anon_sym_L_SQUOTE] = ACTIONS(1106), + [anon_sym_u_SQUOTE] = ACTIONS(1106), + [anon_sym_U_SQUOTE] = ACTIONS(1106), + [anon_sym_u8_SQUOTE] = ACTIONS(1106), + [anon_sym_SQUOTE] = ACTIONS(1106), + [anon_sym_L_DQUOTE] = ACTIONS(1106), + [anon_sym_u_DQUOTE] = ACTIONS(1106), + [anon_sym_U_DQUOTE] = ACTIONS(1106), + [anon_sym_u8_DQUOTE] = ACTIONS(1106), + [anon_sym_DQUOTE] = ACTIONS(1106), + [sym_true] = ACTIONS(1104), + [sym_false] = ACTIONS(1104), + [sym_null] = ACTIONS(1104), + [sym_comment] = ACTIONS(3), + }, + [323] = { + [sym_identifier] = ACTIONS(1072), + [aux_sym_preproc_include_token1] = ACTIONS(1072), + [aux_sym_preproc_def_token1] = ACTIONS(1072), + [aux_sym_preproc_if_token1] = ACTIONS(1072), + [aux_sym_preproc_if_token2] = ACTIONS(1072), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1072), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1072), + [sym_preproc_directive] = ACTIONS(1072), + [anon_sym_LPAREN2] = ACTIONS(1074), + [anon_sym_BANG] = ACTIONS(1074), + [anon_sym_TILDE] = ACTIONS(1074), + [anon_sym_DASH] = ACTIONS(1072), + [anon_sym_PLUS] = ACTIONS(1072), + [anon_sym_STAR] = ACTIONS(1074), + [anon_sym_AMP] = ACTIONS(1074), + [anon_sym_SEMI] = ACTIONS(1074), + [anon_sym_typedef] = ACTIONS(1072), + [anon_sym_extern] = ACTIONS(1072), + [anon_sym___attribute__] = ACTIONS(1072), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1074), + [anon_sym___declspec] = ACTIONS(1072), + [anon_sym___cdecl] = ACTIONS(1072), + [anon_sym___clrcall] = ACTIONS(1072), + [anon_sym___stdcall] = ACTIONS(1072), + [anon_sym___fastcall] = ACTIONS(1072), + [anon_sym___thiscall] = ACTIONS(1072), + [anon_sym___vectorcall] = ACTIONS(1072), + [anon_sym_LBRACE] = ACTIONS(1074), + [anon_sym_static] = ACTIONS(1072), + [anon_sym_auto] = ACTIONS(1072), + [anon_sym_register] = ACTIONS(1072), + [anon_sym_inline] = ACTIONS(1072), + [anon_sym_const] = ACTIONS(1072), + [anon_sym_volatile] = ACTIONS(1072), + [anon_sym_restrict] = ACTIONS(1072), + [anon_sym__Atomic] = ACTIONS(1072), + [anon_sym_signed] = ACTIONS(1072), + [anon_sym_unsigned] = ACTIONS(1072), + [anon_sym_long] = ACTIONS(1072), + [anon_sym_short] = ACTIONS(1072), + [sym_primitive_type] = ACTIONS(1072), + [anon_sym_enum] = ACTIONS(1072), + [anon_sym_struct] = ACTIONS(1072), + [anon_sym_union] = ACTIONS(1072), + [anon_sym_if] = ACTIONS(1072), + [anon_sym_switch] = ACTIONS(1072), + [anon_sym_case] = ACTIONS(1072), + [anon_sym_default] = ACTIONS(1072), + [anon_sym_while] = ACTIONS(1072), + [anon_sym_do] = ACTIONS(1072), + [anon_sym_for] = ACTIONS(1072), + [anon_sym_return] = ACTIONS(1072), + [anon_sym_break] = ACTIONS(1072), + [anon_sym_continue] = ACTIONS(1072), + [anon_sym_goto] = ACTIONS(1072), + [anon_sym_DASH_DASH] = ACTIONS(1074), + [anon_sym_PLUS_PLUS] = ACTIONS(1074), + [anon_sym_sizeof] = ACTIONS(1072), + [sym_number_literal] = ACTIONS(1074), + [anon_sym_L_SQUOTE] = ACTIONS(1074), + [anon_sym_u_SQUOTE] = ACTIONS(1074), + [anon_sym_U_SQUOTE] = ACTIONS(1074), + [anon_sym_u8_SQUOTE] = ACTIONS(1074), + [anon_sym_SQUOTE] = ACTIONS(1074), + [anon_sym_L_DQUOTE] = ACTIONS(1074), + [anon_sym_u_DQUOTE] = ACTIONS(1074), + [anon_sym_U_DQUOTE] = ACTIONS(1074), + [anon_sym_u8_DQUOTE] = ACTIONS(1074), + [anon_sym_DQUOTE] = ACTIONS(1074), + [sym_true] = ACTIONS(1072), + [sym_false] = ACTIONS(1072), + [sym_null] = ACTIONS(1072), + [sym_comment] = ACTIONS(3), + }, + [324] = { + [ts_builtin_sym_end] = ACTIONS(1074), + [sym_identifier] = ACTIONS(1072), + [aux_sym_preproc_include_token1] = ACTIONS(1072), + [aux_sym_preproc_def_token1] = ACTIONS(1072), + [aux_sym_preproc_if_token1] = ACTIONS(1072), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1072), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1072), + [sym_preproc_directive] = ACTIONS(1072), + [anon_sym_LPAREN2] = ACTIONS(1074), + [anon_sym_BANG] = ACTIONS(1074), + [anon_sym_TILDE] = ACTIONS(1074), + [anon_sym_DASH] = ACTIONS(1072), + [anon_sym_PLUS] = ACTIONS(1072), + [anon_sym_STAR] = ACTIONS(1074), + [anon_sym_AMP] = ACTIONS(1074), + [anon_sym_SEMI] = ACTIONS(1074), + [anon_sym_typedef] = ACTIONS(1072), + [anon_sym_extern] = ACTIONS(1072), + [anon_sym___attribute__] = ACTIONS(1072), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1074), + [anon_sym___declspec] = ACTIONS(1072), + [anon_sym___cdecl] = ACTIONS(1072), + [anon_sym___clrcall] = ACTIONS(1072), + [anon_sym___stdcall] = ACTIONS(1072), + [anon_sym___fastcall] = ACTIONS(1072), + [anon_sym___thiscall] = ACTIONS(1072), + [anon_sym___vectorcall] = ACTIONS(1072), + [anon_sym_LBRACE] = ACTIONS(1074), + [anon_sym_static] = ACTIONS(1072), + [anon_sym_auto] = ACTIONS(1072), + [anon_sym_register] = ACTIONS(1072), + [anon_sym_inline] = ACTIONS(1072), + [anon_sym_const] = ACTIONS(1072), + [anon_sym_volatile] = ACTIONS(1072), + [anon_sym_restrict] = ACTIONS(1072), + [anon_sym__Atomic] = ACTIONS(1072), + [anon_sym_signed] = ACTIONS(1072), + [anon_sym_unsigned] = ACTIONS(1072), + [anon_sym_long] = ACTIONS(1072), + [anon_sym_short] = ACTIONS(1072), + [sym_primitive_type] = ACTIONS(1072), + [anon_sym_enum] = ACTIONS(1072), + [anon_sym_struct] = ACTIONS(1072), + [anon_sym_union] = ACTIONS(1072), + [anon_sym_if] = ACTIONS(1072), + [anon_sym_switch] = ACTIONS(1072), + [anon_sym_case] = ACTIONS(1072), + [anon_sym_default] = ACTIONS(1072), + [anon_sym_while] = ACTIONS(1072), + [anon_sym_do] = ACTIONS(1072), + [anon_sym_for] = ACTIONS(1072), + [anon_sym_return] = ACTIONS(1072), + [anon_sym_break] = ACTIONS(1072), + [anon_sym_continue] = ACTIONS(1072), + [anon_sym_goto] = ACTIONS(1072), + [anon_sym_DASH_DASH] = ACTIONS(1074), + [anon_sym_PLUS_PLUS] = ACTIONS(1074), + [anon_sym_sizeof] = ACTIONS(1072), + [sym_number_literal] = ACTIONS(1074), + [anon_sym_L_SQUOTE] = ACTIONS(1074), + [anon_sym_u_SQUOTE] = ACTIONS(1074), + [anon_sym_U_SQUOTE] = ACTIONS(1074), + [anon_sym_u8_SQUOTE] = ACTIONS(1074), + [anon_sym_SQUOTE] = ACTIONS(1074), + [anon_sym_L_DQUOTE] = ACTIONS(1074), + [anon_sym_u_DQUOTE] = ACTIONS(1074), + [anon_sym_U_DQUOTE] = ACTIONS(1074), + [anon_sym_u8_DQUOTE] = ACTIONS(1074), + [anon_sym_DQUOTE] = ACTIONS(1074), + [sym_true] = ACTIONS(1072), + [sym_false] = ACTIONS(1072), + [sym_null] = ACTIONS(1072), + [sym_comment] = ACTIONS(3), + }, + [325] = { + [ts_builtin_sym_end] = ACTIONS(1034), + [sym_identifier] = ACTIONS(1032), + [aux_sym_preproc_include_token1] = ACTIONS(1032), + [aux_sym_preproc_def_token1] = ACTIONS(1032), + [aux_sym_preproc_if_token1] = ACTIONS(1032), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1032), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1032), + [sym_preproc_directive] = ACTIONS(1032), + [anon_sym_LPAREN2] = ACTIONS(1034), + [anon_sym_BANG] = ACTIONS(1034), + [anon_sym_TILDE] = ACTIONS(1034), + [anon_sym_DASH] = ACTIONS(1032), + [anon_sym_PLUS] = ACTIONS(1032), + [anon_sym_STAR] = ACTIONS(1034), + [anon_sym_AMP] = ACTIONS(1034), + [anon_sym_SEMI] = ACTIONS(1034), + [anon_sym_typedef] = ACTIONS(1032), + [anon_sym_extern] = ACTIONS(1032), + [anon_sym___attribute__] = ACTIONS(1032), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1034), + [anon_sym___declspec] = ACTIONS(1032), + [anon_sym___cdecl] = ACTIONS(1032), + [anon_sym___clrcall] = ACTIONS(1032), + [anon_sym___stdcall] = ACTIONS(1032), + [anon_sym___fastcall] = ACTIONS(1032), + [anon_sym___thiscall] = ACTIONS(1032), + [anon_sym___vectorcall] = ACTIONS(1032), + [anon_sym_LBRACE] = ACTIONS(1034), + [anon_sym_static] = ACTIONS(1032), + [anon_sym_auto] = ACTIONS(1032), + [anon_sym_register] = ACTIONS(1032), + [anon_sym_inline] = ACTIONS(1032), + [anon_sym_const] = ACTIONS(1032), + [anon_sym_volatile] = ACTIONS(1032), + [anon_sym_restrict] = ACTIONS(1032), + [anon_sym__Atomic] = ACTIONS(1032), + [anon_sym_signed] = ACTIONS(1032), + [anon_sym_unsigned] = ACTIONS(1032), + [anon_sym_long] = ACTIONS(1032), + [anon_sym_short] = ACTIONS(1032), + [sym_primitive_type] = ACTIONS(1032), + [anon_sym_enum] = ACTIONS(1032), + [anon_sym_struct] = ACTIONS(1032), + [anon_sym_union] = ACTIONS(1032), + [anon_sym_if] = ACTIONS(1032), + [anon_sym_switch] = ACTIONS(1032), + [anon_sym_case] = ACTIONS(1032), + [anon_sym_default] = ACTIONS(1032), + [anon_sym_while] = ACTIONS(1032), + [anon_sym_do] = ACTIONS(1032), + [anon_sym_for] = ACTIONS(1032), + [anon_sym_return] = ACTIONS(1032), + [anon_sym_break] = ACTIONS(1032), + [anon_sym_continue] = ACTIONS(1032), + [anon_sym_goto] = ACTIONS(1032), + [anon_sym_DASH_DASH] = ACTIONS(1034), + [anon_sym_PLUS_PLUS] = ACTIONS(1034), + [anon_sym_sizeof] = ACTIONS(1032), + [sym_number_literal] = ACTIONS(1034), + [anon_sym_L_SQUOTE] = ACTIONS(1034), + [anon_sym_u_SQUOTE] = ACTIONS(1034), + [anon_sym_U_SQUOTE] = ACTIONS(1034), + [anon_sym_u8_SQUOTE] = ACTIONS(1034), + [anon_sym_SQUOTE] = ACTIONS(1034), + [anon_sym_L_DQUOTE] = ACTIONS(1034), + [anon_sym_u_DQUOTE] = ACTIONS(1034), + [anon_sym_U_DQUOTE] = ACTIONS(1034), + [anon_sym_u8_DQUOTE] = ACTIONS(1034), + [anon_sym_DQUOTE] = ACTIONS(1034), + [sym_true] = ACTIONS(1032), + [sym_false] = ACTIONS(1032), + [sym_null] = ACTIONS(1032), + [sym_comment] = ACTIONS(3), + }, + [326] = { + [sym_identifier] = ACTIONS(1080), + [aux_sym_preproc_include_token1] = ACTIONS(1080), + [aux_sym_preproc_def_token1] = ACTIONS(1080), + [aux_sym_preproc_if_token1] = ACTIONS(1080), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1080), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1080), + [sym_preproc_directive] = ACTIONS(1080), + [anon_sym_LPAREN2] = ACTIONS(1082), + [anon_sym_BANG] = ACTIONS(1082), + [anon_sym_TILDE] = ACTIONS(1082), + [anon_sym_DASH] = ACTIONS(1080), + [anon_sym_PLUS] = ACTIONS(1080), + [anon_sym_STAR] = ACTIONS(1082), + [anon_sym_AMP] = ACTIONS(1082), + [anon_sym_SEMI] = ACTIONS(1082), + [anon_sym_typedef] = ACTIONS(1080), + [anon_sym_extern] = ACTIONS(1080), + [anon_sym___attribute__] = ACTIONS(1080), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1082), + [anon_sym___declspec] = ACTIONS(1080), + [anon_sym___cdecl] = ACTIONS(1080), + [anon_sym___clrcall] = ACTIONS(1080), + [anon_sym___stdcall] = ACTIONS(1080), + [anon_sym___fastcall] = ACTIONS(1080), + [anon_sym___thiscall] = ACTIONS(1080), + [anon_sym___vectorcall] = ACTIONS(1080), + [anon_sym_LBRACE] = ACTIONS(1082), + [anon_sym_RBRACE] = ACTIONS(1082), + [anon_sym_static] = ACTIONS(1080), + [anon_sym_auto] = ACTIONS(1080), + [anon_sym_register] = ACTIONS(1080), + [anon_sym_inline] = ACTIONS(1080), + [anon_sym_const] = ACTIONS(1080), + [anon_sym_volatile] = ACTIONS(1080), + [anon_sym_restrict] = ACTIONS(1080), + [anon_sym__Atomic] = ACTIONS(1080), + [anon_sym_signed] = ACTIONS(1080), + [anon_sym_unsigned] = ACTIONS(1080), + [anon_sym_long] = ACTIONS(1080), + [anon_sym_short] = ACTIONS(1080), + [sym_primitive_type] = ACTIONS(1080), + [anon_sym_enum] = ACTIONS(1080), + [anon_sym_struct] = ACTIONS(1080), + [anon_sym_union] = ACTIONS(1080), + [anon_sym_if] = ACTIONS(1080), + [anon_sym_switch] = ACTIONS(1080), + [anon_sym_case] = ACTIONS(1080), + [anon_sym_default] = ACTIONS(1080), + [anon_sym_while] = ACTIONS(1080), + [anon_sym_do] = ACTIONS(1080), + [anon_sym_for] = ACTIONS(1080), + [anon_sym_return] = ACTIONS(1080), + [anon_sym_break] = ACTIONS(1080), + [anon_sym_continue] = ACTIONS(1080), + [anon_sym_goto] = ACTIONS(1080), + [anon_sym_DASH_DASH] = ACTIONS(1082), + [anon_sym_PLUS_PLUS] = ACTIONS(1082), + [anon_sym_sizeof] = ACTIONS(1080), + [sym_number_literal] = ACTIONS(1082), + [anon_sym_L_SQUOTE] = ACTIONS(1082), + [anon_sym_u_SQUOTE] = ACTIONS(1082), + [anon_sym_U_SQUOTE] = ACTIONS(1082), + [anon_sym_u8_SQUOTE] = ACTIONS(1082), + [anon_sym_SQUOTE] = ACTIONS(1082), + [anon_sym_L_DQUOTE] = ACTIONS(1082), + [anon_sym_u_DQUOTE] = ACTIONS(1082), + [anon_sym_U_DQUOTE] = ACTIONS(1082), + [anon_sym_u8_DQUOTE] = ACTIONS(1082), + [anon_sym_DQUOTE] = ACTIONS(1082), + [sym_true] = ACTIONS(1080), + [sym_false] = ACTIONS(1080), + [sym_null] = ACTIONS(1080), + [sym_comment] = ACTIONS(3), + }, + [327] = { + [ts_builtin_sym_end] = ACTIONS(1098), + [sym_identifier] = ACTIONS(1096), + [aux_sym_preproc_include_token1] = ACTIONS(1096), + [aux_sym_preproc_def_token1] = ACTIONS(1096), + [aux_sym_preproc_if_token1] = ACTIONS(1096), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1096), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1096), + [sym_preproc_directive] = ACTIONS(1096), + [anon_sym_LPAREN2] = ACTIONS(1098), + [anon_sym_BANG] = ACTIONS(1098), + [anon_sym_TILDE] = ACTIONS(1098), + [anon_sym_DASH] = ACTIONS(1096), + [anon_sym_PLUS] = ACTIONS(1096), + [anon_sym_STAR] = ACTIONS(1098), + [anon_sym_AMP] = ACTIONS(1098), + [anon_sym_SEMI] = ACTIONS(1098), + [anon_sym_typedef] = ACTIONS(1096), + [anon_sym_extern] = ACTIONS(1096), + [anon_sym___attribute__] = ACTIONS(1096), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1098), + [anon_sym___declspec] = ACTIONS(1096), + [anon_sym___cdecl] = ACTIONS(1096), + [anon_sym___clrcall] = ACTIONS(1096), + [anon_sym___stdcall] = ACTIONS(1096), + [anon_sym___fastcall] = ACTIONS(1096), + [anon_sym___thiscall] = ACTIONS(1096), + [anon_sym___vectorcall] = ACTIONS(1096), + [anon_sym_LBRACE] = ACTIONS(1098), + [anon_sym_static] = ACTIONS(1096), + [anon_sym_auto] = ACTIONS(1096), + [anon_sym_register] = ACTIONS(1096), + [anon_sym_inline] = ACTIONS(1096), + [anon_sym_const] = ACTIONS(1096), + [anon_sym_volatile] = ACTIONS(1096), + [anon_sym_restrict] = ACTIONS(1096), + [anon_sym__Atomic] = ACTIONS(1096), + [anon_sym_signed] = ACTIONS(1096), + [anon_sym_unsigned] = ACTIONS(1096), + [anon_sym_long] = ACTIONS(1096), + [anon_sym_short] = ACTIONS(1096), + [sym_primitive_type] = ACTIONS(1096), + [anon_sym_enum] = ACTIONS(1096), + [anon_sym_struct] = ACTIONS(1096), + [anon_sym_union] = ACTIONS(1096), + [anon_sym_if] = ACTIONS(1096), + [anon_sym_switch] = ACTIONS(1096), + [anon_sym_case] = ACTIONS(1096), + [anon_sym_default] = ACTIONS(1096), + [anon_sym_while] = ACTIONS(1096), + [anon_sym_do] = ACTIONS(1096), + [anon_sym_for] = ACTIONS(1096), + [anon_sym_return] = ACTIONS(1096), + [anon_sym_break] = ACTIONS(1096), + [anon_sym_continue] = ACTIONS(1096), + [anon_sym_goto] = ACTIONS(1096), + [anon_sym_DASH_DASH] = ACTIONS(1098), + [anon_sym_PLUS_PLUS] = ACTIONS(1098), + [anon_sym_sizeof] = ACTIONS(1096), + [sym_number_literal] = ACTIONS(1098), + [anon_sym_L_SQUOTE] = ACTIONS(1098), + [anon_sym_u_SQUOTE] = ACTIONS(1098), + [anon_sym_U_SQUOTE] = ACTIONS(1098), + [anon_sym_u8_SQUOTE] = ACTIONS(1098), + [anon_sym_SQUOTE] = ACTIONS(1098), + [anon_sym_L_DQUOTE] = ACTIONS(1098), + [anon_sym_u_DQUOTE] = ACTIONS(1098), + [anon_sym_U_DQUOTE] = ACTIONS(1098), + [anon_sym_u8_DQUOTE] = ACTIONS(1098), + [anon_sym_DQUOTE] = ACTIONS(1098), + [sym_true] = ACTIONS(1096), + [sym_false] = ACTIONS(1096), + [sym_null] = ACTIONS(1096), + [sym_comment] = ACTIONS(3), + }, + [328] = { + [sym_identifier] = ACTIONS(1088), + [aux_sym_preproc_include_token1] = ACTIONS(1088), + [aux_sym_preproc_def_token1] = ACTIONS(1088), + [aux_sym_preproc_if_token1] = ACTIONS(1088), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1088), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1088), + [sym_preproc_directive] = ACTIONS(1088), + [anon_sym_LPAREN2] = ACTIONS(1090), + [anon_sym_BANG] = ACTIONS(1090), + [anon_sym_TILDE] = ACTIONS(1090), + [anon_sym_DASH] = ACTIONS(1088), + [anon_sym_PLUS] = ACTIONS(1088), + [anon_sym_STAR] = ACTIONS(1090), + [anon_sym_AMP] = ACTIONS(1090), + [anon_sym_SEMI] = ACTIONS(1090), + [anon_sym_typedef] = ACTIONS(1088), + [anon_sym_extern] = ACTIONS(1088), + [anon_sym___attribute__] = ACTIONS(1088), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1090), + [anon_sym___declspec] = ACTIONS(1088), + [anon_sym___cdecl] = ACTIONS(1088), + [anon_sym___clrcall] = ACTIONS(1088), + [anon_sym___stdcall] = ACTIONS(1088), + [anon_sym___fastcall] = ACTIONS(1088), + [anon_sym___thiscall] = ACTIONS(1088), + [anon_sym___vectorcall] = ACTIONS(1088), + [anon_sym_LBRACE] = ACTIONS(1090), + [anon_sym_RBRACE] = ACTIONS(1090), + [anon_sym_static] = ACTIONS(1088), + [anon_sym_auto] = ACTIONS(1088), + [anon_sym_register] = ACTIONS(1088), + [anon_sym_inline] = ACTIONS(1088), + [anon_sym_const] = ACTIONS(1088), + [anon_sym_volatile] = ACTIONS(1088), + [anon_sym_restrict] = ACTIONS(1088), + [anon_sym__Atomic] = ACTIONS(1088), + [anon_sym_signed] = ACTIONS(1088), + [anon_sym_unsigned] = ACTIONS(1088), + [anon_sym_long] = ACTIONS(1088), + [anon_sym_short] = ACTIONS(1088), + [sym_primitive_type] = ACTIONS(1088), + [anon_sym_enum] = ACTIONS(1088), + [anon_sym_struct] = ACTIONS(1088), + [anon_sym_union] = ACTIONS(1088), + [anon_sym_if] = ACTIONS(1088), + [anon_sym_switch] = ACTIONS(1088), + [anon_sym_case] = ACTIONS(1088), + [anon_sym_default] = ACTIONS(1088), + [anon_sym_while] = ACTIONS(1088), + [anon_sym_do] = ACTIONS(1088), + [anon_sym_for] = ACTIONS(1088), + [anon_sym_return] = ACTIONS(1088), + [anon_sym_break] = ACTIONS(1088), + [anon_sym_continue] = ACTIONS(1088), + [anon_sym_goto] = ACTIONS(1088), + [anon_sym_DASH_DASH] = ACTIONS(1090), + [anon_sym_PLUS_PLUS] = ACTIONS(1090), + [anon_sym_sizeof] = ACTIONS(1088), + [sym_number_literal] = ACTIONS(1090), + [anon_sym_L_SQUOTE] = ACTIONS(1090), + [anon_sym_u_SQUOTE] = ACTIONS(1090), + [anon_sym_U_SQUOTE] = ACTIONS(1090), + [anon_sym_u8_SQUOTE] = ACTIONS(1090), + [anon_sym_SQUOTE] = ACTIONS(1090), + [anon_sym_L_DQUOTE] = ACTIONS(1090), + [anon_sym_u_DQUOTE] = ACTIONS(1090), + [anon_sym_U_DQUOTE] = ACTIONS(1090), + [anon_sym_u8_DQUOTE] = ACTIONS(1090), + [anon_sym_DQUOTE] = ACTIONS(1090), + [sym_true] = ACTIONS(1088), + [sym_false] = ACTIONS(1088), + [sym_null] = ACTIONS(1088), + [sym_comment] = ACTIONS(3), + }, + [329] = { + [ts_builtin_sym_end] = ACTIONS(1122), + [sym_identifier] = ACTIONS(1120), + [aux_sym_preproc_include_token1] = ACTIONS(1120), + [aux_sym_preproc_def_token1] = ACTIONS(1120), + [aux_sym_preproc_if_token1] = ACTIONS(1120), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1120), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1120), + [sym_preproc_directive] = ACTIONS(1120), + [anon_sym_LPAREN2] = ACTIONS(1122), + [anon_sym_BANG] = ACTIONS(1122), + [anon_sym_TILDE] = ACTIONS(1122), + [anon_sym_DASH] = ACTIONS(1120), + [anon_sym_PLUS] = ACTIONS(1120), + [anon_sym_STAR] = ACTIONS(1122), + [anon_sym_AMP] = ACTIONS(1122), + [anon_sym_SEMI] = ACTIONS(1122), + [anon_sym_typedef] = ACTIONS(1120), + [anon_sym_extern] = ACTIONS(1120), + [anon_sym___attribute__] = ACTIONS(1120), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1122), + [anon_sym___declspec] = ACTIONS(1120), + [anon_sym___cdecl] = ACTIONS(1120), + [anon_sym___clrcall] = ACTIONS(1120), + [anon_sym___stdcall] = ACTIONS(1120), + [anon_sym___fastcall] = ACTIONS(1120), + [anon_sym___thiscall] = ACTIONS(1120), + [anon_sym___vectorcall] = ACTIONS(1120), + [anon_sym_LBRACE] = ACTIONS(1122), + [anon_sym_static] = ACTIONS(1120), + [anon_sym_auto] = ACTIONS(1120), + [anon_sym_register] = ACTIONS(1120), + [anon_sym_inline] = ACTIONS(1120), + [anon_sym_const] = ACTIONS(1120), + [anon_sym_volatile] = ACTIONS(1120), + [anon_sym_restrict] = ACTIONS(1120), + [anon_sym__Atomic] = ACTIONS(1120), + [anon_sym_signed] = ACTIONS(1120), + [anon_sym_unsigned] = ACTIONS(1120), + [anon_sym_long] = ACTIONS(1120), + [anon_sym_short] = ACTIONS(1120), + [sym_primitive_type] = ACTIONS(1120), + [anon_sym_enum] = ACTIONS(1120), + [anon_sym_struct] = ACTIONS(1120), + [anon_sym_union] = ACTIONS(1120), + [anon_sym_if] = ACTIONS(1120), + [anon_sym_switch] = ACTIONS(1120), + [anon_sym_case] = ACTIONS(1120), + [anon_sym_default] = ACTIONS(1120), + [anon_sym_while] = ACTIONS(1120), + [anon_sym_do] = ACTIONS(1120), + [anon_sym_for] = ACTIONS(1120), + [anon_sym_return] = ACTIONS(1120), + [anon_sym_break] = ACTIONS(1120), + [anon_sym_continue] = ACTIONS(1120), + [anon_sym_goto] = ACTIONS(1120), + [anon_sym_DASH_DASH] = ACTIONS(1122), + [anon_sym_PLUS_PLUS] = ACTIONS(1122), + [anon_sym_sizeof] = ACTIONS(1120), + [sym_number_literal] = ACTIONS(1122), + [anon_sym_L_SQUOTE] = ACTIONS(1122), + [anon_sym_u_SQUOTE] = ACTIONS(1122), + [anon_sym_U_SQUOTE] = ACTIONS(1122), + [anon_sym_u8_SQUOTE] = ACTIONS(1122), + [anon_sym_SQUOTE] = ACTIONS(1122), + [anon_sym_L_DQUOTE] = ACTIONS(1122), + [anon_sym_u_DQUOTE] = ACTIONS(1122), + [anon_sym_U_DQUOTE] = ACTIONS(1122), + [anon_sym_u8_DQUOTE] = ACTIONS(1122), + [anon_sym_DQUOTE] = ACTIONS(1122), + [sym_true] = ACTIONS(1120), + [sym_false] = ACTIONS(1120), + [sym_null] = ACTIONS(1120), + [sym_comment] = ACTIONS(3), + }, + [330] = { + [sym_identifier] = ACTIONS(1076), + [aux_sym_preproc_include_token1] = ACTIONS(1076), + [aux_sym_preproc_def_token1] = ACTIONS(1076), + [aux_sym_preproc_if_token1] = ACTIONS(1076), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1076), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1076), + [sym_preproc_directive] = ACTIONS(1076), + [anon_sym_LPAREN2] = ACTIONS(1078), + [anon_sym_BANG] = ACTIONS(1078), + [anon_sym_TILDE] = ACTIONS(1078), + [anon_sym_DASH] = ACTIONS(1076), + [anon_sym_PLUS] = ACTIONS(1076), + [anon_sym_STAR] = ACTIONS(1078), + [anon_sym_AMP] = ACTIONS(1078), + [anon_sym_SEMI] = ACTIONS(1078), + [anon_sym_typedef] = ACTIONS(1076), + [anon_sym_extern] = ACTIONS(1076), + [anon_sym___attribute__] = ACTIONS(1076), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1078), + [anon_sym___declspec] = ACTIONS(1076), + [anon_sym___cdecl] = ACTIONS(1076), + [anon_sym___clrcall] = ACTIONS(1076), + [anon_sym___stdcall] = ACTIONS(1076), + [anon_sym___fastcall] = ACTIONS(1076), + [anon_sym___thiscall] = ACTIONS(1076), + [anon_sym___vectorcall] = ACTIONS(1076), + [anon_sym_LBRACE] = ACTIONS(1078), + [anon_sym_RBRACE] = ACTIONS(1078), + [anon_sym_static] = ACTIONS(1076), + [anon_sym_auto] = ACTIONS(1076), + [anon_sym_register] = ACTIONS(1076), + [anon_sym_inline] = ACTIONS(1076), + [anon_sym_const] = ACTIONS(1076), + [anon_sym_volatile] = ACTIONS(1076), + [anon_sym_restrict] = ACTIONS(1076), + [anon_sym__Atomic] = ACTIONS(1076), + [anon_sym_signed] = ACTIONS(1076), + [anon_sym_unsigned] = ACTIONS(1076), + [anon_sym_long] = ACTIONS(1076), + [anon_sym_short] = ACTIONS(1076), + [sym_primitive_type] = ACTIONS(1076), + [anon_sym_enum] = ACTIONS(1076), + [anon_sym_struct] = ACTIONS(1076), + [anon_sym_union] = ACTIONS(1076), + [anon_sym_if] = ACTIONS(1076), + [anon_sym_switch] = ACTIONS(1076), + [anon_sym_case] = ACTIONS(1076), + [anon_sym_default] = ACTIONS(1076), + [anon_sym_while] = ACTIONS(1076), + [anon_sym_do] = ACTIONS(1076), + [anon_sym_for] = ACTIONS(1076), + [anon_sym_return] = ACTIONS(1076), + [anon_sym_break] = ACTIONS(1076), + [anon_sym_continue] = ACTIONS(1076), + [anon_sym_goto] = ACTIONS(1076), + [anon_sym_DASH_DASH] = ACTIONS(1078), + [anon_sym_PLUS_PLUS] = ACTIONS(1078), + [anon_sym_sizeof] = ACTIONS(1076), + [sym_number_literal] = ACTIONS(1078), + [anon_sym_L_SQUOTE] = ACTIONS(1078), + [anon_sym_u_SQUOTE] = ACTIONS(1078), + [anon_sym_U_SQUOTE] = ACTIONS(1078), + [anon_sym_u8_SQUOTE] = ACTIONS(1078), + [anon_sym_SQUOTE] = ACTIONS(1078), + [anon_sym_L_DQUOTE] = ACTIONS(1078), + [anon_sym_u_DQUOTE] = ACTIONS(1078), + [anon_sym_U_DQUOTE] = ACTIONS(1078), + [anon_sym_u8_DQUOTE] = ACTIONS(1078), + [anon_sym_DQUOTE] = ACTIONS(1078), + [sym_true] = ACTIONS(1076), + [sym_false] = ACTIONS(1076), + [sym_null] = ACTIONS(1076), + [sym_comment] = ACTIONS(3), + }, + [331] = { + [sym_identifier] = ACTIONS(1104), + [aux_sym_preproc_include_token1] = ACTIONS(1104), + [aux_sym_preproc_def_token1] = ACTIONS(1104), + [aux_sym_preproc_if_token1] = ACTIONS(1104), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1104), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1104), + [sym_preproc_directive] = ACTIONS(1104), + [anon_sym_LPAREN2] = ACTIONS(1106), + [anon_sym_BANG] = ACTIONS(1106), + [anon_sym_TILDE] = ACTIONS(1106), + [anon_sym_DASH] = ACTIONS(1104), + [anon_sym_PLUS] = ACTIONS(1104), + [anon_sym_STAR] = ACTIONS(1106), + [anon_sym_AMP] = ACTIONS(1106), + [anon_sym_SEMI] = ACTIONS(1106), + [anon_sym_typedef] = ACTIONS(1104), + [anon_sym_extern] = ACTIONS(1104), + [anon_sym___attribute__] = ACTIONS(1104), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1106), + [anon_sym___declspec] = ACTIONS(1104), + [anon_sym___cdecl] = ACTIONS(1104), + [anon_sym___clrcall] = ACTIONS(1104), + [anon_sym___stdcall] = ACTIONS(1104), + [anon_sym___fastcall] = ACTIONS(1104), + [anon_sym___thiscall] = ACTIONS(1104), + [anon_sym___vectorcall] = ACTIONS(1104), + [anon_sym_LBRACE] = ACTIONS(1106), + [anon_sym_RBRACE] = ACTIONS(1106), + [anon_sym_static] = ACTIONS(1104), + [anon_sym_auto] = ACTIONS(1104), + [anon_sym_register] = ACTIONS(1104), + [anon_sym_inline] = ACTIONS(1104), + [anon_sym_const] = ACTIONS(1104), + [anon_sym_volatile] = ACTIONS(1104), + [anon_sym_restrict] = ACTIONS(1104), + [anon_sym__Atomic] = ACTIONS(1104), + [anon_sym_signed] = ACTIONS(1104), + [anon_sym_unsigned] = ACTIONS(1104), + [anon_sym_long] = ACTIONS(1104), + [anon_sym_short] = ACTIONS(1104), + [sym_primitive_type] = ACTIONS(1104), + [anon_sym_enum] = ACTIONS(1104), + [anon_sym_struct] = ACTIONS(1104), + [anon_sym_union] = ACTIONS(1104), + [anon_sym_if] = ACTIONS(1104), + [anon_sym_switch] = ACTIONS(1104), + [anon_sym_case] = ACTIONS(1104), + [anon_sym_default] = ACTIONS(1104), + [anon_sym_while] = ACTIONS(1104), + [anon_sym_do] = ACTIONS(1104), + [anon_sym_for] = ACTIONS(1104), + [anon_sym_return] = ACTIONS(1104), + [anon_sym_break] = ACTIONS(1104), + [anon_sym_continue] = ACTIONS(1104), + [anon_sym_goto] = ACTIONS(1104), + [anon_sym_DASH_DASH] = ACTIONS(1106), + [anon_sym_PLUS_PLUS] = ACTIONS(1106), + [anon_sym_sizeof] = ACTIONS(1104), + [sym_number_literal] = ACTIONS(1106), + [anon_sym_L_SQUOTE] = ACTIONS(1106), + [anon_sym_u_SQUOTE] = ACTIONS(1106), + [anon_sym_U_SQUOTE] = ACTIONS(1106), + [anon_sym_u8_SQUOTE] = ACTIONS(1106), + [anon_sym_SQUOTE] = ACTIONS(1106), + [anon_sym_L_DQUOTE] = ACTIONS(1106), + [anon_sym_u_DQUOTE] = ACTIONS(1106), + [anon_sym_U_DQUOTE] = ACTIONS(1106), + [anon_sym_u8_DQUOTE] = ACTIONS(1106), + [anon_sym_DQUOTE] = ACTIONS(1106), + [sym_true] = ACTIONS(1104), + [sym_false] = ACTIONS(1104), + [sym_null] = ACTIONS(1104), + [sym_comment] = ACTIONS(3), + }, + [332] = { + [sym_identifier] = ACTIONS(1060), + [aux_sym_preproc_include_token1] = ACTIONS(1060), + [aux_sym_preproc_def_token1] = ACTIONS(1060), + [aux_sym_preproc_if_token1] = ACTIONS(1060), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1060), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1060), + [sym_preproc_directive] = ACTIONS(1060), + [anon_sym_LPAREN2] = ACTIONS(1062), + [anon_sym_BANG] = ACTIONS(1062), + [anon_sym_TILDE] = ACTIONS(1062), + [anon_sym_DASH] = ACTIONS(1060), + [anon_sym_PLUS] = ACTIONS(1060), + [anon_sym_STAR] = ACTIONS(1062), + [anon_sym_AMP] = ACTIONS(1062), + [anon_sym_SEMI] = ACTIONS(1062), + [anon_sym_typedef] = ACTIONS(1060), + [anon_sym_extern] = ACTIONS(1060), + [anon_sym___attribute__] = ACTIONS(1060), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1062), + [anon_sym___declspec] = ACTIONS(1060), + [anon_sym___cdecl] = ACTIONS(1060), + [anon_sym___clrcall] = ACTIONS(1060), + [anon_sym___stdcall] = ACTIONS(1060), + [anon_sym___fastcall] = ACTIONS(1060), + [anon_sym___thiscall] = ACTIONS(1060), + [anon_sym___vectorcall] = ACTIONS(1060), + [anon_sym_LBRACE] = ACTIONS(1062), + [anon_sym_RBRACE] = ACTIONS(1062), + [anon_sym_static] = ACTIONS(1060), + [anon_sym_auto] = ACTIONS(1060), + [anon_sym_register] = ACTIONS(1060), + [anon_sym_inline] = ACTIONS(1060), + [anon_sym_const] = ACTIONS(1060), + [anon_sym_volatile] = ACTIONS(1060), + [anon_sym_restrict] = ACTIONS(1060), + [anon_sym__Atomic] = ACTIONS(1060), + [anon_sym_signed] = ACTIONS(1060), + [anon_sym_unsigned] = ACTIONS(1060), + [anon_sym_long] = ACTIONS(1060), + [anon_sym_short] = ACTIONS(1060), + [sym_primitive_type] = ACTIONS(1060), + [anon_sym_enum] = ACTIONS(1060), + [anon_sym_struct] = ACTIONS(1060), + [anon_sym_union] = ACTIONS(1060), + [anon_sym_if] = ACTIONS(1060), + [anon_sym_switch] = ACTIONS(1060), + [anon_sym_case] = ACTIONS(1060), + [anon_sym_default] = ACTIONS(1060), + [anon_sym_while] = ACTIONS(1060), + [anon_sym_do] = ACTIONS(1060), + [anon_sym_for] = ACTIONS(1060), + [anon_sym_return] = ACTIONS(1060), + [anon_sym_break] = ACTIONS(1060), + [anon_sym_continue] = ACTIONS(1060), + [anon_sym_goto] = ACTIONS(1060), + [anon_sym_DASH_DASH] = ACTIONS(1062), + [anon_sym_PLUS_PLUS] = ACTIONS(1062), + [anon_sym_sizeof] = ACTIONS(1060), + [sym_number_literal] = ACTIONS(1062), + [anon_sym_L_SQUOTE] = ACTIONS(1062), + [anon_sym_u_SQUOTE] = ACTIONS(1062), + [anon_sym_U_SQUOTE] = ACTIONS(1062), + [anon_sym_u8_SQUOTE] = ACTIONS(1062), + [anon_sym_SQUOTE] = ACTIONS(1062), + [anon_sym_L_DQUOTE] = ACTIONS(1062), + [anon_sym_u_DQUOTE] = ACTIONS(1062), + [anon_sym_U_DQUOTE] = ACTIONS(1062), + [anon_sym_u8_DQUOTE] = ACTIONS(1062), + [anon_sym_DQUOTE] = ACTIONS(1062), + [sym_true] = ACTIONS(1060), + [sym_false] = ACTIONS(1060), + [sym_null] = ACTIONS(1060), + [sym_comment] = ACTIONS(3), + }, + [333] = { + [ts_builtin_sym_end] = ACTIONS(1058), + [sym_identifier] = ACTIONS(1056), + [aux_sym_preproc_include_token1] = ACTIONS(1056), + [aux_sym_preproc_def_token1] = ACTIONS(1056), + [aux_sym_preproc_if_token1] = ACTIONS(1056), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1056), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1056), + [sym_preproc_directive] = ACTIONS(1056), + [anon_sym_LPAREN2] = ACTIONS(1058), + [anon_sym_BANG] = ACTIONS(1058), + [anon_sym_TILDE] = ACTIONS(1058), + [anon_sym_DASH] = ACTIONS(1056), + [anon_sym_PLUS] = ACTIONS(1056), + [anon_sym_STAR] = ACTIONS(1058), + [anon_sym_AMP] = ACTIONS(1058), + [anon_sym_SEMI] = ACTIONS(1058), + [anon_sym_typedef] = ACTIONS(1056), + [anon_sym_extern] = ACTIONS(1056), + [anon_sym___attribute__] = ACTIONS(1056), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1058), + [anon_sym___declspec] = ACTIONS(1056), + [anon_sym___cdecl] = ACTIONS(1056), + [anon_sym___clrcall] = ACTIONS(1056), + [anon_sym___stdcall] = ACTIONS(1056), + [anon_sym___fastcall] = ACTIONS(1056), + [anon_sym___thiscall] = ACTIONS(1056), + [anon_sym___vectorcall] = ACTIONS(1056), + [anon_sym_LBRACE] = ACTIONS(1058), + [anon_sym_static] = ACTIONS(1056), + [anon_sym_auto] = ACTIONS(1056), + [anon_sym_register] = ACTIONS(1056), + [anon_sym_inline] = ACTIONS(1056), + [anon_sym_const] = ACTIONS(1056), + [anon_sym_volatile] = ACTIONS(1056), + [anon_sym_restrict] = ACTIONS(1056), + [anon_sym__Atomic] = ACTIONS(1056), + [anon_sym_signed] = ACTIONS(1056), + [anon_sym_unsigned] = ACTIONS(1056), + [anon_sym_long] = ACTIONS(1056), + [anon_sym_short] = ACTIONS(1056), + [sym_primitive_type] = ACTIONS(1056), + [anon_sym_enum] = ACTIONS(1056), + [anon_sym_struct] = ACTIONS(1056), + [anon_sym_union] = ACTIONS(1056), + [anon_sym_if] = ACTIONS(1056), + [anon_sym_switch] = ACTIONS(1056), + [anon_sym_case] = ACTIONS(1056), + [anon_sym_default] = ACTIONS(1056), + [anon_sym_while] = ACTIONS(1056), + [anon_sym_do] = ACTIONS(1056), + [anon_sym_for] = ACTIONS(1056), + [anon_sym_return] = ACTIONS(1056), + [anon_sym_break] = ACTIONS(1056), + [anon_sym_continue] = ACTIONS(1056), + [anon_sym_goto] = ACTIONS(1056), + [anon_sym_DASH_DASH] = ACTIONS(1058), + [anon_sym_PLUS_PLUS] = ACTIONS(1058), + [anon_sym_sizeof] = ACTIONS(1056), + [sym_number_literal] = ACTIONS(1058), + [anon_sym_L_SQUOTE] = ACTIONS(1058), + [anon_sym_u_SQUOTE] = ACTIONS(1058), + [anon_sym_U_SQUOTE] = ACTIONS(1058), + [anon_sym_u8_SQUOTE] = ACTIONS(1058), + [anon_sym_SQUOTE] = ACTIONS(1058), + [anon_sym_L_DQUOTE] = ACTIONS(1058), + [anon_sym_u_DQUOTE] = ACTIONS(1058), + [anon_sym_U_DQUOTE] = ACTIONS(1058), + [anon_sym_u8_DQUOTE] = ACTIONS(1058), + [anon_sym_DQUOTE] = ACTIONS(1058), + [sym_true] = ACTIONS(1056), + [sym_false] = ACTIONS(1056), + [sym_null] = ACTIONS(1056), + [sym_comment] = ACTIONS(3), + }, + [334] = { + [sym_identifier] = ACTIONS(1092), + [aux_sym_preproc_include_token1] = ACTIONS(1092), + [aux_sym_preproc_def_token1] = ACTIONS(1092), + [aux_sym_preproc_if_token1] = ACTIONS(1092), + [aux_sym_preproc_if_token2] = ACTIONS(1092), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1092), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1092), + [sym_preproc_directive] = ACTIONS(1092), + [anon_sym_LPAREN2] = ACTIONS(1094), + [anon_sym_BANG] = ACTIONS(1094), + [anon_sym_TILDE] = ACTIONS(1094), + [anon_sym_DASH] = ACTIONS(1092), + [anon_sym_PLUS] = ACTIONS(1092), + [anon_sym_STAR] = ACTIONS(1094), + [anon_sym_AMP] = ACTIONS(1094), + [anon_sym_SEMI] = ACTIONS(1094), + [anon_sym_typedef] = ACTIONS(1092), + [anon_sym_extern] = ACTIONS(1092), + [anon_sym___attribute__] = ACTIONS(1092), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1094), + [anon_sym___declspec] = ACTIONS(1092), + [anon_sym___cdecl] = ACTIONS(1092), + [anon_sym___clrcall] = ACTIONS(1092), + [anon_sym___stdcall] = ACTIONS(1092), + [anon_sym___fastcall] = ACTIONS(1092), + [anon_sym___thiscall] = ACTIONS(1092), + [anon_sym___vectorcall] = ACTIONS(1092), + [anon_sym_LBRACE] = ACTIONS(1094), + [anon_sym_static] = ACTIONS(1092), + [anon_sym_auto] = ACTIONS(1092), + [anon_sym_register] = ACTIONS(1092), + [anon_sym_inline] = ACTIONS(1092), + [anon_sym_const] = ACTIONS(1092), + [anon_sym_volatile] = ACTIONS(1092), + [anon_sym_restrict] = ACTIONS(1092), + [anon_sym__Atomic] = ACTIONS(1092), + [anon_sym_signed] = ACTIONS(1092), + [anon_sym_unsigned] = ACTIONS(1092), + [anon_sym_long] = ACTIONS(1092), + [anon_sym_short] = ACTIONS(1092), + [sym_primitive_type] = ACTIONS(1092), + [anon_sym_enum] = ACTIONS(1092), + [anon_sym_struct] = ACTIONS(1092), + [anon_sym_union] = ACTIONS(1092), + [anon_sym_if] = ACTIONS(1092), + [anon_sym_switch] = ACTIONS(1092), + [anon_sym_case] = ACTIONS(1092), + [anon_sym_default] = ACTIONS(1092), + [anon_sym_while] = ACTIONS(1092), + [anon_sym_do] = ACTIONS(1092), + [anon_sym_for] = ACTIONS(1092), + [anon_sym_return] = ACTIONS(1092), + [anon_sym_break] = ACTIONS(1092), + [anon_sym_continue] = ACTIONS(1092), + [anon_sym_goto] = ACTIONS(1092), + [anon_sym_DASH_DASH] = ACTIONS(1094), + [anon_sym_PLUS_PLUS] = ACTIONS(1094), + [anon_sym_sizeof] = ACTIONS(1092), + [sym_number_literal] = ACTIONS(1094), + [anon_sym_L_SQUOTE] = ACTIONS(1094), + [anon_sym_u_SQUOTE] = ACTIONS(1094), + [anon_sym_U_SQUOTE] = ACTIONS(1094), + [anon_sym_u8_SQUOTE] = ACTIONS(1094), + [anon_sym_SQUOTE] = ACTIONS(1094), + [anon_sym_L_DQUOTE] = ACTIONS(1094), + [anon_sym_u_DQUOTE] = ACTIONS(1094), + [anon_sym_U_DQUOTE] = ACTIONS(1094), + [anon_sym_u8_DQUOTE] = ACTIONS(1094), + [anon_sym_DQUOTE] = ACTIONS(1094), + [sym_true] = ACTIONS(1092), + [sym_false] = ACTIONS(1092), + [sym_null] = ACTIONS(1092), + [sym_comment] = ACTIONS(3), + }, + [335] = { + [ts_builtin_sym_end] = ACTIONS(1110), + [sym_identifier] = ACTIONS(1108), + [aux_sym_preproc_include_token1] = ACTIONS(1108), + [aux_sym_preproc_def_token1] = ACTIONS(1108), + [aux_sym_preproc_if_token1] = ACTIONS(1108), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1108), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1108), + [sym_preproc_directive] = ACTIONS(1108), + [anon_sym_LPAREN2] = ACTIONS(1110), + [anon_sym_BANG] = ACTIONS(1110), + [anon_sym_TILDE] = ACTIONS(1110), + [anon_sym_DASH] = ACTIONS(1108), + [anon_sym_PLUS] = ACTIONS(1108), + [anon_sym_STAR] = ACTIONS(1110), + [anon_sym_AMP] = ACTIONS(1110), + [anon_sym_SEMI] = ACTIONS(1110), + [anon_sym_typedef] = ACTIONS(1108), + [anon_sym_extern] = ACTIONS(1108), + [anon_sym___attribute__] = ACTIONS(1108), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1110), + [anon_sym___declspec] = ACTIONS(1108), + [anon_sym___cdecl] = ACTIONS(1108), + [anon_sym___clrcall] = ACTIONS(1108), + [anon_sym___stdcall] = ACTIONS(1108), + [anon_sym___fastcall] = ACTIONS(1108), + [anon_sym___thiscall] = ACTIONS(1108), + [anon_sym___vectorcall] = ACTIONS(1108), + [anon_sym_LBRACE] = ACTIONS(1110), + [anon_sym_static] = ACTIONS(1108), + [anon_sym_auto] = ACTIONS(1108), + [anon_sym_register] = ACTIONS(1108), + [anon_sym_inline] = ACTIONS(1108), + [anon_sym_const] = ACTIONS(1108), + [anon_sym_volatile] = ACTIONS(1108), + [anon_sym_restrict] = ACTIONS(1108), + [anon_sym__Atomic] = ACTIONS(1108), + [anon_sym_signed] = ACTIONS(1108), + [anon_sym_unsigned] = ACTIONS(1108), + [anon_sym_long] = ACTIONS(1108), + [anon_sym_short] = ACTIONS(1108), + [sym_primitive_type] = ACTIONS(1108), + [anon_sym_enum] = ACTIONS(1108), + [anon_sym_struct] = ACTIONS(1108), + [anon_sym_union] = ACTIONS(1108), + [anon_sym_if] = ACTIONS(1108), + [anon_sym_switch] = ACTIONS(1108), + [anon_sym_case] = ACTIONS(1108), + [anon_sym_default] = ACTIONS(1108), + [anon_sym_while] = ACTIONS(1108), + [anon_sym_do] = ACTIONS(1108), + [anon_sym_for] = ACTIONS(1108), + [anon_sym_return] = ACTIONS(1108), + [anon_sym_break] = ACTIONS(1108), + [anon_sym_continue] = ACTIONS(1108), + [anon_sym_goto] = ACTIONS(1108), + [anon_sym_DASH_DASH] = ACTIONS(1110), + [anon_sym_PLUS_PLUS] = ACTIONS(1110), + [anon_sym_sizeof] = ACTIONS(1108), + [sym_number_literal] = ACTIONS(1110), + [anon_sym_L_SQUOTE] = ACTIONS(1110), + [anon_sym_u_SQUOTE] = ACTIONS(1110), + [anon_sym_U_SQUOTE] = ACTIONS(1110), + [anon_sym_u8_SQUOTE] = ACTIONS(1110), + [anon_sym_SQUOTE] = ACTIONS(1110), + [anon_sym_L_DQUOTE] = ACTIONS(1110), + [anon_sym_u_DQUOTE] = ACTIONS(1110), + [anon_sym_U_DQUOTE] = ACTIONS(1110), + [anon_sym_u8_DQUOTE] = ACTIONS(1110), + [anon_sym_DQUOTE] = ACTIONS(1110), + [sym_true] = ACTIONS(1108), + [sym_false] = ACTIONS(1108), + [sym_null] = ACTIONS(1108), + [sym_comment] = ACTIONS(3), + }, + [336] = { + [sym_identifier] = ACTIONS(1072), + [aux_sym_preproc_include_token1] = ACTIONS(1072), + [aux_sym_preproc_def_token1] = ACTIONS(1072), + [aux_sym_preproc_if_token1] = ACTIONS(1072), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1072), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1072), + [sym_preproc_directive] = ACTIONS(1072), + [anon_sym_LPAREN2] = ACTIONS(1074), + [anon_sym_BANG] = ACTIONS(1074), + [anon_sym_TILDE] = ACTIONS(1074), + [anon_sym_DASH] = ACTIONS(1072), + [anon_sym_PLUS] = ACTIONS(1072), + [anon_sym_STAR] = ACTIONS(1074), + [anon_sym_AMP] = ACTIONS(1074), + [anon_sym_SEMI] = ACTIONS(1074), + [anon_sym_typedef] = ACTIONS(1072), + [anon_sym_extern] = ACTIONS(1072), + [anon_sym___attribute__] = ACTIONS(1072), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1074), + [anon_sym___declspec] = ACTIONS(1072), + [anon_sym___cdecl] = ACTIONS(1072), + [anon_sym___clrcall] = ACTIONS(1072), + [anon_sym___stdcall] = ACTIONS(1072), + [anon_sym___fastcall] = ACTIONS(1072), + [anon_sym___thiscall] = ACTIONS(1072), + [anon_sym___vectorcall] = ACTIONS(1072), + [anon_sym_LBRACE] = ACTIONS(1074), + [anon_sym_RBRACE] = ACTIONS(1074), + [anon_sym_static] = ACTIONS(1072), + [anon_sym_auto] = ACTIONS(1072), + [anon_sym_register] = ACTIONS(1072), + [anon_sym_inline] = ACTIONS(1072), + [anon_sym_const] = ACTIONS(1072), + [anon_sym_volatile] = ACTIONS(1072), + [anon_sym_restrict] = ACTIONS(1072), + [anon_sym__Atomic] = ACTIONS(1072), + [anon_sym_signed] = ACTIONS(1072), + [anon_sym_unsigned] = ACTIONS(1072), + [anon_sym_long] = ACTIONS(1072), + [anon_sym_short] = ACTIONS(1072), + [sym_primitive_type] = ACTIONS(1072), + [anon_sym_enum] = ACTIONS(1072), + [anon_sym_struct] = ACTIONS(1072), + [anon_sym_union] = ACTIONS(1072), + [anon_sym_if] = ACTIONS(1072), + [anon_sym_switch] = ACTIONS(1072), + [anon_sym_case] = ACTIONS(1072), + [anon_sym_default] = ACTIONS(1072), + [anon_sym_while] = ACTIONS(1072), + [anon_sym_do] = ACTIONS(1072), + [anon_sym_for] = ACTIONS(1072), + [anon_sym_return] = ACTIONS(1072), + [anon_sym_break] = ACTIONS(1072), + [anon_sym_continue] = ACTIONS(1072), + [anon_sym_goto] = ACTIONS(1072), + [anon_sym_DASH_DASH] = ACTIONS(1074), + [anon_sym_PLUS_PLUS] = ACTIONS(1074), + [anon_sym_sizeof] = ACTIONS(1072), + [sym_number_literal] = ACTIONS(1074), + [anon_sym_L_SQUOTE] = ACTIONS(1074), + [anon_sym_u_SQUOTE] = ACTIONS(1074), + [anon_sym_U_SQUOTE] = ACTIONS(1074), + [anon_sym_u8_SQUOTE] = ACTIONS(1074), + [anon_sym_SQUOTE] = ACTIONS(1074), + [anon_sym_L_DQUOTE] = ACTIONS(1074), + [anon_sym_u_DQUOTE] = ACTIONS(1074), + [anon_sym_U_DQUOTE] = ACTIONS(1074), + [anon_sym_u8_DQUOTE] = ACTIONS(1074), + [anon_sym_DQUOTE] = ACTIONS(1074), + [sym_true] = ACTIONS(1072), + [sym_false] = ACTIONS(1072), + [sym_null] = ACTIONS(1072), + [sym_comment] = ACTIONS(3), + }, + [337] = { + [sym_identifier] = ACTIONS(1112), + [aux_sym_preproc_include_token1] = ACTIONS(1112), + [aux_sym_preproc_def_token1] = ACTIONS(1112), + [aux_sym_preproc_if_token1] = ACTIONS(1112), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1112), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1112), + [sym_preproc_directive] = ACTIONS(1112), + [anon_sym_LPAREN2] = ACTIONS(1114), + [anon_sym_BANG] = ACTIONS(1114), + [anon_sym_TILDE] = ACTIONS(1114), + [anon_sym_DASH] = ACTIONS(1112), + [anon_sym_PLUS] = ACTIONS(1112), + [anon_sym_STAR] = ACTIONS(1114), + [anon_sym_AMP] = ACTIONS(1114), + [anon_sym_SEMI] = ACTIONS(1114), + [anon_sym_typedef] = ACTIONS(1112), + [anon_sym_extern] = ACTIONS(1112), + [anon_sym___attribute__] = ACTIONS(1112), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1114), + [anon_sym___declspec] = ACTIONS(1112), + [anon_sym___cdecl] = ACTIONS(1112), + [anon_sym___clrcall] = ACTIONS(1112), + [anon_sym___stdcall] = ACTIONS(1112), + [anon_sym___fastcall] = ACTIONS(1112), + [anon_sym___thiscall] = ACTIONS(1112), + [anon_sym___vectorcall] = ACTIONS(1112), + [anon_sym_LBRACE] = ACTIONS(1114), + [anon_sym_RBRACE] = ACTIONS(1114), + [anon_sym_static] = ACTIONS(1112), + [anon_sym_auto] = ACTIONS(1112), + [anon_sym_register] = ACTIONS(1112), + [anon_sym_inline] = ACTIONS(1112), + [anon_sym_const] = ACTIONS(1112), + [anon_sym_volatile] = ACTIONS(1112), + [anon_sym_restrict] = ACTIONS(1112), + [anon_sym__Atomic] = ACTIONS(1112), + [anon_sym_signed] = ACTIONS(1112), + [anon_sym_unsigned] = ACTIONS(1112), + [anon_sym_long] = ACTIONS(1112), + [anon_sym_short] = ACTIONS(1112), + [sym_primitive_type] = ACTIONS(1112), + [anon_sym_enum] = ACTIONS(1112), + [anon_sym_struct] = ACTIONS(1112), + [anon_sym_union] = ACTIONS(1112), + [anon_sym_if] = ACTIONS(1112), + [anon_sym_switch] = ACTIONS(1112), + [anon_sym_case] = ACTIONS(1112), + [anon_sym_default] = ACTIONS(1112), + [anon_sym_while] = ACTIONS(1112), + [anon_sym_do] = ACTIONS(1112), + [anon_sym_for] = ACTIONS(1112), + [anon_sym_return] = ACTIONS(1112), + [anon_sym_break] = ACTIONS(1112), + [anon_sym_continue] = ACTIONS(1112), + [anon_sym_goto] = ACTIONS(1112), + [anon_sym_DASH_DASH] = ACTIONS(1114), + [anon_sym_PLUS_PLUS] = ACTIONS(1114), + [anon_sym_sizeof] = ACTIONS(1112), + [sym_number_literal] = ACTIONS(1114), + [anon_sym_L_SQUOTE] = ACTIONS(1114), + [anon_sym_u_SQUOTE] = ACTIONS(1114), + [anon_sym_U_SQUOTE] = ACTIONS(1114), + [anon_sym_u8_SQUOTE] = ACTIONS(1114), + [anon_sym_SQUOTE] = ACTIONS(1114), + [anon_sym_L_DQUOTE] = ACTIONS(1114), + [anon_sym_u_DQUOTE] = ACTIONS(1114), + [anon_sym_U_DQUOTE] = ACTIONS(1114), + [anon_sym_u8_DQUOTE] = ACTIONS(1114), + [anon_sym_DQUOTE] = ACTIONS(1114), + [sym_true] = ACTIONS(1112), + [sym_false] = ACTIONS(1112), + [sym_null] = ACTIONS(1112), + [sym_comment] = ACTIONS(3), + }, + [338] = { + [sym_identifier] = ACTIONS(1108), + [aux_sym_preproc_include_token1] = ACTIONS(1108), + [aux_sym_preproc_def_token1] = ACTIONS(1108), + [aux_sym_preproc_if_token1] = ACTIONS(1108), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1108), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1108), + [sym_preproc_directive] = ACTIONS(1108), + [anon_sym_LPAREN2] = ACTIONS(1110), + [anon_sym_BANG] = ACTIONS(1110), + [anon_sym_TILDE] = ACTIONS(1110), + [anon_sym_DASH] = ACTIONS(1108), + [anon_sym_PLUS] = ACTIONS(1108), + [anon_sym_STAR] = ACTIONS(1110), + [anon_sym_AMP] = ACTIONS(1110), + [anon_sym_SEMI] = ACTIONS(1110), + [anon_sym_typedef] = ACTIONS(1108), + [anon_sym_extern] = ACTIONS(1108), + [anon_sym___attribute__] = ACTIONS(1108), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1110), + [anon_sym___declspec] = ACTIONS(1108), + [anon_sym___cdecl] = ACTIONS(1108), + [anon_sym___clrcall] = ACTIONS(1108), + [anon_sym___stdcall] = ACTIONS(1108), + [anon_sym___fastcall] = ACTIONS(1108), + [anon_sym___thiscall] = ACTIONS(1108), + [anon_sym___vectorcall] = ACTIONS(1108), + [anon_sym_LBRACE] = ACTIONS(1110), + [anon_sym_RBRACE] = ACTIONS(1110), + [anon_sym_static] = ACTIONS(1108), + [anon_sym_auto] = ACTIONS(1108), + [anon_sym_register] = ACTIONS(1108), + [anon_sym_inline] = ACTIONS(1108), + [anon_sym_const] = ACTIONS(1108), + [anon_sym_volatile] = ACTIONS(1108), + [anon_sym_restrict] = ACTIONS(1108), + [anon_sym__Atomic] = ACTIONS(1108), + [anon_sym_signed] = ACTIONS(1108), + [anon_sym_unsigned] = ACTIONS(1108), + [anon_sym_long] = ACTIONS(1108), + [anon_sym_short] = ACTIONS(1108), + [sym_primitive_type] = ACTIONS(1108), + [anon_sym_enum] = ACTIONS(1108), + [anon_sym_struct] = ACTIONS(1108), + [anon_sym_union] = ACTIONS(1108), + [anon_sym_if] = ACTIONS(1108), + [anon_sym_switch] = ACTIONS(1108), + [anon_sym_case] = ACTIONS(1108), + [anon_sym_default] = ACTIONS(1108), + [anon_sym_while] = ACTIONS(1108), + [anon_sym_do] = ACTIONS(1108), + [anon_sym_for] = ACTIONS(1108), + [anon_sym_return] = ACTIONS(1108), + [anon_sym_break] = ACTIONS(1108), + [anon_sym_continue] = ACTIONS(1108), + [anon_sym_goto] = ACTIONS(1108), + [anon_sym_DASH_DASH] = ACTIONS(1110), + [anon_sym_PLUS_PLUS] = ACTIONS(1110), + [anon_sym_sizeof] = ACTIONS(1108), + [sym_number_literal] = ACTIONS(1110), + [anon_sym_L_SQUOTE] = ACTIONS(1110), + [anon_sym_u_SQUOTE] = ACTIONS(1110), + [anon_sym_U_SQUOTE] = ACTIONS(1110), + [anon_sym_u8_SQUOTE] = ACTIONS(1110), + [anon_sym_SQUOTE] = ACTIONS(1110), + [anon_sym_L_DQUOTE] = ACTIONS(1110), + [anon_sym_u_DQUOTE] = ACTIONS(1110), + [anon_sym_U_DQUOTE] = ACTIONS(1110), + [anon_sym_u8_DQUOTE] = ACTIONS(1110), + [anon_sym_DQUOTE] = ACTIONS(1110), + [sym_true] = ACTIONS(1108), + [sym_false] = ACTIONS(1108), + [sym_null] = ACTIONS(1108), + [sym_comment] = ACTIONS(3), + }, + [339] = { + [ts_builtin_sym_end] = ACTIONS(1114), + [sym_identifier] = ACTIONS(1112), + [aux_sym_preproc_include_token1] = ACTIONS(1112), + [aux_sym_preproc_def_token1] = ACTIONS(1112), + [aux_sym_preproc_if_token1] = ACTIONS(1112), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1112), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1112), + [sym_preproc_directive] = ACTIONS(1112), + [anon_sym_LPAREN2] = ACTIONS(1114), + [anon_sym_BANG] = ACTIONS(1114), + [anon_sym_TILDE] = ACTIONS(1114), + [anon_sym_DASH] = ACTIONS(1112), + [anon_sym_PLUS] = ACTIONS(1112), + [anon_sym_STAR] = ACTIONS(1114), + [anon_sym_AMP] = ACTIONS(1114), + [anon_sym_SEMI] = ACTIONS(1114), + [anon_sym_typedef] = ACTIONS(1112), + [anon_sym_extern] = ACTIONS(1112), + [anon_sym___attribute__] = ACTIONS(1112), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1114), + [anon_sym___declspec] = ACTIONS(1112), + [anon_sym___cdecl] = ACTIONS(1112), + [anon_sym___clrcall] = ACTIONS(1112), + [anon_sym___stdcall] = ACTIONS(1112), + [anon_sym___fastcall] = ACTIONS(1112), + [anon_sym___thiscall] = ACTIONS(1112), + [anon_sym___vectorcall] = ACTIONS(1112), + [anon_sym_LBRACE] = ACTIONS(1114), + [anon_sym_static] = ACTIONS(1112), + [anon_sym_auto] = ACTIONS(1112), + [anon_sym_register] = ACTIONS(1112), + [anon_sym_inline] = ACTIONS(1112), + [anon_sym_const] = ACTIONS(1112), + [anon_sym_volatile] = ACTIONS(1112), + [anon_sym_restrict] = ACTIONS(1112), + [anon_sym__Atomic] = ACTIONS(1112), + [anon_sym_signed] = ACTIONS(1112), + [anon_sym_unsigned] = ACTIONS(1112), + [anon_sym_long] = ACTIONS(1112), + [anon_sym_short] = ACTIONS(1112), + [sym_primitive_type] = ACTIONS(1112), + [anon_sym_enum] = ACTIONS(1112), + [anon_sym_struct] = ACTIONS(1112), + [anon_sym_union] = ACTIONS(1112), + [anon_sym_if] = ACTIONS(1112), + [anon_sym_switch] = ACTIONS(1112), + [anon_sym_case] = ACTIONS(1112), + [anon_sym_default] = ACTIONS(1112), + [anon_sym_while] = ACTIONS(1112), + [anon_sym_do] = ACTIONS(1112), + [anon_sym_for] = ACTIONS(1112), + [anon_sym_return] = ACTIONS(1112), + [anon_sym_break] = ACTIONS(1112), + [anon_sym_continue] = ACTIONS(1112), + [anon_sym_goto] = ACTIONS(1112), + [anon_sym_DASH_DASH] = ACTIONS(1114), + [anon_sym_PLUS_PLUS] = ACTIONS(1114), + [anon_sym_sizeof] = ACTIONS(1112), + [sym_number_literal] = ACTIONS(1114), + [anon_sym_L_SQUOTE] = ACTIONS(1114), + [anon_sym_u_SQUOTE] = ACTIONS(1114), + [anon_sym_U_SQUOTE] = ACTIONS(1114), + [anon_sym_u8_SQUOTE] = ACTIONS(1114), + [anon_sym_SQUOTE] = ACTIONS(1114), + [anon_sym_L_DQUOTE] = ACTIONS(1114), + [anon_sym_u_DQUOTE] = ACTIONS(1114), + [anon_sym_U_DQUOTE] = ACTIONS(1114), + [anon_sym_u8_DQUOTE] = ACTIONS(1114), + [anon_sym_DQUOTE] = ACTIONS(1114), + [sym_true] = ACTIONS(1112), + [sym_false] = ACTIONS(1112), + [sym_null] = ACTIONS(1112), + [sym_comment] = ACTIONS(3), + }, + [340] = { + [ts_builtin_sym_end] = ACTIONS(1054), + [sym_identifier] = ACTIONS(1052), + [aux_sym_preproc_include_token1] = ACTIONS(1052), + [aux_sym_preproc_def_token1] = ACTIONS(1052), + [aux_sym_preproc_if_token1] = ACTIONS(1052), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1052), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1052), + [sym_preproc_directive] = ACTIONS(1052), + [anon_sym_LPAREN2] = ACTIONS(1054), + [anon_sym_BANG] = ACTIONS(1054), + [anon_sym_TILDE] = ACTIONS(1054), + [anon_sym_DASH] = ACTIONS(1052), + [anon_sym_PLUS] = ACTIONS(1052), + [anon_sym_STAR] = ACTIONS(1054), + [anon_sym_AMP] = ACTIONS(1054), + [anon_sym_SEMI] = ACTIONS(1054), + [anon_sym_typedef] = ACTIONS(1052), + [anon_sym_extern] = ACTIONS(1052), + [anon_sym___attribute__] = ACTIONS(1052), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1054), + [anon_sym___declspec] = ACTIONS(1052), + [anon_sym___cdecl] = ACTIONS(1052), + [anon_sym___clrcall] = ACTIONS(1052), + [anon_sym___stdcall] = ACTIONS(1052), + [anon_sym___fastcall] = ACTIONS(1052), + [anon_sym___thiscall] = ACTIONS(1052), + [anon_sym___vectorcall] = ACTIONS(1052), + [anon_sym_LBRACE] = ACTIONS(1054), + [anon_sym_static] = ACTIONS(1052), + [anon_sym_auto] = ACTIONS(1052), + [anon_sym_register] = ACTIONS(1052), + [anon_sym_inline] = ACTIONS(1052), + [anon_sym_const] = ACTIONS(1052), + [anon_sym_volatile] = ACTIONS(1052), + [anon_sym_restrict] = ACTIONS(1052), + [anon_sym__Atomic] = ACTIONS(1052), + [anon_sym_signed] = ACTIONS(1052), + [anon_sym_unsigned] = ACTIONS(1052), + [anon_sym_long] = ACTIONS(1052), + [anon_sym_short] = ACTIONS(1052), + [sym_primitive_type] = ACTIONS(1052), + [anon_sym_enum] = ACTIONS(1052), + [anon_sym_struct] = ACTIONS(1052), + [anon_sym_union] = ACTIONS(1052), + [anon_sym_if] = ACTIONS(1052), + [anon_sym_switch] = ACTIONS(1052), + [anon_sym_case] = ACTIONS(1052), + [anon_sym_default] = ACTIONS(1052), + [anon_sym_while] = ACTIONS(1052), + [anon_sym_do] = ACTIONS(1052), + [anon_sym_for] = ACTIONS(1052), + [anon_sym_return] = ACTIONS(1052), + [anon_sym_break] = ACTIONS(1052), + [anon_sym_continue] = ACTIONS(1052), + [anon_sym_goto] = ACTIONS(1052), + [anon_sym_DASH_DASH] = ACTIONS(1054), + [anon_sym_PLUS_PLUS] = ACTIONS(1054), + [anon_sym_sizeof] = ACTIONS(1052), + [sym_number_literal] = ACTIONS(1054), + [anon_sym_L_SQUOTE] = ACTIONS(1054), + [anon_sym_u_SQUOTE] = ACTIONS(1054), + [anon_sym_U_SQUOTE] = ACTIONS(1054), + [anon_sym_u8_SQUOTE] = ACTIONS(1054), + [anon_sym_SQUOTE] = ACTIONS(1054), + [anon_sym_L_DQUOTE] = ACTIONS(1054), + [anon_sym_u_DQUOTE] = ACTIONS(1054), + [anon_sym_U_DQUOTE] = ACTIONS(1054), + [anon_sym_u8_DQUOTE] = ACTIONS(1054), + [anon_sym_DQUOTE] = ACTIONS(1054), + [sym_true] = ACTIONS(1052), + [sym_false] = ACTIONS(1052), + [sym_null] = ACTIONS(1052), + [sym_comment] = ACTIONS(3), + }, + [341] = { + [sym_identifier] = ACTIONS(1096), + [aux_sym_preproc_include_token1] = ACTIONS(1096), + [aux_sym_preproc_def_token1] = ACTIONS(1096), + [aux_sym_preproc_if_token1] = ACTIONS(1096), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1096), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1096), + [sym_preproc_directive] = ACTIONS(1096), + [anon_sym_LPAREN2] = ACTIONS(1098), + [anon_sym_BANG] = ACTIONS(1098), + [anon_sym_TILDE] = ACTIONS(1098), + [anon_sym_DASH] = ACTIONS(1096), + [anon_sym_PLUS] = ACTIONS(1096), + [anon_sym_STAR] = ACTIONS(1098), + [anon_sym_AMP] = ACTIONS(1098), + [anon_sym_SEMI] = ACTIONS(1098), + [anon_sym_typedef] = ACTIONS(1096), + [anon_sym_extern] = ACTIONS(1096), + [anon_sym___attribute__] = ACTIONS(1096), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1098), + [anon_sym___declspec] = ACTIONS(1096), + [anon_sym___cdecl] = ACTIONS(1096), + [anon_sym___clrcall] = ACTIONS(1096), + [anon_sym___stdcall] = ACTIONS(1096), + [anon_sym___fastcall] = ACTIONS(1096), + [anon_sym___thiscall] = ACTIONS(1096), + [anon_sym___vectorcall] = ACTIONS(1096), + [anon_sym_LBRACE] = ACTIONS(1098), + [anon_sym_RBRACE] = ACTIONS(1098), + [anon_sym_static] = ACTIONS(1096), + [anon_sym_auto] = ACTIONS(1096), + [anon_sym_register] = ACTIONS(1096), + [anon_sym_inline] = ACTIONS(1096), + [anon_sym_const] = ACTIONS(1096), + [anon_sym_volatile] = ACTIONS(1096), + [anon_sym_restrict] = ACTIONS(1096), + [anon_sym__Atomic] = ACTIONS(1096), + [anon_sym_signed] = ACTIONS(1096), + [anon_sym_unsigned] = ACTIONS(1096), + [anon_sym_long] = ACTIONS(1096), + [anon_sym_short] = ACTIONS(1096), + [sym_primitive_type] = ACTIONS(1096), + [anon_sym_enum] = ACTIONS(1096), + [anon_sym_struct] = ACTIONS(1096), + [anon_sym_union] = ACTIONS(1096), + [anon_sym_if] = ACTIONS(1096), + [anon_sym_switch] = ACTIONS(1096), + [anon_sym_case] = ACTIONS(1096), + [anon_sym_default] = ACTIONS(1096), + [anon_sym_while] = ACTIONS(1096), + [anon_sym_do] = ACTIONS(1096), + [anon_sym_for] = ACTIONS(1096), + [anon_sym_return] = ACTIONS(1096), + [anon_sym_break] = ACTIONS(1096), + [anon_sym_continue] = ACTIONS(1096), + [anon_sym_goto] = ACTIONS(1096), + [anon_sym_DASH_DASH] = ACTIONS(1098), + [anon_sym_PLUS_PLUS] = ACTIONS(1098), + [anon_sym_sizeof] = ACTIONS(1096), + [sym_number_literal] = ACTIONS(1098), + [anon_sym_L_SQUOTE] = ACTIONS(1098), + [anon_sym_u_SQUOTE] = ACTIONS(1098), + [anon_sym_U_SQUOTE] = ACTIONS(1098), + [anon_sym_u8_SQUOTE] = ACTIONS(1098), + [anon_sym_SQUOTE] = ACTIONS(1098), + [anon_sym_L_DQUOTE] = ACTIONS(1098), + [anon_sym_u_DQUOTE] = ACTIONS(1098), + [anon_sym_U_DQUOTE] = ACTIONS(1098), + [anon_sym_u8_DQUOTE] = ACTIONS(1098), + [anon_sym_DQUOTE] = ACTIONS(1098), + [sym_true] = ACTIONS(1096), + [sym_false] = ACTIONS(1096), + [sym_null] = ACTIONS(1096), + [sym_comment] = ACTIONS(3), + }, + [342] = { + [sym_identifier] = ACTIONS(1056), + [aux_sym_preproc_include_token1] = ACTIONS(1056), + [aux_sym_preproc_def_token1] = ACTIONS(1056), + [aux_sym_preproc_if_token1] = ACTIONS(1056), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1056), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1056), + [sym_preproc_directive] = ACTIONS(1056), + [anon_sym_LPAREN2] = ACTIONS(1058), + [anon_sym_BANG] = ACTIONS(1058), + [anon_sym_TILDE] = ACTIONS(1058), + [anon_sym_DASH] = ACTIONS(1056), + [anon_sym_PLUS] = ACTIONS(1056), + [anon_sym_STAR] = ACTIONS(1058), + [anon_sym_AMP] = ACTIONS(1058), + [anon_sym_SEMI] = ACTIONS(1058), + [anon_sym_typedef] = ACTIONS(1056), + [anon_sym_extern] = ACTIONS(1056), + [anon_sym___attribute__] = ACTIONS(1056), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1058), + [anon_sym___declspec] = ACTIONS(1056), + [anon_sym___cdecl] = ACTIONS(1056), + [anon_sym___clrcall] = ACTIONS(1056), + [anon_sym___stdcall] = ACTIONS(1056), + [anon_sym___fastcall] = ACTIONS(1056), + [anon_sym___thiscall] = ACTIONS(1056), + [anon_sym___vectorcall] = ACTIONS(1056), + [anon_sym_LBRACE] = ACTIONS(1058), + [anon_sym_RBRACE] = ACTIONS(1058), + [anon_sym_static] = ACTIONS(1056), + [anon_sym_auto] = ACTIONS(1056), + [anon_sym_register] = ACTIONS(1056), + [anon_sym_inline] = ACTIONS(1056), + [anon_sym_const] = ACTIONS(1056), + [anon_sym_volatile] = ACTIONS(1056), + [anon_sym_restrict] = ACTIONS(1056), + [anon_sym__Atomic] = ACTIONS(1056), + [anon_sym_signed] = ACTIONS(1056), + [anon_sym_unsigned] = ACTIONS(1056), + [anon_sym_long] = ACTIONS(1056), + [anon_sym_short] = ACTIONS(1056), + [sym_primitive_type] = ACTIONS(1056), + [anon_sym_enum] = ACTIONS(1056), + [anon_sym_struct] = ACTIONS(1056), + [anon_sym_union] = ACTIONS(1056), + [anon_sym_if] = ACTIONS(1056), + [anon_sym_switch] = ACTIONS(1056), + [anon_sym_case] = ACTIONS(1056), + [anon_sym_default] = ACTIONS(1056), + [anon_sym_while] = ACTIONS(1056), + [anon_sym_do] = ACTIONS(1056), + [anon_sym_for] = ACTIONS(1056), + [anon_sym_return] = ACTIONS(1056), + [anon_sym_break] = ACTIONS(1056), + [anon_sym_continue] = ACTIONS(1056), + [anon_sym_goto] = ACTIONS(1056), + [anon_sym_DASH_DASH] = ACTIONS(1058), + [anon_sym_PLUS_PLUS] = ACTIONS(1058), + [anon_sym_sizeof] = ACTIONS(1056), + [sym_number_literal] = ACTIONS(1058), + [anon_sym_L_SQUOTE] = ACTIONS(1058), + [anon_sym_u_SQUOTE] = ACTIONS(1058), + [anon_sym_U_SQUOTE] = ACTIONS(1058), + [anon_sym_u8_SQUOTE] = ACTIONS(1058), + [anon_sym_SQUOTE] = ACTIONS(1058), + [anon_sym_L_DQUOTE] = ACTIONS(1058), + [anon_sym_u_DQUOTE] = ACTIONS(1058), + [anon_sym_U_DQUOTE] = ACTIONS(1058), + [anon_sym_u8_DQUOTE] = ACTIONS(1058), + [anon_sym_DQUOTE] = ACTIONS(1058), + [sym_true] = ACTIONS(1056), + [sym_false] = ACTIONS(1056), + [sym_null] = ACTIONS(1056), + [sym_comment] = ACTIONS(3), + }, + [343] = { + [sym_identifier] = ACTIONS(1064), + [aux_sym_preproc_include_token1] = ACTIONS(1064), + [aux_sym_preproc_def_token1] = ACTIONS(1064), + [aux_sym_preproc_if_token1] = ACTIONS(1064), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1064), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1064), + [sym_preproc_directive] = ACTIONS(1064), + [anon_sym_LPAREN2] = ACTIONS(1066), + [anon_sym_BANG] = ACTIONS(1066), + [anon_sym_TILDE] = ACTIONS(1066), + [anon_sym_DASH] = ACTIONS(1064), + [anon_sym_PLUS] = ACTIONS(1064), + [anon_sym_STAR] = ACTIONS(1066), + [anon_sym_AMP] = ACTIONS(1066), + [anon_sym_SEMI] = ACTIONS(1066), + [anon_sym_typedef] = ACTIONS(1064), + [anon_sym_extern] = ACTIONS(1064), + [anon_sym___attribute__] = ACTIONS(1064), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1066), + [anon_sym___declspec] = ACTIONS(1064), + [anon_sym___cdecl] = ACTIONS(1064), + [anon_sym___clrcall] = ACTIONS(1064), + [anon_sym___stdcall] = ACTIONS(1064), + [anon_sym___fastcall] = ACTIONS(1064), + [anon_sym___thiscall] = ACTIONS(1064), + [anon_sym___vectorcall] = ACTIONS(1064), + [anon_sym_LBRACE] = ACTIONS(1066), + [anon_sym_RBRACE] = ACTIONS(1066), + [anon_sym_static] = ACTIONS(1064), + [anon_sym_auto] = ACTIONS(1064), + [anon_sym_register] = ACTIONS(1064), + [anon_sym_inline] = ACTIONS(1064), + [anon_sym_const] = ACTIONS(1064), + [anon_sym_volatile] = ACTIONS(1064), + [anon_sym_restrict] = ACTIONS(1064), + [anon_sym__Atomic] = ACTIONS(1064), + [anon_sym_signed] = ACTIONS(1064), + [anon_sym_unsigned] = ACTIONS(1064), + [anon_sym_long] = ACTIONS(1064), + [anon_sym_short] = ACTIONS(1064), + [sym_primitive_type] = ACTIONS(1064), + [anon_sym_enum] = ACTIONS(1064), + [anon_sym_struct] = ACTIONS(1064), + [anon_sym_union] = ACTIONS(1064), + [anon_sym_if] = ACTIONS(1064), + [anon_sym_switch] = ACTIONS(1064), + [anon_sym_case] = ACTIONS(1064), + [anon_sym_default] = ACTIONS(1064), + [anon_sym_while] = ACTIONS(1064), + [anon_sym_do] = ACTIONS(1064), + [anon_sym_for] = ACTIONS(1064), + [anon_sym_return] = ACTIONS(1064), + [anon_sym_break] = ACTIONS(1064), + [anon_sym_continue] = ACTIONS(1064), + [anon_sym_goto] = ACTIONS(1064), + [anon_sym_DASH_DASH] = ACTIONS(1066), + [anon_sym_PLUS_PLUS] = ACTIONS(1066), + [anon_sym_sizeof] = ACTIONS(1064), + [sym_number_literal] = ACTIONS(1066), + [anon_sym_L_SQUOTE] = ACTIONS(1066), + [anon_sym_u_SQUOTE] = ACTIONS(1066), + [anon_sym_U_SQUOTE] = ACTIONS(1066), + [anon_sym_u8_SQUOTE] = ACTIONS(1066), + [anon_sym_SQUOTE] = ACTIONS(1066), + [anon_sym_L_DQUOTE] = ACTIONS(1066), + [anon_sym_u_DQUOTE] = ACTIONS(1066), + [anon_sym_U_DQUOTE] = ACTIONS(1066), + [anon_sym_u8_DQUOTE] = ACTIONS(1066), + [anon_sym_DQUOTE] = ACTIONS(1066), + [sym_true] = ACTIONS(1064), + [sym_false] = ACTIONS(1064), + [sym_null] = ACTIONS(1064), + [sym_comment] = ACTIONS(3), + }, + [344] = { + [ts_builtin_sym_end] = ACTIONS(1102), + [sym_identifier] = ACTIONS(1100), + [aux_sym_preproc_include_token1] = ACTIONS(1100), + [aux_sym_preproc_def_token1] = ACTIONS(1100), + [aux_sym_preproc_if_token1] = ACTIONS(1100), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1100), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1100), + [sym_preproc_directive] = ACTIONS(1100), + [anon_sym_LPAREN2] = ACTIONS(1102), + [anon_sym_BANG] = ACTIONS(1102), + [anon_sym_TILDE] = ACTIONS(1102), + [anon_sym_DASH] = ACTIONS(1100), + [anon_sym_PLUS] = ACTIONS(1100), + [anon_sym_STAR] = ACTIONS(1102), + [anon_sym_AMP] = ACTIONS(1102), + [anon_sym_SEMI] = ACTIONS(1102), + [anon_sym_typedef] = ACTIONS(1100), + [anon_sym_extern] = ACTIONS(1100), + [anon_sym___attribute__] = ACTIONS(1100), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1102), + [anon_sym___declspec] = ACTIONS(1100), + [anon_sym___cdecl] = ACTIONS(1100), + [anon_sym___clrcall] = ACTIONS(1100), + [anon_sym___stdcall] = ACTIONS(1100), + [anon_sym___fastcall] = ACTIONS(1100), + [anon_sym___thiscall] = ACTIONS(1100), + [anon_sym___vectorcall] = ACTIONS(1100), + [anon_sym_LBRACE] = ACTIONS(1102), + [anon_sym_static] = ACTIONS(1100), + [anon_sym_auto] = ACTIONS(1100), + [anon_sym_register] = ACTIONS(1100), + [anon_sym_inline] = ACTIONS(1100), + [anon_sym_const] = ACTIONS(1100), + [anon_sym_volatile] = ACTIONS(1100), + [anon_sym_restrict] = ACTIONS(1100), + [anon_sym__Atomic] = ACTIONS(1100), + [anon_sym_signed] = ACTIONS(1100), + [anon_sym_unsigned] = ACTIONS(1100), + [anon_sym_long] = ACTIONS(1100), + [anon_sym_short] = ACTIONS(1100), + [sym_primitive_type] = ACTIONS(1100), + [anon_sym_enum] = ACTIONS(1100), + [anon_sym_struct] = ACTIONS(1100), + [anon_sym_union] = ACTIONS(1100), + [anon_sym_if] = ACTIONS(1100), + [anon_sym_switch] = ACTIONS(1100), + [anon_sym_case] = ACTIONS(1100), + [anon_sym_default] = ACTIONS(1100), + [anon_sym_while] = ACTIONS(1100), + [anon_sym_do] = ACTIONS(1100), + [anon_sym_for] = ACTIONS(1100), + [anon_sym_return] = ACTIONS(1100), + [anon_sym_break] = ACTIONS(1100), + [anon_sym_continue] = ACTIONS(1100), + [anon_sym_goto] = ACTIONS(1100), + [anon_sym_DASH_DASH] = ACTIONS(1102), + [anon_sym_PLUS_PLUS] = ACTIONS(1102), + [anon_sym_sizeof] = ACTIONS(1100), + [sym_number_literal] = ACTIONS(1102), + [anon_sym_L_SQUOTE] = ACTIONS(1102), + [anon_sym_u_SQUOTE] = ACTIONS(1102), + [anon_sym_U_SQUOTE] = ACTIONS(1102), + [anon_sym_u8_SQUOTE] = ACTIONS(1102), + [anon_sym_SQUOTE] = ACTIONS(1102), + [anon_sym_L_DQUOTE] = ACTIONS(1102), + [anon_sym_u_DQUOTE] = ACTIONS(1102), + [anon_sym_U_DQUOTE] = ACTIONS(1102), + [anon_sym_u8_DQUOTE] = ACTIONS(1102), + [anon_sym_DQUOTE] = ACTIONS(1102), + [sym_true] = ACTIONS(1100), + [sym_false] = ACTIONS(1100), + [sym_null] = ACTIONS(1100), + [sym_comment] = ACTIONS(3), + }, + [345] = { + [sym_identifier] = ACTIONS(1048), + [aux_sym_preproc_include_token1] = ACTIONS(1048), + [aux_sym_preproc_def_token1] = ACTIONS(1048), + [aux_sym_preproc_if_token1] = ACTIONS(1048), + [aux_sym_preproc_if_token2] = ACTIONS(1048), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1048), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1048), + [sym_preproc_directive] = ACTIONS(1048), + [anon_sym_LPAREN2] = ACTIONS(1050), + [anon_sym_BANG] = ACTIONS(1050), + [anon_sym_TILDE] = ACTIONS(1050), + [anon_sym_DASH] = ACTIONS(1048), + [anon_sym_PLUS] = ACTIONS(1048), + [anon_sym_STAR] = ACTIONS(1050), + [anon_sym_AMP] = ACTIONS(1050), + [anon_sym_SEMI] = ACTIONS(1050), + [anon_sym_typedef] = ACTIONS(1048), + [anon_sym_extern] = ACTIONS(1048), + [anon_sym___attribute__] = ACTIONS(1048), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1050), + [anon_sym___declspec] = ACTIONS(1048), + [anon_sym___cdecl] = ACTIONS(1048), + [anon_sym___clrcall] = ACTIONS(1048), + [anon_sym___stdcall] = ACTIONS(1048), + [anon_sym___fastcall] = ACTIONS(1048), + [anon_sym___thiscall] = ACTIONS(1048), + [anon_sym___vectorcall] = ACTIONS(1048), + [anon_sym_LBRACE] = ACTIONS(1050), + [anon_sym_static] = ACTIONS(1048), + [anon_sym_auto] = ACTIONS(1048), + [anon_sym_register] = ACTIONS(1048), + [anon_sym_inline] = ACTIONS(1048), + [anon_sym_const] = ACTIONS(1048), + [anon_sym_volatile] = ACTIONS(1048), + [anon_sym_restrict] = ACTIONS(1048), + [anon_sym__Atomic] = ACTIONS(1048), + [anon_sym_signed] = ACTIONS(1048), + [anon_sym_unsigned] = ACTIONS(1048), + [anon_sym_long] = ACTIONS(1048), + [anon_sym_short] = ACTIONS(1048), + [sym_primitive_type] = ACTIONS(1048), + [anon_sym_enum] = ACTIONS(1048), + [anon_sym_struct] = ACTIONS(1048), + [anon_sym_union] = ACTIONS(1048), + [anon_sym_if] = ACTIONS(1048), + [anon_sym_switch] = ACTIONS(1048), + [anon_sym_case] = ACTIONS(1048), + [anon_sym_default] = ACTIONS(1048), + [anon_sym_while] = ACTIONS(1048), + [anon_sym_do] = ACTIONS(1048), + [anon_sym_for] = ACTIONS(1048), + [anon_sym_return] = ACTIONS(1048), + [anon_sym_break] = ACTIONS(1048), + [anon_sym_continue] = ACTIONS(1048), + [anon_sym_goto] = ACTIONS(1048), + [anon_sym_DASH_DASH] = ACTIONS(1050), + [anon_sym_PLUS_PLUS] = ACTIONS(1050), + [anon_sym_sizeof] = ACTIONS(1048), + [sym_number_literal] = ACTIONS(1050), + [anon_sym_L_SQUOTE] = ACTIONS(1050), + [anon_sym_u_SQUOTE] = ACTIONS(1050), + [anon_sym_U_SQUOTE] = ACTIONS(1050), + [anon_sym_u8_SQUOTE] = ACTIONS(1050), + [anon_sym_SQUOTE] = ACTIONS(1050), + [anon_sym_L_DQUOTE] = ACTIONS(1050), + [anon_sym_u_DQUOTE] = ACTIONS(1050), + [anon_sym_U_DQUOTE] = ACTIONS(1050), + [anon_sym_u8_DQUOTE] = ACTIONS(1050), + [anon_sym_DQUOTE] = ACTIONS(1050), + [sym_true] = ACTIONS(1048), + [sym_false] = ACTIONS(1048), + [sym_null] = ACTIONS(1048), + [sym_comment] = ACTIONS(3), + }, + [346] = { + [ts_builtin_sym_end] = ACTIONS(1094), + [sym_identifier] = ACTIONS(1092), + [aux_sym_preproc_include_token1] = ACTIONS(1092), + [aux_sym_preproc_def_token1] = ACTIONS(1092), + [aux_sym_preproc_if_token1] = ACTIONS(1092), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1092), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1092), + [sym_preproc_directive] = ACTIONS(1092), + [anon_sym_LPAREN2] = ACTIONS(1094), + [anon_sym_BANG] = ACTIONS(1094), + [anon_sym_TILDE] = ACTIONS(1094), + [anon_sym_DASH] = ACTIONS(1092), + [anon_sym_PLUS] = ACTIONS(1092), + [anon_sym_STAR] = ACTIONS(1094), + [anon_sym_AMP] = ACTIONS(1094), + [anon_sym_SEMI] = ACTIONS(1094), + [anon_sym_typedef] = ACTIONS(1092), + [anon_sym_extern] = ACTIONS(1092), + [anon_sym___attribute__] = ACTIONS(1092), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1094), + [anon_sym___declspec] = ACTIONS(1092), + [anon_sym___cdecl] = ACTIONS(1092), + [anon_sym___clrcall] = ACTIONS(1092), + [anon_sym___stdcall] = ACTIONS(1092), + [anon_sym___fastcall] = ACTIONS(1092), + [anon_sym___thiscall] = ACTIONS(1092), + [anon_sym___vectorcall] = ACTIONS(1092), + [anon_sym_LBRACE] = ACTIONS(1094), + [anon_sym_static] = ACTIONS(1092), + [anon_sym_auto] = ACTIONS(1092), + [anon_sym_register] = ACTIONS(1092), + [anon_sym_inline] = ACTIONS(1092), + [anon_sym_const] = ACTIONS(1092), + [anon_sym_volatile] = ACTIONS(1092), + [anon_sym_restrict] = ACTIONS(1092), + [anon_sym__Atomic] = ACTIONS(1092), + [anon_sym_signed] = ACTIONS(1092), + [anon_sym_unsigned] = ACTIONS(1092), + [anon_sym_long] = ACTIONS(1092), + [anon_sym_short] = ACTIONS(1092), + [sym_primitive_type] = ACTIONS(1092), + [anon_sym_enum] = ACTIONS(1092), + [anon_sym_struct] = ACTIONS(1092), + [anon_sym_union] = ACTIONS(1092), + [anon_sym_if] = ACTIONS(1092), + [anon_sym_switch] = ACTIONS(1092), + [anon_sym_case] = ACTIONS(1092), + [anon_sym_default] = ACTIONS(1092), + [anon_sym_while] = ACTIONS(1092), + [anon_sym_do] = ACTIONS(1092), + [anon_sym_for] = ACTIONS(1092), + [anon_sym_return] = ACTIONS(1092), + [anon_sym_break] = ACTIONS(1092), + [anon_sym_continue] = ACTIONS(1092), + [anon_sym_goto] = ACTIONS(1092), + [anon_sym_DASH_DASH] = ACTIONS(1094), + [anon_sym_PLUS_PLUS] = ACTIONS(1094), + [anon_sym_sizeof] = ACTIONS(1092), + [sym_number_literal] = ACTIONS(1094), + [anon_sym_L_SQUOTE] = ACTIONS(1094), + [anon_sym_u_SQUOTE] = ACTIONS(1094), + [anon_sym_U_SQUOTE] = ACTIONS(1094), + [anon_sym_u8_SQUOTE] = ACTIONS(1094), + [anon_sym_SQUOTE] = ACTIONS(1094), + [anon_sym_L_DQUOTE] = ACTIONS(1094), + [anon_sym_u_DQUOTE] = ACTIONS(1094), + [anon_sym_U_DQUOTE] = ACTIONS(1094), + [anon_sym_u8_DQUOTE] = ACTIONS(1094), + [anon_sym_DQUOTE] = ACTIONS(1094), + [sym_true] = ACTIONS(1092), + [sym_false] = ACTIONS(1092), + [sym_null] = ACTIONS(1092), + [sym_comment] = ACTIONS(3), + }, + [347] = { + [sym_identifier] = ACTIONS(1076), + [aux_sym_preproc_include_token1] = ACTIONS(1076), + [aux_sym_preproc_def_token1] = ACTIONS(1076), + [aux_sym_preproc_if_token1] = ACTIONS(1076), + [aux_sym_preproc_if_token2] = ACTIONS(1076), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1076), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1076), + [sym_preproc_directive] = ACTIONS(1076), + [anon_sym_LPAREN2] = ACTIONS(1078), + [anon_sym_BANG] = ACTIONS(1078), + [anon_sym_TILDE] = ACTIONS(1078), + [anon_sym_DASH] = ACTIONS(1076), + [anon_sym_PLUS] = ACTIONS(1076), + [anon_sym_STAR] = ACTIONS(1078), + [anon_sym_AMP] = ACTIONS(1078), + [anon_sym_SEMI] = ACTIONS(1078), + [anon_sym_typedef] = ACTIONS(1076), + [anon_sym_extern] = ACTIONS(1076), + [anon_sym___attribute__] = ACTIONS(1076), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1078), + [anon_sym___declspec] = ACTIONS(1076), + [anon_sym___cdecl] = ACTIONS(1076), + [anon_sym___clrcall] = ACTIONS(1076), + [anon_sym___stdcall] = ACTIONS(1076), + [anon_sym___fastcall] = ACTIONS(1076), + [anon_sym___thiscall] = ACTIONS(1076), + [anon_sym___vectorcall] = ACTIONS(1076), + [anon_sym_LBRACE] = ACTIONS(1078), + [anon_sym_static] = ACTIONS(1076), + [anon_sym_auto] = ACTIONS(1076), + [anon_sym_register] = ACTIONS(1076), + [anon_sym_inline] = ACTIONS(1076), + [anon_sym_const] = ACTIONS(1076), + [anon_sym_volatile] = ACTIONS(1076), + [anon_sym_restrict] = ACTIONS(1076), + [anon_sym__Atomic] = ACTIONS(1076), + [anon_sym_signed] = ACTIONS(1076), + [anon_sym_unsigned] = ACTIONS(1076), + [anon_sym_long] = ACTIONS(1076), + [anon_sym_short] = ACTIONS(1076), + [sym_primitive_type] = ACTIONS(1076), + [anon_sym_enum] = ACTIONS(1076), + [anon_sym_struct] = ACTIONS(1076), + [anon_sym_union] = ACTIONS(1076), + [anon_sym_if] = ACTIONS(1076), + [anon_sym_switch] = ACTIONS(1076), + [anon_sym_case] = ACTIONS(1076), + [anon_sym_default] = ACTIONS(1076), + [anon_sym_while] = ACTIONS(1076), + [anon_sym_do] = ACTIONS(1076), + [anon_sym_for] = ACTIONS(1076), + [anon_sym_return] = ACTIONS(1076), + [anon_sym_break] = ACTIONS(1076), + [anon_sym_continue] = ACTIONS(1076), + [anon_sym_goto] = ACTIONS(1076), + [anon_sym_DASH_DASH] = ACTIONS(1078), + [anon_sym_PLUS_PLUS] = ACTIONS(1078), + [anon_sym_sizeof] = ACTIONS(1076), + [sym_number_literal] = ACTIONS(1078), + [anon_sym_L_SQUOTE] = ACTIONS(1078), + [anon_sym_u_SQUOTE] = ACTIONS(1078), + [anon_sym_U_SQUOTE] = ACTIONS(1078), + [anon_sym_u8_SQUOTE] = ACTIONS(1078), + [anon_sym_SQUOTE] = ACTIONS(1078), + [anon_sym_L_DQUOTE] = ACTIONS(1078), + [anon_sym_u_DQUOTE] = ACTIONS(1078), + [anon_sym_U_DQUOTE] = ACTIONS(1078), + [anon_sym_u8_DQUOTE] = ACTIONS(1078), + [anon_sym_DQUOTE] = ACTIONS(1078), + [sym_true] = ACTIONS(1076), + [sym_false] = ACTIONS(1076), + [sym_null] = ACTIONS(1076), + [sym_comment] = ACTIONS(3), + }, + [348] = { + [sym_identifier] = ACTIONS(1032), + [aux_sym_preproc_include_token1] = ACTIONS(1032), + [aux_sym_preproc_def_token1] = ACTIONS(1032), + [aux_sym_preproc_if_token1] = ACTIONS(1032), + [aux_sym_preproc_if_token2] = ACTIONS(1032), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1032), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1032), + [sym_preproc_directive] = ACTIONS(1032), + [anon_sym_LPAREN2] = ACTIONS(1034), + [anon_sym_BANG] = ACTIONS(1034), + [anon_sym_TILDE] = ACTIONS(1034), + [anon_sym_DASH] = ACTIONS(1032), + [anon_sym_PLUS] = ACTIONS(1032), + [anon_sym_STAR] = ACTIONS(1034), + [anon_sym_AMP] = ACTIONS(1034), + [anon_sym_SEMI] = ACTIONS(1034), + [anon_sym_typedef] = ACTIONS(1032), + [anon_sym_extern] = ACTIONS(1032), + [anon_sym___attribute__] = ACTIONS(1032), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1034), + [anon_sym___declspec] = ACTIONS(1032), + [anon_sym___cdecl] = ACTIONS(1032), + [anon_sym___clrcall] = ACTIONS(1032), + [anon_sym___stdcall] = ACTIONS(1032), + [anon_sym___fastcall] = ACTIONS(1032), + [anon_sym___thiscall] = ACTIONS(1032), + [anon_sym___vectorcall] = ACTIONS(1032), + [anon_sym_LBRACE] = ACTIONS(1034), + [anon_sym_static] = ACTIONS(1032), + [anon_sym_auto] = ACTIONS(1032), + [anon_sym_register] = ACTIONS(1032), + [anon_sym_inline] = ACTIONS(1032), + [anon_sym_const] = ACTIONS(1032), + [anon_sym_volatile] = ACTIONS(1032), + [anon_sym_restrict] = ACTIONS(1032), + [anon_sym__Atomic] = ACTIONS(1032), + [anon_sym_signed] = ACTIONS(1032), + [anon_sym_unsigned] = ACTIONS(1032), + [anon_sym_long] = ACTIONS(1032), + [anon_sym_short] = ACTIONS(1032), + [sym_primitive_type] = ACTIONS(1032), + [anon_sym_enum] = ACTIONS(1032), + [anon_sym_struct] = ACTIONS(1032), + [anon_sym_union] = ACTIONS(1032), + [anon_sym_if] = ACTIONS(1032), + [anon_sym_switch] = ACTIONS(1032), + [anon_sym_case] = ACTIONS(1032), + [anon_sym_default] = ACTIONS(1032), + [anon_sym_while] = ACTIONS(1032), + [anon_sym_do] = ACTIONS(1032), + [anon_sym_for] = ACTIONS(1032), + [anon_sym_return] = ACTIONS(1032), + [anon_sym_break] = ACTIONS(1032), + [anon_sym_continue] = ACTIONS(1032), + [anon_sym_goto] = ACTIONS(1032), + [anon_sym_DASH_DASH] = ACTIONS(1034), + [anon_sym_PLUS_PLUS] = ACTIONS(1034), + [anon_sym_sizeof] = ACTIONS(1032), + [sym_number_literal] = ACTIONS(1034), + [anon_sym_L_SQUOTE] = ACTIONS(1034), + [anon_sym_u_SQUOTE] = ACTIONS(1034), + [anon_sym_U_SQUOTE] = ACTIONS(1034), + [anon_sym_u8_SQUOTE] = ACTIONS(1034), + [anon_sym_SQUOTE] = ACTIONS(1034), + [anon_sym_L_DQUOTE] = ACTIONS(1034), + [anon_sym_u_DQUOTE] = ACTIONS(1034), + [anon_sym_U_DQUOTE] = ACTIONS(1034), + [anon_sym_u8_DQUOTE] = ACTIONS(1034), + [anon_sym_DQUOTE] = ACTIONS(1034), + [sym_true] = ACTIONS(1032), + [sym_false] = ACTIONS(1032), + [sym_null] = ACTIONS(1032), + [sym_comment] = ACTIONS(3), + }, + [349] = { + [ts_builtin_sym_end] = ACTIONS(1066), + [sym_identifier] = ACTIONS(1064), + [aux_sym_preproc_include_token1] = ACTIONS(1064), + [aux_sym_preproc_def_token1] = ACTIONS(1064), + [aux_sym_preproc_if_token1] = ACTIONS(1064), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1064), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1064), + [sym_preproc_directive] = ACTIONS(1064), + [anon_sym_LPAREN2] = ACTIONS(1066), + [anon_sym_BANG] = ACTIONS(1066), + [anon_sym_TILDE] = ACTIONS(1066), + [anon_sym_DASH] = ACTIONS(1064), + [anon_sym_PLUS] = ACTIONS(1064), + [anon_sym_STAR] = ACTIONS(1066), + [anon_sym_AMP] = ACTIONS(1066), + [anon_sym_SEMI] = ACTIONS(1066), + [anon_sym_typedef] = ACTIONS(1064), + [anon_sym_extern] = ACTIONS(1064), + [anon_sym___attribute__] = ACTIONS(1064), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1066), + [anon_sym___declspec] = ACTIONS(1064), + [anon_sym___cdecl] = ACTIONS(1064), + [anon_sym___clrcall] = ACTIONS(1064), + [anon_sym___stdcall] = ACTIONS(1064), + [anon_sym___fastcall] = ACTIONS(1064), + [anon_sym___thiscall] = ACTIONS(1064), + [anon_sym___vectorcall] = ACTIONS(1064), + [anon_sym_LBRACE] = ACTIONS(1066), + [anon_sym_static] = ACTIONS(1064), + [anon_sym_auto] = ACTIONS(1064), + [anon_sym_register] = ACTIONS(1064), + [anon_sym_inline] = ACTIONS(1064), + [anon_sym_const] = ACTIONS(1064), + [anon_sym_volatile] = ACTIONS(1064), + [anon_sym_restrict] = ACTIONS(1064), + [anon_sym__Atomic] = ACTIONS(1064), + [anon_sym_signed] = ACTIONS(1064), + [anon_sym_unsigned] = ACTIONS(1064), + [anon_sym_long] = ACTIONS(1064), + [anon_sym_short] = ACTIONS(1064), + [sym_primitive_type] = ACTIONS(1064), + [anon_sym_enum] = ACTIONS(1064), + [anon_sym_struct] = ACTIONS(1064), + [anon_sym_union] = ACTIONS(1064), + [anon_sym_if] = ACTIONS(1064), + [anon_sym_switch] = ACTIONS(1064), + [anon_sym_case] = ACTIONS(1064), + [anon_sym_default] = ACTIONS(1064), + [anon_sym_while] = ACTIONS(1064), + [anon_sym_do] = ACTIONS(1064), + [anon_sym_for] = ACTIONS(1064), + [anon_sym_return] = ACTIONS(1064), + [anon_sym_break] = ACTIONS(1064), + [anon_sym_continue] = ACTIONS(1064), + [anon_sym_goto] = ACTIONS(1064), + [anon_sym_DASH_DASH] = ACTIONS(1066), + [anon_sym_PLUS_PLUS] = ACTIONS(1066), + [anon_sym_sizeof] = ACTIONS(1064), + [sym_number_literal] = ACTIONS(1066), + [anon_sym_L_SQUOTE] = ACTIONS(1066), + [anon_sym_u_SQUOTE] = ACTIONS(1066), + [anon_sym_U_SQUOTE] = ACTIONS(1066), + [anon_sym_u8_SQUOTE] = ACTIONS(1066), + [anon_sym_SQUOTE] = ACTIONS(1066), + [anon_sym_L_DQUOTE] = ACTIONS(1066), + [anon_sym_u_DQUOTE] = ACTIONS(1066), + [anon_sym_U_DQUOTE] = ACTIONS(1066), + [anon_sym_u8_DQUOTE] = ACTIONS(1066), + [anon_sym_DQUOTE] = ACTIONS(1066), + [sym_true] = ACTIONS(1064), + [sym_false] = ACTIONS(1064), + [sym_null] = ACTIONS(1064), + [sym_comment] = ACTIONS(3), + }, + [350] = { + [ts_builtin_sym_end] = ACTIONS(1062), + [sym_identifier] = ACTIONS(1060), + [aux_sym_preproc_include_token1] = ACTIONS(1060), + [aux_sym_preproc_def_token1] = ACTIONS(1060), + [aux_sym_preproc_if_token1] = ACTIONS(1060), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1060), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1060), + [sym_preproc_directive] = ACTIONS(1060), + [anon_sym_LPAREN2] = ACTIONS(1062), + [anon_sym_BANG] = ACTIONS(1062), + [anon_sym_TILDE] = ACTIONS(1062), + [anon_sym_DASH] = ACTIONS(1060), + [anon_sym_PLUS] = ACTIONS(1060), + [anon_sym_STAR] = ACTIONS(1062), + [anon_sym_AMP] = ACTIONS(1062), + [anon_sym_SEMI] = ACTIONS(1062), + [anon_sym_typedef] = ACTIONS(1060), + [anon_sym_extern] = ACTIONS(1060), + [anon_sym___attribute__] = ACTIONS(1060), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1062), + [anon_sym___declspec] = ACTIONS(1060), + [anon_sym___cdecl] = ACTIONS(1060), + [anon_sym___clrcall] = ACTIONS(1060), + [anon_sym___stdcall] = ACTIONS(1060), + [anon_sym___fastcall] = ACTIONS(1060), + [anon_sym___thiscall] = ACTIONS(1060), + [anon_sym___vectorcall] = ACTIONS(1060), + [anon_sym_LBRACE] = ACTIONS(1062), + [anon_sym_static] = ACTIONS(1060), + [anon_sym_auto] = ACTIONS(1060), + [anon_sym_register] = ACTIONS(1060), + [anon_sym_inline] = ACTIONS(1060), + [anon_sym_const] = ACTIONS(1060), + [anon_sym_volatile] = ACTIONS(1060), + [anon_sym_restrict] = ACTIONS(1060), + [anon_sym__Atomic] = ACTIONS(1060), + [anon_sym_signed] = ACTIONS(1060), + [anon_sym_unsigned] = ACTIONS(1060), + [anon_sym_long] = ACTIONS(1060), + [anon_sym_short] = ACTIONS(1060), + [sym_primitive_type] = ACTIONS(1060), + [anon_sym_enum] = ACTIONS(1060), + [anon_sym_struct] = ACTIONS(1060), + [anon_sym_union] = ACTIONS(1060), + [anon_sym_if] = ACTIONS(1060), + [anon_sym_switch] = ACTIONS(1060), + [anon_sym_case] = ACTIONS(1060), + [anon_sym_default] = ACTIONS(1060), + [anon_sym_while] = ACTIONS(1060), + [anon_sym_do] = ACTIONS(1060), + [anon_sym_for] = ACTIONS(1060), + [anon_sym_return] = ACTIONS(1060), + [anon_sym_break] = ACTIONS(1060), + [anon_sym_continue] = ACTIONS(1060), + [anon_sym_goto] = ACTIONS(1060), + [anon_sym_DASH_DASH] = ACTIONS(1062), + [anon_sym_PLUS_PLUS] = ACTIONS(1062), + [anon_sym_sizeof] = ACTIONS(1060), + [sym_number_literal] = ACTIONS(1062), + [anon_sym_L_SQUOTE] = ACTIONS(1062), + [anon_sym_u_SQUOTE] = ACTIONS(1062), + [anon_sym_U_SQUOTE] = ACTIONS(1062), + [anon_sym_u8_SQUOTE] = ACTIONS(1062), + [anon_sym_SQUOTE] = ACTIONS(1062), + [anon_sym_L_DQUOTE] = ACTIONS(1062), + [anon_sym_u_DQUOTE] = ACTIONS(1062), + [anon_sym_U_DQUOTE] = ACTIONS(1062), + [anon_sym_u8_DQUOTE] = ACTIONS(1062), + [anon_sym_DQUOTE] = ACTIONS(1062), + [sym_true] = ACTIONS(1060), + [sym_false] = ACTIONS(1060), + [sym_null] = ACTIONS(1060), + [sym_comment] = ACTIONS(3), + }, + [351] = { + [sym_identifier] = ACTIONS(1120), + [aux_sym_preproc_include_token1] = ACTIONS(1120), + [aux_sym_preproc_def_token1] = ACTIONS(1120), + [aux_sym_preproc_if_token1] = ACTIONS(1120), + [aux_sym_preproc_if_token2] = ACTIONS(1120), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1120), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1120), + [sym_preproc_directive] = ACTIONS(1120), + [anon_sym_LPAREN2] = ACTIONS(1122), + [anon_sym_BANG] = ACTIONS(1122), + [anon_sym_TILDE] = ACTIONS(1122), + [anon_sym_DASH] = ACTIONS(1120), + [anon_sym_PLUS] = ACTIONS(1120), + [anon_sym_STAR] = ACTIONS(1122), + [anon_sym_AMP] = ACTIONS(1122), + [anon_sym_SEMI] = ACTIONS(1122), + [anon_sym_typedef] = ACTIONS(1120), + [anon_sym_extern] = ACTIONS(1120), + [anon_sym___attribute__] = ACTIONS(1120), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1122), + [anon_sym___declspec] = ACTIONS(1120), + [anon_sym___cdecl] = ACTIONS(1120), + [anon_sym___clrcall] = ACTIONS(1120), + [anon_sym___stdcall] = ACTIONS(1120), + [anon_sym___fastcall] = ACTIONS(1120), + [anon_sym___thiscall] = ACTIONS(1120), + [anon_sym___vectorcall] = ACTIONS(1120), + [anon_sym_LBRACE] = ACTIONS(1122), + [anon_sym_static] = ACTIONS(1120), + [anon_sym_auto] = ACTIONS(1120), + [anon_sym_register] = ACTIONS(1120), + [anon_sym_inline] = ACTIONS(1120), + [anon_sym_const] = ACTIONS(1120), + [anon_sym_volatile] = ACTIONS(1120), + [anon_sym_restrict] = ACTIONS(1120), + [anon_sym__Atomic] = ACTIONS(1120), + [anon_sym_signed] = ACTIONS(1120), + [anon_sym_unsigned] = ACTIONS(1120), + [anon_sym_long] = ACTIONS(1120), + [anon_sym_short] = ACTIONS(1120), + [sym_primitive_type] = ACTIONS(1120), + [anon_sym_enum] = ACTIONS(1120), + [anon_sym_struct] = ACTIONS(1120), + [anon_sym_union] = ACTIONS(1120), + [anon_sym_if] = ACTIONS(1120), + [anon_sym_switch] = ACTIONS(1120), + [anon_sym_case] = ACTIONS(1120), + [anon_sym_default] = ACTIONS(1120), + [anon_sym_while] = ACTIONS(1120), + [anon_sym_do] = ACTIONS(1120), + [anon_sym_for] = ACTIONS(1120), + [anon_sym_return] = ACTIONS(1120), + [anon_sym_break] = ACTIONS(1120), + [anon_sym_continue] = ACTIONS(1120), + [anon_sym_goto] = ACTIONS(1120), + [anon_sym_DASH_DASH] = ACTIONS(1122), + [anon_sym_PLUS_PLUS] = ACTIONS(1122), + [anon_sym_sizeof] = ACTIONS(1120), + [sym_number_literal] = ACTIONS(1122), + [anon_sym_L_SQUOTE] = ACTIONS(1122), + [anon_sym_u_SQUOTE] = ACTIONS(1122), + [anon_sym_U_SQUOTE] = ACTIONS(1122), + [anon_sym_u8_SQUOTE] = ACTIONS(1122), + [anon_sym_SQUOTE] = ACTIONS(1122), + [anon_sym_L_DQUOTE] = ACTIONS(1122), + [anon_sym_u_DQUOTE] = ACTIONS(1122), + [anon_sym_U_DQUOTE] = ACTIONS(1122), + [anon_sym_u8_DQUOTE] = ACTIONS(1122), + [anon_sym_DQUOTE] = ACTIONS(1122), + [sym_true] = ACTIONS(1120), + [sym_false] = ACTIONS(1120), + [sym_null] = ACTIONS(1120), + [sym_comment] = ACTIONS(3), + }, + [352] = { + [sym_identifier] = ACTIONS(1048), + [aux_sym_preproc_include_token1] = ACTIONS(1048), + [aux_sym_preproc_def_token1] = ACTIONS(1048), + [aux_sym_preproc_if_token1] = ACTIONS(1048), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1048), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1048), + [sym_preproc_directive] = ACTIONS(1048), + [anon_sym_LPAREN2] = ACTIONS(1050), + [anon_sym_BANG] = ACTIONS(1050), + [anon_sym_TILDE] = ACTIONS(1050), + [anon_sym_DASH] = ACTIONS(1048), + [anon_sym_PLUS] = ACTIONS(1048), + [anon_sym_STAR] = ACTIONS(1050), + [anon_sym_AMP] = ACTIONS(1050), + [anon_sym_SEMI] = ACTIONS(1050), + [anon_sym_typedef] = ACTIONS(1048), + [anon_sym_extern] = ACTIONS(1048), + [anon_sym___attribute__] = ACTIONS(1048), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1050), + [anon_sym___declspec] = ACTIONS(1048), + [anon_sym___cdecl] = ACTIONS(1048), + [anon_sym___clrcall] = ACTIONS(1048), + [anon_sym___stdcall] = ACTIONS(1048), + [anon_sym___fastcall] = ACTIONS(1048), + [anon_sym___thiscall] = ACTIONS(1048), + [anon_sym___vectorcall] = ACTIONS(1048), + [anon_sym_LBRACE] = ACTIONS(1050), + [anon_sym_RBRACE] = ACTIONS(1050), + [anon_sym_static] = ACTIONS(1048), + [anon_sym_auto] = ACTIONS(1048), + [anon_sym_register] = ACTIONS(1048), + [anon_sym_inline] = ACTIONS(1048), + [anon_sym_const] = ACTIONS(1048), + [anon_sym_volatile] = ACTIONS(1048), + [anon_sym_restrict] = ACTIONS(1048), + [anon_sym__Atomic] = ACTIONS(1048), + [anon_sym_signed] = ACTIONS(1048), + [anon_sym_unsigned] = ACTIONS(1048), + [anon_sym_long] = ACTIONS(1048), + [anon_sym_short] = ACTIONS(1048), + [sym_primitive_type] = ACTIONS(1048), + [anon_sym_enum] = ACTIONS(1048), + [anon_sym_struct] = ACTIONS(1048), + [anon_sym_union] = ACTIONS(1048), + [anon_sym_if] = ACTIONS(1048), + [anon_sym_switch] = ACTIONS(1048), + [anon_sym_case] = ACTIONS(1048), + [anon_sym_default] = ACTIONS(1048), + [anon_sym_while] = ACTIONS(1048), + [anon_sym_do] = ACTIONS(1048), + [anon_sym_for] = ACTIONS(1048), + [anon_sym_return] = ACTIONS(1048), + [anon_sym_break] = ACTIONS(1048), + [anon_sym_continue] = ACTIONS(1048), + [anon_sym_goto] = ACTIONS(1048), + [anon_sym_DASH_DASH] = ACTIONS(1050), + [anon_sym_PLUS_PLUS] = ACTIONS(1050), + [anon_sym_sizeof] = ACTIONS(1048), + [sym_number_literal] = ACTIONS(1050), + [anon_sym_L_SQUOTE] = ACTIONS(1050), + [anon_sym_u_SQUOTE] = ACTIONS(1050), + [anon_sym_U_SQUOTE] = ACTIONS(1050), + [anon_sym_u8_SQUOTE] = ACTIONS(1050), + [anon_sym_SQUOTE] = ACTIONS(1050), + [anon_sym_L_DQUOTE] = ACTIONS(1050), + [anon_sym_u_DQUOTE] = ACTIONS(1050), + [anon_sym_U_DQUOTE] = ACTIONS(1050), + [anon_sym_u8_DQUOTE] = ACTIONS(1050), + [anon_sym_DQUOTE] = ACTIONS(1050), + [sym_true] = ACTIONS(1048), + [sym_false] = ACTIONS(1048), + [sym_null] = ACTIONS(1048), + [sym_comment] = ACTIONS(3), + }, + [353] = { + [sym_identifier] = ACTIONS(1116), + [aux_sym_preproc_include_token1] = ACTIONS(1116), + [aux_sym_preproc_def_token1] = ACTIONS(1116), + [aux_sym_preproc_if_token1] = ACTIONS(1116), + [aux_sym_preproc_if_token2] = ACTIONS(1116), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1116), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1116), + [sym_preproc_directive] = ACTIONS(1116), + [anon_sym_LPAREN2] = ACTIONS(1118), + [anon_sym_BANG] = ACTIONS(1118), + [anon_sym_TILDE] = ACTIONS(1118), + [anon_sym_DASH] = ACTIONS(1116), + [anon_sym_PLUS] = ACTIONS(1116), + [anon_sym_STAR] = ACTIONS(1118), + [anon_sym_AMP] = ACTIONS(1118), + [anon_sym_SEMI] = ACTIONS(1118), + [anon_sym_typedef] = ACTIONS(1116), + [anon_sym_extern] = ACTIONS(1116), + [anon_sym___attribute__] = ACTIONS(1116), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1118), + [anon_sym___declspec] = ACTIONS(1116), + [anon_sym___cdecl] = ACTIONS(1116), + [anon_sym___clrcall] = ACTIONS(1116), + [anon_sym___stdcall] = ACTIONS(1116), + [anon_sym___fastcall] = ACTIONS(1116), + [anon_sym___thiscall] = ACTIONS(1116), + [anon_sym___vectorcall] = ACTIONS(1116), + [anon_sym_LBRACE] = ACTIONS(1118), + [anon_sym_static] = ACTIONS(1116), + [anon_sym_auto] = ACTIONS(1116), + [anon_sym_register] = ACTIONS(1116), + [anon_sym_inline] = ACTIONS(1116), + [anon_sym_const] = ACTIONS(1116), + [anon_sym_volatile] = ACTIONS(1116), + [anon_sym_restrict] = ACTIONS(1116), + [anon_sym__Atomic] = ACTIONS(1116), + [anon_sym_signed] = ACTIONS(1116), + [anon_sym_unsigned] = ACTIONS(1116), + [anon_sym_long] = ACTIONS(1116), + [anon_sym_short] = ACTIONS(1116), + [sym_primitive_type] = ACTIONS(1116), + [anon_sym_enum] = ACTIONS(1116), + [anon_sym_struct] = ACTIONS(1116), + [anon_sym_union] = ACTIONS(1116), + [anon_sym_if] = ACTIONS(1116), + [anon_sym_switch] = ACTIONS(1116), + [anon_sym_case] = ACTIONS(1116), + [anon_sym_default] = ACTIONS(1116), + [anon_sym_while] = ACTIONS(1116), + [anon_sym_do] = ACTIONS(1116), + [anon_sym_for] = ACTIONS(1116), + [anon_sym_return] = ACTIONS(1116), + [anon_sym_break] = ACTIONS(1116), + [anon_sym_continue] = ACTIONS(1116), + [anon_sym_goto] = ACTIONS(1116), + [anon_sym_DASH_DASH] = ACTIONS(1118), + [anon_sym_PLUS_PLUS] = ACTIONS(1118), + [anon_sym_sizeof] = ACTIONS(1116), + [sym_number_literal] = ACTIONS(1118), + [anon_sym_L_SQUOTE] = ACTIONS(1118), + [anon_sym_u_SQUOTE] = ACTIONS(1118), + [anon_sym_U_SQUOTE] = ACTIONS(1118), + [anon_sym_u8_SQUOTE] = ACTIONS(1118), + [anon_sym_SQUOTE] = ACTIONS(1118), + [anon_sym_L_DQUOTE] = ACTIONS(1118), + [anon_sym_u_DQUOTE] = ACTIONS(1118), + [anon_sym_U_DQUOTE] = ACTIONS(1118), + [anon_sym_u8_DQUOTE] = ACTIONS(1118), + [anon_sym_DQUOTE] = ACTIONS(1118), + [sym_true] = ACTIONS(1116), + [sym_false] = ACTIONS(1116), + [sym_null] = ACTIONS(1116), + [sym_comment] = ACTIONS(3), + }, + [354] = { + [sym_identifier] = ACTIONS(1084), + [aux_sym_preproc_include_token1] = ACTIONS(1084), + [aux_sym_preproc_def_token1] = ACTIONS(1084), + [aux_sym_preproc_if_token1] = ACTIONS(1084), + [aux_sym_preproc_if_token2] = ACTIONS(1084), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1084), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1084), + [sym_preproc_directive] = ACTIONS(1084), + [anon_sym_LPAREN2] = ACTIONS(1086), + [anon_sym_BANG] = ACTIONS(1086), + [anon_sym_TILDE] = ACTIONS(1086), + [anon_sym_DASH] = ACTIONS(1084), + [anon_sym_PLUS] = ACTIONS(1084), + [anon_sym_STAR] = ACTIONS(1086), + [anon_sym_AMP] = ACTIONS(1086), + [anon_sym_SEMI] = ACTIONS(1086), + [anon_sym_typedef] = ACTIONS(1084), + [anon_sym_extern] = ACTIONS(1084), + [anon_sym___attribute__] = ACTIONS(1084), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1086), + [anon_sym___declspec] = ACTIONS(1084), + [anon_sym___cdecl] = ACTIONS(1084), + [anon_sym___clrcall] = ACTIONS(1084), + [anon_sym___stdcall] = ACTIONS(1084), + [anon_sym___fastcall] = ACTIONS(1084), + [anon_sym___thiscall] = ACTIONS(1084), + [anon_sym___vectorcall] = ACTIONS(1084), + [anon_sym_LBRACE] = ACTIONS(1086), + [anon_sym_static] = ACTIONS(1084), + [anon_sym_auto] = ACTIONS(1084), + [anon_sym_register] = ACTIONS(1084), + [anon_sym_inline] = ACTIONS(1084), + [anon_sym_const] = ACTIONS(1084), + [anon_sym_volatile] = ACTIONS(1084), + [anon_sym_restrict] = ACTIONS(1084), + [anon_sym__Atomic] = ACTIONS(1084), + [anon_sym_signed] = ACTIONS(1084), + [anon_sym_unsigned] = ACTIONS(1084), + [anon_sym_long] = ACTIONS(1084), + [anon_sym_short] = ACTIONS(1084), + [sym_primitive_type] = ACTIONS(1084), + [anon_sym_enum] = ACTIONS(1084), + [anon_sym_struct] = ACTIONS(1084), + [anon_sym_union] = ACTIONS(1084), + [anon_sym_if] = ACTIONS(1084), + [anon_sym_switch] = ACTIONS(1084), + [anon_sym_case] = ACTIONS(1084), + [anon_sym_default] = ACTIONS(1084), + [anon_sym_while] = ACTIONS(1084), + [anon_sym_do] = ACTIONS(1084), + [anon_sym_for] = ACTIONS(1084), + [anon_sym_return] = ACTIONS(1084), + [anon_sym_break] = ACTIONS(1084), + [anon_sym_continue] = ACTIONS(1084), + [anon_sym_goto] = ACTIONS(1084), + [anon_sym_DASH_DASH] = ACTIONS(1086), + [anon_sym_PLUS_PLUS] = ACTIONS(1086), + [anon_sym_sizeof] = ACTIONS(1084), + [sym_number_literal] = ACTIONS(1086), + [anon_sym_L_SQUOTE] = ACTIONS(1086), + [anon_sym_u_SQUOTE] = ACTIONS(1086), + [anon_sym_U_SQUOTE] = ACTIONS(1086), + [anon_sym_u8_SQUOTE] = ACTIONS(1086), + [anon_sym_SQUOTE] = ACTIONS(1086), + [anon_sym_L_DQUOTE] = ACTIONS(1086), + [anon_sym_u_DQUOTE] = ACTIONS(1086), + [anon_sym_U_DQUOTE] = ACTIONS(1086), + [anon_sym_u8_DQUOTE] = ACTIONS(1086), + [anon_sym_DQUOTE] = ACTIONS(1086), + [sym_true] = ACTIONS(1084), + [sym_false] = ACTIONS(1084), + [sym_null] = ACTIONS(1084), + [sym_comment] = ACTIONS(3), + }, + [355] = { + [ts_builtin_sym_end] = ACTIONS(1106), + [sym_identifier] = ACTIONS(1104), + [aux_sym_preproc_include_token1] = ACTIONS(1104), + [aux_sym_preproc_def_token1] = ACTIONS(1104), + [aux_sym_preproc_if_token1] = ACTIONS(1104), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1104), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1104), + [sym_preproc_directive] = ACTIONS(1104), + [anon_sym_LPAREN2] = ACTIONS(1106), + [anon_sym_BANG] = ACTIONS(1106), + [anon_sym_TILDE] = ACTIONS(1106), + [anon_sym_DASH] = ACTIONS(1104), + [anon_sym_PLUS] = ACTIONS(1104), + [anon_sym_STAR] = ACTIONS(1106), + [anon_sym_AMP] = ACTIONS(1106), + [anon_sym_SEMI] = ACTIONS(1106), + [anon_sym_typedef] = ACTIONS(1104), + [anon_sym_extern] = ACTIONS(1104), + [anon_sym___attribute__] = ACTIONS(1104), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1106), + [anon_sym___declspec] = ACTIONS(1104), + [anon_sym___cdecl] = ACTIONS(1104), + [anon_sym___clrcall] = ACTIONS(1104), + [anon_sym___stdcall] = ACTIONS(1104), + [anon_sym___fastcall] = ACTIONS(1104), + [anon_sym___thiscall] = ACTIONS(1104), + [anon_sym___vectorcall] = ACTIONS(1104), + [anon_sym_LBRACE] = ACTIONS(1106), + [anon_sym_static] = ACTIONS(1104), + [anon_sym_auto] = ACTIONS(1104), + [anon_sym_register] = ACTIONS(1104), + [anon_sym_inline] = ACTIONS(1104), + [anon_sym_const] = ACTIONS(1104), + [anon_sym_volatile] = ACTIONS(1104), + [anon_sym_restrict] = ACTIONS(1104), + [anon_sym__Atomic] = ACTIONS(1104), + [anon_sym_signed] = ACTIONS(1104), + [anon_sym_unsigned] = ACTIONS(1104), + [anon_sym_long] = ACTIONS(1104), + [anon_sym_short] = ACTIONS(1104), + [sym_primitive_type] = ACTIONS(1104), + [anon_sym_enum] = ACTIONS(1104), + [anon_sym_struct] = ACTIONS(1104), + [anon_sym_union] = ACTIONS(1104), + [anon_sym_if] = ACTIONS(1104), + [anon_sym_switch] = ACTIONS(1104), + [anon_sym_case] = ACTIONS(1104), + [anon_sym_default] = ACTIONS(1104), + [anon_sym_while] = ACTIONS(1104), + [anon_sym_do] = ACTIONS(1104), + [anon_sym_for] = ACTIONS(1104), + [anon_sym_return] = ACTIONS(1104), + [anon_sym_break] = ACTIONS(1104), + [anon_sym_continue] = ACTIONS(1104), + [anon_sym_goto] = ACTIONS(1104), + [anon_sym_DASH_DASH] = ACTIONS(1106), + [anon_sym_PLUS_PLUS] = ACTIONS(1106), + [anon_sym_sizeof] = ACTIONS(1104), + [sym_number_literal] = ACTIONS(1106), + [anon_sym_L_SQUOTE] = ACTIONS(1106), + [anon_sym_u_SQUOTE] = ACTIONS(1106), + [anon_sym_U_SQUOTE] = ACTIONS(1106), + [anon_sym_u8_SQUOTE] = ACTIONS(1106), + [anon_sym_SQUOTE] = ACTIONS(1106), + [anon_sym_L_DQUOTE] = ACTIONS(1106), + [anon_sym_u_DQUOTE] = ACTIONS(1106), + [anon_sym_U_DQUOTE] = ACTIONS(1106), + [anon_sym_u8_DQUOTE] = ACTIONS(1106), + [anon_sym_DQUOTE] = ACTIONS(1106), + [sym_true] = ACTIONS(1104), + [sym_false] = ACTIONS(1104), + [sym_null] = ACTIONS(1104), + [sym_comment] = ACTIONS(3), + }, + [356] = { + [sym_identifier] = ACTIONS(1100), + [aux_sym_preproc_include_token1] = ACTIONS(1100), + [aux_sym_preproc_def_token1] = ACTIONS(1100), + [aux_sym_preproc_if_token1] = ACTIONS(1100), + [aux_sym_preproc_if_token2] = ACTIONS(1100), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1100), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1100), + [sym_preproc_directive] = ACTIONS(1100), + [anon_sym_LPAREN2] = ACTIONS(1102), + [anon_sym_BANG] = ACTIONS(1102), + [anon_sym_TILDE] = ACTIONS(1102), + [anon_sym_DASH] = ACTIONS(1100), + [anon_sym_PLUS] = ACTIONS(1100), + [anon_sym_STAR] = ACTIONS(1102), + [anon_sym_AMP] = ACTIONS(1102), + [anon_sym_SEMI] = ACTIONS(1102), + [anon_sym_typedef] = ACTIONS(1100), + [anon_sym_extern] = ACTIONS(1100), + [anon_sym___attribute__] = ACTIONS(1100), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1102), + [anon_sym___declspec] = ACTIONS(1100), + [anon_sym___cdecl] = ACTIONS(1100), + [anon_sym___clrcall] = ACTIONS(1100), + [anon_sym___stdcall] = ACTIONS(1100), + [anon_sym___fastcall] = ACTIONS(1100), + [anon_sym___thiscall] = ACTIONS(1100), + [anon_sym___vectorcall] = ACTIONS(1100), + [anon_sym_LBRACE] = ACTIONS(1102), + [anon_sym_static] = ACTIONS(1100), + [anon_sym_auto] = ACTIONS(1100), + [anon_sym_register] = ACTIONS(1100), + [anon_sym_inline] = ACTIONS(1100), + [anon_sym_const] = ACTIONS(1100), + [anon_sym_volatile] = ACTIONS(1100), + [anon_sym_restrict] = ACTIONS(1100), + [anon_sym__Atomic] = ACTIONS(1100), + [anon_sym_signed] = ACTIONS(1100), + [anon_sym_unsigned] = ACTIONS(1100), + [anon_sym_long] = ACTIONS(1100), + [anon_sym_short] = ACTIONS(1100), + [sym_primitive_type] = ACTIONS(1100), + [anon_sym_enum] = ACTIONS(1100), + [anon_sym_struct] = ACTIONS(1100), + [anon_sym_union] = ACTIONS(1100), + [anon_sym_if] = ACTIONS(1100), + [anon_sym_switch] = ACTIONS(1100), + [anon_sym_case] = ACTIONS(1100), + [anon_sym_default] = ACTIONS(1100), + [anon_sym_while] = ACTIONS(1100), + [anon_sym_do] = ACTIONS(1100), + [anon_sym_for] = ACTIONS(1100), + [anon_sym_return] = ACTIONS(1100), + [anon_sym_break] = ACTIONS(1100), + [anon_sym_continue] = ACTIONS(1100), + [anon_sym_goto] = ACTIONS(1100), + [anon_sym_DASH_DASH] = ACTIONS(1102), + [anon_sym_PLUS_PLUS] = ACTIONS(1102), + [anon_sym_sizeof] = ACTIONS(1100), + [sym_number_literal] = ACTIONS(1102), + [anon_sym_L_SQUOTE] = ACTIONS(1102), + [anon_sym_u_SQUOTE] = ACTIONS(1102), + [anon_sym_U_SQUOTE] = ACTIONS(1102), + [anon_sym_u8_SQUOTE] = ACTIONS(1102), + [anon_sym_SQUOTE] = ACTIONS(1102), + [anon_sym_L_DQUOTE] = ACTIONS(1102), + [anon_sym_u_DQUOTE] = ACTIONS(1102), + [anon_sym_U_DQUOTE] = ACTIONS(1102), + [anon_sym_u8_DQUOTE] = ACTIONS(1102), + [anon_sym_DQUOTE] = ACTIONS(1102), + [sym_true] = ACTIONS(1100), + [sym_false] = ACTIONS(1100), + [sym_null] = ACTIONS(1100), + [sym_comment] = ACTIONS(3), + }, + [357] = { + [sym_identifier] = ACTIONS(1060), + [aux_sym_preproc_include_token1] = ACTIONS(1060), + [aux_sym_preproc_def_token1] = ACTIONS(1060), + [aux_sym_preproc_if_token1] = ACTIONS(1060), + [aux_sym_preproc_if_token2] = ACTIONS(1060), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1060), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1060), + [sym_preproc_directive] = ACTIONS(1060), + [anon_sym_LPAREN2] = ACTIONS(1062), + [anon_sym_BANG] = ACTIONS(1062), + [anon_sym_TILDE] = ACTIONS(1062), + [anon_sym_DASH] = ACTIONS(1060), + [anon_sym_PLUS] = ACTIONS(1060), + [anon_sym_STAR] = ACTIONS(1062), + [anon_sym_AMP] = ACTIONS(1062), + [anon_sym_SEMI] = ACTIONS(1062), + [anon_sym_typedef] = ACTIONS(1060), + [anon_sym_extern] = ACTIONS(1060), + [anon_sym___attribute__] = ACTIONS(1060), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1062), + [anon_sym___declspec] = ACTIONS(1060), + [anon_sym___cdecl] = ACTIONS(1060), + [anon_sym___clrcall] = ACTIONS(1060), + [anon_sym___stdcall] = ACTIONS(1060), + [anon_sym___fastcall] = ACTIONS(1060), + [anon_sym___thiscall] = ACTIONS(1060), + [anon_sym___vectorcall] = ACTIONS(1060), + [anon_sym_LBRACE] = ACTIONS(1062), + [anon_sym_static] = ACTIONS(1060), + [anon_sym_auto] = ACTIONS(1060), + [anon_sym_register] = ACTIONS(1060), + [anon_sym_inline] = ACTIONS(1060), + [anon_sym_const] = ACTIONS(1060), + [anon_sym_volatile] = ACTIONS(1060), + [anon_sym_restrict] = ACTIONS(1060), + [anon_sym__Atomic] = ACTIONS(1060), + [anon_sym_signed] = ACTIONS(1060), + [anon_sym_unsigned] = ACTIONS(1060), + [anon_sym_long] = ACTIONS(1060), + [anon_sym_short] = ACTIONS(1060), + [sym_primitive_type] = ACTIONS(1060), + [anon_sym_enum] = ACTIONS(1060), + [anon_sym_struct] = ACTIONS(1060), + [anon_sym_union] = ACTIONS(1060), + [anon_sym_if] = ACTIONS(1060), + [anon_sym_switch] = ACTIONS(1060), + [anon_sym_case] = ACTIONS(1060), + [anon_sym_default] = ACTIONS(1060), + [anon_sym_while] = ACTIONS(1060), + [anon_sym_do] = ACTIONS(1060), + [anon_sym_for] = ACTIONS(1060), + [anon_sym_return] = ACTIONS(1060), + [anon_sym_break] = ACTIONS(1060), + [anon_sym_continue] = ACTIONS(1060), + [anon_sym_goto] = ACTIONS(1060), + [anon_sym_DASH_DASH] = ACTIONS(1062), + [anon_sym_PLUS_PLUS] = ACTIONS(1062), + [anon_sym_sizeof] = ACTIONS(1060), + [sym_number_literal] = ACTIONS(1062), + [anon_sym_L_SQUOTE] = ACTIONS(1062), + [anon_sym_u_SQUOTE] = ACTIONS(1062), + [anon_sym_U_SQUOTE] = ACTIONS(1062), + [anon_sym_u8_SQUOTE] = ACTIONS(1062), + [anon_sym_SQUOTE] = ACTIONS(1062), + [anon_sym_L_DQUOTE] = ACTIONS(1062), + [anon_sym_u_DQUOTE] = ACTIONS(1062), + [anon_sym_U_DQUOTE] = ACTIONS(1062), + [anon_sym_u8_DQUOTE] = ACTIONS(1062), + [anon_sym_DQUOTE] = ACTIONS(1062), + [sym_true] = ACTIONS(1060), + [sym_false] = ACTIONS(1060), + [sym_null] = ACTIONS(1060), + [sym_comment] = ACTIONS(3), + }, + [358] = { + [sym_identifier] = ACTIONS(1112), + [aux_sym_preproc_include_token1] = ACTIONS(1112), + [aux_sym_preproc_def_token1] = ACTIONS(1112), + [aux_sym_preproc_if_token1] = ACTIONS(1112), + [aux_sym_preproc_if_token2] = ACTIONS(1112), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1112), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1112), + [sym_preproc_directive] = ACTIONS(1112), + [anon_sym_LPAREN2] = ACTIONS(1114), + [anon_sym_BANG] = ACTIONS(1114), + [anon_sym_TILDE] = ACTIONS(1114), + [anon_sym_DASH] = ACTIONS(1112), + [anon_sym_PLUS] = ACTIONS(1112), + [anon_sym_STAR] = ACTIONS(1114), + [anon_sym_AMP] = ACTIONS(1114), + [anon_sym_SEMI] = ACTIONS(1114), + [anon_sym_typedef] = ACTIONS(1112), + [anon_sym_extern] = ACTIONS(1112), + [anon_sym___attribute__] = ACTIONS(1112), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1114), + [anon_sym___declspec] = ACTIONS(1112), + [anon_sym___cdecl] = ACTIONS(1112), + [anon_sym___clrcall] = ACTIONS(1112), + [anon_sym___stdcall] = ACTIONS(1112), + [anon_sym___fastcall] = ACTIONS(1112), + [anon_sym___thiscall] = ACTIONS(1112), + [anon_sym___vectorcall] = ACTIONS(1112), + [anon_sym_LBRACE] = ACTIONS(1114), + [anon_sym_static] = ACTIONS(1112), + [anon_sym_auto] = ACTIONS(1112), + [anon_sym_register] = ACTIONS(1112), + [anon_sym_inline] = ACTIONS(1112), + [anon_sym_const] = ACTIONS(1112), + [anon_sym_volatile] = ACTIONS(1112), + [anon_sym_restrict] = ACTIONS(1112), + [anon_sym__Atomic] = ACTIONS(1112), + [anon_sym_signed] = ACTIONS(1112), + [anon_sym_unsigned] = ACTIONS(1112), + [anon_sym_long] = ACTIONS(1112), + [anon_sym_short] = ACTIONS(1112), + [sym_primitive_type] = ACTIONS(1112), + [anon_sym_enum] = ACTIONS(1112), + [anon_sym_struct] = ACTIONS(1112), + [anon_sym_union] = ACTIONS(1112), + [anon_sym_if] = ACTIONS(1112), + [anon_sym_switch] = ACTIONS(1112), + [anon_sym_case] = ACTIONS(1112), + [anon_sym_default] = ACTIONS(1112), + [anon_sym_while] = ACTIONS(1112), + [anon_sym_do] = ACTIONS(1112), + [anon_sym_for] = ACTIONS(1112), + [anon_sym_return] = ACTIONS(1112), + [anon_sym_break] = ACTIONS(1112), + [anon_sym_continue] = ACTIONS(1112), + [anon_sym_goto] = ACTIONS(1112), + [anon_sym_DASH_DASH] = ACTIONS(1114), + [anon_sym_PLUS_PLUS] = ACTIONS(1114), + [anon_sym_sizeof] = ACTIONS(1112), + [sym_number_literal] = ACTIONS(1114), + [anon_sym_L_SQUOTE] = ACTIONS(1114), + [anon_sym_u_SQUOTE] = ACTIONS(1114), + [anon_sym_U_SQUOTE] = ACTIONS(1114), + [anon_sym_u8_SQUOTE] = ACTIONS(1114), + [anon_sym_SQUOTE] = ACTIONS(1114), + [anon_sym_L_DQUOTE] = ACTIONS(1114), + [anon_sym_u_DQUOTE] = ACTIONS(1114), + [anon_sym_U_DQUOTE] = ACTIONS(1114), + [anon_sym_u8_DQUOTE] = ACTIONS(1114), + [anon_sym_DQUOTE] = ACTIONS(1114), + [sym_true] = ACTIONS(1112), + [sym_false] = ACTIONS(1112), + [sym_null] = ACTIONS(1112), + [sym_comment] = ACTIONS(3), + }, + [359] = { + [sym_identifier] = ACTIONS(1108), + [aux_sym_preproc_include_token1] = ACTIONS(1108), + [aux_sym_preproc_def_token1] = ACTIONS(1108), + [aux_sym_preproc_if_token1] = ACTIONS(1108), + [aux_sym_preproc_if_token2] = ACTIONS(1108), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1108), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1108), + [sym_preproc_directive] = ACTIONS(1108), + [anon_sym_LPAREN2] = ACTIONS(1110), + [anon_sym_BANG] = ACTIONS(1110), + [anon_sym_TILDE] = ACTIONS(1110), + [anon_sym_DASH] = ACTIONS(1108), + [anon_sym_PLUS] = ACTIONS(1108), + [anon_sym_STAR] = ACTIONS(1110), + [anon_sym_AMP] = ACTIONS(1110), + [anon_sym_SEMI] = ACTIONS(1110), + [anon_sym_typedef] = ACTIONS(1108), + [anon_sym_extern] = ACTIONS(1108), + [anon_sym___attribute__] = ACTIONS(1108), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1110), + [anon_sym___declspec] = ACTIONS(1108), + [anon_sym___cdecl] = ACTIONS(1108), + [anon_sym___clrcall] = ACTIONS(1108), + [anon_sym___stdcall] = ACTIONS(1108), + [anon_sym___fastcall] = ACTIONS(1108), + [anon_sym___thiscall] = ACTIONS(1108), + [anon_sym___vectorcall] = ACTIONS(1108), + [anon_sym_LBRACE] = ACTIONS(1110), + [anon_sym_static] = ACTIONS(1108), + [anon_sym_auto] = ACTIONS(1108), + [anon_sym_register] = ACTIONS(1108), + [anon_sym_inline] = ACTIONS(1108), + [anon_sym_const] = ACTIONS(1108), + [anon_sym_volatile] = ACTIONS(1108), + [anon_sym_restrict] = ACTIONS(1108), + [anon_sym__Atomic] = ACTIONS(1108), + [anon_sym_signed] = ACTIONS(1108), + [anon_sym_unsigned] = ACTIONS(1108), + [anon_sym_long] = ACTIONS(1108), + [anon_sym_short] = ACTIONS(1108), + [sym_primitive_type] = ACTIONS(1108), + [anon_sym_enum] = ACTIONS(1108), + [anon_sym_struct] = ACTIONS(1108), + [anon_sym_union] = ACTIONS(1108), + [anon_sym_if] = ACTIONS(1108), + [anon_sym_switch] = ACTIONS(1108), + [anon_sym_case] = ACTIONS(1108), + [anon_sym_default] = ACTIONS(1108), + [anon_sym_while] = ACTIONS(1108), + [anon_sym_do] = ACTIONS(1108), + [anon_sym_for] = ACTIONS(1108), + [anon_sym_return] = ACTIONS(1108), + [anon_sym_break] = ACTIONS(1108), + [anon_sym_continue] = ACTIONS(1108), + [anon_sym_goto] = ACTIONS(1108), + [anon_sym_DASH_DASH] = ACTIONS(1110), + [anon_sym_PLUS_PLUS] = ACTIONS(1110), + [anon_sym_sizeof] = ACTIONS(1108), + [sym_number_literal] = ACTIONS(1110), + [anon_sym_L_SQUOTE] = ACTIONS(1110), + [anon_sym_u_SQUOTE] = ACTIONS(1110), + [anon_sym_U_SQUOTE] = ACTIONS(1110), + [anon_sym_u8_SQUOTE] = ACTIONS(1110), + [anon_sym_SQUOTE] = ACTIONS(1110), + [anon_sym_L_DQUOTE] = ACTIONS(1110), + [anon_sym_u_DQUOTE] = ACTIONS(1110), + [anon_sym_U_DQUOTE] = ACTIONS(1110), + [anon_sym_u8_DQUOTE] = ACTIONS(1110), + [anon_sym_DQUOTE] = ACTIONS(1110), + [sym_true] = ACTIONS(1108), + [sym_false] = ACTIONS(1108), + [sym_null] = ACTIONS(1108), + [sym_comment] = ACTIONS(3), + }, + [360] = { + [sym_identifier] = ACTIONS(1052), + [aux_sym_preproc_include_token1] = ACTIONS(1052), + [aux_sym_preproc_def_token1] = ACTIONS(1052), + [aux_sym_preproc_if_token1] = ACTIONS(1052), + [aux_sym_preproc_if_token2] = ACTIONS(1052), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1052), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1052), + [sym_preproc_directive] = ACTIONS(1052), + [anon_sym_LPAREN2] = ACTIONS(1054), + [anon_sym_BANG] = ACTIONS(1054), + [anon_sym_TILDE] = ACTIONS(1054), + [anon_sym_DASH] = ACTIONS(1052), + [anon_sym_PLUS] = ACTIONS(1052), + [anon_sym_STAR] = ACTIONS(1054), + [anon_sym_AMP] = ACTIONS(1054), + [anon_sym_SEMI] = ACTIONS(1054), + [anon_sym_typedef] = ACTIONS(1052), + [anon_sym_extern] = ACTIONS(1052), + [anon_sym___attribute__] = ACTIONS(1052), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1054), + [anon_sym___declspec] = ACTIONS(1052), + [anon_sym___cdecl] = ACTIONS(1052), + [anon_sym___clrcall] = ACTIONS(1052), + [anon_sym___stdcall] = ACTIONS(1052), + [anon_sym___fastcall] = ACTIONS(1052), + [anon_sym___thiscall] = ACTIONS(1052), + [anon_sym___vectorcall] = ACTIONS(1052), + [anon_sym_LBRACE] = ACTIONS(1054), + [anon_sym_static] = ACTIONS(1052), + [anon_sym_auto] = ACTIONS(1052), + [anon_sym_register] = ACTIONS(1052), + [anon_sym_inline] = ACTIONS(1052), + [anon_sym_const] = ACTIONS(1052), + [anon_sym_volatile] = ACTIONS(1052), + [anon_sym_restrict] = ACTIONS(1052), + [anon_sym__Atomic] = ACTIONS(1052), + [anon_sym_signed] = ACTIONS(1052), + [anon_sym_unsigned] = ACTIONS(1052), + [anon_sym_long] = ACTIONS(1052), + [anon_sym_short] = ACTIONS(1052), + [sym_primitive_type] = ACTIONS(1052), + [anon_sym_enum] = ACTIONS(1052), + [anon_sym_struct] = ACTIONS(1052), + [anon_sym_union] = ACTIONS(1052), + [anon_sym_if] = ACTIONS(1052), + [anon_sym_switch] = ACTIONS(1052), + [anon_sym_case] = ACTIONS(1052), + [anon_sym_default] = ACTIONS(1052), + [anon_sym_while] = ACTIONS(1052), + [anon_sym_do] = ACTIONS(1052), + [anon_sym_for] = ACTIONS(1052), + [anon_sym_return] = ACTIONS(1052), + [anon_sym_break] = ACTIONS(1052), + [anon_sym_continue] = ACTIONS(1052), + [anon_sym_goto] = ACTIONS(1052), + [anon_sym_DASH_DASH] = ACTIONS(1054), + [anon_sym_PLUS_PLUS] = ACTIONS(1054), + [anon_sym_sizeof] = ACTIONS(1052), + [sym_number_literal] = ACTIONS(1054), + [anon_sym_L_SQUOTE] = ACTIONS(1054), + [anon_sym_u_SQUOTE] = ACTIONS(1054), + [anon_sym_U_SQUOTE] = ACTIONS(1054), + [anon_sym_u8_SQUOTE] = ACTIONS(1054), + [anon_sym_SQUOTE] = ACTIONS(1054), + [anon_sym_L_DQUOTE] = ACTIONS(1054), + [anon_sym_u_DQUOTE] = ACTIONS(1054), + [anon_sym_U_DQUOTE] = ACTIONS(1054), + [anon_sym_u8_DQUOTE] = ACTIONS(1054), + [anon_sym_DQUOTE] = ACTIONS(1054), + [sym_true] = ACTIONS(1052), + [sym_false] = ACTIONS(1052), + [sym_null] = ACTIONS(1052), + [sym_comment] = ACTIONS(3), + }, + [361] = { + [ts_builtin_sym_end] = ACTIONS(1050), + [sym_identifier] = ACTIONS(1048), + [aux_sym_preproc_include_token1] = ACTIONS(1048), + [aux_sym_preproc_def_token1] = ACTIONS(1048), + [aux_sym_preproc_if_token1] = ACTIONS(1048), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1048), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1048), + [sym_preproc_directive] = ACTIONS(1048), + [anon_sym_LPAREN2] = ACTIONS(1050), + [anon_sym_BANG] = ACTIONS(1050), + [anon_sym_TILDE] = ACTIONS(1050), + [anon_sym_DASH] = ACTIONS(1048), + [anon_sym_PLUS] = ACTIONS(1048), + [anon_sym_STAR] = ACTIONS(1050), + [anon_sym_AMP] = ACTIONS(1050), + [anon_sym_SEMI] = ACTIONS(1050), + [anon_sym_typedef] = ACTIONS(1048), + [anon_sym_extern] = ACTIONS(1048), + [anon_sym___attribute__] = ACTIONS(1048), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1050), + [anon_sym___declspec] = ACTIONS(1048), + [anon_sym___cdecl] = ACTIONS(1048), + [anon_sym___clrcall] = ACTIONS(1048), + [anon_sym___stdcall] = ACTIONS(1048), + [anon_sym___fastcall] = ACTIONS(1048), + [anon_sym___thiscall] = ACTIONS(1048), + [anon_sym___vectorcall] = ACTIONS(1048), + [anon_sym_LBRACE] = ACTIONS(1050), + [anon_sym_static] = ACTIONS(1048), + [anon_sym_auto] = ACTIONS(1048), + [anon_sym_register] = ACTIONS(1048), + [anon_sym_inline] = ACTIONS(1048), + [anon_sym_const] = ACTIONS(1048), + [anon_sym_volatile] = ACTIONS(1048), + [anon_sym_restrict] = ACTIONS(1048), + [anon_sym__Atomic] = ACTIONS(1048), + [anon_sym_signed] = ACTIONS(1048), + [anon_sym_unsigned] = ACTIONS(1048), + [anon_sym_long] = ACTIONS(1048), + [anon_sym_short] = ACTIONS(1048), + [sym_primitive_type] = ACTIONS(1048), + [anon_sym_enum] = ACTIONS(1048), + [anon_sym_struct] = ACTIONS(1048), + [anon_sym_union] = ACTIONS(1048), + [anon_sym_if] = ACTIONS(1048), + [anon_sym_switch] = ACTIONS(1048), + [anon_sym_case] = ACTIONS(1048), + [anon_sym_default] = ACTIONS(1048), + [anon_sym_while] = ACTIONS(1048), + [anon_sym_do] = ACTIONS(1048), + [anon_sym_for] = ACTIONS(1048), + [anon_sym_return] = ACTIONS(1048), + [anon_sym_break] = ACTIONS(1048), + [anon_sym_continue] = ACTIONS(1048), + [anon_sym_goto] = ACTIONS(1048), + [anon_sym_DASH_DASH] = ACTIONS(1050), + [anon_sym_PLUS_PLUS] = ACTIONS(1050), + [anon_sym_sizeof] = ACTIONS(1048), + [sym_number_literal] = ACTIONS(1050), + [anon_sym_L_SQUOTE] = ACTIONS(1050), + [anon_sym_u_SQUOTE] = ACTIONS(1050), + [anon_sym_U_SQUOTE] = ACTIONS(1050), + [anon_sym_u8_SQUOTE] = ACTIONS(1050), + [anon_sym_SQUOTE] = ACTIONS(1050), + [anon_sym_L_DQUOTE] = ACTIONS(1050), + [anon_sym_u_DQUOTE] = ACTIONS(1050), + [anon_sym_U_DQUOTE] = ACTIONS(1050), + [anon_sym_u8_DQUOTE] = ACTIONS(1050), + [anon_sym_DQUOTE] = ACTIONS(1050), + [sym_true] = ACTIONS(1048), + [sym_false] = ACTIONS(1048), + [sym_null] = ACTIONS(1048), + [sym_comment] = ACTIONS(3), + }, + [362] = { + [sym_identifier] = ACTIONS(1096), + [aux_sym_preproc_include_token1] = ACTIONS(1096), + [aux_sym_preproc_def_token1] = ACTIONS(1096), + [aux_sym_preproc_if_token1] = ACTIONS(1096), + [aux_sym_preproc_if_token2] = ACTIONS(1096), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1096), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1096), + [sym_preproc_directive] = ACTIONS(1096), + [anon_sym_LPAREN2] = ACTIONS(1098), + [anon_sym_BANG] = ACTIONS(1098), + [anon_sym_TILDE] = ACTIONS(1098), + [anon_sym_DASH] = ACTIONS(1096), + [anon_sym_PLUS] = ACTIONS(1096), + [anon_sym_STAR] = ACTIONS(1098), + [anon_sym_AMP] = ACTIONS(1098), + [anon_sym_SEMI] = ACTIONS(1098), + [anon_sym_typedef] = ACTIONS(1096), + [anon_sym_extern] = ACTIONS(1096), + [anon_sym___attribute__] = ACTIONS(1096), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1098), + [anon_sym___declspec] = ACTIONS(1096), + [anon_sym___cdecl] = ACTIONS(1096), + [anon_sym___clrcall] = ACTIONS(1096), + [anon_sym___stdcall] = ACTIONS(1096), + [anon_sym___fastcall] = ACTIONS(1096), + [anon_sym___thiscall] = ACTIONS(1096), + [anon_sym___vectorcall] = ACTIONS(1096), + [anon_sym_LBRACE] = ACTIONS(1098), + [anon_sym_static] = ACTIONS(1096), + [anon_sym_auto] = ACTIONS(1096), + [anon_sym_register] = ACTIONS(1096), + [anon_sym_inline] = ACTIONS(1096), + [anon_sym_const] = ACTIONS(1096), + [anon_sym_volatile] = ACTIONS(1096), + [anon_sym_restrict] = ACTIONS(1096), + [anon_sym__Atomic] = ACTIONS(1096), + [anon_sym_signed] = ACTIONS(1096), + [anon_sym_unsigned] = ACTIONS(1096), + [anon_sym_long] = ACTIONS(1096), + [anon_sym_short] = ACTIONS(1096), + [sym_primitive_type] = ACTIONS(1096), + [anon_sym_enum] = ACTIONS(1096), + [anon_sym_struct] = ACTIONS(1096), + [anon_sym_union] = ACTIONS(1096), + [anon_sym_if] = ACTIONS(1096), + [anon_sym_switch] = ACTIONS(1096), + [anon_sym_case] = ACTIONS(1096), + [anon_sym_default] = ACTIONS(1096), + [anon_sym_while] = ACTIONS(1096), + [anon_sym_do] = ACTIONS(1096), + [anon_sym_for] = ACTIONS(1096), + [anon_sym_return] = ACTIONS(1096), + [anon_sym_break] = ACTIONS(1096), + [anon_sym_continue] = ACTIONS(1096), + [anon_sym_goto] = ACTIONS(1096), + [anon_sym_DASH_DASH] = ACTIONS(1098), + [anon_sym_PLUS_PLUS] = ACTIONS(1098), + [anon_sym_sizeof] = ACTIONS(1096), + [sym_number_literal] = ACTIONS(1098), + [anon_sym_L_SQUOTE] = ACTIONS(1098), + [anon_sym_u_SQUOTE] = ACTIONS(1098), + [anon_sym_U_SQUOTE] = ACTIONS(1098), + [anon_sym_u8_SQUOTE] = ACTIONS(1098), + [anon_sym_SQUOTE] = ACTIONS(1098), + [anon_sym_L_DQUOTE] = ACTIONS(1098), + [anon_sym_u_DQUOTE] = ACTIONS(1098), + [anon_sym_U_DQUOTE] = ACTIONS(1098), + [anon_sym_u8_DQUOTE] = ACTIONS(1098), + [anon_sym_DQUOTE] = ACTIONS(1098), + [sym_true] = ACTIONS(1096), + [sym_false] = ACTIONS(1096), + [sym_null] = ACTIONS(1096), + [sym_comment] = ACTIONS(3), + }, + [363] = { + [ts_builtin_sym_end] = ACTIONS(1030), + [sym_identifier] = ACTIONS(1028), + [aux_sym_preproc_include_token1] = ACTIONS(1028), + [aux_sym_preproc_def_token1] = ACTIONS(1028), + [aux_sym_preproc_if_token1] = ACTIONS(1028), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1028), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1028), + [sym_preproc_directive] = ACTIONS(1028), + [anon_sym_LPAREN2] = ACTIONS(1030), + [anon_sym_BANG] = ACTIONS(1030), + [anon_sym_TILDE] = ACTIONS(1030), + [anon_sym_DASH] = ACTIONS(1028), + [anon_sym_PLUS] = ACTIONS(1028), + [anon_sym_STAR] = ACTIONS(1030), + [anon_sym_AMP] = ACTIONS(1030), + [anon_sym_SEMI] = ACTIONS(1030), + [anon_sym_typedef] = ACTIONS(1028), + [anon_sym_extern] = ACTIONS(1028), + [anon_sym___attribute__] = ACTIONS(1028), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1030), + [anon_sym___declspec] = ACTIONS(1028), + [anon_sym___cdecl] = ACTIONS(1028), + [anon_sym___clrcall] = ACTIONS(1028), + [anon_sym___stdcall] = ACTIONS(1028), + [anon_sym___fastcall] = ACTIONS(1028), + [anon_sym___thiscall] = ACTIONS(1028), + [anon_sym___vectorcall] = ACTIONS(1028), + [anon_sym_LBRACE] = ACTIONS(1030), + [anon_sym_static] = ACTIONS(1028), + [anon_sym_auto] = ACTIONS(1028), + [anon_sym_register] = ACTIONS(1028), + [anon_sym_inline] = ACTIONS(1028), + [anon_sym_const] = ACTIONS(1028), + [anon_sym_volatile] = ACTIONS(1028), + [anon_sym_restrict] = ACTIONS(1028), + [anon_sym__Atomic] = ACTIONS(1028), + [anon_sym_signed] = ACTIONS(1028), + [anon_sym_unsigned] = ACTIONS(1028), + [anon_sym_long] = ACTIONS(1028), + [anon_sym_short] = ACTIONS(1028), + [sym_primitive_type] = ACTIONS(1028), + [anon_sym_enum] = ACTIONS(1028), + [anon_sym_struct] = ACTIONS(1028), + [anon_sym_union] = ACTIONS(1028), + [anon_sym_if] = ACTIONS(1028), + [anon_sym_switch] = ACTIONS(1028), + [anon_sym_case] = ACTIONS(1028), + [anon_sym_default] = ACTIONS(1028), + [anon_sym_while] = ACTIONS(1028), + [anon_sym_do] = ACTIONS(1028), + [anon_sym_for] = ACTIONS(1028), + [anon_sym_return] = ACTIONS(1028), + [anon_sym_break] = ACTIONS(1028), + [anon_sym_continue] = ACTIONS(1028), + [anon_sym_goto] = ACTIONS(1028), + [anon_sym_DASH_DASH] = ACTIONS(1030), + [anon_sym_PLUS_PLUS] = ACTIONS(1030), + [anon_sym_sizeof] = ACTIONS(1028), + [sym_number_literal] = ACTIONS(1030), + [anon_sym_L_SQUOTE] = ACTIONS(1030), + [anon_sym_u_SQUOTE] = ACTIONS(1030), + [anon_sym_U_SQUOTE] = ACTIONS(1030), + [anon_sym_u8_SQUOTE] = ACTIONS(1030), + [anon_sym_SQUOTE] = ACTIONS(1030), + [anon_sym_L_DQUOTE] = ACTIONS(1030), + [anon_sym_u_DQUOTE] = ACTIONS(1030), + [anon_sym_U_DQUOTE] = ACTIONS(1030), + [anon_sym_u8_DQUOTE] = ACTIONS(1030), + [anon_sym_DQUOTE] = ACTIONS(1030), + [sym_true] = ACTIONS(1028), + [sym_false] = ACTIONS(1028), + [sym_null] = ACTIONS(1028), + [sym_comment] = ACTIONS(3), + }, + [364] = { + [sym_identifier] = ACTIONS(1088), + [aux_sym_preproc_include_token1] = ACTIONS(1088), + [aux_sym_preproc_def_token1] = ACTIONS(1088), + [aux_sym_preproc_if_token1] = ACTIONS(1088), + [aux_sym_preproc_if_token2] = ACTIONS(1088), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1088), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1088), + [sym_preproc_directive] = ACTIONS(1088), + [anon_sym_LPAREN2] = ACTIONS(1090), + [anon_sym_BANG] = ACTIONS(1090), + [anon_sym_TILDE] = ACTIONS(1090), + [anon_sym_DASH] = ACTIONS(1088), + [anon_sym_PLUS] = ACTIONS(1088), + [anon_sym_STAR] = ACTIONS(1090), + [anon_sym_AMP] = ACTIONS(1090), + [anon_sym_SEMI] = ACTIONS(1090), + [anon_sym_typedef] = ACTIONS(1088), + [anon_sym_extern] = ACTIONS(1088), + [anon_sym___attribute__] = ACTIONS(1088), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1090), + [anon_sym___declspec] = ACTIONS(1088), + [anon_sym___cdecl] = ACTIONS(1088), + [anon_sym___clrcall] = ACTIONS(1088), + [anon_sym___stdcall] = ACTIONS(1088), + [anon_sym___fastcall] = ACTIONS(1088), + [anon_sym___thiscall] = ACTIONS(1088), + [anon_sym___vectorcall] = ACTIONS(1088), + [anon_sym_LBRACE] = ACTIONS(1090), + [anon_sym_static] = ACTIONS(1088), + [anon_sym_auto] = ACTIONS(1088), + [anon_sym_register] = ACTIONS(1088), + [anon_sym_inline] = ACTIONS(1088), + [anon_sym_const] = ACTIONS(1088), + [anon_sym_volatile] = ACTIONS(1088), + [anon_sym_restrict] = ACTIONS(1088), + [anon_sym__Atomic] = ACTIONS(1088), + [anon_sym_signed] = ACTIONS(1088), + [anon_sym_unsigned] = ACTIONS(1088), + [anon_sym_long] = ACTIONS(1088), + [anon_sym_short] = ACTIONS(1088), + [sym_primitive_type] = ACTIONS(1088), + [anon_sym_enum] = ACTIONS(1088), + [anon_sym_struct] = ACTIONS(1088), + [anon_sym_union] = ACTIONS(1088), + [anon_sym_if] = ACTIONS(1088), + [anon_sym_switch] = ACTIONS(1088), + [anon_sym_case] = ACTIONS(1088), + [anon_sym_default] = ACTIONS(1088), + [anon_sym_while] = ACTIONS(1088), + [anon_sym_do] = ACTIONS(1088), + [anon_sym_for] = ACTIONS(1088), + [anon_sym_return] = ACTIONS(1088), + [anon_sym_break] = ACTIONS(1088), + [anon_sym_continue] = ACTIONS(1088), + [anon_sym_goto] = ACTIONS(1088), + [anon_sym_DASH_DASH] = ACTIONS(1090), + [anon_sym_PLUS_PLUS] = ACTIONS(1090), + [anon_sym_sizeof] = ACTIONS(1088), + [sym_number_literal] = ACTIONS(1090), + [anon_sym_L_SQUOTE] = ACTIONS(1090), + [anon_sym_u_SQUOTE] = ACTIONS(1090), + [anon_sym_U_SQUOTE] = ACTIONS(1090), + [anon_sym_u8_SQUOTE] = ACTIONS(1090), + [anon_sym_SQUOTE] = ACTIONS(1090), + [anon_sym_L_DQUOTE] = ACTIONS(1090), + [anon_sym_u_DQUOTE] = ACTIONS(1090), + [anon_sym_U_DQUOTE] = ACTIONS(1090), + [anon_sym_u8_DQUOTE] = ACTIONS(1090), + [anon_sym_DQUOTE] = ACTIONS(1090), + [sym_true] = ACTIONS(1088), + [sym_false] = ACTIONS(1088), + [sym_null] = ACTIONS(1088), + [sym_comment] = ACTIONS(3), + }, + [365] = { + [sym_identifier] = ACTIONS(1068), + [aux_sym_preproc_include_token1] = ACTIONS(1068), + [aux_sym_preproc_def_token1] = ACTIONS(1068), + [aux_sym_preproc_if_token1] = ACTIONS(1068), + [aux_sym_preproc_if_token2] = ACTIONS(1068), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1068), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1068), + [sym_preproc_directive] = ACTIONS(1068), + [anon_sym_LPAREN2] = ACTIONS(1070), + [anon_sym_BANG] = ACTIONS(1070), + [anon_sym_TILDE] = ACTIONS(1070), + [anon_sym_DASH] = ACTIONS(1068), + [anon_sym_PLUS] = ACTIONS(1068), + [anon_sym_STAR] = ACTIONS(1070), + [anon_sym_AMP] = ACTIONS(1070), + [anon_sym_SEMI] = ACTIONS(1070), + [anon_sym_typedef] = ACTIONS(1068), + [anon_sym_extern] = ACTIONS(1068), + [anon_sym___attribute__] = ACTIONS(1068), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1070), + [anon_sym___declspec] = ACTIONS(1068), + [anon_sym___cdecl] = ACTIONS(1068), + [anon_sym___clrcall] = ACTIONS(1068), + [anon_sym___stdcall] = ACTIONS(1068), + [anon_sym___fastcall] = ACTIONS(1068), + [anon_sym___thiscall] = ACTIONS(1068), + [anon_sym___vectorcall] = ACTIONS(1068), + [anon_sym_LBRACE] = ACTIONS(1070), + [anon_sym_static] = ACTIONS(1068), + [anon_sym_auto] = ACTIONS(1068), + [anon_sym_register] = ACTIONS(1068), + [anon_sym_inline] = ACTIONS(1068), + [anon_sym_const] = ACTIONS(1068), + [anon_sym_volatile] = ACTIONS(1068), + [anon_sym_restrict] = ACTIONS(1068), + [anon_sym__Atomic] = ACTIONS(1068), + [anon_sym_signed] = ACTIONS(1068), + [anon_sym_unsigned] = ACTIONS(1068), + [anon_sym_long] = ACTIONS(1068), + [anon_sym_short] = ACTIONS(1068), + [sym_primitive_type] = ACTIONS(1068), + [anon_sym_enum] = ACTIONS(1068), + [anon_sym_struct] = ACTIONS(1068), + [anon_sym_union] = ACTIONS(1068), + [anon_sym_if] = ACTIONS(1068), + [anon_sym_switch] = ACTIONS(1068), + [anon_sym_case] = ACTIONS(1068), + [anon_sym_default] = ACTIONS(1068), + [anon_sym_while] = ACTIONS(1068), + [anon_sym_do] = ACTIONS(1068), + [anon_sym_for] = ACTIONS(1068), + [anon_sym_return] = ACTIONS(1068), + [anon_sym_break] = ACTIONS(1068), + [anon_sym_continue] = ACTIONS(1068), + [anon_sym_goto] = ACTIONS(1068), + [anon_sym_DASH_DASH] = ACTIONS(1070), + [anon_sym_PLUS_PLUS] = ACTIONS(1070), + [anon_sym_sizeof] = ACTIONS(1068), + [sym_number_literal] = ACTIONS(1070), + [anon_sym_L_SQUOTE] = ACTIONS(1070), + [anon_sym_u_SQUOTE] = ACTIONS(1070), + [anon_sym_U_SQUOTE] = ACTIONS(1070), + [anon_sym_u8_SQUOTE] = ACTIONS(1070), + [anon_sym_SQUOTE] = ACTIONS(1070), + [anon_sym_L_DQUOTE] = ACTIONS(1070), + [anon_sym_u_DQUOTE] = ACTIONS(1070), + [anon_sym_U_DQUOTE] = ACTIONS(1070), + [anon_sym_u8_DQUOTE] = ACTIONS(1070), + [anon_sym_DQUOTE] = ACTIONS(1070), + [sym_true] = ACTIONS(1068), + [sym_false] = ACTIONS(1068), + [sym_null] = ACTIONS(1068), + [sym_comment] = ACTIONS(3), + }, + [366] = { + [ts_builtin_sym_end] = ACTIONS(1090), + [sym_identifier] = ACTIONS(1088), + [aux_sym_preproc_include_token1] = ACTIONS(1088), + [aux_sym_preproc_def_token1] = ACTIONS(1088), + [aux_sym_preproc_if_token1] = ACTIONS(1088), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1088), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1088), + [sym_preproc_directive] = ACTIONS(1088), + [anon_sym_LPAREN2] = ACTIONS(1090), + [anon_sym_BANG] = ACTIONS(1090), + [anon_sym_TILDE] = ACTIONS(1090), + [anon_sym_DASH] = ACTIONS(1088), + [anon_sym_PLUS] = ACTIONS(1088), + [anon_sym_STAR] = ACTIONS(1090), + [anon_sym_AMP] = ACTIONS(1090), + [anon_sym_SEMI] = ACTIONS(1090), + [anon_sym_typedef] = ACTIONS(1088), + [anon_sym_extern] = ACTIONS(1088), + [anon_sym___attribute__] = ACTIONS(1088), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1090), + [anon_sym___declspec] = ACTIONS(1088), + [anon_sym___cdecl] = ACTIONS(1088), + [anon_sym___clrcall] = ACTIONS(1088), + [anon_sym___stdcall] = ACTIONS(1088), + [anon_sym___fastcall] = ACTIONS(1088), + [anon_sym___thiscall] = ACTIONS(1088), + [anon_sym___vectorcall] = ACTIONS(1088), + [anon_sym_LBRACE] = ACTIONS(1090), + [anon_sym_static] = ACTIONS(1088), + [anon_sym_auto] = ACTIONS(1088), + [anon_sym_register] = ACTIONS(1088), + [anon_sym_inline] = ACTIONS(1088), + [anon_sym_const] = ACTIONS(1088), + [anon_sym_volatile] = ACTIONS(1088), + [anon_sym_restrict] = ACTIONS(1088), + [anon_sym__Atomic] = ACTIONS(1088), + [anon_sym_signed] = ACTIONS(1088), + [anon_sym_unsigned] = ACTIONS(1088), + [anon_sym_long] = ACTIONS(1088), + [anon_sym_short] = ACTIONS(1088), + [sym_primitive_type] = ACTIONS(1088), + [anon_sym_enum] = ACTIONS(1088), + [anon_sym_struct] = ACTIONS(1088), + [anon_sym_union] = ACTIONS(1088), + [anon_sym_if] = ACTIONS(1088), + [anon_sym_switch] = ACTIONS(1088), + [anon_sym_case] = ACTIONS(1088), + [anon_sym_default] = ACTIONS(1088), + [anon_sym_while] = ACTIONS(1088), + [anon_sym_do] = ACTIONS(1088), + [anon_sym_for] = ACTIONS(1088), + [anon_sym_return] = ACTIONS(1088), + [anon_sym_break] = ACTIONS(1088), + [anon_sym_continue] = ACTIONS(1088), + [anon_sym_goto] = ACTIONS(1088), + [anon_sym_DASH_DASH] = ACTIONS(1090), + [anon_sym_PLUS_PLUS] = ACTIONS(1090), + [anon_sym_sizeof] = ACTIONS(1088), + [sym_number_literal] = ACTIONS(1090), + [anon_sym_L_SQUOTE] = ACTIONS(1090), + [anon_sym_u_SQUOTE] = ACTIONS(1090), + [anon_sym_U_SQUOTE] = ACTIONS(1090), + [anon_sym_u8_SQUOTE] = ACTIONS(1090), + [anon_sym_SQUOTE] = ACTIONS(1090), + [anon_sym_L_DQUOTE] = ACTIONS(1090), + [anon_sym_u_DQUOTE] = ACTIONS(1090), + [anon_sym_U_DQUOTE] = ACTIONS(1090), + [anon_sym_u8_DQUOTE] = ACTIONS(1090), + [anon_sym_DQUOTE] = ACTIONS(1090), + [sym_true] = ACTIONS(1088), + [sym_false] = ACTIONS(1088), + [sym_null] = ACTIONS(1088), + [sym_comment] = ACTIONS(3), + }, + [367] = { + [ts_builtin_sym_end] = ACTIONS(1118), + [sym_identifier] = ACTIONS(1116), + [aux_sym_preproc_include_token1] = ACTIONS(1116), + [aux_sym_preproc_def_token1] = ACTIONS(1116), + [aux_sym_preproc_if_token1] = ACTIONS(1116), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1116), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1116), + [sym_preproc_directive] = ACTIONS(1116), + [anon_sym_LPAREN2] = ACTIONS(1118), + [anon_sym_BANG] = ACTIONS(1118), + [anon_sym_TILDE] = ACTIONS(1118), + [anon_sym_DASH] = ACTIONS(1116), + [anon_sym_PLUS] = ACTIONS(1116), + [anon_sym_STAR] = ACTIONS(1118), + [anon_sym_AMP] = ACTIONS(1118), + [anon_sym_SEMI] = ACTIONS(1118), + [anon_sym_typedef] = ACTIONS(1116), + [anon_sym_extern] = ACTIONS(1116), + [anon_sym___attribute__] = ACTIONS(1116), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1118), + [anon_sym___declspec] = ACTIONS(1116), + [anon_sym___cdecl] = ACTIONS(1116), + [anon_sym___clrcall] = ACTIONS(1116), + [anon_sym___stdcall] = ACTIONS(1116), + [anon_sym___fastcall] = ACTIONS(1116), + [anon_sym___thiscall] = ACTIONS(1116), + [anon_sym___vectorcall] = ACTIONS(1116), + [anon_sym_LBRACE] = ACTIONS(1118), + [anon_sym_static] = ACTIONS(1116), + [anon_sym_auto] = ACTIONS(1116), + [anon_sym_register] = ACTIONS(1116), + [anon_sym_inline] = ACTIONS(1116), + [anon_sym_const] = ACTIONS(1116), + [anon_sym_volatile] = ACTIONS(1116), + [anon_sym_restrict] = ACTIONS(1116), + [anon_sym__Atomic] = ACTIONS(1116), + [anon_sym_signed] = ACTIONS(1116), + [anon_sym_unsigned] = ACTIONS(1116), + [anon_sym_long] = ACTIONS(1116), + [anon_sym_short] = ACTIONS(1116), + [sym_primitive_type] = ACTIONS(1116), + [anon_sym_enum] = ACTIONS(1116), + [anon_sym_struct] = ACTIONS(1116), + [anon_sym_union] = ACTIONS(1116), + [anon_sym_if] = ACTIONS(1116), + [anon_sym_switch] = ACTIONS(1116), + [anon_sym_case] = ACTIONS(1116), + [anon_sym_default] = ACTIONS(1116), + [anon_sym_while] = ACTIONS(1116), + [anon_sym_do] = ACTIONS(1116), + [anon_sym_for] = ACTIONS(1116), + [anon_sym_return] = ACTIONS(1116), + [anon_sym_break] = ACTIONS(1116), + [anon_sym_continue] = ACTIONS(1116), + [anon_sym_goto] = ACTIONS(1116), + [anon_sym_DASH_DASH] = ACTIONS(1118), + [anon_sym_PLUS_PLUS] = ACTIONS(1118), + [anon_sym_sizeof] = ACTIONS(1116), + [sym_number_literal] = ACTIONS(1118), + [anon_sym_L_SQUOTE] = ACTIONS(1118), + [anon_sym_u_SQUOTE] = ACTIONS(1118), + [anon_sym_U_SQUOTE] = ACTIONS(1118), + [anon_sym_u8_SQUOTE] = ACTIONS(1118), + [anon_sym_SQUOTE] = ACTIONS(1118), + [anon_sym_L_DQUOTE] = ACTIONS(1118), + [anon_sym_u_DQUOTE] = ACTIONS(1118), + [anon_sym_U_DQUOTE] = ACTIONS(1118), + [anon_sym_u8_DQUOTE] = ACTIONS(1118), + [anon_sym_DQUOTE] = ACTIONS(1118), + [sym_true] = ACTIONS(1116), + [sym_false] = ACTIONS(1116), + [sym_null] = ACTIONS(1116), + [sym_comment] = ACTIONS(3), + }, + [368] = { + [sym_identifier] = ACTIONS(1052), + [aux_sym_preproc_include_token1] = ACTIONS(1052), + [aux_sym_preproc_def_token1] = ACTIONS(1052), + [aux_sym_preproc_if_token1] = ACTIONS(1052), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1052), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1052), + [sym_preproc_directive] = ACTIONS(1052), + [anon_sym_LPAREN2] = ACTIONS(1054), + [anon_sym_BANG] = ACTIONS(1054), + [anon_sym_TILDE] = ACTIONS(1054), + [anon_sym_DASH] = ACTIONS(1052), + [anon_sym_PLUS] = ACTIONS(1052), + [anon_sym_STAR] = ACTIONS(1054), + [anon_sym_AMP] = ACTIONS(1054), + [anon_sym_SEMI] = ACTIONS(1054), + [anon_sym_typedef] = ACTIONS(1052), + [anon_sym_extern] = ACTIONS(1052), + [anon_sym___attribute__] = ACTIONS(1052), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1054), + [anon_sym___declspec] = ACTIONS(1052), + [anon_sym___cdecl] = ACTIONS(1052), + [anon_sym___clrcall] = ACTIONS(1052), + [anon_sym___stdcall] = ACTIONS(1052), + [anon_sym___fastcall] = ACTIONS(1052), + [anon_sym___thiscall] = ACTIONS(1052), + [anon_sym___vectorcall] = ACTIONS(1052), + [anon_sym_LBRACE] = ACTIONS(1054), + [anon_sym_RBRACE] = ACTIONS(1054), + [anon_sym_static] = ACTIONS(1052), + [anon_sym_auto] = ACTIONS(1052), + [anon_sym_register] = ACTIONS(1052), + [anon_sym_inline] = ACTIONS(1052), + [anon_sym_const] = ACTIONS(1052), + [anon_sym_volatile] = ACTIONS(1052), + [anon_sym_restrict] = ACTIONS(1052), + [anon_sym__Atomic] = ACTIONS(1052), + [anon_sym_signed] = ACTIONS(1052), + [anon_sym_unsigned] = ACTIONS(1052), + [anon_sym_long] = ACTIONS(1052), + [anon_sym_short] = ACTIONS(1052), + [sym_primitive_type] = ACTIONS(1052), + [anon_sym_enum] = ACTIONS(1052), + [anon_sym_struct] = ACTIONS(1052), + [anon_sym_union] = ACTIONS(1052), + [anon_sym_if] = ACTIONS(1052), + [anon_sym_switch] = ACTIONS(1052), + [anon_sym_case] = ACTIONS(1052), + [anon_sym_default] = ACTIONS(1052), + [anon_sym_while] = ACTIONS(1052), + [anon_sym_do] = ACTIONS(1052), + [anon_sym_for] = ACTIONS(1052), + [anon_sym_return] = ACTIONS(1052), + [anon_sym_break] = ACTIONS(1052), + [anon_sym_continue] = ACTIONS(1052), + [anon_sym_goto] = ACTIONS(1052), + [anon_sym_DASH_DASH] = ACTIONS(1054), + [anon_sym_PLUS_PLUS] = ACTIONS(1054), + [anon_sym_sizeof] = ACTIONS(1052), + [sym_number_literal] = ACTIONS(1054), + [anon_sym_L_SQUOTE] = ACTIONS(1054), + [anon_sym_u_SQUOTE] = ACTIONS(1054), + [anon_sym_U_SQUOTE] = ACTIONS(1054), + [anon_sym_u8_SQUOTE] = ACTIONS(1054), + [anon_sym_SQUOTE] = ACTIONS(1054), + [anon_sym_L_DQUOTE] = ACTIONS(1054), + [anon_sym_u_DQUOTE] = ACTIONS(1054), + [anon_sym_U_DQUOTE] = ACTIONS(1054), + [anon_sym_u8_DQUOTE] = ACTIONS(1054), + [anon_sym_DQUOTE] = ACTIONS(1054), + [sym_true] = ACTIONS(1052), + [sym_false] = ACTIONS(1052), + [sym_null] = ACTIONS(1052), + [sym_comment] = ACTIONS(3), + }, + [369] = { + [ts_builtin_sym_end] = ACTIONS(1070), + [sym_identifier] = ACTIONS(1068), + [aux_sym_preproc_include_token1] = ACTIONS(1068), + [aux_sym_preproc_def_token1] = ACTIONS(1068), + [aux_sym_preproc_if_token1] = ACTIONS(1068), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1068), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1068), + [sym_preproc_directive] = ACTIONS(1068), + [anon_sym_LPAREN2] = ACTIONS(1070), + [anon_sym_BANG] = ACTIONS(1070), + [anon_sym_TILDE] = ACTIONS(1070), + [anon_sym_DASH] = ACTIONS(1068), + [anon_sym_PLUS] = ACTIONS(1068), + [anon_sym_STAR] = ACTIONS(1070), + [anon_sym_AMP] = ACTIONS(1070), + [anon_sym_SEMI] = ACTIONS(1070), + [anon_sym_typedef] = ACTIONS(1068), + [anon_sym_extern] = ACTIONS(1068), + [anon_sym___attribute__] = ACTIONS(1068), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1070), + [anon_sym___declspec] = ACTIONS(1068), + [anon_sym___cdecl] = ACTIONS(1068), + [anon_sym___clrcall] = ACTIONS(1068), + [anon_sym___stdcall] = ACTIONS(1068), + [anon_sym___fastcall] = ACTIONS(1068), + [anon_sym___thiscall] = ACTIONS(1068), + [anon_sym___vectorcall] = ACTIONS(1068), + [anon_sym_LBRACE] = ACTIONS(1070), + [anon_sym_static] = ACTIONS(1068), + [anon_sym_auto] = ACTIONS(1068), + [anon_sym_register] = ACTIONS(1068), + [anon_sym_inline] = ACTIONS(1068), + [anon_sym_const] = ACTIONS(1068), + [anon_sym_volatile] = ACTIONS(1068), + [anon_sym_restrict] = ACTIONS(1068), + [anon_sym__Atomic] = ACTIONS(1068), + [anon_sym_signed] = ACTIONS(1068), + [anon_sym_unsigned] = ACTIONS(1068), + [anon_sym_long] = ACTIONS(1068), + [anon_sym_short] = ACTIONS(1068), + [sym_primitive_type] = ACTIONS(1068), + [anon_sym_enum] = ACTIONS(1068), + [anon_sym_struct] = ACTIONS(1068), + [anon_sym_union] = ACTIONS(1068), + [anon_sym_if] = ACTIONS(1068), + [anon_sym_switch] = ACTIONS(1068), + [anon_sym_case] = ACTIONS(1068), + [anon_sym_default] = ACTIONS(1068), + [anon_sym_while] = ACTIONS(1068), + [anon_sym_do] = ACTIONS(1068), + [anon_sym_for] = ACTIONS(1068), + [anon_sym_return] = ACTIONS(1068), + [anon_sym_break] = ACTIONS(1068), + [anon_sym_continue] = ACTIONS(1068), + [anon_sym_goto] = ACTIONS(1068), + [anon_sym_DASH_DASH] = ACTIONS(1070), + [anon_sym_PLUS_PLUS] = ACTIONS(1070), + [anon_sym_sizeof] = ACTIONS(1068), + [sym_number_literal] = ACTIONS(1070), + [anon_sym_L_SQUOTE] = ACTIONS(1070), + [anon_sym_u_SQUOTE] = ACTIONS(1070), + [anon_sym_U_SQUOTE] = ACTIONS(1070), + [anon_sym_u8_SQUOTE] = ACTIONS(1070), + [anon_sym_SQUOTE] = ACTIONS(1070), + [anon_sym_L_DQUOTE] = ACTIONS(1070), + [anon_sym_u_DQUOTE] = ACTIONS(1070), + [anon_sym_U_DQUOTE] = ACTIONS(1070), + [anon_sym_u8_DQUOTE] = ACTIONS(1070), + [anon_sym_DQUOTE] = ACTIONS(1070), + [sym_true] = ACTIONS(1068), + [sym_false] = ACTIONS(1068), + [sym_null] = ACTIONS(1068), + [sym_comment] = ACTIONS(3), + }, + [370] = { + [ts_builtin_sym_end] = ACTIONS(1082), + [sym_identifier] = ACTIONS(1080), + [aux_sym_preproc_include_token1] = ACTIONS(1080), + [aux_sym_preproc_def_token1] = ACTIONS(1080), + [aux_sym_preproc_if_token1] = ACTIONS(1080), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1080), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1080), + [sym_preproc_directive] = ACTIONS(1080), + [anon_sym_LPAREN2] = ACTIONS(1082), + [anon_sym_BANG] = ACTIONS(1082), + [anon_sym_TILDE] = ACTIONS(1082), + [anon_sym_DASH] = ACTIONS(1080), + [anon_sym_PLUS] = ACTIONS(1080), + [anon_sym_STAR] = ACTIONS(1082), + [anon_sym_AMP] = ACTIONS(1082), + [anon_sym_SEMI] = ACTIONS(1082), + [anon_sym_typedef] = ACTIONS(1080), + [anon_sym_extern] = ACTIONS(1080), + [anon_sym___attribute__] = ACTIONS(1080), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1082), + [anon_sym___declspec] = ACTIONS(1080), + [anon_sym___cdecl] = ACTIONS(1080), + [anon_sym___clrcall] = ACTIONS(1080), + [anon_sym___stdcall] = ACTIONS(1080), + [anon_sym___fastcall] = ACTIONS(1080), + [anon_sym___thiscall] = ACTIONS(1080), + [anon_sym___vectorcall] = ACTIONS(1080), + [anon_sym_LBRACE] = ACTIONS(1082), + [anon_sym_static] = ACTIONS(1080), + [anon_sym_auto] = ACTIONS(1080), + [anon_sym_register] = ACTIONS(1080), + [anon_sym_inline] = ACTIONS(1080), + [anon_sym_const] = ACTIONS(1080), + [anon_sym_volatile] = ACTIONS(1080), + [anon_sym_restrict] = ACTIONS(1080), + [anon_sym__Atomic] = ACTIONS(1080), + [anon_sym_signed] = ACTIONS(1080), + [anon_sym_unsigned] = ACTIONS(1080), + [anon_sym_long] = ACTIONS(1080), + [anon_sym_short] = ACTIONS(1080), + [sym_primitive_type] = ACTIONS(1080), + [anon_sym_enum] = ACTIONS(1080), + [anon_sym_struct] = ACTIONS(1080), + [anon_sym_union] = ACTIONS(1080), + [anon_sym_if] = ACTIONS(1080), + [anon_sym_switch] = ACTIONS(1080), + [anon_sym_case] = ACTIONS(1080), + [anon_sym_default] = ACTIONS(1080), + [anon_sym_while] = ACTIONS(1080), + [anon_sym_do] = ACTIONS(1080), + [anon_sym_for] = ACTIONS(1080), + [anon_sym_return] = ACTIONS(1080), + [anon_sym_break] = ACTIONS(1080), + [anon_sym_continue] = ACTIONS(1080), + [anon_sym_goto] = ACTIONS(1080), + [anon_sym_DASH_DASH] = ACTIONS(1082), + [anon_sym_PLUS_PLUS] = ACTIONS(1082), + [anon_sym_sizeof] = ACTIONS(1080), + [sym_number_literal] = ACTIONS(1082), + [anon_sym_L_SQUOTE] = ACTIONS(1082), + [anon_sym_u_SQUOTE] = ACTIONS(1082), + [anon_sym_U_SQUOTE] = ACTIONS(1082), + [anon_sym_u8_SQUOTE] = ACTIONS(1082), + [anon_sym_SQUOTE] = ACTIONS(1082), + [anon_sym_L_DQUOTE] = ACTIONS(1082), + [anon_sym_u_DQUOTE] = ACTIONS(1082), + [anon_sym_U_DQUOTE] = ACTIONS(1082), + [anon_sym_u8_DQUOTE] = ACTIONS(1082), + [anon_sym_DQUOTE] = ACTIONS(1082), + [sym_true] = ACTIONS(1080), + [sym_false] = ACTIONS(1080), + [sym_null] = ACTIONS(1080), + [sym_comment] = ACTIONS(3), + }, + [371] = { + [sym_identifier] = ACTIONS(1064), + [aux_sym_preproc_include_token1] = ACTIONS(1064), + [aux_sym_preproc_def_token1] = ACTIONS(1064), + [aux_sym_preproc_if_token1] = ACTIONS(1064), + [aux_sym_preproc_if_token2] = ACTIONS(1064), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1064), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1064), + [sym_preproc_directive] = ACTIONS(1064), + [anon_sym_LPAREN2] = ACTIONS(1066), + [anon_sym_BANG] = ACTIONS(1066), + [anon_sym_TILDE] = ACTIONS(1066), + [anon_sym_DASH] = ACTIONS(1064), + [anon_sym_PLUS] = ACTIONS(1064), + [anon_sym_STAR] = ACTIONS(1066), + [anon_sym_AMP] = ACTIONS(1066), + [anon_sym_SEMI] = ACTIONS(1066), + [anon_sym_typedef] = ACTIONS(1064), + [anon_sym_extern] = ACTIONS(1064), + [anon_sym___attribute__] = ACTIONS(1064), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1066), + [anon_sym___declspec] = ACTIONS(1064), + [anon_sym___cdecl] = ACTIONS(1064), + [anon_sym___clrcall] = ACTIONS(1064), + [anon_sym___stdcall] = ACTIONS(1064), + [anon_sym___fastcall] = ACTIONS(1064), + [anon_sym___thiscall] = ACTIONS(1064), + [anon_sym___vectorcall] = ACTIONS(1064), + [anon_sym_LBRACE] = ACTIONS(1066), + [anon_sym_static] = ACTIONS(1064), + [anon_sym_auto] = ACTIONS(1064), + [anon_sym_register] = ACTIONS(1064), + [anon_sym_inline] = ACTIONS(1064), + [anon_sym_const] = ACTIONS(1064), + [anon_sym_volatile] = ACTIONS(1064), + [anon_sym_restrict] = ACTIONS(1064), + [anon_sym__Atomic] = ACTIONS(1064), + [anon_sym_signed] = ACTIONS(1064), + [anon_sym_unsigned] = ACTIONS(1064), + [anon_sym_long] = ACTIONS(1064), + [anon_sym_short] = ACTIONS(1064), + [sym_primitive_type] = ACTIONS(1064), + [anon_sym_enum] = ACTIONS(1064), + [anon_sym_struct] = ACTIONS(1064), + [anon_sym_union] = ACTIONS(1064), + [anon_sym_if] = ACTIONS(1064), + [anon_sym_switch] = ACTIONS(1064), + [anon_sym_case] = ACTIONS(1064), + [anon_sym_default] = ACTIONS(1064), + [anon_sym_while] = ACTIONS(1064), + [anon_sym_do] = ACTIONS(1064), + [anon_sym_for] = ACTIONS(1064), + [anon_sym_return] = ACTIONS(1064), + [anon_sym_break] = ACTIONS(1064), + [anon_sym_continue] = ACTIONS(1064), + [anon_sym_goto] = ACTIONS(1064), + [anon_sym_DASH_DASH] = ACTIONS(1066), + [anon_sym_PLUS_PLUS] = ACTIONS(1066), + [anon_sym_sizeof] = ACTIONS(1064), + [sym_number_literal] = ACTIONS(1066), + [anon_sym_L_SQUOTE] = ACTIONS(1066), + [anon_sym_u_SQUOTE] = ACTIONS(1066), + [anon_sym_U_SQUOTE] = ACTIONS(1066), + [anon_sym_u8_SQUOTE] = ACTIONS(1066), + [anon_sym_SQUOTE] = ACTIONS(1066), + [anon_sym_L_DQUOTE] = ACTIONS(1066), + [anon_sym_u_DQUOTE] = ACTIONS(1066), + [anon_sym_U_DQUOTE] = ACTIONS(1066), + [anon_sym_u8_DQUOTE] = ACTIONS(1066), + [anon_sym_DQUOTE] = ACTIONS(1066), + [sym_true] = ACTIONS(1064), + [sym_false] = ACTIONS(1064), + [sym_null] = ACTIONS(1064), + [sym_comment] = ACTIONS(3), + }, + [372] = { + [sym_identifier] = ACTIONS(1056), + [aux_sym_preproc_include_token1] = ACTIONS(1056), + [aux_sym_preproc_def_token1] = ACTIONS(1056), + [aux_sym_preproc_if_token1] = ACTIONS(1056), + [aux_sym_preproc_if_token2] = ACTIONS(1056), + [aux_sym_preproc_ifdef_token1] = ACTIONS(1056), + [aux_sym_preproc_ifdef_token2] = ACTIONS(1056), + [sym_preproc_directive] = ACTIONS(1056), + [anon_sym_LPAREN2] = ACTIONS(1058), + [anon_sym_BANG] = ACTIONS(1058), + [anon_sym_TILDE] = ACTIONS(1058), + [anon_sym_DASH] = ACTIONS(1056), + [anon_sym_PLUS] = ACTIONS(1056), + [anon_sym_STAR] = ACTIONS(1058), + [anon_sym_AMP] = ACTIONS(1058), + [anon_sym_SEMI] = ACTIONS(1058), + [anon_sym_typedef] = ACTIONS(1056), + [anon_sym_extern] = ACTIONS(1056), + [anon_sym___attribute__] = ACTIONS(1056), + [anon_sym_LBRACK_LBRACK] = ACTIONS(1058), + [anon_sym___declspec] = ACTIONS(1056), + [anon_sym___cdecl] = ACTIONS(1056), + [anon_sym___clrcall] = ACTIONS(1056), + [anon_sym___stdcall] = ACTIONS(1056), + [anon_sym___fastcall] = ACTIONS(1056), + [anon_sym___thiscall] = ACTIONS(1056), + [anon_sym___vectorcall] = ACTIONS(1056), + [anon_sym_LBRACE] = ACTIONS(1058), + [anon_sym_static] = ACTIONS(1056), + [anon_sym_auto] = ACTIONS(1056), + [anon_sym_register] = ACTIONS(1056), + [anon_sym_inline] = ACTIONS(1056), + [anon_sym_const] = ACTIONS(1056), + [anon_sym_volatile] = ACTIONS(1056), + [anon_sym_restrict] = ACTIONS(1056), + [anon_sym__Atomic] = ACTIONS(1056), + [anon_sym_signed] = ACTIONS(1056), + [anon_sym_unsigned] = ACTIONS(1056), + [anon_sym_long] = ACTIONS(1056), + [anon_sym_short] = ACTIONS(1056), + [sym_primitive_type] = ACTIONS(1056), + [anon_sym_enum] = ACTIONS(1056), + [anon_sym_struct] = ACTIONS(1056), + [anon_sym_union] = ACTIONS(1056), + [anon_sym_if] = ACTIONS(1056), + [anon_sym_switch] = ACTIONS(1056), + [anon_sym_case] = ACTIONS(1056), + [anon_sym_default] = ACTIONS(1056), + [anon_sym_while] = ACTIONS(1056), + [anon_sym_do] = ACTIONS(1056), + [anon_sym_for] = ACTIONS(1056), + [anon_sym_return] = ACTIONS(1056), + [anon_sym_break] = ACTIONS(1056), + [anon_sym_continue] = ACTIONS(1056), + [anon_sym_goto] = ACTIONS(1056), + [anon_sym_DASH_DASH] = ACTIONS(1058), + [anon_sym_PLUS_PLUS] = ACTIONS(1058), + [anon_sym_sizeof] = ACTIONS(1056), + [sym_number_literal] = ACTIONS(1058), + [anon_sym_L_SQUOTE] = ACTIONS(1058), + [anon_sym_u_SQUOTE] = ACTIONS(1058), + [anon_sym_U_SQUOTE] = ACTIONS(1058), + [anon_sym_u8_SQUOTE] = ACTIONS(1058), + [anon_sym_SQUOTE] = ACTIONS(1058), + [anon_sym_L_DQUOTE] = ACTIONS(1058), + [anon_sym_u_DQUOTE] = ACTIONS(1058), + [anon_sym_U_DQUOTE] = ACTIONS(1058), + [anon_sym_u8_DQUOTE] = ACTIONS(1058), + [anon_sym_DQUOTE] = ACTIONS(1058), + [sym_true] = ACTIONS(1056), + [sym_false] = ACTIONS(1056), + [sym_null] = ACTIONS(1056), + [sym_comment] = ACTIONS(3), + }, + [373] = { + [sym__expression] = STATE(506), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_initializer_list] = STATE(516), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_identifier] = ACTIONS(1341), + [anon_sym_COMMA] = ACTIONS(872), + [anon_sym_RPAREN] = ACTIONS(872), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(23), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_SLASH] = ACTIONS(882), + [anon_sym_PERCENT] = ACTIONS(872), + [anon_sym_PIPE_PIPE] = ACTIONS(872), + [anon_sym_AMP_AMP] = ACTIONS(872), + [anon_sym_PIPE] = ACTIONS(882), + [anon_sym_CARET] = ACTIONS(872), + [anon_sym_AMP] = ACTIONS(880), + [anon_sym_EQ_EQ] = ACTIONS(872), + [anon_sym_BANG_EQ] = ACTIONS(872), + [anon_sym_GT] = ACTIONS(882), + [anon_sym_GT_EQ] = ACTIONS(872), + [anon_sym_LT_EQ] = ACTIONS(872), + [anon_sym_LT] = ACTIONS(882), + [anon_sym_LT_LT] = ACTIONS(872), + [anon_sym_GT_GT] = ACTIONS(872), + [anon_sym_SEMI] = ACTIONS(872), + [anon_sym_LBRACE] = ACTIONS(884), + [anon_sym_RBRACE] = ACTIONS(872), + [anon_sym_LBRACK] = ACTIONS(872), + [anon_sym_COLON] = ACTIONS(872), + [anon_sym_QMARK] = ACTIONS(872), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [anon_sym_DOT] = ACTIONS(882), + [anon_sym_DASH_GT] = ACTIONS(872), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [374] = { + [sym_type_qualifier] = STATE(857), + [sym__type_specifier] = STATE(988), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(744), + [sym_comma_expression] = STATE(1430), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_type_descriptor] = STATE(1429), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_type_definition_repeat1] = STATE(857), + [aux_sym_sized_type_specifier_repeat1] = STATE(994), + [sym_identifier] = ACTIONS(1343), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(1345), + [anon_sym_unsigned] = ACTIONS(1345), + [anon_sym_long] = ACTIONS(1345), + [anon_sym_short] = ACTIONS(1345), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [375] = { + [sym_type_qualifier] = STATE(857), + [sym__type_specifier] = STATE(988), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(744), + [sym_comma_expression] = STATE(1430), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_type_descriptor] = STATE(1366), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_type_definition_repeat1] = STATE(857), + [aux_sym_sized_type_specifier_repeat1] = STATE(994), + [sym_identifier] = ACTIONS(1343), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(1345), + [anon_sym_unsigned] = ACTIONS(1345), + [anon_sym_long] = ACTIONS(1345), + [anon_sym_short] = ACTIONS(1345), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [376] = { + [sym_type_qualifier] = STATE(857), + [sym__type_specifier] = STATE(988), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(744), + [sym_comma_expression] = STATE(1430), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_type_descriptor] = STATE(1432), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_type_definition_repeat1] = STATE(857), + [aux_sym_sized_type_specifier_repeat1] = STATE(994), + [sym_identifier] = ACTIONS(1343), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(1345), + [anon_sym_unsigned] = ACTIONS(1345), + [anon_sym_long] = ACTIONS(1345), + [anon_sym_short] = ACTIONS(1345), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [377] = { + [sym_type_qualifier] = STATE(857), + [sym__type_specifier] = STATE(988), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(744), + [sym_comma_expression] = STATE(1430), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_type_descriptor] = STATE(1408), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_type_definition_repeat1] = STATE(857), + [aux_sym_sized_type_specifier_repeat1] = STATE(994), + [sym_identifier] = ACTIONS(1343), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(1345), + [anon_sym_unsigned] = ACTIONS(1345), + [anon_sym_long] = ACTIONS(1345), + [anon_sym_short] = ACTIONS(1345), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [378] = { + [sym_type_qualifier] = STATE(857), + [sym__type_specifier] = STATE(988), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(744), + [sym_comma_expression] = STATE(1430), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_type_descriptor] = STATE(1344), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_type_definition_repeat1] = STATE(857), + [aux_sym_sized_type_specifier_repeat1] = STATE(994), + [sym_identifier] = ACTIONS(1343), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(1345), + [anon_sym_unsigned] = ACTIONS(1345), + [anon_sym_long] = ACTIONS(1345), + [anon_sym_short] = ACTIONS(1345), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [379] = { + [sym_type_qualifier] = STATE(857), + [sym__type_specifier] = STATE(988), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(744), + [sym_comma_expression] = STATE(1430), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_type_descriptor] = STATE(1455), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_type_definition_repeat1] = STATE(857), + [aux_sym_sized_type_specifier_repeat1] = STATE(994), + [sym_identifier] = ACTIONS(1343), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(1345), + [anon_sym_unsigned] = ACTIONS(1345), + [anon_sym_long] = ACTIONS(1345), + [anon_sym_short] = ACTIONS(1345), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [380] = { + [sym_type_qualifier] = STATE(857), + [sym__type_specifier] = STATE(988), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(744), + [sym_comma_expression] = STATE(1430), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_type_descriptor] = STATE(1436), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_type_definition_repeat1] = STATE(857), + [aux_sym_sized_type_specifier_repeat1] = STATE(994), + [sym_identifier] = ACTIONS(1343), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(1345), + [anon_sym_unsigned] = ACTIONS(1345), + [anon_sym_long] = ACTIONS(1345), + [anon_sym_short] = ACTIONS(1345), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, + [381] = { + [sym_type_qualifier] = STATE(857), + [sym__type_specifier] = STATE(988), + [sym_sized_type_specifier] = STATE(884), + [sym_enum_specifier] = STATE(884), + [sym_struct_specifier] = STATE(884), + [sym_union_specifier] = STATE(884), + [sym__expression] = STATE(744), + [sym_comma_expression] = STATE(1430), + [sym_conditional_expression] = STATE(513), + [sym_assignment_expression] = STATE(513), + [sym_pointer_expression] = STATE(609), + [sym_unary_expression] = STATE(513), + [sym_binary_expression] = STATE(513), + [sym_update_expression] = STATE(513), + [sym_cast_expression] = STATE(513), + [sym_type_descriptor] = STATE(1346), + [sym_sizeof_expression] = STATE(513), + [sym_subscript_expression] = STATE(609), + [sym_call_expression] = STATE(609), + [sym_field_expression] = STATE(609), + [sym_compound_literal_expression] = STATE(513), + [sym_parenthesized_expression] = STATE(609), + [sym_char_literal] = STATE(513), + [sym_concatenated_string] = STATE(513), + [sym_string_literal] = STATE(427), + [sym_macro_type_specifier] = STATE(884), + [aux_sym_type_definition_repeat1] = STATE(857), + [aux_sym_sized_type_specifier_repeat1] = STATE(994), + [sym_identifier] = ACTIONS(1343), + [anon_sym_LPAREN2] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_TILDE] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(23), + [anon_sym_PLUS] = ACTIONS(23), + [anon_sym_STAR] = ACTIONS(25), + [anon_sym_AMP] = ACTIONS(25), + [anon_sym_const] = ACTIONS(45), + [anon_sym_volatile] = ACTIONS(45), + [anon_sym_restrict] = ACTIONS(45), + [anon_sym__Atomic] = ACTIONS(45), + [anon_sym_signed] = ACTIONS(1345), + [anon_sym_unsigned] = ACTIONS(1345), + [anon_sym_long] = ACTIONS(1345), + [anon_sym_short] = ACTIONS(1345), + [sym_primitive_type] = ACTIONS(49), + [anon_sym_enum] = ACTIONS(51), + [anon_sym_struct] = ACTIONS(53), + [anon_sym_union] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(79), + [anon_sym_PLUS_PLUS] = ACTIONS(79), + [anon_sym_sizeof] = ACTIONS(81), + [sym_number_literal] = ACTIONS(83), + [anon_sym_L_SQUOTE] = ACTIONS(85), + [anon_sym_u_SQUOTE] = ACTIONS(85), + [anon_sym_U_SQUOTE] = ACTIONS(85), + [anon_sym_u8_SQUOTE] = ACTIONS(85), + [anon_sym_SQUOTE] = ACTIONS(85), + [anon_sym_L_DQUOTE] = ACTIONS(87), + [anon_sym_u_DQUOTE] = ACTIONS(87), + [anon_sym_U_DQUOTE] = ACTIONS(87), + [anon_sym_u8_DQUOTE] = ACTIONS(87), + [anon_sym_DQUOTE] = ACTIONS(87), + [sym_true] = ACTIONS(89), + [sym_false] = ACTIONS(89), + [sym_null] = ACTIONS(89), + [sym_comment] = ACTIONS(3), + }, +}; + +static const uint16_t ts_small_parse_table[] = { + [0] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1349), 25, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_BANG, + anon_sym_TILDE, + anon_sym_STAR, + anon_sym_AMP, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_COLON, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + sym_number_literal, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + ACTIONS(1347), 38, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + anon_sym_if, + anon_sym_switch, + anon_sym_case, + anon_sym_default, + anon_sym_while, + anon_sym_do, + anon_sym_for, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_goto, + anon_sym_sizeof, + sym_true, + sym_false, + sym_null, + sym_identifier, + [71] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1353), 25, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_BANG, + anon_sym_TILDE, + anon_sym_STAR, + anon_sym_AMP, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_COLON, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + sym_number_literal, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + ACTIONS(1351), 38, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + anon_sym_if, + anon_sym_switch, + anon_sym_case, + anon_sym_default, + anon_sym_while, + anon_sym_do, + anon_sym_for, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_goto, + anon_sym_sizeof, + sym_true, + sym_false, + sym_null, + sym_identifier, + [142] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(1042), 1, + anon_sym_AMP, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1361), 1, + anon_sym_TILDE, + ACTIONS(1363), 1, + anon_sym_STAR, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(516), 1, + sym_initializer_list, + STATE(630), 1, + sym__expression, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1359), 3, + anon_sym_BANG, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + ACTIONS(882), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_GT, + anon_sym_LT, + anon_sym_DOT, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + ACTIONS(872), 14, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_DASH_GT, + [249] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1369), 1, + sym_identifier, + ACTIONS(1378), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1374), 17, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_if, + anon_sym_switch, + anon_sym_case, + anon_sym_default, + anon_sym_while, + anon_sym_do, + anon_sym_for, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_goto, + anon_sym_sizeof, + sym_true, + sym_false, + sym_null, + ACTIONS(1376), 19, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + ACTIONS(1372), 20, + anon_sym_LPAREN2, + anon_sym_BANG, + anon_sym_TILDE, + anon_sym_STAR, + anon_sym_AMP, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + sym_number_literal, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [321] = 30, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1381), 1, + sym_identifier, + ACTIONS(1383), 1, + anon_sym_DOT_DOT_DOT, + ACTIONS(1385), 1, + anon_sym_RPAREN, + ACTIONS(1387), 1, + anon_sym_LPAREN2, + ACTIONS(1389), 1, + anon_sym_STAR, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1393), 1, + anon_sym_LBRACK, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(946), 1, + sym__declaration_specifiers, + STATE(1095), 1, + sym__declarator, + STATE(1139), 1, + sym__abstract_declarator, + STATE(1141), 1, + sym_parameter_list, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1150), 2, + sym_variadic_parameter, + sym_parameter_declaration, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [440] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1401), 1, + aux_sym_preproc_if_token2, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1363), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(396), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [548] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1411), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1435), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(411), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [656] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1413), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1392), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(400), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [764] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1415), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1299), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(395), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [872] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1417), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1357), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(411), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [980] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1419), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1340), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(393), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [1088] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1421), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1290), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(411), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [1196] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1423), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1287), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(411), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [1304] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1425), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1370), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(411), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [1412] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1427), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1416), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(411), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [1520] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1429), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1433), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(388), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [1628] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1431), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1358), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(394), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [1736] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1433), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1373), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(391), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [1844] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1397), 1, + aux_sym_preproc_def_token1, + ACTIONS(1399), 1, + aux_sym_preproc_if_token1, + ACTIONS(1405), 1, + aux_sym_preproc_else_token1, + ACTIONS(1407), 1, + aux_sym_preproc_elif_token1, + ACTIONS(1409), 1, + sym_preproc_directive, + ACTIONS(1435), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1403), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + STATE(1336), 2, + sym_preproc_else_in_field_declaration_list, + sym_preproc_elif_in_field_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(411), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [1952] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 1, + anon_sym_LPAREN2, + ACTIONS(1447), 1, + anon_sym_STAR, + ACTIONS(1450), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1454), 1, + anon_sym_COLON, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LBRACK, + ACTIONS(1437), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + ACTIONS(1439), 13, + anon_sym_COMMA, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [2027] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 1, + anon_sym_LPAREN2, + ACTIONS(1447), 1, + anon_sym_STAR, + ACTIONS(1450), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1458), 1, + anon_sym_COLON, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LBRACK, + ACTIONS(1437), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + ACTIONS(1439), 13, + anon_sym_COMMA, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [2102] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 1, + anon_sym_LPAREN2, + ACTIONS(1447), 1, + anon_sym_STAR, + ACTIONS(1450), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1460), 1, + anon_sym_COLON, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LBRACK, + ACTIONS(1437), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + ACTIONS(1439), 13, + anon_sym_COMMA, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [2177] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 1, + anon_sym_LPAREN2, + ACTIONS(1447), 1, + anon_sym_STAR, + ACTIONS(1450), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1462), 1, + anon_sym_SEMI, + ACTIONS(1465), 1, + anon_sym_COLON, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1439), 12, + anon_sym_COMMA, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LBRACK, + ACTIONS(1437), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [2254] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 1, + anon_sym_LPAREN2, + ACTIONS(1447), 1, + anon_sym_STAR, + ACTIONS(1450), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1454), 1, + anon_sym_COLON, + ACTIONS(1462), 1, + anon_sym_SEMI, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1439), 12, + anon_sym_COMMA, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LBRACK, + ACTIONS(1437), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [2331] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 1, + anon_sym_LPAREN2, + ACTIONS(1447), 1, + anon_sym_STAR, + ACTIONS(1450), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1465), 1, + anon_sym_COLON, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LBRACK, + ACTIONS(1437), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + ACTIONS(1439), 13, + anon_sym_COMMA, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [2406] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 1, + anon_sym_LPAREN2, + ACTIONS(1447), 1, + anon_sym_STAR, + ACTIONS(1450), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1460), 1, + anon_sym_COLON, + ACTIONS(1462), 1, + anon_sym_SEMI, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1439), 12, + anon_sym_COMMA, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LBRACK, + ACTIONS(1437), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [2483] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 1, + anon_sym_LPAREN2, + ACTIONS(1447), 1, + anon_sym_STAR, + ACTIONS(1450), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1458), 1, + anon_sym_COLON, + ACTIONS(1462), 1, + anon_sym_SEMI, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1439), 12, + anon_sym_COMMA, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LBRACK, + ACTIONS(1437), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [2560] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 1, + anon_sym_LPAREN2, + ACTIONS(1447), 1, + anon_sym_STAR, + ACTIONS(1450), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LBRACK, + ACTIONS(1437), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + ACTIONS(1439), 13, + anon_sym_COMMA, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [2632] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1467), 1, + anon_sym_COMMA, + ACTIONS(1469), 1, + anon_sym_RBRACE, + ACTIONS(1471), 1, + anon_sym_LBRACK, + ACTIONS(1473), 1, + anon_sym_DOT, + STATE(427), 1, + sym_string_literal, + STATE(690), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(1149), 2, + sym_initializer_list, + sym_initializer_pair, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + STATE(1105), 3, + sym_subscript_designator, + sym_field_designator, + aux_sym_initializer_pair_repeat1, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [2732] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1475), 1, + sym_identifier, + ACTIONS(1478), 1, + aux_sym_preproc_def_token1, + ACTIONS(1481), 1, + aux_sym_preproc_if_token1, + ACTIONS(1489), 1, + sym_preproc_directive, + ACTIONS(1495), 1, + anon_sym___attribute__, + ACTIONS(1498), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1501), 1, + anon_sym___declspec, + ACTIONS(1510), 1, + sym_primitive_type, + ACTIONS(1513), 1, + anon_sym_enum, + ACTIONS(1516), 1, + anon_sym_struct, + ACTIONS(1519), 1, + anon_sym_union, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(997), 1, + sym__declaration_specifiers, + ACTIONS(1486), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + ACTIONS(1484), 3, + aux_sym_preproc_if_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + ACTIONS(1504), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(1507), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(1492), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(411), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [2832] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1471), 1, + anon_sym_LBRACK, + ACTIONS(1473), 1, + anon_sym_DOT, + ACTIONS(1522), 1, + anon_sym_RBRACE, + STATE(427), 1, + sym_string_literal, + STATE(751), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(1235), 2, + sym_initializer_list, + sym_initializer_pair, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + STATE(1105), 3, + sym_subscript_designator, + sym_field_designator, + aux_sym_initializer_pair_repeat1, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [2929] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1471), 1, + anon_sym_LBRACK, + ACTIONS(1473), 1, + anon_sym_DOT, + ACTIONS(1524), 1, + anon_sym_RBRACE, + STATE(427), 1, + sym_string_literal, + STATE(751), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(1235), 2, + sym_initializer_list, + sym_initializer_pair, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + STATE(1105), 3, + sym_subscript_designator, + sym_field_designator, + aux_sym_initializer_pair_repeat1, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [3026] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1475), 1, + sym_identifier, + ACTIONS(1495), 1, + anon_sym___attribute__, + ACTIONS(1498), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1501), 1, + anon_sym___declspec, + ACTIONS(1510), 1, + sym_primitive_type, + ACTIONS(1513), 1, + anon_sym_enum, + ACTIONS(1516), 1, + anon_sym_struct, + ACTIONS(1519), 1, + anon_sym_union, + ACTIONS(1526), 1, + aux_sym_preproc_def_token1, + ACTIONS(1529), 1, + aux_sym_preproc_if_token1, + ACTIONS(1535), 1, + sym_preproc_directive, + ACTIONS(1538), 1, + anon_sym_RBRACE, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(995), 1, + sym__declaration_specifiers, + ACTIONS(1532), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + ACTIONS(1504), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(1507), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(1492), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(414), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [3124] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1471), 1, + anon_sym_LBRACK, + ACTIONS(1473), 1, + anon_sym_DOT, + STATE(427), 1, + sym_string_literal, + STATE(751), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(1235), 2, + sym_initializer_list, + sym_initializer_pair, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + STATE(1105), 3, + sym_subscript_designator, + sym_field_designator, + aux_sym_initializer_pair_repeat1, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [3218] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1540), 1, + aux_sym_preproc_def_token1, + ACTIONS(1542), 1, + aux_sym_preproc_if_token1, + ACTIONS(1546), 1, + sym_preproc_directive, + ACTIONS(1548), 1, + anon_sym_RBRACE, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(995), 1, + sym__declaration_specifiers, + ACTIONS(1544), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(414), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [3316] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1550), 1, + aux_sym_preproc_def_token1, + ACTIONS(1552), 1, + aux_sym_preproc_if_token1, + ACTIONS(1554), 1, + aux_sym_preproc_if_token2, + ACTIONS(1558), 1, + sym_preproc_directive, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(996), 1, + sym__declaration_specifiers, + ACTIONS(1556), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(420), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [3414] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1540), 1, + aux_sym_preproc_def_token1, + ACTIONS(1542), 1, + aux_sym_preproc_if_token1, + ACTIONS(1546), 1, + sym_preproc_directive, + ACTIONS(1560), 1, + anon_sym_RBRACE, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(995), 1, + sym__declaration_specifiers, + ACTIONS(1544), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(416), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [3512] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1550), 1, + aux_sym_preproc_def_token1, + ACTIONS(1552), 1, + aux_sym_preproc_if_token1, + ACTIONS(1558), 1, + sym_preproc_directive, + ACTIONS(1562), 1, + aux_sym_preproc_if_token2, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(996), 1, + sym__declaration_specifiers, + ACTIONS(1556), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(417), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [3610] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1475), 1, + sym_identifier, + ACTIONS(1484), 1, + aux_sym_preproc_if_token2, + ACTIONS(1495), 1, + anon_sym___attribute__, + ACTIONS(1498), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1501), 1, + anon_sym___declspec, + ACTIONS(1510), 1, + sym_primitive_type, + ACTIONS(1513), 1, + anon_sym_enum, + ACTIONS(1516), 1, + anon_sym_struct, + ACTIONS(1519), 1, + anon_sym_union, + ACTIONS(1564), 1, + aux_sym_preproc_def_token1, + ACTIONS(1567), 1, + aux_sym_preproc_if_token1, + ACTIONS(1573), 1, + sym_preproc_directive, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(996), 1, + sym__declaration_specifiers, + ACTIONS(1570), 2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + ACTIONS(1504), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(1507), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(1492), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + STATE(420), 8, + sym_preproc_def, + sym_preproc_function_def, + sym_preproc_call, + sym_preproc_if_in_field_declaration_list, + sym_preproc_ifdef_in_field_declaration_list, + sym__field_declaration_list_item, + sym_field_declaration, + aux_sym_preproc_if_in_field_declaration_list_repeat1, + [3708] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1363), 1, + anon_sym_AMP, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1576), 1, + anon_sym_STAR, + ACTIONS(1578), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(753), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(647), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1580), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [3799] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1363), 1, + anon_sym_AMP, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1582), 1, + anon_sym_STAR, + ACTIONS(1584), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(755), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(647), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1580), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [3890] = 5, + ACTIONS(3), 1, + sym_comment, + STATE(423), 2, + sym_string_literal, + aux_sym_concatenated_string_repeat1, + ACTIONS(1590), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + ACTIONS(1588), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1586), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [3951] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1363), 1, + anon_sym_AMP, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1593), 1, + anon_sym_STAR, + ACTIONS(1595), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(796), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(432), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1580), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [4042] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1363), 1, + anon_sym_AMP, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1597), 1, + anon_sym_STAR, + ACTIONS(1599), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(783), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(421), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1580), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [4133] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1363), 1, + anon_sym_AMP, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1601), 1, + anon_sym_STAR, + ACTIONS(1603), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(780), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(422), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1580), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [4224] = 5, + ACTIONS(3), 1, + sym_comment, + STATE(433), 2, + sym_string_literal, + aux_sym_concatenated_string_repeat1, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + ACTIONS(1445), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1439), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [4285] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1363), 1, + anon_sym_AMP, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1605), 1, + anon_sym_STAR, + ACTIONS(1607), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(826), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(429), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1580), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [4376] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1363), 1, + anon_sym_AMP, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1609), 1, + anon_sym_STAR, + ACTIONS(1611), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(777), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(647), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1580), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [4467] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1363), 1, + anon_sym_AMP, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1613), 1, + anon_sym_STAR, + ACTIONS(1615), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(812), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(647), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1580), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [4558] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1363), 1, + anon_sym_AMP, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1617), 1, + anon_sym_STAR, + ACTIONS(1619), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(781), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(430), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1580), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [4649] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1363), 1, + anon_sym_AMP, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1621), 1, + anon_sym_STAR, + ACTIONS(1623), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(803), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + STATE(647), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(1580), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [4740] = 5, + ACTIONS(3), 1, + sym_comment, + STATE(423), 2, + sym_string_literal, + aux_sym_concatenated_string_repeat1, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + ACTIONS(1627), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1625), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [4801] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1383), 1, + anon_sym_DOT_DOT_DOT, + ACTIONS(1385), 1, + anon_sym_RPAREN, + ACTIONS(1393), 1, + anon_sym_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1629), 1, + anon_sym_LPAREN2, + ACTIONS(1631), 1, + anon_sym_STAR, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(946), 1, + sym__declaration_specifiers, + STATE(1139), 1, + sym__abstract_declarator, + STATE(1141), 1, + sym_parameter_list, + STATE(1150), 2, + sym_variadic_parameter, + sym_parameter_declaration, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [4904] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1633), 1, + anon_sym_LBRACE, + STATE(642), 1, + sym_ms_call_modifier, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1004), 1, + sym__declaration_specifiers, + STATE(326), 3, + sym_function_definition, + sym_declaration, + sym_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + ACTIONS(39), 6, + anon_sym___cdecl, + anon_sym___clrcall, + anon_sym___stdcall, + anon_sym___fastcall, + anon_sym___thiscall, + anon_sym___vectorcall, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [4995] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1637), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1635), 34, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [5050] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1639), 1, + anon_sym_LBRACE, + STATE(643), 1, + sym_ms_call_modifier, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1008), 1, + sym__declaration_specifiers, + STATE(115), 3, + sym_function_definition, + sym_declaration, + sym_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + ACTIONS(39), 6, + anon_sym___cdecl, + anon_sym___clrcall, + anon_sym___stdcall, + anon_sym___fastcall, + anon_sym___thiscall, + anon_sym___vectorcall, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [5141] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1641), 1, + anon_sym_LBRACE, + STATE(644), 1, + sym_ms_call_modifier, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1012), 1, + sym__declaration_specifiers, + STATE(319), 3, + sym_function_definition, + sym_declaration, + sym_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + ACTIONS(39), 6, + anon_sym___cdecl, + anon_sym___clrcall, + anon_sym___stdcall, + anon_sym___fastcall, + anon_sym___thiscall, + anon_sym___vectorcall, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [5232] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + ACTIONS(1643), 1, + anon_sym_LBRACE, + STATE(641), 1, + sym_ms_call_modifier, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1003), 1, + sym__declaration_specifiers, + STATE(370), 3, + sym_function_definition, + sym_declaration, + sym_declaration_list, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + ACTIONS(39), 6, + anon_sym___cdecl, + anon_sym___clrcall, + anon_sym___stdcall, + anon_sym___fastcall, + anon_sym___thiscall, + anon_sym___vectorcall, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [5323] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1647), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1645), 34, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [5378] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1649), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(726), 1, + sym__expression, + STATE(1347), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [5460] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1651), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(719), 1, + sym__expression, + STATE(1281), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [5542] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(506), 1, + sym__expression, + STATE(516), 1, + sym_initializer_list, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [5624] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1653), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(718), 1, + sym__expression, + STATE(1313), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [5706] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1655), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(716), 1, + sym__expression, + STATE(1348), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [5788] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1657), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(713), 1, + sym__expression, + STATE(1351), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [5870] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1659), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(701), 1, + sym__expression, + STATE(1349), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [5952] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(516), 1, + sym_initializer_list, + STATE(630), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6034] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1661), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(733), 1, + sym__expression, + STATE(1314), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6116] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1663), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(736), 1, + sym__expression, + STATE(1288), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6198] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1665), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(735), 1, + sym__expression, + STATE(1316), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6280] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1667), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(700), 1, + sym__expression, + STATE(1323), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6362] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1669), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(694), 1, + sym__expression, + STATE(1388), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6444] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1671), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(722), 1, + sym__expression, + STATE(1307), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6526] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1673), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(749), 1, + sym__expression, + STATE(1296), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6608] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1675), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(731), 1, + sym__expression, + STATE(1417), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6690] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1677), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(734), 1, + sym__expression, + STATE(1285), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6772] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1679), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(708), 1, + sym__expression, + STATE(1382), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6854] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1681), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(725), 1, + sym__expression, + STATE(1283), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [6936] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1683), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(738), 1, + sym__expression, + STATE(1317), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7018] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(728), 1, + sym__expression, + STATE(1229), 1, + sym_initializer_list, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7100] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1685), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(695), 1, + sym__expression, + STATE(1284), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7182] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1687), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(727), 1, + sym__expression, + STATE(1381), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7264] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1689), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(699), 1, + sym__expression, + STATE(1413), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7346] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1691), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(745), 1, + sym__expression, + STATE(1355), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7428] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1693), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(698), 1, + sym__expression, + STATE(1277), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7510] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1695), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(693), 1, + sym__expression, + STATE(1275), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7592] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1697), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(746), 1, + sym__expression, + STATE(1428), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7674] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(516), 1, + sym_initializer_list, + STATE(630), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7756] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1699), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(721), 1, + sym__expression, + STATE(1420), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7838] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1701), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(711), 1, + sym__expression, + STATE(1385), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [7920] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1703), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(702), 1, + sym__expression, + STATE(1333), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8002] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1705), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(739), 1, + sym__expression, + STATE(1324), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8084] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1707), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(710), 1, + sym__expression, + STATE(1325), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8166] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1709), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(741), 1, + sym__expression, + STATE(1360), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8248] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(506), 1, + sym__expression, + STATE(516), 1, + sym_initializer_list, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8330] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1711), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(732), 1, + sym__expression, + STATE(1359), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8412] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1713), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(714), 1, + sym__expression, + STATE(1393), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8494] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1715), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(715), 1, + sym__expression, + STATE(1395), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8576] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1717), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(747), 1, + sym__expression, + STATE(1398), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8658] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1719), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(724), 1, + sym__expression, + STATE(1415), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8740] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1721), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(720), 1, + sym__expression, + STATE(1341), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8822] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1723), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(696), 1, + sym__expression, + STATE(1280), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8904] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(742), 1, + sym__expression, + STATE(1236), 1, + sym_initializer_list, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [8986] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1725), 1, + anon_sym_SEMI, + STATE(427), 1, + sym_string_literal, + STATE(704), 1, + sym__expression, + STATE(1426), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9068] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1727), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(691), 1, + sym__expression, + STATE(1345), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9150] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1729), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9229] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1733), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1731), 30, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [9280] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1735), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9359] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1737), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9438] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(689), 1, + sym__expression, + STATE(1217), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9517] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1739), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9596] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1741), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(664), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9675] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1743), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9754] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1745), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9833] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(744), 1, + sym__expression, + STATE(1430), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9912] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(705), 1, + sym__expression, + STATE(1273), 1, + sym_comma_expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [9991] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1747), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10070] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1749), 1, + anon_sym_RPAREN, + STATE(427), 1, + sym_string_literal, + STATE(678), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10149] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1751), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10228] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1753), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10307] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1755), 1, + anon_sym_RBRACK, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10386] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(756), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10462] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(619), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10538] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(529), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10614] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1761), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1757), 22, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [10674] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(762), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10750] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(522), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10826] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(807), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10902] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(806), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [10978] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(529), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [11054] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + ACTIONS(1769), 1, + anon_sym_LPAREN2, + STATE(427), 1, + sym_string_literal, + STATE(659), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [11130] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1445), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1439), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [11180] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(805), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [11256] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(706), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [11332] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1773), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1771), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [11382] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(825), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [11458] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(802), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [11534] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 1, + anon_sym_LPAREN2, + ACTIONS(1447), 1, + anon_sym_STAR, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1462), 2, + anon_sym_RPAREN, + anon_sym_LBRACK, + ACTIONS(1450), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 11, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1439), 12, + anon_sym_COMMA, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [11596] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1367), 1, + anon_sym_sizeof, + ACTIONS(1775), 1, + anon_sym_LPAREN2, + STATE(427), 1, + sym_string_literal, + STATE(754), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [11672] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(627), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [11748] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1779), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1777), 24, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + [11806] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1783), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1781), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACK_RBRACK, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [11856] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1787), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1785), 22, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [11916] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(621), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [11992] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(622), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12068] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1445), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1439), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [12118] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(752), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12194] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1791), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1789), 22, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [12254] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(649), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12330] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(760), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12406] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(582), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12482] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(657), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12558] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(656), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12634] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1795), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1793), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [12684] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(655), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12760] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(654), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12836] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(653), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12912] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(648), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [12988] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(652), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [13064] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(651), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [13140] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(757), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [13216] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(650), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [13292] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(808), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [13368] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1799), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1797), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [13418] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1803), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1801), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [13468] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1807), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1805), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [13518] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(635), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [13594] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1811), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1809), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACK_RBRACK, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [13644] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(759), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [13720] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1819), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1821), 1, + anon_sym_AMP_AMP, + ACTIONS(1823), 1, + anon_sym_PIPE, + ACTIONS(1825), 1, + anon_sym_CARET, + ACTIONS(1827), 1, + anon_sym_AMP, + ACTIONS(1837), 1, + anon_sym_EQ, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1829), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1831), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1833), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1835), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1813), 16, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [13802] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(820), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [13878] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(723), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [13954] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(522), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14030] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(771), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14106] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(801), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14182] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(824), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14258] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(827), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14334] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(524), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14410] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(594), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14486] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(658), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14562] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1046), 1, + anon_sym_sizeof, + ACTIONS(1839), 1, + anon_sym_LPAREN2, + STATE(427), 1, + sym_string_literal, + STATE(625), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14638] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(627), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14714] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(798), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14790] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(595), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14866] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(596), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [14942] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(622), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15018] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(597), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15094] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(620), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15170] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1843), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1841), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [15220] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(632), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15296] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(631), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15372] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(598), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15448] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(629), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15524] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(628), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15600] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(599), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15676] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(888), 1, + anon_sym_sizeof, + ACTIONS(1845), 1, + anon_sym_LPAREN2, + STATE(427), 1, + sym_string_literal, + STATE(606), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15752] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(626), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15828] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(624), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [15904] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1849), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1847), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [15954] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1853), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1851), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACK_RBRACK, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [16004] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1857), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1855), 22, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [16064] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1819), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1821), 1, + anon_sym_AMP_AMP, + ACTIONS(1823), 1, + anon_sym_PIPE, + ACTIONS(1825), 1, + anon_sym_CARET, + ACTIONS(1827), 1, + anon_sym_AMP, + ACTIONS(1861), 1, + anon_sym_EQ, + ACTIONS(1863), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1829), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1831), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1833), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1835), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1859), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [16148] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(600), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [16224] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1867), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1865), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [16274] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1871), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1869), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [16324] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(623), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [16400] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(633), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [16476] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(583), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [16552] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(601), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [16628] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(788), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [16704] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(582), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [16780] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(874), 1, + anon_sym_LPAREN2, + ACTIONS(888), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(604), 1, + sym__expression, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(876), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(878), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(886), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [16856] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 8, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1855), 22, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [16920] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1835), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 6, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_EQ, + ACTIONS(1855), 22, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [16986] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1831), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1833), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1835), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 4, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ, + ACTIONS(1855), 20, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [17056] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1829), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1831), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1833), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1835), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 4, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ, + ACTIONS(1855), 18, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [17128] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1827), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1829), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1831), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1833), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1835), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 3, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_EQ, + ACTIONS(1855), 18, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [17202] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1825), 1, + anon_sym_CARET, + ACTIONS(1827), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1829), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1831), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1833), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1835), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1857), 2, + anon_sym_PIPE, + anon_sym_EQ, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1855), 18, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [17278] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1823), 1, + anon_sym_PIPE, + ACTIONS(1825), 1, + anon_sym_CARET, + ACTIONS(1827), 1, + anon_sym_AMP, + ACTIONS(1857), 1, + anon_sym_EQ, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1829), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1831), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1833), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1835), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1855), 18, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [17356] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1821), 1, + anon_sym_AMP_AMP, + ACTIONS(1823), 1, + anon_sym_PIPE, + ACTIONS(1825), 1, + anon_sym_CARET, + ACTIONS(1827), 1, + anon_sym_AMP, + ACTIONS(1857), 1, + anon_sym_EQ, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1829), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1831), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1833), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1835), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1855), 17, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [17436] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, + anon_sym_LPAREN2, + ACTIONS(81), 1, + anon_sym_sizeof, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1341), 1, + sym_identifier, + STATE(427), 1, + sym_string_literal, + STATE(828), 1, + sym__expression, + ACTIONS(21), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(23), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(25), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(79), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(609), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [17512] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(870), 1, + sym_identifier, + ACTIONS(1036), 1, + anon_sym_LPAREN2, + ACTIONS(1046), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(635), 1, + sym__expression, + ACTIONS(1038), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1040), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1044), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(527), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [17588] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 10, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1855), 22, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [17650] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1875), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1873), 29, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [17700] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1815), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1835), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1817), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1879), 6, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_EQ, + ACTIONS(1877), 22, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [17766] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(804), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [17842] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym_number_literal, + ACTIONS(1355), 1, + sym_identifier, + ACTIONS(1357), 1, + anon_sym_LPAREN2, + ACTIONS(1367), 1, + anon_sym_sizeof, + STATE(427), 1, + sym_string_literal, + STATE(810), 1, + sym__expression, + ACTIONS(1359), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1361), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(1363), 2, + anon_sym_STAR, + anon_sym_AMP, + ACTIONS(1365), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(89), 3, + sym_true, + sym_false, + sym_null, + ACTIONS(85), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + ACTIONS(87), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + STATE(637), 5, + sym_pointer_expression, + sym_subscript_expression, + sym_call_expression, + sym_field_expression, + sym_parenthesized_expression, + STATE(513), 10, + sym_conditional_expression, + sym_assignment_expression, + sym_unary_expression, + sym_binary_expression, + sym_update_expression, + sym_cast_expression, + sym_sizeof_expression, + sym_compound_literal_expression, + sym_char_literal, + sym_concatenated_string, + [17918] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1439), 18, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [17971] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1383), 1, + anon_sym_DOT_DOT_DOT, + ACTIONS(1385), 1, + anon_sym_RPAREN, + ACTIONS(1395), 1, + sym_identifier, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(946), 1, + sym__declaration_specifiers, + STATE(1150), 2, + sym_variadic_parameter, + sym_parameter_declaration, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [18053] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1351), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_if, + anon_sym_switch, + anon_sym_case, + anon_sym_default, + anon_sym_while, + anon_sym_do, + anon_sym_for, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_goto, + anon_sym_sizeof, + sym_true, + sym_false, + sym_null, + sym_identifier, + ACTIONS(1353), 21, + anon_sym_LPAREN2, + anon_sym_BANG, + anon_sym_TILDE, + anon_sym_STAR, + anon_sym_AMP, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + sym_number_literal, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [18100] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1460), 1, + anon_sym_COLON, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1439), 15, + anon_sym_COMMA, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_LBRACK, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [18153] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1733), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_if, + anon_sym_switch, + anon_sym_case, + anon_sym_default, + anon_sym_while, + anon_sym_do, + anon_sym_for, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_goto, + anon_sym_sizeof, + sym_true, + sym_false, + sym_null, + sym_identifier, + ACTIONS(1731), 21, + anon_sym_LPAREN2, + anon_sym_BANG, + anon_sym_TILDE, + anon_sym_STAR, + anon_sym_AMP, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + sym_number_literal, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [18200] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1347), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_if, + anon_sym_switch, + anon_sym_case, + anon_sym_default, + anon_sym_while, + anon_sym_do, + anon_sym_for, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_goto, + anon_sym_sizeof, + sym_true, + sym_false, + sym_null, + sym_identifier, + ACTIONS(1349), 21, + anon_sym_LPAREN2, + anon_sym_BANG, + anon_sym_TILDE, + anon_sym_STAR, + anon_sym_AMP, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + sym_number_literal, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [18247] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1458), 1, + anon_sym_COLON, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1439), 15, + anon_sym_COMMA, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_LBRACK, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [18300] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1454), 1, + anon_sym_COLON, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1439), 15, + anon_sym_COMMA, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_LBRACK, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [18353] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1452), 1, + anon_sym_EQ, + ACTIONS(1465), 1, + anon_sym_COLON, + ACTIONS(1456), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1439), 15, + anon_sym_COMMA, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_LBRACK, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [18406] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1383), 1, + anon_sym_DOT_DOT_DOT, + ACTIONS(1395), 1, + sym_identifier, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(946), 1, + sym__declaration_specifiers, + STATE(1224), 2, + sym_variadic_parameter, + sym_parameter_declaration, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [18485] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(1887), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1889), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1891), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1893), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1895), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1857), 3, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_EQ, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1855), 14, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [18555] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1861), 1, + anon_sym_EQ, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(1887), 1, + anon_sym_AMP, + ACTIONS(1897), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1899), 1, + anon_sym_AMP_AMP, + ACTIONS(1901), 1, + anon_sym_PIPE, + ACTIONS(1903), 1, + anon_sym_CARET, + ACTIONS(1905), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1889), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1891), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1893), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1895), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1859), 11, + anon_sym_RBRACK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [18635] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1787), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1785), 18, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [18691] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1779), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1777), 20, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + [18745] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1857), 1, + anon_sym_EQ, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(1887), 1, + anon_sym_AMP, + ACTIONS(1899), 1, + anon_sym_AMP_AMP, + ACTIONS(1901), 1, + anon_sym_PIPE, + ACTIONS(1903), 1, + anon_sym_CARET, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1889), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1891), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1893), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1895), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1855), 13, + anon_sym_PIPE_PIPE, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [18821] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1857), 1, + anon_sym_EQ, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(1887), 1, + anon_sym_AMP, + ACTIONS(1901), 1, + anon_sym_PIPE, + ACTIONS(1903), 1, + anon_sym_CARET, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1889), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1891), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1893), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1895), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1855), 14, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [18895] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1895), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1879), 6, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_EQ, + ACTIONS(1877), 18, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [18957] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(1887), 1, + anon_sym_AMP, + ACTIONS(1903), 1, + anon_sym_CARET, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1857), 2, + anon_sym_PIPE, + anon_sym_EQ, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1889), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1891), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1893), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1895), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1855), 14, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [19029] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1791), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1789), 18, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [19085] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1889), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1891), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1893), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1895), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 4, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ, + ACTIONS(1855), 14, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [19153] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1891), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1893), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1895), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 4, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ, + ACTIONS(1855), 16, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [19219] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1761), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1757), 18, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [19275] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1895), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 6, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_EQ, + ACTIONS(1855), 18, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [19337] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 8, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1855), 18, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [19397] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1857), 10, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1855), 18, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [19455] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1837), 1, + anon_sym_EQ, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(1887), 1, + anon_sym_AMP, + ACTIONS(1897), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1899), 1, + anon_sym_AMP_AMP, + ACTIONS(1901), 1, + anon_sym_PIPE, + ACTIONS(1903), 1, + anon_sym_CARET, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1883), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1889), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1891), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1893), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1895), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1885), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(1813), 12, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [19533] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1857), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1855), 18, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [19589] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1853), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1851), 24, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [19634] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1907), 1, + anon_sym_EQ, + ACTIONS(1909), 10, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1445), 12, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1439), 14, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [19683] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1783), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1781), 24, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [19728] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1811), 13, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_EQ, + ACTIONS(1809), 24, + anon_sym_LPAREN2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_QMARK, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + anon_sym_DOT, + anon_sym_DASH_GT, + [19773] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1918), 1, + anon_sym___attribute__, + ACTIONS(1921), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1924), 1, + anon_sym___declspec, + ACTIONS(1927), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(1915), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + ACTIONS(1913), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_COLON, + STATE(640), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + ACTIONS(1911), 11, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [19829] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1018), 1, + sym__declaration_specifiers, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [19901] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1031), 1, + sym__declaration_specifiers, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [19973] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1014), 1, + sym__declaration_specifiers, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [20045] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + STATE(707), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1029), 1, + sym__declaration_specifiers, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(645), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [20117] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1395), 1, + sym_identifier, + STATE(743), 1, + sym__type_specifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + STATE(640), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [20186] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1387), 1, + anon_sym_LPAREN2, + ACTIONS(1389), 1, + anon_sym_STAR, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(1938), 1, + anon_sym_LBRACK, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1017), 1, + sym__declarator, + STATE(1108), 1, + sym__abstract_declarator, + STATE(1141), 1, + sym_parameter_list, + STATE(1407), 1, + sym_ms_based_modifier, + ACTIONS(1932), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(831), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + STATE(837), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [20260] = 5, + ACTIONS(3), 1, + sym_comment, + STATE(647), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(1944), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(1940), 7, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_sizeof, + sym_true, + sym_false, + sym_null, + sym_identifier, + ACTIONS(1942), 19, + anon_sym_LPAREN2, + anon_sym_BANG, + anon_sym_TILDE, + anon_sym_STAR, + anon_sym_AMP, + anon_sym_RBRACK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + sym_number_literal, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [20304] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1857), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1855), 11, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [20365] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1813), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [20436] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1859), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + [20509] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1857), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1855), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [20564] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1857), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1855), 13, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [20621] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1857), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1855), 9, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [20684] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1857), 1, + anon_sym_PIPE, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1967), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1855), 9, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [20749] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1857), 1, + anon_sym_PIPE, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1855), 8, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [20816] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1855), 8, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [20883] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1855), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [20952] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1857), 6, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1855), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [21005] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1879), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1877), 13, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_SEMI, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_QMARK, + [21062] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1975), 9, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_COLON, + ACTIONS(1973), 22, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21101] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1979), 8, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_COLON, + ACTIONS(1977), 22, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21139] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1981), 11, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_sizeof, + sym_true, + sym_false, + sym_null, + sym_identifier, + ACTIONS(1983), 19, + anon_sym_LPAREN2, + anon_sym_BANG, + anon_sym_TILDE, + anon_sym_STAR, + anon_sym_AMP, + anon_sym_RBRACK, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + sym_number_literal, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [21177] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1054), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1052), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21214] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(1985), 1, + anon_sym_COMMA, + ACTIONS(1987), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + STATE(1184), 1, + aux_sym_argument_list_repeat1, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [21289] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1353), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(1351), 22, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21326] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1991), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1989), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21363] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1995), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1993), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21400] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1999), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1997), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21437] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1050), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1048), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21474] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1078), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1076), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21511] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1090), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1088), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21548] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1070), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1068), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21585] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1058), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1056), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21622] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2003), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2001), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21659] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2007), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2005), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21696] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2011), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2009), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21733] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2015), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2013), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21770] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(1985), 1, + anon_sym_COMMA, + ACTIONS(2017), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + STATE(1164), 1, + aux_sym_argument_list_repeat1, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [21845] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2021), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2019), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21882] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2025), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2023), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21919] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1349), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(1347), 22, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21956] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2029), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2027), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [21993] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2033), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2031), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [22030] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2037), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2035), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [22067] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2041), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2039), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [22104] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2045), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2043), 22, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [22141] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1983), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(1981), 22, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [22178] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2049), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2047), 28, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + aux_sym_preproc_else_token1, + aux_sym_preproc_elif_token1, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [22215] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2053), 2, + anon_sym_RPAREN, + anon_sym_SEMI, + [22288] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2055), 1, + anon_sym_COMMA, + ACTIONS(2057), 1, + anon_sym_RBRACE, + STATE(546), 1, + sym_argument_list, + STATE(1167), 1, + aux_sym_initializer_list_repeat1, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [22363] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2059), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [22435] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1635), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + ACTIONS(1637), 26, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___cdecl, + anon_sym___clrcall, + anon_sym___stdcall, + anon_sym___fastcall, + anon_sym___thiscall, + anon_sym___vectorcall, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [22471] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2061), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [22543] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2063), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [22615] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2065), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [22687] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2067), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [22759] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2069), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [22831] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2071), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [22903] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2073), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [22975] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2075), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23047] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2077), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23119] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2079), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23191] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2081), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23263] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2083), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23335] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2085), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23407] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2087), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [23477] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2089), 3, + anon_sym___based, + anon_sym_LBRACK, + sym_identifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + ACTIONS(2091), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_COLON, + STATE(712), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [23525] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2093), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23597] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2095), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23669] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2097), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23741] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2099), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23813] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2101), 3, + anon_sym___based, + anon_sym_LBRACK, + sym_identifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + ACTIONS(2103), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_COLON, + STATE(640), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [23861] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2105), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [23933] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2107), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24005] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2109), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24077] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2111), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24149] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2113), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24221] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2115), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24293] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2117), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24365] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2119), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24437] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2121), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24509] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2123), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24581] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2125), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [24651] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2127), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24723] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2129), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24795] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2131), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24867] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2133), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [24939] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2135), 2, + anon_sym_COMMA, + anon_sym_SEMI, + [25009] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2137), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25081] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1645), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + ACTIONS(1647), 26, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___cdecl, + anon_sym___clrcall, + anon_sym___stdcall, + anon_sym___fastcall, + anon_sym___thiscall, + anon_sym___vectorcall, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [25117] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2139), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25189] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2141), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25261] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2143), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25333] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2145), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25405] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2147), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25477] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2149), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25549] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2151), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25621] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2153), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25693] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2155), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25765] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2157), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25837] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2159), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [25909] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2161), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [25979] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2163), 3, + anon_sym___based, + anon_sym_LBRACK, + sym_identifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + ACTIONS(2165), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_COLON, + STATE(750), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [26027] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2167), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [26099] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2169), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [26171] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2171), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [26243] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2173), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [26315] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2175), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [26387] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2051), 1, + anon_sym_COMMA, + ACTIONS(2177), 1, + anon_sym_RPAREN, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [26459] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2179), 3, + anon_sym___based, + anon_sym_LBRACK, + sym_identifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + ACTIONS(2181), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_COLON, + STATE(640), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [26507] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2183), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [26577] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2185), 1, + anon_sym_COLON, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [26646] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1753), 1, + anon_sym_RBRACK, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [26715] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1879), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1877), 9, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + [26768] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1735), 1, + anon_sym_RBRACK, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [26837] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2213), 1, + anon_sym_COLON, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [26906] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + ACTIONS(2215), 1, + anon_sym_RBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [26975] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2217), 1, + sym_identifier, + ACTIONS(2226), 1, + sym_primitive_type, + STATE(818), 1, + aux_sym_sized_type_specifier_repeat1, + ACTIONS(2224), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(2220), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2222), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + [27018] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2228), 1, + anon_sym_COLON, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [27087] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2230), 1, + anon_sym_COLON, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [27156] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1995), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(1993), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27191] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2232), 1, + anon_sym_COLON, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [27260] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2045), 1, + anon_sym_LBRACK_LBRACK, + STATE(435), 1, + sym_string_literal, + ACTIONS(2234), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + ACTIONS(2043), 20, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27299] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1050), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1048), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27334] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1078), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1076), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27369] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1090), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1088), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27404] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1070), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1068), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27439] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1058), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1056), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27474] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1054), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1052), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27509] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1991), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(1989), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27544] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2236), 1, + anon_sym_SEMI, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [27613] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1058), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(1056), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27648] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2029), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2027), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27683] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2037), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2035), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27718] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2003), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2001), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27753] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2041), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2039), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27788] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1747), 1, + anon_sym_RBRACK, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [27857] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2049), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2047), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27892] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1070), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(1068), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [27927] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1745), 1, + anon_sym_RBRACK, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [27996] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1743), 1, + anon_sym_RBRACK, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [28065] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2029), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2027), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28100] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1739), 1, + anon_sym_RBRACK, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [28169] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2045), 1, + anon_sym_LBRACK_LBRACK, + STATE(439), 1, + sym_string_literal, + ACTIONS(2234), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + ACTIONS(2043), 20, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28208] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2011), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2009), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28243] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2033), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2031), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28278] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2045), 1, + anon_sym_LBRACK_LBRACK, + STATE(437), 1, + sym_string_literal, + ACTIONS(2234), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + ACTIONS(2043), 20, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28317] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1859), 1, + anon_sym_RBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [28386] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2025), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2023), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28421] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2021), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2019), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28456] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2015), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2013), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28491] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1090), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(1088), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28526] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2011), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2009), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28561] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1078), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(1076), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28596] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2007), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2005), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28631] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1729), 1, + anon_sym_RBRACK, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [28700] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1054), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(1052), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28735] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1813), 2, + anon_sym_RBRACK, + anon_sym_QMARK, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [28802] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1995), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1993), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28837] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1991), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1989), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [28872] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1857), 6, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1855), 11, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_RBRACK, + anon_sym_QMARK, + [28921] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1855), 3, + anon_sym_PIPE_PIPE, + anon_sym_RBRACK, + anon_sym_QMARK, + [28986] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1751), 1, + anon_sym_RBRACK, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [29055] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + ACTIONS(2238), 1, + anon_sym_RBRACK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [29124] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1855), 4, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_RBRACK, + anon_sym_QMARK, + [29187] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1857), 1, + anon_sym_PIPE, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1855), 4, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_RBRACK, + anon_sym_QMARK, + [29250] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1857), 1, + anon_sym_PIPE, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2201), 1, + anon_sym_AMP, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1855), 5, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_RBRACK, + anon_sym_QMARK, + [29311] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1857), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1855), 5, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_RBRACK, + anon_sym_QMARK, + [29370] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1050), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(1048), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29405] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1857), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1855), 7, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + [29462] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2025), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2023), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29497] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1755), 1, + anon_sym_RBRACK, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [29566] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2003), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2001), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29601] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2007), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2005), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29636] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2045), 1, + anon_sym_LBRACK_LBRACK, + STATE(438), 1, + sym_string_literal, + ACTIONS(2234), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + ACTIONS(2043), 20, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29675] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2033), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2031), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29710] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1999), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(1997), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29745] = 5, + ACTIONS(3), 1, + sym_comment, + STATE(818), 1, + aux_sym_sized_type_specifier_repeat1, + ACTIONS(2244), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + ACTIONS(2242), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2240), 15, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_primitive_type, + sym_identifier, + [29784] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2049), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2047), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29819] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1857), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1855), 9, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_RBRACK, + anon_sym_QMARK, + [29872] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2041), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2039), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29907] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2021), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2019), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29942] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2037), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2035), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [29977] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2247), 1, + anon_sym_COLON, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [30046] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1857), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1855), 11, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_RBRACK, + anon_sym_QMARK, + [30097] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1737), 1, + anon_sym_RBRACK, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_LPAREN2, + ACTIONS(2191), 1, + anon_sym_SLASH, + ACTIONS(2193), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2195), 1, + anon_sym_AMP_AMP, + ACTIONS(2197), 1, + anon_sym_PIPE, + ACTIONS(2199), 1, + anon_sym_CARET, + ACTIONS(2201), 1, + anon_sym_AMP, + ACTIONS(2211), 1, + anon_sym_QMARK, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(2187), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2189), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2203), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2205), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2207), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2209), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [30166] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2249), 1, + anon_sym_COLON, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [30235] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(1763), 1, + anon_sym_LBRACK, + ACTIONS(1951), 1, + anon_sym_SLASH, + ACTIONS(1959), 1, + anon_sym_PIPE_PIPE, + ACTIONS(1961), 1, + anon_sym_AMP_AMP, + ACTIONS(1963), 1, + anon_sym_PIPE, + ACTIONS(1965), 1, + anon_sym_CARET, + ACTIONS(1967), 1, + anon_sym_AMP, + ACTIONS(1971), 1, + anon_sym_QMARK, + ACTIONS(2251), 1, + anon_sym_COLON, + STATE(546), 1, + sym_argument_list, + ACTIONS(1765), 2, + anon_sym_DASH_DASH, + anon_sym_PLUS_PLUS, + ACTIONS(1767), 2, + anon_sym_DOT, + anon_sym_DASH_GT, + ACTIONS(1947), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1949), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(1953), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1955), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(1957), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(1969), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [30304] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1999), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(1997), 26, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_if_token2, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [30339] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2015), 2, + anon_sym_LBRACK_LBRACK, + anon_sym_RBRACE, + ACTIONS(2013), 25, + aux_sym_preproc_def_token1, + aux_sym_preproc_if_token1, + aux_sym_preproc_ifdef_token1, + aux_sym_preproc_ifdef_token2, + sym_preproc_directive, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [30374] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1387), 1, + anon_sym_LPAREN2, + ACTIONS(1389), 1, + anon_sym_STAR, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(1938), 1, + anon_sym_LBRACK, + STATE(1020), 1, + sym__declarator, + STATE(1107), 1, + sym__abstract_declarator, + STATE(1141), 1, + sym_parameter_list, + STATE(1407), 1, + sym_ms_based_modifier, + ACTIONS(2253), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [30432] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1048), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(984), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + STATE(992), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [30487] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1061), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(836), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + STATE(978), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [30542] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1044), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(842), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + STATE(981), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [30597] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1070), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(840), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + STATE(980), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [30652] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1070), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(980), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + STATE(992), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [30707] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1020), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(983), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + STATE(992), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [30762] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1020), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(841), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + STATE(983), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [30817] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1017), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(837), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + STATE(979), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [30872] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1059), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(986), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + STATE(992), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [30927] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1015), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(985), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + STATE(992), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [30982] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1052), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(982), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + STATE(992), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [31037] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + STATE(1052), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + ACTIONS(1936), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(832), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + STATE(982), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(1934), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [31092] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2271), 1, + anon_sym_SEMI, + ACTIONS(2089), 2, + anon_sym___based, + sym_identifier, + ACTIONS(2091), 2, + anon_sym_LPAREN2, + anon_sym_STAR, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(712), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [31138] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2273), 1, + anon_sym_SEMI, + ACTIONS(2089), 2, + anon_sym___based, + sym_identifier, + ACTIONS(2091), 2, + anon_sym_LPAREN2, + anon_sym_STAR, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(712), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [31184] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2275), 1, + anon_sym_SEMI, + ACTIONS(2089), 2, + anon_sym___based, + sym_identifier, + ACTIONS(2091), 2, + anon_sym_LPAREN2, + anon_sym_STAR, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(712), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [31230] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym___attribute__, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(862), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2277), 1, + anon_sym_SEMI, + ACTIONS(2089), 2, + anon_sym___based, + sym_identifier, + ACTIONS(2091), 2, + anon_sym_LPAREN2, + anon_sym_STAR, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(43), 5, + anon_sym_extern, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + STATE(712), 7, + sym__declaration_modifiers, + sym_attribute_specifier, + sym_attribute_declaration, + sym_ms_declspec_modifier, + sym_storage_class_specifier, + sym_type_qualifier, + aux_sym__declaration_specifiers_repeat1, + [31276] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2283), 1, + anon_sym_LBRACE, + STATE(871), 1, + sym_field_declaration_list, + ACTIONS(2281), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2279), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [31311] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2289), 1, + anon_sym_LBRACE, + STATE(887), 1, + sym_enumerator_list, + ACTIONS(2287), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2285), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [31346] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2283), 1, + anon_sym_LBRACE, + STATE(865), 1, + sym_field_declaration_list, + ACTIONS(2293), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2291), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [31381] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2283), 1, + anon_sym_LBRACE, + STATE(886), 1, + sym_field_declaration_list, + ACTIONS(2297), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2295), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [31416] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(1395), 1, + sym_identifier, + STATE(988), 1, + sym__type_specifier, + STATE(994), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1364), 1, + sym_type_descriptor, + STATE(857), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(1345), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + [31467] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2283), 1, + anon_sym_LBRACE, + STATE(870), 1, + sym_field_declaration_list, + ACTIONS(2301), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2299), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [31502] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(1395), 1, + sym_identifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1022), 1, + sym__type_specifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + [31550] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(1395), 1, + sym_identifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1023), 1, + sym__type_specifier, + STATE(858), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + [31598] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(1395), 1, + sym_identifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1026), 1, + sym__type_specifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + [31646] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(1395), 1, + sym_identifier, + STATE(987), 1, + sym__type_specifier, + STATE(994), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(1345), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + [31694] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(1395), 1, + sym_identifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1037), 1, + sym__type_specifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + [31742] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(1395), 1, + sym_identifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1021), 1, + sym__type_specifier, + STATE(860), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + [31790] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(1395), 1, + sym_identifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1035), 1, + sym__type_specifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + [31838] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(1395), 1, + sym_identifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1034), 1, + sym__type_specifier, + STATE(854), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + [31886] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + sym_primitive_type, + ACTIONS(51), 1, + anon_sym_enum, + ACTIONS(53), 1, + anon_sym_struct, + ACTIONS(55), 1, + anon_sym_union, + ACTIONS(1395), 1, + sym_identifier, + STATE(758), 1, + aux_sym_sized_type_specifier_repeat1, + STATE(1027), 1, + sym__type_specifier, + STATE(856), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(47), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + STATE(884), 5, + sym_sized_type_specifier, + sym_enum_specifier, + sym_struct_specifier, + sym_union_specifier, + sym_macro_type_specifier, + [31934] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2305), 1, + anon_sym_LPAREN2, + STATE(895), 1, + sym_preproc_argument_list, + ACTIONS(2307), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2303), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [31968] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2311), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2309), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [31997] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2315), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2313), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32026] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2319), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2317), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32055] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2321), 1, + anon_sym_COMMA, + ACTIONS(2323), 1, + anon_sym_RPAREN, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2331), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2333), 1, + anon_sym_AMP_AMP, + ACTIONS(2335), 1, + anon_sym_PIPE, + ACTIONS(2337), 1, + anon_sym_CARET, + ACTIONS(2339), 1, + anon_sym_AMP, + STATE(1181), 1, + aux_sym_preproc_argument_list_repeat1, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2341), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [32110] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2351), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2349), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32139] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2355), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2353), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32168] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2359), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2357), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32197] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2363), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2361), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32226] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2321), 1, + anon_sym_COMMA, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2331), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2333), 1, + anon_sym_AMP_AMP, + ACTIONS(2335), 1, + anon_sym_PIPE, + ACTIONS(2337), 1, + anon_sym_CARET, + ACTIONS(2339), 1, + anon_sym_AMP, + ACTIONS(2365), 1, + anon_sym_RPAREN, + STATE(1166), 1, + aux_sym_preproc_argument_list_repeat1, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2341), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [32281] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2369), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2367), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32310] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2373), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2371), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32339] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2377), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2375), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32368] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2381), 1, + anon_sym_RPAREN, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2391), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(872), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [32411] = 5, + ACTIONS(2303), 1, + anon_sym_LF, + ACTIONS(2395), 1, + anon_sym_LPAREN2, + ACTIONS(2397), 1, + sym_comment, + STATE(962), 1, + sym_preproc_argument_list, + ACTIONS(2307), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [32444] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2399), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32473] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2405), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2403), 20, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [32502] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2407), 1, + anon_sym_LPAREN2, + ACTIONS(1450), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(1437), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32533] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2412), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2410), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32562] = 5, + ACTIONS(3), 1, + sym_comment, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(2414), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(1942), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_LBRACK, + ACTIONS(1940), 10, + anon_sym___based, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + sym_primitive_type, + anon_sym_enum, + anon_sym_struct, + anon_sym_union, + sym_identifier, + [32595] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2419), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2417), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32624] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2423), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2421), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32653] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2427), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2425), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32682] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2431), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2429), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32711] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2435), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2433), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32740] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2437), 1, + anon_sym_RPAREN, + ACTIONS(2439), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(867), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [32783] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2443), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2441), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32812] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2447), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2445), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32841] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2451), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + ACTIONS(2449), 14, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_LBRACK, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [32870] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2455), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2453), 11, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [32904] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2455), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2453), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [32932] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2467), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(954), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [32972] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2473), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2471), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [33000] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2333), 1, + anon_sym_AMP_AMP, + ACTIONS(2335), 1, + anon_sym_PIPE, + ACTIONS(2337), 1, + anon_sym_CARET, + ACTIONS(2339), 1, + anon_sym_AMP, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2341), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2453), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + [33048] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2335), 1, + anon_sym_PIPE, + ACTIONS(2337), 1, + anon_sym_CARET, + ACTIONS(2339), 1, + anon_sym_AMP, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2341), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2453), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + [33094] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2337), 1, + anon_sym_CARET, + ACTIONS(2339), 1, + anon_sym_AMP, + ACTIONS(2455), 1, + anon_sym_PIPE, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2341), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2453), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + [33140] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2339), 1, + anon_sym_AMP, + ACTIONS(2455), 1, + anon_sym_PIPE, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2341), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2453), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + [33184] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2341), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2455), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(2453), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + [33226] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2455), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(2453), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [33266] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2475), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(914), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33306] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2479), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2477), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [33334] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2455), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2453), 9, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [33370] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2481), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(971), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33410] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2485), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2483), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [33438] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2487), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(970), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33478] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1843), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(1841), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [33506] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2489), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(969), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33546] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2491), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(951), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33586] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2493), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(955), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33626] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2495), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(926), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33666] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2497), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(893), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33706] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2331), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2333), 1, + anon_sym_AMP_AMP, + ACTIONS(2335), 1, + anon_sym_PIPE, + ACTIONS(2337), 1, + anon_sym_CARET, + ACTIONS(2339), 1, + anon_sym_AMP, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2341), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2499), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [33756] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2501), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(960), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33796] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2503), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(961), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33836] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2505), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(896), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33876] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2507), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(958), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33916] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2509), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(950), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33956] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2511), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(897), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [33996] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2515), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2513), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [34024] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2519), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2517), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [34052] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2521), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(898), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34092] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2523), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(956), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34132] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2525), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(899), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34172] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2455), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2453), 13, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [34204] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2527), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(900), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34244] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2529), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(901), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34284] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2533), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2531), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [34312] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2535), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(963), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34352] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2537), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(904), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34392] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2539), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(964), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34432] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2541), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(892), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34472] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2545), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2543), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [34500] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2547), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(967), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34540] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2379), 1, + sym_identifier, + ACTIONS(2383), 1, + anon_sym_LPAREN2, + ACTIONS(2385), 1, + anon_sym_defined, + ACTIONS(2549), 1, + sym_number_literal, + ACTIONS(2387), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2389), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2393), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(906), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34580] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2551), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(974), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34620] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2555), 5, + anon_sym_SLASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2553), 15, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + [34648] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2557), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(975), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34688] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2559), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(977), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34728] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2561), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(948), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34768] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2563), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(966), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34808] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2565), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(976), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34848] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2567), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(973), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34888] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2457), 1, + sym_identifier, + ACTIONS(2459), 1, + anon_sym_LPAREN2, + ACTIONS(2461), 1, + anon_sym_defined, + ACTIONS(2569), 1, + sym_number_literal, + ACTIONS(2463), 2, + anon_sym_BANG, + anon_sym_TILDE, + ACTIONS(2465), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2469), 5, + anon_sym_L_SQUOTE, + anon_sym_u_SQUOTE, + anon_sym_U_SQUOTE, + anon_sym_u8_SQUOTE, + anon_sym_SQUOTE, + STATE(965), 7, + sym__preproc_expression, + sym_preproc_parenthesized_expression, + sym_preproc_defined, + sym_preproc_unary_expression, + sym_preproc_call_expression, + sym_preproc_binary_expression, + sym_char_literal, + [34928] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1387), 1, + anon_sym_LPAREN2, + ACTIONS(1389), 1, + anon_sym_STAR, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(1938), 1, + anon_sym_LBRACK, + STATE(1082), 1, + sym__declarator, + STATE(1113), 1, + sym__abstract_declarator, + STATE(1141), 1, + sym_parameter_list, + STATE(1407), 1, + sym_ms_based_modifier, + ACTIONS(2571), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [34976] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2576), 1, + anon_sym_LPAREN2, + ACTIONS(2580), 1, + anon_sym_LBRACK, + ACTIONS(1450), 2, + anon_sym_COMMA, + anon_sym_STAR, + ACTIONS(2573), 2, + anon_sym_RPAREN, + anon_sym_LBRACK_LBRACK, + ACTIONS(1437), 13, + anon_sym_extern, + anon_sym___attribute__, + anon_sym___declspec, + anon_sym___based, + anon_sym_static, + anon_sym_auto, + anon_sym_register, + anon_sym_inline, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [35009] = 11, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2453), 1, + anon_sym_LF, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2455), 2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35052] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2531), 1, + anon_sym_LF, + ACTIONS(2533), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35079] = 12, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2599), 1, + anon_sym_LF, + ACTIONS(2601), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2603), 1, + anon_sym_AMP_AMP, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35124] = 12, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2601), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2603), 1, + anon_sym_AMP_AMP, + ACTIONS(2605), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35169] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2543), 1, + anon_sym_LF, + ACTIONS(2545), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35196] = 3, + ACTIONS(1841), 1, + anon_sym_LF, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(1843), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35223] = 12, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2601), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2603), 1, + anon_sym_AMP_AMP, + ACTIONS(2607), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35268] = 12, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2601), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2603), 1, + anon_sym_AMP_AMP, + ACTIONS(2609), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35313] = 12, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2601), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2603), 1, + anon_sym_AMP_AMP, + ACTIONS(2611), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35358] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2517), 1, + anon_sym_LF, + ACTIONS(2519), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35385] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2483), 1, + anon_sym_LF, + ACTIONS(2485), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35412] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2477), 1, + anon_sym_LF, + ACTIONS(2479), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35439] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2453), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2455), 13, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35470] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2331), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2333), 1, + anon_sym_AMP_AMP, + ACTIONS(2335), 1, + anon_sym_PIPE, + ACTIONS(2337), 1, + anon_sym_CARET, + ACTIONS(2339), 1, + anon_sym_AMP, + ACTIONS(2613), 1, + anon_sym_RPAREN, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2341), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35519] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2471), 1, + anon_sym_LF, + ACTIONS(2473), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35546] = 12, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2601), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2603), 1, + anon_sym_AMP_AMP, + ACTIONS(2615), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35591] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_SLASH, + ACTIONS(2331), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2333), 1, + anon_sym_AMP_AMP, + ACTIONS(2335), 1, + anon_sym_PIPE, + ACTIONS(2337), 1, + anon_sym_CARET, + ACTIONS(2339), 1, + anon_sym_AMP, + ACTIONS(2617), 1, + anon_sym_RPAREN, + ACTIONS(2325), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2327), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(2341), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2343), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(2345), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(2347), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35640] = 12, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2601), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2603), 1, + anon_sym_AMP_AMP, + ACTIONS(2619), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35685] = 12, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2601), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2603), 1, + anon_sym_AMP_AMP, + ACTIONS(2621), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35730] = 12, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2601), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2603), 1, + anon_sym_AMP_AMP, + ACTIONS(2623), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35775] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2513), 1, + anon_sym_LF, + ACTIONS(2515), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35802] = 6, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2453), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2455), 11, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35835] = 7, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2453), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + ACTIONS(2455), 7, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [35870] = 8, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2453), 1, + anon_sym_LF, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + ACTIONS(2455), 5, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [35907] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2553), 1, + anon_sym_LF, + ACTIONS(2555), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [35934] = 9, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2453), 1, + anon_sym_LF, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2455), 4, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [35973] = 4, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2453), 1, + anon_sym_LF, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2455), 15, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [36002] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2453), 1, + anon_sym_LF, + ACTIONS(2455), 18, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + anon_sym_LT_LT, + anon_sym_GT_GT, + [36029] = 10, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2453), 1, + anon_sym_LF, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2455), 3, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_PIPE, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [36070] = 12, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2453), 1, + anon_sym_LF, + ACTIONS(2455), 1, + anon_sym_PIPE_PIPE, + ACTIONS(2587), 1, + anon_sym_PIPE, + ACTIONS(2589), 1, + anon_sym_CARET, + ACTIONS(2591), 1, + anon_sym_AMP, + ACTIONS(2603), 1, + anon_sym_AMP_AMP, + ACTIONS(2583), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2593), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(2597), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(2585), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(2595), 4, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LT, + [36115] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1070), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [36154] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1020), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [36193] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1059), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [36232] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + STATE(1052), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [36271] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + STATE(1048), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [36310] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1015), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [36349] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + STATE(1047), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [36388] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1039), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [36427] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1067), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(45), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [36466] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1629), 1, + anon_sym_LPAREN2, + ACTIONS(1631), 1, + anon_sym_STAR, + ACTIONS(1938), 1, + anon_sym_LBRACK, + ACTIONS(2625), 1, + anon_sym_RPAREN, + STATE(1126), 1, + sym__abstract_declarator, + STATE(1141), 1, + sym_parameter_list, + STATE(991), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(2627), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + [36504] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1629), 1, + anon_sym_LPAREN2, + ACTIONS(1631), 1, + anon_sym_STAR, + ACTIONS(1938), 1, + anon_sym_LBRACK, + ACTIONS(2629), 1, + anon_sym_RPAREN, + STATE(1141), 1, + sym_parameter_list, + STATE(1144), 1, + sym__abstract_declarator, + STATE(989), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(2627), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + [36542] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1629), 1, + anon_sym_LPAREN2, + ACTIONS(1631), 1, + anon_sym_STAR, + ACTIONS(1938), 1, + anon_sym_LBRACK, + ACTIONS(2631), 1, + anon_sym_RPAREN, + STATE(1127), 1, + sym__abstract_declarator, + STATE(1141), 1, + sym_parameter_list, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(2627), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + [36580] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1629), 1, + anon_sym_LPAREN2, + ACTIONS(1631), 1, + anon_sym_STAR, + ACTIONS(1932), 1, + anon_sym_RPAREN, + ACTIONS(1938), 1, + anon_sym_LBRACK, + STATE(1108), 1, + sym__abstract_declarator, + STATE(1141), 1, + sym_parameter_list, + STATE(993), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(2627), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + [36618] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1629), 1, + anon_sym_LPAREN2, + ACTIONS(1631), 1, + anon_sym_STAR, + ACTIONS(1938), 1, + anon_sym_LBRACK, + ACTIONS(2633), 1, + anon_sym_RPAREN, + STATE(1123), 1, + sym__abstract_declarator, + STATE(1141), 1, + sym_parameter_list, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(2627), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + [36656] = 7, + ACTIONS(3), 1, + sym_comment, + STATE(998), 1, + sym_ms_unaligned_ptr_modifier, + ACTIONS(2637), 2, + anon_sym_LPAREN2, + anon_sym_STAR, + ACTIONS(2642), 2, + anon_sym__unaligned, + anon_sym___unaligned, + STATE(992), 2, + sym_ms_pointer_modifier, + aux_sym_pointer_declarator_repeat1, + ACTIONS(2639), 3, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + ACTIONS(2635), 6, + anon_sym___based, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [36688] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1629), 1, + anon_sym_LPAREN2, + ACTIONS(1631), 1, + anon_sym_STAR, + ACTIONS(1938), 1, + anon_sym_LBRACK, + ACTIONS(2253), 1, + anon_sym_RPAREN, + STATE(1107), 1, + sym__abstract_declarator, + STATE(1141), 1, + sym_parameter_list, + STATE(882), 2, + sym_type_qualifier, + aux_sym_type_definition_repeat1, + ACTIONS(2627), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + STATE(1142), 4, + sym_abstract_parenthesized_declarator, + sym_abstract_pointer_declarator, + sym_abstract_function_declarator, + sym_abstract_array_declarator, + [36726] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2226), 1, + sym_primitive_type, + ACTIONS(2645), 1, + sym_identifier, + STATE(818), 1, + aux_sym_sized_type_specifier_repeat1, + ACTIONS(2220), 4, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_STAR, + anon_sym_LBRACK, + ACTIONS(2222), 4, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + ACTIONS(2224), 4, + anon_sym_signed, + anon_sym_unsigned, + anon_sym_long, + anon_sym_short, + [36757] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + ACTIONS(2647), 1, + anon_sym_SEMI, + ACTIONS(2649), 1, + anon_sym_COLON, + STATE(1028), 1, + sym__field_declarator, + STATE(1327), 1, + sym_bitfield_clause, + STATE(1328), 1, + sym_ms_based_modifier, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [36795] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + ACTIONS(2649), 1, + anon_sym_COLON, + ACTIONS(2651), 1, + anon_sym_SEMI, + STATE(1040), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + STATE(1380), 1, + sym_bitfield_clause, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [36833] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + ACTIONS(2649), 1, + anon_sym_COLON, + ACTIONS(2653), 1, + anon_sym_SEMI, + STATE(1016), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + STATE(1329), 1, + sym_bitfield_clause, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [36871] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2657), 2, + anon_sym_LPAREN2, + anon_sym_STAR, + ACTIONS(2655), 11, + anon_sym___based, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + anon_sym__unaligned, + anon_sym___unaligned, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [36892] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2661), 2, + anon_sym_LPAREN2, + anon_sym_STAR, + ACTIONS(2659), 11, + anon_sym___based, + sym_ms_restrict_modifier, + sym_ms_unsigned_ptr_modifier, + sym_ms_signed_ptr_modifier, + anon_sym__unaligned, + anon_sym___unaligned, + anon_sym_const, + anon_sym_volatile, + anon_sym_restrict, + anon_sym__Atomic, + sym_identifier, + [36913] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(511), 1, + anon_sym_LBRACE, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2667), 1, + anon_sym_SEMI, + ACTIONS(2669), 1, + anon_sym_LBRACK, + ACTIONS(2671), 1, + anon_sym_EQ, + STATE(334), 1, + sym_compound_statement, + STATE(1032), 1, + sym_parameter_list, + STATE(1160), 1, + aux_sym_declaration_repeat1, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [36951] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(319), 1, + anon_sym_LBRACE, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + ACTIONS(2671), 1, + anon_sym_EQ, + ACTIONS(2673), 1, + anon_sym_SEMI, + STATE(313), 1, + sym_compound_statement, + STATE(1032), 1, + sym_parameter_list, + STATE(1206), 1, + aux_sym_declaration_repeat1, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [36989] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(41), 1, + anon_sym_LBRACE, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + ACTIONS(2671), 1, + anon_sym_EQ, + ACTIONS(2675), 1, + anon_sym_SEMI, + STATE(346), 1, + sym_compound_statement, + STATE(1032), 1, + sym_parameter_list, + STATE(1199), 1, + aux_sym_declaration_repeat1, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [37027] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1002), 1, + sym__declarator, + STATE(1186), 1, + sym_init_declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37059] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1001), 1, + sym__declarator, + STATE(1169), 1, + sym_init_declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37091] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1041), 1, + sym__declarator, + STATE(1169), 1, + sym_init_declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37123] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1046), 1, + sym__declarator, + STATE(1176), 1, + sym_init_declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37155] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1053), 1, + sym__declarator, + STATE(1232), 1, + sym_init_declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37187] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1009), 1, + sym__declarator, + STATE(1176), 1, + sym_init_declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37219] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(115), 1, + anon_sym_LBRACE, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + ACTIONS(2671), 1, + anon_sym_EQ, + ACTIONS(2677), 1, + anon_sym_SEMI, + STATE(118), 1, + sym_compound_statement, + STATE(1032), 1, + sym_parameter_list, + STATE(1187), 1, + aux_sym_declaration_repeat1, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [37257] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1042), 1, + sym__declarator, + STATE(1170), 1, + sym_init_declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37289] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1045), 1, + sym__declarator, + STATE(1186), 1, + sym_init_declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37321] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1000), 1, + sym__declarator, + STATE(1170), 1, + sym_init_declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37353] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2681), 1, + anon_sym___attribute__, + ACTIONS(2683), 1, + anon_sym_LBRACK, + STATE(1030), 2, + sym_attribute_specifier, + aux_sym_function_declarator_repeat1, + ACTIONS(2679), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + [37376] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1074), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37405] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + STATE(1032), 1, + sym_parameter_list, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2685), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_EQ, + [37432] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2649), 1, + anon_sym_COLON, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2687), 1, + anon_sym_COMMA, + ACTIONS(2689), 1, + anon_sym_SEMI, + ACTIONS(2691), 1, + anon_sym_LBRACK, + STATE(1091), 1, + sym_parameter_list, + STATE(1106), 1, + aux_sym_field_declaration_repeat1, + STATE(1390), 1, + sym_bitfield_clause, + STATE(1056), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [37467] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + STATE(1032), 1, + sym_parameter_list, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2693), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_EQ, + [37494] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1080), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37523] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + STATE(1069), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [37552] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + STATE(1032), 1, + sym_parameter_list, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2695), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_EQ, + [37579] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1066), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [37608] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1065), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [37637] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1055), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [37666] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1095), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37695] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2699), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2702), 1, + anon_sym_LBRACK, + STATE(1025), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2697), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_COLON, + [37718] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1054), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [37747] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1058), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [37776] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2649), 1, + anon_sym_COLON, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2687), 1, + anon_sym_COMMA, + ACTIONS(2691), 1, + anon_sym_LBRACK, + ACTIONS(2704), 1, + anon_sym_SEMI, + STATE(1091), 1, + sym_parameter_list, + STATE(1109), 1, + aux_sym_field_declaration_repeat1, + STATE(1305), 1, + sym_bitfield_clause, + STATE(1056), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [37811] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1076), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37840] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2708), 1, + anon_sym___attribute__, + ACTIONS(2711), 1, + anon_sym_LBRACK, + STATE(1030), 2, + sym_attribute_specifier, + aux_sym_function_declarator_repeat1, + ACTIONS(2706), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + [37863] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(1930), 1, + sym_identifier, + ACTIONS(2267), 1, + anon_sym_LPAREN2, + ACTIONS(2269), 1, + anon_sym_STAR, + STATE(1081), 1, + sym__declarator, + STATE(1407), 1, + sym_ms_based_modifier, + STATE(1075), 5, + sym_parenthesized_declarator, + sym_attributed_declarator, + sym_pointer_declarator, + sym_function_declarator, + sym_array_declarator, + [37892] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2681), 1, + anon_sym___attribute__, + ACTIONS(2715), 1, + anon_sym_LBRACK, + STATE(1013), 2, + sym_attribute_specifier, + aux_sym_function_declarator_repeat1, + ACTIONS(2713), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + [37915] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2255), 1, + sym_identifier, + ACTIONS(2257), 1, + anon_sym_LPAREN2, + ACTIONS(2259), 1, + anon_sym_STAR, + STATE(1090), 1, + sym__field_declarator, + STATE(1328), 1, + sym_ms_based_modifier, + STATE(1085), 5, + sym_parenthesized_field_declarator, + sym_attributed_field_declarator, + sym_pointer_field_declarator, + sym_function_field_declarator, + sym_array_field_declarator, + [37944] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1068), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [37973] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1057), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [38002] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1088), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [38031] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1060), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [38060] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1391), 1, + anon_sym___based, + ACTIONS(2261), 1, + sym_identifier, + ACTIONS(2263), 1, + anon_sym_LPAREN2, + ACTIONS(2265), 1, + anon_sym_STAR, + STATE(1072), 1, + sym__type_declarator, + STATE(1386), 1, + sym_ms_based_modifier, + STATE(1098), 5, + sym_parenthesized_type_declarator, + sym_attributed_type_declarator, + sym_pointer_type_declarator, + sym_function_type_declarator, + sym_array_type_declarator, + [38089] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + STATE(1032), 1, + sym_parameter_list, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2717), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_EQ, + [38116] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2649), 1, + anon_sym_COLON, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2687), 1, + anon_sym_COMMA, + ACTIONS(2691), 1, + anon_sym_LBRACK, + ACTIONS(2719), 1, + anon_sym_SEMI, + STATE(1091), 1, + sym_parameter_list, + STATE(1111), 1, + aux_sym_field_declaration_repeat1, + STATE(1272), 1, + sym_bitfield_clause, + STATE(1056), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38151] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + ACTIONS(2671), 1, + anon_sym_EQ, + ACTIONS(2673), 1, + anon_sym_SEMI, + STATE(1032), 1, + sym_parameter_list, + STATE(1206), 1, + aux_sym_declaration_repeat1, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38183] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2667), 1, + anon_sym_SEMI, + ACTIONS(2669), 1, + anon_sym_LBRACK, + ACTIONS(2671), 1, + anon_sym_EQ, + STATE(1032), 1, + sym_parameter_list, + STATE(1160), 1, + aux_sym_declaration_repeat1, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38215] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2723), 1, + anon_sym_LBRACK, + STATE(1025), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2721), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_EQ, + [38237] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2691), 1, + anon_sym_LBRACK, + STATE(1091), 1, + sym_parameter_list, + STATE(1056), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2725), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_COLON, + [38263] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + ACTIONS(2671), 1, + anon_sym_EQ, + ACTIONS(2675), 1, + anon_sym_SEMI, + STATE(1032), 1, + sym_parameter_list, + STATE(1199), 1, + aux_sym_declaration_repeat1, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38295] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + ACTIONS(2671), 1, + anon_sym_EQ, + ACTIONS(2677), 1, + anon_sym_SEMI, + STATE(1032), 1, + sym_parameter_list, + STATE(1187), 1, + aux_sym_declaration_repeat1, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38327] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2691), 1, + anon_sym_LBRACK, + STATE(1091), 1, + sym_parameter_list, + STATE(1056), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2727), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_COLON, + [38353] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2691), 1, + anon_sym_LBRACK, + STATE(1091), 1, + sym_parameter_list, + STATE(1056), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2729), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_COLON, + [38379] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2733), 1, + anon_sym_LBRACK, + ACTIONS(2731), 9, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym___attribute__, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_COLON, + [38397] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2737), 1, + anon_sym_LBRACK, + ACTIONS(2735), 9, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym___attribute__, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_COLON, + [38415] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2741), 1, + anon_sym_LBRACK, + ACTIONS(2739), 9, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym___attribute__, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_COLON, + [38433] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2691), 1, + anon_sym_LBRACK, + STATE(1091), 1, + sym_parameter_list, + STATE(1056), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2743), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + anon_sym_COLON, + [38459] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + ACTIONS(2671), 1, + anon_sym_EQ, + STATE(1032), 1, + sym_parameter_list, + ACTIONS(2745), 2, + anon_sym_COMMA, + anon_sym_SEMI, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38486] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(2749), 1, + anon_sym_SEMI, + ACTIONS(2751), 1, + anon_sym_LBRACK, + STATE(1103), 1, + sym_parameter_list, + STATE(1152), 1, + aux_sym_type_definition_repeat2, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38515] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(2751), 1, + anon_sym_LBRACK, + ACTIONS(2753), 1, + anon_sym_SEMI, + STATE(1103), 1, + sym_parameter_list, + STATE(1157), 1, + aux_sym_type_definition_repeat2, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38544] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2757), 1, + anon_sym_LBRACK, + STATE(1025), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2755), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_COLON, + [38565] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(2751), 1, + anon_sym_LBRACK, + ACTIONS(2759), 1, + anon_sym_SEMI, + STATE(1103), 1, + sym_parameter_list, + STATE(1201), 1, + aux_sym_type_definition_repeat2, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38594] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(2751), 1, + anon_sym_LBRACK, + ACTIONS(2761), 1, + anon_sym_SEMI, + STATE(1103), 1, + sym_parameter_list, + STATE(1155), 1, + aux_sym_type_definition_repeat2, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38623] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2751), 1, + anon_sym_LBRACK, + STATE(1103), 1, + sym_parameter_list, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2763), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + [38648] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(2751), 1, + anon_sym_LBRACK, + ACTIONS(2765), 1, + anon_sym_SEMI, + STATE(1103), 1, + sym_parameter_list, + STATE(1173), 1, + aux_sym_type_definition_repeat2, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38677] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2751), 1, + anon_sym_LBRACK, + STATE(1103), 1, + sym_parameter_list, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2767), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + [38702] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2769), 1, + sym_identifier, + ACTIONS(2773), 1, + sym_system_lib_string, + STATE(1320), 2, + sym_preproc_call_expression, + sym_string_literal, + ACTIONS(2771), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [38723] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2775), 1, + sym_identifier, + ACTIONS(2777), 1, + sym_system_lib_string, + STATE(1319), 2, + sym_preproc_call_expression, + sym_string_literal, + ACTIONS(2771), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [38744] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2779), 1, + sym_identifier, + ACTIONS(2781), 1, + sym_system_lib_string, + STATE(1448), 2, + sym_preproc_call_expression, + sym_string_literal, + ACTIONS(2771), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [38765] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(2751), 1, + anon_sym_LBRACK, + ACTIONS(2783), 1, + anon_sym_SEMI, + STATE(1103), 1, + sym_parameter_list, + STATE(1154), 1, + aux_sym_type_definition_repeat2, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38794] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(2751), 1, + anon_sym_LBRACK, + ACTIONS(2785), 1, + anon_sym_SEMI, + STATE(1103), 1, + sym_parameter_list, + STATE(1193), 1, + aux_sym_type_definition_repeat2, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38823] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2751), 1, + anon_sym_LBRACK, + STATE(1103), 1, + sym_parameter_list, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2787), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + [38848] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(2751), 1, + anon_sym_LBRACK, + ACTIONS(2789), 1, + anon_sym_SEMI, + STATE(1103), 1, + sym_parameter_list, + STATE(1198), 1, + aux_sym_type_definition_repeat2, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38877] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2691), 1, + anon_sym_LBRACK, + STATE(1091), 1, + sym_parameter_list, + STATE(1056), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2791), 3, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_COLON, + [38902] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2751), 1, + anon_sym_LBRACK, + STATE(1103), 1, + sym_parameter_list, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2793), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_SEMI, + [38927] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2795), 1, + sym_identifier, + ACTIONS(2797), 1, + sym_system_lib_string, + STATE(1437), 2, + sym_preproc_call_expression, + sym_string_literal, + ACTIONS(2771), 5, + anon_sym_L_DQUOTE, + anon_sym_u_DQUOTE, + anon_sym_U_DQUOTE, + anon_sym_u8_DQUOTE, + anon_sym_DQUOTE, + [38948] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2751), 1, + anon_sym_LBRACK, + STATE(1103), 1, + sym_parameter_list, + ACTIONS(2799), 2, + anon_sym_COMMA, + anon_sym_SEMI, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [38972] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2803), 1, + anon_sym_LBRACK, + ACTIONS(2801), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + [38988] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(115), 1, + anon_sym_LBRACE, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + STATE(110), 1, + sym_compound_statement, + STATE(1032), 1, + sym_parameter_list, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [39014] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2807), 1, + anon_sym_LBRACK, + ACTIONS(2805), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + [39030] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(511), 1, + anon_sym_LBRACE, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + STATE(357), 1, + sym_compound_statement, + STATE(1032), 1, + sym_parameter_list, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [39056] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2811), 1, + anon_sym_LBRACK, + ACTIONS(2809), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + [39072] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2815), 1, + anon_sym_LBRACK, + ACTIONS(2813), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + [39088] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2819), 1, + anon_sym_LBRACK, + STATE(1025), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + ACTIONS(2817), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + [39108] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(41), 1, + anon_sym_LBRACE, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + STATE(350), 1, + sym_compound_statement, + STATE(1032), 1, + sym_parameter_list, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [39134] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(319), 1, + anon_sym_LBRACE, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + STATE(332), 1, + sym_compound_statement, + STATE(1032), 1, + sym_parameter_list, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [39160] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + STATE(1032), 1, + sym_parameter_list, + ACTIONS(2821), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [39184] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2825), 1, + anon_sym_LBRACK, + ACTIONS(2823), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + [39200] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2829), 1, + anon_sym_LBRACK, + ACTIONS(2827), 7, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + [39216] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2833), 1, + anon_sym_LBRACK, + ACTIONS(2831), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + [39231] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2837), 1, + anon_sym_LBRACK, + ACTIONS(2835), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + [39246] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2841), 1, + anon_sym_LBRACK, + ACTIONS(2839), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + [39261] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2751), 1, + anon_sym_LBRACK, + ACTIONS(2843), 1, + anon_sym_RPAREN, + STATE(1103), 1, + sym_parameter_list, + STATE(1079), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [39284] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2847), 1, + anon_sym_LBRACK, + ACTIONS(2845), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + [39299] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2691), 1, + anon_sym_LBRACK, + ACTIONS(2849), 1, + anon_sym_RPAREN, + STATE(1091), 1, + sym_parameter_list, + STATE(1056), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [39322] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2853), 1, + anon_sym_LBRACK, + ACTIONS(2851), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + [39337] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2857), 1, + anon_sym_LBRACK, + ACTIONS(2855), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + [39352] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2861), 1, + anon_sym_LBRACK, + ACTIONS(2859), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + [39367] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2865), 1, + anon_sym_LBRACK, + ACTIONS(2863), 6, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + anon_sym_COLON, + [39382] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(35), 1, + anon_sym_LBRACK_LBRACK, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2669), 1, + anon_sym_LBRACK, + ACTIONS(2867), 1, + anon_sym_RPAREN, + STATE(1032), 1, + sym_parameter_list, + STATE(1043), 2, + sym_attribute_declaration, + aux_sym_attributed_declarator_repeat1, + [39405] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2871), 1, + anon_sym_LBRACK, + ACTIONS(2869), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + [39419] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2875), 1, + anon_sym_LBRACK, + ACTIONS(2873), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + [39433] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2879), 1, + anon_sym_LBRACK, + ACTIONS(2877), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + [39447] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2881), 1, + anon_sym_LBRACK, + ACTIONS(2884), 1, + anon_sym_EQ, + ACTIONS(2886), 1, + anon_sym_DOT, + STATE(1099), 3, + sym_subscript_designator, + sym_field_designator, + aux_sym_initializer_pair_repeat1, + [39465] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2891), 1, + anon_sym_LBRACK, + ACTIONS(2889), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + [39479] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2895), 1, + anon_sym_LBRACK, + ACTIONS(2893), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + [39493] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2899), 1, + anon_sym_LBRACK, + ACTIONS(2897), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + [39507] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2903), 1, + anon_sym_LBRACK, + ACTIONS(2901), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + [39521] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2907), 1, + anon_sym_LBRACK, + ACTIONS(2905), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_SEMI, + anon_sym_LBRACK_LBRACK, + [39535] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1471), 1, + anon_sym_LBRACK, + ACTIONS(2909), 1, + anon_sym_EQ, + ACTIONS(2911), 1, + anon_sym_DOT, + STATE(1099), 3, + sym_subscript_designator, + sym_field_designator, + aux_sym_initializer_pair_repeat1, + [39553] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2649), 1, + anon_sym_COLON, + ACTIONS(2687), 1, + anon_sym_COMMA, + ACTIONS(2913), 1, + anon_sym_SEMI, + STATE(1136), 1, + aux_sym_field_declaration_repeat1, + STATE(1334), 1, + sym_bitfield_clause, + [39572] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2917), 1, + anon_sym_LBRACK, + STATE(1128), 1, + sym_parameter_list, + ACTIONS(2915), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [39589] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2917), 1, + anon_sym_LBRACK, + STATE(1128), 1, + sym_parameter_list, + ACTIONS(2919), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [39606] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2649), 1, + anon_sym_COLON, + ACTIONS(2687), 1, + anon_sym_COMMA, + ACTIONS(2921), 1, + anon_sym_SEMI, + STATE(1136), 1, + aux_sym_field_declaration_repeat1, + STATE(1376), 1, + sym_bitfield_clause, + [39625] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + ACTIONS(2925), 1, + anon_sym_COLON_COLON, + STATE(1228), 1, + sym_argument_list, + ACTIONS(2923), 2, + anon_sym_COMMA, + anon_sym_RBRACK_RBRACK, + [39642] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2649), 1, + anon_sym_COLON, + ACTIONS(2687), 1, + anon_sym_COMMA, + ACTIONS(2927), 1, + anon_sym_SEMI, + STATE(1136), 1, + aux_sym_field_declaration_repeat1, + STATE(1350), 1, + sym_bitfield_clause, + [39661] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(2283), 1, + anon_sym_LBRACE, + ACTIONS(2929), 1, + sym_identifier, + STATE(875), 1, + sym_field_declaration_list, + STATE(1175), 1, + sym_ms_declspec_modifier, + [39680] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2917), 1, + anon_sym_LBRACK, + STATE(1128), 1, + sym_parameter_list, + ACTIONS(2821), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [39697] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(37), 1, + anon_sym___declspec, + ACTIONS(2283), 1, + anon_sym_LBRACE, + ACTIONS(2931), 1, + sym_identifier, + STATE(873), 1, + sym_field_declaration_list, + STATE(1174), 1, + sym_ms_declspec_modifier, + [39716] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2933), 1, + anon_sym_LF, + ACTIONS(2935), 1, + anon_sym_LPAREN, + ACTIONS(2937), 1, + sym_preproc_arg, + STATE(1261), 1, + sym_preproc_params, + [39732] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2939), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [39742] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2935), 1, + anon_sym_LPAREN, + ACTIONS(2941), 1, + anon_sym_LF, + ACTIONS(2943), 1, + sym_preproc_arg, + STATE(1254), 1, + sym_preproc_params, + [39758] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2945), 1, + anon_sym_DQUOTE, + ACTIONS(2947), 1, + aux_sym_string_literal_token1, + ACTIONS(2949), 1, + sym_escape_sequence, + STATE(1140), 1, + aux_sym_string_literal_repeat1, + [39774] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2951), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [39784] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2953), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [39794] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2955), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [39804] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2957), 1, + anon_sym_DQUOTE, + ACTIONS(2959), 1, + aux_sym_string_literal_token1, + ACTIONS(2961), 1, + sym_escape_sequence, + STATE(1145), 1, + aux_sym_string_literal_repeat1, + [39820] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2917), 1, + anon_sym_LBRACK, + ACTIONS(2963), 1, + anon_sym_RPAREN, + STATE(1128), 1, + sym_parameter_list, + [39836] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2965), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [39846] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + STATE(1263), 1, + sym_argument_list, + ACTIONS(2967), 2, + anon_sym_COMMA, + anon_sym_RBRACK_RBRACK, + [39860] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2917), 1, + anon_sym_LBRACK, + ACTIONS(2969), 1, + anon_sym_RPAREN, + STATE(1128), 1, + sym_parameter_list, + [39876] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2917), 1, + anon_sym_LBRACK, + ACTIONS(2971), 1, + anon_sym_RPAREN, + STATE(1128), 1, + sym_parameter_list, + [39892] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2973), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [39902] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2935), 1, + anon_sym_LPAREN, + ACTIONS(2975), 1, + anon_sym_LF, + ACTIONS(2977), 1, + sym_preproc_arg, + STATE(1215), 1, + sym_preproc_params, + [39918] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2935), 1, + anon_sym_LPAREN, + ACTIONS(2979), 1, + anon_sym_LF, + ACTIONS(2981), 1, + sym_preproc_arg, + STATE(1251), 1, + sym_preproc_params, + [39934] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2983), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [39944] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2935), 1, + anon_sym_LPAREN, + ACTIONS(2985), 1, + anon_sym_LF, + ACTIONS(2987), 1, + sym_preproc_arg, + STATE(1250), 1, + sym_preproc_params, + [39960] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2989), 1, + anon_sym_DQUOTE, + ACTIONS(2991), 1, + aux_sym_string_literal_token1, + ACTIONS(2993), 1, + sym_escape_sequence, + STATE(1118), 1, + aux_sym_string_literal_repeat1, + [39976] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2995), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [39986] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2935), 1, + anon_sym_LPAREN, + ACTIONS(2997), 1, + anon_sym_LF, + ACTIONS(2999), 1, + sym_preproc_arg, + STATE(1243), 1, + sym_preproc_params, + [40002] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3001), 1, + anon_sym_COMMA, + STATE(1136), 1, + aux_sym_field_declaration_repeat1, + ACTIONS(3004), 2, + anon_sym_SEMI, + anon_sym_COLON, + [40016] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2947), 1, + aux_sym_string_literal_token1, + ACTIONS(2949), 1, + sym_escape_sequence, + ACTIONS(3006), 1, + anon_sym_DQUOTE, + STATE(1140), 1, + aux_sym_string_literal_repeat1, + [40032] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3008), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [40042] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2917), 1, + anon_sym_LBRACK, + ACTIONS(3010), 1, + anon_sym_RPAREN, + STATE(1128), 1, + sym_parameter_list, + [40058] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3012), 1, + anon_sym_DQUOTE, + ACTIONS(3014), 1, + aux_sym_string_literal_token1, + ACTIONS(3017), 1, + sym_escape_sequence, + STATE(1140), 1, + aux_sym_string_literal_repeat1, + [40074] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3020), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [40084] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3022), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [40094] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3024), 1, + anon_sym_DQUOTE, + ACTIONS(3026), 1, + aux_sym_string_literal_token1, + ACTIONS(3028), 1, + sym_escape_sequence, + STATE(1137), 1, + aux_sym_string_literal_repeat1, + [40110] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2665), 1, + anon_sym_LPAREN2, + ACTIONS(2917), 1, + anon_sym_LBRACK, + ACTIONS(3030), 1, + anon_sym_RPAREN, + STATE(1128), 1, + sym_parameter_list, + [40126] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2947), 1, + aux_sym_string_literal_token1, + ACTIONS(2949), 1, + sym_escape_sequence, + ACTIONS(3032), 1, + anon_sym_DQUOTE, + STATE(1140), 1, + aux_sym_string_literal_repeat1, + [40142] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3034), 1, + sym_identifier, + ACTIONS(3036), 1, + anon_sym_COMMA, + ACTIONS(3038), 1, + anon_sym_RBRACE, + STATE(1202), 1, + sym_enumerator, + [40158] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3040), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LPAREN2, + anon_sym_LBRACK, + [40168] = 5, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(2935), 1, + anon_sym_LPAREN, + ACTIONS(3042), 1, + anon_sym_LF, + ACTIONS(3044), 1, + sym_preproc_arg, + STATE(1231), 1, + sym_preproc_params, + [40184] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2055), 1, + anon_sym_COMMA, + ACTIONS(2057), 1, + anon_sym_RBRACE, + STATE(1167), 1, + aux_sym_initializer_list_repeat1, + [40197] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3046), 1, + anon_sym_COMMA, + ACTIONS(3048), 1, + anon_sym_RPAREN, + STATE(1158), 1, + aux_sym_parameter_list_repeat1, + [40210] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3050), 1, + anon_sym_COMMA, + ACTIONS(3052), 1, + anon_sym_RBRACK_RBRACK, + STATE(1203), 1, + aux_sym_attribute_declaration_repeat1, + [40223] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(3054), 1, + anon_sym_SEMI, + STATE(1153), 1, + aux_sym_type_definition_repeat2, + [40236] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3056), 1, + anon_sym_COMMA, + ACTIONS(3059), 1, + anon_sym_SEMI, + STATE(1153), 1, + aux_sym_type_definition_repeat2, + [40249] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(3061), 1, + anon_sym_SEMI, + STATE(1153), 1, + aux_sym_type_definition_repeat2, + [40262] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(3063), 1, + anon_sym_SEMI, + STATE(1153), 1, + aux_sym_type_definition_repeat2, + [40275] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2289), 1, + anon_sym_LBRACE, + ACTIONS(3065), 1, + sym_identifier, + STATE(869), 1, + sym_enumerator_list, + [40288] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(3067), 1, + anon_sym_SEMI, + STATE(1153), 1, + aux_sym_type_definition_repeat2, + [40301] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3046), 1, + anon_sym_COMMA, + ACTIONS(3069), 1, + anon_sym_RPAREN, + STATE(1197), 1, + aux_sym_parameter_list_repeat1, + [40314] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3071), 1, + anon_sym_SEMI, + STATE(1191), 1, + aux_sym_declaration_repeat1, + [40327] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3073), 1, + anon_sym_SEMI, + STATE(1191), 1, + aux_sym_declaration_repeat1, + [40340] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3034), 1, + sym_identifier, + ACTIONS(3075), 1, + anon_sym_RBRACE, + STATE(1260), 1, + sym_enumerator, + [40353] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3077), 1, + anon_sym_COMMA, + ACTIONS(3080), 1, + anon_sym_RBRACE, + STATE(1162), 1, + aux_sym_enumerator_list_repeat1, + [40366] = 4, + ACTIONS(2395), 1, + anon_sym_LPAREN2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3082), 1, + anon_sym_LF, + STATE(962), 1, + sym_preproc_argument_list, + [40379] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1985), 1, + anon_sym_COMMA, + ACTIONS(3084), 1, + anon_sym_RPAREN, + STATE(1178), 1, + aux_sym_argument_list_repeat1, + [40392] = 4, + ACTIONS(2395), 1, + anon_sym_LPAREN2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3086), 1, + anon_sym_LF, + STATE(962), 1, + sym_preproc_argument_list, + [40405] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2321), 1, + anon_sym_COMMA, + ACTIONS(3088), 1, + anon_sym_RPAREN, + STATE(1179), 1, + aux_sym_preproc_argument_list_repeat1, + [40418] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1522), 1, + anon_sym_RBRACE, + ACTIONS(3090), 1, + anon_sym_COMMA, + STATE(1182), 1, + aux_sym_initializer_list_repeat1, + [40431] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3050), 1, + anon_sym_COMMA, + ACTIONS(3092), 1, + anon_sym_RBRACK_RBRACK, + STATE(1183), 1, + aux_sym_attribute_declaration_repeat1, + [40444] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3094), 1, + anon_sym_SEMI, + STATE(1204), 1, + aux_sym_declaration_repeat1, + [40457] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3096), 1, + anon_sym_SEMI, + STATE(1159), 1, + aux_sym_declaration_repeat1, + [40470] = 4, + ACTIONS(2395), 1, + anon_sym_LPAREN2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3098), 1, + anon_sym_LF, + STATE(962), 1, + sym_preproc_argument_list, + [40483] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3050), 1, + anon_sym_COMMA, + ACTIONS(3100), 1, + anon_sym_RBRACK_RBRACK, + STATE(1196), 1, + aux_sym_attribute_declaration_repeat1, + [40496] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(3102), 1, + anon_sym_SEMI, + STATE(1153), 1, + aux_sym_type_definition_repeat2, + [40509] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2283), 1, + anon_sym_LBRACE, + ACTIONS(3104), 1, + sym_identifier, + STATE(864), 1, + sym_field_declaration_list, + [40522] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2283), 1, + anon_sym_LBRACE, + ACTIONS(3106), 1, + sym_identifier, + STATE(883), 1, + sym_field_declaration_list, + [40535] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3108), 1, + anon_sym_SEMI, + STATE(1188), 1, + aux_sym_declaration_repeat1, + [40548] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3110), 1, + anon_sym_COMMA, + ACTIONS(3112), 1, + anon_sym_RPAREN, + STATE(1189), 1, + aux_sym_preproc_params_repeat1, + [40561] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2125), 1, + anon_sym_RPAREN, + ACTIONS(3114), 1, + anon_sym_COMMA, + STATE(1178), 1, + aux_sym_argument_list_repeat1, + [40574] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2499), 1, + anon_sym_RPAREN, + ACTIONS(3117), 1, + anon_sym_COMMA, + STATE(1179), 1, + aux_sym_preproc_argument_list_repeat1, + [40587] = 4, + ACTIONS(2395), 1, + anon_sym_LPAREN2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3120), 1, + anon_sym_LF, + STATE(962), 1, + sym_preproc_argument_list, + [40600] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2321), 1, + anon_sym_COMMA, + ACTIONS(3122), 1, + anon_sym_RPAREN, + STATE(1179), 1, + aux_sym_preproc_argument_list_repeat1, + [40613] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2183), 1, + anon_sym_RBRACE, + ACTIONS(3124), 1, + anon_sym_COMMA, + STATE(1182), 1, + aux_sym_initializer_list_repeat1, + [40626] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3050), 1, + anon_sym_COMMA, + ACTIONS(3127), 1, + anon_sym_RBRACK_RBRACK, + STATE(1195), 1, + aux_sym_attribute_declaration_repeat1, + [40639] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1985), 1, + anon_sym_COMMA, + ACTIONS(3129), 1, + anon_sym_RPAREN, + STATE(1178), 1, + aux_sym_argument_list_repeat1, + [40652] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3131), 3, + anon_sym_LBRACK, + anon_sym_EQ, + anon_sym_DOT, + [40661] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3133), 1, + anon_sym_SEMI, + STATE(1205), 1, + aux_sym_declaration_repeat1, + [40674] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3135), 1, + anon_sym_SEMI, + STATE(1191), 1, + aux_sym_declaration_repeat1, + [40687] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3137), 1, + anon_sym_SEMI, + STATE(1191), 1, + aux_sym_declaration_repeat1, + [40700] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3139), 1, + anon_sym_COMMA, + ACTIONS(3142), 1, + anon_sym_RPAREN, + STATE(1189), 1, + aux_sym_preproc_params_repeat1, + [40713] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3146), 1, + anon_sym_RPAREN, + ACTIONS(3144), 2, + anon_sym_DOT_DOT_DOT, + sym_identifier, + [40724] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3148), 1, + anon_sym_COMMA, + ACTIONS(3151), 1, + anon_sym_SEMI, + STATE(1191), 1, + aux_sym_declaration_repeat1, + [40737] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3153), 1, + anon_sym_COMMA, + ACTIONS(3155), 1, + anon_sym_RBRACE, + STATE(1162), 1, + aux_sym_enumerator_list_repeat1, + [40750] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(3157), 1, + anon_sym_SEMI, + STATE(1153), 1, + aux_sym_type_definition_repeat2, + [40763] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3034), 1, + sym_identifier, + ACTIONS(3155), 1, + anon_sym_RBRACE, + STATE(1260), 1, + sym_enumerator, + [40776] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3159), 1, + anon_sym_COMMA, + ACTIONS(3162), 1, + anon_sym_RBRACK_RBRACK, + STATE(1195), 1, + aux_sym_attribute_declaration_repeat1, + [40789] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3050), 1, + anon_sym_COMMA, + ACTIONS(3164), 1, + anon_sym_RBRACK_RBRACK, + STATE(1195), 1, + aux_sym_attribute_declaration_repeat1, + [40802] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3166), 1, + anon_sym_COMMA, + ACTIONS(3169), 1, + anon_sym_RPAREN, + STATE(1197), 1, + aux_sym_parameter_list_repeat1, + [40815] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(3171), 1, + anon_sym_SEMI, + STATE(1153), 1, + aux_sym_type_definition_repeat2, + [40828] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3173), 1, + anon_sym_SEMI, + STATE(1191), 1, + aux_sym_declaration_repeat1, + [40841] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3177), 1, + anon_sym_EQ, + ACTIONS(3175), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [40852] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2747), 1, + anon_sym_COMMA, + ACTIONS(3179), 1, + anon_sym_SEMI, + STATE(1153), 1, + aux_sym_type_definition_repeat2, + [40865] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3181), 1, + anon_sym_COMMA, + ACTIONS(3183), 1, + anon_sym_RBRACE, + STATE(1192), 1, + aux_sym_enumerator_list_repeat1, + [40878] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3050), 1, + anon_sym_COMMA, + ACTIONS(3185), 1, + anon_sym_RBRACK_RBRACK, + STATE(1195), 1, + aux_sym_attribute_declaration_repeat1, + [40891] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3187), 1, + anon_sym_SEMI, + STATE(1191), 1, + aux_sym_declaration_repeat1, + [40904] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3189), 1, + anon_sym_SEMI, + STATE(1191), 1, + aux_sym_declaration_repeat1, + [40917] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2663), 1, + anon_sym_COMMA, + ACTIONS(3191), 1, + anon_sym_SEMI, + STATE(1191), 1, + aux_sym_declaration_repeat1, + [40930] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3193), 3, + anon_sym_LBRACK, + anon_sym_EQ, + anon_sym_DOT, + [40939] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3110), 1, + anon_sym_COMMA, + ACTIONS(3195), 1, + anon_sym_RPAREN, + STATE(1177), 1, + aux_sym_preproc_params_repeat1, + [40952] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3197), 2, + anon_sym_LF, + sym_preproc_arg, + [40960] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3199), 1, + anon_sym_LPAREN2, + STATE(1368), 1, + sym_parenthesized_expression, + [40970] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3201), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [40978] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3203), 1, + anon_sym_LF, + ACTIONS(3205), 1, + sym_preproc_arg, + [40988] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3207), 2, + anon_sym_LF, + sym_preproc_arg, + [40996] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3034), 1, + sym_identifier, + STATE(1260), 1, + sym_enumerator, + [41006] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3209), 1, + anon_sym_LF, + ACTIONS(3211), 1, + sym_preproc_arg, + [41016] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3199), 1, + anon_sym_LPAREN2, + STATE(1276), 1, + sym_parenthesized_expression, + [41026] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2053), 2, + anon_sym_RPAREN, + anon_sym_SEMI, + [41034] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3199), 1, + anon_sym_LPAREN2, + STATE(1326), 1, + sym_parenthesized_expression, + [41044] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3213), 1, + sym_identifier, + STATE(1168), 1, + sym_attribute, + [41054] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3162), 2, + anon_sym_COMMA, + anon_sym_RBRACK_RBRACK, + [41062] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3199), 1, + anon_sym_LPAREN2, + STATE(1252), 1, + sym_parenthesized_expression, + [41072] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3215), 2, + aux_sym_char_literal_token1, + sym_escape_sequence, + [41080] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3217), 1, + anon_sym_LF, + ACTIONS(3219), 1, + sym_preproc_arg, + [41090] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3169), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [41098] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3221), 1, + anon_sym_LPAREN2, + STATE(151), 1, + sym_parenthesized_expression, + [41108] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3213), 1, + sym_identifier, + STATE(1220), 1, + sym_attribute, + [41118] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3221), 1, + anon_sym_LPAREN2, + STATE(149), 1, + sym_parenthesized_expression, + [41128] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3223), 2, + anon_sym_COMMA, + anon_sym_RBRACK_RBRACK, + [41136] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2135), 2, + anon_sym_COMMA, + anon_sym_SEMI, + [41144] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3199), 1, + anon_sym_LPAREN2, + STATE(1379), 1, + sym_parenthesized_expression, + [41154] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3225), 1, + anon_sym_LF, + ACTIONS(3227), 1, + sym_preproc_arg, + [41164] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2745), 2, + anon_sym_COMMA, + anon_sym_SEMI, + [41172] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3142), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [41180] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3199), 1, + anon_sym_LPAREN2, + STATE(1242), 1, + sym_parenthesized_expression, + [41190] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2183), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [41198] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2161), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [41206] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3229), 2, + anon_sym_DOT_DOT_DOT, + sym_identifier, + [41214] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + STATE(1362), 1, + sym_argument_list, + [41224] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3231), 2, + anon_sym_LF, + sym_preproc_arg, + [41232] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(319), 1, + anon_sym_LBRACE, + STATE(301), 1, + sym_compound_statement, + [41242] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3233), 2, + aux_sym_char_literal_token1, + sym_escape_sequence, + [41250] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(511), 1, + anon_sym_LBRACE, + STATE(133), 1, + sym_compound_statement, + [41260] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3235), 1, + anon_sym_LF, + ACTIONS(3237), 1, + sym_preproc_arg, + [41270] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3199), 1, + anon_sym_LPAREN2, + STATE(1240), 1, + sym_parenthesized_expression, + [41280] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(41), 1, + anon_sym_LBRACE, + STATE(229), 1, + sym_compound_statement, + [41290] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3213), 1, + sym_identifier, + STATE(1151), 1, + sym_attribute, + [41300] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3239), 1, + anon_sym_LF, + ACTIONS(3241), 1, + sym_preproc_arg, + [41310] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3243), 1, + sym_identifier, + ACTIONS(3245), 1, + anon_sym_LPAREN2, + [41320] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1759), 1, + anon_sym_LPAREN2, + STATE(1384), 1, + sym_argument_list, + [41330] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3247), 1, + anon_sym_LF, + ACTIONS(3249), 1, + sym_preproc_arg, + [41340] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3251), 1, + anon_sym_LF, + ACTIONS(3253), 1, + sym_preproc_arg, + [41350] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(115), 1, + anon_sym_LBRACE, + STATE(72), 1, + sym_compound_statement, + [41360] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3255), 1, + anon_sym_LF, + ACTIONS(3257), 1, + sym_preproc_arg, + [41370] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3259), 1, + anon_sym_LF, + ACTIONS(3261), 1, + sym_preproc_arg, + [41380] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3263), 1, + anon_sym_LF, + ACTIONS(3265), 1, + sym_preproc_arg, + [41390] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3267), 1, + sym_identifier, + ACTIONS(3269), 1, + anon_sym_LPAREN2, + [41400] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3271), 2, + aux_sym_char_literal_token1, + sym_escape_sequence, + [41408] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3221), 1, + anon_sym_LPAREN2, + STATE(160), 1, + sym_parenthesized_expression, + [41418] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3199), 1, + anon_sym_LPAREN2, + STATE(1245), 1, + sym_parenthesized_expression, + [41428] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3080), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [41436] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3273), 1, + anon_sym_LF, + ACTIONS(3275), 1, + sym_preproc_arg, + [41446] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3277), 1, + anon_sym_LF, + ACTIONS(3279), 1, + sym_preproc_arg, + [41456] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3281), 2, + anon_sym_COMMA, + anon_sym_RBRACK_RBRACK, + [41464] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3221), 1, + anon_sym_LPAREN2, + STATE(258), 1, + sym_parenthesized_expression, + [41474] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3221), 1, + anon_sym_LPAREN2, + STATE(166), 1, + sym_parenthesized_expression, + [41484] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3221), 1, + anon_sym_LPAREN2, + STATE(260), 1, + sym_parenthesized_expression, + [41494] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3221), 1, + anon_sym_LPAREN2, + STATE(240), 1, + sym_parenthesized_expression, + [41504] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3213), 1, + sym_identifier, + STATE(1172), 1, + sym_attribute, + [41514] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3221), 1, + anon_sym_LPAREN2, + STATE(243), 1, + sym_parenthesized_expression, + [41524] = 3, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3283), 1, + anon_sym_LF, + ACTIONS(3285), 1, + sym_preproc_arg, + [41534] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3287), 1, + sym_identifier, + [41541] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3289), 1, + anon_sym_SEMI, + [41548] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2085), 1, + anon_sym_RPAREN, + [41555] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3291), 1, + aux_sym_preproc_if_token2, + [41562] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2061), 1, + anon_sym_RPAREN, + [41569] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3293), 1, + anon_sym_SEMI, + [41576] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2071), 1, + anon_sym_RPAREN, + [41583] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3295), 1, + sym_identifier, + [41590] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2057), 1, + anon_sym_RBRACE, + [41597] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2067), 1, + anon_sym_SEMI, + [41604] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2117), 1, + anon_sym_RPAREN, + [41611] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3297), 1, + anon_sym_SEMI, + [41618] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2129), 1, + anon_sym_RPAREN, + [41625] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2065), 1, + anon_sym_RPAREN, + [41632] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2145), 1, + anon_sym_RPAREN, + [41639] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3299), 1, + anon_sym_SQUOTE, + [41646] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3301), 1, + aux_sym_preproc_if_token2, + [41653] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2149), 1, + anon_sym_RPAREN, + [41660] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3303), 1, + aux_sym_preproc_if_token2, + [41667] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3305), 1, + aux_sym_preproc_if_token2, + [41674] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3307), 1, + anon_sym_LF, + [41681] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3309), 1, + anon_sym_LF, + [41688] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3311), 1, + aux_sym_preproc_if_token2, + [41695] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3313), 1, + anon_sym_LF, + [41702] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3315), 1, + anon_sym_LF, + [41709] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2177), 1, + anon_sym_RPAREN, + [41716] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3317), 1, + anon_sym_LF, + [41723] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3319), 1, + anon_sym_LF, + [41730] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3321), 1, + aux_sym_preproc_if_token2, + [41737] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3323), 1, + anon_sym_LF, + [41744] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3325), 1, + anon_sym_LF, + [41751] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3327), 1, + aux_sym_preproc_if_token2, + [41758] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3329), 1, + anon_sym_LF, + [41765] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3331), 1, + anon_sym_LF, + [41772] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3333), 1, + anon_sym_SEMI, + [41779] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3335), 1, + anon_sym_LF, + [41786] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2123), 1, + anon_sym_RPAREN, + [41793] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3337), 1, + anon_sym_LF, + [41800] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3339), 1, + sym_identifier, + [41807] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3341), 1, + anon_sym_LF, + [41814] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3343), 1, + aux_sym_preproc_if_token2, + [41821] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3345), 1, + anon_sym_SEMI, + [41828] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2115), 1, + anon_sym_SEMI, + [41835] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2143), 1, + anon_sym_RPAREN, + [41842] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3347), 1, + sym_identifier, + [41849] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2147), 1, + anon_sym_RPAREN, + [41856] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2153), 1, + anon_sym_SEMI, + [41863] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3349), 1, + anon_sym_LF, + [41870] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3098), 1, + anon_sym_LF, + [41877] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3120), 1, + anon_sym_LF, + [41884] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2175), 1, + anon_sym_SEMI, + [41891] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3351), 1, + anon_sym_SEMI, + [41898] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2075), 1, + anon_sym_RPAREN, + [41905] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2155), 1, + anon_sym_SEMI, + [41912] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2097), 1, + anon_sym_SEMI, + [41919] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3353), 1, + anon_sym_SEMI, + [41926] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3355), 1, + anon_sym_SEMI, + [41933] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3357), 1, + anon_sym_STAR, + [41940] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3359), 1, + anon_sym_SEMI, + [41947] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3361), 1, + anon_sym_SEMI, + [41954] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3363), 1, + aux_sym_preproc_if_token2, + [41961] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3365), 1, + anon_sym_COLON, + [41968] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2079), 1, + anon_sym_RPAREN, + [41975] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3367), 1, + anon_sym_SEMI, + [41982] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3369), 1, + anon_sym_SEMI, + [41989] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3371), 1, + aux_sym_preproc_if_token2, + [41996] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2095), 1, + anon_sym_SEMI, + [42003] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3373), 1, + aux_sym_preproc_if_token2, + [42010] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3375), 1, + sym_identifier, + [42017] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3377), 1, + aux_sym_preproc_if_token2, + [42024] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2119), 1, + anon_sym_RPAREN, + [42031] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3379), 1, + sym_identifier, + [42038] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3381), 1, + anon_sym_SEMI, + [42045] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3383), 1, + anon_sym_RPAREN, + [42052] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2059), 1, + anon_sym_RPAREN, + [42059] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3385), 1, + anon_sym_RPAREN, + [42066] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2131), 1, + anon_sym_RPAREN, + [42073] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2111), 1, + anon_sym_RPAREN, + [42080] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2077), 1, + anon_sym_SEMI, + [42087] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3387), 1, + anon_sym_SEMI, + [42094] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2105), 1, + anon_sym_SEMI, + [42101] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3389), 1, + aux_sym_preproc_if_token2, + [42108] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3391), 1, + aux_sym_preproc_if_token2, + [42115] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3393), 1, + anon_sym_RPAREN, + [42122] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2169), 1, + anon_sym_SEMI, + [42129] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3395), 1, + anon_sym_LF, + [42136] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3397), 1, + aux_sym_preproc_if_token2, + [42143] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3399), 1, + aux_sym_preproc_if_token2, + [42150] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2141), 1, + anon_sym_RPAREN, + [42157] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2159), 1, + anon_sym_RPAREN, + [42164] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3401), 1, + sym_identifier, + [42171] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3403), 1, + anon_sym_STAR, + [42178] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3405), 1, + aux_sym_preproc_if_token2, + [42185] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3407), 1, + anon_sym_RPAREN, + [42192] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3409), 1, + anon_sym_LF, + [42199] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3411), 1, + anon_sym_RPAREN, + [42206] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2137), 1, + anon_sym_SEMI, + [42213] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3413), 1, + anon_sym_SEMI, + [42220] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3415), 1, + sym_identifier, + [42227] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3417), 1, + aux_sym_preproc_if_token2, + [42234] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3419), 1, + sym_identifier, + [42241] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3421), 1, + sym_identifier, + [42248] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3423), 1, + aux_sym_preproc_if_token2, + [42255] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3183), 1, + anon_sym_RBRACE, + [42262] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3425), 1, + aux_sym_preproc_if_token2, + [42269] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3427), 1, + anon_sym_SEMI, + [42276] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3429), 1, + anon_sym_RPAREN, + [42283] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3431), 1, + sym_identifier, + [42290] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3433), 1, + anon_sym_SEMI, + [42297] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3435), 1, + anon_sym_SEMI, + [42304] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2133), 1, + anon_sym_RPAREN, + [42311] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2093), 1, + anon_sym_RPAREN, + [42318] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3437), 1, + sym_identifier, + [42325] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3439), 1, + anon_sym_RPAREN, + [42332] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2099), 1, + anon_sym_RPAREN, + [42339] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3441), 1, + anon_sym_STAR, + [42346] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3443), 1, + sym_identifier, + [42353] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_RPAREN, + [42360] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3445), 1, + anon_sym_RPAREN, + [42367] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3447), 1, + anon_sym_SEMI, + [42374] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3449), 1, + aux_sym_preproc_if_token2, + [42381] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3451), 1, + aux_sym_preproc_if_token2, + [42388] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2107), 1, + anon_sym_SEMI, + [42395] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3453), 1, + aux_sym_preproc_if_token2, + [42402] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2109), 1, + anon_sym_SEMI, + [42409] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3455), 1, + sym_identifier, + [42416] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3457), 1, + aux_sym_preproc_if_token2, + [42423] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2173), 1, + anon_sym_SEMI, + [42430] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3459), 1, + anon_sym_LF, + [42437] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3461), 1, + sym_identifier, + [42444] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3463), 1, + sym_identifier, + [42451] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3465), 1, + aux_sym_preproc_if_token2, + [42458] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3467), 1, + aux_sym_preproc_if_token2, + [42465] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3469), 1, + sym_identifier, + [42472] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3471), 1, + sym_identifier, + [42479] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3473), 1, + anon_sym_LF, + [42486] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3475), 1, + anon_sym_STAR, + [42493] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3477), 1, + anon_sym_RPAREN, + [42500] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3479), 1, + aux_sym_preproc_if_token2, + [42507] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3481), 1, + anon_sym_SQUOTE, + [42514] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3483), 1, + aux_sym_preproc_if_token2, + [42521] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3485), 1, + anon_sym_SEMI, + [42528] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2073), 1, + anon_sym_SEMI, + [42535] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3487), 1, + anon_sym_while, + [42542] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2127), 1, + anon_sym_SEMI, + [42549] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3489), 1, + aux_sym_preproc_if_token2, + [42556] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2139), 1, + anon_sym_SEMI, + [42563] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3491), 1, + anon_sym_LF, + [42570] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3493), 1, + anon_sym_SQUOTE, + [42577] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2121), 1, + anon_sym_SEMI, + [42584] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3495), 1, + sym_identifier, + [42591] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3497), 1, + sym_identifier, + [42598] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3499), 1, + sym_identifier, + [42605] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3501), 1, + anon_sym_SEMI, + [42612] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3503), 1, + sym_identifier, + [42619] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2083), 1, + anon_sym_SEMI, + [42626] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3505), 1, + aux_sym_preproc_if_token2, + [42633] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2171), 1, + anon_sym_RPAREN, + [42640] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3507), 1, + anon_sym_RPAREN, + [42647] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2167), 1, + anon_sym_RPAREN, + [42654] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3509), 1, + anon_sym_LF, + [42661] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3511), 1, + anon_sym_RPAREN, + [42668] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3513), 1, + aux_sym_preproc_if_token2, + [42675] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3515), 1, + anon_sym_while, + [42682] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3517), 1, + aux_sym_preproc_if_token2, + [42689] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3519), 1, + anon_sym_RPAREN, + [42696] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3086), 1, + anon_sym_LF, + [42703] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2157), 1, + anon_sym_SEMI, + [42710] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2151), 1, + anon_sym_SEMI, + [42717] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3521), 1, + ts_builtin_sym_end, + [42724] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3523), 1, + anon_sym_LF, + [42731] = 2, + ACTIONS(1635), 1, + anon_sym_LF, + ACTIONS(2397), 1, + sym_comment, + [42738] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3525), 1, + sym_identifier, + [42745] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3527), 1, + anon_sym_SEMI, + [42752] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3529), 1, + anon_sym_while, + [42759] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3531), 1, + anon_sym_SEMI, + [42766] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3533), 1, + anon_sym_LPAREN2, + [42773] = 2, + ACTIONS(2397), 1, + sym_comment, + ACTIONS(3082), 1, + anon_sym_LF, + [42780] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2113), 1, + anon_sym_SEMI, + [42787] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3535), 1, + anon_sym_COLON, + [42794] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2069), 1, + anon_sym_SEMI, + [42801] = 2, + ACTIONS(1645), 1, + anon_sym_LF, + ACTIONS(2397), 1, + sym_comment, + [42808] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3537), 1, + anon_sym_COLON, + [42815] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3539), 1, + anon_sym_while, + [42822] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3541), 1, + anon_sym_RPAREN, + [42829] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3543), 1, + anon_sym_SEMI, + [42836] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2081), 1, + anon_sym_SEMI, + [42843] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3545), 1, + anon_sym_LPAREN2, + [42850] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3547), 1, + anon_sym_SEMI, + [42857] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3549), 1, + anon_sym_LPAREN2, + [42864] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3551), 1, + anon_sym_LPAREN2, + [42871] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3553), 1, + anon_sym_COLON, + [42878] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3555), 1, + anon_sym_LPAREN2, + [42885] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3557), 1, + sym_identifier, + [42892] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3559), 1, + anon_sym_LPAREN2, +}; + +static const uint32_t ts_small_parse_table_map[] = { + [SMALL_STATE(382)] = 0, + [SMALL_STATE(383)] = 71, + [SMALL_STATE(384)] = 142, + [SMALL_STATE(385)] = 249, + [SMALL_STATE(386)] = 321, + [SMALL_STATE(387)] = 440, + [SMALL_STATE(388)] = 548, + [SMALL_STATE(389)] = 656, + [SMALL_STATE(390)] = 764, + [SMALL_STATE(391)] = 872, + [SMALL_STATE(392)] = 980, + [SMALL_STATE(393)] = 1088, + [SMALL_STATE(394)] = 1196, + [SMALL_STATE(395)] = 1304, + [SMALL_STATE(396)] = 1412, + [SMALL_STATE(397)] = 1520, + [SMALL_STATE(398)] = 1628, + [SMALL_STATE(399)] = 1736, + [SMALL_STATE(400)] = 1844, + [SMALL_STATE(401)] = 1952, + [SMALL_STATE(402)] = 2027, + [SMALL_STATE(403)] = 2102, + [SMALL_STATE(404)] = 2177, + [SMALL_STATE(405)] = 2254, + [SMALL_STATE(406)] = 2331, + [SMALL_STATE(407)] = 2406, + [SMALL_STATE(408)] = 2483, + [SMALL_STATE(409)] = 2560, + [SMALL_STATE(410)] = 2632, + [SMALL_STATE(411)] = 2732, + [SMALL_STATE(412)] = 2832, + [SMALL_STATE(413)] = 2929, + [SMALL_STATE(414)] = 3026, + [SMALL_STATE(415)] = 3124, + [SMALL_STATE(416)] = 3218, + [SMALL_STATE(417)] = 3316, + [SMALL_STATE(418)] = 3414, + [SMALL_STATE(419)] = 3512, + [SMALL_STATE(420)] = 3610, + [SMALL_STATE(421)] = 3708, + [SMALL_STATE(422)] = 3799, + [SMALL_STATE(423)] = 3890, + [SMALL_STATE(424)] = 3951, + [SMALL_STATE(425)] = 4042, + [SMALL_STATE(426)] = 4133, + [SMALL_STATE(427)] = 4224, + [SMALL_STATE(428)] = 4285, + [SMALL_STATE(429)] = 4376, + [SMALL_STATE(430)] = 4467, + [SMALL_STATE(431)] = 4558, + [SMALL_STATE(432)] = 4649, + [SMALL_STATE(433)] = 4740, + [SMALL_STATE(434)] = 4801, + [SMALL_STATE(435)] = 4904, + [SMALL_STATE(436)] = 4995, + [SMALL_STATE(437)] = 5050, + [SMALL_STATE(438)] = 5141, + [SMALL_STATE(439)] = 5232, + [SMALL_STATE(440)] = 5323, + [SMALL_STATE(441)] = 5378, + [SMALL_STATE(442)] = 5460, + [SMALL_STATE(443)] = 5542, + [SMALL_STATE(444)] = 5624, + [SMALL_STATE(445)] = 5706, + [SMALL_STATE(446)] = 5788, + [SMALL_STATE(447)] = 5870, + [SMALL_STATE(448)] = 5952, + [SMALL_STATE(449)] = 6034, + [SMALL_STATE(450)] = 6116, + [SMALL_STATE(451)] = 6198, + [SMALL_STATE(452)] = 6280, + [SMALL_STATE(453)] = 6362, + [SMALL_STATE(454)] = 6444, + [SMALL_STATE(455)] = 6526, + [SMALL_STATE(456)] = 6608, + [SMALL_STATE(457)] = 6690, + [SMALL_STATE(458)] = 6772, + [SMALL_STATE(459)] = 6854, + [SMALL_STATE(460)] = 6936, + [SMALL_STATE(461)] = 7018, + [SMALL_STATE(462)] = 7100, + [SMALL_STATE(463)] = 7182, + [SMALL_STATE(464)] = 7264, + [SMALL_STATE(465)] = 7346, + [SMALL_STATE(466)] = 7428, + [SMALL_STATE(467)] = 7510, + [SMALL_STATE(468)] = 7592, + [SMALL_STATE(469)] = 7674, + [SMALL_STATE(470)] = 7756, + [SMALL_STATE(471)] = 7838, + [SMALL_STATE(472)] = 7920, + [SMALL_STATE(473)] = 8002, + [SMALL_STATE(474)] = 8084, + [SMALL_STATE(475)] = 8166, + [SMALL_STATE(476)] = 8248, + [SMALL_STATE(477)] = 8330, + [SMALL_STATE(478)] = 8412, + [SMALL_STATE(479)] = 8494, + [SMALL_STATE(480)] = 8576, + [SMALL_STATE(481)] = 8658, + [SMALL_STATE(482)] = 8740, + [SMALL_STATE(483)] = 8822, + [SMALL_STATE(484)] = 8904, + [SMALL_STATE(485)] = 8986, + [SMALL_STATE(486)] = 9068, + [SMALL_STATE(487)] = 9150, + [SMALL_STATE(488)] = 9229, + [SMALL_STATE(489)] = 9280, + [SMALL_STATE(490)] = 9359, + [SMALL_STATE(491)] = 9438, + [SMALL_STATE(492)] = 9517, + [SMALL_STATE(493)] = 9596, + [SMALL_STATE(494)] = 9675, + [SMALL_STATE(495)] = 9754, + [SMALL_STATE(496)] = 9833, + [SMALL_STATE(497)] = 9912, + [SMALL_STATE(498)] = 9991, + [SMALL_STATE(499)] = 10070, + [SMALL_STATE(500)] = 10149, + [SMALL_STATE(501)] = 10228, + [SMALL_STATE(502)] = 10307, + [SMALL_STATE(503)] = 10386, + [SMALL_STATE(504)] = 10462, + [SMALL_STATE(505)] = 10538, + [SMALL_STATE(506)] = 10614, + [SMALL_STATE(507)] = 10674, + [SMALL_STATE(508)] = 10750, + [SMALL_STATE(509)] = 10826, + [SMALL_STATE(510)] = 10902, + [SMALL_STATE(511)] = 10978, + [SMALL_STATE(512)] = 11054, + [SMALL_STATE(513)] = 11130, + [SMALL_STATE(514)] = 11180, + [SMALL_STATE(515)] = 11256, + [SMALL_STATE(516)] = 11332, + [SMALL_STATE(517)] = 11382, + [SMALL_STATE(518)] = 11458, + [SMALL_STATE(519)] = 11534, + [SMALL_STATE(520)] = 11596, + [SMALL_STATE(521)] = 11672, + [SMALL_STATE(522)] = 11748, + [SMALL_STATE(523)] = 11806, + [SMALL_STATE(524)] = 11856, + [SMALL_STATE(525)] = 11916, + [SMALL_STATE(526)] = 11992, + [SMALL_STATE(527)] = 12068, + [SMALL_STATE(528)] = 12118, + [SMALL_STATE(529)] = 12194, + [SMALL_STATE(530)] = 12254, + [SMALL_STATE(531)] = 12330, + [SMALL_STATE(532)] = 12406, + [SMALL_STATE(533)] = 12482, + [SMALL_STATE(534)] = 12558, + [SMALL_STATE(535)] = 12634, + [SMALL_STATE(536)] = 12684, + [SMALL_STATE(537)] = 12760, + [SMALL_STATE(538)] = 12836, + [SMALL_STATE(539)] = 12912, + [SMALL_STATE(540)] = 12988, + [SMALL_STATE(541)] = 13064, + [SMALL_STATE(542)] = 13140, + [SMALL_STATE(543)] = 13216, + [SMALL_STATE(544)] = 13292, + [SMALL_STATE(545)] = 13368, + [SMALL_STATE(546)] = 13418, + [SMALL_STATE(547)] = 13468, + [SMALL_STATE(548)] = 13518, + [SMALL_STATE(549)] = 13594, + [SMALL_STATE(550)] = 13644, + [SMALL_STATE(551)] = 13720, + [SMALL_STATE(552)] = 13802, + [SMALL_STATE(553)] = 13878, + [SMALL_STATE(554)] = 13954, + [SMALL_STATE(555)] = 14030, + [SMALL_STATE(556)] = 14106, + [SMALL_STATE(557)] = 14182, + [SMALL_STATE(558)] = 14258, + [SMALL_STATE(559)] = 14334, + [SMALL_STATE(560)] = 14410, + [SMALL_STATE(561)] = 14486, + [SMALL_STATE(562)] = 14562, + [SMALL_STATE(563)] = 14638, + [SMALL_STATE(564)] = 14714, + [SMALL_STATE(565)] = 14790, + [SMALL_STATE(566)] = 14866, + [SMALL_STATE(567)] = 14942, + [SMALL_STATE(568)] = 15018, + [SMALL_STATE(569)] = 15094, + [SMALL_STATE(570)] = 15170, + [SMALL_STATE(571)] = 15220, + [SMALL_STATE(572)] = 15296, + [SMALL_STATE(573)] = 15372, + [SMALL_STATE(574)] = 15448, + [SMALL_STATE(575)] = 15524, + [SMALL_STATE(576)] = 15600, + [SMALL_STATE(577)] = 15676, + [SMALL_STATE(578)] = 15752, + [SMALL_STATE(579)] = 15828, + [SMALL_STATE(580)] = 15904, + [SMALL_STATE(581)] = 15954, + [SMALL_STATE(582)] = 16004, + [SMALL_STATE(583)] = 16064, + [SMALL_STATE(584)] = 16148, + [SMALL_STATE(585)] = 16224, + [SMALL_STATE(586)] = 16274, + [SMALL_STATE(587)] = 16324, + [SMALL_STATE(588)] = 16400, + [SMALL_STATE(589)] = 16476, + [SMALL_STATE(590)] = 16552, + [SMALL_STATE(591)] = 16628, + [SMALL_STATE(592)] = 16704, + [SMALL_STATE(593)] = 16780, + [SMALL_STATE(594)] = 16856, + [SMALL_STATE(595)] = 16920, + [SMALL_STATE(596)] = 16986, + [SMALL_STATE(597)] = 17056, + [SMALL_STATE(598)] = 17128, + [SMALL_STATE(599)] = 17202, + [SMALL_STATE(600)] = 17278, + [SMALL_STATE(601)] = 17356, + [SMALL_STATE(602)] = 17436, + [SMALL_STATE(603)] = 17512, + [SMALL_STATE(604)] = 17588, + [SMALL_STATE(605)] = 17650, + [SMALL_STATE(606)] = 17700, + [SMALL_STATE(607)] = 17766, + [SMALL_STATE(608)] = 17842, + [SMALL_STATE(609)] = 17918, + [SMALL_STATE(610)] = 17971, + [SMALL_STATE(611)] = 18053, + [SMALL_STATE(612)] = 18100, + [SMALL_STATE(613)] = 18153, + [SMALL_STATE(614)] = 18200, + [SMALL_STATE(615)] = 18247, + [SMALL_STATE(616)] = 18300, + [SMALL_STATE(617)] = 18353, + [SMALL_STATE(618)] = 18406, + [SMALL_STATE(619)] = 18485, + [SMALL_STATE(620)] = 18555, + [SMALL_STATE(621)] = 18635, + [SMALL_STATE(622)] = 18691, + [SMALL_STATE(623)] = 18745, + [SMALL_STATE(624)] = 18821, + [SMALL_STATE(625)] = 18895, + [SMALL_STATE(626)] = 18957, + [SMALL_STATE(627)] = 19029, + [SMALL_STATE(628)] = 19085, + [SMALL_STATE(629)] = 19153, + [SMALL_STATE(630)] = 19219, + [SMALL_STATE(631)] = 19275, + [SMALL_STATE(632)] = 19337, + [SMALL_STATE(633)] = 19397, + [SMALL_STATE(634)] = 19455, + [SMALL_STATE(635)] = 19533, + [SMALL_STATE(636)] = 19589, + [SMALL_STATE(637)] = 19634, + [SMALL_STATE(638)] = 19683, + [SMALL_STATE(639)] = 19728, + [SMALL_STATE(640)] = 19773, + [SMALL_STATE(641)] = 19829, + [SMALL_STATE(642)] = 19901, + [SMALL_STATE(643)] = 19973, + [SMALL_STATE(644)] = 20045, + [SMALL_STATE(645)] = 20117, + [SMALL_STATE(646)] = 20186, + [SMALL_STATE(647)] = 20260, + [SMALL_STATE(648)] = 20304, + [SMALL_STATE(649)] = 20365, + [SMALL_STATE(650)] = 20436, + [SMALL_STATE(651)] = 20509, + [SMALL_STATE(652)] = 20564, + [SMALL_STATE(653)] = 20621, + [SMALL_STATE(654)] = 20684, + [SMALL_STATE(655)] = 20749, + [SMALL_STATE(656)] = 20816, + [SMALL_STATE(657)] = 20883, + [SMALL_STATE(658)] = 20952, + [SMALL_STATE(659)] = 21005, + [SMALL_STATE(660)] = 21062, + [SMALL_STATE(661)] = 21101, + [SMALL_STATE(662)] = 21139, + [SMALL_STATE(663)] = 21177, + [SMALL_STATE(664)] = 21214, + [SMALL_STATE(665)] = 21289, + [SMALL_STATE(666)] = 21326, + [SMALL_STATE(667)] = 21363, + [SMALL_STATE(668)] = 21400, + [SMALL_STATE(669)] = 21437, + [SMALL_STATE(670)] = 21474, + [SMALL_STATE(671)] = 21511, + [SMALL_STATE(672)] = 21548, + [SMALL_STATE(673)] = 21585, + [SMALL_STATE(674)] = 21622, + [SMALL_STATE(675)] = 21659, + [SMALL_STATE(676)] = 21696, + [SMALL_STATE(677)] = 21733, + [SMALL_STATE(678)] = 21770, + [SMALL_STATE(679)] = 21845, + [SMALL_STATE(680)] = 21882, + [SMALL_STATE(681)] = 21919, + [SMALL_STATE(682)] = 21956, + [SMALL_STATE(683)] = 21993, + [SMALL_STATE(684)] = 22030, + [SMALL_STATE(685)] = 22067, + [SMALL_STATE(686)] = 22104, + [SMALL_STATE(687)] = 22141, + [SMALL_STATE(688)] = 22178, + [SMALL_STATE(689)] = 22215, + [SMALL_STATE(690)] = 22288, + [SMALL_STATE(691)] = 22363, + [SMALL_STATE(692)] = 22435, + [SMALL_STATE(693)] = 22471, + [SMALL_STATE(694)] = 22543, + [SMALL_STATE(695)] = 22615, + [SMALL_STATE(696)] = 22687, + [SMALL_STATE(697)] = 22759, + [SMALL_STATE(698)] = 22831, + [SMALL_STATE(699)] = 22903, + [SMALL_STATE(700)] = 22975, + [SMALL_STATE(701)] = 23047, + [SMALL_STATE(702)] = 23119, + [SMALL_STATE(703)] = 23191, + [SMALL_STATE(704)] = 23263, + [SMALL_STATE(705)] = 23335, + [SMALL_STATE(706)] = 23407, + [SMALL_STATE(707)] = 23477, + [SMALL_STATE(708)] = 23525, + [SMALL_STATE(709)] = 23597, + [SMALL_STATE(710)] = 23669, + [SMALL_STATE(711)] = 23741, + [SMALL_STATE(712)] = 23813, + [SMALL_STATE(713)] = 23861, + [SMALL_STATE(714)] = 23933, + [SMALL_STATE(715)] = 24005, + [SMALL_STATE(716)] = 24077, + [SMALL_STATE(717)] = 24149, + [SMALL_STATE(718)] = 24221, + [SMALL_STATE(719)] = 24293, + [SMALL_STATE(720)] = 24365, + [SMALL_STATE(721)] = 24437, + [SMALL_STATE(722)] = 24509, + [SMALL_STATE(723)] = 24581, + [SMALL_STATE(724)] = 24651, + [SMALL_STATE(725)] = 24723, + [SMALL_STATE(726)] = 24795, + [SMALL_STATE(727)] = 24867, + [SMALL_STATE(728)] = 24939, + [SMALL_STATE(729)] = 25009, + [SMALL_STATE(730)] = 25081, + [SMALL_STATE(731)] = 25117, + [SMALL_STATE(732)] = 25189, + [SMALL_STATE(733)] = 25261, + [SMALL_STATE(734)] = 25333, + [SMALL_STATE(735)] = 25405, + [SMALL_STATE(736)] = 25477, + [SMALL_STATE(737)] = 25549, + [SMALL_STATE(738)] = 25621, + [SMALL_STATE(739)] = 25693, + [SMALL_STATE(740)] = 25765, + [SMALL_STATE(741)] = 25837, + [SMALL_STATE(742)] = 25909, + [SMALL_STATE(743)] = 25979, + [SMALL_STATE(744)] = 26027, + [SMALL_STATE(745)] = 26099, + [SMALL_STATE(746)] = 26171, + [SMALL_STATE(747)] = 26243, + [SMALL_STATE(748)] = 26315, + [SMALL_STATE(749)] = 26387, + [SMALL_STATE(750)] = 26459, + [SMALL_STATE(751)] = 26507, + [SMALL_STATE(752)] = 26577, + [SMALL_STATE(753)] = 26646, + [SMALL_STATE(754)] = 26715, + [SMALL_STATE(755)] = 26768, + [SMALL_STATE(756)] = 26837, + [SMALL_STATE(757)] = 26906, + [SMALL_STATE(758)] = 26975, + [SMALL_STATE(759)] = 27018, + [SMALL_STATE(760)] = 27087, + [SMALL_STATE(761)] = 27156, + [SMALL_STATE(762)] = 27191, + [SMALL_STATE(763)] = 27260, + [SMALL_STATE(764)] = 27299, + [SMALL_STATE(765)] = 27334, + [SMALL_STATE(766)] = 27369, + [SMALL_STATE(767)] = 27404, + [SMALL_STATE(768)] = 27439, + [SMALL_STATE(769)] = 27474, + [SMALL_STATE(770)] = 27509, + [SMALL_STATE(771)] = 27544, + [SMALL_STATE(772)] = 27613, + [SMALL_STATE(773)] = 27648, + [SMALL_STATE(774)] = 27683, + [SMALL_STATE(775)] = 27718, + [SMALL_STATE(776)] = 27753, + [SMALL_STATE(777)] = 27788, + [SMALL_STATE(778)] = 27857, + [SMALL_STATE(779)] = 27892, + [SMALL_STATE(780)] = 27927, + [SMALL_STATE(781)] = 27996, + [SMALL_STATE(782)] = 28065, + [SMALL_STATE(783)] = 28100, + [SMALL_STATE(784)] = 28169, + [SMALL_STATE(785)] = 28208, + [SMALL_STATE(786)] = 28243, + [SMALL_STATE(787)] = 28278, + [SMALL_STATE(788)] = 28317, + [SMALL_STATE(789)] = 28386, + [SMALL_STATE(790)] = 28421, + [SMALL_STATE(791)] = 28456, + [SMALL_STATE(792)] = 28491, + [SMALL_STATE(793)] = 28526, + [SMALL_STATE(794)] = 28561, + [SMALL_STATE(795)] = 28596, + [SMALL_STATE(796)] = 28631, + [SMALL_STATE(797)] = 28700, + [SMALL_STATE(798)] = 28735, + [SMALL_STATE(799)] = 28802, + [SMALL_STATE(800)] = 28837, + [SMALL_STATE(801)] = 28872, + [SMALL_STATE(802)] = 28921, + [SMALL_STATE(803)] = 28986, + [SMALL_STATE(804)] = 29055, + [SMALL_STATE(805)] = 29124, + [SMALL_STATE(806)] = 29187, + [SMALL_STATE(807)] = 29250, + [SMALL_STATE(808)] = 29311, + [SMALL_STATE(809)] = 29370, + [SMALL_STATE(810)] = 29405, + [SMALL_STATE(811)] = 29462, + [SMALL_STATE(812)] = 29497, + [SMALL_STATE(813)] = 29566, + [SMALL_STATE(814)] = 29601, + [SMALL_STATE(815)] = 29636, + [SMALL_STATE(816)] = 29675, + [SMALL_STATE(817)] = 29710, + [SMALL_STATE(818)] = 29745, + [SMALL_STATE(819)] = 29784, + [SMALL_STATE(820)] = 29819, + [SMALL_STATE(821)] = 29872, + [SMALL_STATE(822)] = 29907, + [SMALL_STATE(823)] = 29942, + [SMALL_STATE(824)] = 29977, + [SMALL_STATE(825)] = 30046, + [SMALL_STATE(826)] = 30097, + [SMALL_STATE(827)] = 30166, + [SMALL_STATE(828)] = 30235, + [SMALL_STATE(829)] = 30304, + [SMALL_STATE(830)] = 30339, + [SMALL_STATE(831)] = 30374, + [SMALL_STATE(832)] = 30432, + [SMALL_STATE(833)] = 30487, + [SMALL_STATE(834)] = 30542, + [SMALL_STATE(835)] = 30597, + [SMALL_STATE(836)] = 30652, + [SMALL_STATE(837)] = 30707, + [SMALL_STATE(838)] = 30762, + [SMALL_STATE(839)] = 30817, + [SMALL_STATE(840)] = 30872, + [SMALL_STATE(841)] = 30927, + [SMALL_STATE(842)] = 30982, + [SMALL_STATE(843)] = 31037, + [SMALL_STATE(844)] = 31092, + [SMALL_STATE(845)] = 31138, + [SMALL_STATE(846)] = 31184, + [SMALL_STATE(847)] = 31230, + [SMALL_STATE(848)] = 31276, + [SMALL_STATE(849)] = 31311, + [SMALL_STATE(850)] = 31346, + [SMALL_STATE(851)] = 31381, + [SMALL_STATE(852)] = 31416, + [SMALL_STATE(853)] = 31467, + [SMALL_STATE(854)] = 31502, + [SMALL_STATE(855)] = 31550, + [SMALL_STATE(856)] = 31598, + [SMALL_STATE(857)] = 31646, + [SMALL_STATE(858)] = 31694, + [SMALL_STATE(859)] = 31742, + [SMALL_STATE(860)] = 31790, + [SMALL_STATE(861)] = 31838, + [SMALL_STATE(862)] = 31886, + [SMALL_STATE(863)] = 31934, + [SMALL_STATE(864)] = 31968, + [SMALL_STATE(865)] = 31997, + [SMALL_STATE(866)] = 32026, + [SMALL_STATE(867)] = 32055, + [SMALL_STATE(868)] = 32110, + [SMALL_STATE(869)] = 32139, + [SMALL_STATE(870)] = 32168, + [SMALL_STATE(871)] = 32197, + [SMALL_STATE(872)] = 32226, + [SMALL_STATE(873)] = 32281, + [SMALL_STATE(874)] = 32310, + [SMALL_STATE(875)] = 32339, + [SMALL_STATE(876)] = 32368, + [SMALL_STATE(877)] = 32411, + [SMALL_STATE(878)] = 32444, + [SMALL_STATE(879)] = 32473, + [SMALL_STATE(880)] = 32502, + [SMALL_STATE(881)] = 32533, + [SMALL_STATE(882)] = 32562, + [SMALL_STATE(883)] = 32595, + [SMALL_STATE(884)] = 32624, + [SMALL_STATE(885)] = 32653, + [SMALL_STATE(886)] = 32682, + [SMALL_STATE(887)] = 32711, + [SMALL_STATE(888)] = 32740, + [SMALL_STATE(889)] = 32783, + [SMALL_STATE(890)] = 32812, + [SMALL_STATE(891)] = 32841, + [SMALL_STATE(892)] = 32870, + [SMALL_STATE(893)] = 32904, + [SMALL_STATE(894)] = 32932, + [SMALL_STATE(895)] = 32972, + [SMALL_STATE(896)] = 33000, + [SMALL_STATE(897)] = 33048, + [SMALL_STATE(898)] = 33094, + [SMALL_STATE(899)] = 33140, + [SMALL_STATE(900)] = 33184, + [SMALL_STATE(901)] = 33226, + [SMALL_STATE(902)] = 33266, + [SMALL_STATE(903)] = 33306, + [SMALL_STATE(904)] = 33334, + [SMALL_STATE(905)] = 33370, + [SMALL_STATE(906)] = 33410, + [SMALL_STATE(907)] = 33438, + [SMALL_STATE(908)] = 33478, + [SMALL_STATE(909)] = 33506, + [SMALL_STATE(910)] = 33546, + [SMALL_STATE(911)] = 33586, + [SMALL_STATE(912)] = 33626, + [SMALL_STATE(913)] = 33666, + [SMALL_STATE(914)] = 33706, + [SMALL_STATE(915)] = 33756, + [SMALL_STATE(916)] = 33796, + [SMALL_STATE(917)] = 33836, + [SMALL_STATE(918)] = 33876, + [SMALL_STATE(919)] = 33916, + [SMALL_STATE(920)] = 33956, + [SMALL_STATE(921)] = 33996, + [SMALL_STATE(922)] = 34024, + [SMALL_STATE(923)] = 34052, + [SMALL_STATE(924)] = 34092, + [SMALL_STATE(925)] = 34132, + [SMALL_STATE(926)] = 34172, + [SMALL_STATE(927)] = 34204, + [SMALL_STATE(928)] = 34244, + [SMALL_STATE(929)] = 34284, + [SMALL_STATE(930)] = 34312, + [SMALL_STATE(931)] = 34352, + [SMALL_STATE(932)] = 34392, + [SMALL_STATE(933)] = 34432, + [SMALL_STATE(934)] = 34472, + [SMALL_STATE(935)] = 34500, + [SMALL_STATE(936)] = 34540, + [SMALL_STATE(937)] = 34580, + [SMALL_STATE(938)] = 34620, + [SMALL_STATE(939)] = 34648, + [SMALL_STATE(940)] = 34688, + [SMALL_STATE(941)] = 34728, + [SMALL_STATE(942)] = 34768, + [SMALL_STATE(943)] = 34808, + [SMALL_STATE(944)] = 34848, + [SMALL_STATE(945)] = 34888, + [SMALL_STATE(946)] = 34928, + [SMALL_STATE(947)] = 34976, + [SMALL_STATE(948)] = 35009, + [SMALL_STATE(949)] = 35052, + [SMALL_STATE(950)] = 35079, + [SMALL_STATE(951)] = 35124, + [SMALL_STATE(952)] = 35169, + [SMALL_STATE(953)] = 35196, + [SMALL_STATE(954)] = 35223, + [SMALL_STATE(955)] = 35268, + [SMALL_STATE(956)] = 35313, + [SMALL_STATE(957)] = 35358, + [SMALL_STATE(958)] = 35385, + [SMALL_STATE(959)] = 35412, + [SMALL_STATE(960)] = 35439, + [SMALL_STATE(961)] = 35470, + [SMALL_STATE(962)] = 35519, + [SMALL_STATE(963)] = 35546, + [SMALL_STATE(964)] = 35591, + [SMALL_STATE(965)] = 35640, + [SMALL_STATE(966)] = 35685, + [SMALL_STATE(967)] = 35730, + [SMALL_STATE(968)] = 35775, + [SMALL_STATE(969)] = 35802, + [SMALL_STATE(970)] = 35835, + [SMALL_STATE(971)] = 35870, + [SMALL_STATE(972)] = 35907, + [SMALL_STATE(973)] = 35934, + [SMALL_STATE(974)] = 35973, + [SMALL_STATE(975)] = 36002, + [SMALL_STATE(976)] = 36029, + [SMALL_STATE(977)] = 36070, + [SMALL_STATE(978)] = 36115, + [SMALL_STATE(979)] = 36154, + [SMALL_STATE(980)] = 36193, + [SMALL_STATE(981)] = 36232, + [SMALL_STATE(982)] = 36271, + [SMALL_STATE(983)] = 36310, + [SMALL_STATE(984)] = 36349, + [SMALL_STATE(985)] = 36388, + [SMALL_STATE(986)] = 36427, + [SMALL_STATE(987)] = 36466, + [SMALL_STATE(988)] = 36504, + [SMALL_STATE(989)] = 36542, + [SMALL_STATE(990)] = 36580, + [SMALL_STATE(991)] = 36618, + [SMALL_STATE(992)] = 36656, + [SMALL_STATE(993)] = 36688, + [SMALL_STATE(994)] = 36726, + [SMALL_STATE(995)] = 36757, + [SMALL_STATE(996)] = 36795, + [SMALL_STATE(997)] = 36833, + [SMALL_STATE(998)] = 36871, + [SMALL_STATE(999)] = 36892, + [SMALL_STATE(1000)] = 36913, + [SMALL_STATE(1001)] = 36951, + [SMALL_STATE(1002)] = 36989, + [SMALL_STATE(1003)] = 37027, + [SMALL_STATE(1004)] = 37059, + [SMALL_STATE(1005)] = 37091, + [SMALL_STATE(1006)] = 37123, + [SMALL_STATE(1007)] = 37155, + [SMALL_STATE(1008)] = 37187, + [SMALL_STATE(1009)] = 37219, + [SMALL_STATE(1010)] = 37257, + [SMALL_STATE(1011)] = 37289, + [SMALL_STATE(1012)] = 37321, + [SMALL_STATE(1013)] = 37353, + [SMALL_STATE(1014)] = 37376, + [SMALL_STATE(1015)] = 37405, + [SMALL_STATE(1016)] = 37432, + [SMALL_STATE(1017)] = 37467, + [SMALL_STATE(1018)] = 37494, + [SMALL_STATE(1019)] = 37523, + [SMALL_STATE(1020)] = 37552, + [SMALL_STATE(1021)] = 37579, + [SMALL_STATE(1022)] = 37608, + [SMALL_STATE(1023)] = 37637, + [SMALL_STATE(1024)] = 37666, + [SMALL_STATE(1025)] = 37695, + [SMALL_STATE(1026)] = 37718, + [SMALL_STATE(1027)] = 37747, + [SMALL_STATE(1028)] = 37776, + [SMALL_STATE(1029)] = 37811, + [SMALL_STATE(1030)] = 37840, + [SMALL_STATE(1031)] = 37863, + [SMALL_STATE(1032)] = 37892, + [SMALL_STATE(1033)] = 37915, + [SMALL_STATE(1034)] = 37944, + [SMALL_STATE(1035)] = 37973, + [SMALL_STATE(1036)] = 38002, + [SMALL_STATE(1037)] = 38031, + [SMALL_STATE(1038)] = 38060, + [SMALL_STATE(1039)] = 38089, + [SMALL_STATE(1040)] = 38116, + [SMALL_STATE(1041)] = 38151, + [SMALL_STATE(1042)] = 38183, + [SMALL_STATE(1043)] = 38215, + [SMALL_STATE(1044)] = 38237, + [SMALL_STATE(1045)] = 38263, + [SMALL_STATE(1046)] = 38295, + [SMALL_STATE(1047)] = 38327, + [SMALL_STATE(1048)] = 38353, + [SMALL_STATE(1049)] = 38379, + [SMALL_STATE(1050)] = 38397, + [SMALL_STATE(1051)] = 38415, + [SMALL_STATE(1052)] = 38433, + [SMALL_STATE(1053)] = 38459, + [SMALL_STATE(1054)] = 38486, + [SMALL_STATE(1055)] = 38515, + [SMALL_STATE(1056)] = 38544, + [SMALL_STATE(1057)] = 38565, + [SMALL_STATE(1058)] = 38594, + [SMALL_STATE(1059)] = 38623, + [SMALL_STATE(1060)] = 38648, + [SMALL_STATE(1061)] = 38677, + [SMALL_STATE(1062)] = 38702, + [SMALL_STATE(1063)] = 38723, + [SMALL_STATE(1064)] = 38744, + [SMALL_STATE(1065)] = 38765, + [SMALL_STATE(1066)] = 38794, + [SMALL_STATE(1067)] = 38823, + [SMALL_STATE(1068)] = 38848, + [SMALL_STATE(1069)] = 38877, + [SMALL_STATE(1070)] = 38902, + [SMALL_STATE(1071)] = 38927, + [SMALL_STATE(1072)] = 38948, + [SMALL_STATE(1073)] = 38972, + [SMALL_STATE(1074)] = 38988, + [SMALL_STATE(1075)] = 39014, + [SMALL_STATE(1076)] = 39030, + [SMALL_STATE(1077)] = 39056, + [SMALL_STATE(1078)] = 39072, + [SMALL_STATE(1079)] = 39088, + [SMALL_STATE(1080)] = 39108, + [SMALL_STATE(1081)] = 39134, + [SMALL_STATE(1082)] = 39160, + [SMALL_STATE(1083)] = 39184, + [SMALL_STATE(1084)] = 39200, + [SMALL_STATE(1085)] = 39216, + [SMALL_STATE(1086)] = 39231, + [SMALL_STATE(1087)] = 39246, + [SMALL_STATE(1088)] = 39261, + [SMALL_STATE(1089)] = 39284, + [SMALL_STATE(1090)] = 39299, + [SMALL_STATE(1091)] = 39322, + [SMALL_STATE(1092)] = 39337, + [SMALL_STATE(1093)] = 39352, + [SMALL_STATE(1094)] = 39367, + [SMALL_STATE(1095)] = 39382, + [SMALL_STATE(1096)] = 39405, + [SMALL_STATE(1097)] = 39419, + [SMALL_STATE(1098)] = 39433, + [SMALL_STATE(1099)] = 39447, + [SMALL_STATE(1100)] = 39465, + [SMALL_STATE(1101)] = 39479, + [SMALL_STATE(1102)] = 39493, + [SMALL_STATE(1103)] = 39507, + [SMALL_STATE(1104)] = 39521, + [SMALL_STATE(1105)] = 39535, + [SMALL_STATE(1106)] = 39553, + [SMALL_STATE(1107)] = 39572, + [SMALL_STATE(1108)] = 39589, + [SMALL_STATE(1109)] = 39606, + [SMALL_STATE(1110)] = 39625, + [SMALL_STATE(1111)] = 39642, + [SMALL_STATE(1112)] = 39661, + [SMALL_STATE(1113)] = 39680, + [SMALL_STATE(1114)] = 39697, + [SMALL_STATE(1115)] = 39716, + [SMALL_STATE(1116)] = 39732, + [SMALL_STATE(1117)] = 39742, + [SMALL_STATE(1118)] = 39758, + [SMALL_STATE(1119)] = 39774, + [SMALL_STATE(1120)] = 39784, + [SMALL_STATE(1121)] = 39794, + [SMALL_STATE(1122)] = 39804, + [SMALL_STATE(1123)] = 39820, + [SMALL_STATE(1124)] = 39836, + [SMALL_STATE(1125)] = 39846, + [SMALL_STATE(1126)] = 39860, + [SMALL_STATE(1127)] = 39876, + [SMALL_STATE(1128)] = 39892, + [SMALL_STATE(1129)] = 39902, + [SMALL_STATE(1130)] = 39918, + [SMALL_STATE(1131)] = 39934, + [SMALL_STATE(1132)] = 39944, + [SMALL_STATE(1133)] = 39960, + [SMALL_STATE(1134)] = 39976, + [SMALL_STATE(1135)] = 39986, + [SMALL_STATE(1136)] = 40002, + [SMALL_STATE(1137)] = 40016, + [SMALL_STATE(1138)] = 40032, + [SMALL_STATE(1139)] = 40042, + [SMALL_STATE(1140)] = 40058, + [SMALL_STATE(1141)] = 40074, + [SMALL_STATE(1142)] = 40084, + [SMALL_STATE(1143)] = 40094, + [SMALL_STATE(1144)] = 40110, + [SMALL_STATE(1145)] = 40126, + [SMALL_STATE(1146)] = 40142, + [SMALL_STATE(1147)] = 40158, + [SMALL_STATE(1148)] = 40168, + [SMALL_STATE(1149)] = 40184, + [SMALL_STATE(1150)] = 40197, + [SMALL_STATE(1151)] = 40210, + [SMALL_STATE(1152)] = 40223, + [SMALL_STATE(1153)] = 40236, + [SMALL_STATE(1154)] = 40249, + [SMALL_STATE(1155)] = 40262, + [SMALL_STATE(1156)] = 40275, + [SMALL_STATE(1157)] = 40288, + [SMALL_STATE(1158)] = 40301, + [SMALL_STATE(1159)] = 40314, + [SMALL_STATE(1160)] = 40327, + [SMALL_STATE(1161)] = 40340, + [SMALL_STATE(1162)] = 40353, + [SMALL_STATE(1163)] = 40366, + [SMALL_STATE(1164)] = 40379, + [SMALL_STATE(1165)] = 40392, + [SMALL_STATE(1166)] = 40405, + [SMALL_STATE(1167)] = 40418, + [SMALL_STATE(1168)] = 40431, + [SMALL_STATE(1169)] = 40444, + [SMALL_STATE(1170)] = 40457, + [SMALL_STATE(1171)] = 40470, + [SMALL_STATE(1172)] = 40483, + [SMALL_STATE(1173)] = 40496, + [SMALL_STATE(1174)] = 40509, + [SMALL_STATE(1175)] = 40522, + [SMALL_STATE(1176)] = 40535, + [SMALL_STATE(1177)] = 40548, + [SMALL_STATE(1178)] = 40561, + [SMALL_STATE(1179)] = 40574, + [SMALL_STATE(1180)] = 40587, + [SMALL_STATE(1181)] = 40600, + [SMALL_STATE(1182)] = 40613, + [SMALL_STATE(1183)] = 40626, + [SMALL_STATE(1184)] = 40639, + [SMALL_STATE(1185)] = 40652, + [SMALL_STATE(1186)] = 40661, + [SMALL_STATE(1187)] = 40674, + [SMALL_STATE(1188)] = 40687, + [SMALL_STATE(1189)] = 40700, + [SMALL_STATE(1190)] = 40713, + [SMALL_STATE(1191)] = 40724, + [SMALL_STATE(1192)] = 40737, + [SMALL_STATE(1193)] = 40750, + [SMALL_STATE(1194)] = 40763, + [SMALL_STATE(1195)] = 40776, + [SMALL_STATE(1196)] = 40789, + [SMALL_STATE(1197)] = 40802, + [SMALL_STATE(1198)] = 40815, + [SMALL_STATE(1199)] = 40828, + [SMALL_STATE(1200)] = 40841, + [SMALL_STATE(1201)] = 40852, + [SMALL_STATE(1202)] = 40865, + [SMALL_STATE(1203)] = 40878, + [SMALL_STATE(1204)] = 40891, + [SMALL_STATE(1205)] = 40904, + [SMALL_STATE(1206)] = 40917, + [SMALL_STATE(1207)] = 40930, + [SMALL_STATE(1208)] = 40939, + [SMALL_STATE(1209)] = 40952, + [SMALL_STATE(1210)] = 40960, + [SMALL_STATE(1211)] = 40970, + [SMALL_STATE(1212)] = 40978, + [SMALL_STATE(1213)] = 40988, + [SMALL_STATE(1214)] = 40996, + [SMALL_STATE(1215)] = 41006, + [SMALL_STATE(1216)] = 41016, + [SMALL_STATE(1217)] = 41026, + [SMALL_STATE(1218)] = 41034, + [SMALL_STATE(1219)] = 41044, + [SMALL_STATE(1220)] = 41054, + [SMALL_STATE(1221)] = 41062, + [SMALL_STATE(1222)] = 41072, + [SMALL_STATE(1223)] = 41080, + [SMALL_STATE(1224)] = 41090, + [SMALL_STATE(1225)] = 41098, + [SMALL_STATE(1226)] = 41108, + [SMALL_STATE(1227)] = 41118, + [SMALL_STATE(1228)] = 41128, + [SMALL_STATE(1229)] = 41136, + [SMALL_STATE(1230)] = 41144, + [SMALL_STATE(1231)] = 41154, + [SMALL_STATE(1232)] = 41164, + [SMALL_STATE(1233)] = 41172, + [SMALL_STATE(1234)] = 41180, + [SMALL_STATE(1235)] = 41190, + [SMALL_STATE(1236)] = 41198, + [SMALL_STATE(1237)] = 41206, + [SMALL_STATE(1238)] = 41214, + [SMALL_STATE(1239)] = 41224, + [SMALL_STATE(1240)] = 41232, + [SMALL_STATE(1241)] = 41242, + [SMALL_STATE(1242)] = 41250, + [SMALL_STATE(1243)] = 41260, + [SMALL_STATE(1244)] = 41270, + [SMALL_STATE(1245)] = 41280, + [SMALL_STATE(1246)] = 41290, + [SMALL_STATE(1247)] = 41300, + [SMALL_STATE(1248)] = 41310, + [SMALL_STATE(1249)] = 41320, + [SMALL_STATE(1250)] = 41330, + [SMALL_STATE(1251)] = 41340, + [SMALL_STATE(1252)] = 41350, + [SMALL_STATE(1253)] = 41360, + [SMALL_STATE(1254)] = 41370, + [SMALL_STATE(1255)] = 41380, + [SMALL_STATE(1256)] = 41390, + [SMALL_STATE(1257)] = 41400, + [SMALL_STATE(1258)] = 41408, + [SMALL_STATE(1259)] = 41418, + [SMALL_STATE(1260)] = 41428, + [SMALL_STATE(1261)] = 41436, + [SMALL_STATE(1262)] = 41446, + [SMALL_STATE(1263)] = 41456, + [SMALL_STATE(1264)] = 41464, + [SMALL_STATE(1265)] = 41474, + [SMALL_STATE(1266)] = 41484, + [SMALL_STATE(1267)] = 41494, + [SMALL_STATE(1268)] = 41504, + [SMALL_STATE(1269)] = 41514, + [SMALL_STATE(1270)] = 41524, + [SMALL_STATE(1271)] = 41534, + [SMALL_STATE(1272)] = 41541, + [SMALL_STATE(1273)] = 41548, + [SMALL_STATE(1274)] = 41555, + [SMALL_STATE(1275)] = 41562, + [SMALL_STATE(1276)] = 41569, + [SMALL_STATE(1277)] = 41576, + [SMALL_STATE(1278)] = 41583, + [SMALL_STATE(1279)] = 41590, + [SMALL_STATE(1280)] = 41597, + [SMALL_STATE(1281)] = 41604, + [SMALL_STATE(1282)] = 41611, + [SMALL_STATE(1283)] = 41618, + [SMALL_STATE(1284)] = 41625, + [SMALL_STATE(1285)] = 41632, + [SMALL_STATE(1286)] = 41639, + [SMALL_STATE(1287)] = 41646, + [SMALL_STATE(1288)] = 41653, + [SMALL_STATE(1289)] = 41660, + [SMALL_STATE(1290)] = 41667, + [SMALL_STATE(1291)] = 41674, + [SMALL_STATE(1292)] = 41681, + [SMALL_STATE(1293)] = 41688, + [SMALL_STATE(1294)] = 41695, + [SMALL_STATE(1295)] = 41702, + [SMALL_STATE(1296)] = 41709, + [SMALL_STATE(1297)] = 41716, + [SMALL_STATE(1298)] = 41723, + [SMALL_STATE(1299)] = 41730, + [SMALL_STATE(1300)] = 41737, + [SMALL_STATE(1301)] = 41744, + [SMALL_STATE(1302)] = 41751, + [SMALL_STATE(1303)] = 41758, + [SMALL_STATE(1304)] = 41765, + [SMALL_STATE(1305)] = 41772, + [SMALL_STATE(1306)] = 41779, + [SMALL_STATE(1307)] = 41786, + [SMALL_STATE(1308)] = 41793, + [SMALL_STATE(1309)] = 41800, + [SMALL_STATE(1310)] = 41807, + [SMALL_STATE(1311)] = 41814, + [SMALL_STATE(1312)] = 41821, + [SMALL_STATE(1313)] = 41828, + [SMALL_STATE(1314)] = 41835, + [SMALL_STATE(1315)] = 41842, + [SMALL_STATE(1316)] = 41849, + [SMALL_STATE(1317)] = 41856, + [SMALL_STATE(1318)] = 41863, + [SMALL_STATE(1319)] = 41870, + [SMALL_STATE(1320)] = 41877, + [SMALL_STATE(1321)] = 41884, + [SMALL_STATE(1322)] = 41891, + [SMALL_STATE(1323)] = 41898, + [SMALL_STATE(1324)] = 41905, + [SMALL_STATE(1325)] = 41912, + [SMALL_STATE(1326)] = 41919, + [SMALL_STATE(1327)] = 41926, + [SMALL_STATE(1328)] = 41933, + [SMALL_STATE(1329)] = 41940, + [SMALL_STATE(1330)] = 41947, + [SMALL_STATE(1331)] = 41954, + [SMALL_STATE(1332)] = 41961, + [SMALL_STATE(1333)] = 41968, + [SMALL_STATE(1334)] = 41975, + [SMALL_STATE(1335)] = 41982, + [SMALL_STATE(1336)] = 41989, + [SMALL_STATE(1337)] = 41996, + [SMALL_STATE(1338)] = 42003, + [SMALL_STATE(1339)] = 42010, + [SMALL_STATE(1340)] = 42017, + [SMALL_STATE(1341)] = 42024, + [SMALL_STATE(1342)] = 42031, + [SMALL_STATE(1343)] = 42038, + [SMALL_STATE(1344)] = 42045, + [SMALL_STATE(1345)] = 42052, + [SMALL_STATE(1346)] = 42059, + [SMALL_STATE(1347)] = 42066, + [SMALL_STATE(1348)] = 42073, + [SMALL_STATE(1349)] = 42080, + [SMALL_STATE(1350)] = 42087, + [SMALL_STATE(1351)] = 42094, + [SMALL_STATE(1352)] = 42101, + [SMALL_STATE(1353)] = 42108, + [SMALL_STATE(1354)] = 42115, + [SMALL_STATE(1355)] = 42122, + [SMALL_STATE(1356)] = 42129, + [SMALL_STATE(1357)] = 42136, + [SMALL_STATE(1358)] = 42143, + [SMALL_STATE(1359)] = 42150, + [SMALL_STATE(1360)] = 42157, + [SMALL_STATE(1361)] = 42164, + [SMALL_STATE(1362)] = 42171, + [SMALL_STATE(1363)] = 42178, + [SMALL_STATE(1364)] = 42185, + [SMALL_STATE(1365)] = 42192, + [SMALL_STATE(1366)] = 42199, + [SMALL_STATE(1367)] = 42206, + [SMALL_STATE(1368)] = 42213, + [SMALL_STATE(1369)] = 42220, + [SMALL_STATE(1370)] = 42227, + [SMALL_STATE(1371)] = 42234, + [SMALL_STATE(1372)] = 42241, + [SMALL_STATE(1373)] = 42248, + [SMALL_STATE(1374)] = 42255, + [SMALL_STATE(1375)] = 42262, + [SMALL_STATE(1376)] = 42269, + [SMALL_STATE(1377)] = 42276, + [SMALL_STATE(1378)] = 42283, + [SMALL_STATE(1379)] = 42290, + [SMALL_STATE(1380)] = 42297, + [SMALL_STATE(1381)] = 42304, + [SMALL_STATE(1382)] = 42311, + [SMALL_STATE(1383)] = 42318, + [SMALL_STATE(1384)] = 42325, + [SMALL_STATE(1385)] = 42332, + [SMALL_STATE(1386)] = 42339, + [SMALL_STATE(1387)] = 42346, + [SMALL_STATE(1388)] = 42353, + [SMALL_STATE(1389)] = 42360, + [SMALL_STATE(1390)] = 42367, + [SMALL_STATE(1391)] = 42374, + [SMALL_STATE(1392)] = 42381, + [SMALL_STATE(1393)] = 42388, + [SMALL_STATE(1394)] = 42395, + [SMALL_STATE(1395)] = 42402, + [SMALL_STATE(1396)] = 42409, + [SMALL_STATE(1397)] = 42416, + [SMALL_STATE(1398)] = 42423, + [SMALL_STATE(1399)] = 42430, + [SMALL_STATE(1400)] = 42437, + [SMALL_STATE(1401)] = 42444, + [SMALL_STATE(1402)] = 42451, + [SMALL_STATE(1403)] = 42458, + [SMALL_STATE(1404)] = 42465, + [SMALL_STATE(1405)] = 42472, + [SMALL_STATE(1406)] = 42479, + [SMALL_STATE(1407)] = 42486, + [SMALL_STATE(1408)] = 42493, + [SMALL_STATE(1409)] = 42500, + [SMALL_STATE(1410)] = 42507, + [SMALL_STATE(1411)] = 42514, + [SMALL_STATE(1412)] = 42521, + [SMALL_STATE(1413)] = 42528, + [SMALL_STATE(1414)] = 42535, + [SMALL_STATE(1415)] = 42542, + [SMALL_STATE(1416)] = 42549, + [SMALL_STATE(1417)] = 42556, + [SMALL_STATE(1418)] = 42563, + [SMALL_STATE(1419)] = 42570, + [SMALL_STATE(1420)] = 42577, + [SMALL_STATE(1421)] = 42584, + [SMALL_STATE(1422)] = 42591, + [SMALL_STATE(1423)] = 42598, + [SMALL_STATE(1424)] = 42605, + [SMALL_STATE(1425)] = 42612, + [SMALL_STATE(1426)] = 42619, + [SMALL_STATE(1427)] = 42626, + [SMALL_STATE(1428)] = 42633, + [SMALL_STATE(1429)] = 42640, + [SMALL_STATE(1430)] = 42647, + [SMALL_STATE(1431)] = 42654, + [SMALL_STATE(1432)] = 42661, + [SMALL_STATE(1433)] = 42668, + [SMALL_STATE(1434)] = 42675, + [SMALL_STATE(1435)] = 42682, + [SMALL_STATE(1436)] = 42689, + [SMALL_STATE(1437)] = 42696, + [SMALL_STATE(1438)] = 42703, + [SMALL_STATE(1439)] = 42710, + [SMALL_STATE(1440)] = 42717, + [SMALL_STATE(1441)] = 42724, + [SMALL_STATE(1442)] = 42731, + [SMALL_STATE(1443)] = 42738, + [SMALL_STATE(1444)] = 42745, + [SMALL_STATE(1445)] = 42752, + [SMALL_STATE(1446)] = 42759, + [SMALL_STATE(1447)] = 42766, + [SMALL_STATE(1448)] = 42773, + [SMALL_STATE(1449)] = 42780, + [SMALL_STATE(1450)] = 42787, + [SMALL_STATE(1451)] = 42794, + [SMALL_STATE(1452)] = 42801, + [SMALL_STATE(1453)] = 42808, + [SMALL_STATE(1454)] = 42815, + [SMALL_STATE(1455)] = 42822, + [SMALL_STATE(1456)] = 42829, + [SMALL_STATE(1457)] = 42836, + [SMALL_STATE(1458)] = 42843, + [SMALL_STATE(1459)] = 42850, + [SMALL_STATE(1460)] = 42857, + [SMALL_STATE(1461)] = 42864, + [SMALL_STATE(1462)] = 42871, + [SMALL_STATE(1463)] = 42878, + [SMALL_STATE(1464)] = 42885, + [SMALL_STATE(1465)] = 42892, +}; + +static const TSParseActionEntry ts_parse_actions[] = { + [0] = {.entry = {.count = 0, .reusable = false}}, + [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), + [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_translation_unit, 0), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(405), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1071), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1404), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(945), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1464), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1212), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(554), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(554), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(559), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(861), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(784), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1461), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1268), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1458), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(879), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(686), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(687), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(758), + [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(884), + [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1156), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1114), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1112), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1265), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1259), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(507), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1450), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1258), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200), + [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1447), + [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(464), + [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1446), + [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1444), + [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1443), + [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(511), + [81] = {.entry = {.count = 1, .reusable = false}}, SHIFT(512), + [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513), + [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1257), + [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1122), + [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(513), + [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(404), + [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1064), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1371), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(910), + [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(321), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1372), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(924), + [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1247), + [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(859), + [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(787), + [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1269), + [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1221), + [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(558), + [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1462), + [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1267), + [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), + [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1463), + [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(485), + [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1459), + [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1456), + [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1378), + [139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(348), + [141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(363), + [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(353), + [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(335), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(338), + [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif, 3, .production_id = 35), + [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(124), + [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(367), + [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), + [157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(359), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif, 4, .production_id = 35), + [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(318), + [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(316), + [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(325), + [167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), + [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(311), + [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122), + [173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(404), + [176] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1064), + [179] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1371), + [182] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(910), + [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), + [187] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1372), + [190] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1247), + [193] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(374), + [196] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(554), + [199] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(554), + [202] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(559), + [205] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(88), + [208] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(859), + [211] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(787), + [214] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1461), + [217] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1268), + [220] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1458), + [223] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(879), + [226] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(25), + [229] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(686), + [232] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(687), + [235] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(758), + [238] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(884), + [241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1156), + [244] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1114), + [247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1112), + [250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1269), + [253] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1221), + [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(558), + [259] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1462), + [262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1267), + [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(139), + [268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1463), + [271] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(485), + [274] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1459), + [277] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1456), + [280] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1378), + [283] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(511), + [286] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(512), + [289] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(513), + [292] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1257), + [295] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1122), + [298] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(513), + [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(408), + [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1063), + [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1271), + [307] = {.entry = {.count = 1, .reusable = false}}, SHIFT(942), + [309] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1309), + [311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1270), + [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [315] = {.entry = {.count = 1, .reusable = false}}, SHIFT(855), + [317] = {.entry = {.count = 1, .reusable = false}}, SHIFT(763), + [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), + [323] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1264), + [325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1244), + [327] = {.entry = {.count = 1, .reusable = false}}, SHIFT(528), + [329] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1453), + [331] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1266), + [333] = {.entry = {.count = 1, .reusable = false}}, SHIFT(162), + [335] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1460), + [337] = {.entry = {.count = 1, .reusable = false}}, SHIFT(483), + [339] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1335), + [341] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1343), + [343] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1315), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [347] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(407), + [350] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1062), + [353] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1421), + [356] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(935), + [359] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1401), + [362] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1262), + [365] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(155), + [368] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(862), + [371] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(815), + [374] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(35), + [377] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1225), + [380] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1234), + [383] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(531), + [386] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1332), + [389] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1227), + [392] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(131), + [395] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1465), + [398] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(444), + [401] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1330), + [404] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1322), + [407] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1405), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), + [420] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(405), + [423] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1071), + [426] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1404), + [429] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(945), + [432] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1464), + [435] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1212), + [438] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(158), + [441] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(861), + [444] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(784), + [447] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(31), + [450] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1265), + [453] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1259), + [456] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(507), + [459] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1450), + [462] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1258), + [465] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(200), + [468] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1447), + [471] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(464), + [474] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1446), + [477] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1444), + [480] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1443), + [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [491] = {.entry = {.count = 1, .reusable = false}}, SHIFT(407), + [493] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1062), + [495] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1421), + [497] = {.entry = {.count = 1, .reusable = false}}, SHIFT(935), + [499] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else, 1), + [501] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1401), + [503] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1262), + [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [507] = {.entry = {.count = 1, .reusable = false}}, SHIFT(862), + [509] = {.entry = {.count = 1, .reusable = false}}, SHIFT(815), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [513] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1225), + [515] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1234), + [517] = {.entry = {.count = 1, .reusable = false}}, SHIFT(531), + [519] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1332), + [521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1227), + [523] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), + [525] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1465), + [527] = {.entry = {.count = 1, .reusable = false}}, SHIFT(444), + [529] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1330), + [531] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1322), + [533] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1405), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), + [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [539] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(408), + [542] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1063), + [545] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1271), + [548] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(942), + [551] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1309), + [554] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1270), + [557] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(236), + [560] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(855), + [563] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(763), + [566] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(27), + [569] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1264), + [572] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1244), + [575] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(528), + [578] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1453), + [581] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1266), + [584] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(162), + [587] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1460), + [590] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(483), + [593] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1335), + [596] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1343), + [599] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1315), + [602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), + [604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_translation_unit, 1), + [606] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else, 2), + [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), + [610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), + [612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [614] = {.entry = {.count = 1, .reusable = false}}, SHIFT(406), + [616] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 4, .production_id = 8), + [618] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 3, .production_id = 8), + [620] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(406), + [623] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), + [625] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(374), + [628] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(554), + [631] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(554), + [634] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(559), + [637] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(88), + [640] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(859), + [643] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(686), + [646] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1461), + [649] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1268), + [652] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1458), + [655] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(25), + [658] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(687), + [661] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(758), + [664] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(884), + [667] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1156), + [670] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1114), + [673] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1112), + [676] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1269), + [679] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1221), + [682] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1267), + [685] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(139), + [688] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1463), + [691] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(485), + [694] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1459), + [697] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1456), + [700] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1378), + [703] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(511), + [706] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(512), + [709] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(513), + [712] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1257), + [715] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1122), + [718] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(513), + [721] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 2), + [723] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 3), + [725] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 3, .production_id = 8), + [727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(401), + [729] = {.entry = {.count = 1, .reusable = false}}, SHIFT(403), + [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), + [733] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(401), + [736] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(158), + [739] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(861), + [742] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(31), + [745] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1265), + [748] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1259), + [751] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1258), + [754] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(200), + [757] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1447), + [760] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(464), + [763] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1446), + [766] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1444), + [769] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1443), + [772] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 2), + [774] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 3), + [776] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 4, .production_id = 8), + [778] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(403), + [781] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(155), + [784] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(862), + [787] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(35), + [790] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1225), + [793] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1234), + [796] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1227), + [799] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(131), + [802] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1465), + [805] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(444), + [808] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1330), + [811] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1322), + [814] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1405), + [817] = {.entry = {.count = 1, .reusable = false}}, SHIFT(402), + [819] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(402), + [822] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(236), + [825] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(855), + [828] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(27), + [831] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1264), + [834] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1244), + [837] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1266), + [840] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(162), + [843] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1460), + [846] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(483), + [849] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1335), + [852] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1343), + [855] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1315), + [858] = {.entry = {.count = 1, .reusable = false}}, SHIFT(409), + [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474), + [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1219), + [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447), + [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(478), + [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(481), + [870] = {.entry = {.count = 1, .reusable = false}}, SHIFT(527), + [872] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sizeof_expression, 4, .production_id = 44), + [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), + [876] = {.entry = {.count = 1, .reusable = false}}, SHIFT(508), + [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(508), + [880] = {.entry = {.count = 1, .reusable = false}}, SHIFT(559), + [882] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sizeof_expression, 4, .production_id = 44), + [884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), + [886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(505), + [888] = {.entry = {.count = 1, .reusable = false}}, SHIFT(577), + [890] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 49), + [892] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 49), + [894] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, .production_id = 71), + [896] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, .production_id = 71), + [898] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 3, .production_id = 28), + [900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), + [902] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 4, .production_id = 40), + [904] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 4, .production_id = 40), + [906] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_switch_statement, 3, .production_id = 23), + [908] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_switch_statement, 3, .production_id = 23), + [910] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, .production_id = 23), + [912] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, .production_id = 23), + [914] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 22), + [916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 22), + [918] = {.entry = {.count = 1, .reusable = false}}, SHIFT(203), + [920] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_compound_statement, 3), + [922] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_compound_statement, 3), + [924] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 5, .production_id = 58), + [926] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 5, .production_id = 58), + [928] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 5, .production_id = 59), + [930] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 5, .production_id = 59), + [932] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 61), + [934] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 61), + [936] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 5, .production_id = 62), + [938] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 5, .production_id = 62), + [940] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 6, .production_id = 69), + [942] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 6, .production_id = 69), + [944] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_statement, 2), + [946] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_statement, 2), + [948] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3), + [950] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3), + [952] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, .production_id = 70), + [954] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, .production_id = 70), + [956] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 75), + [958] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 75), + [960] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_labeled_statement, 3, .production_id = 26), + [962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_labeled_statement, 3, .production_id = 26), + [964] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1), + [966] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1), + [968] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 76), + [970] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 76), + [972] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 77), + [974] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 77), + [976] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 78), + [978] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 78), + [980] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 79), + [982] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 79), + [984] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2), + [986] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2), + [988] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 80), + [990] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 80), + [992] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 81), + [994] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 81), + [996] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 82), + [998] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 82), + [1000] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_continue_statement, 2), + [1002] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 2), + [1004] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 83), + [1006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 83), + [1008] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 84), + [1010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 84), + [1012] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_statement, 2), + [1014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 2), + [1016] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_goto_statement, 3, .production_id = 24), + [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_goto_statement, 3, .production_id = 24), + [1020] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2), + [1022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2), + [1024] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_compound_statement, 2), + [1026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_compound_statement, 2), + [1028] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 3, .production_id = 14), + [1030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 3, .production_id = 14), + [1032] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 4, .production_id = 35), + [1034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 4, .production_id = 35), + [1036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380), + [1038] = {.entry = {.count = 1, .reusable = false}}, SHIFT(567), + [1040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(567), + [1042] = {.entry = {.count = 1, .reusable = false}}, SHIFT(525), + [1044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(563), + [1046] = {.entry = {.count = 1, .reusable = false}}, SHIFT(562), + [1048] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_call, 2, .production_id = 3), + [1050] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_call, 2, .production_id = 3), + [1052] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_function_def, 5, .production_id = 53), + [1054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_function_def, 5, .production_id = 53), + [1056] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_function_def, 4, .production_id = 34), + [1058] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_function_def, 4, .production_id = 34), + [1060] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 4, .production_id = 51), + [1062] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 4, .production_id = 51), + [1064] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 6, .production_id = 66), + [1066] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 6, .production_id = 66), + [1068] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_def, 4, .production_id = 33), + [1070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_def, 4, .production_id = 33), + [1072] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__empty_declaration, 2), + [1074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__empty_declaration, 2), + [1076] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_def, 3, .production_id = 14), + [1078] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_def, 3, .production_id = 14), + [1080] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_linkage_specification, 3, .production_id = 18), + [1082] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_linkage_specification, 3, .production_id = 18), + [1084] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration_list, 3), + [1086] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 3), + [1088] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_call, 3, .production_id = 15), + [1090] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_call, 3, .production_id = 15), + [1092] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 3, .production_id = 29), + [1094] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 3, .production_id = 29), + [1096] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 5, .production_id = 55), + [1098] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 5, .production_id = 55), + [1100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration_list, 2), + [1102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2), + [1104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_include, 3, .production_id = 13), + [1106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_include, 3, .production_id = 13), + [1108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 5, .production_id = 35), + [1110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 5, .production_id = 35), + [1112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 5, .production_id = 54), + [1114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 5, .production_id = 54), + [1116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 4, .production_id = 14), + [1118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 4, .production_id = 14), + [1120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 4, .production_id = 36), + [1122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 4, .production_id = 36), + [1124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(615), + [1126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1246), + [1128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(616), + [1130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(176), + [1132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(612), + [1135] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(374), + [1138] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(554), + [1141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(554), + [1144] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(559), + [1147] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(155), + [1150] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1246), + [1153] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(35), + [1156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1225), + [1159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1234), + [1162] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(531), + [1165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1332), + [1168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1227), + [1171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(131), + [1174] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1465), + [1177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(444), + [1180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1330), + [1183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1322), + [1186] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1405), + [1189] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(511), + [1192] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(512), + [1195] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(513), + [1198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1257), + [1201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1122), + [1204] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(513), + [1207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(612), + [1209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(617), + [1211] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(616), + [1214] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(158), + [1217] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(31), + [1220] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1265), + [1223] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1259), + [1226] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(507), + [1229] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1450), + [1232] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1258), + [1235] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(200), + [1238] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1447), + [1241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(464), + [1244] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1446), + [1247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1444), + [1250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1443), + [1253] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(617), + [1256] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(88), + [1259] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(25), + [1262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1269), + [1265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1221), + [1268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(558), + [1271] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1462), + [1274] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1267), + [1277] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(139), + [1280] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1463), + [1283] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(485), + [1286] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1459), + [1289] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1456), + [1292] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1378), + [1295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(207), + [1297] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(615), + [1300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(236), + [1303] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(27), + [1306] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1264), + [1309] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1244), + [1312] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(528), + [1315] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1453), + [1318] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1266), + [1321] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(162), + [1324] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1460), + [1327] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(483), + [1330] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1335), + [1333] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1343), + [1336] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1315), + [1339] = {.entry = {.count = 1, .reusable = false}}, SHIFT(300), + [1341] = {.entry = {.count = 1, .reusable = false}}, SHIFT(609), + [1343] = {.entry = {.count = 1, .reusable = false}}, SHIFT(519), + [1345] = {.entry = {.count = 1, .reusable = false}}, SHIFT(994), + [1347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute_declaration, 4), + [1349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_declaration, 4), + [1351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute_declaration, 3), + [1353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_declaration, 3), + [1355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637), + [1357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), + [1359] = {.entry = {.count = 1, .reusable = false}}, SHIFT(526), + [1361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526), + [1363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525), + [1365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(521), + [1367] = {.entry = {.count = 1, .reusable = false}}, SHIFT(520), + [1369] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_modifiers, 1), REDUCE(aux_sym_attributed_declarator_repeat1, 1), + [1372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 1), + [1374] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 1), + [1376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_modifiers, 1), + [1378] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration_modifiers, 1), REDUCE(aux_sym_attributed_declarator_repeat1, 1), + [1381] = {.entry = {.count = 1, .reusable = false}}, SHIFT(947), + [1383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1211), + [1385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1049), + [1387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), + [1389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), + [1391] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1238), + [1393] = {.entry = {.count = 1, .reusable = false}}, SHIFT(425), + [1395] = {.entry = {.count = 1, .reusable = false}}, SHIFT(880), + [1397] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1422), + [1399] = {.entry = {.count = 1, .reusable = false}}, SHIFT(911), + [1401] = {.entry = {.count = 1, .reusable = false}}, SHIFT(814), + [1403] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1342), + [1405] = {.entry = {.count = 1, .reusable = false}}, SHIFT(419), + [1407] = {.entry = {.count = 1, .reusable = false}}, SHIFT(930), + [1409] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1255), + [1411] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 4, .production_id = 35), + [1413] = {.entry = {.count = 1, .reusable = false}}, SHIFT(674), + [1415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(775), + [1417] = {.entry = {.count = 1, .reusable = false}}, SHIFT(791), + [1419] = {.entry = {.count = 1, .reusable = false}}, SHIFT(675), + [1421] = {.entry = {.count = 1, .reusable = false}}, SHIFT(684), + [1423] = {.entry = {.count = 1, .reusable = false}}, SHIFT(823), + [1425] = {.entry = {.count = 1, .reusable = false}}, SHIFT(830), + [1427] = {.entry = {.count = 1, .reusable = false}}, SHIFT(774), + [1429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 3, .production_id = 35), + [1431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(795), + [1433] = {.entry = {.count = 1, .reusable = false}}, SHIFT(813), + [1435] = {.entry = {.count = 1, .reusable = false}}, SHIFT(677), + [1437] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_specifier, 1, .production_id = 1), + [1439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [1441] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__type_specifier, 1, .production_id = 1), REDUCE(sym__expression, 1), SHIFT(852), + [1445] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [1447] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type_specifier, 1, .production_id = 1), REDUCE(sym__expression, 1), + [1450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_specifier, 1, .production_id = 1), + [1452] = {.entry = {.count = 1, .reusable = false}}, SHIFT(530), + [1454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [1456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), + [1458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), + [1460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [1462] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type_specifier, 1, .production_id = 1), REDUCE(sym__expression, 1), + [1465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [1467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1279), + [1469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(605), + [1471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607), + [1473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1278), + [1475] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(880), + [1478] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1422), + [1481] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(911), + [1484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), + [1486] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1342), + [1489] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1255), + [1492] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(686), + [1495] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1461), + [1498] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1219), + [1501] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1458), + [1504] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(687), + [1507] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(758), + [1510] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(884), + [1513] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1156), + [1516] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1114), + [1519] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1112), + [1522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(586), + [1524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(580), + [1526] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1400), + [1529] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(894), + [1532] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1369), + [1535] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1223), + [1538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), + [1540] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1400), + [1542] = {.entry = {.count = 1, .reusable = false}}, SHIFT(894), + [1544] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1369), + [1546] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1223), + [1548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(881), + [1550] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1423), + [1552] = {.entry = {.count = 1, .reusable = false}}, SHIFT(919), + [1554] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else_in_field_declaration_list, 2), + [1556] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1387), + [1558] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1253), + [1560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(885), + [1562] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else_in_field_declaration_list, 1), + [1564] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1423), + [1567] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(919), + [1570] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1387), + [1573] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1253), + [1576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(501), + [1578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1120), + [1580] = {.entry = {.count = 1, .reusable = false}}, SHIFT(662), + [1582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(489), + [1584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1083), + [1586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), + [1588] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), + [1590] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), SHIFT_REPEAT(1122), + [1593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(487), + [1595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1121), + [1597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492), + [1599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1138), + [1601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), + [1603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1073), + [1605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(490), + [1607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1094), + [1609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(498), + [1611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1087), + [1613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502), + [1615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1096), + [1617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(494), + [1619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1102), + [1621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500), + [1623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1134), + [1625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2), + [1627] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2), + [1629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [1631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(990), + [1633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [1635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3), + [1637] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3), + [1639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [1641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [1643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [1645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2), + [1647] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2), + [1649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [1651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [1653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [1655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [1657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445), + [1659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471), + [1661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [1663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [1665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [1667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [1669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [1671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [1673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [1675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(466), + [1677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [1679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [1681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [1683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453), + [1685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), + [1687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [1689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), + [1691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(455), + [1693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [1695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [1697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [1699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457), + [1701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [1703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [1705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), + [1707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), + [1709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [1711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [1713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), + [1715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), + [1717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), + [1719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(467), + [1721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [1723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [1725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [1727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [1729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1116), + [1731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3), + [1733] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3), + [1735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1077), + [1737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1092), + [1739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1119), + [1741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581), + [1743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1100), + [1745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1084), + [1747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1093), + [1749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), + [1751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1147), + [1753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1131), + [1755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1101), + [1757] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_expression, 4, .production_id = 39), + [1759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(493), + [1761] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cast_expression, 4, .production_id = 39), + [1763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(542), + [1765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(545), + [1767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1361), + [1769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), + [1771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_compound_literal_expression, 4, .production_id = 39), + [1773] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_compound_literal_expression, 4, .production_id = 39), + [1775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), + [1777] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 4), + [1779] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, .production_id = 4), + [1781] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4), + [1783] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4), + [1785] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_expression, 2, .production_id = 4), + [1787] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pointer_expression, 2, .production_id = 4), + [1789] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_update_expression, 2, .production_id = 4), + [1791] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_update_expression, 2, .production_id = 4), + [1793] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 3), + [1795] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 3), + [1797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_update_expression, 2, .production_id = 9), + [1799] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_update_expression, 2, .production_id = 9), + [1801] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call_expression, 2, .production_id = 10), + [1803] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call_expression, 2, .production_id = 10), + [1805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript_expression, 4, .production_id = 52), + [1807] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript_expression, 4, .production_id = 52), + [1809] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3), + [1811] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3), + [1813] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_expression, 3, .production_id = 25), + [1815] = {.entry = {.count = 1, .reusable = false}}, SHIFT(593), + [1817] = {.entry = {.count = 1, .reusable = false}}, SHIFT(592), + [1819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(590), + [1821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584), + [1823] = {.entry = {.count = 1, .reusable = false}}, SHIFT(576), + [1825] = {.entry = {.count = 1, .reusable = false}}, SHIFT(573), + [1827] = {.entry = {.count = 1, .reusable = false}}, SHIFT(568), + [1829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(566), + [1831] = {.entry = {.count = 1, .reusable = false}}, SHIFT(565), + [1833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(565), + [1835] = {.entry = {.count = 1, .reusable = false}}, SHIFT(560), + [1837] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_expression, 3, .production_id = 25), + [1839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), + [1841] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char_literal, 3), + [1843] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_char_literal, 3), + [1845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), + [1847] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 5), + [1849] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 5), + [1851] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2), + [1853] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2), + [1855] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 25), + [1857] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 25), + [1859] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5, .production_id = 65), + [1861] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5, .production_id = 65), + [1863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(602), + [1865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_expression, 3, .production_id = 32), + [1867] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_expression, 3, .production_id = 32), + [1869] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 4), + [1871] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 4), + [1873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 2), + [1875] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 2), + [1877] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sizeof_expression, 2, .production_id = 8), + [1879] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sizeof_expression, 2, .production_id = 8), + [1881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(499), + [1883] = {.entry = {.count = 1, .reusable = false}}, SHIFT(588), + [1885] = {.entry = {.count = 1, .reusable = false}}, SHIFT(603), + [1887] = {.entry = {.count = 1, .reusable = false}}, SHIFT(575), + [1889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(574), + [1891] = {.entry = {.count = 1, .reusable = false}}, SHIFT(572), + [1893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(572), + [1895] = {.entry = {.count = 1, .reusable = false}}, SHIFT(571), + [1897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(587), + [1899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(579), + [1901] = {.entry = {.count = 1, .reusable = false}}, SHIFT(578), + [1903] = {.entry = {.count = 1, .reusable = false}}, SHIFT(504), + [1905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(557), + [1907] = {.entry = {.count = 1, .reusable = false}}, SHIFT(564), + [1909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(564), + [1911] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), + [1913] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), + [1915] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), SHIFT_REPEAT(686), + [1918] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), SHIFT_REPEAT(1461), + [1921] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), SHIFT_REPEAT(1219), + [1924] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), SHIFT_REPEAT(1458), + [1927] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), SHIFT_REPEAT(687), + [1930] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1075), + [1932] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 1, .dynamic_precedence = 1), + [1934] = {.entry = {.count = 1, .reusable = false}}, SHIFT(998), + [1936] = {.entry = {.count = 1, .reusable = false}}, SHIFT(999), + [1938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), + [1940] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_definition_repeat1, 2), + [1942] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_definition_repeat1, 2), + [1944] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_definition_repeat1, 2), SHIFT_REPEAT(662), + [1947] = {.entry = {.count = 1, .reusable = false}}, SHIFT(561), + [1949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532), + [1951] = {.entry = {.count = 1, .reusable = false}}, SHIFT(532), + [1953] = {.entry = {.count = 1, .reusable = false}}, SHIFT(540), + [1955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(540), + [1957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(541), + [1959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(533), + [1961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(534), + [1963] = {.entry = {.count = 1, .reusable = false}}, SHIFT(536), + [1965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(537), + [1967] = {.entry = {.count = 1, .reusable = false}}, SHIFT(538), + [1969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539), + [1971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503), + [1973] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute_specifier, 4), + [1975] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_specifier, 4), + [1977] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_declspec_modifier, 4), + [1979] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_declspec_modifier, 4), + [1981] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_qualifier, 1), + [1983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_qualifier, 1), + [1985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(553), + [1987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(549), + [1989] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 3, .production_id = 28), + [1991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 3, .production_id = 28), + [1993] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 3, .production_id = 37), + [1995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 3, .production_id = 37), + [1997] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 2, .production_id = 37), + [1999] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 2, .production_id = 37), + [2001] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 3, .production_id = 14), + [2003] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 3, .production_id = 14), + [2005] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 4, .production_id = 35), + [2007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 4, .production_id = 35), + [2009] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, .production_id = 36), + [2011] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, .production_id = 36), + [2013] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, .production_id = 14), + [2015] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, .production_id = 14), + [2017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639), + [2019] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 4, .production_id = 28), + [2021] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 4, .production_id = 28), + [2023] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 4, .production_id = 49), + [2025] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 4, .production_id = 49), + [2027] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, .production_id = 54), + [2029] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, .production_id = 54), + [2031] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 6, .production_id = 66), + [2033] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 6, .production_id = 66), + [2035] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, .production_id = 35), + [2037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, .production_id = 35), + [2039] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 5, .production_id = 55), + [2041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 5, .production_id = 55), + [2043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_storage_class_specifier, 1), + [2045] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_storage_class_specifier, 1), + [2047] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 5, .production_id = 49), + [2049] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 5, .production_id = 49), + [2051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(491), + [2053] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comma_expression, 3, .production_id = 31), + [2055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [2057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(535), + [2059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [2061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [2063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [2065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [2067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), + [2069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [2071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [2073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [2075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), + [2077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452), + [2079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [2081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(470), + [2083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [2085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613), + [2087] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator, 3, .production_id = 60), + [2089] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 1, .production_id = 2), + [2091] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 1, .production_id = 2), + [2093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [2095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), + [2097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463), + [2099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [2101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 2, .production_id = 2), + [2103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 2, .production_id = 2), + [2105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), + [2107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441), + [2109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(486), + [2111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), + [2113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(480), + [2115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [2117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [2119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [2121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(450), + [2123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [2125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2), + [2127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442), + [2129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [2131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [2133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [2135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_init_declarator, 3, .production_id = 48), + [2137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460), + [2139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), + [2141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [2143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [2145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [2147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [2149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [2151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), + [2153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(468), + [2155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(458), + [2157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [2159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [2161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_pair, 3, .production_id = 74), + [2163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 2, .production_id = 11), + [2165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 2, .production_id = 11), + [2167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(488), + [2169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462), + [2171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [2173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472), + [2175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [2177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), + [2179] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 3, .production_id = 11), + [2181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 3, .production_id = 11), + [2183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_initializer_list_repeat1, 2), + [2185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [2187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(556), + [2189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548), + [2191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(548), + [2193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), + [2195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514), + [2197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(510), + [2199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509), + [2201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(544), + [2203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(608), + [2205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(552), + [2207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(552), + [2209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(517), + [2211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550), + [2213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543), + [2215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547), + [2217] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1), SHIFT(889), + [2220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 1), + [2222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1), + [2224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(818), + [2226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(890), + [2228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(591), + [2230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [2232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [2234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1143), + [2236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bitfield_clause, 2), + [2238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1185), + [2240] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2), + [2242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2), + [2244] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2), SHIFT_REPEAT(818), + [2247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(569), + [2249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [2251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589), + [2253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 2, .dynamic_precedence = 1), + [2255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1089), + [2257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1033), + [2259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(834), + [2261] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1097), + [2263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1036), + [2265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(833), + [2267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1024), + [2269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(839), + [2271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), + [2273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), + [2275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), + [2277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [2279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, .production_id = 20), + [2281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, .production_id = 20), + [2283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), + [2285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 2, .production_id = 6), + [2287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 2, .production_id = 6), + [2289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1146), + [2291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 2, .production_id = 6), + [2293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 2, .production_id = 6), + [2295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 2, .production_id = 6), + [2297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 2, .production_id = 6), + [2299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, .production_id = 20), + [2301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, .production_id = 20), + [2303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__preproc_expression, 1), + [2305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(876), + [2307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__preproc_expression, 1), + [2309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, .production_id = 21), + [2311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, .production_id = 21), + [2313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, .production_id = 19), + [2315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, .production_id = 19), + [2317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_macro_type_specifier, 4, .dynamic_precedence = -1, .production_id = 45), + [2319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_macro_type_specifier, 4, .dynamic_precedence = -1, .production_id = 45), + [2321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(902), + [2323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(968), + [2325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(912), + [2327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(913), + [2329] = {.entry = {.count = 1, .reusable = false}}, SHIFT(913), + [2331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(917), + [2333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(920), + [2335] = {.entry = {.count = 1, .reusable = false}}, SHIFT(923), + [2337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(925), + [2339] = {.entry = {.count = 1, .reusable = false}}, SHIFT(927), + [2341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(928), + [2343] = {.entry = {.count = 1, .reusable = false}}, SHIFT(931), + [2345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(931), + [2347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(933), + [2349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator_list, 4), + [2351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator_list, 4), + [2353] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 2, .production_id = 7), + [2355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 2, .production_id = 7), + [2357] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 4, .production_id = 43), + [2359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 4, .production_id = 43), + [2361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, .production_id = 43), + [2363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, .production_id = 43), + [2365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(921), + [2367] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 2, .production_id = 7), + [2369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 2, .production_id = 7), + [2371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator_list, 2), + [2373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator_list, 2), + [2375] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 2, .production_id = 7), + [2377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 2, .production_id = 7), + [2379] = {.entry = {.count = 1, .reusable = false}}, SHIFT(863), + [2381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(929), + [2383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(932), + [2385] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1248), + [2387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(936), + [2389] = {.entry = {.count = 1, .reusable = false}}, SHIFT(936), + [2391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(872), + [2393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1222), + [2395] = {.entry = {.count = 1, .reusable = false}}, SHIFT(888), + [2397] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [2399] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator_list, 3), + [2401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator_list, 3), + [2403] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_call_modifier, 1), + [2405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_call_modifier, 1), + [2407] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type_specifier, 1, .production_id = 1), SHIFT(852), + [2410] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration_list, 3), + [2412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration_list, 3), + [2414] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_definition_repeat1, 2), SHIFT_REPEAT(687), + [2417] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, .production_id = 21), + [2419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, .production_id = 21), + [2421] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_specifier, 1), + [2423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_specifier, 1), + [2425] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration_list, 2), + [2427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration_list, 2), + [2429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, .production_id = 19), + [2431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, .production_id = 19), + [2433] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 3, .production_id = 19), + [2435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 3, .production_id = 19), + [2437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(949), + [2439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(867), + [2441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, .dynamic_precedence = -1, .production_id = 12), + [2443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, .dynamic_precedence = -1, .production_id = 12), + [2445] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, .production_id = 11), + [2447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, .production_id = 11), + [2449] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator_list, 5), + [2451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator_list, 5), + [2453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_binary_expression, 3, .production_id = 25), + [2455] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_binary_expression, 3, .production_id = 25), + [2457] = {.entry = {.count = 1, .reusable = false}}, SHIFT(877), + [2459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(916), + [2461] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1256), + [2463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(918), + [2465] = {.entry = {.count = 1, .reusable = false}}, SHIFT(918), + [2467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(954), + [2469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1241), + [2471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_call_expression, 2, .production_id = 10), + [2473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_call_expression, 2, .production_id = 10), + [2475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(914), + [2477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_defined, 2), + [2479] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_defined, 2), + [2481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(971), + [2483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_unary_expression, 2, .production_id = 4), + [2485] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_unary_expression, 2, .production_id = 4), + [2487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(970), + [2489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(969), + [2491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(951), + [2493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(955), + [2495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(926), + [2497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893), + [2499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_argument_list_repeat1, 2), + [2501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(960), + [2503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(961), + [2505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(896), + [2507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(958), + [2509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950), + [2511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(897), + [2513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_argument_list, 3), + [2515] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_argument_list, 3), + [2517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_defined, 4), + [2519] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_defined, 4), + [2521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(898), + [2523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956), + [2525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899), + [2527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(900), + [2529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901), + [2531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_argument_list, 2), + [2533] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_argument_list, 2), + [2535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(963), + [2537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(904), + [2539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(964), + [2541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(892), + [2543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_argument_list, 4), + [2545] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_argument_list, 4), + [2547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(967), + [2549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(906), + [2551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974), + [2553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_parenthesized_expression, 3), + [2555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_parenthesized_expression, 3), + [2557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975), + [2559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(977), + [2561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(948), + [2563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(966), + [2565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(976), + [2567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(973), + [2569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(965), + [2571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 1, .production_id = 37), + [2573] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declarator, 1), REDUCE(sym__type_specifier, 1, .production_id = 1), + [2576] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__declarator, 1), REDUCE(sym__type_specifier, 1, .production_id = 1), SHIFT(852), + [2580] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declarator, 1), REDUCE(sym__type_specifier, 1, .production_id = 1), + [2583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(937), + [2585] = {.entry = {.count = 1, .reusable = false}}, SHIFT(939), + [2587] = {.entry = {.count = 1, .reusable = false}}, SHIFT(943), + [2589] = {.entry = {.count = 1, .reusable = false}}, SHIFT(944), + [2591] = {.entry = {.count = 1, .reusable = false}}, SHIFT(905), + [2593] = {.entry = {.count = 1, .reusable = false}}, SHIFT(907), + [2595] = {.entry = {.count = 1, .reusable = false}}, SHIFT(909), + [2597] = {.entry = {.count = 1, .reusable = false}}, SHIFT(915), + [2599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), + [2601] = {.entry = {.count = 1, .reusable = false}}, SHIFT(940), + [2603] = {.entry = {.count = 1, .reusable = false}}, SHIFT(941), + [2605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [2607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), + [2609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), + [2611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [2613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(972), + [2615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), + [2617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(938), + [2619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [2621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [2623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [2625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 2, .production_id = 11), + [2627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(687), + [2629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 1, .production_id = 2), + [2631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 2, .production_id = 2), + [2633] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 3, .production_id = 11), + [2635] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2), + [2637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2), + [2639] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2), SHIFT_REPEAT(998), + [2642] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2), SHIFT_REPEAT(999), + [2645] = {.entry = {.count = 1, .reusable = false}}, SHIFT(889), + [2647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(817), + [2649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(555), + [2651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(829), + [2653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(668), + [2655] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_pointer_modifier, 1), + [2657] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_pointer_modifier, 1), + [2659] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_unaligned_ptr_modifier, 1), + [2661] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_unaligned_ptr_modifier, 1), + [2663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1007), + [2665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(610), + [2667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [2669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(426), + [2671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), + [2673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [2675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), + [2677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [2679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declarator, 3, .production_id = 30), + [2681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1461), + [2683] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declarator, 3, .production_id = 30), + [2685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 4, .dynamic_precedence = 1, .production_id = 63), + [2687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1019), + [2689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(666), + [2691] = {.entry = {.count = 1, .reusable = false}}, SHIFT(428), + [2693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 2, .dynamic_precedence = 1, .production_id = 27), + [2695] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 3, .dynamic_precedence = 1, .production_id = 46), + [2697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), + [2699] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT_REPEAT(1268), + [2702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), + [2704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(770), + [2706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_declarator_repeat1, 2), + [2708] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_declarator_repeat1, 2), SHIFT_REPEAT(1461), + [2711] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_declarator_repeat1, 2), + [2713] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declarator, 2, .production_id = 30), + [2715] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declarator, 2, .production_id = 30), + [2717] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 5, .dynamic_precedence = 1, .production_id = 72), + [2719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(800), + [2721] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_declarator, 2), + [2723] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_declarator, 2), + [2725] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 2, .dynamic_precedence = 1, .production_id = 27), + [2727] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 5, .dynamic_precedence = 1, .production_id = 72), + [2729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 4, .dynamic_precedence = 1, .production_id = 63), + [2731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2), + [2733] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 2), + [2735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4), + [2737] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 4), + [2739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3), + [2741] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 3), + [2743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 3, .dynamic_precedence = 1, .production_id = 46), + [2745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat1, 2, .production_id = 27), + [2747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1038), + [2749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [2751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(431), + [2753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [2755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_field_declarator, 2), + [2757] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_field_declarator, 2), + [2759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [2761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [2763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 4, .dynamic_precedence = 1, .production_id = 63), + [2765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [2767] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 2, .dynamic_precedence = 1, .production_id = 27), + [2769] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1180), + [2771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1133), + [2773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1320), + [2775] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1171), + [2777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1319), + [2779] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1163), + [2781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1448), + [2783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [2785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [2787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 5, .dynamic_precedence = 1, .production_id = 72), + [2789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [2791] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_field_declaration_repeat1, 2, .production_id = 27), + [2793] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 3, .dynamic_precedence = 1, .production_id = 46), + [2795] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1165), + [2797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1437), + [2799] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_definition_repeat2, 2, .production_id = 27), + [2801] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 3, .production_id = 47), + [2803] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 3, .production_id = 47), + [2805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declarator, 1), + [2807] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declarator, 1), + [2809] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 5, .production_id = 73), + [2811] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 5, .production_id = 73), + [2813] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_declarator, 3, .dynamic_precedence = -10), + [2815] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_declarator, 3, .dynamic_precedence = -10), + [2817] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_type_declarator, 2), + [2819] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_type_declarator, 2), + [2821] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 2, .production_id = 28), + [2823] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 4, .production_id = 47), + [2825] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 4, .production_id = 47), + [2827] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 4, .production_id = 64), + [2829] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 4, .production_id = 64), + [2831] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declarator, 1), + [2833] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_declarator, 1), + [2835] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_field_declarator, 3, .dynamic_precedence = -10), + [2837] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_field_declarator, 3, .dynamic_precedence = -10), + [2839] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 4, .production_id = 47), + [2841] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 4, .production_id = 47), + [2843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1104), + [2845] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declarator, 1, .production_id = 42), + [2847] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_declarator, 1, .production_id = 42), + [2849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1086), + [2851] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_field_declarator, 2, .production_id = 30), + [2853] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_field_declarator, 2, .production_id = 30), + [2855] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 4, .production_id = 64), + [2857] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 4, .production_id = 64), + [2859] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 5, .production_id = 73), + [2861] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 5, .production_id = 73), + [2863] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 3, .production_id = 47), + [2865] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 3, .production_id = 47), + [2867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1078), + [2869] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 4, .production_id = 47), + [2871] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 4, .production_id = 47), + [2873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_declarator, 1, .production_id = 1), + [2875] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_declarator, 1, .production_id = 1), + [2877] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_declarator, 1), + [2879] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_declarator, 1), + [2881] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_initializer_pair_repeat1, 2), SHIFT_REPEAT(607), + [2884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_initializer_pair_repeat1, 2), + [2886] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_initializer_pair_repeat1, 2), SHIFT_REPEAT(1278), + [2889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 4, .production_id = 64), + [2891] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 4, .production_id = 64), + [2893] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 5, .production_id = 73), + [2895] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 5, .production_id = 73), + [2897] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 3, .production_id = 47), + [2899] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 3, .production_id = 47), + [2901] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type_declarator, 2, .production_id = 30), + [2903] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type_declarator, 2, .production_id = 30), + [2905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_type_declarator, 3, .dynamic_precedence = -10), + [2907] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_type_declarator, 3, .dynamic_precedence = -10), + [2909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(484), + [2911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1278), + [2913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680), + [2915] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 3, .dynamic_precedence = 1, .production_id = 46), + [2917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), + [2919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 2, .dynamic_precedence = 1, .production_id = 27), + [2921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(811), + [2923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 1, .production_id = 5), + [2925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1383), + [2927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(789), + [2929] = {.entry = {.count = 1, .reusable = false}}, SHIFT(851), + [2931] = {.entry = {.count = 1, .reusable = false}}, SHIFT(850), + [2933] = {.entry = {.count = 1, .reusable = false}}, SHIFT(347), + [2935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1190), + [2937] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1292), + [2939] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 4, .production_id = 64), + [2941] = {.entry = {.count = 1, .reusable = false}}, SHIFT(670), + [2943] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1298), + [2945] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1442), + [2947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1140), + [2949] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1140), + [2951] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 3, .production_id = 56), + [2953] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 3), + [2955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 3, .production_id = 47), + [2957] = {.entry = {.count = 1, .reusable = false}}, SHIFT(440), + [2959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1145), + [2961] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1145), + [2963] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 4, .production_id = 57), + [2965] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_parenthesized_declarator, 3), + [2967] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, .production_id = 41), + [2969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 3, .production_id = 40), + [2971] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 3, .production_id = 38), + [2973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_function_declarator, 2, .production_id = 30), + [2975] = {.entry = {.count = 1, .reusable = false}}, SHIFT(330), + [2977] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1310), + [2979] = {.entry = {.count = 1, .reusable = false}}, SHIFT(794), + [2981] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1308), + [2983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 4, .production_id = 67), + [2985] = {.entry = {.count = 1, .reusable = false}}, SHIFT(765), + [2987] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1304), + [2989] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1452), + [2991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1118), + [2993] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1118), + [2995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 4, .production_id = 47), + [2997] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114), + [2999] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1418), + [3001] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_field_declaration_repeat1, 2, .production_id = 50), SHIFT_REPEAT(1019), + [3004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_field_declaration_repeat1, 2, .production_id = 50), + [3006] = {.entry = {.count = 1, .reusable = false}}, SHIFT(692), + [3008] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 2), + [3010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1124), + [3012] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2), + [3014] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_literal_repeat1, 2), SHIFT_REPEAT(1140), + [3017] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2), SHIFT_REPEAT(1140), + [3020] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_function_declarator, 1, .production_id = 17), + [3022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__abstract_declarator, 1), + [3024] = {.entry = {.count = 1, .reusable = false}}, SHIFT(730), + [3026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1137), + [3028] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1137), + [3030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 2, .production_id = 16), + [3032] = {.entry = {.count = 1, .reusable = false}}, SHIFT(436), + [3034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1200), + [3036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1374), + [3038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(874), + [3040] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 5, .production_id = 73), + [3042] = {.entry = {.count = 1, .reusable = false}}, SHIFT(310), + [3044] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1399), + [3046] = {.entry = {.count = 1, .reusable = true}}, SHIFT(618), + [3048] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1051), + [3050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1226), + [3052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611), + [3054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [3056] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_definition_repeat2, 2, .production_id = 50), SHIFT_REPEAT(1038), + [3059] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_definition_repeat2, 2, .production_id = 50), + [3061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [3063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [3065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(849), + [3067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), + [3069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1050), + [3071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [3073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [3075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(891), + [3077] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enumerator_list_repeat1, 2), SHIFT_REPEAT(1214), + [3080] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enumerator_list_repeat1, 2), + [3082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [3084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), + [3086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [3088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934), + [3090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), + [3092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665), + [3094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [3096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [3098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), + [3100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), + [3102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [3104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(848), + [3106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(853), + [3108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [3110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1237), + [3112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1209), + [3114] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2), SHIFT_REPEAT(553), + [3117] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_argument_list_repeat1, 2), SHIFT_REPEAT(902), + [3120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), + [3122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952), + [3124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_initializer_list_repeat1, 2), SHIFT_REPEAT(415), + [3127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(681), + [3129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523), + [3131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript_designator, 3), + [3133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [3135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [3137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [3139] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_params_repeat1, 2), SHIFT_REPEAT(1237), + [3142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_params_repeat1, 2), + [3144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1208), + [3146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1213), + [3148] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_repeat1, 2, .production_id = 50), SHIFT_REPEAT(1007), + [3151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat1, 2, .production_id = 50), + [3153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1161), + [3155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(868), + [3157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [3159] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_declaration_repeat1, 2), SHIFT_REPEAT(1226), + [3162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_declaration_repeat1, 2), + [3164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), + [3166] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2), SHIFT_REPEAT(618), + [3169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2), + [3171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [3173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [3175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator, 1, .production_id = 5), + [3177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), + [3179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [3181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1194), + [3183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(878), + [3185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(614), + [3187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [3189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [3191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), + [3193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_designator, 2, .production_id = 68), + [3195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1239), + [3197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_params, 4), + [3199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(496), + [3201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variadic_parameter, 1), + [3203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(361), + [3205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1431), + [3207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_params, 2), + [3209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(342), + [3211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1365), + [3213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1110), + [3215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1419), + [3217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(809), + [3219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1318), + [3221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), + [3223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 2, .production_id = 5), + [3225] = {.entry = {.count = 1, .reusable = false}}, SHIFT(333), + [3227] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1356), + [3229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1233), + [3231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_params, 3), + [3233] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1286), + [3235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109), + [3237] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1406), + [3239] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), + [3241] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1441), + [3243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(903), + [3245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1339), + [3247] = {.entry = {.count = 1, .reusable = false}}, SHIFT(768), + [3249] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1306), + [3251] = {.entry = {.count = 1, .reusable = false}}, SHIFT(772), + [3253] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1295), + [3255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(764), + [3257] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1303), + [3259] = {.entry = {.count = 1, .reusable = false}}, SHIFT(673), + [3261] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1300), + [3263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(669), + [3265] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1297), + [3267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(959), + [3269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1396), + [3271] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1410), + [3273] = {.entry = {.count = 1, .reusable = false}}, SHIFT(372), + [3275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1294), + [3277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(345), + [3279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1291), + [3281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 4, .production_id = 41), + [3283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(352), + [3285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1301), + [3287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1129), + [3289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(790), + [3291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), + [3293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [3295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1207), + [3297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [3299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(953), + [3301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(816), + [3303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), + [3305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683), + [3307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), + [3309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), + [3311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), + [3313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), + [3315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(797), + [3317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671), + [3319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672), + [3321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(785), + [3323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663), + [3325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [3327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), + [3329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(766), + [3331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(767), + [3333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(822), + [3335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(769), + [3337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(779), + [3339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [3341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [3343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), + [3345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [3347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1282), + [3349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(792), + [3351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [3353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [3355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(761), + [3357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(843), + [3359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667), + [3361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [3363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif, 4, .production_id = 54), + [3365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [3367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(688), + [3369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [3371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(685), + [3373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), + [3375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1389), + [3377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(682), + [3379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), + [3381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [3383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [3385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), + [3387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(819), + [3389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), + [3391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), + [3393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(957), + [3395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), + [3397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(821), + [3399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(782), + [3401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(585), + [3403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_based_modifier, 2), + [3405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(773), + [3407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(866), + [3409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), + [3411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), + [3413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [3415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390), + [3417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(776), + [3419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1135), + [3421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [3423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(793), + [3425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [3427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(778), + [3429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661), + [3431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1424), + [3433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [3435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(799), + [3437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1125), + [3439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660), + [3441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(835), + [3443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), + [3445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(922), + [3447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679), + [3449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [3451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(676), + [3453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), + [3455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1354), + [3457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [3459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), + [3461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1130), + [3463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [3465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif, 5, .production_id = 66), + [3467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [3469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1148), + [3471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1312), + [3473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [3475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(838), + [3477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [3479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), + [3481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570), + [3483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [3485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [3487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1218), + [3489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(786), + [3491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [3493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(908), + [3495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1115), + [3497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1117), + [3499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1132), + [3501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [3503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1377), + [3505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [3507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476), + [3509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), + [3511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(448), + [3513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 4, .production_id = 54), + [3515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1216), + [3517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 5, .production_id = 66), + [3519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(469), + [3521] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [3523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [3525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1412), + [3527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [3529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1230), + [3531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [3533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [3535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [3537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [3539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1210), + [3541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), + [3543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [3545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1425), + [3547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [3549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [3551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1249), + [3553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [3555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [3557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [3559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), +}; + +#ifdef __cplusplus +extern "C" { +#endif +#ifdef _WIN32 +#define extern __declspec(dllexport) +#endif + +extern const TSLanguage *tree_sitter_c(void) { + static const TSLanguage language = { + .version = LANGUAGE_VERSION, + .symbol_count = SYMBOL_COUNT, + .alias_count = ALIAS_COUNT, + .token_count = TOKEN_COUNT, + .external_token_count = EXTERNAL_TOKEN_COUNT, + .state_count = STATE_COUNT, + .large_state_count = LARGE_STATE_COUNT, + .production_id_count = PRODUCTION_ID_COUNT, + .field_count = FIELD_COUNT, + .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, + .parse_table = &ts_parse_table[0][0], + .small_parse_table = ts_small_parse_table, + .small_parse_table_map = ts_small_parse_table_map, + .parse_actions = ts_parse_actions, + .symbol_names = ts_symbol_names, + .field_names = ts_field_names, + .field_map_slices = ts_field_map_slices, + .field_map_entries = ts_field_map_entries, + .symbol_metadata = ts_symbol_metadata, + .public_symbol_map = ts_symbol_map, + .alias_map = ts_non_terminal_alias_map, + .alias_sequences = &ts_alias_sequences[0][0], + .lex_modes = ts_lex_modes, + .lex_fn = ts_lex, + .keyword_lex_fn = ts_lex_keywords, + .keyword_capture_token = sym_identifier, + }; + return &language; +} +#ifdef __cplusplus +} +#endif diff --git a/tree-sitter-c/src/tree_sitter/parser.h b/tree-sitter-c/src/tree_sitter/parser.h new file mode 100644 index 0000000..2b14ac1 --- /dev/null +++ b/tree-sitter-c/src/tree_sitter/parser.h @@ -0,0 +1,224 @@ +#ifndef TREE_SITTER_PARSER_H_ +#define TREE_SITTER_PARSER_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#define ts_builtin_sym_error ((TSSymbol)-1) +#define ts_builtin_sym_end 0 +#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024 + +typedef uint16_t TSStateId; + +#ifndef TREE_SITTER_API_H_ +typedef uint16_t TSSymbol; +typedef uint16_t TSFieldId; +typedef struct TSLanguage TSLanguage; +#endif + +typedef struct { + TSFieldId field_id; + uint8_t child_index; + bool inherited; +} TSFieldMapEntry; + +typedef struct { + uint16_t index; + uint16_t length; +} TSFieldMapSlice; + +typedef struct { + bool visible; + bool named; + bool supertype; +} TSSymbolMetadata; + +typedef struct TSLexer TSLexer; + +struct TSLexer { + int32_t lookahead; + TSSymbol result_symbol; + void (*advance)(TSLexer *, bool); + void (*mark_end)(TSLexer *); + uint32_t (*get_column)(TSLexer *); + bool (*is_at_included_range_start)(const TSLexer *); + bool (*eof)(const TSLexer *); +}; + +typedef enum { + TSParseActionTypeShift, + TSParseActionTypeReduce, + TSParseActionTypeAccept, + TSParseActionTypeRecover, +} TSParseActionType; + +typedef union { + struct { + uint8_t type; + TSStateId state; + bool extra; + bool repetition; + } shift; + struct { + uint8_t type; + uint8_t child_count; + TSSymbol symbol; + int16_t dynamic_precedence; + uint16_t production_id; + } reduce; + uint8_t type; +} TSParseAction; + +typedef struct { + uint16_t lex_state; + uint16_t external_lex_state; +} TSLexMode; + +typedef union { + TSParseAction action; + struct { + uint8_t count; + bool reusable; + } entry; +} TSParseActionEntry; + +struct TSLanguage { + uint32_t version; + uint32_t symbol_count; + uint32_t alias_count; + uint32_t token_count; + uint32_t external_token_count; + uint32_t state_count; + uint32_t large_state_count; + uint32_t production_id_count; + uint32_t field_count; + uint16_t max_alias_sequence_length; + const uint16_t *parse_table; + const uint16_t *small_parse_table; + const uint32_t *small_parse_table_map; + const TSParseActionEntry *parse_actions; + const char * const *symbol_names; + const char * const *field_names; + const TSFieldMapSlice *field_map_slices; + const TSFieldMapEntry *field_map_entries; + const TSSymbolMetadata *symbol_metadata; + const TSSymbol *public_symbol_map; + const uint16_t *alias_map; + const TSSymbol *alias_sequences; + const TSLexMode *lex_modes; + bool (*lex_fn)(TSLexer *, TSStateId); + bool (*keyword_lex_fn)(TSLexer *, TSStateId); + TSSymbol keyword_capture_token; + struct { + const bool *states; + const TSSymbol *symbol_map; + void *(*create)(void); + void (*destroy)(void *); + bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist); + unsigned (*serialize)(void *, char *); + void (*deserialize)(void *, const char *, unsigned); + } external_scanner; + const TSStateId *primary_state_ids; +}; + +/* + * Lexer Macros + */ + +#define START_LEXER() \ + bool result = false; \ + bool skip = false; \ + bool eof = false; \ + int32_t lookahead; \ + goto start; \ + next_state: \ + lexer->advance(lexer, skip); \ + start: \ + skip = false; \ + lookahead = lexer->lookahead; + +#define ADVANCE(state_value) \ + { \ + state = state_value; \ + goto next_state; \ + } + +#define SKIP(state_value) \ + { \ + skip = true; \ + state = state_value; \ + goto next_state; \ + } + +#define ACCEPT_TOKEN(symbol_value) \ + result = true; \ + lexer->result_symbol = symbol_value; \ + lexer->mark_end(lexer); + +#define END_STATE() return result; + +/* + * Parse Table Macros + */ + +#define SMALL_STATE(id) id - LARGE_STATE_COUNT + +#define STATE(id) id + +#define ACTIONS(id) id + +#define SHIFT(state_value) \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .state = state_value \ + } \ + }} + +#define SHIFT_REPEAT(state_value) \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .state = state_value, \ + .repetition = true \ + } \ + }} + +#define SHIFT_EXTRA() \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .extra = true \ + } \ + }} + +#define REDUCE(symbol_val, child_count_val, ...) \ + {{ \ + .reduce = { \ + .type = TSParseActionTypeReduce, \ + .symbol = symbol_val, \ + .child_count = child_count_val, \ + __VA_ARGS__ \ + }, \ + }} + +#define RECOVER() \ + {{ \ + .type = TSParseActionTypeRecover \ + }} + +#define ACCEPT_INPUT() \ + {{ \ + .type = TSParseActionTypeAccept \ + }} + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_PARSER_H_ diff --git a/tree-sitter-c/test/corpus/ambiguities.txt b/tree-sitter-c/test/corpus/ambiguities.txt new file mode 100644 index 0000000..cebb6fb --- /dev/null +++ b/tree-sitter-c/test/corpus/ambiguities.txt @@ -0,0 +1,178 @@ +======================================================================== +pointer declarations vs multiplications +======================================================================== + +int main() { + // declare a function pointer + T1 * b(T2 a); + + // evaluate expressions + c * d(5); + e(f * g); +} + +--- + +(translation_unit (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (comment) + (declaration + (type_identifier) + (pointer_declarator (function_declarator + (identifier) + (parameter_list (parameter_declaration (type_identifier) (identifier)))))) + (comment) + (expression_statement (binary_expression + (identifier) + (call_expression (identifier) (argument_list (number_literal))))) + (expression_statement (call_expression + (identifier) + (argument_list (binary_expression (identifier) (identifier)))))))) + +======================================================================== +casts vs multiplications +======================================================================== + +/* + * ambiguities + */ + +int main() { + // cast + a((B *)c); + + // parenthesized product + d((e * f)); +} + +--- + +(translation_unit + (comment) + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (comment) + (expression_statement (call_expression + (identifier) + (argument_list (cast_expression (type_descriptor (type_identifier) (abstract_pointer_declarator)) (identifier))))) + (comment) + (expression_statement (call_expression + (identifier) + (argument_list (parenthesized_expression (binary_expression (identifier) (identifier))))))))) + +======================================================================== +function-like type macros vs function calls +======================================================================== + +// this is a macro +GIT_INLINE(int *) x = 5; + +--- + +(translation_unit + (comment) + (declaration + (macro_type_specifier (identifier) (type_descriptor (primitive_type) (abstract_pointer_declarator))) + (init_declarator (identifier) (number_literal)))) + +======================================================================== +function calls vs parenthesized declarators vs macro types +======================================================================== + +int main() { + /* + * Could be either: + * - function call + * - declaration w/ parenthesized declarator + * - declaration w/ macro type, no declarator + */ + ABC(d); + + /* + * Normal declaration + */ + efg hij; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (comment) + (expression_statement (call_expression (identifier) (argument_list (identifier)))) + (comment) + (declaration (type_identifier) (identifier))))) + +======================================================================== +Call expressions vs empty declarations w/ macros as types +======================================================================== + +int main() { + int a = 1; + b(a); + A(A *); +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (declaration (primitive_type) (init_declarator (identifier) (number_literal))) + (expression_statement (call_expression (identifier) (argument_list (identifier)))) + (macro_type_specifier + (identifier) + (type_descriptor (type_identifier) (abstract_pointer_declarator)))))) + +======================================================================== +Comments after for loops with ambiguities +======================================================================== + +int main() { + for (a *b = c; d; e) { + aff; + } + + // a-comment + + g; +} + +--- + +(translation_unit (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (for_statement + (declaration (type_identifier) (init_declarator + (pointer_declarator (identifier)) + (identifier))) + (identifier) + (identifier) + (compound_statement + (expression_statement (identifier)))) + (comment) + (expression_statement (identifier))))) + +=============================================== +Top-level macro invocations +=============================================== + +DEFINE_SOMETHING(THING_A, "this is a thing a"); +DEFINE_SOMETHING(THING_B, "this is a thing b", "thanks"); + +--- + +(translation_unit + (expression_statement (call_expression (identifier) (argument_list (identifier) (string_literal)))) + (expression_statement (call_expression (identifier) (argument_list (identifier) (string_literal) (string_literal))))) diff --git a/tree-sitter-c/test/corpus/crlf.txt b/tree-sitter-c/test/corpus/crlf.txt new file mode 100644 index 0000000..9673cae --- /dev/null +++ b/tree-sitter-c/test/corpus/crlf.txt @@ -0,0 +1,13 @@ +============================================ +Line comments with escaped CRLF line endings +============================================ + +// hello \ + this is still a comment +this_is_not a_comment; + +--- + +(translation_unit + (comment) + (declaration (type_identifier) (identifier))) diff --git a/tree-sitter-c/test/corpus/declarations.txt b/tree-sitter-c/test/corpus/declarations.txt new file mode 100644 index 0000000..b2bceab --- /dev/null +++ b/tree-sitter-c/test/corpus/declarations.txt @@ -0,0 +1,530 @@ +============================================ +Struct declarations +============================================ + +struct s1; + +struct s2 { + int x; + float y : 5; +}; + +--- + +(translation_unit + (struct_specifier + name: (type_identifier)) + (struct_specifier + name: (type_identifier) + body: (field_declaration_list + (field_declaration + type: (primitive_type) + declarator: (field_identifier)) + (field_declaration + type: (primitive_type) + declarator: (field_identifier) + (bitfield_clause (number_literal)))))) + +============================================ +Union declarations +============================================ + +union u1; + +union s2 { + int x; + float y; +}; + +--- + +(translation_unit + (union_specifier + name: (type_identifier)) + (union_specifier + name: (type_identifier) + body: (field_declaration_list + (field_declaration + type: (primitive_type) + declarator: (field_identifier)) + (field_declaration + type: (primitive_type) + declarator: (field_identifier))))) + +============================================ +Enum declarations +============================================ + +enum e1; + +enum e2 { + val1, + val2 = 5, + val3 +}; + +enum e3 { + val1, +}; + +--- + +(translation_unit + (enum_specifier + name: (type_identifier)) + (enum_specifier + name: (type_identifier) + body: (enumerator_list + (enumerator name: (identifier)) + (enumerator name: (identifier) value: (number_literal)) + (enumerator name: (identifier)))) + (enum_specifier + name: (type_identifier) + body: (enumerator_list + (enumerator name: (identifier))))) + +====================================================== +Struct declarations containing preprocessor directives +====================================================== + +struct s { + #define A 5 + int b[a]; + #undef A +}; + +--- + +(translation_unit + (struct_specifier + (type_identifier) + (field_declaration_list + (preproc_def (identifier) (preproc_arg)) + (field_declaration (primitive_type) (array_declarator (field_identifier) (identifier))) + (preproc_call (preproc_directive) (preproc_arg))))) + +============================================ +Primitive-typed variable declarations +============================================ + +unsigned short int a; +long int b, c = 5, d; +float d, e; +unsigned f; +short g, h; + +--- + +(translation_unit + (declaration + type: (sized_type_specifier type: (primitive_type)) + declarator: (identifier)) + (declaration + type: (sized_type_specifier type: (primitive_type)) + declarator: (identifier) + declarator: (init_declarator + declarator: (identifier) + value: (number_literal)) + declarator: (identifier)) + (declaration + type: (primitive_type) + declarator: (identifier) + declarator: (identifier)) + (declaration + type: (sized_type_specifier) + declarator: (identifier)) + (declaration + type: (sized_type_specifier) + declarator: (identifier) + declarator: (identifier))) + +============================================ +Variable storage classes +============================================ + +int a; +extern int b, c; +auto int d; +register int e; +static int f; + +--- + +(translation_unit + (declaration (primitive_type) (identifier)) + (declaration (storage_class_specifier) (primitive_type) (identifier) (identifier)) + (declaration (storage_class_specifier) (primitive_type) (identifier)) + (declaration (storage_class_specifier) (primitive_type) (identifier)) + (declaration (storage_class_specifier) (primitive_type) (identifier))) + +============================================ +Composite-typed variable declarations +============================================ + +struct b c; +union { int e; } f; +enum { g, h } i; + +--- + +(translation_unit + (declaration + type: (struct_specifier name: (type_identifier)) + declarator: (identifier)) + (declaration + type: (union_specifier + body: (field_declaration_list + (field_declaration + type: (primitive_type) + declarator: (field_identifier)))) + declarator: (identifier)) + (declaration + type: (enum_specifier body: (enumerator_list + (enumerator name: (identifier)) + (enumerator name: (identifier)))) + declarator: (identifier))) + +============================================ +Pointer variable declarations +============================================ + +char *the_string; +const char **the_strings; +int const * const restrict x; + +--- + +(translation_unit + (declaration + type: (primitive_type) + declarator: (pointer_declarator + declarator: (identifier))) + (declaration + (type_qualifier) + type: (primitive_type) + declarator: (pointer_declarator + declarator: (pointer_declarator + declarator: (identifier)))) + (declaration + type: (primitive_type) + (type_qualifier) + declarator: (pointer_declarator + (type_qualifier) + (type_qualifier) + declarator: (identifier)))) + +============================================ +Typedefs +============================================ + +typedef int my_int; + +typedef struct { + int x; +} *a; + +typedef void my_callback(void *, size_t); + +typedef struct A { + int i; +} a, b; + +--- + +(translation_unit + (type_definition + type: (primitive_type) + declarator: (type_identifier)) + (type_definition + type: (struct_specifier + body: (field_declaration_list + (field_declaration + type: (primitive_type) + declarator: (field_identifier)))) + declarator: (pointer_declarator + declarator: (type_identifier))) + (type_definition + type: (primitive_type) + declarator: (function_declarator + declarator: (type_identifier) + parameters: (parameter_list + (parameter_declaration + type: (primitive_type) + declarator: (abstract_pointer_declarator)) + (parameter_declaration + type: (primitive_type))))) + (type_definition + type: (struct_specifier + name: (type_identifier) + body: (field_declaration_list + (field_declaration + type: (primitive_type) + declarator: (field_identifier)))) + declarator: (type_identifier) + declarator: (type_identifier))) + +============================================ +Function declarations +============================================ + +int main(int argc, const char **argv); +static foo bar(); +static baz quux(...); + +--- + +(translation_unit + (declaration + (primitive_type) + (function_declarator + (identifier) + (parameter_list + (parameter_declaration + (primitive_type) + (identifier)) + (parameter_declaration + (type_qualifier) + (primitive_type) + (pointer_declarator (pointer_declarator (identifier))))))) + + (declaration + (storage_class_specifier) + (type_identifier) + (function_declarator (identifier) (parameter_list))) + + (declaration + (storage_class_specifier) + (type_identifier) + (function_declarator (identifier) (parameter_list (variadic_parameter))))) + +============================================ +Function definitions +============================================ + +void * do_stuff(int arg1) { + return 5; +} + +--- + +(translation_unit + (function_definition + type: (primitive_type) + declarator: (pointer_declarator + declarator: (function_declarator + declarator: (identifier) + parameters: (parameter_list + (parameter_declaration + type: (primitive_type) + declarator: (identifier))))) + body: (compound_statement + (return_statement (number_literal))))) + +============================================ +Function specifiers after types +============================================ + +int static inline do_stuff(int arg1) { + return 5; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (storage_class_specifier) + (storage_class_specifier) + (function_declarator + (identifier) + (parameter_list (parameter_declaration (primitive_type) (identifier)))) + (compound_statement (return_statement (number_literal))))) + +============================================ +Linkage specifications +============================================ + +extern "C" int foo(); + +extern "C" int foo() { return 0; } + +extern "C" { + int bar(); + int baz(); +} + +--- + +(translation_unit + (linkage_specification + (string_literal) + (declaration + (primitive_type) + (function_declarator (identifier) (parameter_list)))) + (linkage_specification + (string_literal) + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement (return_statement (number_literal))))) + (linkage_specification + (string_literal) + (declaration_list + (declaration + (primitive_type) + (function_declarator (identifier) (parameter_list))) + (declaration + (primitive_type) + (function_declarator (identifier) (parameter_list)))))) + +========================== +Type qualifiers +========================== + +const _Atomic unsigned long int x = 5; +restrict int y = 6; +volatile int z = 7; + +--- + +(translation_unit + (declaration + (type_qualifier) + (type_qualifier) + (sized_type_specifier (primitive_type)) + (init_declarator (identifier) (number_literal))) + (declaration + (type_qualifier) + (primitive_type) + (init_declarator (identifier) (number_literal))) + (declaration + (type_qualifier) + (primitive_type) + (init_declarator (identifier) (number_literal)))) + +================================ +Local array declarations +================================ + +int main() { + char the_buffer[the_size]; + char the_other_buffer[*]; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (declaration (primitive_type) (array_declarator (identifier) (identifier))) + (declaration (primitive_type) (array_declarator (identifier)))))) + +================================ +Attributes +================================ + +extern __attribute__((visibility("hidden"))) int foo(); +extern int bar() __attribute__((const)); +void die(const char *format, ...) __attribute__((noreturn)) + __attribute__((format(printf,1,2))); +extern __attribute__((visibility("default"), weak)) int print_status(); + +int f([[a::b(c), d]] int x) {} + +[[gnu::always_inline]] [[gnu::hot]] [[gnu::const]] [[nodiscard]] +int g(void); + +[[gnu::always_inline, gnu::hot, gnu::const, nodiscard]] +int g(void); + +int i [[maybe_unused]]; +void f[[gnu::always_inline]](); + +[[nodiscard("reason")]] int foo; + +[[fallthrough]]; + +struct S { + int a [[deprecated]]; +}; + +typedef int MyInt [[deprecated]]; + +--- + +(translation_unit + (declaration + (storage_class_specifier) + (attribute_specifier + (argument_list + (call_expression + (identifier) (argument_list (string_literal))))) + (primitive_type) + (function_declarator (identifier) (parameter_list))) + (declaration + (storage_class_specifier) + (primitive_type) + (function_declarator (identifier) (parameter_list) (attribute_specifier (argument_list (identifier))))) + (declaration + (primitive_type) + (function_declarator (identifier) + (parameter_list (parameter_declaration (type_qualifier) (primitive_type) (pointer_declarator (identifier))) (variadic_parameter)) + (attribute_specifier (argument_list (identifier))) + (attribute_specifier + (argument_list (call_expression (identifier) (argument_list (identifier) (number_literal) (number_literal))))))) + (declaration + (storage_class_specifier) + (attribute_specifier + (argument_list (call_expression (identifier) (argument_list (string_literal))) (identifier))) + (primitive_type) (function_declarator (identifier) (parameter_list))) + (function_definition (primitive_type) + (function_declarator (identifier) (parameter_list (parameter_declaration + (attribute_declaration + (attribute (identifier) (identifier) (argument_list (identifier))) + (attribute (identifier))) + (primitive_type) (identifier)))) (compound_statement)) + (declaration + (attribute_declaration (attribute (identifier) (identifier))) + (attribute_declaration (attribute (identifier) (identifier))) + (attribute_declaration (attribute (identifier) (identifier))) + (attribute_declaration (attribute (identifier))) + (primitive_type) + (function_declarator (identifier) (parameter_list (parameter_declaration (primitive_type))))) + (declaration + (attribute_declaration + (attribute (identifier) (identifier)) + (attribute (identifier) (identifier)) + (attribute (identifier) (identifier)) + (attribute (identifier))) + (primitive_type) + (function_declarator (identifier) (parameter_list (parameter_declaration (primitive_type))))) + (declaration + (primitive_type) + (attributed_declarator + (identifier) + (attribute_declaration (attribute (identifier))))) + (declaration + (primitive_type) + (function_declarator + (attributed_declarator + (identifier) + (attribute_declaration (attribute (identifier) (identifier)))) + (parameter_list))) + (declaration + (attribute_declaration (attribute (identifier) (argument_list (string_literal)))) + (primitive_type) (identifier)) + (attributed_statement + (attribute_declaration (attribute (identifier))) + (expression_statement)) + (struct_specifier + (type_identifier) + (field_declaration_list (field_declaration (primitive_type) + (attributed_declarator + (field_identifier) + (attribute_declaration (attribute (identifier))))))) + (type_definition (primitive_type) + (attributed_declarator + (type_identifier) + (attribute_declaration (attribute (identifier)))))) diff --git a/tree-sitter-c/test/corpus/expressions.txt b/tree-sitter-c/test/corpus/expressions.txt new file mode 100644 index 0000000..2d871e2 --- /dev/null +++ b/tree-sitter-c/test/corpus/expressions.txt @@ -0,0 +1,518 @@ +============================================ +Number literals +============================================ + +double a = { + 0xAC00, + 0.123, + 0b1010001, + 0xabc00ull, + -0.1f, + 1'000'000.000'001, + 24e-5, + 0.1E, + 58., + 4e2, + 123.456e-67, + .1E4f, + 0x10.1p0, +}; + +--- + +(translation_unit + (declaration + (primitive_type) + (init_declarator + (identifier) + (initializer_list + (number_literal) + (number_literal) + (number_literal) + (number_literal) + (number_literal) + (number_literal) + (number_literal) + (number_literal) + (number_literal) + (number_literal) + (number_literal) + (number_literal) + (number_literal) + )))) + +============================================ +Identifiers +============================================ + +int main() { + _abc; + d_EG123; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (identifier)) + (expression_statement (identifier))))) + +============================================ +Common constants +============================================ + +int main() { + true; + false; + NULL; + + // regression test - identifiers starting w/ these strings should tokenize correctly. + true_value; + false_value; + NULL_value; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (true)) + (expression_statement (false)) + (expression_statement (null)) + (comment) + (expression_statement (identifier)) + (expression_statement (identifier)) + (expression_statement (identifier))))) + +============================================ +Function calls +============================================ + +int main() { + printf("hi! %d\n", x); +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (call_expression + (identifier) + (argument_list (string_literal (escape_sequence)) (identifier))))))) + +============================================ +String literals +============================================ + +int main() { + "a"; + "b" "c" "d"; + "\"hi\""; + L"bonjour"; + u"guten morgen"; + U"buenos dias"; + u8"buongiorno"; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (string_literal)) + (expression_statement (concatenated_string (string_literal) (string_literal) (string_literal))) + (expression_statement (string_literal (escape_sequence) (escape_sequence))) + (expression_statement (string_literal)) + (expression_statement (string_literal)) + (expression_statement (string_literal)) + (expression_statement (string_literal))))) + +============================================ +Character literals +============================================ + +int main() { + 'a'; + '\0'; + '\t'; + '\''; + L'b'; + u'c'; + U'\xa1'; + u8'\x1A'; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (char_literal)) + (expression_statement (char_literal (escape_sequence))) + (expression_statement (char_literal (escape_sequence))) + (expression_statement (char_literal (escape_sequence))) + (expression_statement (char_literal)) + (expression_statement (char_literal)) + (expression_statement (char_literal (escape_sequence))) + (expression_statement (char_literal (escape_sequence)))))) + +============================================ +Field access +============================================ + +int main() { + s.data1; + p->data2; + q[data3]; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (field_expression (identifier) (field_identifier))) + (expression_statement (field_expression (identifier) (field_identifier))) + (expression_statement (subscript_expression (identifier) (identifier)))))) + +============================================ +Boolean operators +============================================ + +int main() { + !x || !y && !z; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (binary_expression + (unary_expression (identifier)) + (binary_expression + (unary_expression (identifier)) + (unary_expression (identifier)))))))) + +============================================ +Math operators +============================================ + +int main() { + -a / b + c * -d; + a++ - ++b + c-- + --d; + ++L; + } + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (binary_expression + (binary_expression + (unary_expression (identifier)) + (identifier)) + (binary_expression + (identifier) + (unary_expression (identifier))))) + (expression_statement + (binary_expression + (binary_expression + (binary_expression + (update_expression (identifier)) + (update_expression (identifier))) + (update_expression (identifier))) + (update_expression (identifier)))) + (expression_statement (update_expression (identifier)))))) + +============================================ +The comma operator +============================================ + +int main() { + i--, j--; + (i--, j--); +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement + (comma_expression + (update_expression (identifier)) + (update_expression (identifier)))) + (expression_statement + (parenthesized_expression + (comma_expression + (update_expression (identifier)) + (update_expression (identifier)))))))) + +============================================ +Assignments +============================================ + +int main() { + static int a = 1; + b = *c = 2; + d.e = 3; + f->g = 4; + h[i] = j; + k += l; + m -= o; + n *= p; + q /= r; + *s++ = 1; + (*t) = 1; +} + +--- + +(translation_unit + (function_definition + type: (primitive_type) + declarator: (function_declarator + declarator: (identifier) + parameters: (parameter_list)) + body: (compound_statement + (declaration + (storage_class_specifier) + type: (primitive_type) + declarator: (init_declarator + declarator: (identifier) + value: (number_literal))) + (expression_statement (assignment_expression + left: (identifier) + right: (assignment_expression + left: (pointer_expression + argument: (identifier)) + right: (number_literal)))) + (expression_statement (assignment_expression + left: (field_expression + argument: (identifier) + field: (field_identifier)) + right: (number_literal))) + (expression_statement (assignment_expression + left: (field_expression + argument: (identifier) + field: (field_identifier)) + right: (number_literal))) + (expression_statement (assignment_expression + left: (subscript_expression + argument: (identifier) + index: (identifier)) + right: (identifier))) + (expression_statement (assignment_expression + left: (identifier) + right: (identifier))) + (expression_statement (assignment_expression + left: (identifier) + right: (identifier))) + (expression_statement (assignment_expression + left: (identifier) + right: (identifier))) + (expression_statement (assignment_expression + left: (identifier) + right: (identifier))) + (expression_statement (assignment_expression + left: (pointer_expression + argument: (update_expression + argument: (identifier))) + right: (number_literal))) + (expression_statement (assignment_expression + left: (parenthesized_expression (pointer_expression + argument: (identifier))) + right: (number_literal)))))) + +============================================ +Pointer operations +============================================ + +int main() { + doSomething(&x, *x); +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (call_expression + (identifier) + (argument_list + (pointer_expression (identifier)) + (pointer_expression (identifier)))))))) + +============================================ +Type-casts +============================================ + +int main() { + x = (const SomeType *)thing; +} + +--- + +(translation_unit + (function_definition + type: (primitive_type) + declarator: (function_declarator + declarator: (identifier) + parameters: (parameter_list)) + body: (compound_statement + (expression_statement (assignment_expression + left: (identifier) + right: (cast_expression + type: (type_descriptor + (type_qualifier) + type: (type_identifier) + declarator: (abstract_pointer_declarator)) + value: (identifier))))))) + +============================================ +Sizeof expressions +============================================ + +int main() { + sizeof x.a; + sizeof(x.a); + sizeof(const char **); + sizeof(char * ()); +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (sizeof_expression (field_expression (identifier) (field_identifier)))) + (expression_statement (sizeof_expression (parenthesized_expression (field_expression (identifier) (field_identifier))))) + (expression_statement (sizeof_expression + (type_descriptor (type_qualifier) (primitive_type) (abstract_pointer_declarator (abstract_pointer_declarator))))) + (expression_statement (sizeof_expression + (type_descriptor (primitive_type) (abstract_pointer_declarator (abstract_function_declarator (parameter_list))))))))) + +============================================ +Compound literals +============================================ + +int main() { + x = (SomeType) { + .f1.f2[f3] = 5, + .f4 = {} + }; + y = (struct SomeStruct) { + 7, + 8 + }; + z = (char const []) {'a', 'b'}; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (assignment_expression + (identifier) + (compound_literal_expression + (type_descriptor (type_identifier)) + (initializer_list + (initializer_pair + (field_designator (field_identifier)) + (field_designator (field_identifier)) + (subscript_designator (identifier)) + (number_literal)) + (initializer_pair + (field_designator (field_identifier)) + (initializer_list)))))) + (expression_statement (assignment_expression + (identifier) + (compound_literal_expression + (type_descriptor (struct_specifier (type_identifier))) + (initializer_list + (number_literal) + (number_literal))))) + (expression_statement + (assignment_expression + (identifier) + (compound_literal_expression + (type_descriptor (primitive_type) (type_qualifier) (abstract_array_declarator)) + (initializer_list (char_literal) (char_literal)))))))) + +============================================ +Compound literals with trailing commas +============================================ + +int main() { + y = (struct SomeStruct) { 7, 8, }; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (expression_statement (assignment_expression + (identifier) + (compound_literal_expression + (type_descriptor (struct_specifier (type_identifier))) + (initializer_list + (number_literal) + (number_literal)))))))) + +==================================== +Comments with escaped newlines +==================================== + +// one \ + two + +--- + +(translation_unit + (comment)) + +============================================== +Comments with escaped chars and newlines +============================================== + +// one \a \b \ + two +// one \c \d +--- + +(translation_unit + (comment) + (comment)) diff --git a/tree-sitter-c/test/corpus/microsoft.txt b/tree-sitter-c/test/corpus/microsoft.txt new file mode 100644 index 0000000..c0dfc67 --- /dev/null +++ b/tree-sitter-c/test/corpus/microsoft.txt @@ -0,0 +1,187 @@ +================================ +declaration specs +================================ + +struct __declspec(dllexport) s2 +{ +}; + +union __declspec(noinline) u2 { +}; + +--- + +(translation_unit + (struct_specifier + (ms_declspec_modifier + (identifier)) + name: (type_identifier) + body: (field_declaration_list)) + (union_specifier + (ms_declspec_modifier + (identifier)) + name: (type_identifier) + body: (field_declaration_list))) + +================================ +pointers +================================ + +struct s2 +{ + int * __restrict x; + int * __sptr psp; + int * __uptr pup; + int * __unaligned pup; +}; + +void sum2(int n, int * __restrict a, int * __restrict b, + int * c, int * d) { + int i; + for (i = 0; i < n; i++) { + a[i] = b[i] + c[i]; + c[i] = b[i] + d[i]; + } +} + +void MyFunction(char * __uptr myValue); + +--- + +(translation_unit + (struct_specifier + name: (type_identifier) + body: (field_declaration_list + (field_declaration + type: (primitive_type) + declarator: (pointer_declarator + (ms_pointer_modifier + (ms_restrict_modifier)) + declarator: (field_identifier))) + (field_declaration + type: (primitive_type) + declarator: (pointer_declarator + (ms_pointer_modifier + (ms_signed_ptr_modifier)) + declarator: (field_identifier))) + (field_declaration + type: (primitive_type) + declarator: (pointer_declarator + (ms_pointer_modifier + (ms_unsigned_ptr_modifier)) + declarator: (field_identifier))) + (field_declaration + type: (primitive_type) + declarator: (pointer_declarator + (ms_pointer_modifier + (ms_unaligned_ptr_modifier)) + declarator: (field_identifier))))) + (function_definition + type: (primitive_type) + declarator: (function_declarator + declarator: (identifier) + parameters: (parameter_list + (parameter_declaration + type: (primitive_type) + declarator: (identifier)) + (parameter_declaration + type: (primitive_type) + declarator: (pointer_declarator + (ms_pointer_modifier + (ms_restrict_modifier)) + declarator: (identifier))) + (parameter_declaration + type: (primitive_type) + declarator: (pointer_declarator + (ms_pointer_modifier + (ms_restrict_modifier)) + declarator: (identifier))) + (parameter_declaration + type: (primitive_type) + declarator: (pointer_declarator + declarator: (identifier))) + (parameter_declaration + type: (primitive_type) + declarator: (pointer_declarator + declarator: (identifier))))) + body: (compound_statement + (declaration + type: (primitive_type) + declarator: (identifier)) + (for_statement + initializer: (assignment_expression + left: (identifier) + right: (number_literal)) + condition: (binary_expression + left: (identifier) + right: (identifier)) + update: (update_expression + argument: (identifier)) + body: (compound_statement + (expression_statement + (assignment_expression + left: (subscript_expression + argument: (identifier) + index: (identifier)) + right: (binary_expression + left: (subscript_expression + argument: (identifier) + index: (identifier)) + right: (subscript_expression + argument: (identifier) + index: (identifier))))) + (expression_statement + (assignment_expression + left: (subscript_expression + argument: (identifier) + index: (identifier)) + right: (binary_expression + left: (subscript_expression + argument: (identifier) + index: (identifier)) + right: (subscript_expression + argument: (identifier) + index: (identifier))))))))) + (declaration + type: (primitive_type) + declarator: (function_declarator + declarator: (identifier) + parameters: (parameter_list + (parameter_declaration + type: (primitive_type) + declarator: (pointer_declarator + (ms_pointer_modifier + (ms_unsigned_ptr_modifier)) + declarator: (identifier))))))) + +================================ +call modifiers +================================ + +__cdecl void mymethod(){ + return; +} + +__fastcall void mymethod(){ + return; +} + +--- + +(translation_unit + (function_definition + (ms_call_modifier) + type: (primitive_type) + declarator: (function_declarator + declarator: (identifier) + parameters: (parameter_list)) + body: (compound_statement + (return_statement))) + (function_definition + (ms_call_modifier) + type: (primitive_type) + declarator: (function_declarator + declarator: (identifier) + parameters: (parameter_list)) + body: (compound_statement + (return_statement)))) diff --git a/tree-sitter-c/test/corpus/preprocessor.txt b/tree-sitter-c/test/corpus/preprocessor.txt new file mode 100644 index 0000000..3c52d1d --- /dev/null +++ b/tree-sitter-c/test/corpus/preprocessor.txt @@ -0,0 +1,274 @@ +============================================ +Include directives +============================================ + +#include "some/path.h" +#include +#include MACRO +#include MACRO(arg1, arg2) + +--- + +(translation_unit + (preproc_include path: (string_literal)) + (preproc_include path: (system_lib_string)) + (preproc_include path: (identifier)) + (preproc_include path: + (call_expression + function: (identifier) + arguments: (argument_list (identifier) (identifier))))) + +============================================ +Object-like macro definitions +============================================ + +#define ONE +#define TWO int a = b; +#define THREE \ + c == d ? \ + e : \ + f +#define FOUR (mno * pq) +#define FIVE(a,b) x \ + + y +#define SIX(a, \ + b) x \ + + y + +--- + +(translation_unit + (preproc_def name: (identifier)) + (preproc_def name: (identifier) value: (preproc_arg)) + (preproc_def name: (identifier) value: (preproc_arg)) + (preproc_def name: (identifier) value: (preproc_arg)) + (preproc_function_def name: (identifier) parameters: (preproc_params (identifier) (identifier)) value: (preproc_arg)) + (preproc_function_def name: (identifier) parameters: (preproc_params (identifier) (identifier)) value: (preproc_arg))) + +============================================ +Function-like macro definitions +============================================ + +#define ONE() a +#define TWO(b) c +#define THREE(d, e) f +#define FOUR(...) g +#define FIVE(h, i, ...) j + +--- + +(translation_unit + (preproc_function_def + name: (identifier) + parameters: (preproc_params) + value: (preproc_arg)) + (preproc_function_def + name: (identifier) + parameters: (preproc_params (identifier)) + value: (preproc_arg)) + (preproc_function_def + name: (identifier) + parameters: (preproc_params (identifier) (identifier)) + value: (preproc_arg)) + (preproc_function_def + name: (identifier) + parameters: (preproc_params) + value: (preproc_arg)) + (preproc_function_def + name: (identifier) + parameters: (preproc_params (identifier) (identifier)) + value: (preproc_arg))) + +============================================ +Ifdefs +============================================ + +#ifndef DEFINE1 +int j; +#endif + +#ifdef DEFINE2 +ssize_t b; +#define c 32 +#elif defined DEFINE3 +#else +int b; +#define c 16 +#endif + +#ifdef DEFINE2 +#else +# ifdef DEFINE3 +# else +# endif +#endif + +--- + +(translation_unit + (preproc_ifdef + name: (identifier) + (declaration + type: (primitive_type) + declarator: (identifier))) + + (preproc_ifdef + name: (identifier) + (declaration + type: (primitive_type) + declarator: (identifier)) + (preproc_def + name: (identifier) + value: (preproc_arg)) + alternative: (preproc_elif + condition: (preproc_defined (identifier)) + alternative: (preproc_else + (declaration + type: (primitive_type) + declarator: (identifier)) + (preproc_def + name: (identifier) + value: (preproc_arg))))) + + (preproc_ifdef + name: (identifier) + alternative: (preproc_else + (preproc_ifdef + name: (identifier) + alternative: (preproc_else))))) + +=============================================================== +General if blocks +========================================== + +#if defined(__GNUC__) && defined(__PIC__) +#define inline inline __attribute__((always_inline)) +#elif defined(_WIN32) +#define something +#elif !defined(SOMETHING_ELSE) +#define SOMETHING_ELSE +#else +#include +#endif + +--- + +(translation_unit + (preproc_if + condition: (binary_expression + left: (preproc_defined (identifier)) + right: (preproc_defined (identifier))) + (preproc_def + name: (identifier) + value: (preproc_arg)) + alternative: (preproc_elif + condition: (preproc_defined (identifier)) + (preproc_def + name: (identifier)) + alternative: (preproc_elif + condition: (unary_expression + argument: (preproc_defined (identifier))) + (preproc_def + name: (identifier)) + alternative: (preproc_else + (preproc_include path: (system_lib_string))))))) + +============================================ +Preprocessor conditionals in functions +============================================ + +int main() { + #if d + puts("1"); + #else + puts("2"); + #endif + + #if a + return 0; + #elif b + return 1; + #elif c + return 2; + #else + return 3; + #endif +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (preproc_if + (identifier) + (expression_statement (call_expression (identifier) (argument_list (string_literal)))) + (preproc_else + (expression_statement (call_expression (identifier) (argument_list (string_literal)))))) + (preproc_if + (identifier) + (return_statement (number_literal)) + (preproc_elif + (identifier) + (return_statement (number_literal)) + (preproc_elif + (identifier) + (return_statement (number_literal)) + (preproc_else + (return_statement (number_literal))))))))) + +================================================= +Preprocessor conditionals in struct/union bodies +================================================= + +struct S { +#ifdef _WIN32 + LONG f2; +#else + uint32_t f2; +#endif +}; + +--- + +(translation_unit + (struct_specifier (type_identifier) (field_declaration_list + (preproc_ifdef (identifier) + (field_declaration (type_identifier) (field_identifier)) + (preproc_else + (field_declaration (primitive_type) (field_identifier))))))) + +==================================== +Unknown preprocessor directives +==================================== + +#pragma mark - UIViewController + +--- + +(translation_unit (preproc_call + directive: (preproc_directive) + argument: (preproc_arg))) + +====================================== +Preprocessor expressions +====================================== + +#if A(B || C) && \ + !D(F) + +uint32_t a; + +#endif + +--- + +(translation_unit + (preproc_if + (binary_expression + (call_expression (identifier) (argument_list (binary_expression (identifier) (identifier)))) + (unary_expression + (call_expression (identifier) (argument_list (identifier))))) + (declaration (primitive_type) (identifier)))) diff --git a/tree-sitter-c/test/corpus/statements.txt b/tree-sitter-c/test/corpus/statements.txt new file mode 100644 index 0000000..45a42f3 --- /dev/null +++ b/tree-sitter-c/test/corpus/statements.txt @@ -0,0 +1,326 @@ +============================================ +If statements +============================================ + +int main() { + if (a) + 1; + + if (!a) { + 2; + } else { + 3; + } +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (if_statement (parenthesized_expression (identifier)) + (expression_statement (number_literal))) + (if_statement (parenthesized_expression (unary_expression (identifier))) + (compound_statement + (expression_statement (number_literal))) + (compound_statement + (expression_statement (number_literal))))))) + +============================================ +For loops +============================================ + +int main() { + for (;;) + 1; + + for (int i = 0; i < 5; next(), i++) { + 2; + } + + for (start(); check(); step()) + 3; + + for (i = 0, j = 0, k = 0, l = 0; i < 1, j < 1; i++, j++, k++, l++) + 1; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (for_statement + (expression_statement (number_literal))) + (for_statement + (declaration (primitive_type) (init_declarator (identifier) (number_literal))) + (binary_expression (identifier) (number_literal)) + (comma_expression + (call_expression (identifier) (argument_list)) + (update_expression (identifier))) + (compound_statement (expression_statement (number_literal)))) + (for_statement + (call_expression (identifier) (argument_list)) + (call_expression (identifier) (argument_list)) + (call_expression (identifier) (argument_list)) + (expression_statement (number_literal))) + (for_statement + (comma_expression + (assignment_expression (identifier) (number_literal)) + (comma_expression + (assignment_expression (identifier) (number_literal)) + (comma_expression + (assignment_expression (identifier) (number_literal)) + (assignment_expression (identifier) (number_literal))))) + (comma_expression + (binary_expression + (identifier) + (number_literal)) + (binary_expression + (identifier) + (number_literal))) + (comma_expression + (update_expression (identifier)) + (comma_expression + (update_expression (identifier)) + (comma_expression + (update_expression (identifier)) + (update_expression (identifier))))) + (expression_statement (number_literal)))))) + +============================================ +While loops +============================================ + +int main() { + while (x) + printf("hi"); +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (while_statement (parenthesized_expression (identifier)) + (expression_statement (call_expression + (identifier) + (argument_list (string_literal)))))))) + +============================================ +Labeled statements +============================================ + +void foo(T *t) { +recur: + t = t->next(); + if (t) goto recur; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list + (parameter_declaration (type_identifier) (pointer_declarator (identifier))))) + (compound_statement + (labeled_statement (statement_identifier) + (expression_statement (assignment_expression + (identifier) + (call_expression (field_expression (identifier) (field_identifier)) (argument_list))))) + (if_statement (parenthesized_expression (identifier)) (goto_statement (statement_identifier)))))) + +============================================ +Switch statements +============================================ + +void foo(int a) { + switch (a) { + puts("entered switch!"); + + case 3: + case 5: + if (b) { + c(); + } + break; + + default: + c(); + break; + } +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list + (parameter_declaration (primitive_type) (identifier)))) + (compound_statement + (switch_statement + (parenthesized_expression (identifier)) + (compound_statement + (expression_statement (call_expression (identifier) (argument_list (string_literal)))) + (case_statement (number_literal)) + (case_statement (number_literal) + (if_statement + (parenthesized_expression (identifier)) + (compound_statement (expression_statement (call_expression (identifier) (argument_list))))) + (break_statement)) + (case_statement + (expression_statement (call_expression (identifier) (argument_list))) + (break_statement))))))) + +============================================ +Case statements separate from switch statements +============================================ + +int main() { + switch (count % 8) { + case 0: + do { + *to = *from++; + case 2: *to = *from++; + case 1: *to = *from++; + } while (--n > 0); + } +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (switch_statement + (parenthesized_expression (binary_expression (identifier) (number_literal))) + (compound_statement + (case_statement (number_literal) + (do_statement + (compound_statement + (expression_statement (assignment_expression + (pointer_expression (identifier)) + (pointer_expression (update_expression (identifier))))) + (case_statement (number_literal) + (expression_statement (assignment_expression + (pointer_expression (identifier)) + (pointer_expression (update_expression (identifier)))))) + (case_statement (number_literal) + (expression_statement (assignment_expression + (pointer_expression (identifier)) + (pointer_expression (update_expression (identifier))))))) + (parenthesized_expression (binary_expression (update_expression (identifier)) (number_literal)))))))))) + +============================================ +Return statements +============================================ + +void foo() { + return; + return a; + return a, b; +} + +--- + +(translation_unit + (function_definition + (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (return_statement) + (return_statement (identifier)) + (return_statement (comma_expression (identifier) (identifier)))))) + +============================================ +Comments with asterisks +============================================ + +/************************* + * odd number of asterisks + *************************/ +int a; + +/************************** + * even number of asterisks + **************************/ +int b; + +--- + +(translation_unit + (comment) + (declaration (primitive_type) (identifier)) + (comment) + (declaration (primitive_type) (identifier))) + +============================================ +Attributes +============================================ + +void f() { + [[a]] switch (b) { + [[c]] case 1: {} + case 2: + [[fallthrough]]; + default: + } + [[a]] while (true) {} + [[a]] if (true) {} + [[a]] for (;;) {} + [[a]] return; + [[a]] a; + [[a]]; + [[a]] label: {} + [[a]] goto label; + + // these are c++ specific, but their bind locations should be c-compatible + if (true) [[likely]] {} else [[unlikely]] {} + do [[likely]] {} while (true); +} + +--- + +(translation_unit + (function_definition (primitive_type) + (function_declarator (identifier) (parameter_list)) + (compound_statement + (attributed_statement + (attribute_declaration (attribute (identifier))) + (switch_statement + (parenthesized_expression (identifier)) + (compound_statement + (attributed_statement + (attribute_declaration (attribute (identifier))) + (case_statement (number_literal) (compound_statement))) + (case_statement (number_literal) + (attributed_statement + (attribute_declaration (attribute (identifier))) + (expression_statement))) + (case_statement)))) + (attributed_statement (attribute_declaration (attribute (identifier))) (while_statement (parenthesized_expression (true)) (compound_statement))) + (attributed_statement (attribute_declaration (attribute (identifier))) (if_statement (parenthesized_expression (true)) (compound_statement))) + (attributed_statement (attribute_declaration (attribute (identifier))) (for_statement (compound_statement))) + (attributed_statement (attribute_declaration (attribute (identifier))) (return_statement)) + (attributed_statement (attribute_declaration (attribute (identifier))) (expression_statement (identifier))) + (attributed_statement (attribute_declaration (attribute (identifier))) (expression_statement)) + (attributed_statement (attribute_declaration (attribute (identifier))) (labeled_statement (statement_identifier) (compound_statement))) + (attributed_statement (attribute_declaration (attribute (identifier))) (goto_statement (statement_identifier))) + (comment) + (if_statement + (parenthesized_expression (true)) + (attributed_statement (attribute_declaration (attribute (identifier))) (compound_statement)) + (attributed_statement (attribute_declaration (attribute (identifier))) (compound_statement))) + (do_statement + (attributed_statement (attribute_declaration (attribute (identifier))) (compound_statement)) + (parenthesized_expression (true)))))) diff --git a/tree-sitter-c/test/corpus/types.txt b/tree-sitter-c/test/corpus/types.txt new file mode 100644 index 0000000..6d2d19a --- /dev/null +++ b/tree-sitter-c/test/corpus/types.txt @@ -0,0 +1,80 @@ +======================================== +Primitive types +======================================== + +int a; +uint8_t a; +uint16_t a; +uint32_t a; +uint64_t a; +uintptr_t a; + +int8_t a; +int16_t a; +int32_t a; +int64_t a; +intptr_t a; + +char16_t a; +char32_t a; + +size_t a; +ssize_t a; + +--- + +(translation_unit + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier)) + (declaration (primitive_type) (identifier))) + +======================================== +Type modifiers +======================================== + +void f(unsigned); +void f(unsigned int); +void f(signed long int); +void f(unsigned v1); +void f(unsigned long v2); + +--- + +(translation_unit + (declaration + (primitive_type) + (function_declarator + (identifier) + (parameter_list (parameter_declaration (sized_type_specifier))))) + (declaration + (primitive_type) + (function_declarator + (identifier) + (parameter_list (parameter_declaration (sized_type_specifier (primitive_type)))))) + (declaration + (primitive_type) + (function_declarator + (identifier) + (parameter_list (parameter_declaration (sized_type_specifier (primitive_type)))))) + (declaration + (primitive_type) + (function_declarator + (identifier) + (parameter_list (parameter_declaration (sized_type_specifier) (identifier))))) + (declaration + (primitive_type) + (function_declarator + (identifier) + (parameter_list (parameter_declaration (sized_type_specifier) (identifier)))))) diff --git a/tree-sitter-c/test/highlight/keywords.c b/tree-sitter-c/test/highlight/keywords.c new file mode 100644 index 0000000..50d790c --- /dev/null +++ b/tree-sitter-c/test/highlight/keywords.c @@ -0,0 +1,6 @@ +#include +// ^ keyword +// ^ string + +#include "something.h" +// ^ string diff --git a/tree-sitter-c/test/highlight/names.c b/tree-sitter-c/test/highlight/names.c new file mode 100644 index 0000000..efdd44c --- /dev/null +++ b/tree-sitter-c/test/highlight/names.c @@ -0,0 +1,33 @@ +typedef struct { + // ^ keyword + // ^ keyword + a_t b; + // <- type + // ^ property + + unsigned c_t (*d)[2]; + // ^ type + // ^ type + // ^ property +}, T, V; +// ^ type +// ^ type + +int main(const char string[SIZE]) { +// <- type +// ^ function +// ^ keyword +// ^ type +// ^ variable +// ^ constant + + return foo.bar + foo.baz(); + // ^ keyword + // ^ variable + // ^ property + // ^ function + +error: + // <- label + return 0; +}