From 6cc16ff7efa43a1e4011fd82e6db66866411e5ef Mon Sep 17 00:00:00 2001 From: Maix0 Date: Thu, 30 May 2024 19:57:33 +0200 Subject: [PATCH] splitted parser and grammar into two separate .a --- .clang-format | 2 +- .gitignore | 1 + Makefile | 16 +- Minishell.mk | 13 +- flake.lock | 71 +- flake.nix | 10 +- parser/Filelist.mk | 8755 +++++++++++++++++++------------------- parser/Grammar.mk | 73 + parser/Makefile | 82 +- parser/Parser.mk | 75 + parser/src/api.h | 725 +--- parser/src/api_structs.h | 41 +- parser/src/array.h | 193 +- parser/src/combined.c | 3057 +++++-------- parser/src/funcs.c | 711 ++++ parser/src/funcs.h | 104 +- 16 files changed, 6548 insertions(+), 7381 deletions(-) create mode 100644 parser/Grammar.mk create mode 100644 parser/Parser.mk create mode 100644 parser/src/funcs.c diff --git a/.clang-format b/.clang-format index 6b13f20e..9d85bfc2 100644 --- a/.clang-format +++ b/.clang-format @@ -1,6 +1,6 @@ BasedOnStyle: Microsoft IndentWidth: 4 -ColumnLimit: 80 +ColumnLimit: 1600 UseTab: Always SortIncludes: CaseInsensitive IndentPPDirectives: AfterHash diff --git a/.gitignore b/.gitignore index 3e257a66..6dd6c45f 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,4 @@ objects/ minishell .envrc .idea +parser/split_rust diff --git a/Makefile b/Makefile index 5aac186f..315d8b57 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: rparodi +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2023/11/12 11:05:05 by rparodi #+# #+# # -# Updated: 2024/05/08 16:01:18 by maiboyer ### ########.fr # +# Updated: 2024/05/30 18:03:52 by maiboyer ### ########.fr # # # # **************************************************************************** # @@ -25,15 +25,25 @@ SRC_DIR = ./sources GEN_DIR = ./output NAME = minishell +PMAKE = +ifndef PMAKE_DISABLE +ifeq ($(shell uname), Linux) + PMAKE = -j$(shell grep -c ^processor /proc/cpuinfo) +endif +ifeq ($(shell uname), Darwin) + PMAKE = -j$(shell sysctl -n hw.ncpu) +endif +endif + # All (make all) all: @$(MAKE) --no-print-directory header OBJDIRNAME=$(OBJDIRNAME) BASE_PATH=$(shell pwd) - @$(MAKE) --no-print-directory -f./Minishell.mk OBJDIRNAME=$(OBJDIRNAME) BASE_PATH=$(shell pwd) + @$(MAKE) --no-print-directory -f./Minishell.mk OBJDIRNAME=$(OBJDIRNAME) BASE_PATH=$(shell pwd) $(PMAKE) @$(MAKE) --no-print-directory footer OBJDIRNAME=$(OBJDIRNAME) BASE_PATH=$(shell pwd) bonus: @$(MAKE) --no-print-directory header OBJDIRNAME=$(OBJDIRNAME) BASE_PATH=$(shell pwd) - @$(MAKE) --no-print-directory -f./Minishell.mk OBJDIRNAME=$(OBJDIRNAME) BASE_PATH=$(shell pwd) bonus + @$(MAKE) --no-print-directory -f./Minishell.mk OBJDIRNAME=$(OBJDIRNAME) BASE_PATH=$(shell pwd) $(PMAKE) bonus @$(MAKE) --no-print-directory footer OBJDIRNAME=$(OBJDIRNAME) BASE_PATH=$(shell pwd) # Header diff --git a/Minishell.mk b/Minishell.mk index e0b2a9e0..b5468995 100644 --- a/Minishell.mk +++ b/Minishell.mk @@ -6,7 +6,7 @@ # By: maiboyer +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/04/28 17:28:30 by maiboyer #+# #+# # -# Updated: 2024/05/26 16:21:15 by maiboyer ### ########.fr # +# Updated: 2024/05/30 19:52:58 by maiboyer ### ########.fr # # # # **************************************************************************** # @@ -55,15 +55,16 @@ END = \033[0m .PHONY: all Bonus -LIBS_NAMES = me gmr aq ast +LIBS_NAMES = me gmr aq ast parser LIBS_FILES = $(addprefix $(OBJDIRNAME)/, $(addsuffix .a, $(addprefix lib, $(LIBS_NAMES)))) LIBS_FLAGS = $(addprefix -l, $(LIBS_NAMES)) all: - @$(MAKE) -C ./stdme/ "LIB_NAME=$(shell realpath ./stdme)/" "BUILD_DIR=$(shell realpath ./$(OBJDIRNAME))" libme.a - @$(MAKE) -C ./allocator/ "LIB_NAME=$(shell realpath ./allocator)/" "BUILD_DIR=$(shell realpath ./$(OBJDIRNAME))" libaq.a - @$(MAKE) -C ./ast/ "LIB_NAME=$(shell realpath ./ast)/" "BUILD_DIR=$(shell realpath ./$(OBJDIRNAME))" libast.a - @$(MAKE) -C ./parser/ "LIB_NAME=$(shell realpath ./parser)/" "BUILD_DIR=$(shell realpath ./$(OBJDIRNAME))" libgmr.a + @$(MAKE) -C ./stdme/ "LIB_NAME=$(shell realpath ./stdme)/" "BUILD_DIR=$(shell realpath ./$(OBJDIRNAME))" libme.a + @$(MAKE) -C ./allocator/ "LIB_NAME=$(shell realpath ./allocator)/" "BUILD_DIR=$(shell realpath ./$(OBJDIRNAME))" libaq.a + @$(MAKE) -C ./ast/ "LIB_NAME=$(shell realpath ./ast)/" "BUILD_DIR=$(shell realpath ./$(OBJDIRNAME))" libast.a + @$(MAKE) -C ./parser/ -f./Grammar.mk "LIB_NAME=$(shell realpath ./parser)/" "BUILD_DIR=$(shell realpath ./$(OBJDIRNAME))" libgmr.a + @$(MAKE) -C ./parser/ -f./Parser.mk "LIB_NAME=$(shell realpath ./parser)/" "BUILD_DIR=$(shell realpath ./$(OBJDIRNAME))" libparser.a @$(MAKE) -f./Minishell.mk $(NAME) diff --git a/flake.lock b/flake.lock index 85be87d3..f2e242f2 100644 --- a/flake.lock +++ b/flake.lock @@ -108,6 +108,24 @@ "type": "github" } }, + "flake-utils_5": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "generic_c": { "inputs": { "flake-utils": "flake-utils_3", @@ -219,12 +237,29 @@ "type": "indirect" } }, + "nixpkgs_6": { + "locked": { + "lastModified": 1706487304, + "narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "90f456026d284c22b3e3497be980b2e47d0b28ac", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "c_formatter_42": "c_formatter_42", "flake-utils": "flake-utils_2", "generic_c": "generic_c", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_5", + "rust-overlay": "rust-overlay_2" } }, "rust-overlay": { @@ -246,6 +281,25 @@ "type": "github" } }, + "rust-overlay_2": { + "inputs": { + "flake-utils": "flake-utils_5", + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1717035469, + "narHash": "sha256-MzH+yjKULH3HCRj9QCTwBvqq4LZkR0ZqRE/QfGOGC2E=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "095702e63a40e86f339d11864da9dc965b70a01e", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -305,6 +359,21 @@ "repo": "default", "type": "github" } + }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index acda8e19..87be9384 100644 --- a/flake.nix +++ b/flake.nix @@ -4,17 +4,22 @@ inputs.flake-utils.url = "github:numtide/flake-utils"; inputs.generic_c.url = "github:Maix0/generic_c"; inputs.c_formatter_42.url = "github:Maix0/c_formatter_42-flake"; + inputs.rust-overlay.url = "github:oxalica/rust-overlay"; outputs = { self, nixpkgs, flake-utils, generic_c, - c_formatter_42 + c_formatter_42, + rust-overlay, }: flake-utils.lib.eachDefaultSystem ( system: let - pkgs = nixpkgs.legacyPackages.${system}; + pkgs = import nixpkgs { + inherit system; + overlays = [(import rust-overlay)]; + }; in { devShell = pkgs.mkShell { packages = with pkgs; [ @@ -28,6 +33,7 @@ c_formatter_42.packages.${system}.default llvmPackages.bintools norminette + rust-bin.stable.latest.default ]; VALGRIND_INC_OPT = "${pkgs.valgrind.dev}/include"; ASAN_OPTIONS = "strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1"; diff --git a/parser/Filelist.mk b/parser/Filelist.mk index 56b2018c..62797e47 100644 --- a/parser/Filelist.mk +++ b/parser/Filelist.mk @@ -1,4379 +1,4378 @@ SRC_FILES = \ -src/create_language \ -static/alias_sequences/alias_sequences_0 \ -static/create/create_alias_sequences \ -static/create/create_external_scanner_states \ -static/create/create_external_scanner_symbol_map \ -static/create/create_field_map_entries \ -static/create/create_field_map_slices \ -static/create/create_field_names \ -static/create/create_lex_keywords \ -static/create/create_lex_modes \ -static/create/create_lex_normal \ -static/create/create_non_terminal_alias_map \ -static/create/create_parse_actions_entries \ -static/create/create_parse_table \ -static/create/create_primary_state_ids \ -static/create/create_small_parse_table \ -static/create/create_small_parse_table_map \ -static/create/create_symbols_metadata \ -static/create/create_symbols_names \ -static/create/create_unique_symbols_map \ -static/external_scanner_states/external_scanner_states_0 \ -static/external_scanner_states/external_scanner_states_1 \ -static/external_scanner_states/external_scanner_states_2 \ -static/external_scanner_states/external_scanner_states_3 \ -static/external_scanner_states/external_scanner_states_4 \ -static/external_scanner_states/external_scanner_states_5 \ -static/external_scanner_states/external_scanner_states_6 \ -static/external_scanner_symbol_map/external_scanner_symbol_map_0 \ -static/field_map_entries/field_map_entries_0 \ -static/field_map_entries/field_map_entries_1 \ -static/field_map_entries/field_map_entries_2 \ -static/field_map_slices/field_map_slices_0 \ -static/field_map_slices/field_map_slices_1 \ -static/field_names/field_names_0 \ -static/lex_funcs/lex_keywords/create_table/lex_keywords_array_0 \ -static/lex_funcs/lex_keywords/main_func \ -static/lex_funcs/lex_keywords/state_0 \ -static/lex_funcs/lex_keywords/state_1 \ -static/lex_funcs/lex_keywords/state_10 \ -static/lex_funcs/lex_keywords/state_11 \ -static/lex_funcs/lex_keywords/state_12 \ -static/lex_funcs/lex_keywords/state_13 \ -static/lex_funcs/lex_keywords/state_14 \ -static/lex_funcs/lex_keywords/state_15 \ -static/lex_funcs/lex_keywords/state_16 \ -static/lex_funcs/lex_keywords/state_17 \ -static/lex_funcs/lex_keywords/state_18 \ -static/lex_funcs/lex_keywords/state_19 \ -static/lex_funcs/lex_keywords/state_2 \ -static/lex_funcs/lex_keywords/state_3 \ -static/lex_funcs/lex_keywords/state_4 \ -static/lex_funcs/lex_keywords/state_5 \ -static/lex_funcs/lex_keywords/state_6 \ -static/lex_funcs/lex_keywords/state_7 \ -static/lex_funcs/lex_keywords/state_8 \ -static/lex_funcs/lex_keywords/state_9 \ -static/lex_funcs/lex_normal/create_table/lex_normal_array_0 \ -static/lex_funcs/lex_normal/create_table/lex_normal_array_1 \ -static/lex_funcs/lex_normal/create_table/lex_normal_array_2 \ -static/lex_funcs/lex_normal/create_table/lex_normal_array_3 \ -static/lex_funcs/lex_normal/create_table/lex_normal_array_4 \ -static/lex_funcs/lex_normal/create_table/lex_normal_array_5 \ -static/lex_funcs/lex_normal/create_table/lex_normal_array_6 \ -static/lex_funcs/lex_normal/create_table/lex_normal_array_7 \ -static/lex_funcs/lex_normal/create_table/lex_normal_array_8 \ -static/lex_funcs/lex_normal/create_table/lex_normal_array_9 \ -static/lex_funcs/lex_normal/main_func \ -static/lex_funcs/lex_normal/state_0 \ -static/lex_funcs/lex_normal/state_1 \ -static/lex_funcs/lex_normal/state_10 \ -static/lex_funcs/lex_normal/state_100 \ -static/lex_funcs/lex_normal/state_101 \ -static/lex_funcs/lex_normal/state_102 \ -static/lex_funcs/lex_normal/state_103 \ -static/lex_funcs/lex_normal/state_104 \ -static/lex_funcs/lex_normal/state_105 \ -static/lex_funcs/lex_normal/state_106 \ -static/lex_funcs/lex_normal/state_107 \ -static/lex_funcs/lex_normal/state_108 \ -static/lex_funcs/lex_normal/state_109 \ -static/lex_funcs/lex_normal/state_11 \ -static/lex_funcs/lex_normal/state_110 \ -static/lex_funcs/lex_normal/state_111 \ -static/lex_funcs/lex_normal/state_112 \ -static/lex_funcs/lex_normal/state_113 \ -static/lex_funcs/lex_normal/state_114 \ -static/lex_funcs/lex_normal/state_115 \ -static/lex_funcs/lex_normal/state_116 \ -static/lex_funcs/lex_normal/state_117 \ -static/lex_funcs/lex_normal/state_118 \ -static/lex_funcs/lex_normal/state_119 \ -static/lex_funcs/lex_normal/state_12 \ -static/lex_funcs/lex_normal/state_120 \ -static/lex_funcs/lex_normal/state_121 \ -static/lex_funcs/lex_normal/state_122 \ -static/lex_funcs/lex_normal/state_123 \ -static/lex_funcs/lex_normal/state_124 \ -static/lex_funcs/lex_normal/state_125 \ -static/lex_funcs/lex_normal/state_126 \ -static/lex_funcs/lex_normal/state_127 \ -static/lex_funcs/lex_normal/state_128 \ -static/lex_funcs/lex_normal/state_129 \ -static/lex_funcs/lex_normal/state_13 \ -static/lex_funcs/lex_normal/state_130 \ -static/lex_funcs/lex_normal/state_131 \ -static/lex_funcs/lex_normal/state_132 \ -static/lex_funcs/lex_normal/state_133 \ -static/lex_funcs/lex_normal/state_134 \ -static/lex_funcs/lex_normal/state_135 \ -static/lex_funcs/lex_normal/state_136 \ -static/lex_funcs/lex_normal/state_137 \ -static/lex_funcs/lex_normal/state_138 \ -static/lex_funcs/lex_normal/state_139 \ -static/lex_funcs/lex_normal/state_14 \ -static/lex_funcs/lex_normal/state_140 \ -static/lex_funcs/lex_normal/state_141 \ -static/lex_funcs/lex_normal/state_142 \ -static/lex_funcs/lex_normal/state_143 \ -static/lex_funcs/lex_normal/state_144 \ -static/lex_funcs/lex_normal/state_145 \ -static/lex_funcs/lex_normal/state_146 \ -static/lex_funcs/lex_normal/state_147 \ -static/lex_funcs/lex_normal/state_148 \ -static/lex_funcs/lex_normal/state_149 \ -static/lex_funcs/lex_normal/state_15 \ -static/lex_funcs/lex_normal/state_150 \ -static/lex_funcs/lex_normal/state_151 \ -static/lex_funcs/lex_normal/state_152 \ -static/lex_funcs/lex_normal/state_153 \ -static/lex_funcs/lex_normal/state_154 \ -static/lex_funcs/lex_normal/state_155 \ -static/lex_funcs/lex_normal/state_156 \ -static/lex_funcs/lex_normal/state_157 \ -static/lex_funcs/lex_normal/state_158 \ -static/lex_funcs/lex_normal/state_159 \ -static/lex_funcs/lex_normal/state_16 \ -static/lex_funcs/lex_normal/state_160 \ -static/lex_funcs/lex_normal/state_161 \ -static/lex_funcs/lex_normal/state_162 \ -static/lex_funcs/lex_normal/state_163 \ -static/lex_funcs/lex_normal/state_164 \ -static/lex_funcs/lex_normal/state_165 \ -static/lex_funcs/lex_normal/state_166 \ -static/lex_funcs/lex_normal/state_167 \ -static/lex_funcs/lex_normal/state_168 \ -static/lex_funcs/lex_normal/state_169 \ -static/lex_funcs/lex_normal/state_17 \ -static/lex_funcs/lex_normal/state_170 \ -static/lex_funcs/lex_normal/state_171 \ -static/lex_funcs/lex_normal/state_172 \ -static/lex_funcs/lex_normal/state_173 \ -static/lex_funcs/lex_normal/state_174 \ -static/lex_funcs/lex_normal/state_175 \ -static/lex_funcs/lex_normal/state_176 \ -static/lex_funcs/lex_normal/state_177 \ -static/lex_funcs/lex_normal/state_178 \ -static/lex_funcs/lex_normal/state_179 \ -static/lex_funcs/lex_normal/state_18 \ -static/lex_funcs/lex_normal/state_180 \ -static/lex_funcs/lex_normal/state_181 \ -static/lex_funcs/lex_normal/state_182 \ -static/lex_funcs/lex_normal/state_183 \ -static/lex_funcs/lex_normal/state_184 \ -static/lex_funcs/lex_normal/state_185 \ -static/lex_funcs/lex_normal/state_186 \ -static/lex_funcs/lex_normal/state_187 \ -static/lex_funcs/lex_normal/state_188 \ -static/lex_funcs/lex_normal/state_189 \ -static/lex_funcs/lex_normal/state_19 \ -static/lex_funcs/lex_normal/state_190 \ -static/lex_funcs/lex_normal/state_191 \ -static/lex_funcs/lex_normal/state_2 \ -static/lex_funcs/lex_normal/state_20 \ -static/lex_funcs/lex_normal/state_21 \ -static/lex_funcs/lex_normal/state_22 \ -static/lex_funcs/lex_normal/state_23 \ -static/lex_funcs/lex_normal/state_24 \ -static/lex_funcs/lex_normal/state_25 \ -static/lex_funcs/lex_normal/state_26 \ -static/lex_funcs/lex_normal/state_27 \ -static/lex_funcs/lex_normal/state_28 \ -static/lex_funcs/lex_normal/state_29 \ -static/lex_funcs/lex_normal/state_3 \ -static/lex_funcs/lex_normal/state_30 \ -static/lex_funcs/lex_normal/state_31 \ -static/lex_funcs/lex_normal/state_32 \ -static/lex_funcs/lex_normal/state_33 \ -static/lex_funcs/lex_normal/state_34 \ -static/lex_funcs/lex_normal/state_35 \ -static/lex_funcs/lex_normal/state_36 \ -static/lex_funcs/lex_normal/state_37 \ -static/lex_funcs/lex_normal/state_38 \ -static/lex_funcs/lex_normal/state_39 \ -static/lex_funcs/lex_normal/state_4 \ -static/lex_funcs/lex_normal/state_40 \ -static/lex_funcs/lex_normal/state_41 \ -static/lex_funcs/lex_normal/state_42 \ -static/lex_funcs/lex_normal/state_43 \ -static/lex_funcs/lex_normal/state_44 \ -static/lex_funcs/lex_normal/state_45 \ -static/lex_funcs/lex_normal/state_46 \ -static/lex_funcs/lex_normal/state_47 \ -static/lex_funcs/lex_normal/state_48 \ -static/lex_funcs/lex_normal/state_49 \ -static/lex_funcs/lex_normal/state_5 \ -static/lex_funcs/lex_normal/state_50 \ -static/lex_funcs/lex_normal/state_51 \ -static/lex_funcs/lex_normal/state_52 \ -static/lex_funcs/lex_normal/state_53 \ -static/lex_funcs/lex_normal/state_54 \ -static/lex_funcs/lex_normal/state_55 \ -static/lex_funcs/lex_normal/state_56 \ -static/lex_funcs/lex_normal/state_57 \ -static/lex_funcs/lex_normal/state_58 \ -static/lex_funcs/lex_normal/state_59 \ -static/lex_funcs/lex_normal/state_6 \ -static/lex_funcs/lex_normal/state_60 \ -static/lex_funcs/lex_normal/state_61 \ -static/lex_funcs/lex_normal/state_62 \ -static/lex_funcs/lex_normal/state_63 \ -static/lex_funcs/lex_normal/state_64 \ -static/lex_funcs/lex_normal/state_65 \ -static/lex_funcs/lex_normal/state_66 \ -static/lex_funcs/lex_normal/state_67 \ -static/lex_funcs/lex_normal/state_68 \ -static/lex_funcs/lex_normal/state_69 \ -static/lex_funcs/lex_normal/state_7 \ -static/lex_funcs/lex_normal/state_70 \ -static/lex_funcs/lex_normal/state_71 \ -static/lex_funcs/lex_normal/state_72 \ -static/lex_funcs/lex_normal/state_73 \ -static/lex_funcs/lex_normal/state_74 \ -static/lex_funcs/lex_normal/state_75 \ -static/lex_funcs/lex_normal/state_76 \ -static/lex_funcs/lex_normal/state_77 \ -static/lex_funcs/lex_normal/state_78 \ -static/lex_funcs/lex_normal/state_79 \ -static/lex_funcs/lex_normal/state_8 \ -static/lex_funcs/lex_normal/state_80 \ -static/lex_funcs/lex_normal/state_81 \ -static/lex_funcs/lex_normal/state_82 \ -static/lex_funcs/lex_normal/state_83 \ -static/lex_funcs/lex_normal/state_84 \ -static/lex_funcs/lex_normal/state_85 \ -static/lex_funcs/lex_normal/state_86 \ -static/lex_funcs/lex_normal/state_87 \ -static/lex_funcs/lex_normal/state_88 \ -static/lex_funcs/lex_normal/state_89 \ -static/lex_funcs/lex_normal/state_9 \ -static/lex_funcs/lex_normal/state_90 \ -static/lex_funcs/lex_normal/state_91 \ -static/lex_funcs/lex_normal/state_92 \ -static/lex_funcs/lex_normal/state_93 \ -static/lex_funcs/lex_normal/state_94 \ -static/lex_funcs/lex_normal/state_95 \ -static/lex_funcs/lex_normal/state_96 \ -static/lex_funcs/lex_normal/state_97 \ -static/lex_funcs/lex_normal/state_98 \ -static/lex_funcs/lex_normal/state_99 \ -static/lex_modes/lex_modes_0 \ -static/lex_modes/lex_modes_1 \ -static/lex_modes/lex_modes_10 \ -static/lex_modes/lex_modes_11 \ -static/lex_modes/lex_modes_12 \ -static/lex_modes/lex_modes_13 \ -static/lex_modes/lex_modes_14 \ -static/lex_modes/lex_modes_15 \ -static/lex_modes/lex_modes_16 \ -static/lex_modes/lex_modes_17 \ -static/lex_modes/lex_modes_18 \ -static/lex_modes/lex_modes_19 \ -static/lex_modes/lex_modes_2 \ -static/lex_modes/lex_modes_20 \ -static/lex_modes/lex_modes_21 \ -static/lex_modes/lex_modes_22 \ -static/lex_modes/lex_modes_23 \ -static/lex_modes/lex_modes_24 \ -static/lex_modes/lex_modes_25 \ -static/lex_modes/lex_modes_26 \ -static/lex_modes/lex_modes_27 \ -static/lex_modes/lex_modes_28 \ -static/lex_modes/lex_modes_29 \ -static/lex_modes/lex_modes_3 \ -static/lex_modes/lex_modes_30 \ -static/lex_modes/lex_modes_31 \ -static/lex_modes/lex_modes_32 \ -static/lex_modes/lex_modes_33 \ -static/lex_modes/lex_modes_34 \ -static/lex_modes/lex_modes_35 \ -static/lex_modes/lex_modes_36 \ -static/lex_modes/lex_modes_37 \ -static/lex_modes/lex_modes_38 \ -static/lex_modes/lex_modes_39 \ -static/lex_modes/lex_modes_4 \ -static/lex_modes/lex_modes_40 \ -static/lex_modes/lex_modes_41 \ -static/lex_modes/lex_modes_42 \ -static/lex_modes/lex_modes_43 \ -static/lex_modes/lex_modes_44 \ -static/lex_modes/lex_modes_45 \ -static/lex_modes/lex_modes_46 \ -static/lex_modes/lex_modes_47 \ -static/lex_modes/lex_modes_48 \ -static/lex_modes/lex_modes_49 \ -static/lex_modes/lex_modes_5 \ -static/lex_modes/lex_modes_50 \ -static/lex_modes/lex_modes_51 \ -static/lex_modes/lex_modes_52 \ -static/lex_modes/lex_modes_53 \ -static/lex_modes/lex_modes_54 \ -static/lex_modes/lex_modes_55 \ -static/lex_modes/lex_modes_56 \ -static/lex_modes/lex_modes_57 \ -static/lex_modes/lex_modes_58 \ -static/lex_modes/lex_modes_59 \ -static/lex_modes/lex_modes_6 \ -static/lex_modes/lex_modes_60 \ -static/lex_modes/lex_modes_61 \ -static/lex_modes/lex_modes_62 \ -static/lex_modes/lex_modes_63 \ -static/lex_modes/lex_modes_64 \ -static/lex_modes/lex_modes_65 \ -static/lex_modes/lex_modes_66 \ -static/lex_modes/lex_modes_67 \ -static/lex_modes/lex_modes_68 \ -static/lex_modes/lex_modes_69 \ -static/lex_modes/lex_modes_7 \ -static/lex_modes/lex_modes_70 \ -static/lex_modes/lex_modes_71 \ -static/lex_modes/lex_modes_72 \ -static/lex_modes/lex_modes_73 \ -static/lex_modes/lex_modes_74 \ -static/lex_modes/lex_modes_75 \ -static/lex_modes/lex_modes_76 \ -static/lex_modes/lex_modes_8 \ -static/lex_modes/lex_modes_9 \ -static/non_terminal_alias_map/non_terminal_alias_map_0 \ -static/parse_actions_entries/parse_actions_entries_0 \ -static/parse_actions_entries/parse_actions_entries_1 \ -static/parse_actions_entries/parse_actions_entries_10 \ -static/parse_actions_entries/parse_actions_entries_100 \ -static/parse_actions_entries/parse_actions_entries_101 \ -static/parse_actions_entries/parse_actions_entries_102 \ -static/parse_actions_entries/parse_actions_entries_103 \ -static/parse_actions_entries/parse_actions_entries_104 \ -static/parse_actions_entries/parse_actions_entries_105 \ -static/parse_actions_entries/parse_actions_entries_106 \ -static/parse_actions_entries/parse_actions_entries_107 \ -static/parse_actions_entries/parse_actions_entries_108 \ -static/parse_actions_entries/parse_actions_entries_109 \ -static/parse_actions_entries/parse_actions_entries_11 \ -static/parse_actions_entries/parse_actions_entries_110 \ -static/parse_actions_entries/parse_actions_entries_111 \ -static/parse_actions_entries/parse_actions_entries_112 \ -static/parse_actions_entries/parse_actions_entries_113 \ -static/parse_actions_entries/parse_actions_entries_114 \ -static/parse_actions_entries/parse_actions_entries_115 \ -static/parse_actions_entries/parse_actions_entries_116 \ -static/parse_actions_entries/parse_actions_entries_117 \ -static/parse_actions_entries/parse_actions_entries_118 \ -static/parse_actions_entries/parse_actions_entries_119 \ -static/parse_actions_entries/parse_actions_entries_12 \ -static/parse_actions_entries/parse_actions_entries_120 \ -static/parse_actions_entries/parse_actions_entries_121 \ -static/parse_actions_entries/parse_actions_entries_122 \ -static/parse_actions_entries/parse_actions_entries_123 \ -static/parse_actions_entries/parse_actions_entries_124 \ -static/parse_actions_entries/parse_actions_entries_125 \ -static/parse_actions_entries/parse_actions_entries_126 \ -static/parse_actions_entries/parse_actions_entries_127 \ -static/parse_actions_entries/parse_actions_entries_128 \ -static/parse_actions_entries/parse_actions_entries_129 \ -static/parse_actions_entries/parse_actions_entries_13 \ -static/parse_actions_entries/parse_actions_entries_130 \ -static/parse_actions_entries/parse_actions_entries_131 \ -static/parse_actions_entries/parse_actions_entries_132 \ -static/parse_actions_entries/parse_actions_entries_133 \ -static/parse_actions_entries/parse_actions_entries_134 \ -static/parse_actions_entries/parse_actions_entries_135 \ -static/parse_actions_entries/parse_actions_entries_136 \ -static/parse_actions_entries/parse_actions_entries_137 \ -static/parse_actions_entries/parse_actions_entries_138 \ -static/parse_actions_entries/parse_actions_entries_139 \ -static/parse_actions_entries/parse_actions_entries_14 \ -static/parse_actions_entries/parse_actions_entries_140 \ -static/parse_actions_entries/parse_actions_entries_141 \ -static/parse_actions_entries/parse_actions_entries_142 \ -static/parse_actions_entries/parse_actions_entries_143 \ -static/parse_actions_entries/parse_actions_entries_144 \ -static/parse_actions_entries/parse_actions_entries_145 \ -static/parse_actions_entries/parse_actions_entries_146 \ -static/parse_actions_entries/parse_actions_entries_147 \ -static/parse_actions_entries/parse_actions_entries_148 \ -static/parse_actions_entries/parse_actions_entries_149 \ -static/parse_actions_entries/parse_actions_entries_15 \ -static/parse_actions_entries/parse_actions_entries_150 \ -static/parse_actions_entries/parse_actions_entries_151 \ -static/parse_actions_entries/parse_actions_entries_152 \ -static/parse_actions_entries/parse_actions_entries_153 \ -static/parse_actions_entries/parse_actions_entries_154 \ -static/parse_actions_entries/parse_actions_entries_155 \ -static/parse_actions_entries/parse_actions_entries_156 \ -static/parse_actions_entries/parse_actions_entries_157 \ -static/parse_actions_entries/parse_actions_entries_158 \ -static/parse_actions_entries/parse_actions_entries_159 \ -static/parse_actions_entries/parse_actions_entries_16 \ -static/parse_actions_entries/parse_actions_entries_160 \ -static/parse_actions_entries/parse_actions_entries_161 \ -static/parse_actions_entries/parse_actions_entries_162 \ -static/parse_actions_entries/parse_actions_entries_163 \ -static/parse_actions_entries/parse_actions_entries_164 \ -static/parse_actions_entries/parse_actions_entries_165 \ -static/parse_actions_entries/parse_actions_entries_166 \ -static/parse_actions_entries/parse_actions_entries_167 \ -static/parse_actions_entries/parse_actions_entries_17 \ -static/parse_actions_entries/parse_actions_entries_18 \ -static/parse_actions_entries/parse_actions_entries_19 \ -static/parse_actions_entries/parse_actions_entries_2 \ -static/parse_actions_entries/parse_actions_entries_20 \ -static/parse_actions_entries/parse_actions_entries_21 \ -static/parse_actions_entries/parse_actions_entries_22 \ -static/parse_actions_entries/parse_actions_entries_23 \ -static/parse_actions_entries/parse_actions_entries_24 \ -static/parse_actions_entries/parse_actions_entries_25 \ -static/parse_actions_entries/parse_actions_entries_26 \ -static/parse_actions_entries/parse_actions_entries_27 \ -static/parse_actions_entries/parse_actions_entries_28 \ -static/parse_actions_entries/parse_actions_entries_29 \ -static/parse_actions_entries/parse_actions_entries_3 \ -static/parse_actions_entries/parse_actions_entries_30 \ -static/parse_actions_entries/parse_actions_entries_31 \ -static/parse_actions_entries/parse_actions_entries_32 \ -static/parse_actions_entries/parse_actions_entries_33 \ -static/parse_actions_entries/parse_actions_entries_34 \ -static/parse_actions_entries/parse_actions_entries_35 \ -static/parse_actions_entries/parse_actions_entries_36 \ -static/parse_actions_entries/parse_actions_entries_37 \ -static/parse_actions_entries/parse_actions_entries_38 \ -static/parse_actions_entries/parse_actions_entries_39 \ -static/parse_actions_entries/parse_actions_entries_4 \ -static/parse_actions_entries/parse_actions_entries_40 \ -static/parse_actions_entries/parse_actions_entries_41 \ -static/parse_actions_entries/parse_actions_entries_42 \ -static/parse_actions_entries/parse_actions_entries_43 \ -static/parse_actions_entries/parse_actions_entries_44 \ -static/parse_actions_entries/parse_actions_entries_45 \ -static/parse_actions_entries/parse_actions_entries_46 \ -static/parse_actions_entries/parse_actions_entries_47 \ -static/parse_actions_entries/parse_actions_entries_48 \ -static/parse_actions_entries/parse_actions_entries_49 \ -static/parse_actions_entries/parse_actions_entries_5 \ -static/parse_actions_entries/parse_actions_entries_50 \ -static/parse_actions_entries/parse_actions_entries_51 \ -static/parse_actions_entries/parse_actions_entries_52 \ -static/parse_actions_entries/parse_actions_entries_53 \ -static/parse_actions_entries/parse_actions_entries_54 \ -static/parse_actions_entries/parse_actions_entries_55 \ -static/parse_actions_entries/parse_actions_entries_56 \ -static/parse_actions_entries/parse_actions_entries_57 \ -static/parse_actions_entries/parse_actions_entries_58 \ -static/parse_actions_entries/parse_actions_entries_59 \ -static/parse_actions_entries/parse_actions_entries_6 \ -static/parse_actions_entries/parse_actions_entries_60 \ -static/parse_actions_entries/parse_actions_entries_61 \ -static/parse_actions_entries/parse_actions_entries_62 \ -static/parse_actions_entries/parse_actions_entries_63 \ -static/parse_actions_entries/parse_actions_entries_64 \ -static/parse_actions_entries/parse_actions_entries_65 \ -static/parse_actions_entries/parse_actions_entries_66 \ -static/parse_actions_entries/parse_actions_entries_67 \ -static/parse_actions_entries/parse_actions_entries_68 \ -static/parse_actions_entries/parse_actions_entries_69 \ -static/parse_actions_entries/parse_actions_entries_7 \ -static/parse_actions_entries/parse_actions_entries_70 \ -static/parse_actions_entries/parse_actions_entries_71 \ -static/parse_actions_entries/parse_actions_entries_72 \ -static/parse_actions_entries/parse_actions_entries_73 \ -static/parse_actions_entries/parse_actions_entries_74 \ -static/parse_actions_entries/parse_actions_entries_75 \ -static/parse_actions_entries/parse_actions_entries_76 \ -static/parse_actions_entries/parse_actions_entries_77 \ -static/parse_actions_entries/parse_actions_entries_78 \ -static/parse_actions_entries/parse_actions_entries_79 \ -static/parse_actions_entries/parse_actions_entries_8 \ -static/parse_actions_entries/parse_actions_entries_80 \ -static/parse_actions_entries/parse_actions_entries_81 \ -static/parse_actions_entries/parse_actions_entries_82 \ -static/parse_actions_entries/parse_actions_entries_83 \ -static/parse_actions_entries/parse_actions_entries_84 \ -static/parse_actions_entries/parse_actions_entries_85 \ -static/parse_actions_entries/parse_actions_entries_86 \ -static/parse_actions_entries/parse_actions_entries_87 \ -static/parse_actions_entries/parse_actions_entries_88 \ -static/parse_actions_entries/parse_actions_entries_89 \ -static/parse_actions_entries/parse_actions_entries_9 \ -static/parse_actions_entries/parse_actions_entries_90 \ -static/parse_actions_entries/parse_actions_entries_91 \ -static/parse_actions_entries/parse_actions_entries_92 \ -static/parse_actions_entries/parse_actions_entries_93 \ -static/parse_actions_entries/parse_actions_entries_94 \ -static/parse_actions_entries/parse_actions_entries_95 \ -static/parse_actions_entries/parse_actions_entries_96 \ -static/parse_actions_entries/parse_actions_entries_97 \ -static/parse_actions_entries/parse_actions_entries_98 \ -static/parse_actions_entries/parse_actions_entries_99 \ -static/parse_table/parse_table_0 \ -static/parse_table/parse_table_1 \ -static/parse_table/parse_table_10 \ -static/parse_table/parse_table_100 \ -static/parse_table/parse_table_101 \ -static/parse_table/parse_table_102 \ -static/parse_table/parse_table_103 \ -static/parse_table/parse_table_104 \ -static/parse_table/parse_table_105 \ -static/parse_table/parse_table_106 \ -static/parse_table/parse_table_107 \ -static/parse_table/parse_table_108 \ -static/parse_table/parse_table_109 \ -static/parse_table/parse_table_11 \ -static/parse_table/parse_table_110 \ -static/parse_table/parse_table_111 \ -static/parse_table/parse_table_112 \ -static/parse_table/parse_table_113 \ -static/parse_table/parse_table_114 \ -static/parse_table/parse_table_115 \ -static/parse_table/parse_table_116 \ -static/parse_table/parse_table_117 \ -static/parse_table/parse_table_118 \ -static/parse_table/parse_table_119 \ -static/parse_table/parse_table_12 \ -static/parse_table/parse_table_120 \ -static/parse_table/parse_table_121 \ -static/parse_table/parse_table_122 \ -static/parse_table/parse_table_123 \ -static/parse_table/parse_table_124 \ -static/parse_table/parse_table_125 \ -static/parse_table/parse_table_126 \ -static/parse_table/parse_table_127 \ -static/parse_table/parse_table_128 \ -static/parse_table/parse_table_129 \ -static/parse_table/parse_table_13 \ -static/parse_table/parse_table_130 \ -static/parse_table/parse_table_131 \ -static/parse_table/parse_table_132 \ -static/parse_table/parse_table_133 \ -static/parse_table/parse_table_134 \ -static/parse_table/parse_table_135 \ -static/parse_table/parse_table_136 \ -static/parse_table/parse_table_137 \ -static/parse_table/parse_table_138 \ -static/parse_table/parse_table_139 \ -static/parse_table/parse_table_14 \ -static/parse_table/parse_table_140 \ -static/parse_table/parse_table_141 \ -static/parse_table/parse_table_142 \ -static/parse_table/parse_table_143 \ -static/parse_table/parse_table_144 \ -static/parse_table/parse_table_145 \ -static/parse_table/parse_table_146 \ -static/parse_table/parse_table_147 \ -static/parse_table/parse_table_148 \ -static/parse_table/parse_table_149 \ -static/parse_table/parse_table_15 \ -static/parse_table/parse_table_150 \ -static/parse_table/parse_table_151 \ -static/parse_table/parse_table_152 \ -static/parse_table/parse_table_153 \ -static/parse_table/parse_table_154 \ -static/parse_table/parse_table_155 \ -static/parse_table/parse_table_156 \ -static/parse_table/parse_table_157 \ -static/parse_table/parse_table_158 \ -static/parse_table/parse_table_159 \ -static/parse_table/parse_table_16 \ -static/parse_table/parse_table_160 \ -static/parse_table/parse_table_161 \ -static/parse_table/parse_table_162 \ -static/parse_table/parse_table_163 \ -static/parse_table/parse_table_164 \ -static/parse_table/parse_table_165 \ -static/parse_table/parse_table_166 \ -static/parse_table/parse_table_167 \ -static/parse_table/parse_table_168 \ -static/parse_table/parse_table_169 \ -static/parse_table/parse_table_17 \ -static/parse_table/parse_table_170 \ -static/parse_table/parse_table_171 \ -static/parse_table/parse_table_172 \ -static/parse_table/parse_table_173 \ -static/parse_table/parse_table_174 \ -static/parse_table/parse_table_175 \ -static/parse_table/parse_table_176 \ -static/parse_table/parse_table_177 \ -static/parse_table/parse_table_178 \ -static/parse_table/parse_table_179 \ -static/parse_table/parse_table_18 \ -static/parse_table/parse_table_180 \ -static/parse_table/parse_table_181 \ -static/parse_table/parse_table_182 \ -static/parse_table/parse_table_183 \ -static/parse_table/parse_table_184 \ -static/parse_table/parse_table_185 \ -static/parse_table/parse_table_186 \ -static/parse_table/parse_table_187 \ -static/parse_table/parse_table_188 \ -static/parse_table/parse_table_189 \ -static/parse_table/parse_table_19 \ -static/parse_table/parse_table_190 \ -static/parse_table/parse_table_191 \ -static/parse_table/parse_table_192 \ -static/parse_table/parse_table_193 \ -static/parse_table/parse_table_194 \ -static/parse_table/parse_table_195 \ -static/parse_table/parse_table_196 \ -static/parse_table/parse_table_197 \ -static/parse_table/parse_table_198 \ -static/parse_table/parse_table_199 \ -static/parse_table/parse_table_2 \ -static/parse_table/parse_table_20 \ -static/parse_table/parse_table_200 \ -static/parse_table/parse_table_201 \ -static/parse_table/parse_table_202 \ -static/parse_table/parse_table_203 \ -static/parse_table/parse_table_204 \ -static/parse_table/parse_table_205 \ -static/parse_table/parse_table_206 \ -static/parse_table/parse_table_207 \ -static/parse_table/parse_table_208 \ -static/parse_table/parse_table_209 \ -static/parse_table/parse_table_21 \ -static/parse_table/parse_table_210 \ -static/parse_table/parse_table_211 \ -static/parse_table/parse_table_212 \ -static/parse_table/parse_table_213 \ -static/parse_table/parse_table_214 \ -static/parse_table/parse_table_215 \ -static/parse_table/parse_table_216 \ -static/parse_table/parse_table_217 \ -static/parse_table/parse_table_218 \ -static/parse_table/parse_table_219 \ -static/parse_table/parse_table_22 \ -static/parse_table/parse_table_220 \ -static/parse_table/parse_table_221 \ -static/parse_table/parse_table_222 \ -static/parse_table/parse_table_223 \ -static/parse_table/parse_table_224 \ -static/parse_table/parse_table_225 \ -static/parse_table/parse_table_226 \ -static/parse_table/parse_table_227 \ -static/parse_table/parse_table_228 \ -static/parse_table/parse_table_229 \ -static/parse_table/parse_table_23 \ -static/parse_table/parse_table_230 \ -static/parse_table/parse_table_231 \ -static/parse_table/parse_table_232 \ -static/parse_table/parse_table_233 \ -static/parse_table/parse_table_234 \ -static/parse_table/parse_table_235 \ -static/parse_table/parse_table_236 \ -static/parse_table/parse_table_237 \ -static/parse_table/parse_table_238 \ -static/parse_table/parse_table_239 \ -static/parse_table/parse_table_24 \ -static/parse_table/parse_table_240 \ -static/parse_table/parse_table_241 \ -static/parse_table/parse_table_242 \ -static/parse_table/parse_table_243 \ -static/parse_table/parse_table_244 \ -static/parse_table/parse_table_245 \ -static/parse_table/parse_table_246 \ -static/parse_table/parse_table_247 \ -static/parse_table/parse_table_248 \ -static/parse_table/parse_table_249 \ -static/parse_table/parse_table_25 \ -static/parse_table/parse_table_250 \ -static/parse_table/parse_table_251 \ -static/parse_table/parse_table_252 \ -static/parse_table/parse_table_253 \ -static/parse_table/parse_table_254 \ -static/parse_table/parse_table_255 \ -static/parse_table/parse_table_256 \ -static/parse_table/parse_table_257 \ -static/parse_table/parse_table_258 \ -static/parse_table/parse_table_259 \ -static/parse_table/parse_table_26 \ -static/parse_table/parse_table_260 \ -static/parse_table/parse_table_261 \ -static/parse_table/parse_table_262 \ -static/parse_table/parse_table_263 \ -static/parse_table/parse_table_264 \ -static/parse_table/parse_table_265 \ -static/parse_table/parse_table_266 \ -static/parse_table/parse_table_267 \ -static/parse_table/parse_table_268 \ -static/parse_table/parse_table_269 \ -static/parse_table/parse_table_27 \ -static/parse_table/parse_table_270 \ -static/parse_table/parse_table_271 \ -static/parse_table/parse_table_272 \ -static/parse_table/parse_table_273 \ -static/parse_table/parse_table_274 \ -static/parse_table/parse_table_275 \ -static/parse_table/parse_table_276 \ -static/parse_table/parse_table_277 \ -static/parse_table/parse_table_278 \ -static/parse_table/parse_table_279 \ -static/parse_table/parse_table_28 \ -static/parse_table/parse_table_280 \ -static/parse_table/parse_table_281 \ -static/parse_table/parse_table_282 \ -static/parse_table/parse_table_283 \ -static/parse_table/parse_table_284 \ -static/parse_table/parse_table_285 \ -static/parse_table/parse_table_286 \ -static/parse_table/parse_table_287 \ -static/parse_table/parse_table_288 \ -static/parse_table/parse_table_289 \ -static/parse_table/parse_table_29 \ -static/parse_table/parse_table_290 \ -static/parse_table/parse_table_291 \ -static/parse_table/parse_table_292 \ -static/parse_table/parse_table_293 \ -static/parse_table/parse_table_294 \ -static/parse_table/parse_table_295 \ -static/parse_table/parse_table_296 \ -static/parse_table/parse_table_297 \ -static/parse_table/parse_table_298 \ -static/parse_table/parse_table_299 \ -static/parse_table/parse_table_3 \ -static/parse_table/parse_table_30 \ -static/parse_table/parse_table_300 \ -static/parse_table/parse_table_301 \ -static/parse_table/parse_table_302 \ -static/parse_table/parse_table_303 \ -static/parse_table/parse_table_304 \ -static/parse_table/parse_table_305 \ -static/parse_table/parse_table_306 \ -static/parse_table/parse_table_307 \ -static/parse_table/parse_table_308 \ -static/parse_table/parse_table_309 \ -static/parse_table/parse_table_31 \ -static/parse_table/parse_table_310 \ -static/parse_table/parse_table_311 \ -static/parse_table/parse_table_312 \ -static/parse_table/parse_table_313 \ -static/parse_table/parse_table_314 \ -static/parse_table/parse_table_315 \ -static/parse_table/parse_table_316 \ -static/parse_table/parse_table_317 \ -static/parse_table/parse_table_318 \ -static/parse_table/parse_table_319 \ -static/parse_table/parse_table_32 \ -static/parse_table/parse_table_320 \ -static/parse_table/parse_table_321 \ -static/parse_table/parse_table_322 \ -static/parse_table/parse_table_323 \ -static/parse_table/parse_table_324 \ -static/parse_table/parse_table_325 \ -static/parse_table/parse_table_326 \ -static/parse_table/parse_table_327 \ -static/parse_table/parse_table_328 \ -static/parse_table/parse_table_329 \ -static/parse_table/parse_table_33 \ -static/parse_table/parse_table_330 \ -static/parse_table/parse_table_331 \ -static/parse_table/parse_table_332 \ -static/parse_table/parse_table_333 \ -static/parse_table/parse_table_334 \ -static/parse_table/parse_table_335 \ -static/parse_table/parse_table_336 \ -static/parse_table/parse_table_337 \ -static/parse_table/parse_table_338 \ -static/parse_table/parse_table_339 \ -static/parse_table/parse_table_34 \ -static/parse_table/parse_table_340 \ -static/parse_table/parse_table_341 \ -static/parse_table/parse_table_342 \ -static/parse_table/parse_table_343 \ -static/parse_table/parse_table_344 \ -static/parse_table/parse_table_345 \ -static/parse_table/parse_table_346 \ -static/parse_table/parse_table_347 \ -static/parse_table/parse_table_348 \ -static/parse_table/parse_table_349 \ -static/parse_table/parse_table_35 \ -static/parse_table/parse_table_350 \ -static/parse_table/parse_table_351 \ -static/parse_table/parse_table_352 \ -static/parse_table/parse_table_353 \ -static/parse_table/parse_table_354 \ -static/parse_table/parse_table_355 \ -static/parse_table/parse_table_356 \ -static/parse_table/parse_table_357 \ -static/parse_table/parse_table_358 \ -static/parse_table/parse_table_359 \ -static/parse_table/parse_table_36 \ -static/parse_table/parse_table_360 \ -static/parse_table/parse_table_361 \ -static/parse_table/parse_table_362 \ -static/parse_table/parse_table_363 \ -static/parse_table/parse_table_364 \ -static/parse_table/parse_table_365 \ -static/parse_table/parse_table_366 \ -static/parse_table/parse_table_367 \ -static/parse_table/parse_table_368 \ -static/parse_table/parse_table_369 \ -static/parse_table/parse_table_37 \ -static/parse_table/parse_table_370 \ -static/parse_table/parse_table_371 \ -static/parse_table/parse_table_372 \ -static/parse_table/parse_table_373 \ -static/parse_table/parse_table_374 \ -static/parse_table/parse_table_375 \ -static/parse_table/parse_table_376 \ -static/parse_table/parse_table_377 \ -static/parse_table/parse_table_378 \ -static/parse_table/parse_table_379 \ -static/parse_table/parse_table_38 \ -static/parse_table/parse_table_380 \ -static/parse_table/parse_table_381 \ -static/parse_table/parse_table_382 \ -static/parse_table/parse_table_383 \ -static/parse_table/parse_table_384 \ -static/parse_table/parse_table_385 \ -static/parse_table/parse_table_386 \ -static/parse_table/parse_table_387 \ -static/parse_table/parse_table_388 \ -static/parse_table/parse_table_389 \ -static/parse_table/parse_table_39 \ -static/parse_table/parse_table_390 \ -static/parse_table/parse_table_391 \ -static/parse_table/parse_table_392 \ -static/parse_table/parse_table_393 \ -static/parse_table/parse_table_394 \ -static/parse_table/parse_table_395 \ -static/parse_table/parse_table_396 \ -static/parse_table/parse_table_397 \ -static/parse_table/parse_table_398 \ -static/parse_table/parse_table_399 \ -static/parse_table/parse_table_4 \ -static/parse_table/parse_table_40 \ -static/parse_table/parse_table_400 \ -static/parse_table/parse_table_401 \ -static/parse_table/parse_table_402 \ -static/parse_table/parse_table_403 \ -static/parse_table/parse_table_404 \ -static/parse_table/parse_table_405 \ -static/parse_table/parse_table_406 \ -static/parse_table/parse_table_407 \ -static/parse_table/parse_table_408 \ -static/parse_table/parse_table_409 \ -static/parse_table/parse_table_41 \ -static/parse_table/parse_table_410 \ -static/parse_table/parse_table_411 \ -static/parse_table/parse_table_412 \ -static/parse_table/parse_table_413 \ -static/parse_table/parse_table_414 \ -static/parse_table/parse_table_415 \ -static/parse_table/parse_table_416 \ -static/parse_table/parse_table_417 \ -static/parse_table/parse_table_418 \ -static/parse_table/parse_table_419 \ -static/parse_table/parse_table_42 \ -static/parse_table/parse_table_420 \ -static/parse_table/parse_table_421 \ -static/parse_table/parse_table_422 \ -static/parse_table/parse_table_423 \ -static/parse_table/parse_table_424 \ -static/parse_table/parse_table_425 \ -static/parse_table/parse_table_426 \ -static/parse_table/parse_table_427 \ -static/parse_table/parse_table_428 \ -static/parse_table/parse_table_429 \ -static/parse_table/parse_table_43 \ -static/parse_table/parse_table_430 \ -static/parse_table/parse_table_431 \ -static/parse_table/parse_table_432 \ -static/parse_table/parse_table_433 \ -static/parse_table/parse_table_434 \ -static/parse_table/parse_table_435 \ -static/parse_table/parse_table_436 \ -static/parse_table/parse_table_437 \ -static/parse_table/parse_table_438 \ -static/parse_table/parse_table_439 \ -static/parse_table/parse_table_44 \ -static/parse_table/parse_table_440 \ -static/parse_table/parse_table_441 \ -static/parse_table/parse_table_442 \ -static/parse_table/parse_table_443 \ -static/parse_table/parse_table_444 \ -static/parse_table/parse_table_445 \ -static/parse_table/parse_table_446 \ -static/parse_table/parse_table_447 \ -static/parse_table/parse_table_448 \ -static/parse_table/parse_table_449 \ -static/parse_table/parse_table_45 \ -static/parse_table/parse_table_450 \ -static/parse_table/parse_table_451 \ -static/parse_table/parse_table_452 \ -static/parse_table/parse_table_453 \ -static/parse_table/parse_table_454 \ -static/parse_table/parse_table_455 \ -static/parse_table/parse_table_456 \ -static/parse_table/parse_table_457 \ -static/parse_table/parse_table_458 \ -static/parse_table/parse_table_459 \ -static/parse_table/parse_table_46 \ -static/parse_table/parse_table_460 \ -static/parse_table/parse_table_461 \ -static/parse_table/parse_table_462 \ -static/parse_table/parse_table_463 \ -static/parse_table/parse_table_464 \ -static/parse_table/parse_table_465 \ -static/parse_table/parse_table_466 \ -static/parse_table/parse_table_47 \ -static/parse_table/parse_table_48 \ -static/parse_table/parse_table_49 \ -static/parse_table/parse_table_5 \ -static/parse_table/parse_table_50 \ -static/parse_table/parse_table_51 \ -static/parse_table/parse_table_52 \ -static/parse_table/parse_table_53 \ -static/parse_table/parse_table_54 \ -static/parse_table/parse_table_55 \ -static/parse_table/parse_table_56 \ -static/parse_table/parse_table_57 \ -static/parse_table/parse_table_58 \ -static/parse_table/parse_table_59 \ -static/parse_table/parse_table_6 \ -static/parse_table/parse_table_60 \ -static/parse_table/parse_table_61 \ -static/parse_table/parse_table_62 \ -static/parse_table/parse_table_63 \ -static/parse_table/parse_table_64 \ -static/parse_table/parse_table_65 \ -static/parse_table/parse_table_66 \ -static/parse_table/parse_table_67 \ -static/parse_table/parse_table_68 \ -static/parse_table/parse_table_69 \ -static/parse_table/parse_table_7 \ -static/parse_table/parse_table_70 \ -static/parse_table/parse_table_71 \ -static/parse_table/parse_table_72 \ -static/parse_table/parse_table_73 \ -static/parse_table/parse_table_74 \ -static/parse_table/parse_table_75 \ -static/parse_table/parse_table_76 \ -static/parse_table/parse_table_77 \ -static/parse_table/parse_table_78 \ -static/parse_table/parse_table_79 \ -static/parse_table/parse_table_8 \ -static/parse_table/parse_table_80 \ -static/parse_table/parse_table_81 \ -static/parse_table/parse_table_82 \ -static/parse_table/parse_table_83 \ -static/parse_table/parse_table_84 \ -static/parse_table/parse_table_85 \ -static/parse_table/parse_table_86 \ -static/parse_table/parse_table_87 \ -static/parse_table/parse_table_88 \ -static/parse_table/parse_table_89 \ -static/parse_table/parse_table_9 \ -static/parse_table/parse_table_90 \ -static/parse_table/parse_table_91 \ -static/parse_table/parse_table_92 \ -static/parse_table/parse_table_93 \ -static/parse_table/parse_table_94 \ -static/parse_table/parse_table_95 \ -static/parse_table/parse_table_96 \ -static/parse_table/parse_table_97 \ -static/parse_table/parse_table_98 \ -static/parse_table/parse_table_99 \ -static/primary_state_ids/primary_state_ids_0 \ -static/primary_state_ids/primary_state_ids_1 \ -static/primary_state_ids/primary_state_ids_10 \ -static/primary_state_ids/primary_state_ids_11 \ -static/primary_state_ids/primary_state_ids_12 \ -static/primary_state_ids/primary_state_ids_13 \ -static/primary_state_ids/primary_state_ids_14 \ -static/primary_state_ids/primary_state_ids_15 \ -static/primary_state_ids/primary_state_ids_16 \ -static/primary_state_ids/primary_state_ids_17 \ -static/primary_state_ids/primary_state_ids_18 \ -static/primary_state_ids/primary_state_ids_19 \ -static/primary_state_ids/primary_state_ids_2 \ -static/primary_state_ids/primary_state_ids_20 \ -static/primary_state_ids/primary_state_ids_21 \ -static/primary_state_ids/primary_state_ids_22 \ -static/primary_state_ids/primary_state_ids_23 \ -static/primary_state_ids/primary_state_ids_24 \ -static/primary_state_ids/primary_state_ids_25 \ -static/primary_state_ids/primary_state_ids_26 \ -static/primary_state_ids/primary_state_ids_27 \ -static/primary_state_ids/primary_state_ids_28 \ -static/primary_state_ids/primary_state_ids_29 \ -static/primary_state_ids/primary_state_ids_3 \ -static/primary_state_ids/primary_state_ids_30 \ -static/primary_state_ids/primary_state_ids_31 \ -static/primary_state_ids/primary_state_ids_32 \ -static/primary_state_ids/primary_state_ids_33 \ -static/primary_state_ids/primary_state_ids_34 \ -static/primary_state_ids/primary_state_ids_35 \ -static/primary_state_ids/primary_state_ids_36 \ -static/primary_state_ids/primary_state_ids_37 \ -static/primary_state_ids/primary_state_ids_38 \ -static/primary_state_ids/primary_state_ids_39 \ -static/primary_state_ids/primary_state_ids_4 \ -static/primary_state_ids/primary_state_ids_40 \ -static/primary_state_ids/primary_state_ids_41 \ -static/primary_state_ids/primary_state_ids_42 \ -static/primary_state_ids/primary_state_ids_43 \ -static/primary_state_ids/primary_state_ids_44 \ -static/primary_state_ids/primary_state_ids_45 \ -static/primary_state_ids/primary_state_ids_46 \ -static/primary_state_ids/primary_state_ids_47 \ -static/primary_state_ids/primary_state_ids_48 \ -static/primary_state_ids/primary_state_ids_49 \ -static/primary_state_ids/primary_state_ids_5 \ -static/primary_state_ids/primary_state_ids_50 \ -static/primary_state_ids/primary_state_ids_51 \ -static/primary_state_ids/primary_state_ids_52 \ -static/primary_state_ids/primary_state_ids_53 \ -static/primary_state_ids/primary_state_ids_54 \ -static/primary_state_ids/primary_state_ids_55 \ -static/primary_state_ids/primary_state_ids_56 \ -static/primary_state_ids/primary_state_ids_57 \ -static/primary_state_ids/primary_state_ids_58 \ -static/primary_state_ids/primary_state_ids_59 \ -static/primary_state_ids/primary_state_ids_6 \ -static/primary_state_ids/primary_state_ids_60 \ -static/primary_state_ids/primary_state_ids_61 \ -static/primary_state_ids/primary_state_ids_62 \ -static/primary_state_ids/primary_state_ids_63 \ -static/primary_state_ids/primary_state_ids_64 \ -static/primary_state_ids/primary_state_ids_65 \ -static/primary_state_ids/primary_state_ids_66 \ -static/primary_state_ids/primary_state_ids_67 \ -static/primary_state_ids/primary_state_ids_68 \ -static/primary_state_ids/primary_state_ids_69 \ -static/primary_state_ids/primary_state_ids_7 \ -static/primary_state_ids/primary_state_ids_70 \ -static/primary_state_ids/primary_state_ids_71 \ -static/primary_state_ids/primary_state_ids_72 \ -static/primary_state_ids/primary_state_ids_73 \ -static/primary_state_ids/primary_state_ids_74 \ -static/primary_state_ids/primary_state_ids_75 \ -static/primary_state_ids/primary_state_ids_76 \ -static/primary_state_ids/primary_state_ids_8 \ -static/primary_state_ids/primary_state_ids_9 \ -static/small_parse_table_map/small_parse_table_map_0 \ -static/small_parse_table_map/small_parse_table_map_1 \ -static/small_parse_table_map/small_parse_table_map_10 \ -static/small_parse_table_map/small_parse_table_map_11 \ -static/small_parse_table_map/small_parse_table_map_12 \ -static/small_parse_table_map/small_parse_table_map_13 \ -static/small_parse_table_map/small_parse_table_map_14 \ -static/small_parse_table_map/small_parse_table_map_15 \ -static/small_parse_table_map/small_parse_table_map_16 \ -static/small_parse_table_map/small_parse_table_map_17 \ -static/small_parse_table_map/small_parse_table_map_18 \ -static/small_parse_table_map/small_parse_table_map_19 \ -static/small_parse_table_map/small_parse_table_map_2 \ -static/small_parse_table_map/small_parse_table_map_20 \ -static/small_parse_table_map/small_parse_table_map_21 \ -static/small_parse_table_map/small_parse_table_map_22 \ -static/small_parse_table_map/small_parse_table_map_23 \ -static/small_parse_table_map/small_parse_table_map_24 \ -static/small_parse_table_map/small_parse_table_map_25 \ -static/small_parse_table_map/small_parse_table_map_26 \ -static/small_parse_table_map/small_parse_table_map_27 \ -static/small_parse_table_map/small_parse_table_map_28 \ -static/small_parse_table_map/small_parse_table_map_29 \ -static/small_parse_table_map/small_parse_table_map_3 \ -static/small_parse_table_map/small_parse_table_map_30 \ -static/small_parse_table_map/small_parse_table_map_31 \ -static/small_parse_table_map/small_parse_table_map_32 \ -static/small_parse_table_map/small_parse_table_map_33 \ -static/small_parse_table_map/small_parse_table_map_34 \ -static/small_parse_table_map/small_parse_table_map_35 \ -static/small_parse_table_map/small_parse_table_map_36 \ -static/small_parse_table_map/small_parse_table_map_37 \ -static/small_parse_table_map/small_parse_table_map_38 \ -static/small_parse_table_map/small_parse_table_map_39 \ -static/small_parse_table_map/small_parse_table_map_4 \ -static/small_parse_table_map/small_parse_table_map_40 \ -static/small_parse_table_map/small_parse_table_map_41 \ -static/small_parse_table_map/small_parse_table_map_42 \ -static/small_parse_table_map/small_parse_table_map_43 \ -static/small_parse_table_map/small_parse_table_map_44 \ -static/small_parse_table_map/small_parse_table_map_45 \ -static/small_parse_table_map/small_parse_table_map_46 \ -static/small_parse_table_map/small_parse_table_map_47 \ -static/small_parse_table_map/small_parse_table_map_48 \ -static/small_parse_table_map/small_parse_table_map_49 \ -static/small_parse_table_map/small_parse_table_map_5 \ -static/small_parse_table_map/small_parse_table_map_50 \ -static/small_parse_table_map/small_parse_table_map_51 \ -static/small_parse_table_map/small_parse_table_map_52 \ -static/small_parse_table_map/small_parse_table_map_53 \ -static/small_parse_table_map/small_parse_table_map_54 \ -static/small_parse_table_map/small_parse_table_map_55 \ -static/small_parse_table_map/small_parse_table_map_56 \ -static/small_parse_table_map/small_parse_table_map_57 \ -static/small_parse_table_map/small_parse_table_map_58 \ -static/small_parse_table_map/small_parse_table_map_59 \ -static/small_parse_table_map/small_parse_table_map_6 \ -static/small_parse_table_map/small_parse_table_map_60 \ -static/small_parse_table_map/small_parse_table_map_61 \ -static/small_parse_table_map/small_parse_table_map_62 \ -static/small_parse_table_map/small_parse_table_map_63 \ -static/small_parse_table_map/small_parse_table_map_64 \ -static/small_parse_table_map/small_parse_table_map_65 \ -static/small_parse_table_map/small_parse_table_map_66 \ -static/small_parse_table_map/small_parse_table_map_67 \ -static/small_parse_table_map/small_parse_table_map_68 \ -static/small_parse_table_map/small_parse_table_map_69 \ -static/small_parse_table_map/small_parse_table_map_7 \ -static/small_parse_table_map/small_parse_table_map_70 \ -static/small_parse_table_map/small_parse_table_map_71 \ -static/small_parse_table_map/small_parse_table_map_8 \ -static/small_parse_table_map/small_parse_table_map_9 \ -static/small_parse_table/small_parse_table_0 \ -static/small_parse_table/small_parse_table_1 \ -static/small_parse_table/small_parse_table_10 \ -static/small_parse_table/small_parse_table_100 \ -static/small_parse_table/small_parse_table_1000 \ -static/small_parse_table/small_parse_table_1001 \ -static/small_parse_table/small_parse_table_1002 \ -static/small_parse_table/small_parse_table_1003 \ -static/small_parse_table/small_parse_table_1004 \ -static/small_parse_table/small_parse_table_1005 \ -static/small_parse_table/small_parse_table_1006 \ -static/small_parse_table/small_parse_table_1007 \ -static/small_parse_table/small_parse_table_1008 \ -static/small_parse_table/small_parse_table_1009 \ -static/small_parse_table/small_parse_table_101 \ -static/small_parse_table/small_parse_table_1010 \ -static/small_parse_table/small_parse_table_1011 \ -static/small_parse_table/small_parse_table_1012 \ -static/small_parse_table/small_parse_table_1013 \ -static/small_parse_table/small_parse_table_1014 \ -static/small_parse_table/small_parse_table_1015 \ -static/small_parse_table/small_parse_table_1016 \ -static/small_parse_table/small_parse_table_1017 \ -static/small_parse_table/small_parse_table_1018 \ -static/small_parse_table/small_parse_table_1019 \ -static/small_parse_table/small_parse_table_102 \ -static/small_parse_table/small_parse_table_1020 \ -static/small_parse_table/small_parse_table_1021 \ -static/small_parse_table/small_parse_table_1022 \ -static/small_parse_table/small_parse_table_1023 \ -static/small_parse_table/small_parse_table_1024 \ -static/small_parse_table/small_parse_table_1025 \ -static/small_parse_table/small_parse_table_1026 \ -static/small_parse_table/small_parse_table_1027 \ -static/small_parse_table/small_parse_table_1028 \ -static/small_parse_table/small_parse_table_1029 \ -static/small_parse_table/small_parse_table_103 \ -static/small_parse_table/small_parse_table_1030 \ -static/small_parse_table/small_parse_table_1031 \ -static/small_parse_table/small_parse_table_1032 \ -static/small_parse_table/small_parse_table_1033 \ -static/small_parse_table/small_parse_table_1034 \ -static/small_parse_table/small_parse_table_1035 \ -static/small_parse_table/small_parse_table_1036 \ -static/small_parse_table/small_parse_table_1037 \ -static/small_parse_table/small_parse_table_1038 \ -static/small_parse_table/small_parse_table_1039 \ -static/small_parse_table/small_parse_table_104 \ -static/small_parse_table/small_parse_table_1040 \ -static/small_parse_table/small_parse_table_1041 \ -static/small_parse_table/small_parse_table_1042 \ -static/small_parse_table/small_parse_table_1043 \ -static/small_parse_table/small_parse_table_1044 \ -static/small_parse_table/small_parse_table_1045 \ -static/small_parse_table/small_parse_table_1046 \ -static/small_parse_table/small_parse_table_1047 \ -static/small_parse_table/small_parse_table_1048 \ -static/small_parse_table/small_parse_table_1049 \ -static/small_parse_table/small_parse_table_105 \ -static/small_parse_table/small_parse_table_1050 \ -static/small_parse_table/small_parse_table_1051 \ -static/small_parse_table/small_parse_table_1052 \ -static/small_parse_table/small_parse_table_1053 \ -static/small_parse_table/small_parse_table_1054 \ -static/small_parse_table/small_parse_table_1055 \ -static/small_parse_table/small_parse_table_1056 \ -static/small_parse_table/small_parse_table_1057 \ -static/small_parse_table/small_parse_table_1058 \ -static/small_parse_table/small_parse_table_1059 \ -static/small_parse_table/small_parse_table_106 \ -static/small_parse_table/small_parse_table_1060 \ -static/small_parse_table/small_parse_table_1061 \ -static/small_parse_table/small_parse_table_1062 \ -static/small_parse_table/small_parse_table_1063 \ -static/small_parse_table/small_parse_table_1064 \ -static/small_parse_table/small_parse_table_1065 \ -static/small_parse_table/small_parse_table_1066 \ -static/small_parse_table/small_parse_table_1067 \ -static/small_parse_table/small_parse_table_1068 \ -static/small_parse_table/small_parse_table_1069 \ -static/small_parse_table/small_parse_table_107 \ -static/small_parse_table/small_parse_table_1070 \ -static/small_parse_table/small_parse_table_1071 \ -static/small_parse_table/small_parse_table_1072 \ -static/small_parse_table/small_parse_table_1073 \ -static/small_parse_table/small_parse_table_1074 \ -static/small_parse_table/small_parse_table_1075 \ -static/small_parse_table/small_parse_table_1076 \ -static/small_parse_table/small_parse_table_1077 \ -static/small_parse_table/small_parse_table_1078 \ -static/small_parse_table/small_parse_table_1079 \ -static/small_parse_table/small_parse_table_108 \ -static/small_parse_table/small_parse_table_1080 \ -static/small_parse_table/small_parse_table_1081 \ -static/small_parse_table/small_parse_table_1082 \ -static/small_parse_table/small_parse_table_1083 \ -static/small_parse_table/small_parse_table_1084 \ -static/small_parse_table/small_parse_table_1085 \ -static/small_parse_table/small_parse_table_1086 \ -static/small_parse_table/small_parse_table_1087 \ -static/small_parse_table/small_parse_table_1088 \ -static/small_parse_table/small_parse_table_1089 \ -static/small_parse_table/small_parse_table_109 \ -static/small_parse_table/small_parse_table_1090 \ -static/small_parse_table/small_parse_table_1091 \ -static/small_parse_table/small_parse_table_1092 \ -static/small_parse_table/small_parse_table_1093 \ -static/small_parse_table/small_parse_table_1094 \ -static/small_parse_table/small_parse_table_1095 \ -static/small_parse_table/small_parse_table_1096 \ -static/small_parse_table/small_parse_table_1097 \ -static/small_parse_table/small_parse_table_1098 \ -static/small_parse_table/small_parse_table_1099 \ -static/small_parse_table/small_parse_table_11 \ -static/small_parse_table/small_parse_table_110 \ -static/small_parse_table/small_parse_table_1100 \ -static/small_parse_table/small_parse_table_1101 \ -static/small_parse_table/small_parse_table_1102 \ -static/small_parse_table/small_parse_table_1103 \ -static/small_parse_table/small_parse_table_1104 \ -static/small_parse_table/small_parse_table_1105 \ -static/small_parse_table/small_parse_table_1106 \ -static/small_parse_table/small_parse_table_1107 \ -static/small_parse_table/small_parse_table_1108 \ -static/small_parse_table/small_parse_table_1109 \ -static/small_parse_table/small_parse_table_111 \ -static/small_parse_table/small_parse_table_1110 \ -static/small_parse_table/small_parse_table_1111 \ -static/small_parse_table/small_parse_table_1112 \ -static/small_parse_table/small_parse_table_1113 \ -static/small_parse_table/small_parse_table_1114 \ -static/small_parse_table/small_parse_table_1115 \ -static/small_parse_table/small_parse_table_1116 \ -static/small_parse_table/small_parse_table_1117 \ -static/small_parse_table/small_parse_table_1118 \ -static/small_parse_table/small_parse_table_1119 \ -static/small_parse_table/small_parse_table_112 \ -static/small_parse_table/small_parse_table_1120 \ -static/small_parse_table/small_parse_table_1121 \ -static/small_parse_table/small_parse_table_1122 \ -static/small_parse_table/small_parse_table_1123 \ -static/small_parse_table/small_parse_table_1124 \ -static/small_parse_table/small_parse_table_1125 \ -static/small_parse_table/small_parse_table_1126 \ -static/small_parse_table/small_parse_table_1127 \ -static/small_parse_table/small_parse_table_1128 \ -static/small_parse_table/small_parse_table_1129 \ -static/small_parse_table/small_parse_table_113 \ -static/small_parse_table/small_parse_table_1130 \ -static/small_parse_table/small_parse_table_1131 \ -static/small_parse_table/small_parse_table_1132 \ -static/small_parse_table/small_parse_table_1133 \ -static/small_parse_table/small_parse_table_1134 \ -static/small_parse_table/small_parse_table_1135 \ -static/small_parse_table/small_parse_table_1136 \ -static/small_parse_table/small_parse_table_1137 \ -static/small_parse_table/small_parse_table_1138 \ -static/small_parse_table/small_parse_table_1139 \ -static/small_parse_table/small_parse_table_114 \ -static/small_parse_table/small_parse_table_1140 \ -static/small_parse_table/small_parse_table_1141 \ -static/small_parse_table/small_parse_table_1142 \ -static/small_parse_table/small_parse_table_1143 \ -static/small_parse_table/small_parse_table_1144 \ -static/small_parse_table/small_parse_table_1145 \ -static/small_parse_table/small_parse_table_1146 \ -static/small_parse_table/small_parse_table_1147 \ -static/small_parse_table/small_parse_table_1148 \ -static/small_parse_table/small_parse_table_1149 \ -static/small_parse_table/small_parse_table_115 \ -static/small_parse_table/small_parse_table_1150 \ -static/small_parse_table/small_parse_table_1151 \ -static/small_parse_table/small_parse_table_1152 \ -static/small_parse_table/small_parse_table_1153 \ -static/small_parse_table/small_parse_table_1154 \ -static/small_parse_table/small_parse_table_1155 \ -static/small_parse_table/small_parse_table_1156 \ -static/small_parse_table/small_parse_table_1157 \ -static/small_parse_table/small_parse_table_1158 \ -static/small_parse_table/small_parse_table_1159 \ -static/small_parse_table/small_parse_table_116 \ -static/small_parse_table/small_parse_table_1160 \ -static/small_parse_table/small_parse_table_1161 \ -static/small_parse_table/small_parse_table_1162 \ -static/small_parse_table/small_parse_table_1163 \ -static/small_parse_table/small_parse_table_1164 \ -static/small_parse_table/small_parse_table_1165 \ -static/small_parse_table/small_parse_table_1166 \ -static/small_parse_table/small_parse_table_1167 \ -static/small_parse_table/small_parse_table_1168 \ -static/small_parse_table/small_parse_table_1169 \ -static/small_parse_table/small_parse_table_117 \ -static/small_parse_table/small_parse_table_1170 \ -static/small_parse_table/small_parse_table_1171 \ -static/small_parse_table/small_parse_table_1172 \ -static/small_parse_table/small_parse_table_1173 \ -static/small_parse_table/small_parse_table_1174 \ -static/small_parse_table/small_parse_table_1175 \ -static/small_parse_table/small_parse_table_1176 \ -static/small_parse_table/small_parse_table_1177 \ -static/small_parse_table/small_parse_table_1178 \ -static/small_parse_table/small_parse_table_1179 \ -static/small_parse_table/small_parse_table_118 \ -static/small_parse_table/small_parse_table_1180 \ -static/small_parse_table/small_parse_table_1181 \ -static/small_parse_table/small_parse_table_1182 \ -static/small_parse_table/small_parse_table_1183 \ -static/small_parse_table/small_parse_table_1184 \ -static/small_parse_table/small_parse_table_1185 \ -static/small_parse_table/small_parse_table_1186 \ -static/small_parse_table/small_parse_table_1187 \ -static/small_parse_table/small_parse_table_1188 \ -static/small_parse_table/small_parse_table_1189 \ -static/small_parse_table/small_parse_table_119 \ -static/small_parse_table/small_parse_table_1190 \ -static/small_parse_table/small_parse_table_1191 \ -static/small_parse_table/small_parse_table_1192 \ -static/small_parse_table/small_parse_table_1193 \ -static/small_parse_table/small_parse_table_1194 \ -static/small_parse_table/small_parse_table_1195 \ -static/small_parse_table/small_parse_table_1196 \ -static/small_parse_table/small_parse_table_1197 \ -static/small_parse_table/small_parse_table_1198 \ -static/small_parse_table/small_parse_table_1199 \ -static/small_parse_table/small_parse_table_12 \ -static/small_parse_table/small_parse_table_120 \ -static/small_parse_table/small_parse_table_1200 \ -static/small_parse_table/small_parse_table_1201 \ -static/small_parse_table/small_parse_table_1202 \ -static/small_parse_table/small_parse_table_1203 \ -static/small_parse_table/small_parse_table_1204 \ -static/small_parse_table/small_parse_table_1205 \ -static/small_parse_table/small_parse_table_1206 \ -static/small_parse_table/small_parse_table_1207 \ -static/small_parse_table/small_parse_table_1208 \ -static/small_parse_table/small_parse_table_1209 \ -static/small_parse_table/small_parse_table_121 \ -static/small_parse_table/small_parse_table_1210 \ -static/small_parse_table/small_parse_table_1211 \ -static/small_parse_table/small_parse_table_1212 \ -static/small_parse_table/small_parse_table_1213 \ -static/small_parse_table/small_parse_table_1214 \ -static/small_parse_table/small_parse_table_1215 \ -static/small_parse_table/small_parse_table_1216 \ -static/small_parse_table/small_parse_table_1217 \ -static/small_parse_table/small_parse_table_1218 \ -static/small_parse_table/small_parse_table_1219 \ -static/small_parse_table/small_parse_table_122 \ -static/small_parse_table/small_parse_table_1220 \ -static/small_parse_table/small_parse_table_1221 \ -static/small_parse_table/small_parse_table_1222 \ -static/small_parse_table/small_parse_table_1223 \ -static/small_parse_table/small_parse_table_1224 \ -static/small_parse_table/small_parse_table_1225 \ -static/small_parse_table/small_parse_table_1226 \ -static/small_parse_table/small_parse_table_1227 \ -static/small_parse_table/small_parse_table_1228 \ -static/small_parse_table/small_parse_table_1229 \ -static/small_parse_table/small_parse_table_123 \ -static/small_parse_table/small_parse_table_1230 \ -static/small_parse_table/small_parse_table_1231 \ -static/small_parse_table/small_parse_table_1232 \ -static/small_parse_table/small_parse_table_1233 \ -static/small_parse_table/small_parse_table_1234 \ -static/small_parse_table/small_parse_table_1235 \ -static/small_parse_table/small_parse_table_1236 \ -static/small_parse_table/small_parse_table_1237 \ -static/small_parse_table/small_parse_table_1238 \ -static/small_parse_table/small_parse_table_1239 \ -static/small_parse_table/small_parse_table_124 \ -static/small_parse_table/small_parse_table_1240 \ -static/small_parse_table/small_parse_table_1241 \ -static/small_parse_table/small_parse_table_1242 \ -static/small_parse_table/small_parse_table_1243 \ -static/small_parse_table/small_parse_table_1244 \ -static/small_parse_table/small_parse_table_1245 \ -static/small_parse_table/small_parse_table_1246 \ -static/small_parse_table/small_parse_table_1247 \ -static/small_parse_table/small_parse_table_1248 \ -static/small_parse_table/small_parse_table_1249 \ -static/small_parse_table/small_parse_table_125 \ -static/small_parse_table/small_parse_table_1250 \ -static/small_parse_table/small_parse_table_1251 \ -static/small_parse_table/small_parse_table_1252 \ -static/small_parse_table/small_parse_table_1253 \ -static/small_parse_table/small_parse_table_1254 \ -static/small_parse_table/small_parse_table_1255 \ -static/small_parse_table/small_parse_table_1256 \ -static/small_parse_table/small_parse_table_1257 \ -static/small_parse_table/small_parse_table_1258 \ -static/small_parse_table/small_parse_table_1259 \ -static/small_parse_table/small_parse_table_126 \ -static/small_parse_table/small_parse_table_1260 \ -static/small_parse_table/small_parse_table_1261 \ -static/small_parse_table/small_parse_table_1262 \ -static/small_parse_table/small_parse_table_1263 \ -static/small_parse_table/small_parse_table_1264 \ -static/small_parse_table/small_parse_table_1265 \ -static/small_parse_table/small_parse_table_1266 \ -static/small_parse_table/small_parse_table_1267 \ -static/small_parse_table/small_parse_table_1268 \ -static/small_parse_table/small_parse_table_1269 \ -static/small_parse_table/small_parse_table_127 \ -static/small_parse_table/small_parse_table_1270 \ -static/small_parse_table/small_parse_table_1271 \ -static/small_parse_table/small_parse_table_1272 \ -static/small_parse_table/small_parse_table_1273 \ -static/small_parse_table/small_parse_table_1274 \ -static/small_parse_table/small_parse_table_1275 \ -static/small_parse_table/small_parse_table_1276 \ -static/small_parse_table/small_parse_table_1277 \ -static/small_parse_table/small_parse_table_1278 \ -static/small_parse_table/small_parse_table_1279 \ -static/small_parse_table/small_parse_table_128 \ -static/small_parse_table/small_parse_table_1280 \ -static/small_parse_table/small_parse_table_1281 \ -static/small_parse_table/small_parse_table_1282 \ -static/small_parse_table/small_parse_table_1283 \ -static/small_parse_table/small_parse_table_1284 \ -static/small_parse_table/small_parse_table_1285 \ -static/small_parse_table/small_parse_table_1286 \ -static/small_parse_table/small_parse_table_1287 \ -static/small_parse_table/small_parse_table_1288 \ -static/small_parse_table/small_parse_table_1289 \ -static/small_parse_table/small_parse_table_129 \ -static/small_parse_table/small_parse_table_1290 \ -static/small_parse_table/small_parse_table_1291 \ -static/small_parse_table/small_parse_table_1292 \ -static/small_parse_table/small_parse_table_1293 \ -static/small_parse_table/small_parse_table_1294 \ -static/small_parse_table/small_parse_table_1295 \ -static/small_parse_table/small_parse_table_1296 \ -static/small_parse_table/small_parse_table_1297 \ -static/small_parse_table/small_parse_table_1298 \ -static/small_parse_table/small_parse_table_1299 \ -static/small_parse_table/small_parse_table_13 \ -static/small_parse_table/small_parse_table_130 \ -static/small_parse_table/small_parse_table_1300 \ -static/small_parse_table/small_parse_table_1301 \ -static/small_parse_table/small_parse_table_1302 \ -static/small_parse_table/small_parse_table_1303 \ -static/small_parse_table/small_parse_table_1304 \ -static/small_parse_table/small_parse_table_1305 \ -static/small_parse_table/small_parse_table_1306 \ -static/small_parse_table/small_parse_table_1307 \ -static/small_parse_table/small_parse_table_1308 \ -static/small_parse_table/small_parse_table_1309 \ -static/small_parse_table/small_parse_table_131 \ -static/small_parse_table/small_parse_table_1310 \ -static/small_parse_table/small_parse_table_1311 \ -static/small_parse_table/small_parse_table_1312 \ -static/small_parse_table/small_parse_table_1313 \ -static/small_parse_table/small_parse_table_1314 \ -static/small_parse_table/small_parse_table_1315 \ -static/small_parse_table/small_parse_table_1316 \ -static/small_parse_table/small_parse_table_1317 \ -static/small_parse_table/small_parse_table_1318 \ -static/small_parse_table/small_parse_table_1319 \ -static/small_parse_table/small_parse_table_132 \ -static/small_parse_table/small_parse_table_1320 \ -static/small_parse_table/small_parse_table_1321 \ -static/small_parse_table/small_parse_table_1322 \ -static/small_parse_table/small_parse_table_1323 \ -static/small_parse_table/small_parse_table_1324 \ -static/small_parse_table/small_parse_table_1325 \ -static/small_parse_table/small_parse_table_1326 \ -static/small_parse_table/small_parse_table_1327 \ -static/small_parse_table/small_parse_table_1328 \ -static/small_parse_table/small_parse_table_1329 \ -static/small_parse_table/small_parse_table_133 \ -static/small_parse_table/small_parse_table_1330 \ -static/small_parse_table/small_parse_table_1331 \ -static/small_parse_table/small_parse_table_1332 \ -static/small_parse_table/small_parse_table_1333 \ -static/small_parse_table/small_parse_table_1334 \ -static/small_parse_table/small_parse_table_1335 \ -static/small_parse_table/small_parse_table_1336 \ -static/small_parse_table/small_parse_table_1337 \ -static/small_parse_table/small_parse_table_1338 \ -static/small_parse_table/small_parse_table_1339 \ -static/small_parse_table/small_parse_table_134 \ -static/small_parse_table/small_parse_table_1340 \ -static/small_parse_table/small_parse_table_1341 \ -static/small_parse_table/small_parse_table_1342 \ -static/small_parse_table/small_parse_table_1343 \ -static/small_parse_table/small_parse_table_1344 \ -static/small_parse_table/small_parse_table_1345 \ -static/small_parse_table/small_parse_table_1346 \ -static/small_parse_table/small_parse_table_1347 \ -static/small_parse_table/small_parse_table_1348 \ -static/small_parse_table/small_parse_table_1349 \ -static/small_parse_table/small_parse_table_135 \ -static/small_parse_table/small_parse_table_1350 \ -static/small_parse_table/small_parse_table_1351 \ -static/small_parse_table/small_parse_table_1352 \ -static/small_parse_table/small_parse_table_1353 \ -static/small_parse_table/small_parse_table_1354 \ -static/small_parse_table/small_parse_table_1355 \ -static/small_parse_table/small_parse_table_1356 \ -static/small_parse_table/small_parse_table_1357 \ -static/small_parse_table/small_parse_table_1358 \ -static/small_parse_table/small_parse_table_1359 \ -static/small_parse_table/small_parse_table_136 \ -static/small_parse_table/small_parse_table_1360 \ -static/small_parse_table/small_parse_table_1361 \ -static/small_parse_table/small_parse_table_1362 \ -static/small_parse_table/small_parse_table_1363 \ -static/small_parse_table/small_parse_table_1364 \ -static/small_parse_table/small_parse_table_1365 \ -static/small_parse_table/small_parse_table_1366 \ -static/small_parse_table/small_parse_table_1367 \ -static/small_parse_table/small_parse_table_1368 \ -static/small_parse_table/small_parse_table_1369 \ -static/small_parse_table/small_parse_table_137 \ -static/small_parse_table/small_parse_table_1370 \ -static/small_parse_table/small_parse_table_1371 \ -static/small_parse_table/small_parse_table_1372 \ -static/small_parse_table/small_parse_table_1373 \ -static/small_parse_table/small_parse_table_1374 \ -static/small_parse_table/small_parse_table_1375 \ -static/small_parse_table/small_parse_table_1376 \ -static/small_parse_table/small_parse_table_1377 \ -static/small_parse_table/small_parse_table_1378 \ -static/small_parse_table/small_parse_table_1379 \ -static/small_parse_table/small_parse_table_138 \ -static/small_parse_table/small_parse_table_1380 \ -static/small_parse_table/small_parse_table_1381 \ -static/small_parse_table/small_parse_table_1382 \ -static/small_parse_table/small_parse_table_1383 \ -static/small_parse_table/small_parse_table_1384 \ -static/small_parse_table/small_parse_table_1385 \ -static/small_parse_table/small_parse_table_1386 \ -static/small_parse_table/small_parse_table_1387 \ -static/small_parse_table/small_parse_table_1388 \ -static/small_parse_table/small_parse_table_1389 \ -static/small_parse_table/small_parse_table_139 \ -static/small_parse_table/small_parse_table_1390 \ -static/small_parse_table/small_parse_table_1391 \ -static/small_parse_table/small_parse_table_1392 \ -static/small_parse_table/small_parse_table_1393 \ -static/small_parse_table/small_parse_table_1394 \ -static/small_parse_table/small_parse_table_1395 \ -static/small_parse_table/small_parse_table_1396 \ -static/small_parse_table/small_parse_table_1397 \ -static/small_parse_table/small_parse_table_1398 \ -static/small_parse_table/small_parse_table_1399 \ -static/small_parse_table/small_parse_table_14 \ -static/small_parse_table/small_parse_table_140 \ -static/small_parse_table/small_parse_table_1400 \ -static/small_parse_table/small_parse_table_1401 \ -static/small_parse_table/small_parse_table_1402 \ -static/small_parse_table/small_parse_table_1403 \ -static/small_parse_table/small_parse_table_1404 \ -static/small_parse_table/small_parse_table_1405 \ -static/small_parse_table/small_parse_table_1406 \ -static/small_parse_table/small_parse_table_1407 \ -static/small_parse_table/small_parse_table_1408 \ -static/small_parse_table/small_parse_table_1409 \ -static/small_parse_table/small_parse_table_141 \ -static/small_parse_table/small_parse_table_1410 \ -static/small_parse_table/small_parse_table_1411 \ -static/small_parse_table/small_parse_table_1412 \ -static/small_parse_table/small_parse_table_1413 \ -static/small_parse_table/small_parse_table_1414 \ -static/small_parse_table/small_parse_table_1415 \ -static/small_parse_table/small_parse_table_1416 \ -static/small_parse_table/small_parse_table_1417 \ -static/small_parse_table/small_parse_table_1418 \ -static/small_parse_table/small_parse_table_1419 \ -static/small_parse_table/small_parse_table_142 \ -static/small_parse_table/small_parse_table_1420 \ -static/small_parse_table/small_parse_table_1421 \ -static/small_parse_table/small_parse_table_1422 \ -static/small_parse_table/small_parse_table_1423 \ -static/small_parse_table/small_parse_table_1424 \ -static/small_parse_table/small_parse_table_1425 \ -static/small_parse_table/small_parse_table_1426 \ -static/small_parse_table/small_parse_table_1427 \ -static/small_parse_table/small_parse_table_1428 \ -static/small_parse_table/small_parse_table_1429 \ -static/small_parse_table/small_parse_table_143 \ -static/small_parse_table/small_parse_table_1430 \ -static/small_parse_table/small_parse_table_1431 \ -static/small_parse_table/small_parse_table_1432 \ -static/small_parse_table/small_parse_table_1433 \ -static/small_parse_table/small_parse_table_1434 \ -static/small_parse_table/small_parse_table_1435 \ -static/small_parse_table/small_parse_table_1436 \ -static/small_parse_table/small_parse_table_1437 \ -static/small_parse_table/small_parse_table_1438 \ -static/small_parse_table/small_parse_table_1439 \ -static/small_parse_table/small_parse_table_144 \ -static/small_parse_table/small_parse_table_1440 \ -static/small_parse_table/small_parse_table_1441 \ -static/small_parse_table/small_parse_table_1442 \ -static/small_parse_table/small_parse_table_1443 \ -static/small_parse_table/small_parse_table_1444 \ -static/small_parse_table/small_parse_table_1445 \ -static/small_parse_table/small_parse_table_1446 \ -static/small_parse_table/small_parse_table_1447 \ -static/small_parse_table/small_parse_table_1448 \ -static/small_parse_table/small_parse_table_1449 \ -static/small_parse_table/small_parse_table_145 \ -static/small_parse_table/small_parse_table_1450 \ -static/small_parse_table/small_parse_table_1451 \ -static/small_parse_table/small_parse_table_1452 \ -static/small_parse_table/small_parse_table_1453 \ -static/small_parse_table/small_parse_table_1454 \ -static/small_parse_table/small_parse_table_1455 \ -static/small_parse_table/small_parse_table_1456 \ -static/small_parse_table/small_parse_table_1457 \ -static/small_parse_table/small_parse_table_1458 \ -static/small_parse_table/small_parse_table_1459 \ -static/small_parse_table/small_parse_table_146 \ -static/small_parse_table/small_parse_table_1460 \ -static/small_parse_table/small_parse_table_1461 \ -static/small_parse_table/small_parse_table_1462 \ -static/small_parse_table/small_parse_table_1463 \ -static/small_parse_table/small_parse_table_1464 \ -static/small_parse_table/small_parse_table_1465 \ -static/small_parse_table/small_parse_table_1466 \ -static/small_parse_table/small_parse_table_1467 \ -static/small_parse_table/small_parse_table_1468 \ -static/small_parse_table/small_parse_table_1469 \ -static/small_parse_table/small_parse_table_147 \ -static/small_parse_table/small_parse_table_1470 \ -static/small_parse_table/small_parse_table_1471 \ -static/small_parse_table/small_parse_table_1472 \ -static/small_parse_table/small_parse_table_1473 \ -static/small_parse_table/small_parse_table_1474 \ -static/small_parse_table/small_parse_table_1475 \ -static/small_parse_table/small_parse_table_1476 \ -static/small_parse_table/small_parse_table_1477 \ -static/small_parse_table/small_parse_table_1478 \ -static/small_parse_table/small_parse_table_1479 \ -static/small_parse_table/small_parse_table_148 \ -static/small_parse_table/small_parse_table_1480 \ -static/small_parse_table/small_parse_table_1481 \ -static/small_parse_table/small_parse_table_1482 \ -static/small_parse_table/small_parse_table_1483 \ -static/small_parse_table/small_parse_table_1484 \ -static/small_parse_table/small_parse_table_1485 \ -static/small_parse_table/small_parse_table_1486 \ -static/small_parse_table/small_parse_table_1487 \ -static/small_parse_table/small_parse_table_1488 \ -static/small_parse_table/small_parse_table_1489 \ -static/small_parse_table/small_parse_table_149 \ -static/small_parse_table/small_parse_table_1490 \ -static/small_parse_table/small_parse_table_1491 \ -static/small_parse_table/small_parse_table_1492 \ -static/small_parse_table/small_parse_table_1493 \ -static/small_parse_table/small_parse_table_1494 \ -static/small_parse_table/small_parse_table_1495 \ -static/small_parse_table/small_parse_table_1496 \ -static/small_parse_table/small_parse_table_1497 \ -static/small_parse_table/small_parse_table_1498 \ -static/small_parse_table/small_parse_table_1499 \ -static/small_parse_table/small_parse_table_15 \ -static/small_parse_table/small_parse_table_150 \ -static/small_parse_table/small_parse_table_1500 \ -static/small_parse_table/small_parse_table_1501 \ -static/small_parse_table/small_parse_table_1502 \ -static/small_parse_table/small_parse_table_1503 \ -static/small_parse_table/small_parse_table_1504 \ -static/small_parse_table/small_parse_table_1505 \ -static/small_parse_table/small_parse_table_1506 \ -static/small_parse_table/small_parse_table_1507 \ -static/small_parse_table/small_parse_table_1508 \ -static/small_parse_table/small_parse_table_1509 \ -static/small_parse_table/small_parse_table_151 \ -static/small_parse_table/small_parse_table_1510 \ -static/small_parse_table/small_parse_table_1511 \ -static/small_parse_table/small_parse_table_1512 \ -static/small_parse_table/small_parse_table_1513 \ -static/small_parse_table/small_parse_table_1514 \ -static/small_parse_table/small_parse_table_1515 \ -static/small_parse_table/small_parse_table_1516 \ -static/small_parse_table/small_parse_table_1517 \ -static/small_parse_table/small_parse_table_1518 \ -static/small_parse_table/small_parse_table_1519 \ -static/small_parse_table/small_parse_table_152 \ -static/small_parse_table/small_parse_table_1520 \ -static/small_parse_table/small_parse_table_1521 \ -static/small_parse_table/small_parse_table_1522 \ -static/small_parse_table/small_parse_table_1523 \ -static/small_parse_table/small_parse_table_1524 \ -static/small_parse_table/small_parse_table_1525 \ -static/small_parse_table/small_parse_table_1526 \ -static/small_parse_table/small_parse_table_1527 \ -static/small_parse_table/small_parse_table_1528 \ -static/small_parse_table/small_parse_table_1529 \ -static/small_parse_table/small_parse_table_153 \ -static/small_parse_table/small_parse_table_1530 \ -static/small_parse_table/small_parse_table_1531 \ -static/small_parse_table/small_parse_table_1532 \ -static/small_parse_table/small_parse_table_1533 \ -static/small_parse_table/small_parse_table_1534 \ -static/small_parse_table/small_parse_table_1535 \ -static/small_parse_table/small_parse_table_1536 \ -static/small_parse_table/small_parse_table_1537 \ -static/small_parse_table/small_parse_table_1538 \ -static/small_parse_table/small_parse_table_1539 \ -static/small_parse_table/small_parse_table_154 \ -static/small_parse_table/small_parse_table_1540 \ -static/small_parse_table/small_parse_table_1541 \ -static/small_parse_table/small_parse_table_1542 \ -static/small_parse_table/small_parse_table_1543 \ -static/small_parse_table/small_parse_table_1544 \ -static/small_parse_table/small_parse_table_1545 \ -static/small_parse_table/small_parse_table_1546 \ -static/small_parse_table/small_parse_table_1547 \ -static/small_parse_table/small_parse_table_1548 \ -static/small_parse_table/small_parse_table_1549 \ -static/small_parse_table/small_parse_table_155 \ -static/small_parse_table/small_parse_table_1550 \ -static/small_parse_table/small_parse_table_1551 \ -static/small_parse_table/small_parse_table_1552 \ -static/small_parse_table/small_parse_table_1553 \ -static/small_parse_table/small_parse_table_1554 \ -static/small_parse_table/small_parse_table_1555 \ -static/small_parse_table/small_parse_table_1556 \ -static/small_parse_table/small_parse_table_1557 \ -static/small_parse_table/small_parse_table_1558 \ -static/small_parse_table/small_parse_table_1559 \ -static/small_parse_table/small_parse_table_156 \ -static/small_parse_table/small_parse_table_1560 \ -static/small_parse_table/small_parse_table_1561 \ -static/small_parse_table/small_parse_table_1562 \ -static/small_parse_table/small_parse_table_1563 \ -static/small_parse_table/small_parse_table_1564 \ -static/small_parse_table/small_parse_table_1565 \ -static/small_parse_table/small_parse_table_1566 \ -static/small_parse_table/small_parse_table_1567 \ -static/small_parse_table/small_parse_table_1568 \ -static/small_parse_table/small_parse_table_1569 \ -static/small_parse_table/small_parse_table_157 \ -static/small_parse_table/small_parse_table_1570 \ -static/small_parse_table/small_parse_table_1571 \ -static/small_parse_table/small_parse_table_1572 \ -static/small_parse_table/small_parse_table_1573 \ -static/small_parse_table/small_parse_table_1574 \ -static/small_parse_table/small_parse_table_1575 \ -static/small_parse_table/small_parse_table_1576 \ -static/small_parse_table/small_parse_table_1577 \ -static/small_parse_table/small_parse_table_1578 \ -static/small_parse_table/small_parse_table_1579 \ -static/small_parse_table/small_parse_table_158 \ -static/small_parse_table/small_parse_table_1580 \ -static/small_parse_table/small_parse_table_1581 \ -static/small_parse_table/small_parse_table_1582 \ -static/small_parse_table/small_parse_table_1583 \ -static/small_parse_table/small_parse_table_1584 \ -static/small_parse_table/small_parse_table_1585 \ -static/small_parse_table/small_parse_table_1586 \ -static/small_parse_table/small_parse_table_1587 \ -static/small_parse_table/small_parse_table_1588 \ -static/small_parse_table/small_parse_table_1589 \ -static/small_parse_table/small_parse_table_159 \ -static/small_parse_table/small_parse_table_1590 \ -static/small_parse_table/small_parse_table_1591 \ -static/small_parse_table/small_parse_table_1592 \ -static/small_parse_table/small_parse_table_1593 \ -static/small_parse_table/small_parse_table_1594 \ -static/small_parse_table/small_parse_table_1595 \ -static/small_parse_table/small_parse_table_1596 \ -static/small_parse_table/small_parse_table_1597 \ -static/small_parse_table/small_parse_table_1598 \ -static/small_parse_table/small_parse_table_1599 \ -static/small_parse_table/small_parse_table_16 \ -static/small_parse_table/small_parse_table_160 \ -static/small_parse_table/small_parse_table_1600 \ -static/small_parse_table/small_parse_table_1601 \ -static/small_parse_table/small_parse_table_1602 \ -static/small_parse_table/small_parse_table_1603 \ -static/small_parse_table/small_parse_table_1604 \ -static/small_parse_table/small_parse_table_1605 \ -static/small_parse_table/small_parse_table_1606 \ -static/small_parse_table/small_parse_table_1607 \ -static/small_parse_table/small_parse_table_1608 \ -static/small_parse_table/small_parse_table_1609 \ -static/small_parse_table/small_parse_table_161 \ -static/small_parse_table/small_parse_table_1610 \ -static/small_parse_table/small_parse_table_1611 \ -static/small_parse_table/small_parse_table_1612 \ -static/small_parse_table/small_parse_table_1613 \ -static/small_parse_table/small_parse_table_1614 \ -static/small_parse_table/small_parse_table_1615 \ -static/small_parse_table/small_parse_table_1616 \ -static/small_parse_table/small_parse_table_1617 \ -static/small_parse_table/small_parse_table_1618 \ -static/small_parse_table/small_parse_table_1619 \ -static/small_parse_table/small_parse_table_162 \ -static/small_parse_table/small_parse_table_1620 \ -static/small_parse_table/small_parse_table_1621 \ -static/small_parse_table/small_parse_table_1622 \ -static/small_parse_table/small_parse_table_1623 \ -static/small_parse_table/small_parse_table_1624 \ -static/small_parse_table/small_parse_table_1625 \ -static/small_parse_table/small_parse_table_1626 \ -static/small_parse_table/small_parse_table_1627 \ -static/small_parse_table/small_parse_table_1628 \ -static/small_parse_table/small_parse_table_1629 \ -static/small_parse_table/small_parse_table_163 \ -static/small_parse_table/small_parse_table_1630 \ -static/small_parse_table/small_parse_table_1631 \ -static/small_parse_table/small_parse_table_1632 \ -static/small_parse_table/small_parse_table_1633 \ -static/small_parse_table/small_parse_table_1634 \ -static/small_parse_table/small_parse_table_1635 \ -static/small_parse_table/small_parse_table_1636 \ -static/small_parse_table/small_parse_table_1637 \ -static/small_parse_table/small_parse_table_1638 \ -static/small_parse_table/small_parse_table_1639 \ -static/small_parse_table/small_parse_table_164 \ -static/small_parse_table/small_parse_table_1640 \ -static/small_parse_table/small_parse_table_1641 \ -static/small_parse_table/small_parse_table_1642 \ -static/small_parse_table/small_parse_table_1643 \ -static/small_parse_table/small_parse_table_1644 \ -static/small_parse_table/small_parse_table_1645 \ -static/small_parse_table/small_parse_table_1646 \ -static/small_parse_table/small_parse_table_1647 \ -static/small_parse_table/small_parse_table_1648 \ -static/small_parse_table/small_parse_table_1649 \ -static/small_parse_table/small_parse_table_165 \ -static/small_parse_table/small_parse_table_1650 \ -static/small_parse_table/small_parse_table_1651 \ -static/small_parse_table/small_parse_table_1652 \ -static/small_parse_table/small_parse_table_1653 \ -static/small_parse_table/small_parse_table_1654 \ -static/small_parse_table/small_parse_table_1655 \ -static/small_parse_table/small_parse_table_1656 \ -static/small_parse_table/small_parse_table_1657 \ -static/small_parse_table/small_parse_table_1658 \ -static/small_parse_table/small_parse_table_1659 \ -static/small_parse_table/small_parse_table_166 \ -static/small_parse_table/small_parse_table_1660 \ -static/small_parse_table/small_parse_table_1661 \ -static/small_parse_table/small_parse_table_1662 \ -static/small_parse_table/small_parse_table_1663 \ -static/small_parse_table/small_parse_table_1664 \ -static/small_parse_table/small_parse_table_1665 \ -static/small_parse_table/small_parse_table_1666 \ -static/small_parse_table/small_parse_table_1667 \ -static/small_parse_table/small_parse_table_1668 \ -static/small_parse_table/small_parse_table_1669 \ -static/small_parse_table/small_parse_table_167 \ -static/small_parse_table/small_parse_table_1670 \ -static/small_parse_table/small_parse_table_1671 \ -static/small_parse_table/small_parse_table_1672 \ -static/small_parse_table/small_parse_table_1673 \ -static/small_parse_table/small_parse_table_1674 \ -static/small_parse_table/small_parse_table_1675 \ -static/small_parse_table/small_parse_table_1676 \ -static/small_parse_table/small_parse_table_1677 \ -static/small_parse_table/small_parse_table_1678 \ -static/small_parse_table/small_parse_table_1679 \ -static/small_parse_table/small_parse_table_168 \ -static/small_parse_table/small_parse_table_1680 \ -static/small_parse_table/small_parse_table_1681 \ -static/small_parse_table/small_parse_table_1682 \ -static/small_parse_table/small_parse_table_1683 \ -static/small_parse_table/small_parse_table_1684 \ -static/small_parse_table/small_parse_table_1685 \ -static/small_parse_table/small_parse_table_1686 \ -static/small_parse_table/small_parse_table_1687 \ -static/small_parse_table/small_parse_table_1688 \ -static/small_parse_table/small_parse_table_1689 \ -static/small_parse_table/small_parse_table_169 \ -static/small_parse_table/small_parse_table_1690 \ -static/small_parse_table/small_parse_table_1691 \ -static/small_parse_table/small_parse_table_1692 \ -static/small_parse_table/small_parse_table_1693 \ -static/small_parse_table/small_parse_table_1694 \ -static/small_parse_table/small_parse_table_1695 \ -static/small_parse_table/small_parse_table_1696 \ -static/small_parse_table/small_parse_table_1697 \ -static/small_parse_table/small_parse_table_1698 \ -static/small_parse_table/small_parse_table_1699 \ -static/small_parse_table/small_parse_table_17 \ -static/small_parse_table/small_parse_table_170 \ -static/small_parse_table/small_parse_table_1700 \ -static/small_parse_table/small_parse_table_1701 \ -static/small_parse_table/small_parse_table_1702 \ -static/small_parse_table/small_parse_table_1703 \ -static/small_parse_table/small_parse_table_1704 \ -static/small_parse_table/small_parse_table_1705 \ -static/small_parse_table/small_parse_table_1706 \ -static/small_parse_table/small_parse_table_1707 \ -static/small_parse_table/small_parse_table_1708 \ -static/small_parse_table/small_parse_table_1709 \ -static/small_parse_table/small_parse_table_171 \ -static/small_parse_table/small_parse_table_1710 \ -static/small_parse_table/small_parse_table_1711 \ -static/small_parse_table/small_parse_table_1712 \ -static/small_parse_table/small_parse_table_1713 \ -static/small_parse_table/small_parse_table_1714 \ -static/small_parse_table/small_parse_table_1715 \ -static/small_parse_table/small_parse_table_1716 \ -static/small_parse_table/small_parse_table_1717 \ -static/small_parse_table/small_parse_table_1718 \ -static/small_parse_table/small_parse_table_1719 \ -static/small_parse_table/small_parse_table_172 \ -static/small_parse_table/small_parse_table_1720 \ -static/small_parse_table/small_parse_table_1721 \ -static/small_parse_table/small_parse_table_1722 \ -static/small_parse_table/small_parse_table_1723 \ -static/small_parse_table/small_parse_table_1724 \ -static/small_parse_table/small_parse_table_1725 \ -static/small_parse_table/small_parse_table_1726 \ -static/small_parse_table/small_parse_table_1727 \ -static/small_parse_table/small_parse_table_1728 \ -static/small_parse_table/small_parse_table_1729 \ -static/small_parse_table/small_parse_table_173 \ -static/small_parse_table/small_parse_table_1730 \ -static/small_parse_table/small_parse_table_1731 \ -static/small_parse_table/small_parse_table_1732 \ -static/small_parse_table/small_parse_table_1733 \ -static/small_parse_table/small_parse_table_1734 \ -static/small_parse_table/small_parse_table_1735 \ -static/small_parse_table/small_parse_table_1736 \ -static/small_parse_table/small_parse_table_1737 \ -static/small_parse_table/small_parse_table_1738 \ -static/small_parse_table/small_parse_table_1739 \ -static/small_parse_table/small_parse_table_174 \ -static/small_parse_table/small_parse_table_1740 \ -static/small_parse_table/small_parse_table_1741 \ -static/small_parse_table/small_parse_table_1742 \ -static/small_parse_table/small_parse_table_1743 \ -static/small_parse_table/small_parse_table_1744 \ -static/small_parse_table/small_parse_table_1745 \ -static/small_parse_table/small_parse_table_1746 \ -static/small_parse_table/small_parse_table_1747 \ -static/small_parse_table/small_parse_table_1748 \ -static/small_parse_table/small_parse_table_1749 \ -static/small_parse_table/small_parse_table_175 \ -static/small_parse_table/small_parse_table_1750 \ -static/small_parse_table/small_parse_table_1751 \ -static/small_parse_table/small_parse_table_1752 \ -static/small_parse_table/small_parse_table_1753 \ -static/small_parse_table/small_parse_table_1754 \ -static/small_parse_table/small_parse_table_1755 \ -static/small_parse_table/small_parse_table_1756 \ -static/small_parse_table/small_parse_table_1757 \ -static/small_parse_table/small_parse_table_1758 \ -static/small_parse_table/small_parse_table_1759 \ -static/small_parse_table/small_parse_table_176 \ -static/small_parse_table/small_parse_table_1760 \ -static/small_parse_table/small_parse_table_1761 \ -static/small_parse_table/small_parse_table_1762 \ -static/small_parse_table/small_parse_table_1763 \ -static/small_parse_table/small_parse_table_1764 \ -static/small_parse_table/small_parse_table_1765 \ -static/small_parse_table/small_parse_table_1766 \ -static/small_parse_table/small_parse_table_1767 \ -static/small_parse_table/small_parse_table_1768 \ -static/small_parse_table/small_parse_table_1769 \ -static/small_parse_table/small_parse_table_177 \ -static/small_parse_table/small_parse_table_1770 \ -static/small_parse_table/small_parse_table_1771 \ -static/small_parse_table/small_parse_table_1772 \ -static/small_parse_table/small_parse_table_1773 \ -static/small_parse_table/small_parse_table_1774 \ -static/small_parse_table/small_parse_table_1775 \ -static/small_parse_table/small_parse_table_1776 \ -static/small_parse_table/small_parse_table_1777 \ -static/small_parse_table/small_parse_table_1778 \ -static/small_parse_table/small_parse_table_1779 \ -static/small_parse_table/small_parse_table_178 \ -static/small_parse_table/small_parse_table_1780 \ -static/small_parse_table/small_parse_table_1781 \ -static/small_parse_table/small_parse_table_1782 \ -static/small_parse_table/small_parse_table_1783 \ -static/small_parse_table/small_parse_table_1784 \ -static/small_parse_table/small_parse_table_1785 \ -static/small_parse_table/small_parse_table_1786 \ -static/small_parse_table/small_parse_table_1787 \ -static/small_parse_table/small_parse_table_1788 \ -static/small_parse_table/small_parse_table_1789 \ -static/small_parse_table/small_parse_table_179 \ -static/small_parse_table/small_parse_table_1790 \ -static/small_parse_table/small_parse_table_1791 \ -static/small_parse_table/small_parse_table_1792 \ -static/small_parse_table/small_parse_table_1793 \ -static/small_parse_table/small_parse_table_1794 \ -static/small_parse_table/small_parse_table_1795 \ -static/small_parse_table/small_parse_table_1796 \ -static/small_parse_table/small_parse_table_1797 \ -static/small_parse_table/small_parse_table_1798 \ -static/small_parse_table/small_parse_table_1799 \ -static/small_parse_table/small_parse_table_18 \ -static/small_parse_table/small_parse_table_180 \ -static/small_parse_table/small_parse_table_1800 \ -static/small_parse_table/small_parse_table_1801 \ -static/small_parse_table/small_parse_table_1802 \ -static/small_parse_table/small_parse_table_1803 \ -static/small_parse_table/small_parse_table_1804 \ -static/small_parse_table/small_parse_table_1805 \ -static/small_parse_table/small_parse_table_1806 \ -static/small_parse_table/small_parse_table_1807 \ -static/small_parse_table/small_parse_table_1808 \ -static/small_parse_table/small_parse_table_1809 \ -static/small_parse_table/small_parse_table_181 \ -static/small_parse_table/small_parse_table_1810 \ -static/small_parse_table/small_parse_table_1811 \ -static/small_parse_table/small_parse_table_1812 \ -static/small_parse_table/small_parse_table_1813 \ -static/small_parse_table/small_parse_table_1814 \ -static/small_parse_table/small_parse_table_1815 \ -static/small_parse_table/small_parse_table_1816 \ -static/small_parse_table/small_parse_table_1817 \ -static/small_parse_table/small_parse_table_1818 \ -static/small_parse_table/small_parse_table_1819 \ -static/small_parse_table/small_parse_table_182 \ -static/small_parse_table/small_parse_table_1820 \ -static/small_parse_table/small_parse_table_1821 \ -static/small_parse_table/small_parse_table_1822 \ -static/small_parse_table/small_parse_table_1823 \ -static/small_parse_table/small_parse_table_1824 \ -static/small_parse_table/small_parse_table_1825 \ -static/small_parse_table/small_parse_table_1826 \ -static/small_parse_table/small_parse_table_1827 \ -static/small_parse_table/small_parse_table_1828 \ -static/small_parse_table/small_parse_table_1829 \ -static/small_parse_table/small_parse_table_183 \ -static/small_parse_table/small_parse_table_1830 \ -static/small_parse_table/small_parse_table_1831 \ -static/small_parse_table/small_parse_table_1832 \ -static/small_parse_table/small_parse_table_1833 \ -static/small_parse_table/small_parse_table_1834 \ -static/small_parse_table/small_parse_table_1835 \ -static/small_parse_table/small_parse_table_1836 \ -static/small_parse_table/small_parse_table_1837 \ -static/small_parse_table/small_parse_table_1838 \ -static/small_parse_table/small_parse_table_1839 \ -static/small_parse_table/small_parse_table_184 \ -static/small_parse_table/small_parse_table_1840 \ -static/small_parse_table/small_parse_table_1841 \ -static/small_parse_table/small_parse_table_1842 \ -static/small_parse_table/small_parse_table_1843 \ -static/small_parse_table/small_parse_table_1844 \ -static/small_parse_table/small_parse_table_1845 \ -static/small_parse_table/small_parse_table_1846 \ -static/small_parse_table/small_parse_table_1847 \ -static/small_parse_table/small_parse_table_1848 \ -static/small_parse_table/small_parse_table_1849 \ -static/small_parse_table/small_parse_table_185 \ -static/small_parse_table/small_parse_table_1850 \ -static/small_parse_table/small_parse_table_1851 \ -static/small_parse_table/small_parse_table_1852 \ -static/small_parse_table/small_parse_table_1853 \ -static/small_parse_table/small_parse_table_1854 \ -static/small_parse_table/small_parse_table_1855 \ -static/small_parse_table/small_parse_table_1856 \ -static/small_parse_table/small_parse_table_1857 \ -static/small_parse_table/small_parse_table_1858 \ -static/small_parse_table/small_parse_table_1859 \ -static/small_parse_table/small_parse_table_186 \ -static/small_parse_table/small_parse_table_1860 \ -static/small_parse_table/small_parse_table_1861 \ -static/small_parse_table/small_parse_table_1862 \ -static/small_parse_table/small_parse_table_1863 \ -static/small_parse_table/small_parse_table_1864 \ -static/small_parse_table/small_parse_table_1865 \ -static/small_parse_table/small_parse_table_1866 \ -static/small_parse_table/small_parse_table_1867 \ -static/small_parse_table/small_parse_table_1868 \ -static/small_parse_table/small_parse_table_1869 \ -static/small_parse_table/small_parse_table_187 \ -static/small_parse_table/small_parse_table_1870 \ -static/small_parse_table/small_parse_table_1871 \ -static/small_parse_table/small_parse_table_1872 \ -static/small_parse_table/small_parse_table_1873 \ -static/small_parse_table/small_parse_table_1874 \ -static/small_parse_table/small_parse_table_1875 \ -static/small_parse_table/small_parse_table_1876 \ -static/small_parse_table/small_parse_table_1877 \ -static/small_parse_table/small_parse_table_1878 \ -static/small_parse_table/small_parse_table_1879 \ -static/small_parse_table/small_parse_table_188 \ -static/small_parse_table/small_parse_table_1880 \ -static/small_parse_table/small_parse_table_1881 \ -static/small_parse_table/small_parse_table_1882 \ -static/small_parse_table/small_parse_table_1883 \ -static/small_parse_table/small_parse_table_1884 \ -static/small_parse_table/small_parse_table_1885 \ -static/small_parse_table/small_parse_table_1886 \ -static/small_parse_table/small_parse_table_1887 \ -static/small_parse_table/small_parse_table_1888 \ -static/small_parse_table/small_parse_table_1889 \ -static/small_parse_table/small_parse_table_189 \ -static/small_parse_table/small_parse_table_1890 \ -static/small_parse_table/small_parse_table_1891 \ -static/small_parse_table/small_parse_table_1892 \ -static/small_parse_table/small_parse_table_1893 \ -static/small_parse_table/small_parse_table_1894 \ -static/small_parse_table/small_parse_table_1895 \ -static/small_parse_table/small_parse_table_1896 \ -static/small_parse_table/small_parse_table_1897 \ -static/small_parse_table/small_parse_table_1898 \ -static/small_parse_table/small_parse_table_1899 \ -static/small_parse_table/small_parse_table_19 \ -static/small_parse_table/small_parse_table_190 \ -static/small_parse_table/small_parse_table_1900 \ -static/small_parse_table/small_parse_table_1901 \ -static/small_parse_table/small_parse_table_1902 \ -static/small_parse_table/small_parse_table_1903 \ -static/small_parse_table/small_parse_table_1904 \ -static/small_parse_table/small_parse_table_1905 \ -static/small_parse_table/small_parse_table_1906 \ -static/small_parse_table/small_parse_table_1907 \ -static/small_parse_table/small_parse_table_1908 \ -static/small_parse_table/small_parse_table_1909 \ -static/small_parse_table/small_parse_table_191 \ -static/small_parse_table/small_parse_table_1910 \ -static/small_parse_table/small_parse_table_1911 \ -static/small_parse_table/small_parse_table_1912 \ -static/small_parse_table/small_parse_table_1913 \ -static/small_parse_table/small_parse_table_1914 \ -static/small_parse_table/small_parse_table_1915 \ -static/small_parse_table/small_parse_table_1916 \ -static/small_parse_table/small_parse_table_1917 \ -static/small_parse_table/small_parse_table_1918 \ -static/small_parse_table/small_parse_table_1919 \ -static/small_parse_table/small_parse_table_192 \ -static/small_parse_table/small_parse_table_1920 \ -static/small_parse_table/small_parse_table_1921 \ -static/small_parse_table/small_parse_table_1922 \ -static/small_parse_table/small_parse_table_1923 \ -static/small_parse_table/small_parse_table_1924 \ -static/small_parse_table/small_parse_table_1925 \ -static/small_parse_table/small_parse_table_1926 \ -static/small_parse_table/small_parse_table_1927 \ -static/small_parse_table/small_parse_table_1928 \ -static/small_parse_table/small_parse_table_1929 \ -static/small_parse_table/small_parse_table_193 \ -static/small_parse_table/small_parse_table_1930 \ -static/small_parse_table/small_parse_table_1931 \ -static/small_parse_table/small_parse_table_1932 \ -static/small_parse_table/small_parse_table_1933 \ -static/small_parse_table/small_parse_table_1934 \ -static/small_parse_table/small_parse_table_1935 \ -static/small_parse_table/small_parse_table_1936 \ -static/small_parse_table/small_parse_table_1937 \ -static/small_parse_table/small_parse_table_1938 \ -static/small_parse_table/small_parse_table_1939 \ -static/small_parse_table/small_parse_table_194 \ -static/small_parse_table/small_parse_table_1940 \ -static/small_parse_table/small_parse_table_1941 \ -static/small_parse_table/small_parse_table_1942 \ -static/small_parse_table/small_parse_table_1943 \ -static/small_parse_table/small_parse_table_1944 \ -static/small_parse_table/small_parse_table_1945 \ -static/small_parse_table/small_parse_table_1946 \ -static/small_parse_table/small_parse_table_1947 \ -static/small_parse_table/small_parse_table_1948 \ -static/small_parse_table/small_parse_table_1949 \ -static/small_parse_table/small_parse_table_195 \ -static/small_parse_table/small_parse_table_1950 \ -static/small_parse_table/small_parse_table_1951 \ -static/small_parse_table/small_parse_table_1952 \ -static/small_parse_table/small_parse_table_1953 \ -static/small_parse_table/small_parse_table_1954 \ -static/small_parse_table/small_parse_table_1955 \ -static/small_parse_table/small_parse_table_1956 \ -static/small_parse_table/small_parse_table_1957 \ -static/small_parse_table/small_parse_table_1958 \ -static/small_parse_table/small_parse_table_1959 \ -static/small_parse_table/small_parse_table_196 \ -static/small_parse_table/small_parse_table_1960 \ -static/small_parse_table/small_parse_table_1961 \ -static/small_parse_table/small_parse_table_1962 \ -static/small_parse_table/small_parse_table_1963 \ -static/small_parse_table/small_parse_table_1964 \ -static/small_parse_table/small_parse_table_1965 \ -static/small_parse_table/small_parse_table_1966 \ -static/small_parse_table/small_parse_table_1967 \ -static/small_parse_table/small_parse_table_1968 \ -static/small_parse_table/small_parse_table_1969 \ -static/small_parse_table/small_parse_table_197 \ -static/small_parse_table/small_parse_table_1970 \ -static/small_parse_table/small_parse_table_1971 \ -static/small_parse_table/small_parse_table_1972 \ -static/small_parse_table/small_parse_table_1973 \ -static/small_parse_table/small_parse_table_1974 \ -static/small_parse_table/small_parse_table_1975 \ -static/small_parse_table/small_parse_table_1976 \ -static/small_parse_table/small_parse_table_1977 \ -static/small_parse_table/small_parse_table_1978 \ -static/small_parse_table/small_parse_table_1979 \ -static/small_parse_table/small_parse_table_198 \ -static/small_parse_table/small_parse_table_1980 \ -static/small_parse_table/small_parse_table_1981 \ -static/small_parse_table/small_parse_table_1982 \ -static/small_parse_table/small_parse_table_1983 \ -static/small_parse_table/small_parse_table_1984 \ -static/small_parse_table/small_parse_table_1985 \ -static/small_parse_table/small_parse_table_1986 \ -static/small_parse_table/small_parse_table_1987 \ -static/small_parse_table/small_parse_table_1988 \ -static/small_parse_table/small_parse_table_1989 \ -static/small_parse_table/small_parse_table_199 \ -static/small_parse_table/small_parse_table_1990 \ -static/small_parse_table/small_parse_table_1991 \ -static/small_parse_table/small_parse_table_1992 \ -static/small_parse_table/small_parse_table_1993 \ -static/small_parse_table/small_parse_table_1994 \ -static/small_parse_table/small_parse_table_1995 \ -static/small_parse_table/small_parse_table_1996 \ -static/small_parse_table/small_parse_table_1997 \ -static/small_parse_table/small_parse_table_1998 \ -static/small_parse_table/small_parse_table_1999 \ -static/small_parse_table/small_parse_table_2 \ -static/small_parse_table/small_parse_table_20 \ -static/small_parse_table/small_parse_table_200 \ -static/small_parse_table/small_parse_table_2000 \ -static/small_parse_table/small_parse_table_2001 \ -static/small_parse_table/small_parse_table_2002 \ -static/small_parse_table/small_parse_table_2003 \ -static/small_parse_table/small_parse_table_2004 \ -static/small_parse_table/small_parse_table_2005 \ -static/small_parse_table/small_parse_table_2006 \ -static/small_parse_table/small_parse_table_2007 \ -static/small_parse_table/small_parse_table_2008 \ -static/small_parse_table/small_parse_table_2009 \ -static/small_parse_table/small_parse_table_201 \ -static/small_parse_table/small_parse_table_2010 \ -static/small_parse_table/small_parse_table_2011 \ -static/small_parse_table/small_parse_table_2012 \ -static/small_parse_table/small_parse_table_2013 \ -static/small_parse_table/small_parse_table_2014 \ -static/small_parse_table/small_parse_table_2015 \ -static/small_parse_table/small_parse_table_2016 \ -static/small_parse_table/small_parse_table_2017 \ -static/small_parse_table/small_parse_table_2018 \ -static/small_parse_table/small_parse_table_2019 \ -static/small_parse_table/small_parse_table_202 \ -static/small_parse_table/small_parse_table_2020 \ -static/small_parse_table/small_parse_table_2021 \ -static/small_parse_table/small_parse_table_2022 \ -static/small_parse_table/small_parse_table_2023 \ -static/small_parse_table/small_parse_table_2024 \ -static/small_parse_table/small_parse_table_2025 \ -static/small_parse_table/small_parse_table_2026 \ -static/small_parse_table/small_parse_table_2027 \ -static/small_parse_table/small_parse_table_2028 \ -static/small_parse_table/small_parse_table_2029 \ -static/small_parse_table/small_parse_table_203 \ -static/small_parse_table/small_parse_table_2030 \ -static/small_parse_table/small_parse_table_2031 \ -static/small_parse_table/small_parse_table_2032 \ -static/small_parse_table/small_parse_table_2033 \ -static/small_parse_table/small_parse_table_2034 \ -static/small_parse_table/small_parse_table_2035 \ -static/small_parse_table/small_parse_table_2036 \ -static/small_parse_table/small_parse_table_2037 \ -static/small_parse_table/small_parse_table_2038 \ -static/small_parse_table/small_parse_table_2039 \ -static/small_parse_table/small_parse_table_204 \ -static/small_parse_table/small_parse_table_2040 \ -static/small_parse_table/small_parse_table_2041 \ -static/small_parse_table/small_parse_table_2042 \ -static/small_parse_table/small_parse_table_2043 \ -static/small_parse_table/small_parse_table_2044 \ -static/small_parse_table/small_parse_table_2045 \ -static/small_parse_table/small_parse_table_2046 \ -static/small_parse_table/small_parse_table_2047 \ -static/small_parse_table/small_parse_table_2048 \ -static/small_parse_table/small_parse_table_2049 \ -static/small_parse_table/small_parse_table_205 \ -static/small_parse_table/small_parse_table_2050 \ -static/small_parse_table/small_parse_table_2051 \ -static/small_parse_table/small_parse_table_2052 \ -static/small_parse_table/small_parse_table_2053 \ -static/small_parse_table/small_parse_table_2054 \ -static/small_parse_table/small_parse_table_2055 \ -static/small_parse_table/small_parse_table_2056 \ -static/small_parse_table/small_parse_table_2057 \ -static/small_parse_table/small_parse_table_2058 \ -static/small_parse_table/small_parse_table_2059 \ -static/small_parse_table/small_parse_table_206 \ -static/small_parse_table/small_parse_table_2060 \ -static/small_parse_table/small_parse_table_2061 \ -static/small_parse_table/small_parse_table_2062 \ -static/small_parse_table/small_parse_table_2063 \ -static/small_parse_table/small_parse_table_2064 \ -static/small_parse_table/small_parse_table_2065 \ -static/small_parse_table/small_parse_table_2066 \ -static/small_parse_table/small_parse_table_2067 \ -static/small_parse_table/small_parse_table_2068 \ -static/small_parse_table/small_parse_table_2069 \ -static/small_parse_table/small_parse_table_207 \ -static/small_parse_table/small_parse_table_2070 \ -static/small_parse_table/small_parse_table_2071 \ -static/small_parse_table/small_parse_table_2072 \ -static/small_parse_table/small_parse_table_2073 \ -static/small_parse_table/small_parse_table_2074 \ -static/small_parse_table/small_parse_table_2075 \ -static/small_parse_table/small_parse_table_2076 \ -static/small_parse_table/small_parse_table_2077 \ -static/small_parse_table/small_parse_table_2078 \ -static/small_parse_table/small_parse_table_2079 \ -static/small_parse_table/small_parse_table_208 \ -static/small_parse_table/small_parse_table_2080 \ -static/small_parse_table/small_parse_table_2081 \ -static/small_parse_table/small_parse_table_2082 \ -static/small_parse_table/small_parse_table_2083 \ -static/small_parse_table/small_parse_table_2084 \ -static/small_parse_table/small_parse_table_2085 \ -static/small_parse_table/small_parse_table_2086 \ -static/small_parse_table/small_parse_table_2087 \ -static/small_parse_table/small_parse_table_2088 \ -static/small_parse_table/small_parse_table_2089 \ -static/small_parse_table/small_parse_table_209 \ -static/small_parse_table/small_parse_table_2090 \ -static/small_parse_table/small_parse_table_2091 \ -static/small_parse_table/small_parse_table_2092 \ -static/small_parse_table/small_parse_table_2093 \ -static/small_parse_table/small_parse_table_2094 \ -static/small_parse_table/small_parse_table_2095 \ -static/small_parse_table/small_parse_table_2096 \ -static/small_parse_table/small_parse_table_2097 \ -static/small_parse_table/small_parse_table_2098 \ -static/small_parse_table/small_parse_table_2099 \ -static/small_parse_table/small_parse_table_21 \ -static/small_parse_table/small_parse_table_210 \ -static/small_parse_table/small_parse_table_2100 \ -static/small_parse_table/small_parse_table_2101 \ -static/small_parse_table/small_parse_table_2102 \ -static/small_parse_table/small_parse_table_2103 \ -static/small_parse_table/small_parse_table_2104 \ -static/small_parse_table/small_parse_table_2105 \ -static/small_parse_table/small_parse_table_2106 \ -static/small_parse_table/small_parse_table_2107 \ -static/small_parse_table/small_parse_table_2108 \ -static/small_parse_table/small_parse_table_2109 \ -static/small_parse_table/small_parse_table_211 \ -static/small_parse_table/small_parse_table_2110 \ -static/small_parse_table/small_parse_table_2111 \ -static/small_parse_table/small_parse_table_2112 \ -static/small_parse_table/small_parse_table_2113 \ -static/small_parse_table/small_parse_table_2114 \ -static/small_parse_table/small_parse_table_2115 \ -static/small_parse_table/small_parse_table_2116 \ -static/small_parse_table/small_parse_table_2117 \ -static/small_parse_table/small_parse_table_2118 \ -static/small_parse_table/small_parse_table_2119 \ -static/small_parse_table/small_parse_table_212 \ -static/small_parse_table/small_parse_table_2120 \ -static/small_parse_table/small_parse_table_2121 \ -static/small_parse_table/small_parse_table_2122 \ -static/small_parse_table/small_parse_table_2123 \ -static/small_parse_table/small_parse_table_2124 \ -static/small_parse_table/small_parse_table_2125 \ -static/small_parse_table/small_parse_table_2126 \ -static/small_parse_table/small_parse_table_2127 \ -static/small_parse_table/small_parse_table_2128 \ -static/small_parse_table/small_parse_table_2129 \ -static/small_parse_table/small_parse_table_213 \ -static/small_parse_table/small_parse_table_2130 \ -static/small_parse_table/small_parse_table_2131 \ -static/small_parse_table/small_parse_table_2132 \ -static/small_parse_table/small_parse_table_2133 \ -static/small_parse_table/small_parse_table_2134 \ -static/small_parse_table/small_parse_table_2135 \ -static/small_parse_table/small_parse_table_2136 \ -static/small_parse_table/small_parse_table_2137 \ -static/small_parse_table/small_parse_table_2138 \ -static/small_parse_table/small_parse_table_2139 \ -static/small_parse_table/small_parse_table_214 \ -static/small_parse_table/small_parse_table_2140 \ -static/small_parse_table/small_parse_table_2141 \ -static/small_parse_table/small_parse_table_2142 \ -static/small_parse_table/small_parse_table_2143 \ -static/small_parse_table/small_parse_table_2144 \ -static/small_parse_table/small_parse_table_2145 \ -static/small_parse_table/small_parse_table_2146 \ -static/small_parse_table/small_parse_table_2147 \ -static/small_parse_table/small_parse_table_2148 \ -static/small_parse_table/small_parse_table_2149 \ -static/small_parse_table/small_parse_table_215 \ -static/small_parse_table/small_parse_table_2150 \ -static/small_parse_table/small_parse_table_2151 \ -static/small_parse_table/small_parse_table_2152 \ -static/small_parse_table/small_parse_table_2153 \ -static/small_parse_table/small_parse_table_2154 \ -static/small_parse_table/small_parse_table_2155 \ -static/small_parse_table/small_parse_table_2156 \ -static/small_parse_table/small_parse_table_2157 \ -static/small_parse_table/small_parse_table_2158 \ -static/small_parse_table/small_parse_table_2159 \ -static/small_parse_table/small_parse_table_216 \ -static/small_parse_table/small_parse_table_2160 \ -static/small_parse_table/small_parse_table_2161 \ -static/small_parse_table/small_parse_table_2162 \ -static/small_parse_table/small_parse_table_2163 \ -static/small_parse_table/small_parse_table_2164 \ -static/small_parse_table/small_parse_table_2165 \ -static/small_parse_table/small_parse_table_2166 \ -static/small_parse_table/small_parse_table_2167 \ -static/small_parse_table/small_parse_table_2168 \ -static/small_parse_table/small_parse_table_2169 \ -static/small_parse_table/small_parse_table_217 \ -static/small_parse_table/small_parse_table_2170 \ -static/small_parse_table/small_parse_table_2171 \ -static/small_parse_table/small_parse_table_2172 \ -static/small_parse_table/small_parse_table_2173 \ -static/small_parse_table/small_parse_table_2174 \ -static/small_parse_table/small_parse_table_2175 \ -static/small_parse_table/small_parse_table_2176 \ -static/small_parse_table/small_parse_table_2177 \ -static/small_parse_table/small_parse_table_2178 \ -static/small_parse_table/small_parse_table_2179 \ -static/small_parse_table/small_parse_table_218 \ -static/small_parse_table/small_parse_table_2180 \ -static/small_parse_table/small_parse_table_2181 \ -static/small_parse_table/small_parse_table_2182 \ -static/small_parse_table/small_parse_table_2183 \ -static/small_parse_table/small_parse_table_2184 \ -static/small_parse_table/small_parse_table_2185 \ -static/small_parse_table/small_parse_table_2186 \ -static/small_parse_table/small_parse_table_2187 \ -static/small_parse_table/small_parse_table_2188 \ -static/small_parse_table/small_parse_table_2189 \ -static/small_parse_table/small_parse_table_219 \ -static/small_parse_table/small_parse_table_2190 \ -static/small_parse_table/small_parse_table_2191 \ -static/small_parse_table/small_parse_table_2192 \ -static/small_parse_table/small_parse_table_2193 \ -static/small_parse_table/small_parse_table_2194 \ -static/small_parse_table/small_parse_table_2195 \ -static/small_parse_table/small_parse_table_2196 \ -static/small_parse_table/small_parse_table_2197 \ -static/small_parse_table/small_parse_table_2198 \ -static/small_parse_table/small_parse_table_2199 \ -static/small_parse_table/small_parse_table_22 \ -static/small_parse_table/small_parse_table_220 \ -static/small_parse_table/small_parse_table_2200 \ -static/small_parse_table/small_parse_table_2201 \ -static/small_parse_table/small_parse_table_2202 \ -static/small_parse_table/small_parse_table_2203 \ -static/small_parse_table/small_parse_table_2204 \ -static/small_parse_table/small_parse_table_2205 \ -static/small_parse_table/small_parse_table_2206 \ -static/small_parse_table/small_parse_table_2207 \ -static/small_parse_table/small_parse_table_2208 \ -static/small_parse_table/small_parse_table_2209 \ -static/small_parse_table/small_parse_table_221 \ -static/small_parse_table/small_parse_table_2210 \ -static/small_parse_table/small_parse_table_2211 \ -static/small_parse_table/small_parse_table_2212 \ -static/small_parse_table/small_parse_table_2213 \ -static/small_parse_table/small_parse_table_2214 \ -static/small_parse_table/small_parse_table_2215 \ -static/small_parse_table/small_parse_table_2216 \ -static/small_parse_table/small_parse_table_2217 \ -static/small_parse_table/small_parse_table_2218 \ -static/small_parse_table/small_parse_table_2219 \ -static/small_parse_table/small_parse_table_222 \ -static/small_parse_table/small_parse_table_2220 \ -static/small_parse_table/small_parse_table_2221 \ -static/small_parse_table/small_parse_table_2222 \ -static/small_parse_table/small_parse_table_2223 \ -static/small_parse_table/small_parse_table_2224 \ -static/small_parse_table/small_parse_table_2225 \ -static/small_parse_table/small_parse_table_2226 \ -static/small_parse_table/small_parse_table_2227 \ -static/small_parse_table/small_parse_table_2228 \ -static/small_parse_table/small_parse_table_2229 \ -static/small_parse_table/small_parse_table_223 \ -static/small_parse_table/small_parse_table_2230 \ -static/small_parse_table/small_parse_table_2231 \ -static/small_parse_table/small_parse_table_2232 \ -static/small_parse_table/small_parse_table_2233 \ -static/small_parse_table/small_parse_table_2234 \ -static/small_parse_table/small_parse_table_2235 \ -static/small_parse_table/small_parse_table_2236 \ -static/small_parse_table/small_parse_table_2237 \ -static/small_parse_table/small_parse_table_2238 \ -static/small_parse_table/small_parse_table_2239 \ -static/small_parse_table/small_parse_table_224 \ -static/small_parse_table/small_parse_table_2240 \ -static/small_parse_table/small_parse_table_2241 \ -static/small_parse_table/small_parse_table_2242 \ -static/small_parse_table/small_parse_table_2243 \ -static/small_parse_table/small_parse_table_2244 \ -static/small_parse_table/small_parse_table_2245 \ -static/small_parse_table/small_parse_table_2246 \ -static/small_parse_table/small_parse_table_2247 \ -static/small_parse_table/small_parse_table_2248 \ -static/small_parse_table/small_parse_table_2249 \ -static/small_parse_table/small_parse_table_225 \ -static/small_parse_table/small_parse_table_2250 \ -static/small_parse_table/small_parse_table_2251 \ -static/small_parse_table/small_parse_table_2252 \ -static/small_parse_table/small_parse_table_2253 \ -static/small_parse_table/small_parse_table_2254 \ -static/small_parse_table/small_parse_table_2255 \ -static/small_parse_table/small_parse_table_2256 \ -static/small_parse_table/small_parse_table_2257 \ -static/small_parse_table/small_parse_table_2258 \ -static/small_parse_table/small_parse_table_2259 \ -static/small_parse_table/small_parse_table_226 \ -static/small_parse_table/small_parse_table_2260 \ -static/small_parse_table/small_parse_table_2261 \ -static/small_parse_table/small_parse_table_2262 \ -static/small_parse_table/small_parse_table_2263 \ -static/small_parse_table/small_parse_table_2264 \ -static/small_parse_table/small_parse_table_2265 \ -static/small_parse_table/small_parse_table_2266 \ -static/small_parse_table/small_parse_table_2267 \ -static/small_parse_table/small_parse_table_2268 \ -static/small_parse_table/small_parse_table_2269 \ -static/small_parse_table/small_parse_table_227 \ -static/small_parse_table/small_parse_table_2270 \ -static/small_parse_table/small_parse_table_2271 \ -static/small_parse_table/small_parse_table_2272 \ -static/small_parse_table/small_parse_table_2273 \ -static/small_parse_table/small_parse_table_2274 \ -static/small_parse_table/small_parse_table_2275 \ -static/small_parse_table/small_parse_table_2276 \ -static/small_parse_table/small_parse_table_2277 \ -static/small_parse_table/small_parse_table_2278 \ -static/small_parse_table/small_parse_table_2279 \ -static/small_parse_table/small_parse_table_228 \ -static/small_parse_table/small_parse_table_2280 \ -static/small_parse_table/small_parse_table_2281 \ -static/small_parse_table/small_parse_table_2282 \ -static/small_parse_table/small_parse_table_2283 \ -static/small_parse_table/small_parse_table_2284 \ -static/small_parse_table/small_parse_table_2285 \ -static/small_parse_table/small_parse_table_2286 \ -static/small_parse_table/small_parse_table_2287 \ -static/small_parse_table/small_parse_table_2288 \ -static/small_parse_table/small_parse_table_2289 \ -static/small_parse_table/small_parse_table_229 \ -static/small_parse_table/small_parse_table_2290 \ -static/small_parse_table/small_parse_table_2291 \ -static/small_parse_table/small_parse_table_2292 \ -static/small_parse_table/small_parse_table_2293 \ -static/small_parse_table/small_parse_table_2294 \ -static/small_parse_table/small_parse_table_2295 \ -static/small_parse_table/small_parse_table_2296 \ -static/small_parse_table/small_parse_table_2297 \ -static/small_parse_table/small_parse_table_2298 \ -static/small_parse_table/small_parse_table_2299 \ -static/small_parse_table/small_parse_table_23 \ -static/small_parse_table/small_parse_table_230 \ -static/small_parse_table/small_parse_table_2300 \ -static/small_parse_table/small_parse_table_2301 \ -static/small_parse_table/small_parse_table_2302 \ -static/small_parse_table/small_parse_table_2303 \ -static/small_parse_table/small_parse_table_2304 \ -static/small_parse_table/small_parse_table_2305 \ -static/small_parse_table/small_parse_table_2306 \ -static/small_parse_table/small_parse_table_2307 \ -static/small_parse_table/small_parse_table_2308 \ -static/small_parse_table/small_parse_table_2309 \ -static/small_parse_table/small_parse_table_231 \ -static/small_parse_table/small_parse_table_2310 \ -static/small_parse_table/small_parse_table_2311 \ -static/small_parse_table/small_parse_table_2312 \ -static/small_parse_table/small_parse_table_2313 \ -static/small_parse_table/small_parse_table_2314 \ -static/small_parse_table/small_parse_table_2315 \ -static/small_parse_table/small_parse_table_2316 \ -static/small_parse_table/small_parse_table_2317 \ -static/small_parse_table/small_parse_table_2318 \ -static/small_parse_table/small_parse_table_2319 \ -static/small_parse_table/small_parse_table_232 \ -static/small_parse_table/small_parse_table_2320 \ -static/small_parse_table/small_parse_table_2321 \ -static/small_parse_table/small_parse_table_2322 \ -static/small_parse_table/small_parse_table_2323 \ -static/small_parse_table/small_parse_table_2324 \ -static/small_parse_table/small_parse_table_2325 \ -static/small_parse_table/small_parse_table_2326 \ -static/small_parse_table/small_parse_table_2327 \ -static/small_parse_table/small_parse_table_2328 \ -static/small_parse_table/small_parse_table_2329 \ -static/small_parse_table/small_parse_table_233 \ -static/small_parse_table/small_parse_table_2330 \ -static/small_parse_table/small_parse_table_2331 \ -static/small_parse_table/small_parse_table_2332 \ -static/small_parse_table/small_parse_table_2333 \ -static/small_parse_table/small_parse_table_2334 \ -static/small_parse_table/small_parse_table_2335 \ -static/small_parse_table/small_parse_table_2336 \ -static/small_parse_table/small_parse_table_2337 \ -static/small_parse_table/small_parse_table_2338 \ -static/small_parse_table/small_parse_table_2339 \ -static/small_parse_table/small_parse_table_234 \ -static/small_parse_table/small_parse_table_2340 \ -static/small_parse_table/small_parse_table_2341 \ -static/small_parse_table/small_parse_table_2342 \ -static/small_parse_table/small_parse_table_2343 \ -static/small_parse_table/small_parse_table_2344 \ -static/small_parse_table/small_parse_table_2345 \ -static/small_parse_table/small_parse_table_2346 \ -static/small_parse_table/small_parse_table_2347 \ -static/small_parse_table/small_parse_table_2348 \ -static/small_parse_table/small_parse_table_2349 \ -static/small_parse_table/small_parse_table_235 \ -static/small_parse_table/small_parse_table_2350 \ -static/small_parse_table/small_parse_table_2351 \ -static/small_parse_table/small_parse_table_2352 \ -static/small_parse_table/small_parse_table_2353 \ -static/small_parse_table/small_parse_table_2354 \ -static/small_parse_table/small_parse_table_2355 \ -static/small_parse_table/small_parse_table_2356 \ -static/small_parse_table/small_parse_table_2357 \ -static/small_parse_table/small_parse_table_2358 \ -static/small_parse_table/small_parse_table_2359 \ -static/small_parse_table/small_parse_table_236 \ -static/small_parse_table/small_parse_table_2360 \ -static/small_parse_table/small_parse_table_2361 \ -static/small_parse_table/small_parse_table_2362 \ -static/small_parse_table/small_parse_table_2363 \ -static/small_parse_table/small_parse_table_2364 \ -static/small_parse_table/small_parse_table_2365 \ -static/small_parse_table/small_parse_table_2366 \ -static/small_parse_table/small_parse_table_2367 \ -static/small_parse_table/small_parse_table_2368 \ -static/small_parse_table/small_parse_table_2369 \ -static/small_parse_table/small_parse_table_237 \ -static/small_parse_table/small_parse_table_2370 \ -static/small_parse_table/small_parse_table_2371 \ -static/small_parse_table/small_parse_table_2372 \ -static/small_parse_table/small_parse_table_2373 \ -static/small_parse_table/small_parse_table_2374 \ -static/small_parse_table/small_parse_table_2375 \ -static/small_parse_table/small_parse_table_2376 \ -static/small_parse_table/small_parse_table_2377 \ -static/small_parse_table/small_parse_table_2378 \ -static/small_parse_table/small_parse_table_2379 \ -static/small_parse_table/small_parse_table_238 \ -static/small_parse_table/small_parse_table_2380 \ -static/small_parse_table/small_parse_table_2381 \ -static/small_parse_table/small_parse_table_2382 \ -static/small_parse_table/small_parse_table_2383 \ -static/small_parse_table/small_parse_table_2384 \ -static/small_parse_table/small_parse_table_2385 \ -static/small_parse_table/small_parse_table_2386 \ -static/small_parse_table/small_parse_table_2387 \ -static/small_parse_table/small_parse_table_2388 \ -static/small_parse_table/small_parse_table_2389 \ -static/small_parse_table/small_parse_table_239 \ -static/small_parse_table/small_parse_table_2390 \ -static/small_parse_table/small_parse_table_2391 \ -static/small_parse_table/small_parse_table_2392 \ -static/small_parse_table/small_parse_table_2393 \ -static/small_parse_table/small_parse_table_2394 \ -static/small_parse_table/small_parse_table_2395 \ -static/small_parse_table/small_parse_table_2396 \ -static/small_parse_table/small_parse_table_2397 \ -static/small_parse_table/small_parse_table_2398 \ -static/small_parse_table/small_parse_table_2399 \ -static/small_parse_table/small_parse_table_24 \ -static/small_parse_table/small_parse_table_240 \ -static/small_parse_table/small_parse_table_2400 \ -static/small_parse_table/small_parse_table_2401 \ -static/small_parse_table/small_parse_table_2402 \ -static/small_parse_table/small_parse_table_2403 \ -static/small_parse_table/small_parse_table_2404 \ -static/small_parse_table/small_parse_table_2405 \ -static/small_parse_table/small_parse_table_2406 \ -static/small_parse_table/small_parse_table_2407 \ -static/small_parse_table/small_parse_table_2408 \ -static/small_parse_table/small_parse_table_2409 \ -static/small_parse_table/small_parse_table_241 \ -static/small_parse_table/small_parse_table_2410 \ -static/small_parse_table/small_parse_table_2411 \ -static/small_parse_table/small_parse_table_2412 \ -static/small_parse_table/small_parse_table_2413 \ -static/small_parse_table/small_parse_table_2414 \ -static/small_parse_table/small_parse_table_2415 \ -static/small_parse_table/small_parse_table_2416 \ -static/small_parse_table/small_parse_table_2417 \ -static/small_parse_table/small_parse_table_2418 \ -static/small_parse_table/small_parse_table_2419 \ -static/small_parse_table/small_parse_table_242 \ -static/small_parse_table/small_parse_table_2420 \ -static/small_parse_table/small_parse_table_2421 \ -static/small_parse_table/small_parse_table_2422 \ -static/small_parse_table/small_parse_table_2423 \ -static/small_parse_table/small_parse_table_2424 \ -static/small_parse_table/small_parse_table_2425 \ -static/small_parse_table/small_parse_table_2426 \ -static/small_parse_table/small_parse_table_2427 \ -static/small_parse_table/small_parse_table_2428 \ -static/small_parse_table/small_parse_table_2429 \ -static/small_parse_table/small_parse_table_243 \ -static/small_parse_table/small_parse_table_2430 \ -static/small_parse_table/small_parse_table_2431 \ -static/small_parse_table/small_parse_table_2432 \ -static/small_parse_table/small_parse_table_2433 \ -static/small_parse_table/small_parse_table_2434 \ -static/small_parse_table/small_parse_table_2435 \ -static/small_parse_table/small_parse_table_2436 \ -static/small_parse_table/small_parse_table_2437 \ -static/small_parse_table/small_parse_table_2438 \ -static/small_parse_table/small_parse_table_2439 \ -static/small_parse_table/small_parse_table_244 \ -static/small_parse_table/small_parse_table_2440 \ -static/small_parse_table/small_parse_table_2441 \ -static/small_parse_table/small_parse_table_2442 \ -static/small_parse_table/small_parse_table_2443 \ -static/small_parse_table/small_parse_table_2444 \ -static/small_parse_table/small_parse_table_2445 \ -static/small_parse_table/small_parse_table_2446 \ -static/small_parse_table/small_parse_table_2447 \ -static/small_parse_table/small_parse_table_2448 \ -static/small_parse_table/small_parse_table_2449 \ -static/small_parse_table/small_parse_table_245 \ -static/small_parse_table/small_parse_table_2450 \ -static/small_parse_table/small_parse_table_2451 \ -static/small_parse_table/small_parse_table_2452 \ -static/small_parse_table/small_parse_table_2453 \ -static/small_parse_table/small_parse_table_2454 \ -static/small_parse_table/small_parse_table_2455 \ -static/small_parse_table/small_parse_table_2456 \ -static/small_parse_table/small_parse_table_2457 \ -static/small_parse_table/small_parse_table_2458 \ -static/small_parse_table/small_parse_table_2459 \ -static/small_parse_table/small_parse_table_246 \ -static/small_parse_table/small_parse_table_2460 \ -static/small_parse_table/small_parse_table_2461 \ -static/small_parse_table/small_parse_table_2462 \ -static/small_parse_table/small_parse_table_2463 \ -static/small_parse_table/small_parse_table_2464 \ -static/small_parse_table/small_parse_table_2465 \ -static/small_parse_table/small_parse_table_2466 \ -static/small_parse_table/small_parse_table_2467 \ -static/small_parse_table/small_parse_table_2468 \ -static/small_parse_table/small_parse_table_2469 \ -static/small_parse_table/small_parse_table_247 \ -static/small_parse_table/small_parse_table_2470 \ -static/small_parse_table/small_parse_table_2471 \ -static/small_parse_table/small_parse_table_2472 \ -static/small_parse_table/small_parse_table_2473 \ -static/small_parse_table/small_parse_table_2474 \ -static/small_parse_table/small_parse_table_2475 \ -static/small_parse_table/small_parse_table_2476 \ -static/small_parse_table/small_parse_table_2477 \ -static/small_parse_table/small_parse_table_2478 \ -static/small_parse_table/small_parse_table_2479 \ -static/small_parse_table/small_parse_table_248 \ -static/small_parse_table/small_parse_table_2480 \ -static/small_parse_table/small_parse_table_2481 \ -static/small_parse_table/small_parse_table_2482 \ -static/small_parse_table/small_parse_table_2483 \ -static/small_parse_table/small_parse_table_2484 \ -static/small_parse_table/small_parse_table_2485 \ -static/small_parse_table/small_parse_table_2486 \ -static/small_parse_table/small_parse_table_2487 \ -static/small_parse_table/small_parse_table_2488 \ -static/small_parse_table/small_parse_table_2489 \ -static/small_parse_table/small_parse_table_249 \ -static/small_parse_table/small_parse_table_2490 \ -static/small_parse_table/small_parse_table_2491 \ -static/small_parse_table/small_parse_table_2492 \ -static/small_parse_table/small_parse_table_2493 \ -static/small_parse_table/small_parse_table_2494 \ -static/small_parse_table/small_parse_table_2495 \ -static/small_parse_table/small_parse_table_2496 \ -static/small_parse_table/small_parse_table_2497 \ -static/small_parse_table/small_parse_table_2498 \ -static/small_parse_table/small_parse_table_2499 \ -static/small_parse_table/small_parse_table_25 \ -static/small_parse_table/small_parse_table_250 \ -static/small_parse_table/small_parse_table_2500 \ -static/small_parse_table/small_parse_table_2501 \ -static/small_parse_table/small_parse_table_2502 \ -static/small_parse_table/small_parse_table_2503 \ -static/small_parse_table/small_parse_table_2504 \ -static/small_parse_table/small_parse_table_2505 \ -static/small_parse_table/small_parse_table_2506 \ -static/small_parse_table/small_parse_table_2507 \ -static/small_parse_table/small_parse_table_2508 \ -static/small_parse_table/small_parse_table_2509 \ -static/small_parse_table/small_parse_table_251 \ -static/small_parse_table/small_parse_table_2510 \ -static/small_parse_table/small_parse_table_2511 \ -static/small_parse_table/small_parse_table_2512 \ -static/small_parse_table/small_parse_table_2513 \ -static/small_parse_table/small_parse_table_2514 \ -static/small_parse_table/small_parse_table_2515 \ -static/small_parse_table/small_parse_table_2516 \ -static/small_parse_table/small_parse_table_2517 \ -static/small_parse_table/small_parse_table_2518 \ -static/small_parse_table/small_parse_table_2519 \ -static/small_parse_table/small_parse_table_252 \ -static/small_parse_table/small_parse_table_2520 \ -static/small_parse_table/small_parse_table_2521 \ -static/small_parse_table/small_parse_table_2522 \ -static/small_parse_table/small_parse_table_2523 \ -static/small_parse_table/small_parse_table_2524 \ -static/small_parse_table/small_parse_table_2525 \ -static/small_parse_table/small_parse_table_2526 \ -static/small_parse_table/small_parse_table_2527 \ -static/small_parse_table/small_parse_table_2528 \ -static/small_parse_table/small_parse_table_2529 \ -static/small_parse_table/small_parse_table_253 \ -static/small_parse_table/small_parse_table_2530 \ -static/small_parse_table/small_parse_table_2531 \ -static/small_parse_table/small_parse_table_2532 \ -static/small_parse_table/small_parse_table_2533 \ -static/small_parse_table/small_parse_table_2534 \ -static/small_parse_table/small_parse_table_2535 \ -static/small_parse_table/small_parse_table_2536 \ -static/small_parse_table/small_parse_table_2537 \ -static/small_parse_table/small_parse_table_2538 \ -static/small_parse_table/small_parse_table_2539 \ -static/small_parse_table/small_parse_table_254 \ -static/small_parse_table/small_parse_table_2540 \ -static/small_parse_table/small_parse_table_2541 \ -static/small_parse_table/small_parse_table_2542 \ -static/small_parse_table/small_parse_table_2543 \ -static/small_parse_table/small_parse_table_2544 \ -static/small_parse_table/small_parse_table_2545 \ -static/small_parse_table/small_parse_table_2546 \ -static/small_parse_table/small_parse_table_2547 \ -static/small_parse_table/small_parse_table_2548 \ -static/small_parse_table/small_parse_table_2549 \ -static/small_parse_table/small_parse_table_255 \ -static/small_parse_table/small_parse_table_2550 \ -static/small_parse_table/small_parse_table_2551 \ -static/small_parse_table/small_parse_table_2552 \ -static/small_parse_table/small_parse_table_2553 \ -static/small_parse_table/small_parse_table_2554 \ -static/small_parse_table/small_parse_table_2555 \ -static/small_parse_table/small_parse_table_2556 \ -static/small_parse_table/small_parse_table_2557 \ -static/small_parse_table/small_parse_table_2558 \ -static/small_parse_table/small_parse_table_2559 \ -static/small_parse_table/small_parse_table_256 \ -static/small_parse_table/small_parse_table_2560 \ -static/small_parse_table/small_parse_table_2561 \ -static/small_parse_table/small_parse_table_2562 \ -static/small_parse_table/small_parse_table_2563 \ -static/small_parse_table/small_parse_table_2564 \ -static/small_parse_table/small_parse_table_2565 \ -static/small_parse_table/small_parse_table_2566 \ -static/small_parse_table/small_parse_table_2567 \ -static/small_parse_table/small_parse_table_2568 \ -static/small_parse_table/small_parse_table_2569 \ -static/small_parse_table/small_parse_table_257 \ -static/small_parse_table/small_parse_table_2570 \ -static/small_parse_table/small_parse_table_2571 \ -static/small_parse_table/small_parse_table_2572 \ -static/small_parse_table/small_parse_table_2573 \ -static/small_parse_table/small_parse_table_2574 \ -static/small_parse_table/small_parse_table_2575 \ -static/small_parse_table/small_parse_table_2576 \ -static/small_parse_table/small_parse_table_2577 \ -static/small_parse_table/small_parse_table_2578 \ -static/small_parse_table/small_parse_table_2579 \ -static/small_parse_table/small_parse_table_258 \ -static/small_parse_table/small_parse_table_2580 \ -static/small_parse_table/small_parse_table_2581 \ -static/small_parse_table/small_parse_table_2582 \ -static/small_parse_table/small_parse_table_2583 \ -static/small_parse_table/small_parse_table_2584 \ -static/small_parse_table/small_parse_table_2585 \ -static/small_parse_table/small_parse_table_2586 \ -static/small_parse_table/small_parse_table_2587 \ -static/small_parse_table/small_parse_table_2588 \ -static/small_parse_table/small_parse_table_2589 \ -static/small_parse_table/small_parse_table_259 \ -static/small_parse_table/small_parse_table_2590 \ -static/small_parse_table/small_parse_table_2591 \ -static/small_parse_table/small_parse_table_2592 \ -static/small_parse_table/small_parse_table_2593 \ -static/small_parse_table/small_parse_table_2594 \ -static/small_parse_table/small_parse_table_2595 \ -static/small_parse_table/small_parse_table_2596 \ -static/small_parse_table/small_parse_table_2597 \ -static/small_parse_table/small_parse_table_2598 \ -static/small_parse_table/small_parse_table_2599 \ -static/small_parse_table/small_parse_table_26 \ -static/small_parse_table/small_parse_table_260 \ -static/small_parse_table/small_parse_table_2600 \ -static/small_parse_table/small_parse_table_2601 \ -static/small_parse_table/small_parse_table_2602 \ -static/small_parse_table/small_parse_table_2603 \ -static/small_parse_table/small_parse_table_2604 \ -static/small_parse_table/small_parse_table_2605 \ -static/small_parse_table/small_parse_table_2606 \ -static/small_parse_table/small_parse_table_2607 \ -static/small_parse_table/small_parse_table_2608 \ -static/small_parse_table/small_parse_table_2609 \ -static/small_parse_table/small_parse_table_261 \ -static/small_parse_table/small_parse_table_2610 \ -static/small_parse_table/small_parse_table_2611 \ -static/small_parse_table/small_parse_table_2612 \ -static/small_parse_table/small_parse_table_2613 \ -static/small_parse_table/small_parse_table_2614 \ -static/small_parse_table/small_parse_table_2615 \ -static/small_parse_table/small_parse_table_2616 \ -static/small_parse_table/small_parse_table_2617 \ -static/small_parse_table/small_parse_table_2618 \ -static/small_parse_table/small_parse_table_2619 \ -static/small_parse_table/small_parse_table_262 \ -static/small_parse_table/small_parse_table_2620 \ -static/small_parse_table/small_parse_table_2621 \ -static/small_parse_table/small_parse_table_2622 \ -static/small_parse_table/small_parse_table_2623 \ -static/small_parse_table/small_parse_table_2624 \ -static/small_parse_table/small_parse_table_2625 \ -static/small_parse_table/small_parse_table_2626 \ -static/small_parse_table/small_parse_table_2627 \ -static/small_parse_table/small_parse_table_2628 \ -static/small_parse_table/small_parse_table_2629 \ -static/small_parse_table/small_parse_table_263 \ -static/small_parse_table/small_parse_table_2630 \ -static/small_parse_table/small_parse_table_2631 \ -static/small_parse_table/small_parse_table_2632 \ -static/small_parse_table/small_parse_table_2633 \ -static/small_parse_table/small_parse_table_2634 \ -static/small_parse_table/small_parse_table_2635 \ -static/small_parse_table/small_parse_table_2636 \ -static/small_parse_table/small_parse_table_2637 \ -static/small_parse_table/small_parse_table_2638 \ -static/small_parse_table/small_parse_table_2639 \ -static/small_parse_table/small_parse_table_264 \ -static/small_parse_table/small_parse_table_2640 \ -static/small_parse_table/small_parse_table_2641 \ -static/small_parse_table/small_parse_table_2642 \ -static/small_parse_table/small_parse_table_2643 \ -static/small_parse_table/small_parse_table_2644 \ -static/small_parse_table/small_parse_table_2645 \ -static/small_parse_table/small_parse_table_2646 \ -static/small_parse_table/small_parse_table_2647 \ -static/small_parse_table/small_parse_table_2648 \ -static/small_parse_table/small_parse_table_2649 \ -static/small_parse_table/small_parse_table_265 \ -static/small_parse_table/small_parse_table_2650 \ -static/small_parse_table/small_parse_table_2651 \ -static/small_parse_table/small_parse_table_2652 \ -static/small_parse_table/small_parse_table_2653 \ -static/small_parse_table/small_parse_table_2654 \ -static/small_parse_table/small_parse_table_2655 \ -static/small_parse_table/small_parse_table_2656 \ -static/small_parse_table/small_parse_table_2657 \ -static/small_parse_table/small_parse_table_2658 \ -static/small_parse_table/small_parse_table_2659 \ -static/small_parse_table/small_parse_table_266 \ -static/small_parse_table/small_parse_table_2660 \ -static/small_parse_table/small_parse_table_2661 \ -static/small_parse_table/small_parse_table_2662 \ -static/small_parse_table/small_parse_table_2663 \ -static/small_parse_table/small_parse_table_2664 \ -static/small_parse_table/small_parse_table_2665 \ -static/small_parse_table/small_parse_table_2666 \ -static/small_parse_table/small_parse_table_2667 \ -static/small_parse_table/small_parse_table_2668 \ -static/small_parse_table/small_parse_table_2669 \ -static/small_parse_table/small_parse_table_267 \ -static/small_parse_table/small_parse_table_2670 \ -static/small_parse_table/small_parse_table_2671 \ -static/small_parse_table/small_parse_table_2672 \ -static/small_parse_table/small_parse_table_2673 \ -static/small_parse_table/small_parse_table_2674 \ -static/small_parse_table/small_parse_table_2675 \ -static/small_parse_table/small_parse_table_2676 \ -static/small_parse_table/small_parse_table_2677 \ -static/small_parse_table/small_parse_table_2678 \ -static/small_parse_table/small_parse_table_2679 \ -static/small_parse_table/small_parse_table_268 \ -static/small_parse_table/small_parse_table_2680 \ -static/small_parse_table/small_parse_table_2681 \ -static/small_parse_table/small_parse_table_2682 \ -static/small_parse_table/small_parse_table_2683 \ -static/small_parse_table/small_parse_table_2684 \ -static/small_parse_table/small_parse_table_2685 \ -static/small_parse_table/small_parse_table_2686 \ -static/small_parse_table/small_parse_table_2687 \ -static/small_parse_table/small_parse_table_2688 \ -static/small_parse_table/small_parse_table_2689 \ -static/small_parse_table/small_parse_table_269 \ -static/small_parse_table/small_parse_table_2690 \ -static/small_parse_table/small_parse_table_2691 \ -static/small_parse_table/small_parse_table_2692 \ -static/small_parse_table/small_parse_table_2693 \ -static/small_parse_table/small_parse_table_2694 \ -static/small_parse_table/small_parse_table_2695 \ -static/small_parse_table/small_parse_table_2696 \ -static/small_parse_table/small_parse_table_2697 \ -static/small_parse_table/small_parse_table_2698 \ -static/small_parse_table/small_parse_table_2699 \ -static/small_parse_table/small_parse_table_27 \ -static/small_parse_table/small_parse_table_270 \ -static/small_parse_table/small_parse_table_2700 \ -static/small_parse_table/small_parse_table_2701 \ -static/small_parse_table/small_parse_table_2702 \ -static/small_parse_table/small_parse_table_2703 \ -static/small_parse_table/small_parse_table_2704 \ -static/small_parse_table/small_parse_table_2705 \ -static/small_parse_table/small_parse_table_2706 \ -static/small_parse_table/small_parse_table_2707 \ -static/small_parse_table/small_parse_table_2708 \ -static/small_parse_table/small_parse_table_2709 \ -static/small_parse_table/small_parse_table_271 \ -static/small_parse_table/small_parse_table_2710 \ -static/small_parse_table/small_parse_table_2711 \ -static/small_parse_table/small_parse_table_2712 \ -static/small_parse_table/small_parse_table_2713 \ -static/small_parse_table/small_parse_table_2714 \ -static/small_parse_table/small_parse_table_2715 \ -static/small_parse_table/small_parse_table_2716 \ -static/small_parse_table/small_parse_table_2717 \ -static/small_parse_table/small_parse_table_2718 \ -static/small_parse_table/small_parse_table_2719 \ -static/small_parse_table/small_parse_table_272 \ -static/small_parse_table/small_parse_table_2720 \ -static/small_parse_table/small_parse_table_2721 \ -static/small_parse_table/small_parse_table_2722 \ -static/small_parse_table/small_parse_table_2723 \ -static/small_parse_table/small_parse_table_2724 \ -static/small_parse_table/small_parse_table_2725 \ -static/small_parse_table/small_parse_table_2726 \ -static/small_parse_table/small_parse_table_2727 \ -static/small_parse_table/small_parse_table_2728 \ -static/small_parse_table/small_parse_table_2729 \ -static/small_parse_table/small_parse_table_273 \ -static/small_parse_table/small_parse_table_2730 \ -static/small_parse_table/small_parse_table_2731 \ -static/small_parse_table/small_parse_table_2732 \ -static/small_parse_table/small_parse_table_2733 \ -static/small_parse_table/small_parse_table_2734 \ -static/small_parse_table/small_parse_table_2735 \ -static/small_parse_table/small_parse_table_2736 \ -static/small_parse_table/small_parse_table_2737 \ -static/small_parse_table/small_parse_table_2738 \ -static/small_parse_table/small_parse_table_2739 \ -static/small_parse_table/small_parse_table_274 \ -static/small_parse_table/small_parse_table_2740 \ -static/small_parse_table/small_parse_table_2741 \ -static/small_parse_table/small_parse_table_2742 \ -static/small_parse_table/small_parse_table_2743 \ -static/small_parse_table/small_parse_table_2744 \ -static/small_parse_table/small_parse_table_2745 \ -static/small_parse_table/small_parse_table_2746 \ -static/small_parse_table/small_parse_table_2747 \ -static/small_parse_table/small_parse_table_2748 \ -static/small_parse_table/small_parse_table_2749 \ -static/small_parse_table/small_parse_table_275 \ -static/small_parse_table/small_parse_table_2750 \ -static/small_parse_table/small_parse_table_2751 \ -static/small_parse_table/small_parse_table_2752 \ -static/small_parse_table/small_parse_table_2753 \ -static/small_parse_table/small_parse_table_2754 \ -static/small_parse_table/small_parse_table_2755 \ -static/small_parse_table/small_parse_table_2756 \ -static/small_parse_table/small_parse_table_2757 \ -static/small_parse_table/small_parse_table_2758 \ -static/small_parse_table/small_parse_table_2759 \ -static/small_parse_table/small_parse_table_276 \ -static/small_parse_table/small_parse_table_2760 \ -static/small_parse_table/small_parse_table_2761 \ -static/small_parse_table/small_parse_table_2762 \ -static/small_parse_table/small_parse_table_2763 \ -static/small_parse_table/small_parse_table_2764 \ -static/small_parse_table/small_parse_table_2765 \ -static/small_parse_table/small_parse_table_2766 \ -static/small_parse_table/small_parse_table_2767 \ -static/small_parse_table/small_parse_table_2768 \ -static/small_parse_table/small_parse_table_2769 \ -static/small_parse_table/small_parse_table_277 \ -static/small_parse_table/small_parse_table_2770 \ -static/small_parse_table/small_parse_table_2771 \ -static/small_parse_table/small_parse_table_2772 \ -static/small_parse_table/small_parse_table_2773 \ -static/small_parse_table/small_parse_table_2774 \ -static/small_parse_table/small_parse_table_2775 \ -static/small_parse_table/small_parse_table_2776 \ -static/small_parse_table/small_parse_table_2777 \ -static/small_parse_table/small_parse_table_2778 \ -static/small_parse_table/small_parse_table_2779 \ -static/small_parse_table/small_parse_table_278 \ -static/small_parse_table/small_parse_table_2780 \ -static/small_parse_table/small_parse_table_2781 \ -static/small_parse_table/small_parse_table_2782 \ -static/small_parse_table/small_parse_table_2783 \ -static/small_parse_table/small_parse_table_2784 \ -static/small_parse_table/small_parse_table_2785 \ -static/small_parse_table/small_parse_table_2786 \ -static/small_parse_table/small_parse_table_2787 \ -static/small_parse_table/small_parse_table_2788 \ -static/small_parse_table/small_parse_table_2789 \ -static/small_parse_table/small_parse_table_279 \ -static/small_parse_table/small_parse_table_2790 \ -static/small_parse_table/small_parse_table_2791 \ -static/small_parse_table/small_parse_table_2792 \ -static/small_parse_table/small_parse_table_2793 \ -static/small_parse_table/small_parse_table_2794 \ -static/small_parse_table/small_parse_table_2795 \ -static/small_parse_table/small_parse_table_2796 \ -static/small_parse_table/small_parse_table_2797 \ -static/small_parse_table/small_parse_table_2798 \ -static/small_parse_table/small_parse_table_2799 \ -static/small_parse_table/small_parse_table_28 \ -static/small_parse_table/small_parse_table_280 \ -static/small_parse_table/small_parse_table_2800 \ -static/small_parse_table/small_parse_table_2801 \ -static/small_parse_table/small_parse_table_2802 \ -static/small_parse_table/small_parse_table_2803 \ -static/small_parse_table/small_parse_table_2804 \ -static/small_parse_table/small_parse_table_2805 \ -static/small_parse_table/small_parse_table_2806 \ -static/small_parse_table/small_parse_table_2807 \ -static/small_parse_table/small_parse_table_2808 \ -static/small_parse_table/small_parse_table_2809 \ -static/small_parse_table/small_parse_table_281 \ -static/small_parse_table/small_parse_table_2810 \ -static/small_parse_table/small_parse_table_2811 \ -static/small_parse_table/small_parse_table_2812 \ -static/small_parse_table/small_parse_table_2813 \ -static/small_parse_table/small_parse_table_2814 \ -static/small_parse_table/small_parse_table_2815 \ -static/small_parse_table/small_parse_table_2816 \ -static/small_parse_table/small_parse_table_2817 \ -static/small_parse_table/small_parse_table_2818 \ -static/small_parse_table/small_parse_table_2819 \ -static/small_parse_table/small_parse_table_282 \ -static/small_parse_table/small_parse_table_2820 \ -static/small_parse_table/small_parse_table_2821 \ -static/small_parse_table/small_parse_table_2822 \ -static/small_parse_table/small_parse_table_2823 \ -static/small_parse_table/small_parse_table_2824 \ -static/small_parse_table/small_parse_table_2825 \ -static/small_parse_table/small_parse_table_2826 \ -static/small_parse_table/small_parse_table_2827 \ -static/small_parse_table/small_parse_table_2828 \ -static/small_parse_table/small_parse_table_2829 \ -static/small_parse_table/small_parse_table_283 \ -static/small_parse_table/small_parse_table_2830 \ -static/small_parse_table/small_parse_table_2831 \ -static/small_parse_table/small_parse_table_2832 \ -static/small_parse_table/small_parse_table_2833 \ -static/small_parse_table/small_parse_table_2834 \ -static/small_parse_table/small_parse_table_2835 \ -static/small_parse_table/small_parse_table_2836 \ -static/small_parse_table/small_parse_table_2837 \ -static/small_parse_table/small_parse_table_2838 \ -static/small_parse_table/small_parse_table_2839 \ -static/small_parse_table/small_parse_table_284 \ -static/small_parse_table/small_parse_table_2840 \ -static/small_parse_table/small_parse_table_2841 \ -static/small_parse_table/small_parse_table_2842 \ -static/small_parse_table/small_parse_table_2843 \ -static/small_parse_table/small_parse_table_2844 \ -static/small_parse_table/small_parse_table_2845 \ -static/small_parse_table/small_parse_table_2846 \ -static/small_parse_table/small_parse_table_2847 \ -static/small_parse_table/small_parse_table_2848 \ -static/small_parse_table/small_parse_table_2849 \ -static/small_parse_table/small_parse_table_285 \ -static/small_parse_table/small_parse_table_2850 \ -static/small_parse_table/small_parse_table_2851 \ -static/small_parse_table/small_parse_table_2852 \ -static/small_parse_table/small_parse_table_2853 \ -static/small_parse_table/small_parse_table_2854 \ -static/small_parse_table/small_parse_table_2855 \ -static/small_parse_table/small_parse_table_2856 \ -static/small_parse_table/small_parse_table_2857 \ -static/small_parse_table/small_parse_table_2858 \ -static/small_parse_table/small_parse_table_2859 \ -static/small_parse_table/small_parse_table_286 \ -static/small_parse_table/small_parse_table_2860 \ -static/small_parse_table/small_parse_table_2861 \ -static/small_parse_table/small_parse_table_2862 \ -static/small_parse_table/small_parse_table_2863 \ -static/small_parse_table/small_parse_table_2864 \ -static/small_parse_table/small_parse_table_2865 \ -static/small_parse_table/small_parse_table_2866 \ -static/small_parse_table/small_parse_table_2867 \ -static/small_parse_table/small_parse_table_2868 \ -static/small_parse_table/small_parse_table_2869 \ -static/small_parse_table/small_parse_table_287 \ -static/small_parse_table/small_parse_table_2870 \ -static/small_parse_table/small_parse_table_2871 \ -static/small_parse_table/small_parse_table_2872 \ -static/small_parse_table/small_parse_table_2873 \ -static/small_parse_table/small_parse_table_2874 \ -static/small_parse_table/small_parse_table_2875 \ -static/small_parse_table/small_parse_table_2876 \ -static/small_parse_table/small_parse_table_2877 \ -static/small_parse_table/small_parse_table_2878 \ -static/small_parse_table/small_parse_table_2879 \ -static/small_parse_table/small_parse_table_288 \ -static/small_parse_table/small_parse_table_2880 \ -static/small_parse_table/small_parse_table_2881 \ -static/small_parse_table/small_parse_table_2882 \ -static/small_parse_table/small_parse_table_2883 \ -static/small_parse_table/small_parse_table_2884 \ -static/small_parse_table/small_parse_table_2885 \ -static/small_parse_table/small_parse_table_2886 \ -static/small_parse_table/small_parse_table_2887 \ -static/small_parse_table/small_parse_table_2888 \ -static/small_parse_table/small_parse_table_2889 \ -static/small_parse_table/small_parse_table_289 \ -static/small_parse_table/small_parse_table_2890 \ -static/small_parse_table/small_parse_table_2891 \ -static/small_parse_table/small_parse_table_2892 \ -static/small_parse_table/small_parse_table_2893 \ -static/small_parse_table/small_parse_table_2894 \ -static/small_parse_table/small_parse_table_2895 \ -static/small_parse_table/small_parse_table_2896 \ -static/small_parse_table/small_parse_table_2897 \ -static/small_parse_table/small_parse_table_2898 \ -static/small_parse_table/small_parse_table_2899 \ -static/small_parse_table/small_parse_table_29 \ -static/small_parse_table/small_parse_table_290 \ -static/small_parse_table/small_parse_table_2900 \ -static/small_parse_table/small_parse_table_2901 \ -static/small_parse_table/small_parse_table_2902 \ -static/small_parse_table/small_parse_table_2903 \ -static/small_parse_table/small_parse_table_2904 \ -static/small_parse_table/small_parse_table_2905 \ -static/small_parse_table/small_parse_table_2906 \ -static/small_parse_table/small_parse_table_2907 \ -static/small_parse_table/small_parse_table_2908 \ -static/small_parse_table/small_parse_table_2909 \ -static/small_parse_table/small_parse_table_291 \ -static/small_parse_table/small_parse_table_2910 \ -static/small_parse_table/small_parse_table_2911 \ -static/small_parse_table/small_parse_table_2912 \ -static/small_parse_table/small_parse_table_2913 \ -static/small_parse_table/small_parse_table_2914 \ -static/small_parse_table/small_parse_table_2915 \ -static/small_parse_table/small_parse_table_2916 \ -static/small_parse_table/small_parse_table_2917 \ -static/small_parse_table/small_parse_table_2918 \ -static/small_parse_table/small_parse_table_2919 \ -static/small_parse_table/small_parse_table_292 \ -static/small_parse_table/small_parse_table_2920 \ -static/small_parse_table/small_parse_table_2921 \ -static/small_parse_table/small_parse_table_2922 \ -static/small_parse_table/small_parse_table_2923 \ -static/small_parse_table/small_parse_table_2924 \ -static/small_parse_table/small_parse_table_2925 \ -static/small_parse_table/small_parse_table_2926 \ -static/small_parse_table/small_parse_table_2927 \ -static/small_parse_table/small_parse_table_2928 \ -static/small_parse_table/small_parse_table_2929 \ -static/small_parse_table/small_parse_table_293 \ -static/small_parse_table/small_parse_table_2930 \ -static/small_parse_table/small_parse_table_2931 \ -static/small_parse_table/small_parse_table_2932 \ -static/small_parse_table/small_parse_table_2933 \ -static/small_parse_table/small_parse_table_2934 \ -static/small_parse_table/small_parse_table_2935 \ -static/small_parse_table/small_parse_table_2936 \ -static/small_parse_table/small_parse_table_2937 \ -static/small_parse_table/small_parse_table_2938 \ -static/small_parse_table/small_parse_table_2939 \ -static/small_parse_table/small_parse_table_294 \ -static/small_parse_table/small_parse_table_2940 \ -static/small_parse_table/small_parse_table_2941 \ -static/small_parse_table/small_parse_table_2942 \ -static/small_parse_table/small_parse_table_2943 \ -static/small_parse_table/small_parse_table_2944 \ -static/small_parse_table/small_parse_table_2945 \ -static/small_parse_table/small_parse_table_2946 \ -static/small_parse_table/small_parse_table_2947 \ -static/small_parse_table/small_parse_table_2948 \ -static/small_parse_table/small_parse_table_2949 \ -static/small_parse_table/small_parse_table_295 \ -static/small_parse_table/small_parse_table_2950 \ -static/small_parse_table/small_parse_table_2951 \ -static/small_parse_table/small_parse_table_2952 \ -static/small_parse_table/small_parse_table_2953 \ -static/small_parse_table/small_parse_table_2954 \ -static/small_parse_table/small_parse_table_2955 \ -static/small_parse_table/small_parse_table_2956 \ -static/small_parse_table/small_parse_table_2957 \ -static/small_parse_table/small_parse_table_2958 \ -static/small_parse_table/small_parse_table_2959 \ -static/small_parse_table/small_parse_table_296 \ -static/small_parse_table/small_parse_table_2960 \ -static/small_parse_table/small_parse_table_2961 \ -static/small_parse_table/small_parse_table_2962 \ -static/small_parse_table/small_parse_table_2963 \ -static/small_parse_table/small_parse_table_2964 \ -static/small_parse_table/small_parse_table_2965 \ -static/small_parse_table/small_parse_table_2966 \ -static/small_parse_table/small_parse_table_2967 \ -static/small_parse_table/small_parse_table_2968 \ -static/small_parse_table/small_parse_table_2969 \ -static/small_parse_table/small_parse_table_297 \ -static/small_parse_table/small_parse_table_2970 \ -static/small_parse_table/small_parse_table_2971 \ -static/small_parse_table/small_parse_table_2972 \ -static/small_parse_table/small_parse_table_2973 \ -static/small_parse_table/small_parse_table_2974 \ -static/small_parse_table/small_parse_table_2975 \ -static/small_parse_table/small_parse_table_2976 \ -static/small_parse_table/small_parse_table_2977 \ -static/small_parse_table/small_parse_table_2978 \ -static/small_parse_table/small_parse_table_2979 \ -static/small_parse_table/small_parse_table_298 \ -static/small_parse_table/small_parse_table_2980 \ -static/small_parse_table/small_parse_table_2981 \ -static/small_parse_table/small_parse_table_2982 \ -static/small_parse_table/small_parse_table_2983 \ -static/small_parse_table/small_parse_table_2984 \ -static/small_parse_table/small_parse_table_2985 \ -static/small_parse_table/small_parse_table_2986 \ -static/small_parse_table/small_parse_table_2987 \ -static/small_parse_table/small_parse_table_2988 \ -static/small_parse_table/small_parse_table_2989 \ -static/small_parse_table/small_parse_table_299 \ -static/small_parse_table/small_parse_table_2990 \ -static/small_parse_table/small_parse_table_2991 \ -static/small_parse_table/small_parse_table_2992 \ -static/small_parse_table/small_parse_table_2993 \ -static/small_parse_table/small_parse_table_2994 \ -static/small_parse_table/small_parse_table_2995 \ -static/small_parse_table/small_parse_table_2996 \ -static/small_parse_table/small_parse_table_2997 \ -static/small_parse_table/small_parse_table_2998 \ -static/small_parse_table/small_parse_table_2999 \ -static/small_parse_table/small_parse_table_3 \ -static/small_parse_table/small_parse_table_30 \ -static/small_parse_table/small_parse_table_300 \ -static/small_parse_table/small_parse_table_3000 \ -static/small_parse_table/small_parse_table_3001 \ -static/small_parse_table/small_parse_table_3002 \ -static/small_parse_table/small_parse_table_3003 \ -static/small_parse_table/small_parse_table_3004 \ -static/small_parse_table/small_parse_table_3005 \ -static/small_parse_table/small_parse_table_3006 \ -static/small_parse_table/small_parse_table_3007 \ -static/small_parse_table/small_parse_table_3008 \ -static/small_parse_table/small_parse_table_3009 \ -static/small_parse_table/small_parse_table_301 \ -static/small_parse_table/small_parse_table_3010 \ -static/small_parse_table/small_parse_table_3011 \ -static/small_parse_table/small_parse_table_3012 \ -static/small_parse_table/small_parse_table_3013 \ -static/small_parse_table/small_parse_table_3014 \ -static/small_parse_table/small_parse_table_3015 \ -static/small_parse_table/small_parse_table_3016 \ -static/small_parse_table/small_parse_table_3017 \ -static/small_parse_table/small_parse_table_3018 \ -static/small_parse_table/small_parse_table_3019 \ -static/small_parse_table/small_parse_table_302 \ -static/small_parse_table/small_parse_table_3020 \ -static/small_parse_table/small_parse_table_3021 \ -static/small_parse_table/small_parse_table_3022 \ -static/small_parse_table/small_parse_table_3023 \ -static/small_parse_table/small_parse_table_3024 \ -static/small_parse_table/small_parse_table_3025 \ -static/small_parse_table/small_parse_table_3026 \ -static/small_parse_table/small_parse_table_3027 \ -static/small_parse_table/small_parse_table_3028 \ -static/small_parse_table/small_parse_table_3029 \ -static/small_parse_table/small_parse_table_303 \ -static/small_parse_table/small_parse_table_3030 \ -static/small_parse_table/small_parse_table_3031 \ -static/small_parse_table/small_parse_table_3032 \ -static/small_parse_table/small_parse_table_3033 \ -static/small_parse_table/small_parse_table_3034 \ -static/small_parse_table/small_parse_table_3035 \ -static/small_parse_table/small_parse_table_3036 \ -static/small_parse_table/small_parse_table_3037 \ -static/small_parse_table/small_parse_table_3038 \ -static/small_parse_table/small_parse_table_3039 \ -static/small_parse_table/small_parse_table_304 \ -static/small_parse_table/small_parse_table_3040 \ -static/small_parse_table/small_parse_table_3041 \ -static/small_parse_table/small_parse_table_3042 \ -static/small_parse_table/small_parse_table_3043 \ -static/small_parse_table/small_parse_table_3044 \ -static/small_parse_table/small_parse_table_3045 \ -static/small_parse_table/small_parse_table_3046 \ -static/small_parse_table/small_parse_table_3047 \ -static/small_parse_table/small_parse_table_3048 \ -static/small_parse_table/small_parse_table_3049 \ -static/small_parse_table/small_parse_table_305 \ -static/small_parse_table/small_parse_table_3050 \ -static/small_parse_table/small_parse_table_3051 \ -static/small_parse_table/small_parse_table_3052 \ -static/small_parse_table/small_parse_table_3053 \ -static/small_parse_table/small_parse_table_3054 \ -static/small_parse_table/small_parse_table_3055 \ -static/small_parse_table/small_parse_table_3056 \ -static/small_parse_table/small_parse_table_3057 \ -static/small_parse_table/small_parse_table_3058 \ -static/small_parse_table/small_parse_table_3059 \ -static/small_parse_table/small_parse_table_306 \ -static/small_parse_table/small_parse_table_3060 \ -static/small_parse_table/small_parse_table_3061 \ -static/small_parse_table/small_parse_table_3062 \ -static/small_parse_table/small_parse_table_3063 \ -static/small_parse_table/small_parse_table_3064 \ -static/small_parse_table/small_parse_table_3065 \ -static/small_parse_table/small_parse_table_3066 \ -static/small_parse_table/small_parse_table_3067 \ -static/small_parse_table/small_parse_table_3068 \ -static/small_parse_table/small_parse_table_3069 \ -static/small_parse_table/small_parse_table_307 \ -static/small_parse_table/small_parse_table_3070 \ -static/small_parse_table/small_parse_table_3071 \ -static/small_parse_table/small_parse_table_3072 \ -static/small_parse_table/small_parse_table_3073 \ -static/small_parse_table/small_parse_table_3074 \ -static/small_parse_table/small_parse_table_3075 \ -static/small_parse_table/small_parse_table_3076 \ -static/small_parse_table/small_parse_table_3077 \ -static/small_parse_table/small_parse_table_3078 \ -static/small_parse_table/small_parse_table_3079 \ -static/small_parse_table/small_parse_table_308 \ -static/small_parse_table/small_parse_table_3080 \ -static/small_parse_table/small_parse_table_3081 \ -static/small_parse_table/small_parse_table_3082 \ -static/small_parse_table/small_parse_table_3083 \ -static/small_parse_table/small_parse_table_3084 \ -static/small_parse_table/small_parse_table_3085 \ -static/small_parse_table/small_parse_table_3086 \ -static/small_parse_table/small_parse_table_3087 \ -static/small_parse_table/small_parse_table_3088 \ -static/small_parse_table/small_parse_table_3089 \ -static/small_parse_table/small_parse_table_309 \ -static/small_parse_table/small_parse_table_3090 \ -static/small_parse_table/small_parse_table_3091 \ -static/small_parse_table/small_parse_table_3092 \ -static/small_parse_table/small_parse_table_3093 \ -static/small_parse_table/small_parse_table_3094 \ -static/small_parse_table/small_parse_table_3095 \ -static/small_parse_table/small_parse_table_3096 \ -static/small_parse_table/small_parse_table_3097 \ -static/small_parse_table/small_parse_table_3098 \ -static/small_parse_table/small_parse_table_3099 \ -static/small_parse_table/small_parse_table_31 \ -static/small_parse_table/small_parse_table_310 \ -static/small_parse_table/small_parse_table_3100 \ -static/small_parse_table/small_parse_table_3101 \ -static/small_parse_table/small_parse_table_3102 \ -static/small_parse_table/small_parse_table_3103 \ -static/small_parse_table/small_parse_table_3104 \ -static/small_parse_table/small_parse_table_3105 \ -static/small_parse_table/small_parse_table_3106 \ -static/small_parse_table/small_parse_table_3107 \ -static/small_parse_table/small_parse_table_3108 \ -static/small_parse_table/small_parse_table_3109 \ -static/small_parse_table/small_parse_table_311 \ -static/small_parse_table/small_parse_table_3110 \ -static/small_parse_table/small_parse_table_3111 \ -static/small_parse_table/small_parse_table_3112 \ -static/small_parse_table/small_parse_table_3113 \ -static/small_parse_table/small_parse_table_3114 \ -static/small_parse_table/small_parse_table_3115 \ -static/small_parse_table/small_parse_table_3116 \ -static/small_parse_table/small_parse_table_3117 \ -static/small_parse_table/small_parse_table_3118 \ -static/small_parse_table/small_parse_table_3119 \ -static/small_parse_table/small_parse_table_312 \ -static/small_parse_table/small_parse_table_3120 \ -static/small_parse_table/small_parse_table_3121 \ -static/small_parse_table/small_parse_table_3122 \ -static/small_parse_table/small_parse_table_3123 \ -static/small_parse_table/small_parse_table_3124 \ -static/small_parse_table/small_parse_table_3125 \ -static/small_parse_table/small_parse_table_3126 \ -static/small_parse_table/small_parse_table_3127 \ -static/small_parse_table/small_parse_table_3128 \ -static/small_parse_table/small_parse_table_3129 \ -static/small_parse_table/small_parse_table_313 \ -static/small_parse_table/small_parse_table_3130 \ -static/small_parse_table/small_parse_table_3131 \ -static/small_parse_table/small_parse_table_3132 \ -static/small_parse_table/small_parse_table_3133 \ -static/small_parse_table/small_parse_table_3134 \ -static/small_parse_table/small_parse_table_3135 \ -static/small_parse_table/small_parse_table_3136 \ -static/small_parse_table/small_parse_table_3137 \ -static/small_parse_table/small_parse_table_3138 \ -static/small_parse_table/small_parse_table_3139 \ -static/small_parse_table/small_parse_table_314 \ -static/small_parse_table/small_parse_table_3140 \ -static/small_parse_table/small_parse_table_3141 \ -static/small_parse_table/small_parse_table_3142 \ -static/small_parse_table/small_parse_table_3143 \ -static/small_parse_table/small_parse_table_3144 \ -static/small_parse_table/small_parse_table_3145 \ -static/small_parse_table/small_parse_table_3146 \ -static/small_parse_table/small_parse_table_3147 \ -static/small_parse_table/small_parse_table_3148 \ -static/small_parse_table/small_parse_table_3149 \ -static/small_parse_table/small_parse_table_315 \ -static/small_parse_table/small_parse_table_3150 \ -static/small_parse_table/small_parse_table_3151 \ -static/small_parse_table/small_parse_table_3152 \ -static/small_parse_table/small_parse_table_3153 \ -static/small_parse_table/small_parse_table_3154 \ -static/small_parse_table/small_parse_table_3155 \ -static/small_parse_table/small_parse_table_3156 \ -static/small_parse_table/small_parse_table_3157 \ -static/small_parse_table/small_parse_table_3158 \ -static/small_parse_table/small_parse_table_3159 \ -static/small_parse_table/small_parse_table_316 \ -static/small_parse_table/small_parse_table_3160 \ -static/small_parse_table/small_parse_table_3161 \ -static/small_parse_table/small_parse_table_3162 \ -static/small_parse_table/small_parse_table_3163 \ -static/small_parse_table/small_parse_table_3164 \ -static/small_parse_table/small_parse_table_3165 \ -static/small_parse_table/small_parse_table_3166 \ -static/small_parse_table/small_parse_table_3167 \ -static/small_parse_table/small_parse_table_3168 \ -static/small_parse_table/small_parse_table_3169 \ -static/small_parse_table/small_parse_table_317 \ -static/small_parse_table/small_parse_table_3170 \ -static/small_parse_table/small_parse_table_3171 \ -static/small_parse_table/small_parse_table_3172 \ -static/small_parse_table/small_parse_table_3173 \ -static/small_parse_table/small_parse_table_3174 \ -static/small_parse_table/small_parse_table_3175 \ -static/small_parse_table/small_parse_table_3176 \ -static/small_parse_table/small_parse_table_3177 \ -static/small_parse_table/small_parse_table_3178 \ -static/small_parse_table/small_parse_table_3179 \ -static/small_parse_table/small_parse_table_318 \ -static/small_parse_table/small_parse_table_3180 \ -static/small_parse_table/small_parse_table_3181 \ -static/small_parse_table/small_parse_table_3182 \ -static/small_parse_table/small_parse_table_3183 \ -static/small_parse_table/small_parse_table_3184 \ -static/small_parse_table/small_parse_table_3185 \ -static/small_parse_table/small_parse_table_3186 \ -static/small_parse_table/small_parse_table_3187 \ -static/small_parse_table/small_parse_table_3188 \ -static/small_parse_table/small_parse_table_3189 \ -static/small_parse_table/small_parse_table_319 \ -static/small_parse_table/small_parse_table_3190 \ -static/small_parse_table/small_parse_table_3191 \ -static/small_parse_table/small_parse_table_3192 \ -static/small_parse_table/small_parse_table_3193 \ -static/small_parse_table/small_parse_table_3194 \ -static/small_parse_table/small_parse_table_3195 \ -static/small_parse_table/small_parse_table_3196 \ -static/small_parse_table/small_parse_table_3197 \ -static/small_parse_table/small_parse_table_3198 \ -static/small_parse_table/small_parse_table_3199 \ -static/small_parse_table/small_parse_table_32 \ -static/small_parse_table/small_parse_table_320 \ -static/small_parse_table/small_parse_table_3200 \ -static/small_parse_table/small_parse_table_3201 \ -static/small_parse_table/small_parse_table_3202 \ -static/small_parse_table/small_parse_table_3203 \ -static/small_parse_table/small_parse_table_3204 \ -static/small_parse_table/small_parse_table_3205 \ -static/small_parse_table/small_parse_table_3206 \ -static/small_parse_table/small_parse_table_3207 \ -static/small_parse_table/small_parse_table_3208 \ -static/small_parse_table/small_parse_table_3209 \ -static/small_parse_table/small_parse_table_321 \ -static/small_parse_table/small_parse_table_3210 \ -static/small_parse_table/small_parse_table_3211 \ -static/small_parse_table/small_parse_table_3212 \ -static/small_parse_table/small_parse_table_3213 \ -static/small_parse_table/small_parse_table_3214 \ -static/small_parse_table/small_parse_table_3215 \ -static/small_parse_table/small_parse_table_3216 \ -static/small_parse_table/small_parse_table_3217 \ -static/small_parse_table/small_parse_table_3218 \ -static/small_parse_table/small_parse_table_3219 \ -static/small_parse_table/small_parse_table_322 \ -static/small_parse_table/small_parse_table_3220 \ -static/small_parse_table/small_parse_table_3221 \ -static/small_parse_table/small_parse_table_3222 \ -static/small_parse_table/small_parse_table_3223 \ -static/small_parse_table/small_parse_table_3224 \ -static/small_parse_table/small_parse_table_3225 \ -static/small_parse_table/small_parse_table_3226 \ -static/small_parse_table/small_parse_table_3227 \ -static/small_parse_table/small_parse_table_3228 \ -static/small_parse_table/small_parse_table_3229 \ -static/small_parse_table/small_parse_table_323 \ -static/small_parse_table/small_parse_table_3230 \ -static/small_parse_table/small_parse_table_3231 \ -static/small_parse_table/small_parse_table_3232 \ -static/small_parse_table/small_parse_table_3233 \ -static/small_parse_table/small_parse_table_3234 \ -static/small_parse_table/small_parse_table_3235 \ -static/small_parse_table/small_parse_table_3236 \ -static/small_parse_table/small_parse_table_3237 \ -static/small_parse_table/small_parse_table_3238 \ -static/small_parse_table/small_parse_table_3239 \ -static/small_parse_table/small_parse_table_324 \ -static/small_parse_table/small_parse_table_3240 \ -static/small_parse_table/small_parse_table_3241 \ -static/small_parse_table/small_parse_table_3242 \ -static/small_parse_table/small_parse_table_3243 \ -static/small_parse_table/small_parse_table_325 \ -static/small_parse_table/small_parse_table_326 \ -static/small_parse_table/small_parse_table_327 \ -static/small_parse_table/small_parse_table_328 \ -static/small_parse_table/small_parse_table_329 \ -static/small_parse_table/small_parse_table_33 \ -static/small_parse_table/small_parse_table_330 \ -static/small_parse_table/small_parse_table_331 \ -static/small_parse_table/small_parse_table_332 \ -static/small_parse_table/small_parse_table_333 \ -static/small_parse_table/small_parse_table_334 \ -static/small_parse_table/small_parse_table_335 \ -static/small_parse_table/small_parse_table_336 \ -static/small_parse_table/small_parse_table_337 \ -static/small_parse_table/small_parse_table_338 \ -static/small_parse_table/small_parse_table_339 \ -static/small_parse_table/small_parse_table_34 \ -static/small_parse_table/small_parse_table_340 \ -static/small_parse_table/small_parse_table_341 \ -static/small_parse_table/small_parse_table_342 \ -static/small_parse_table/small_parse_table_343 \ -static/small_parse_table/small_parse_table_344 \ -static/small_parse_table/small_parse_table_345 \ -static/small_parse_table/small_parse_table_346 \ -static/small_parse_table/small_parse_table_347 \ -static/small_parse_table/small_parse_table_348 \ -static/small_parse_table/small_parse_table_349 \ -static/small_parse_table/small_parse_table_35 \ -static/small_parse_table/small_parse_table_350 \ -static/small_parse_table/small_parse_table_351 \ -static/small_parse_table/small_parse_table_352 \ -static/small_parse_table/small_parse_table_353 \ -static/small_parse_table/small_parse_table_354 \ -static/small_parse_table/small_parse_table_355 \ -static/small_parse_table/small_parse_table_356 \ -static/small_parse_table/small_parse_table_357 \ -static/small_parse_table/small_parse_table_358 \ -static/small_parse_table/small_parse_table_359 \ -static/small_parse_table/small_parse_table_36 \ -static/small_parse_table/small_parse_table_360 \ -static/small_parse_table/small_parse_table_361 \ -static/small_parse_table/small_parse_table_362 \ -static/small_parse_table/small_parse_table_363 \ -static/small_parse_table/small_parse_table_364 \ -static/small_parse_table/small_parse_table_365 \ -static/small_parse_table/small_parse_table_366 \ -static/small_parse_table/small_parse_table_367 \ -static/small_parse_table/small_parse_table_368 \ -static/small_parse_table/small_parse_table_369 \ -static/small_parse_table/small_parse_table_37 \ -static/small_parse_table/small_parse_table_370 \ -static/small_parse_table/small_parse_table_371 \ -static/small_parse_table/small_parse_table_372 \ -static/small_parse_table/small_parse_table_373 \ -static/small_parse_table/small_parse_table_374 \ -static/small_parse_table/small_parse_table_375 \ -static/small_parse_table/small_parse_table_376 \ -static/small_parse_table/small_parse_table_377 \ -static/small_parse_table/small_parse_table_378 \ -static/small_parse_table/small_parse_table_379 \ -static/small_parse_table/small_parse_table_38 \ -static/small_parse_table/small_parse_table_380 \ -static/small_parse_table/small_parse_table_381 \ -static/small_parse_table/small_parse_table_382 \ -static/small_parse_table/small_parse_table_383 \ -static/small_parse_table/small_parse_table_384 \ -static/small_parse_table/small_parse_table_385 \ -static/small_parse_table/small_parse_table_386 \ -static/small_parse_table/small_parse_table_387 \ -static/small_parse_table/small_parse_table_388 \ -static/small_parse_table/small_parse_table_389 \ -static/small_parse_table/small_parse_table_39 \ -static/small_parse_table/small_parse_table_390 \ -static/small_parse_table/small_parse_table_391 \ -static/small_parse_table/small_parse_table_392 \ -static/small_parse_table/small_parse_table_393 \ -static/small_parse_table/small_parse_table_394 \ -static/small_parse_table/small_parse_table_395 \ -static/small_parse_table/small_parse_table_396 \ -static/small_parse_table/small_parse_table_397 \ -static/small_parse_table/small_parse_table_398 \ -static/small_parse_table/small_parse_table_399 \ -static/small_parse_table/small_parse_table_4 \ -static/small_parse_table/small_parse_table_40 \ -static/small_parse_table/small_parse_table_400 \ -static/small_parse_table/small_parse_table_401 \ -static/small_parse_table/small_parse_table_402 \ -static/small_parse_table/small_parse_table_403 \ -static/small_parse_table/small_parse_table_404 \ -static/small_parse_table/small_parse_table_405 \ -static/small_parse_table/small_parse_table_406 \ -static/small_parse_table/small_parse_table_407 \ -static/small_parse_table/small_parse_table_408 \ -static/small_parse_table/small_parse_table_409 \ -static/small_parse_table/small_parse_table_41 \ -static/small_parse_table/small_parse_table_410 \ -static/small_parse_table/small_parse_table_411 \ -static/small_parse_table/small_parse_table_412 \ -static/small_parse_table/small_parse_table_413 \ -static/small_parse_table/small_parse_table_414 \ -static/small_parse_table/small_parse_table_415 \ -static/small_parse_table/small_parse_table_416 \ -static/small_parse_table/small_parse_table_417 \ -static/small_parse_table/small_parse_table_418 \ -static/small_parse_table/small_parse_table_419 \ -static/small_parse_table/small_parse_table_42 \ -static/small_parse_table/small_parse_table_420 \ -static/small_parse_table/small_parse_table_421 \ -static/small_parse_table/small_parse_table_422 \ -static/small_parse_table/small_parse_table_423 \ -static/small_parse_table/small_parse_table_424 \ -static/small_parse_table/small_parse_table_425 \ -static/small_parse_table/small_parse_table_426 \ -static/small_parse_table/small_parse_table_427 \ -static/small_parse_table/small_parse_table_428 \ -static/small_parse_table/small_parse_table_429 \ -static/small_parse_table/small_parse_table_43 \ -static/small_parse_table/small_parse_table_430 \ -static/small_parse_table/small_parse_table_431 \ -static/small_parse_table/small_parse_table_432 \ -static/small_parse_table/small_parse_table_433 \ -static/small_parse_table/small_parse_table_434 \ -static/small_parse_table/small_parse_table_435 \ -static/small_parse_table/small_parse_table_436 \ -static/small_parse_table/small_parse_table_437 \ -static/small_parse_table/small_parse_table_438 \ -static/small_parse_table/small_parse_table_439 \ -static/small_parse_table/small_parse_table_44 \ -static/small_parse_table/small_parse_table_440 \ -static/small_parse_table/small_parse_table_441 \ -static/small_parse_table/small_parse_table_442 \ -static/small_parse_table/small_parse_table_443 \ -static/small_parse_table/small_parse_table_444 \ -static/small_parse_table/small_parse_table_445 \ -static/small_parse_table/small_parse_table_446 \ -static/small_parse_table/small_parse_table_447 \ -static/small_parse_table/small_parse_table_448 \ -static/small_parse_table/small_parse_table_449 \ -static/small_parse_table/small_parse_table_45 \ -static/small_parse_table/small_parse_table_450 \ -static/small_parse_table/small_parse_table_451 \ -static/small_parse_table/small_parse_table_452 \ -static/small_parse_table/small_parse_table_453 \ -static/small_parse_table/small_parse_table_454 \ -static/small_parse_table/small_parse_table_455 \ -static/small_parse_table/small_parse_table_456 \ -static/small_parse_table/small_parse_table_457 \ -static/small_parse_table/small_parse_table_458 \ -static/small_parse_table/small_parse_table_459 \ -static/small_parse_table/small_parse_table_46 \ -static/small_parse_table/small_parse_table_460 \ -static/small_parse_table/small_parse_table_461 \ -static/small_parse_table/small_parse_table_462 \ -static/small_parse_table/small_parse_table_463 \ -static/small_parse_table/small_parse_table_464 \ -static/small_parse_table/small_parse_table_465 \ -static/small_parse_table/small_parse_table_466 \ -static/small_parse_table/small_parse_table_467 \ -static/small_parse_table/small_parse_table_468 \ -static/small_parse_table/small_parse_table_469 \ -static/small_parse_table/small_parse_table_47 \ -static/small_parse_table/small_parse_table_470 \ -static/small_parse_table/small_parse_table_471 \ -static/small_parse_table/small_parse_table_472 \ -static/small_parse_table/small_parse_table_473 \ -static/small_parse_table/small_parse_table_474 \ -static/small_parse_table/small_parse_table_475 \ -static/small_parse_table/small_parse_table_476 \ -static/small_parse_table/small_parse_table_477 \ -static/small_parse_table/small_parse_table_478 \ -static/small_parse_table/small_parse_table_479 \ -static/small_parse_table/small_parse_table_48 \ -static/small_parse_table/small_parse_table_480 \ -static/small_parse_table/small_parse_table_481 \ -static/small_parse_table/small_parse_table_482 \ -static/small_parse_table/small_parse_table_483 \ -static/small_parse_table/small_parse_table_484 \ -static/small_parse_table/small_parse_table_485 \ -static/small_parse_table/small_parse_table_486 \ -static/small_parse_table/small_parse_table_487 \ -static/small_parse_table/small_parse_table_488 \ -static/small_parse_table/small_parse_table_489 \ -static/small_parse_table/small_parse_table_49 \ -static/small_parse_table/small_parse_table_490 \ -static/small_parse_table/small_parse_table_491 \ -static/small_parse_table/small_parse_table_492 \ -static/small_parse_table/small_parse_table_493 \ -static/small_parse_table/small_parse_table_494 \ -static/small_parse_table/small_parse_table_495 \ -static/small_parse_table/small_parse_table_496 \ -static/small_parse_table/small_parse_table_497 \ -static/small_parse_table/small_parse_table_498 \ -static/small_parse_table/small_parse_table_499 \ -static/small_parse_table/small_parse_table_5 \ -static/small_parse_table/small_parse_table_50 \ -static/small_parse_table/small_parse_table_500 \ -static/small_parse_table/small_parse_table_501 \ -static/small_parse_table/small_parse_table_502 \ -static/small_parse_table/small_parse_table_503 \ -static/small_parse_table/small_parse_table_504 \ -static/small_parse_table/small_parse_table_505 \ -static/small_parse_table/small_parse_table_506 \ -static/small_parse_table/small_parse_table_507 \ -static/small_parse_table/small_parse_table_508 \ -static/small_parse_table/small_parse_table_509 \ -static/small_parse_table/small_parse_table_51 \ -static/small_parse_table/small_parse_table_510 \ -static/small_parse_table/small_parse_table_511 \ -static/small_parse_table/small_parse_table_512 \ -static/small_parse_table/small_parse_table_513 \ -static/small_parse_table/small_parse_table_514 \ -static/small_parse_table/small_parse_table_515 \ -static/small_parse_table/small_parse_table_516 \ -static/small_parse_table/small_parse_table_517 \ -static/small_parse_table/small_parse_table_518 \ -static/small_parse_table/small_parse_table_519 \ -static/small_parse_table/small_parse_table_52 \ -static/small_parse_table/small_parse_table_520 \ -static/small_parse_table/small_parse_table_521 \ -static/small_parse_table/small_parse_table_522 \ -static/small_parse_table/small_parse_table_523 \ -static/small_parse_table/small_parse_table_524 \ -static/small_parse_table/small_parse_table_525 \ -static/small_parse_table/small_parse_table_526 \ -static/small_parse_table/small_parse_table_527 \ -static/small_parse_table/small_parse_table_528 \ -static/small_parse_table/small_parse_table_529 \ -static/small_parse_table/small_parse_table_53 \ -static/small_parse_table/small_parse_table_530 \ -static/small_parse_table/small_parse_table_531 \ -static/small_parse_table/small_parse_table_532 \ -static/small_parse_table/small_parse_table_533 \ -static/small_parse_table/small_parse_table_534 \ -static/small_parse_table/small_parse_table_535 \ -static/small_parse_table/small_parse_table_536 \ -static/small_parse_table/small_parse_table_537 \ -static/small_parse_table/small_parse_table_538 \ -static/small_parse_table/small_parse_table_539 \ -static/small_parse_table/small_parse_table_54 \ -static/small_parse_table/small_parse_table_540 \ -static/small_parse_table/small_parse_table_541 \ -static/small_parse_table/small_parse_table_542 \ -static/small_parse_table/small_parse_table_543 \ -static/small_parse_table/small_parse_table_544 \ -static/small_parse_table/small_parse_table_545 \ -static/small_parse_table/small_parse_table_546 \ -static/small_parse_table/small_parse_table_547 \ -static/small_parse_table/small_parse_table_548 \ -static/small_parse_table/small_parse_table_549 \ -static/small_parse_table/small_parse_table_55 \ -static/small_parse_table/small_parse_table_550 \ -static/small_parse_table/small_parse_table_551 \ -static/small_parse_table/small_parse_table_552 \ -static/small_parse_table/small_parse_table_553 \ -static/small_parse_table/small_parse_table_554 \ -static/small_parse_table/small_parse_table_555 \ -static/small_parse_table/small_parse_table_556 \ -static/small_parse_table/small_parse_table_557 \ -static/small_parse_table/small_parse_table_558 \ -static/small_parse_table/small_parse_table_559 \ -static/small_parse_table/small_parse_table_56 \ -static/small_parse_table/small_parse_table_560 \ -static/small_parse_table/small_parse_table_561 \ -static/small_parse_table/small_parse_table_562 \ -static/small_parse_table/small_parse_table_563 \ -static/small_parse_table/small_parse_table_564 \ -static/small_parse_table/small_parse_table_565 \ -static/small_parse_table/small_parse_table_566 \ -static/small_parse_table/small_parse_table_567 \ -static/small_parse_table/small_parse_table_568 \ -static/small_parse_table/small_parse_table_569 \ -static/small_parse_table/small_parse_table_57 \ -static/small_parse_table/small_parse_table_570 \ -static/small_parse_table/small_parse_table_571 \ -static/small_parse_table/small_parse_table_572 \ -static/small_parse_table/small_parse_table_573 \ -static/small_parse_table/small_parse_table_574 \ -static/small_parse_table/small_parse_table_575 \ -static/small_parse_table/small_parse_table_576 \ -static/small_parse_table/small_parse_table_577 \ -static/small_parse_table/small_parse_table_578 \ -static/small_parse_table/small_parse_table_579 \ -static/small_parse_table/small_parse_table_58 \ -static/small_parse_table/small_parse_table_580 \ -static/small_parse_table/small_parse_table_581 \ -static/small_parse_table/small_parse_table_582 \ -static/small_parse_table/small_parse_table_583 \ -static/small_parse_table/small_parse_table_584 \ -static/small_parse_table/small_parse_table_585 \ -static/small_parse_table/small_parse_table_586 \ -static/small_parse_table/small_parse_table_587 \ -static/small_parse_table/small_parse_table_588 \ -static/small_parse_table/small_parse_table_589 \ -static/small_parse_table/small_parse_table_59 \ -static/small_parse_table/small_parse_table_590 \ -static/small_parse_table/small_parse_table_591 \ -static/small_parse_table/small_parse_table_592 \ -static/small_parse_table/small_parse_table_593 \ -static/small_parse_table/small_parse_table_594 \ -static/small_parse_table/small_parse_table_595 \ -static/small_parse_table/small_parse_table_596 \ -static/small_parse_table/small_parse_table_597 \ -static/small_parse_table/small_parse_table_598 \ -static/small_parse_table/small_parse_table_599 \ -static/small_parse_table/small_parse_table_6 \ -static/small_parse_table/small_parse_table_60 \ -static/small_parse_table/small_parse_table_600 \ -static/small_parse_table/small_parse_table_601 \ -static/small_parse_table/small_parse_table_602 \ -static/small_parse_table/small_parse_table_603 \ -static/small_parse_table/small_parse_table_604 \ -static/small_parse_table/small_parse_table_605 \ -static/small_parse_table/small_parse_table_606 \ -static/small_parse_table/small_parse_table_607 \ -static/small_parse_table/small_parse_table_608 \ -static/small_parse_table/small_parse_table_609 \ -static/small_parse_table/small_parse_table_61 \ -static/small_parse_table/small_parse_table_610 \ -static/small_parse_table/small_parse_table_611 \ -static/small_parse_table/small_parse_table_612 \ -static/small_parse_table/small_parse_table_613 \ -static/small_parse_table/small_parse_table_614 \ -static/small_parse_table/small_parse_table_615 \ -static/small_parse_table/small_parse_table_616 \ -static/small_parse_table/small_parse_table_617 \ -static/small_parse_table/small_parse_table_618 \ -static/small_parse_table/small_parse_table_619 \ -static/small_parse_table/small_parse_table_62 \ -static/small_parse_table/small_parse_table_620 \ -static/small_parse_table/small_parse_table_621 \ -static/small_parse_table/small_parse_table_622 \ -static/small_parse_table/small_parse_table_623 \ -static/small_parse_table/small_parse_table_624 \ -static/small_parse_table/small_parse_table_625 \ -static/small_parse_table/small_parse_table_626 \ -static/small_parse_table/small_parse_table_627 \ -static/small_parse_table/small_parse_table_628 \ -static/small_parse_table/small_parse_table_629 \ -static/small_parse_table/small_parse_table_63 \ -static/small_parse_table/small_parse_table_630 \ -static/small_parse_table/small_parse_table_631 \ -static/small_parse_table/small_parse_table_632 \ -static/small_parse_table/small_parse_table_633 \ -static/small_parse_table/small_parse_table_634 \ -static/small_parse_table/small_parse_table_635 \ -static/small_parse_table/small_parse_table_636 \ -static/small_parse_table/small_parse_table_637 \ -static/small_parse_table/small_parse_table_638 \ -static/small_parse_table/small_parse_table_639 \ -static/small_parse_table/small_parse_table_64 \ -static/small_parse_table/small_parse_table_640 \ -static/small_parse_table/small_parse_table_641 \ -static/small_parse_table/small_parse_table_642 \ -static/small_parse_table/small_parse_table_643 \ -static/small_parse_table/small_parse_table_644 \ -static/small_parse_table/small_parse_table_645 \ -static/small_parse_table/small_parse_table_646 \ -static/small_parse_table/small_parse_table_647 \ -static/small_parse_table/small_parse_table_648 \ -static/small_parse_table/small_parse_table_649 \ -static/small_parse_table/small_parse_table_65 \ -static/small_parse_table/small_parse_table_650 \ -static/small_parse_table/small_parse_table_651 \ -static/small_parse_table/small_parse_table_652 \ -static/small_parse_table/small_parse_table_653 \ -static/small_parse_table/small_parse_table_654 \ -static/small_parse_table/small_parse_table_655 \ -static/small_parse_table/small_parse_table_656 \ -static/small_parse_table/small_parse_table_657 \ -static/small_parse_table/small_parse_table_658 \ -static/small_parse_table/small_parse_table_659 \ -static/small_parse_table/small_parse_table_66 \ -static/small_parse_table/small_parse_table_660 \ -static/small_parse_table/small_parse_table_661 \ -static/small_parse_table/small_parse_table_662 \ -static/small_parse_table/small_parse_table_663 \ -static/small_parse_table/small_parse_table_664 \ -static/small_parse_table/small_parse_table_665 \ -static/small_parse_table/small_parse_table_666 \ -static/small_parse_table/small_parse_table_667 \ -static/small_parse_table/small_parse_table_668 \ -static/small_parse_table/small_parse_table_669 \ -static/small_parse_table/small_parse_table_67 \ -static/small_parse_table/small_parse_table_670 \ -static/small_parse_table/small_parse_table_671 \ -static/small_parse_table/small_parse_table_672 \ -static/small_parse_table/small_parse_table_673 \ -static/small_parse_table/small_parse_table_674 \ -static/small_parse_table/small_parse_table_675 \ -static/small_parse_table/small_parse_table_676 \ -static/small_parse_table/small_parse_table_677 \ -static/small_parse_table/small_parse_table_678 \ -static/small_parse_table/small_parse_table_679 \ -static/small_parse_table/small_parse_table_68 \ -static/small_parse_table/small_parse_table_680 \ -static/small_parse_table/small_parse_table_681 \ -static/small_parse_table/small_parse_table_682 \ -static/small_parse_table/small_parse_table_683 \ -static/small_parse_table/small_parse_table_684 \ -static/small_parse_table/small_parse_table_685 \ -static/small_parse_table/small_parse_table_686 \ -static/small_parse_table/small_parse_table_687 \ -static/small_parse_table/small_parse_table_688 \ -static/small_parse_table/small_parse_table_689 \ -static/small_parse_table/small_parse_table_69 \ -static/small_parse_table/small_parse_table_690 \ -static/small_parse_table/small_parse_table_691 \ -static/small_parse_table/small_parse_table_692 \ -static/small_parse_table/small_parse_table_693 \ -static/small_parse_table/small_parse_table_694 \ -static/small_parse_table/small_parse_table_695 \ -static/small_parse_table/small_parse_table_696 \ -static/small_parse_table/small_parse_table_697 \ -static/small_parse_table/small_parse_table_698 \ -static/small_parse_table/small_parse_table_699 \ -static/small_parse_table/small_parse_table_7 \ -static/small_parse_table/small_parse_table_70 \ -static/small_parse_table/small_parse_table_700 \ -static/small_parse_table/small_parse_table_701 \ -static/small_parse_table/small_parse_table_702 \ -static/small_parse_table/small_parse_table_703 \ -static/small_parse_table/small_parse_table_704 \ -static/small_parse_table/small_parse_table_705 \ -static/small_parse_table/small_parse_table_706 \ -static/small_parse_table/small_parse_table_707 \ -static/small_parse_table/small_parse_table_708 \ -static/small_parse_table/small_parse_table_709 \ -static/small_parse_table/small_parse_table_71 \ -static/small_parse_table/small_parse_table_710 \ -static/small_parse_table/small_parse_table_711 \ -static/small_parse_table/small_parse_table_712 \ -static/small_parse_table/small_parse_table_713 \ -static/small_parse_table/small_parse_table_714 \ -static/small_parse_table/small_parse_table_715 \ -static/small_parse_table/small_parse_table_716 \ -static/small_parse_table/small_parse_table_717 \ -static/small_parse_table/small_parse_table_718 \ -static/small_parse_table/small_parse_table_719 \ -static/small_parse_table/small_parse_table_72 \ -static/small_parse_table/small_parse_table_720 \ -static/small_parse_table/small_parse_table_721 \ -static/small_parse_table/small_parse_table_722 \ -static/small_parse_table/small_parse_table_723 \ -static/small_parse_table/small_parse_table_724 \ -static/small_parse_table/small_parse_table_725 \ -static/small_parse_table/small_parse_table_726 \ -static/small_parse_table/small_parse_table_727 \ -static/small_parse_table/small_parse_table_728 \ -static/small_parse_table/small_parse_table_729 \ -static/small_parse_table/small_parse_table_73 \ -static/small_parse_table/small_parse_table_730 \ -static/small_parse_table/small_parse_table_731 \ -static/small_parse_table/small_parse_table_732 \ -static/small_parse_table/small_parse_table_733 \ -static/small_parse_table/small_parse_table_734 \ -static/small_parse_table/small_parse_table_735 \ -static/small_parse_table/small_parse_table_736 \ -static/small_parse_table/small_parse_table_737 \ -static/small_parse_table/small_parse_table_738 \ -static/small_parse_table/small_parse_table_739 \ -static/small_parse_table/small_parse_table_74 \ -static/small_parse_table/small_parse_table_740 \ -static/small_parse_table/small_parse_table_741 \ -static/small_parse_table/small_parse_table_742 \ -static/small_parse_table/small_parse_table_743 \ -static/small_parse_table/small_parse_table_744 \ -static/small_parse_table/small_parse_table_745 \ -static/small_parse_table/small_parse_table_746 \ -static/small_parse_table/small_parse_table_747 \ -static/small_parse_table/small_parse_table_748 \ -static/small_parse_table/small_parse_table_749 \ -static/small_parse_table/small_parse_table_75 \ -static/small_parse_table/small_parse_table_750 \ -static/small_parse_table/small_parse_table_751 \ -static/small_parse_table/small_parse_table_752 \ -static/small_parse_table/small_parse_table_753 \ -static/small_parse_table/small_parse_table_754 \ -static/small_parse_table/small_parse_table_755 \ -static/small_parse_table/small_parse_table_756 \ -static/small_parse_table/small_parse_table_757 \ -static/small_parse_table/small_parse_table_758 \ -static/small_parse_table/small_parse_table_759 \ -static/small_parse_table/small_parse_table_76 \ -static/small_parse_table/small_parse_table_760 \ -static/small_parse_table/small_parse_table_761 \ -static/small_parse_table/small_parse_table_762 \ -static/small_parse_table/small_parse_table_763 \ -static/small_parse_table/small_parse_table_764 \ -static/small_parse_table/small_parse_table_765 \ -static/small_parse_table/small_parse_table_766 \ -static/small_parse_table/small_parse_table_767 \ -static/small_parse_table/small_parse_table_768 \ -static/small_parse_table/small_parse_table_769 \ -static/small_parse_table/small_parse_table_77 \ -static/small_parse_table/small_parse_table_770 \ -static/small_parse_table/small_parse_table_771 \ -static/small_parse_table/small_parse_table_772 \ -static/small_parse_table/small_parse_table_773 \ -static/small_parse_table/small_parse_table_774 \ -static/small_parse_table/small_parse_table_775 \ -static/small_parse_table/small_parse_table_776 \ -static/small_parse_table/small_parse_table_777 \ -static/small_parse_table/small_parse_table_778 \ -static/small_parse_table/small_parse_table_779 \ -static/small_parse_table/small_parse_table_78 \ -static/small_parse_table/small_parse_table_780 \ -static/small_parse_table/small_parse_table_781 \ -static/small_parse_table/small_parse_table_782 \ -static/small_parse_table/small_parse_table_783 \ -static/small_parse_table/small_parse_table_784 \ -static/small_parse_table/small_parse_table_785 \ -static/small_parse_table/small_parse_table_786 \ -static/small_parse_table/small_parse_table_787 \ -static/small_parse_table/small_parse_table_788 \ -static/small_parse_table/small_parse_table_789 \ -static/small_parse_table/small_parse_table_79 \ -static/small_parse_table/small_parse_table_790 \ -static/small_parse_table/small_parse_table_791 \ -static/small_parse_table/small_parse_table_792 \ -static/small_parse_table/small_parse_table_793 \ -static/small_parse_table/small_parse_table_794 \ -static/small_parse_table/small_parse_table_795 \ -static/small_parse_table/small_parse_table_796 \ -static/small_parse_table/small_parse_table_797 \ -static/small_parse_table/small_parse_table_798 \ -static/small_parse_table/small_parse_table_799 \ -static/small_parse_table/small_parse_table_8 \ -static/small_parse_table/small_parse_table_80 \ -static/small_parse_table/small_parse_table_800 \ -static/small_parse_table/small_parse_table_801 \ -static/small_parse_table/small_parse_table_802 \ -static/small_parse_table/small_parse_table_803 \ -static/small_parse_table/small_parse_table_804 \ -static/small_parse_table/small_parse_table_805 \ -static/small_parse_table/small_parse_table_806 \ -static/small_parse_table/small_parse_table_807 \ -static/small_parse_table/small_parse_table_808 \ -static/small_parse_table/small_parse_table_809 \ -static/small_parse_table/small_parse_table_81 \ -static/small_parse_table/small_parse_table_810 \ -static/small_parse_table/small_parse_table_811 \ -static/small_parse_table/small_parse_table_812 \ -static/small_parse_table/small_parse_table_813 \ -static/small_parse_table/small_parse_table_814 \ -static/small_parse_table/small_parse_table_815 \ -static/small_parse_table/small_parse_table_816 \ -static/small_parse_table/small_parse_table_817 \ -static/small_parse_table/small_parse_table_818 \ -static/small_parse_table/small_parse_table_819 \ -static/small_parse_table/small_parse_table_82 \ -static/small_parse_table/small_parse_table_820 \ -static/small_parse_table/small_parse_table_821 \ -static/small_parse_table/small_parse_table_822 \ -static/small_parse_table/small_parse_table_823 \ -static/small_parse_table/small_parse_table_824 \ -static/small_parse_table/small_parse_table_825 \ -static/small_parse_table/small_parse_table_826 \ -static/small_parse_table/small_parse_table_827 \ -static/small_parse_table/small_parse_table_828 \ -static/small_parse_table/small_parse_table_829 \ -static/small_parse_table/small_parse_table_83 \ -static/small_parse_table/small_parse_table_830 \ -static/small_parse_table/small_parse_table_831 \ -static/small_parse_table/small_parse_table_832 \ -static/small_parse_table/small_parse_table_833 \ -static/small_parse_table/small_parse_table_834 \ -static/small_parse_table/small_parse_table_835 \ -static/small_parse_table/small_parse_table_836 \ -static/small_parse_table/small_parse_table_837 \ -static/small_parse_table/small_parse_table_838 \ -static/small_parse_table/small_parse_table_839 \ -static/small_parse_table/small_parse_table_84 \ -static/small_parse_table/small_parse_table_840 \ -static/small_parse_table/small_parse_table_841 \ -static/small_parse_table/small_parse_table_842 \ -static/small_parse_table/small_parse_table_843 \ -static/small_parse_table/small_parse_table_844 \ -static/small_parse_table/small_parse_table_845 \ -static/small_parse_table/small_parse_table_846 \ -static/small_parse_table/small_parse_table_847 \ -static/small_parse_table/small_parse_table_848 \ -static/small_parse_table/small_parse_table_849 \ -static/small_parse_table/small_parse_table_85 \ -static/small_parse_table/small_parse_table_850 \ -static/small_parse_table/small_parse_table_851 \ -static/small_parse_table/small_parse_table_852 \ -static/small_parse_table/small_parse_table_853 \ -static/small_parse_table/small_parse_table_854 \ -static/small_parse_table/small_parse_table_855 \ -static/small_parse_table/small_parse_table_856 \ -static/small_parse_table/small_parse_table_857 \ -static/small_parse_table/small_parse_table_858 \ -static/small_parse_table/small_parse_table_859 \ -static/small_parse_table/small_parse_table_86 \ -static/small_parse_table/small_parse_table_860 \ -static/small_parse_table/small_parse_table_861 \ -static/small_parse_table/small_parse_table_862 \ -static/small_parse_table/small_parse_table_863 \ -static/small_parse_table/small_parse_table_864 \ -static/small_parse_table/small_parse_table_865 \ -static/small_parse_table/small_parse_table_866 \ -static/small_parse_table/small_parse_table_867 \ -static/small_parse_table/small_parse_table_868 \ -static/small_parse_table/small_parse_table_869 \ -static/small_parse_table/small_parse_table_87 \ -static/small_parse_table/small_parse_table_870 \ -static/small_parse_table/small_parse_table_871 \ -static/small_parse_table/small_parse_table_872 \ -static/small_parse_table/small_parse_table_873 \ -static/small_parse_table/small_parse_table_874 \ -static/small_parse_table/small_parse_table_875 \ -static/small_parse_table/small_parse_table_876 \ -static/small_parse_table/small_parse_table_877 \ -static/small_parse_table/small_parse_table_878 \ -static/small_parse_table/small_parse_table_879 \ -static/small_parse_table/small_parse_table_88 \ -static/small_parse_table/small_parse_table_880 \ -static/small_parse_table/small_parse_table_881 \ -static/small_parse_table/small_parse_table_882 \ -static/small_parse_table/small_parse_table_883 \ -static/small_parse_table/small_parse_table_884 \ -static/small_parse_table/small_parse_table_885 \ -static/small_parse_table/small_parse_table_886 \ -static/small_parse_table/small_parse_table_887 \ -static/small_parse_table/small_parse_table_888 \ -static/small_parse_table/small_parse_table_889 \ -static/small_parse_table/small_parse_table_89 \ -static/small_parse_table/small_parse_table_890 \ -static/small_parse_table/small_parse_table_891 \ -static/small_parse_table/small_parse_table_892 \ -static/small_parse_table/small_parse_table_893 \ -static/small_parse_table/small_parse_table_894 \ -static/small_parse_table/small_parse_table_895 \ -static/small_parse_table/small_parse_table_896 \ -static/small_parse_table/small_parse_table_897 \ -static/small_parse_table/small_parse_table_898 \ -static/small_parse_table/small_parse_table_899 \ -static/small_parse_table/small_parse_table_9 \ -static/small_parse_table/small_parse_table_90 \ -static/small_parse_table/small_parse_table_900 \ -static/small_parse_table/small_parse_table_901 \ -static/small_parse_table/small_parse_table_902 \ -static/small_parse_table/small_parse_table_903 \ -static/small_parse_table/small_parse_table_904 \ -static/small_parse_table/small_parse_table_905 \ -static/small_parse_table/small_parse_table_906 \ -static/small_parse_table/small_parse_table_907 \ -static/small_parse_table/small_parse_table_908 \ -static/small_parse_table/small_parse_table_909 \ -static/small_parse_table/small_parse_table_91 \ -static/small_parse_table/small_parse_table_910 \ -static/small_parse_table/small_parse_table_911 \ -static/small_parse_table/small_parse_table_912 \ -static/small_parse_table/small_parse_table_913 \ -static/small_parse_table/small_parse_table_914 \ -static/small_parse_table/small_parse_table_915 \ -static/small_parse_table/small_parse_table_916 \ -static/small_parse_table/small_parse_table_917 \ -static/small_parse_table/small_parse_table_918 \ -static/small_parse_table/small_parse_table_919 \ -static/small_parse_table/small_parse_table_92 \ -static/small_parse_table/small_parse_table_920 \ -static/small_parse_table/small_parse_table_921 \ -static/small_parse_table/small_parse_table_922 \ -static/small_parse_table/small_parse_table_923 \ -static/small_parse_table/small_parse_table_924 \ -static/small_parse_table/small_parse_table_925 \ -static/small_parse_table/small_parse_table_926 \ -static/small_parse_table/small_parse_table_927 \ -static/small_parse_table/small_parse_table_928 \ -static/small_parse_table/small_parse_table_929 \ -static/small_parse_table/small_parse_table_93 \ -static/small_parse_table/small_parse_table_930 \ -static/small_parse_table/small_parse_table_931 \ -static/small_parse_table/small_parse_table_932 \ -static/small_parse_table/small_parse_table_933 \ -static/small_parse_table/small_parse_table_934 \ -static/small_parse_table/small_parse_table_935 \ -static/small_parse_table/small_parse_table_936 \ -static/small_parse_table/small_parse_table_937 \ -static/small_parse_table/small_parse_table_938 \ -static/small_parse_table/small_parse_table_939 \ -static/small_parse_table/small_parse_table_94 \ -static/small_parse_table/small_parse_table_940 \ -static/small_parse_table/small_parse_table_941 \ -static/small_parse_table/small_parse_table_942 \ -static/small_parse_table/small_parse_table_943 \ -static/small_parse_table/small_parse_table_944 \ -static/small_parse_table/small_parse_table_945 \ -static/small_parse_table/small_parse_table_946 \ -static/small_parse_table/small_parse_table_947 \ -static/small_parse_table/small_parse_table_948 \ -static/small_parse_table/small_parse_table_949 \ -static/small_parse_table/small_parse_table_95 \ -static/small_parse_table/small_parse_table_950 \ -static/small_parse_table/small_parse_table_951 \ -static/small_parse_table/small_parse_table_952 \ -static/small_parse_table/small_parse_table_953 \ -static/small_parse_table/small_parse_table_954 \ -static/small_parse_table/small_parse_table_955 \ -static/small_parse_table/small_parse_table_956 \ -static/small_parse_table/small_parse_table_957 \ -static/small_parse_table/small_parse_table_958 \ -static/small_parse_table/small_parse_table_959 \ -static/small_parse_table/small_parse_table_96 \ -static/small_parse_table/small_parse_table_960 \ -static/small_parse_table/small_parse_table_961 \ -static/small_parse_table/small_parse_table_962 \ -static/small_parse_table/small_parse_table_963 \ -static/small_parse_table/small_parse_table_964 \ -static/small_parse_table/small_parse_table_965 \ -static/small_parse_table/small_parse_table_966 \ -static/small_parse_table/small_parse_table_967 \ -static/small_parse_table/small_parse_table_968 \ -static/small_parse_table/small_parse_table_969 \ -static/small_parse_table/small_parse_table_97 \ -static/small_parse_table/small_parse_table_970 \ -static/small_parse_table/small_parse_table_971 \ -static/small_parse_table/small_parse_table_972 \ -static/small_parse_table/small_parse_table_973 \ -static/small_parse_table/small_parse_table_974 \ -static/small_parse_table/small_parse_table_975 \ -static/small_parse_table/small_parse_table_976 \ -static/small_parse_table/small_parse_table_977 \ -static/small_parse_table/small_parse_table_978 \ -static/small_parse_table/small_parse_table_979 \ -static/small_parse_table/small_parse_table_98 \ -static/small_parse_table/small_parse_table_980 \ -static/small_parse_table/small_parse_table_981 \ -static/small_parse_table/small_parse_table_982 \ -static/small_parse_table/small_parse_table_983 \ -static/small_parse_table/small_parse_table_984 \ -static/small_parse_table/small_parse_table_985 \ -static/small_parse_table/small_parse_table_986 \ -static/small_parse_table/small_parse_table_987 \ -static/small_parse_table/small_parse_table_988 \ -static/small_parse_table/small_parse_table_989 \ -static/small_parse_table/small_parse_table_99 \ -static/small_parse_table/small_parse_table_990 \ -static/small_parse_table/small_parse_table_991 \ -static/small_parse_table/small_parse_table_992 \ -static/small_parse_table/small_parse_table_993 \ -static/small_parse_table/small_parse_table_994 \ -static/small_parse_table/small_parse_table_995 \ -static/small_parse_table/small_parse_table_996 \ -static/small_parse_table/small_parse_table_997 \ -static/small_parse_table/small_parse_table_998 \ -static/small_parse_table/small_parse_table_999 \ -static/symbols_metadata/symbols_metadata_0 \ -static/symbols_metadata/symbols_metadata_1 \ -static/symbols_metadata/symbols_metadata_2 \ -static/symbols_names/symbols_names_0 \ -static/symbols_names/symbols_names_1 \ -static/symbols_names/symbols_names_2 \ -static/unique_symbols_map/unique_symbols_map_0 \ -static/unique_symbols_map/unique_symbols_map_1 \ -static/unique_symbols_map/unique_symbols_map_2 \ -static/lex_funcs/lex_normal/state_helper \ -static/lex_funcs/lex_normal/state_helper2 \ -static/lex_funcs/lex_keywords/state_0_bis \ -static/lex_funcs/lex_keywords/state_4_bis +alias_sequences/alias_sequences_0 \ +create/create_alias_sequences \ +create/create_external_scanner_states \ +create/create_external_scanner_symbol_map \ +create/create_field_map_entries \ +create/create_field_map_slices \ +create/create_field_names \ +create/create_lex_keywords \ +create/create_lex_modes \ +create/create_lex_normal \ +create/create_non_terminal_alias_map \ +create/create_parse_actions_entries \ +create/create_parse_table \ +create/create_primary_state_ids \ +create/create_small_parse_table \ +create/create_small_parse_table_map \ +create/create_symbols_metadata \ +create/create_symbols_names \ +create/create_unique_symbols_map \ +external_scanner_states/external_scanner_states_0 \ +external_scanner_states/external_scanner_states_1 \ +external_scanner_states/external_scanner_states_2 \ +external_scanner_states/external_scanner_states_3 \ +external_scanner_states/external_scanner_states_4 \ +external_scanner_states/external_scanner_states_5 \ +external_scanner_states/external_scanner_states_6 \ +external_scanner_symbol_map/external_scanner_symbol_map_0 \ +field_map_entries/field_map_entries_0 \ +field_map_entries/field_map_entries_1 \ +field_map_entries/field_map_entries_2 \ +field_map_slices/field_map_slices_0 \ +field_map_slices/field_map_slices_1 \ +field_names/field_names_0 \ +lex_funcs/lex_keywords/create_table/lex_keywords_array_0 \ +lex_funcs/lex_keywords/main_func \ +lex_funcs/lex_keywords/state_0 \ +lex_funcs/lex_keywords/state_0_bis \ +lex_funcs/lex_keywords/state_1 \ +lex_funcs/lex_keywords/state_10 \ +lex_funcs/lex_keywords/state_11 \ +lex_funcs/lex_keywords/state_12 \ +lex_funcs/lex_keywords/state_13 \ +lex_funcs/lex_keywords/state_14 \ +lex_funcs/lex_keywords/state_15 \ +lex_funcs/lex_keywords/state_16 \ +lex_funcs/lex_keywords/state_17 \ +lex_funcs/lex_keywords/state_18 \ +lex_funcs/lex_keywords/state_19 \ +lex_funcs/lex_keywords/state_2 \ +lex_funcs/lex_keywords/state_3 \ +lex_funcs/lex_keywords/state_4 \ +lex_funcs/lex_keywords/state_4_bis \ +lex_funcs/lex_keywords/state_5 \ +lex_funcs/lex_keywords/state_6 \ +lex_funcs/lex_keywords/state_7 \ +lex_funcs/lex_keywords/state_8 \ +lex_funcs/lex_keywords/state_9 \ +lex_funcs/lex_normal/create_table/lex_normal_array_0 \ +lex_funcs/lex_normal/create_table/lex_normal_array_1 \ +lex_funcs/lex_normal/create_table/lex_normal_array_2 \ +lex_funcs/lex_normal/create_table/lex_normal_array_3 \ +lex_funcs/lex_normal/create_table/lex_normal_array_4 \ +lex_funcs/lex_normal/create_table/lex_normal_array_5 \ +lex_funcs/lex_normal/create_table/lex_normal_array_6 \ +lex_funcs/lex_normal/create_table/lex_normal_array_7 \ +lex_funcs/lex_normal/create_table/lex_normal_array_8 \ +lex_funcs/lex_normal/create_table/lex_normal_array_9 \ +lex_funcs/lex_normal/main_func \ +lex_funcs/lex_normal/state_0 \ +lex_funcs/lex_normal/state_1 \ +lex_funcs/lex_normal/state_10 \ +lex_funcs/lex_normal/state_100 \ +lex_funcs/lex_normal/state_101 \ +lex_funcs/lex_normal/state_102 \ +lex_funcs/lex_normal/state_103 \ +lex_funcs/lex_normal/state_104 \ +lex_funcs/lex_normal/state_105 \ +lex_funcs/lex_normal/state_106 \ +lex_funcs/lex_normal/state_107 \ +lex_funcs/lex_normal/state_108 \ +lex_funcs/lex_normal/state_109 \ +lex_funcs/lex_normal/state_11 \ +lex_funcs/lex_normal/state_110 \ +lex_funcs/lex_normal/state_111 \ +lex_funcs/lex_normal/state_112 \ +lex_funcs/lex_normal/state_113 \ +lex_funcs/lex_normal/state_114 \ +lex_funcs/lex_normal/state_115 \ +lex_funcs/lex_normal/state_116 \ +lex_funcs/lex_normal/state_117 \ +lex_funcs/lex_normal/state_118 \ +lex_funcs/lex_normal/state_119 \ +lex_funcs/lex_normal/state_12 \ +lex_funcs/lex_normal/state_120 \ +lex_funcs/lex_normal/state_121 \ +lex_funcs/lex_normal/state_122 \ +lex_funcs/lex_normal/state_123 \ +lex_funcs/lex_normal/state_124 \ +lex_funcs/lex_normal/state_125 \ +lex_funcs/lex_normal/state_126 \ +lex_funcs/lex_normal/state_127 \ +lex_funcs/lex_normal/state_128 \ +lex_funcs/lex_normal/state_129 \ +lex_funcs/lex_normal/state_13 \ +lex_funcs/lex_normal/state_130 \ +lex_funcs/lex_normal/state_131 \ +lex_funcs/lex_normal/state_132 \ +lex_funcs/lex_normal/state_133 \ +lex_funcs/lex_normal/state_134 \ +lex_funcs/lex_normal/state_135 \ +lex_funcs/lex_normal/state_136 \ +lex_funcs/lex_normal/state_137 \ +lex_funcs/lex_normal/state_138 \ +lex_funcs/lex_normal/state_139 \ +lex_funcs/lex_normal/state_14 \ +lex_funcs/lex_normal/state_140 \ +lex_funcs/lex_normal/state_141 \ +lex_funcs/lex_normal/state_142 \ +lex_funcs/lex_normal/state_143 \ +lex_funcs/lex_normal/state_144 \ +lex_funcs/lex_normal/state_145 \ +lex_funcs/lex_normal/state_146 \ +lex_funcs/lex_normal/state_147 \ +lex_funcs/lex_normal/state_148 \ +lex_funcs/lex_normal/state_149 \ +lex_funcs/lex_normal/state_15 \ +lex_funcs/lex_normal/state_150 \ +lex_funcs/lex_normal/state_151 \ +lex_funcs/lex_normal/state_152 \ +lex_funcs/lex_normal/state_153 \ +lex_funcs/lex_normal/state_154 \ +lex_funcs/lex_normal/state_155 \ +lex_funcs/lex_normal/state_156 \ +lex_funcs/lex_normal/state_157 \ +lex_funcs/lex_normal/state_158 \ +lex_funcs/lex_normal/state_159 \ +lex_funcs/lex_normal/state_16 \ +lex_funcs/lex_normal/state_160 \ +lex_funcs/lex_normal/state_161 \ +lex_funcs/lex_normal/state_162 \ +lex_funcs/lex_normal/state_163 \ +lex_funcs/lex_normal/state_164 \ +lex_funcs/lex_normal/state_165 \ +lex_funcs/lex_normal/state_166 \ +lex_funcs/lex_normal/state_167 \ +lex_funcs/lex_normal/state_168 \ +lex_funcs/lex_normal/state_169 \ +lex_funcs/lex_normal/state_17 \ +lex_funcs/lex_normal/state_170 \ +lex_funcs/lex_normal/state_171 \ +lex_funcs/lex_normal/state_172 \ +lex_funcs/lex_normal/state_173 \ +lex_funcs/lex_normal/state_174 \ +lex_funcs/lex_normal/state_175 \ +lex_funcs/lex_normal/state_176 \ +lex_funcs/lex_normal/state_177 \ +lex_funcs/lex_normal/state_178 \ +lex_funcs/lex_normal/state_179 \ +lex_funcs/lex_normal/state_18 \ +lex_funcs/lex_normal/state_180 \ +lex_funcs/lex_normal/state_181 \ +lex_funcs/lex_normal/state_182 \ +lex_funcs/lex_normal/state_183 \ +lex_funcs/lex_normal/state_184 \ +lex_funcs/lex_normal/state_185 \ +lex_funcs/lex_normal/state_186 \ +lex_funcs/lex_normal/state_187 \ +lex_funcs/lex_normal/state_188 \ +lex_funcs/lex_normal/state_189 \ +lex_funcs/lex_normal/state_19 \ +lex_funcs/lex_normal/state_190 \ +lex_funcs/lex_normal/state_191 \ +lex_funcs/lex_normal/state_2 \ +lex_funcs/lex_normal/state_20 \ +lex_funcs/lex_normal/state_21 \ +lex_funcs/lex_normal/state_22 \ +lex_funcs/lex_normal/state_23 \ +lex_funcs/lex_normal/state_24 \ +lex_funcs/lex_normal/state_25 \ +lex_funcs/lex_normal/state_26 \ +lex_funcs/lex_normal/state_27 \ +lex_funcs/lex_normal/state_28 \ +lex_funcs/lex_normal/state_29 \ +lex_funcs/lex_normal/state_3 \ +lex_funcs/lex_normal/state_30 \ +lex_funcs/lex_normal/state_31 \ +lex_funcs/lex_normal/state_32 \ +lex_funcs/lex_normal/state_33 \ +lex_funcs/lex_normal/state_34 \ +lex_funcs/lex_normal/state_35 \ +lex_funcs/lex_normal/state_36 \ +lex_funcs/lex_normal/state_37 \ +lex_funcs/lex_normal/state_38 \ +lex_funcs/lex_normal/state_39 \ +lex_funcs/lex_normal/state_4 \ +lex_funcs/lex_normal/state_40 \ +lex_funcs/lex_normal/state_41 \ +lex_funcs/lex_normal/state_42 \ +lex_funcs/lex_normal/state_43 \ +lex_funcs/lex_normal/state_44 \ +lex_funcs/lex_normal/state_45 \ +lex_funcs/lex_normal/state_46 \ +lex_funcs/lex_normal/state_47 \ +lex_funcs/lex_normal/state_48 \ +lex_funcs/lex_normal/state_49 \ +lex_funcs/lex_normal/state_5 \ +lex_funcs/lex_normal/state_50 \ +lex_funcs/lex_normal/state_51 \ +lex_funcs/lex_normal/state_52 \ +lex_funcs/lex_normal/state_53 \ +lex_funcs/lex_normal/state_54 \ +lex_funcs/lex_normal/state_55 \ +lex_funcs/lex_normal/state_56 \ +lex_funcs/lex_normal/state_57 \ +lex_funcs/lex_normal/state_58 \ +lex_funcs/lex_normal/state_59 \ +lex_funcs/lex_normal/state_6 \ +lex_funcs/lex_normal/state_60 \ +lex_funcs/lex_normal/state_61 \ +lex_funcs/lex_normal/state_62 \ +lex_funcs/lex_normal/state_63 \ +lex_funcs/lex_normal/state_64 \ +lex_funcs/lex_normal/state_65 \ +lex_funcs/lex_normal/state_66 \ +lex_funcs/lex_normal/state_67 \ +lex_funcs/lex_normal/state_68 \ +lex_funcs/lex_normal/state_69 \ +lex_funcs/lex_normal/state_7 \ +lex_funcs/lex_normal/state_70 \ +lex_funcs/lex_normal/state_71 \ +lex_funcs/lex_normal/state_72 \ +lex_funcs/lex_normal/state_73 \ +lex_funcs/lex_normal/state_74 \ +lex_funcs/lex_normal/state_75 \ +lex_funcs/lex_normal/state_76 \ +lex_funcs/lex_normal/state_77 \ +lex_funcs/lex_normal/state_78 \ +lex_funcs/lex_normal/state_79 \ +lex_funcs/lex_normal/state_8 \ +lex_funcs/lex_normal/state_80 \ +lex_funcs/lex_normal/state_81 \ +lex_funcs/lex_normal/state_82 \ +lex_funcs/lex_normal/state_83 \ +lex_funcs/lex_normal/state_84 \ +lex_funcs/lex_normal/state_85 \ +lex_funcs/lex_normal/state_86 \ +lex_funcs/lex_normal/state_87 \ +lex_funcs/lex_normal/state_88 \ +lex_funcs/lex_normal/state_89 \ +lex_funcs/lex_normal/state_9 \ +lex_funcs/lex_normal/state_90 \ +lex_funcs/lex_normal/state_91 \ +lex_funcs/lex_normal/state_92 \ +lex_funcs/lex_normal/state_93 \ +lex_funcs/lex_normal/state_94 \ +lex_funcs/lex_normal/state_95 \ +lex_funcs/lex_normal/state_96 \ +lex_funcs/lex_normal/state_97 \ +lex_funcs/lex_normal/state_98 \ +lex_funcs/lex_normal/state_99 \ +lex_funcs/lex_normal/state_helper \ +lex_funcs/lex_normal/state_helper2 \ +lex_modes/lex_modes_0 \ +lex_modes/lex_modes_1 \ +lex_modes/lex_modes_10 \ +lex_modes/lex_modes_11 \ +lex_modes/lex_modes_12 \ +lex_modes/lex_modes_13 \ +lex_modes/lex_modes_14 \ +lex_modes/lex_modes_15 \ +lex_modes/lex_modes_16 \ +lex_modes/lex_modes_17 \ +lex_modes/lex_modes_18 \ +lex_modes/lex_modes_19 \ +lex_modes/lex_modes_2 \ +lex_modes/lex_modes_20 \ +lex_modes/lex_modes_21 \ +lex_modes/lex_modes_22 \ +lex_modes/lex_modes_23 \ +lex_modes/lex_modes_24 \ +lex_modes/lex_modes_25 \ +lex_modes/lex_modes_26 \ +lex_modes/lex_modes_27 \ +lex_modes/lex_modes_28 \ +lex_modes/lex_modes_29 \ +lex_modes/lex_modes_3 \ +lex_modes/lex_modes_30 \ +lex_modes/lex_modes_31 \ +lex_modes/lex_modes_32 \ +lex_modes/lex_modes_33 \ +lex_modes/lex_modes_34 \ +lex_modes/lex_modes_35 \ +lex_modes/lex_modes_36 \ +lex_modes/lex_modes_37 \ +lex_modes/lex_modes_38 \ +lex_modes/lex_modes_39 \ +lex_modes/lex_modes_4 \ +lex_modes/lex_modes_40 \ +lex_modes/lex_modes_41 \ +lex_modes/lex_modes_42 \ +lex_modes/lex_modes_43 \ +lex_modes/lex_modes_44 \ +lex_modes/lex_modes_45 \ +lex_modes/lex_modes_46 \ +lex_modes/lex_modes_47 \ +lex_modes/lex_modes_48 \ +lex_modes/lex_modes_49 \ +lex_modes/lex_modes_5 \ +lex_modes/lex_modes_50 \ +lex_modes/lex_modes_51 \ +lex_modes/lex_modes_52 \ +lex_modes/lex_modes_53 \ +lex_modes/lex_modes_54 \ +lex_modes/lex_modes_55 \ +lex_modes/lex_modes_56 \ +lex_modes/lex_modes_57 \ +lex_modes/lex_modes_58 \ +lex_modes/lex_modes_59 \ +lex_modes/lex_modes_6 \ +lex_modes/lex_modes_60 \ +lex_modes/lex_modes_61 \ +lex_modes/lex_modes_62 \ +lex_modes/lex_modes_63 \ +lex_modes/lex_modes_64 \ +lex_modes/lex_modes_65 \ +lex_modes/lex_modes_66 \ +lex_modes/lex_modes_67 \ +lex_modes/lex_modes_68 \ +lex_modes/lex_modes_69 \ +lex_modes/lex_modes_7 \ +lex_modes/lex_modes_70 \ +lex_modes/lex_modes_71 \ +lex_modes/lex_modes_72 \ +lex_modes/lex_modes_73 \ +lex_modes/lex_modes_74 \ +lex_modes/lex_modes_75 \ +lex_modes/lex_modes_76 \ +lex_modes/lex_modes_8 \ +lex_modes/lex_modes_9 \ +non_terminal_alias_map/non_terminal_alias_map_0 \ +parse_actions_entries/parse_actions_entries_0 \ +parse_actions_entries/parse_actions_entries_1 \ +parse_actions_entries/parse_actions_entries_10 \ +parse_actions_entries/parse_actions_entries_100 \ +parse_actions_entries/parse_actions_entries_101 \ +parse_actions_entries/parse_actions_entries_102 \ +parse_actions_entries/parse_actions_entries_103 \ +parse_actions_entries/parse_actions_entries_104 \ +parse_actions_entries/parse_actions_entries_105 \ +parse_actions_entries/parse_actions_entries_106 \ +parse_actions_entries/parse_actions_entries_107 \ +parse_actions_entries/parse_actions_entries_108 \ +parse_actions_entries/parse_actions_entries_109 \ +parse_actions_entries/parse_actions_entries_11 \ +parse_actions_entries/parse_actions_entries_110 \ +parse_actions_entries/parse_actions_entries_111 \ +parse_actions_entries/parse_actions_entries_112 \ +parse_actions_entries/parse_actions_entries_113 \ +parse_actions_entries/parse_actions_entries_114 \ +parse_actions_entries/parse_actions_entries_115 \ +parse_actions_entries/parse_actions_entries_116 \ +parse_actions_entries/parse_actions_entries_117 \ +parse_actions_entries/parse_actions_entries_118 \ +parse_actions_entries/parse_actions_entries_119 \ +parse_actions_entries/parse_actions_entries_12 \ +parse_actions_entries/parse_actions_entries_120 \ +parse_actions_entries/parse_actions_entries_121 \ +parse_actions_entries/parse_actions_entries_122 \ +parse_actions_entries/parse_actions_entries_123 \ +parse_actions_entries/parse_actions_entries_124 \ +parse_actions_entries/parse_actions_entries_125 \ +parse_actions_entries/parse_actions_entries_126 \ +parse_actions_entries/parse_actions_entries_127 \ +parse_actions_entries/parse_actions_entries_128 \ +parse_actions_entries/parse_actions_entries_129 \ +parse_actions_entries/parse_actions_entries_13 \ +parse_actions_entries/parse_actions_entries_130 \ +parse_actions_entries/parse_actions_entries_131 \ +parse_actions_entries/parse_actions_entries_132 \ +parse_actions_entries/parse_actions_entries_133 \ +parse_actions_entries/parse_actions_entries_134 \ +parse_actions_entries/parse_actions_entries_135 \ +parse_actions_entries/parse_actions_entries_136 \ +parse_actions_entries/parse_actions_entries_137 \ +parse_actions_entries/parse_actions_entries_138 \ +parse_actions_entries/parse_actions_entries_139 \ +parse_actions_entries/parse_actions_entries_14 \ +parse_actions_entries/parse_actions_entries_140 \ +parse_actions_entries/parse_actions_entries_141 \ +parse_actions_entries/parse_actions_entries_142 \ +parse_actions_entries/parse_actions_entries_143 \ +parse_actions_entries/parse_actions_entries_144 \ +parse_actions_entries/parse_actions_entries_145 \ +parse_actions_entries/parse_actions_entries_146 \ +parse_actions_entries/parse_actions_entries_147 \ +parse_actions_entries/parse_actions_entries_148 \ +parse_actions_entries/parse_actions_entries_149 \ +parse_actions_entries/parse_actions_entries_15 \ +parse_actions_entries/parse_actions_entries_150 \ +parse_actions_entries/parse_actions_entries_151 \ +parse_actions_entries/parse_actions_entries_152 \ +parse_actions_entries/parse_actions_entries_153 \ +parse_actions_entries/parse_actions_entries_154 \ +parse_actions_entries/parse_actions_entries_155 \ +parse_actions_entries/parse_actions_entries_156 \ +parse_actions_entries/parse_actions_entries_157 \ +parse_actions_entries/parse_actions_entries_158 \ +parse_actions_entries/parse_actions_entries_159 \ +parse_actions_entries/parse_actions_entries_16 \ +parse_actions_entries/parse_actions_entries_160 \ +parse_actions_entries/parse_actions_entries_161 \ +parse_actions_entries/parse_actions_entries_162 \ +parse_actions_entries/parse_actions_entries_163 \ +parse_actions_entries/parse_actions_entries_164 \ +parse_actions_entries/parse_actions_entries_165 \ +parse_actions_entries/parse_actions_entries_166 \ +parse_actions_entries/parse_actions_entries_167 \ +parse_actions_entries/parse_actions_entries_17 \ +parse_actions_entries/parse_actions_entries_18 \ +parse_actions_entries/parse_actions_entries_19 \ +parse_actions_entries/parse_actions_entries_2 \ +parse_actions_entries/parse_actions_entries_20 \ +parse_actions_entries/parse_actions_entries_21 \ +parse_actions_entries/parse_actions_entries_22 \ +parse_actions_entries/parse_actions_entries_23 \ +parse_actions_entries/parse_actions_entries_24 \ +parse_actions_entries/parse_actions_entries_25 \ +parse_actions_entries/parse_actions_entries_26 \ +parse_actions_entries/parse_actions_entries_27 \ +parse_actions_entries/parse_actions_entries_28 \ +parse_actions_entries/parse_actions_entries_29 \ +parse_actions_entries/parse_actions_entries_3 \ +parse_actions_entries/parse_actions_entries_30 \ +parse_actions_entries/parse_actions_entries_31 \ +parse_actions_entries/parse_actions_entries_32 \ +parse_actions_entries/parse_actions_entries_33 \ +parse_actions_entries/parse_actions_entries_34 \ +parse_actions_entries/parse_actions_entries_35 \ +parse_actions_entries/parse_actions_entries_36 \ +parse_actions_entries/parse_actions_entries_37 \ +parse_actions_entries/parse_actions_entries_38 \ +parse_actions_entries/parse_actions_entries_39 \ +parse_actions_entries/parse_actions_entries_4 \ +parse_actions_entries/parse_actions_entries_40 \ +parse_actions_entries/parse_actions_entries_41 \ +parse_actions_entries/parse_actions_entries_42 \ +parse_actions_entries/parse_actions_entries_43 \ +parse_actions_entries/parse_actions_entries_44 \ +parse_actions_entries/parse_actions_entries_45 \ +parse_actions_entries/parse_actions_entries_46 \ +parse_actions_entries/parse_actions_entries_47 \ +parse_actions_entries/parse_actions_entries_48 \ +parse_actions_entries/parse_actions_entries_49 \ +parse_actions_entries/parse_actions_entries_5 \ +parse_actions_entries/parse_actions_entries_50 \ +parse_actions_entries/parse_actions_entries_51 \ +parse_actions_entries/parse_actions_entries_52 \ +parse_actions_entries/parse_actions_entries_53 \ +parse_actions_entries/parse_actions_entries_54 \ +parse_actions_entries/parse_actions_entries_55 \ +parse_actions_entries/parse_actions_entries_56 \ +parse_actions_entries/parse_actions_entries_57 \ +parse_actions_entries/parse_actions_entries_58 \ +parse_actions_entries/parse_actions_entries_59 \ +parse_actions_entries/parse_actions_entries_6 \ +parse_actions_entries/parse_actions_entries_60 \ +parse_actions_entries/parse_actions_entries_61 \ +parse_actions_entries/parse_actions_entries_62 \ +parse_actions_entries/parse_actions_entries_63 \ +parse_actions_entries/parse_actions_entries_64 \ +parse_actions_entries/parse_actions_entries_65 \ +parse_actions_entries/parse_actions_entries_66 \ +parse_actions_entries/parse_actions_entries_67 \ +parse_actions_entries/parse_actions_entries_68 \ +parse_actions_entries/parse_actions_entries_69 \ +parse_actions_entries/parse_actions_entries_7 \ +parse_actions_entries/parse_actions_entries_70 \ +parse_actions_entries/parse_actions_entries_71 \ +parse_actions_entries/parse_actions_entries_72 \ +parse_actions_entries/parse_actions_entries_73 \ +parse_actions_entries/parse_actions_entries_74 \ +parse_actions_entries/parse_actions_entries_75 \ +parse_actions_entries/parse_actions_entries_76 \ +parse_actions_entries/parse_actions_entries_77 \ +parse_actions_entries/parse_actions_entries_78 \ +parse_actions_entries/parse_actions_entries_79 \ +parse_actions_entries/parse_actions_entries_8 \ +parse_actions_entries/parse_actions_entries_80 \ +parse_actions_entries/parse_actions_entries_81 \ +parse_actions_entries/parse_actions_entries_82 \ +parse_actions_entries/parse_actions_entries_83 \ +parse_actions_entries/parse_actions_entries_84 \ +parse_actions_entries/parse_actions_entries_85 \ +parse_actions_entries/parse_actions_entries_86 \ +parse_actions_entries/parse_actions_entries_87 \ +parse_actions_entries/parse_actions_entries_88 \ +parse_actions_entries/parse_actions_entries_89 \ +parse_actions_entries/parse_actions_entries_9 \ +parse_actions_entries/parse_actions_entries_90 \ +parse_actions_entries/parse_actions_entries_91 \ +parse_actions_entries/parse_actions_entries_92 \ +parse_actions_entries/parse_actions_entries_93 \ +parse_actions_entries/parse_actions_entries_94 \ +parse_actions_entries/parse_actions_entries_95 \ +parse_actions_entries/parse_actions_entries_96 \ +parse_actions_entries/parse_actions_entries_97 \ +parse_actions_entries/parse_actions_entries_98 \ +parse_actions_entries/parse_actions_entries_99 \ +parse_table/parse_table_0 \ +parse_table/parse_table_1 \ +parse_table/parse_table_10 \ +parse_table/parse_table_100 \ +parse_table/parse_table_101 \ +parse_table/parse_table_102 \ +parse_table/parse_table_103 \ +parse_table/parse_table_104 \ +parse_table/parse_table_105 \ +parse_table/parse_table_106 \ +parse_table/parse_table_107 \ +parse_table/parse_table_108 \ +parse_table/parse_table_109 \ +parse_table/parse_table_11 \ +parse_table/parse_table_110 \ +parse_table/parse_table_111 \ +parse_table/parse_table_112 \ +parse_table/parse_table_113 \ +parse_table/parse_table_114 \ +parse_table/parse_table_115 \ +parse_table/parse_table_116 \ +parse_table/parse_table_117 \ +parse_table/parse_table_118 \ +parse_table/parse_table_119 \ +parse_table/parse_table_12 \ +parse_table/parse_table_120 \ +parse_table/parse_table_121 \ +parse_table/parse_table_122 \ +parse_table/parse_table_123 \ +parse_table/parse_table_124 \ +parse_table/parse_table_125 \ +parse_table/parse_table_126 \ +parse_table/parse_table_127 \ +parse_table/parse_table_128 \ +parse_table/parse_table_129 \ +parse_table/parse_table_13 \ +parse_table/parse_table_130 \ +parse_table/parse_table_131 \ +parse_table/parse_table_132 \ +parse_table/parse_table_133 \ +parse_table/parse_table_134 \ +parse_table/parse_table_135 \ +parse_table/parse_table_136 \ +parse_table/parse_table_137 \ +parse_table/parse_table_138 \ +parse_table/parse_table_139 \ +parse_table/parse_table_14 \ +parse_table/parse_table_140 \ +parse_table/parse_table_141 \ +parse_table/parse_table_142 \ +parse_table/parse_table_143 \ +parse_table/parse_table_144 \ +parse_table/parse_table_145 \ +parse_table/parse_table_146 \ +parse_table/parse_table_147 \ +parse_table/parse_table_148 \ +parse_table/parse_table_149 \ +parse_table/parse_table_15 \ +parse_table/parse_table_150 \ +parse_table/parse_table_151 \ +parse_table/parse_table_152 \ +parse_table/parse_table_153 \ +parse_table/parse_table_154 \ +parse_table/parse_table_155 \ +parse_table/parse_table_156 \ +parse_table/parse_table_157 \ +parse_table/parse_table_158 \ +parse_table/parse_table_159 \ +parse_table/parse_table_16 \ +parse_table/parse_table_160 \ +parse_table/parse_table_161 \ +parse_table/parse_table_162 \ +parse_table/parse_table_163 \ +parse_table/parse_table_164 \ +parse_table/parse_table_165 \ +parse_table/parse_table_166 \ +parse_table/parse_table_167 \ +parse_table/parse_table_168 \ +parse_table/parse_table_169 \ +parse_table/parse_table_17 \ +parse_table/parse_table_170 \ +parse_table/parse_table_171 \ +parse_table/parse_table_172 \ +parse_table/parse_table_173 \ +parse_table/parse_table_174 \ +parse_table/parse_table_175 \ +parse_table/parse_table_176 \ +parse_table/parse_table_177 \ +parse_table/parse_table_178 \ +parse_table/parse_table_179 \ +parse_table/parse_table_18 \ +parse_table/parse_table_180 \ +parse_table/parse_table_181 \ +parse_table/parse_table_182 \ +parse_table/parse_table_183 \ +parse_table/parse_table_184 \ +parse_table/parse_table_185 \ +parse_table/parse_table_186 \ +parse_table/parse_table_187 \ +parse_table/parse_table_188 \ +parse_table/parse_table_189 \ +parse_table/parse_table_19 \ +parse_table/parse_table_190 \ +parse_table/parse_table_191 \ +parse_table/parse_table_192 \ +parse_table/parse_table_193 \ +parse_table/parse_table_194 \ +parse_table/parse_table_195 \ +parse_table/parse_table_196 \ +parse_table/parse_table_197 \ +parse_table/parse_table_198 \ +parse_table/parse_table_199 \ +parse_table/parse_table_2 \ +parse_table/parse_table_20 \ +parse_table/parse_table_200 \ +parse_table/parse_table_201 \ +parse_table/parse_table_202 \ +parse_table/parse_table_203 \ +parse_table/parse_table_204 \ +parse_table/parse_table_205 \ +parse_table/parse_table_206 \ +parse_table/parse_table_207 \ +parse_table/parse_table_208 \ +parse_table/parse_table_209 \ +parse_table/parse_table_21 \ +parse_table/parse_table_210 \ +parse_table/parse_table_211 \ +parse_table/parse_table_212 \ +parse_table/parse_table_213 \ +parse_table/parse_table_214 \ +parse_table/parse_table_215 \ +parse_table/parse_table_216 \ +parse_table/parse_table_217 \ +parse_table/parse_table_218 \ +parse_table/parse_table_219 \ +parse_table/parse_table_22 \ +parse_table/parse_table_220 \ +parse_table/parse_table_221 \ +parse_table/parse_table_222 \ +parse_table/parse_table_223 \ +parse_table/parse_table_224 \ +parse_table/parse_table_225 \ +parse_table/parse_table_226 \ +parse_table/parse_table_227 \ +parse_table/parse_table_228 \ +parse_table/parse_table_229 \ +parse_table/parse_table_23 \ +parse_table/parse_table_230 \ +parse_table/parse_table_231 \ +parse_table/parse_table_232 \ +parse_table/parse_table_233 \ +parse_table/parse_table_234 \ +parse_table/parse_table_235 \ +parse_table/parse_table_236 \ +parse_table/parse_table_237 \ +parse_table/parse_table_238 \ +parse_table/parse_table_239 \ +parse_table/parse_table_24 \ +parse_table/parse_table_240 \ +parse_table/parse_table_241 \ +parse_table/parse_table_242 \ +parse_table/parse_table_243 \ +parse_table/parse_table_244 \ +parse_table/parse_table_245 \ +parse_table/parse_table_246 \ +parse_table/parse_table_247 \ +parse_table/parse_table_248 \ +parse_table/parse_table_249 \ +parse_table/parse_table_25 \ +parse_table/parse_table_250 \ +parse_table/parse_table_251 \ +parse_table/parse_table_252 \ +parse_table/parse_table_253 \ +parse_table/parse_table_254 \ +parse_table/parse_table_255 \ +parse_table/parse_table_256 \ +parse_table/parse_table_257 \ +parse_table/parse_table_258 \ +parse_table/parse_table_259 \ +parse_table/parse_table_26 \ +parse_table/parse_table_260 \ +parse_table/parse_table_261 \ +parse_table/parse_table_262 \ +parse_table/parse_table_263 \ +parse_table/parse_table_264 \ +parse_table/parse_table_265 \ +parse_table/parse_table_266 \ +parse_table/parse_table_267 \ +parse_table/parse_table_268 \ +parse_table/parse_table_269 \ +parse_table/parse_table_27 \ +parse_table/parse_table_270 \ +parse_table/parse_table_271 \ +parse_table/parse_table_272 \ +parse_table/parse_table_273 \ +parse_table/parse_table_274 \ +parse_table/parse_table_275 \ +parse_table/parse_table_276 \ +parse_table/parse_table_277 \ +parse_table/parse_table_278 \ +parse_table/parse_table_279 \ +parse_table/parse_table_28 \ +parse_table/parse_table_280 \ +parse_table/parse_table_281 \ +parse_table/parse_table_282 \ +parse_table/parse_table_283 \ +parse_table/parse_table_284 \ +parse_table/parse_table_285 \ +parse_table/parse_table_286 \ +parse_table/parse_table_287 \ +parse_table/parse_table_288 \ +parse_table/parse_table_289 \ +parse_table/parse_table_29 \ +parse_table/parse_table_290 \ +parse_table/parse_table_291 \ +parse_table/parse_table_292 \ +parse_table/parse_table_293 \ +parse_table/parse_table_294 \ +parse_table/parse_table_295 \ +parse_table/parse_table_296 \ +parse_table/parse_table_297 \ +parse_table/parse_table_298 \ +parse_table/parse_table_299 \ +parse_table/parse_table_3 \ +parse_table/parse_table_30 \ +parse_table/parse_table_300 \ +parse_table/parse_table_301 \ +parse_table/parse_table_302 \ +parse_table/parse_table_303 \ +parse_table/parse_table_304 \ +parse_table/parse_table_305 \ +parse_table/parse_table_306 \ +parse_table/parse_table_307 \ +parse_table/parse_table_308 \ +parse_table/parse_table_309 \ +parse_table/parse_table_31 \ +parse_table/parse_table_310 \ +parse_table/parse_table_311 \ +parse_table/parse_table_312 \ +parse_table/parse_table_313 \ +parse_table/parse_table_314 \ +parse_table/parse_table_315 \ +parse_table/parse_table_316 \ +parse_table/parse_table_317 \ +parse_table/parse_table_318 \ +parse_table/parse_table_319 \ +parse_table/parse_table_32 \ +parse_table/parse_table_320 \ +parse_table/parse_table_321 \ +parse_table/parse_table_322 \ +parse_table/parse_table_323 \ +parse_table/parse_table_324 \ +parse_table/parse_table_325 \ +parse_table/parse_table_326 \ +parse_table/parse_table_327 \ +parse_table/parse_table_328 \ +parse_table/parse_table_329 \ +parse_table/parse_table_33 \ +parse_table/parse_table_330 \ +parse_table/parse_table_331 \ +parse_table/parse_table_332 \ +parse_table/parse_table_333 \ +parse_table/parse_table_334 \ +parse_table/parse_table_335 \ +parse_table/parse_table_336 \ +parse_table/parse_table_337 \ +parse_table/parse_table_338 \ +parse_table/parse_table_339 \ +parse_table/parse_table_34 \ +parse_table/parse_table_340 \ +parse_table/parse_table_341 \ +parse_table/parse_table_342 \ +parse_table/parse_table_343 \ +parse_table/parse_table_344 \ +parse_table/parse_table_345 \ +parse_table/parse_table_346 \ +parse_table/parse_table_347 \ +parse_table/parse_table_348 \ +parse_table/parse_table_349 \ +parse_table/parse_table_35 \ +parse_table/parse_table_350 \ +parse_table/parse_table_351 \ +parse_table/parse_table_352 \ +parse_table/parse_table_353 \ +parse_table/parse_table_354 \ +parse_table/parse_table_355 \ +parse_table/parse_table_356 \ +parse_table/parse_table_357 \ +parse_table/parse_table_358 \ +parse_table/parse_table_359 \ +parse_table/parse_table_36 \ +parse_table/parse_table_360 \ +parse_table/parse_table_361 \ +parse_table/parse_table_362 \ +parse_table/parse_table_363 \ +parse_table/parse_table_364 \ +parse_table/parse_table_365 \ +parse_table/parse_table_366 \ +parse_table/parse_table_367 \ +parse_table/parse_table_368 \ +parse_table/parse_table_369 \ +parse_table/parse_table_37 \ +parse_table/parse_table_370 \ +parse_table/parse_table_371 \ +parse_table/parse_table_372 \ +parse_table/parse_table_373 \ +parse_table/parse_table_374 \ +parse_table/parse_table_375 \ +parse_table/parse_table_376 \ +parse_table/parse_table_377 \ +parse_table/parse_table_378 \ +parse_table/parse_table_379 \ +parse_table/parse_table_38 \ +parse_table/parse_table_380 \ +parse_table/parse_table_381 \ +parse_table/parse_table_382 \ +parse_table/parse_table_383 \ +parse_table/parse_table_384 \ +parse_table/parse_table_385 \ +parse_table/parse_table_386 \ +parse_table/parse_table_387 \ +parse_table/parse_table_388 \ +parse_table/parse_table_389 \ +parse_table/parse_table_39 \ +parse_table/parse_table_390 \ +parse_table/parse_table_391 \ +parse_table/parse_table_392 \ +parse_table/parse_table_393 \ +parse_table/parse_table_394 \ +parse_table/parse_table_395 \ +parse_table/parse_table_396 \ +parse_table/parse_table_397 \ +parse_table/parse_table_398 \ +parse_table/parse_table_399 \ +parse_table/parse_table_4 \ +parse_table/parse_table_40 \ +parse_table/parse_table_400 \ +parse_table/parse_table_401 \ +parse_table/parse_table_402 \ +parse_table/parse_table_403 \ +parse_table/parse_table_404 \ +parse_table/parse_table_405 \ +parse_table/parse_table_406 \ +parse_table/parse_table_407 \ +parse_table/parse_table_408 \ +parse_table/parse_table_409 \ +parse_table/parse_table_41 \ +parse_table/parse_table_410 \ +parse_table/parse_table_411 \ +parse_table/parse_table_412 \ +parse_table/parse_table_413 \ +parse_table/parse_table_414 \ +parse_table/parse_table_415 \ +parse_table/parse_table_416 \ +parse_table/parse_table_417 \ +parse_table/parse_table_418 \ +parse_table/parse_table_419 \ +parse_table/parse_table_42 \ +parse_table/parse_table_420 \ +parse_table/parse_table_421 \ +parse_table/parse_table_422 \ +parse_table/parse_table_423 \ +parse_table/parse_table_424 \ +parse_table/parse_table_425 \ +parse_table/parse_table_426 \ +parse_table/parse_table_427 \ +parse_table/parse_table_428 \ +parse_table/parse_table_429 \ +parse_table/parse_table_43 \ +parse_table/parse_table_430 \ +parse_table/parse_table_431 \ +parse_table/parse_table_432 \ +parse_table/parse_table_433 \ +parse_table/parse_table_434 \ +parse_table/parse_table_435 \ +parse_table/parse_table_436 \ +parse_table/parse_table_437 \ +parse_table/parse_table_438 \ +parse_table/parse_table_439 \ +parse_table/parse_table_44 \ +parse_table/parse_table_440 \ +parse_table/parse_table_441 \ +parse_table/parse_table_442 \ +parse_table/parse_table_443 \ +parse_table/parse_table_444 \ +parse_table/parse_table_445 \ +parse_table/parse_table_446 \ +parse_table/parse_table_447 \ +parse_table/parse_table_448 \ +parse_table/parse_table_449 \ +parse_table/parse_table_45 \ +parse_table/parse_table_450 \ +parse_table/parse_table_451 \ +parse_table/parse_table_452 \ +parse_table/parse_table_453 \ +parse_table/parse_table_454 \ +parse_table/parse_table_455 \ +parse_table/parse_table_456 \ +parse_table/parse_table_457 \ +parse_table/parse_table_458 \ +parse_table/parse_table_459 \ +parse_table/parse_table_46 \ +parse_table/parse_table_460 \ +parse_table/parse_table_461 \ +parse_table/parse_table_462 \ +parse_table/parse_table_463 \ +parse_table/parse_table_464 \ +parse_table/parse_table_465 \ +parse_table/parse_table_466 \ +parse_table/parse_table_47 \ +parse_table/parse_table_48 \ +parse_table/parse_table_49 \ +parse_table/parse_table_5 \ +parse_table/parse_table_50 \ +parse_table/parse_table_51 \ +parse_table/parse_table_52 \ +parse_table/parse_table_53 \ +parse_table/parse_table_54 \ +parse_table/parse_table_55 \ +parse_table/parse_table_56 \ +parse_table/parse_table_57 \ +parse_table/parse_table_58 \ +parse_table/parse_table_59 \ +parse_table/parse_table_6 \ +parse_table/parse_table_60 \ +parse_table/parse_table_61 \ +parse_table/parse_table_62 \ +parse_table/parse_table_63 \ +parse_table/parse_table_64 \ +parse_table/parse_table_65 \ +parse_table/parse_table_66 \ +parse_table/parse_table_67 \ +parse_table/parse_table_68 \ +parse_table/parse_table_69 \ +parse_table/parse_table_7 \ +parse_table/parse_table_70 \ +parse_table/parse_table_71 \ +parse_table/parse_table_72 \ +parse_table/parse_table_73 \ +parse_table/parse_table_74 \ +parse_table/parse_table_75 \ +parse_table/parse_table_76 \ +parse_table/parse_table_77 \ +parse_table/parse_table_78 \ +parse_table/parse_table_79 \ +parse_table/parse_table_8 \ +parse_table/parse_table_80 \ +parse_table/parse_table_81 \ +parse_table/parse_table_82 \ +parse_table/parse_table_83 \ +parse_table/parse_table_84 \ +parse_table/parse_table_85 \ +parse_table/parse_table_86 \ +parse_table/parse_table_87 \ +parse_table/parse_table_88 \ +parse_table/parse_table_89 \ +parse_table/parse_table_9 \ +parse_table/parse_table_90 \ +parse_table/parse_table_91 \ +parse_table/parse_table_92 \ +parse_table/parse_table_93 \ +parse_table/parse_table_94 \ +parse_table/parse_table_95 \ +parse_table/parse_table_96 \ +parse_table/parse_table_97 \ +parse_table/parse_table_98 \ +parse_table/parse_table_99 \ +primary_state_ids/primary_state_ids_0 \ +primary_state_ids/primary_state_ids_1 \ +primary_state_ids/primary_state_ids_10 \ +primary_state_ids/primary_state_ids_11 \ +primary_state_ids/primary_state_ids_12 \ +primary_state_ids/primary_state_ids_13 \ +primary_state_ids/primary_state_ids_14 \ +primary_state_ids/primary_state_ids_15 \ +primary_state_ids/primary_state_ids_16 \ +primary_state_ids/primary_state_ids_17 \ +primary_state_ids/primary_state_ids_18 \ +primary_state_ids/primary_state_ids_19 \ +primary_state_ids/primary_state_ids_2 \ +primary_state_ids/primary_state_ids_20 \ +primary_state_ids/primary_state_ids_21 \ +primary_state_ids/primary_state_ids_22 \ +primary_state_ids/primary_state_ids_23 \ +primary_state_ids/primary_state_ids_24 \ +primary_state_ids/primary_state_ids_25 \ +primary_state_ids/primary_state_ids_26 \ +primary_state_ids/primary_state_ids_27 \ +primary_state_ids/primary_state_ids_28 \ +primary_state_ids/primary_state_ids_29 \ +primary_state_ids/primary_state_ids_3 \ +primary_state_ids/primary_state_ids_30 \ +primary_state_ids/primary_state_ids_31 \ +primary_state_ids/primary_state_ids_32 \ +primary_state_ids/primary_state_ids_33 \ +primary_state_ids/primary_state_ids_34 \ +primary_state_ids/primary_state_ids_35 \ +primary_state_ids/primary_state_ids_36 \ +primary_state_ids/primary_state_ids_37 \ +primary_state_ids/primary_state_ids_38 \ +primary_state_ids/primary_state_ids_39 \ +primary_state_ids/primary_state_ids_4 \ +primary_state_ids/primary_state_ids_40 \ +primary_state_ids/primary_state_ids_41 \ +primary_state_ids/primary_state_ids_42 \ +primary_state_ids/primary_state_ids_43 \ +primary_state_ids/primary_state_ids_44 \ +primary_state_ids/primary_state_ids_45 \ +primary_state_ids/primary_state_ids_46 \ +primary_state_ids/primary_state_ids_47 \ +primary_state_ids/primary_state_ids_48 \ +primary_state_ids/primary_state_ids_49 \ +primary_state_ids/primary_state_ids_5 \ +primary_state_ids/primary_state_ids_50 \ +primary_state_ids/primary_state_ids_51 \ +primary_state_ids/primary_state_ids_52 \ +primary_state_ids/primary_state_ids_53 \ +primary_state_ids/primary_state_ids_54 \ +primary_state_ids/primary_state_ids_55 \ +primary_state_ids/primary_state_ids_56 \ +primary_state_ids/primary_state_ids_57 \ +primary_state_ids/primary_state_ids_58 \ +primary_state_ids/primary_state_ids_59 \ +primary_state_ids/primary_state_ids_6 \ +primary_state_ids/primary_state_ids_60 \ +primary_state_ids/primary_state_ids_61 \ +primary_state_ids/primary_state_ids_62 \ +primary_state_ids/primary_state_ids_63 \ +primary_state_ids/primary_state_ids_64 \ +primary_state_ids/primary_state_ids_65 \ +primary_state_ids/primary_state_ids_66 \ +primary_state_ids/primary_state_ids_67 \ +primary_state_ids/primary_state_ids_68 \ +primary_state_ids/primary_state_ids_69 \ +primary_state_ids/primary_state_ids_7 \ +primary_state_ids/primary_state_ids_70 \ +primary_state_ids/primary_state_ids_71 \ +primary_state_ids/primary_state_ids_72 \ +primary_state_ids/primary_state_ids_73 \ +primary_state_ids/primary_state_ids_74 \ +primary_state_ids/primary_state_ids_75 \ +primary_state_ids/primary_state_ids_76 \ +primary_state_ids/primary_state_ids_8 \ +primary_state_ids/primary_state_ids_9 \ +small_parse_table/small_parse_table_0 \ +small_parse_table/small_parse_table_1 \ +small_parse_table/small_parse_table_10 \ +small_parse_table/small_parse_table_100 \ +small_parse_table/small_parse_table_1000 \ +small_parse_table/small_parse_table_1001 \ +small_parse_table/small_parse_table_1002 \ +small_parse_table/small_parse_table_1003 \ +small_parse_table/small_parse_table_1004 \ +small_parse_table/small_parse_table_1005 \ +small_parse_table/small_parse_table_1006 \ +small_parse_table/small_parse_table_1007 \ +small_parse_table/small_parse_table_1008 \ +small_parse_table/small_parse_table_1009 \ +small_parse_table/small_parse_table_101 \ +small_parse_table/small_parse_table_1010 \ +small_parse_table/small_parse_table_1011 \ +small_parse_table/small_parse_table_1012 \ +small_parse_table/small_parse_table_1013 \ +small_parse_table/small_parse_table_1014 \ +small_parse_table/small_parse_table_1015 \ +small_parse_table/small_parse_table_1016 \ +small_parse_table/small_parse_table_1017 \ +small_parse_table/small_parse_table_1018 \ +small_parse_table/small_parse_table_1019 \ +small_parse_table/small_parse_table_102 \ +small_parse_table/small_parse_table_1020 \ +small_parse_table/small_parse_table_1021 \ +small_parse_table/small_parse_table_1022 \ +small_parse_table/small_parse_table_1023 \ +small_parse_table/small_parse_table_1024 \ +small_parse_table/small_parse_table_1025 \ +small_parse_table/small_parse_table_1026 \ +small_parse_table/small_parse_table_1027 \ +small_parse_table/small_parse_table_1028 \ +small_parse_table/small_parse_table_1029 \ +small_parse_table/small_parse_table_103 \ +small_parse_table/small_parse_table_1030 \ +small_parse_table/small_parse_table_1031 \ +small_parse_table/small_parse_table_1032 \ +small_parse_table/small_parse_table_1033 \ +small_parse_table/small_parse_table_1034 \ +small_parse_table/small_parse_table_1035 \ +small_parse_table/small_parse_table_1036 \ +small_parse_table/small_parse_table_1037 \ +small_parse_table/small_parse_table_1038 \ +small_parse_table/small_parse_table_1039 \ +small_parse_table/small_parse_table_104 \ +small_parse_table/small_parse_table_1040 \ +small_parse_table/small_parse_table_1041 \ +small_parse_table/small_parse_table_1042 \ +small_parse_table/small_parse_table_1043 \ +small_parse_table/small_parse_table_1044 \ +small_parse_table/small_parse_table_1045 \ +small_parse_table/small_parse_table_1046 \ +small_parse_table/small_parse_table_1047 \ +small_parse_table/small_parse_table_1048 \ +small_parse_table/small_parse_table_1049 \ +small_parse_table/small_parse_table_105 \ +small_parse_table/small_parse_table_1050 \ +small_parse_table/small_parse_table_1051 \ +small_parse_table/small_parse_table_1052 \ +small_parse_table/small_parse_table_1053 \ +small_parse_table/small_parse_table_1054 \ +small_parse_table/small_parse_table_1055 \ +small_parse_table/small_parse_table_1056 \ +small_parse_table/small_parse_table_1057 \ +small_parse_table/small_parse_table_1058 \ +small_parse_table/small_parse_table_1059 \ +small_parse_table/small_parse_table_106 \ +small_parse_table/small_parse_table_1060 \ +small_parse_table/small_parse_table_1061 \ +small_parse_table/small_parse_table_1062 \ +small_parse_table/small_parse_table_1063 \ +small_parse_table/small_parse_table_1064 \ +small_parse_table/small_parse_table_1065 \ +small_parse_table/small_parse_table_1066 \ +small_parse_table/small_parse_table_1067 \ +small_parse_table/small_parse_table_1068 \ +small_parse_table/small_parse_table_1069 \ +small_parse_table/small_parse_table_107 \ +small_parse_table/small_parse_table_1070 \ +small_parse_table/small_parse_table_1071 \ +small_parse_table/small_parse_table_1072 \ +small_parse_table/small_parse_table_1073 \ +small_parse_table/small_parse_table_1074 \ +small_parse_table/small_parse_table_1075 \ +small_parse_table/small_parse_table_1076 \ +small_parse_table/small_parse_table_1077 \ +small_parse_table/small_parse_table_1078 \ +small_parse_table/small_parse_table_1079 \ +small_parse_table/small_parse_table_108 \ +small_parse_table/small_parse_table_1080 \ +small_parse_table/small_parse_table_1081 \ +small_parse_table/small_parse_table_1082 \ +small_parse_table/small_parse_table_1083 \ +small_parse_table/small_parse_table_1084 \ +small_parse_table/small_parse_table_1085 \ +small_parse_table/small_parse_table_1086 \ +small_parse_table/small_parse_table_1087 \ +small_parse_table/small_parse_table_1088 \ +small_parse_table/small_parse_table_1089 \ +small_parse_table/small_parse_table_109 \ +small_parse_table/small_parse_table_1090 \ +small_parse_table/small_parse_table_1091 \ +small_parse_table/small_parse_table_1092 \ +small_parse_table/small_parse_table_1093 \ +small_parse_table/small_parse_table_1094 \ +small_parse_table/small_parse_table_1095 \ +small_parse_table/small_parse_table_1096 \ +small_parse_table/small_parse_table_1097 \ +small_parse_table/small_parse_table_1098 \ +small_parse_table/small_parse_table_1099 \ +small_parse_table/small_parse_table_11 \ +small_parse_table/small_parse_table_110 \ +small_parse_table/small_parse_table_1100 \ +small_parse_table/small_parse_table_1101 \ +small_parse_table/small_parse_table_1102 \ +small_parse_table/small_parse_table_1103 \ +small_parse_table/small_parse_table_1104 \ +small_parse_table/small_parse_table_1105 \ +small_parse_table/small_parse_table_1106 \ +small_parse_table/small_parse_table_1107 \ +small_parse_table/small_parse_table_1108 \ +small_parse_table/small_parse_table_1109 \ +small_parse_table/small_parse_table_111 \ +small_parse_table/small_parse_table_1110 \ +small_parse_table/small_parse_table_1111 \ +small_parse_table/small_parse_table_1112 \ +small_parse_table/small_parse_table_1113 \ +small_parse_table/small_parse_table_1114 \ +small_parse_table/small_parse_table_1115 \ +small_parse_table/small_parse_table_1116 \ +small_parse_table/small_parse_table_1117 \ +small_parse_table/small_parse_table_1118 \ +small_parse_table/small_parse_table_1119 \ +small_parse_table/small_parse_table_112 \ +small_parse_table/small_parse_table_1120 \ +small_parse_table/small_parse_table_1121 \ +small_parse_table/small_parse_table_1122 \ +small_parse_table/small_parse_table_1123 \ +small_parse_table/small_parse_table_1124 \ +small_parse_table/small_parse_table_1125 \ +small_parse_table/small_parse_table_1126 \ +small_parse_table/small_parse_table_1127 \ +small_parse_table/small_parse_table_1128 \ +small_parse_table/small_parse_table_1129 \ +small_parse_table/small_parse_table_113 \ +small_parse_table/small_parse_table_1130 \ +small_parse_table/small_parse_table_1131 \ +small_parse_table/small_parse_table_1132 \ +small_parse_table/small_parse_table_1133 \ +small_parse_table/small_parse_table_1134 \ +small_parse_table/small_parse_table_1135 \ +small_parse_table/small_parse_table_1136 \ +small_parse_table/small_parse_table_1137 \ +small_parse_table/small_parse_table_1138 \ +small_parse_table/small_parse_table_1139 \ +small_parse_table/small_parse_table_114 \ +small_parse_table/small_parse_table_1140 \ +small_parse_table/small_parse_table_1141 \ +small_parse_table/small_parse_table_1142 \ +small_parse_table/small_parse_table_1143 \ +small_parse_table/small_parse_table_1144 \ +small_parse_table/small_parse_table_1145 \ +small_parse_table/small_parse_table_1146 \ +small_parse_table/small_parse_table_1147 \ +small_parse_table/small_parse_table_1148 \ +small_parse_table/small_parse_table_1149 \ +small_parse_table/small_parse_table_115 \ +small_parse_table/small_parse_table_1150 \ +small_parse_table/small_parse_table_1151 \ +small_parse_table/small_parse_table_1152 \ +small_parse_table/small_parse_table_1153 \ +small_parse_table/small_parse_table_1154 \ +small_parse_table/small_parse_table_1155 \ +small_parse_table/small_parse_table_1156 \ +small_parse_table/small_parse_table_1157 \ +small_parse_table/small_parse_table_1158 \ +small_parse_table/small_parse_table_1159 \ +small_parse_table/small_parse_table_116 \ +small_parse_table/small_parse_table_1160 \ +small_parse_table/small_parse_table_1161 \ +small_parse_table/small_parse_table_1162 \ +small_parse_table/small_parse_table_1163 \ +small_parse_table/small_parse_table_1164 \ +small_parse_table/small_parse_table_1165 \ +small_parse_table/small_parse_table_1166 \ +small_parse_table/small_parse_table_1167 \ +small_parse_table/small_parse_table_1168 \ +small_parse_table/small_parse_table_1169 \ +small_parse_table/small_parse_table_117 \ +small_parse_table/small_parse_table_1170 \ +small_parse_table/small_parse_table_1171 \ +small_parse_table/small_parse_table_1172 \ +small_parse_table/small_parse_table_1173 \ +small_parse_table/small_parse_table_1174 \ +small_parse_table/small_parse_table_1175 \ +small_parse_table/small_parse_table_1176 \ +small_parse_table/small_parse_table_1177 \ +small_parse_table/small_parse_table_1178 \ +small_parse_table/small_parse_table_1179 \ +small_parse_table/small_parse_table_118 \ +small_parse_table/small_parse_table_1180 \ +small_parse_table/small_parse_table_1181 \ +small_parse_table/small_parse_table_1182 \ +small_parse_table/small_parse_table_1183 \ +small_parse_table/small_parse_table_1184 \ +small_parse_table/small_parse_table_1185 \ +small_parse_table/small_parse_table_1186 \ +small_parse_table/small_parse_table_1187 \ +small_parse_table/small_parse_table_1188 \ +small_parse_table/small_parse_table_1189 \ +small_parse_table/small_parse_table_119 \ +small_parse_table/small_parse_table_1190 \ +small_parse_table/small_parse_table_1191 \ +small_parse_table/small_parse_table_1192 \ +small_parse_table/small_parse_table_1193 \ +small_parse_table/small_parse_table_1194 \ +small_parse_table/small_parse_table_1195 \ +small_parse_table/small_parse_table_1196 \ +small_parse_table/small_parse_table_1197 \ +small_parse_table/small_parse_table_1198 \ +small_parse_table/small_parse_table_1199 \ +small_parse_table/small_parse_table_12 \ +small_parse_table/small_parse_table_120 \ +small_parse_table/small_parse_table_1200 \ +small_parse_table/small_parse_table_1201 \ +small_parse_table/small_parse_table_1202 \ +small_parse_table/small_parse_table_1203 \ +small_parse_table/small_parse_table_1204 \ +small_parse_table/small_parse_table_1205 \ +small_parse_table/small_parse_table_1206 \ +small_parse_table/small_parse_table_1207 \ +small_parse_table/small_parse_table_1208 \ +small_parse_table/small_parse_table_1209 \ +small_parse_table/small_parse_table_121 \ +small_parse_table/small_parse_table_1210 \ +small_parse_table/small_parse_table_1211 \ +small_parse_table/small_parse_table_1212 \ +small_parse_table/small_parse_table_1213 \ +small_parse_table/small_parse_table_1214 \ +small_parse_table/small_parse_table_1215 \ +small_parse_table/small_parse_table_1216 \ +small_parse_table/small_parse_table_1217 \ +small_parse_table/small_parse_table_1218 \ +small_parse_table/small_parse_table_1219 \ +small_parse_table/small_parse_table_122 \ +small_parse_table/small_parse_table_1220 \ +small_parse_table/small_parse_table_1221 \ +small_parse_table/small_parse_table_1222 \ +small_parse_table/small_parse_table_1223 \ +small_parse_table/small_parse_table_1224 \ +small_parse_table/small_parse_table_1225 \ +small_parse_table/small_parse_table_1226 \ +small_parse_table/small_parse_table_1227 \ +small_parse_table/small_parse_table_1228 \ +small_parse_table/small_parse_table_1229 \ +small_parse_table/small_parse_table_123 \ +small_parse_table/small_parse_table_1230 \ +small_parse_table/small_parse_table_1231 \ +small_parse_table/small_parse_table_1232 \ +small_parse_table/small_parse_table_1233 \ +small_parse_table/small_parse_table_1234 \ +small_parse_table/small_parse_table_1235 \ +small_parse_table/small_parse_table_1236 \ +small_parse_table/small_parse_table_1237 \ +small_parse_table/small_parse_table_1238 \ +small_parse_table/small_parse_table_1239 \ +small_parse_table/small_parse_table_124 \ +small_parse_table/small_parse_table_1240 \ +small_parse_table/small_parse_table_1241 \ +small_parse_table/small_parse_table_1242 \ +small_parse_table/small_parse_table_1243 \ +small_parse_table/small_parse_table_1244 \ +small_parse_table/small_parse_table_1245 \ +small_parse_table/small_parse_table_1246 \ +small_parse_table/small_parse_table_1247 \ +small_parse_table/small_parse_table_1248 \ +small_parse_table/small_parse_table_1249 \ +small_parse_table/small_parse_table_125 \ +small_parse_table/small_parse_table_1250 \ +small_parse_table/small_parse_table_1251 \ +small_parse_table/small_parse_table_1252 \ +small_parse_table/small_parse_table_1253 \ +small_parse_table/small_parse_table_1254 \ +small_parse_table/small_parse_table_1255 \ +small_parse_table/small_parse_table_1256 \ +small_parse_table/small_parse_table_1257 \ +small_parse_table/small_parse_table_1258 \ +small_parse_table/small_parse_table_1259 \ +small_parse_table/small_parse_table_126 \ +small_parse_table/small_parse_table_1260 \ +small_parse_table/small_parse_table_1261 \ +small_parse_table/small_parse_table_1262 \ +small_parse_table/small_parse_table_1263 \ +small_parse_table/small_parse_table_1264 \ +small_parse_table/small_parse_table_1265 \ +small_parse_table/small_parse_table_1266 \ +small_parse_table/small_parse_table_1267 \ +small_parse_table/small_parse_table_1268 \ +small_parse_table/small_parse_table_1269 \ +small_parse_table/small_parse_table_127 \ +small_parse_table/small_parse_table_1270 \ +small_parse_table/small_parse_table_1271 \ +small_parse_table/small_parse_table_1272 \ +small_parse_table/small_parse_table_1273 \ +small_parse_table/small_parse_table_1274 \ +small_parse_table/small_parse_table_1275 \ +small_parse_table/small_parse_table_1276 \ +small_parse_table/small_parse_table_1277 \ +small_parse_table/small_parse_table_1278 \ +small_parse_table/small_parse_table_1279 \ +small_parse_table/small_parse_table_128 \ +small_parse_table/small_parse_table_1280 \ +small_parse_table/small_parse_table_1281 \ +small_parse_table/small_parse_table_1282 \ +small_parse_table/small_parse_table_1283 \ +small_parse_table/small_parse_table_1284 \ +small_parse_table/small_parse_table_1285 \ +small_parse_table/small_parse_table_1286 \ +small_parse_table/small_parse_table_1287 \ +small_parse_table/small_parse_table_1288 \ +small_parse_table/small_parse_table_1289 \ +small_parse_table/small_parse_table_129 \ +small_parse_table/small_parse_table_1290 \ +small_parse_table/small_parse_table_1291 \ +small_parse_table/small_parse_table_1292 \ +small_parse_table/small_parse_table_1293 \ +small_parse_table/small_parse_table_1294 \ +small_parse_table/small_parse_table_1295 \ +small_parse_table/small_parse_table_1296 \ +small_parse_table/small_parse_table_1297 \ +small_parse_table/small_parse_table_1298 \ +small_parse_table/small_parse_table_1299 \ +small_parse_table/small_parse_table_13 \ +small_parse_table/small_parse_table_130 \ +small_parse_table/small_parse_table_1300 \ +small_parse_table/small_parse_table_1301 \ +small_parse_table/small_parse_table_1302 \ +small_parse_table/small_parse_table_1303 \ +small_parse_table/small_parse_table_1304 \ +small_parse_table/small_parse_table_1305 \ +small_parse_table/small_parse_table_1306 \ +small_parse_table/small_parse_table_1307 \ +small_parse_table/small_parse_table_1308 \ +small_parse_table/small_parse_table_1309 \ +small_parse_table/small_parse_table_131 \ +small_parse_table/small_parse_table_1310 \ +small_parse_table/small_parse_table_1311 \ +small_parse_table/small_parse_table_1312 \ +small_parse_table/small_parse_table_1313 \ +small_parse_table/small_parse_table_1314 \ +small_parse_table/small_parse_table_1315 \ +small_parse_table/small_parse_table_1316 \ +small_parse_table/small_parse_table_1317 \ +small_parse_table/small_parse_table_1318 \ +small_parse_table/small_parse_table_1319 \ +small_parse_table/small_parse_table_132 \ +small_parse_table/small_parse_table_1320 \ +small_parse_table/small_parse_table_1321 \ +small_parse_table/small_parse_table_1322 \ +small_parse_table/small_parse_table_1323 \ +small_parse_table/small_parse_table_1324 \ +small_parse_table/small_parse_table_1325 \ +small_parse_table/small_parse_table_1326 \ +small_parse_table/small_parse_table_1327 \ +small_parse_table/small_parse_table_1328 \ +small_parse_table/small_parse_table_1329 \ +small_parse_table/small_parse_table_133 \ +small_parse_table/small_parse_table_1330 \ +small_parse_table/small_parse_table_1331 \ +small_parse_table/small_parse_table_1332 \ +small_parse_table/small_parse_table_1333 \ +small_parse_table/small_parse_table_1334 \ +small_parse_table/small_parse_table_1335 \ +small_parse_table/small_parse_table_1336 \ +small_parse_table/small_parse_table_1337 \ +small_parse_table/small_parse_table_1338 \ +small_parse_table/small_parse_table_1339 \ +small_parse_table/small_parse_table_134 \ +small_parse_table/small_parse_table_1340 \ +small_parse_table/small_parse_table_1341 \ +small_parse_table/small_parse_table_1342 \ +small_parse_table/small_parse_table_1343 \ +small_parse_table/small_parse_table_1344 \ +small_parse_table/small_parse_table_1345 \ +small_parse_table/small_parse_table_1346 \ +small_parse_table/small_parse_table_1347 \ +small_parse_table/small_parse_table_1348 \ +small_parse_table/small_parse_table_1349 \ +small_parse_table/small_parse_table_135 \ +small_parse_table/small_parse_table_1350 \ +small_parse_table/small_parse_table_1351 \ +small_parse_table/small_parse_table_1352 \ +small_parse_table/small_parse_table_1353 \ +small_parse_table/small_parse_table_1354 \ +small_parse_table/small_parse_table_1355 \ +small_parse_table/small_parse_table_1356 \ +small_parse_table/small_parse_table_1357 \ +small_parse_table/small_parse_table_1358 \ +small_parse_table/small_parse_table_1359 \ +small_parse_table/small_parse_table_136 \ +small_parse_table/small_parse_table_1360 \ +small_parse_table/small_parse_table_1361 \ +small_parse_table/small_parse_table_1362 \ +small_parse_table/small_parse_table_1363 \ +small_parse_table/small_parse_table_1364 \ +small_parse_table/small_parse_table_1365 \ +small_parse_table/small_parse_table_1366 \ +small_parse_table/small_parse_table_1367 \ +small_parse_table/small_parse_table_1368 \ +small_parse_table/small_parse_table_1369 \ +small_parse_table/small_parse_table_137 \ +small_parse_table/small_parse_table_1370 \ +small_parse_table/small_parse_table_1371 \ +small_parse_table/small_parse_table_1372 \ +small_parse_table/small_parse_table_1373 \ +small_parse_table/small_parse_table_1374 \ +small_parse_table/small_parse_table_1375 \ +small_parse_table/small_parse_table_1376 \ +small_parse_table/small_parse_table_1377 \ +small_parse_table/small_parse_table_1378 \ +small_parse_table/small_parse_table_1379 \ +small_parse_table/small_parse_table_138 \ +small_parse_table/small_parse_table_1380 \ +small_parse_table/small_parse_table_1381 \ +small_parse_table/small_parse_table_1382 \ +small_parse_table/small_parse_table_1383 \ +small_parse_table/small_parse_table_1384 \ +small_parse_table/small_parse_table_1385 \ +small_parse_table/small_parse_table_1386 \ +small_parse_table/small_parse_table_1387 \ +small_parse_table/small_parse_table_1388 \ +small_parse_table/small_parse_table_1389 \ +small_parse_table/small_parse_table_139 \ +small_parse_table/small_parse_table_1390 \ +small_parse_table/small_parse_table_1391 \ +small_parse_table/small_parse_table_1392 \ +small_parse_table/small_parse_table_1393 \ +small_parse_table/small_parse_table_1394 \ +small_parse_table/small_parse_table_1395 \ +small_parse_table/small_parse_table_1396 \ +small_parse_table/small_parse_table_1397 \ +small_parse_table/small_parse_table_1398 \ +small_parse_table/small_parse_table_1399 \ +small_parse_table/small_parse_table_14 \ +small_parse_table/small_parse_table_140 \ +small_parse_table/small_parse_table_1400 \ +small_parse_table/small_parse_table_1401 \ +small_parse_table/small_parse_table_1402 \ +small_parse_table/small_parse_table_1403 \ +small_parse_table/small_parse_table_1404 \ +small_parse_table/small_parse_table_1405 \ +small_parse_table/small_parse_table_1406 \ +small_parse_table/small_parse_table_1407 \ +small_parse_table/small_parse_table_1408 \ +small_parse_table/small_parse_table_1409 \ +small_parse_table/small_parse_table_141 \ +small_parse_table/small_parse_table_1410 \ +small_parse_table/small_parse_table_1411 \ +small_parse_table/small_parse_table_1412 \ +small_parse_table/small_parse_table_1413 \ +small_parse_table/small_parse_table_1414 \ +small_parse_table/small_parse_table_1415 \ +small_parse_table/small_parse_table_1416 \ +small_parse_table/small_parse_table_1417 \ +small_parse_table/small_parse_table_1418 \ +small_parse_table/small_parse_table_1419 \ +small_parse_table/small_parse_table_142 \ +small_parse_table/small_parse_table_1420 \ +small_parse_table/small_parse_table_1421 \ +small_parse_table/small_parse_table_1422 \ +small_parse_table/small_parse_table_1423 \ +small_parse_table/small_parse_table_1424 \ +small_parse_table/small_parse_table_1425 \ +small_parse_table/small_parse_table_1426 \ +small_parse_table/small_parse_table_1427 \ +small_parse_table/small_parse_table_1428 \ +small_parse_table/small_parse_table_1429 \ +small_parse_table/small_parse_table_143 \ +small_parse_table/small_parse_table_1430 \ +small_parse_table/small_parse_table_1431 \ +small_parse_table/small_parse_table_1432 \ +small_parse_table/small_parse_table_1433 \ +small_parse_table/small_parse_table_1434 \ +small_parse_table/small_parse_table_1435 \ +small_parse_table/small_parse_table_1436 \ +small_parse_table/small_parse_table_1437 \ +small_parse_table/small_parse_table_1438 \ +small_parse_table/small_parse_table_1439 \ +small_parse_table/small_parse_table_144 \ +small_parse_table/small_parse_table_1440 \ +small_parse_table/small_parse_table_1441 \ +small_parse_table/small_parse_table_1442 \ +small_parse_table/small_parse_table_1443 \ +small_parse_table/small_parse_table_1444 \ +small_parse_table/small_parse_table_1445 \ +small_parse_table/small_parse_table_1446 \ +small_parse_table/small_parse_table_1447 \ +small_parse_table/small_parse_table_1448 \ +small_parse_table/small_parse_table_1449 \ +small_parse_table/small_parse_table_145 \ +small_parse_table/small_parse_table_1450 \ +small_parse_table/small_parse_table_1451 \ +small_parse_table/small_parse_table_1452 \ +small_parse_table/small_parse_table_1453 \ +small_parse_table/small_parse_table_1454 \ +small_parse_table/small_parse_table_1455 \ +small_parse_table/small_parse_table_1456 \ +small_parse_table/small_parse_table_1457 \ +small_parse_table/small_parse_table_1458 \ +small_parse_table/small_parse_table_1459 \ +small_parse_table/small_parse_table_146 \ +small_parse_table/small_parse_table_1460 \ +small_parse_table/small_parse_table_1461 \ +small_parse_table/small_parse_table_1462 \ +small_parse_table/small_parse_table_1463 \ +small_parse_table/small_parse_table_1464 \ +small_parse_table/small_parse_table_1465 \ +small_parse_table/small_parse_table_1466 \ +small_parse_table/small_parse_table_1467 \ +small_parse_table/small_parse_table_1468 \ +small_parse_table/small_parse_table_1469 \ +small_parse_table/small_parse_table_147 \ +small_parse_table/small_parse_table_1470 \ +small_parse_table/small_parse_table_1471 \ +small_parse_table/small_parse_table_1472 \ +small_parse_table/small_parse_table_1473 \ +small_parse_table/small_parse_table_1474 \ +small_parse_table/small_parse_table_1475 \ +small_parse_table/small_parse_table_1476 \ +small_parse_table/small_parse_table_1477 \ +small_parse_table/small_parse_table_1478 \ +small_parse_table/small_parse_table_1479 \ +small_parse_table/small_parse_table_148 \ +small_parse_table/small_parse_table_1480 \ +small_parse_table/small_parse_table_1481 \ +small_parse_table/small_parse_table_1482 \ +small_parse_table/small_parse_table_1483 \ +small_parse_table/small_parse_table_1484 \ +small_parse_table/small_parse_table_1485 \ +small_parse_table/small_parse_table_1486 \ +small_parse_table/small_parse_table_1487 \ +small_parse_table/small_parse_table_1488 \ +small_parse_table/small_parse_table_1489 \ +small_parse_table/small_parse_table_149 \ +small_parse_table/small_parse_table_1490 \ +small_parse_table/small_parse_table_1491 \ +small_parse_table/small_parse_table_1492 \ +small_parse_table/small_parse_table_1493 \ +small_parse_table/small_parse_table_1494 \ +small_parse_table/small_parse_table_1495 \ +small_parse_table/small_parse_table_1496 \ +small_parse_table/small_parse_table_1497 \ +small_parse_table/small_parse_table_1498 \ +small_parse_table/small_parse_table_1499 \ +small_parse_table/small_parse_table_15 \ +small_parse_table/small_parse_table_150 \ +small_parse_table/small_parse_table_1500 \ +small_parse_table/small_parse_table_1501 \ +small_parse_table/small_parse_table_1502 \ +small_parse_table/small_parse_table_1503 \ +small_parse_table/small_parse_table_1504 \ +small_parse_table/small_parse_table_1505 \ +small_parse_table/small_parse_table_1506 \ +small_parse_table/small_parse_table_1507 \ +small_parse_table/small_parse_table_1508 \ +small_parse_table/small_parse_table_1509 \ +small_parse_table/small_parse_table_151 \ +small_parse_table/small_parse_table_1510 \ +small_parse_table/small_parse_table_1511 \ +small_parse_table/small_parse_table_1512 \ +small_parse_table/small_parse_table_1513 \ +small_parse_table/small_parse_table_1514 \ +small_parse_table/small_parse_table_1515 \ +small_parse_table/small_parse_table_1516 \ +small_parse_table/small_parse_table_1517 \ +small_parse_table/small_parse_table_1518 \ +small_parse_table/small_parse_table_1519 \ +small_parse_table/small_parse_table_152 \ +small_parse_table/small_parse_table_1520 \ +small_parse_table/small_parse_table_1521 \ +small_parse_table/small_parse_table_1522 \ +small_parse_table/small_parse_table_1523 \ +small_parse_table/small_parse_table_1524 \ +small_parse_table/small_parse_table_1525 \ +small_parse_table/small_parse_table_1526 \ +small_parse_table/small_parse_table_1527 \ +small_parse_table/small_parse_table_1528 \ +small_parse_table/small_parse_table_1529 \ +small_parse_table/small_parse_table_153 \ +small_parse_table/small_parse_table_1530 \ +small_parse_table/small_parse_table_1531 \ +small_parse_table/small_parse_table_1532 \ +small_parse_table/small_parse_table_1533 \ +small_parse_table/small_parse_table_1534 \ +small_parse_table/small_parse_table_1535 \ +small_parse_table/small_parse_table_1536 \ +small_parse_table/small_parse_table_1537 \ +small_parse_table/small_parse_table_1538 \ +small_parse_table/small_parse_table_1539 \ +small_parse_table/small_parse_table_154 \ +small_parse_table/small_parse_table_1540 \ +small_parse_table/small_parse_table_1541 \ +small_parse_table/small_parse_table_1542 \ +small_parse_table/small_parse_table_1543 \ +small_parse_table/small_parse_table_1544 \ +small_parse_table/small_parse_table_1545 \ +small_parse_table/small_parse_table_1546 \ +small_parse_table/small_parse_table_1547 \ +small_parse_table/small_parse_table_1548 \ +small_parse_table/small_parse_table_1549 \ +small_parse_table/small_parse_table_155 \ +small_parse_table/small_parse_table_1550 \ +small_parse_table/small_parse_table_1551 \ +small_parse_table/small_parse_table_1552 \ +small_parse_table/small_parse_table_1553 \ +small_parse_table/small_parse_table_1554 \ +small_parse_table/small_parse_table_1555 \ +small_parse_table/small_parse_table_1556 \ +small_parse_table/small_parse_table_1557 \ +small_parse_table/small_parse_table_1558 \ +small_parse_table/small_parse_table_1559 \ +small_parse_table/small_parse_table_156 \ +small_parse_table/small_parse_table_1560 \ +small_parse_table/small_parse_table_1561 \ +small_parse_table/small_parse_table_1562 \ +small_parse_table/small_parse_table_1563 \ +small_parse_table/small_parse_table_1564 \ +small_parse_table/small_parse_table_1565 \ +small_parse_table/small_parse_table_1566 \ +small_parse_table/small_parse_table_1567 \ +small_parse_table/small_parse_table_1568 \ +small_parse_table/small_parse_table_1569 \ +small_parse_table/small_parse_table_157 \ +small_parse_table/small_parse_table_1570 \ +small_parse_table/small_parse_table_1571 \ +small_parse_table/small_parse_table_1572 \ +small_parse_table/small_parse_table_1573 \ +small_parse_table/small_parse_table_1574 \ +small_parse_table/small_parse_table_1575 \ +small_parse_table/small_parse_table_1576 \ +small_parse_table/small_parse_table_1577 \ +small_parse_table/small_parse_table_1578 \ +small_parse_table/small_parse_table_1579 \ +small_parse_table/small_parse_table_158 \ +small_parse_table/small_parse_table_1580 \ +small_parse_table/small_parse_table_1581 \ +small_parse_table/small_parse_table_1582 \ +small_parse_table/small_parse_table_1583 \ +small_parse_table/small_parse_table_1584 \ +small_parse_table/small_parse_table_1585 \ +small_parse_table/small_parse_table_1586 \ +small_parse_table/small_parse_table_1587 \ +small_parse_table/small_parse_table_1588 \ +small_parse_table/small_parse_table_1589 \ +small_parse_table/small_parse_table_159 \ +small_parse_table/small_parse_table_1590 \ +small_parse_table/small_parse_table_1591 \ +small_parse_table/small_parse_table_1592 \ +small_parse_table/small_parse_table_1593 \ +small_parse_table/small_parse_table_1594 \ +small_parse_table/small_parse_table_1595 \ +small_parse_table/small_parse_table_1596 \ +small_parse_table/small_parse_table_1597 \ +small_parse_table/small_parse_table_1598 \ +small_parse_table/small_parse_table_1599 \ +small_parse_table/small_parse_table_16 \ +small_parse_table/small_parse_table_160 \ +small_parse_table/small_parse_table_1600 \ +small_parse_table/small_parse_table_1601 \ +small_parse_table/small_parse_table_1602 \ +small_parse_table/small_parse_table_1603 \ +small_parse_table/small_parse_table_1604 \ +small_parse_table/small_parse_table_1605 \ +small_parse_table/small_parse_table_1606 \ +small_parse_table/small_parse_table_1607 \ +small_parse_table/small_parse_table_1608 \ +small_parse_table/small_parse_table_1609 \ +small_parse_table/small_parse_table_161 \ +small_parse_table/small_parse_table_1610 \ +small_parse_table/small_parse_table_1611 \ +small_parse_table/small_parse_table_1612 \ +small_parse_table/small_parse_table_1613 \ +small_parse_table/small_parse_table_1614 \ +small_parse_table/small_parse_table_1615 \ +small_parse_table/small_parse_table_1616 \ +small_parse_table/small_parse_table_1617 \ +small_parse_table/small_parse_table_1618 \ +small_parse_table/small_parse_table_1619 \ +small_parse_table/small_parse_table_162 \ +small_parse_table/small_parse_table_1620 \ +small_parse_table/small_parse_table_1621 \ +small_parse_table/small_parse_table_1622 \ +small_parse_table/small_parse_table_1623 \ +small_parse_table/small_parse_table_1624 \ +small_parse_table/small_parse_table_1625 \ +small_parse_table/small_parse_table_1626 \ +small_parse_table/small_parse_table_1627 \ +small_parse_table/small_parse_table_1628 \ +small_parse_table/small_parse_table_1629 \ +small_parse_table/small_parse_table_163 \ +small_parse_table/small_parse_table_1630 \ +small_parse_table/small_parse_table_1631 \ +small_parse_table/small_parse_table_1632 \ +small_parse_table/small_parse_table_1633 \ +small_parse_table/small_parse_table_1634 \ +small_parse_table/small_parse_table_1635 \ +small_parse_table/small_parse_table_1636 \ +small_parse_table/small_parse_table_1637 \ +small_parse_table/small_parse_table_1638 \ +small_parse_table/small_parse_table_1639 \ +small_parse_table/small_parse_table_164 \ +small_parse_table/small_parse_table_1640 \ +small_parse_table/small_parse_table_1641 \ +small_parse_table/small_parse_table_1642 \ +small_parse_table/small_parse_table_1643 \ +small_parse_table/small_parse_table_1644 \ +small_parse_table/small_parse_table_1645 \ +small_parse_table/small_parse_table_1646 \ +small_parse_table/small_parse_table_1647 \ +small_parse_table/small_parse_table_1648 \ +small_parse_table/small_parse_table_1649 \ +small_parse_table/small_parse_table_165 \ +small_parse_table/small_parse_table_1650 \ +small_parse_table/small_parse_table_1651 \ +small_parse_table/small_parse_table_1652 \ +small_parse_table/small_parse_table_1653 \ +small_parse_table/small_parse_table_1654 \ +small_parse_table/small_parse_table_1655 \ +small_parse_table/small_parse_table_1656 \ +small_parse_table/small_parse_table_1657 \ +small_parse_table/small_parse_table_1658 \ +small_parse_table/small_parse_table_1659 \ +small_parse_table/small_parse_table_166 \ +small_parse_table/small_parse_table_1660 \ +small_parse_table/small_parse_table_1661 \ +small_parse_table/small_parse_table_1662 \ +small_parse_table/small_parse_table_1663 \ +small_parse_table/small_parse_table_1664 \ +small_parse_table/small_parse_table_1665 \ +small_parse_table/small_parse_table_1666 \ +small_parse_table/small_parse_table_1667 \ +small_parse_table/small_parse_table_1668 \ +small_parse_table/small_parse_table_1669 \ +small_parse_table/small_parse_table_167 \ +small_parse_table/small_parse_table_1670 \ +small_parse_table/small_parse_table_1671 \ +small_parse_table/small_parse_table_1672 \ +small_parse_table/small_parse_table_1673 \ +small_parse_table/small_parse_table_1674 \ +small_parse_table/small_parse_table_1675 \ +small_parse_table/small_parse_table_1676 \ +small_parse_table/small_parse_table_1677 \ +small_parse_table/small_parse_table_1678 \ +small_parse_table/small_parse_table_1679 \ +small_parse_table/small_parse_table_168 \ +small_parse_table/small_parse_table_1680 \ +small_parse_table/small_parse_table_1681 \ +small_parse_table/small_parse_table_1682 \ +small_parse_table/small_parse_table_1683 \ +small_parse_table/small_parse_table_1684 \ +small_parse_table/small_parse_table_1685 \ +small_parse_table/small_parse_table_1686 \ +small_parse_table/small_parse_table_1687 \ +small_parse_table/small_parse_table_1688 \ +small_parse_table/small_parse_table_1689 \ +small_parse_table/small_parse_table_169 \ +small_parse_table/small_parse_table_1690 \ +small_parse_table/small_parse_table_1691 \ +small_parse_table/small_parse_table_1692 \ +small_parse_table/small_parse_table_1693 \ +small_parse_table/small_parse_table_1694 \ +small_parse_table/small_parse_table_1695 \ +small_parse_table/small_parse_table_1696 \ +small_parse_table/small_parse_table_1697 \ +small_parse_table/small_parse_table_1698 \ +small_parse_table/small_parse_table_1699 \ +small_parse_table/small_parse_table_17 \ +small_parse_table/small_parse_table_170 \ +small_parse_table/small_parse_table_1700 \ +small_parse_table/small_parse_table_1701 \ +small_parse_table/small_parse_table_1702 \ +small_parse_table/small_parse_table_1703 \ +small_parse_table/small_parse_table_1704 \ +small_parse_table/small_parse_table_1705 \ +small_parse_table/small_parse_table_1706 \ +small_parse_table/small_parse_table_1707 \ +small_parse_table/small_parse_table_1708 \ +small_parse_table/small_parse_table_1709 \ +small_parse_table/small_parse_table_171 \ +small_parse_table/small_parse_table_1710 \ +small_parse_table/small_parse_table_1711 \ +small_parse_table/small_parse_table_1712 \ +small_parse_table/small_parse_table_1713 \ +small_parse_table/small_parse_table_1714 \ +small_parse_table/small_parse_table_1715 \ +small_parse_table/small_parse_table_1716 \ +small_parse_table/small_parse_table_1717 \ +small_parse_table/small_parse_table_1718 \ +small_parse_table/small_parse_table_1719 \ +small_parse_table/small_parse_table_172 \ +small_parse_table/small_parse_table_1720 \ +small_parse_table/small_parse_table_1721 \ +small_parse_table/small_parse_table_1722 \ +small_parse_table/small_parse_table_1723 \ +small_parse_table/small_parse_table_1724 \ +small_parse_table/small_parse_table_1725 \ +small_parse_table/small_parse_table_1726 \ +small_parse_table/small_parse_table_1727 \ +small_parse_table/small_parse_table_1728 \ +small_parse_table/small_parse_table_1729 \ +small_parse_table/small_parse_table_173 \ +small_parse_table/small_parse_table_1730 \ +small_parse_table/small_parse_table_1731 \ +small_parse_table/small_parse_table_1732 \ +small_parse_table/small_parse_table_1733 \ +small_parse_table/small_parse_table_1734 \ +small_parse_table/small_parse_table_1735 \ +small_parse_table/small_parse_table_1736 \ +small_parse_table/small_parse_table_1737 \ +small_parse_table/small_parse_table_1738 \ +small_parse_table/small_parse_table_1739 \ +small_parse_table/small_parse_table_174 \ +small_parse_table/small_parse_table_1740 \ +small_parse_table/small_parse_table_1741 \ +small_parse_table/small_parse_table_1742 \ +small_parse_table/small_parse_table_1743 \ +small_parse_table/small_parse_table_1744 \ +small_parse_table/small_parse_table_1745 \ +small_parse_table/small_parse_table_1746 \ +small_parse_table/small_parse_table_1747 \ +small_parse_table/small_parse_table_1748 \ +small_parse_table/small_parse_table_1749 \ +small_parse_table/small_parse_table_175 \ +small_parse_table/small_parse_table_1750 \ +small_parse_table/small_parse_table_1751 \ +small_parse_table/small_parse_table_1752 \ +small_parse_table/small_parse_table_1753 \ +small_parse_table/small_parse_table_1754 \ +small_parse_table/small_parse_table_1755 \ +small_parse_table/small_parse_table_1756 \ +small_parse_table/small_parse_table_1757 \ +small_parse_table/small_parse_table_1758 \ +small_parse_table/small_parse_table_1759 \ +small_parse_table/small_parse_table_176 \ +small_parse_table/small_parse_table_1760 \ +small_parse_table/small_parse_table_1761 \ +small_parse_table/small_parse_table_1762 \ +small_parse_table/small_parse_table_1763 \ +small_parse_table/small_parse_table_1764 \ +small_parse_table/small_parse_table_1765 \ +small_parse_table/small_parse_table_1766 \ +small_parse_table/small_parse_table_1767 \ +small_parse_table/small_parse_table_1768 \ +small_parse_table/small_parse_table_1769 \ +small_parse_table/small_parse_table_177 \ +small_parse_table/small_parse_table_1770 \ +small_parse_table/small_parse_table_1771 \ +small_parse_table/small_parse_table_1772 \ +small_parse_table/small_parse_table_1773 \ +small_parse_table/small_parse_table_1774 \ +small_parse_table/small_parse_table_1775 \ +small_parse_table/small_parse_table_1776 \ +small_parse_table/small_parse_table_1777 \ +small_parse_table/small_parse_table_1778 \ +small_parse_table/small_parse_table_1779 \ +small_parse_table/small_parse_table_178 \ +small_parse_table/small_parse_table_1780 \ +small_parse_table/small_parse_table_1781 \ +small_parse_table/small_parse_table_1782 \ +small_parse_table/small_parse_table_1783 \ +small_parse_table/small_parse_table_1784 \ +small_parse_table/small_parse_table_1785 \ +small_parse_table/small_parse_table_1786 \ +small_parse_table/small_parse_table_1787 \ +small_parse_table/small_parse_table_1788 \ +small_parse_table/small_parse_table_1789 \ +small_parse_table/small_parse_table_179 \ +small_parse_table/small_parse_table_1790 \ +small_parse_table/small_parse_table_1791 \ +small_parse_table/small_parse_table_1792 \ +small_parse_table/small_parse_table_1793 \ +small_parse_table/small_parse_table_1794 \ +small_parse_table/small_parse_table_1795 \ +small_parse_table/small_parse_table_1796 \ +small_parse_table/small_parse_table_1797 \ +small_parse_table/small_parse_table_1798 \ +small_parse_table/small_parse_table_1799 \ +small_parse_table/small_parse_table_18 \ +small_parse_table/small_parse_table_180 \ +small_parse_table/small_parse_table_1800 \ +small_parse_table/small_parse_table_1801 \ +small_parse_table/small_parse_table_1802 \ +small_parse_table/small_parse_table_1803 \ +small_parse_table/small_parse_table_1804 \ +small_parse_table/small_parse_table_1805 \ +small_parse_table/small_parse_table_1806 \ +small_parse_table/small_parse_table_1807 \ +small_parse_table/small_parse_table_1808 \ +small_parse_table/small_parse_table_1809 \ +small_parse_table/small_parse_table_181 \ +small_parse_table/small_parse_table_1810 \ +small_parse_table/small_parse_table_1811 \ +small_parse_table/small_parse_table_1812 \ +small_parse_table/small_parse_table_1813 \ +small_parse_table/small_parse_table_1814 \ +small_parse_table/small_parse_table_1815 \ +small_parse_table/small_parse_table_1816 \ +small_parse_table/small_parse_table_1817 \ +small_parse_table/small_parse_table_1818 \ +small_parse_table/small_parse_table_1819 \ +small_parse_table/small_parse_table_182 \ +small_parse_table/small_parse_table_1820 \ +small_parse_table/small_parse_table_1821 \ +small_parse_table/small_parse_table_1822 \ +small_parse_table/small_parse_table_1823 \ +small_parse_table/small_parse_table_1824 \ +small_parse_table/small_parse_table_1825 \ +small_parse_table/small_parse_table_1826 \ +small_parse_table/small_parse_table_1827 \ +small_parse_table/small_parse_table_1828 \ +small_parse_table/small_parse_table_1829 \ +small_parse_table/small_parse_table_183 \ +small_parse_table/small_parse_table_1830 \ +small_parse_table/small_parse_table_1831 \ +small_parse_table/small_parse_table_1832 \ +small_parse_table/small_parse_table_1833 \ +small_parse_table/small_parse_table_1834 \ +small_parse_table/small_parse_table_1835 \ +small_parse_table/small_parse_table_1836 \ +small_parse_table/small_parse_table_1837 \ +small_parse_table/small_parse_table_1838 \ +small_parse_table/small_parse_table_1839 \ +small_parse_table/small_parse_table_184 \ +small_parse_table/small_parse_table_1840 \ +small_parse_table/small_parse_table_1841 \ +small_parse_table/small_parse_table_1842 \ +small_parse_table/small_parse_table_1843 \ +small_parse_table/small_parse_table_1844 \ +small_parse_table/small_parse_table_1845 \ +small_parse_table/small_parse_table_1846 \ +small_parse_table/small_parse_table_1847 \ +small_parse_table/small_parse_table_1848 \ +small_parse_table/small_parse_table_1849 \ +small_parse_table/small_parse_table_185 \ +small_parse_table/small_parse_table_1850 \ +small_parse_table/small_parse_table_1851 \ +small_parse_table/small_parse_table_1852 \ +small_parse_table/small_parse_table_1853 \ +small_parse_table/small_parse_table_1854 \ +small_parse_table/small_parse_table_1855 \ +small_parse_table/small_parse_table_1856 \ +small_parse_table/small_parse_table_1857 \ +small_parse_table/small_parse_table_1858 \ +small_parse_table/small_parse_table_1859 \ +small_parse_table/small_parse_table_186 \ +small_parse_table/small_parse_table_1860 \ +small_parse_table/small_parse_table_1861 \ +small_parse_table/small_parse_table_1862 \ +small_parse_table/small_parse_table_1863 \ +small_parse_table/small_parse_table_1864 \ +small_parse_table/small_parse_table_1865 \ +small_parse_table/small_parse_table_1866 \ +small_parse_table/small_parse_table_1867 \ +small_parse_table/small_parse_table_1868 \ +small_parse_table/small_parse_table_1869 \ +small_parse_table/small_parse_table_187 \ +small_parse_table/small_parse_table_1870 \ +small_parse_table/small_parse_table_1871 \ +small_parse_table/small_parse_table_1872 \ +small_parse_table/small_parse_table_1873 \ +small_parse_table/small_parse_table_1874 \ +small_parse_table/small_parse_table_1875 \ +small_parse_table/small_parse_table_1876 \ +small_parse_table/small_parse_table_1877 \ +small_parse_table/small_parse_table_1878 \ +small_parse_table/small_parse_table_1879 \ +small_parse_table/small_parse_table_188 \ +small_parse_table/small_parse_table_1880 \ +small_parse_table/small_parse_table_1881 \ +small_parse_table/small_parse_table_1882 \ +small_parse_table/small_parse_table_1883 \ +small_parse_table/small_parse_table_1884 \ +small_parse_table/small_parse_table_1885 \ +small_parse_table/small_parse_table_1886 \ +small_parse_table/small_parse_table_1887 \ +small_parse_table/small_parse_table_1888 \ +small_parse_table/small_parse_table_1889 \ +small_parse_table/small_parse_table_189 \ +small_parse_table/small_parse_table_1890 \ +small_parse_table/small_parse_table_1891 \ +small_parse_table/small_parse_table_1892 \ +small_parse_table/small_parse_table_1893 \ +small_parse_table/small_parse_table_1894 \ +small_parse_table/small_parse_table_1895 \ +small_parse_table/small_parse_table_1896 \ +small_parse_table/small_parse_table_1897 \ +small_parse_table/small_parse_table_1898 \ +small_parse_table/small_parse_table_1899 \ +small_parse_table/small_parse_table_19 \ +small_parse_table/small_parse_table_190 \ +small_parse_table/small_parse_table_1900 \ +small_parse_table/small_parse_table_1901 \ +small_parse_table/small_parse_table_1902 \ +small_parse_table/small_parse_table_1903 \ +small_parse_table/small_parse_table_1904 \ +small_parse_table/small_parse_table_1905 \ +small_parse_table/small_parse_table_1906 \ +small_parse_table/small_parse_table_1907 \ +small_parse_table/small_parse_table_1908 \ +small_parse_table/small_parse_table_1909 \ +small_parse_table/small_parse_table_191 \ +small_parse_table/small_parse_table_1910 \ +small_parse_table/small_parse_table_1911 \ +small_parse_table/small_parse_table_1912 \ +small_parse_table/small_parse_table_1913 \ +small_parse_table/small_parse_table_1914 \ +small_parse_table/small_parse_table_1915 \ +small_parse_table/small_parse_table_1916 \ +small_parse_table/small_parse_table_1917 \ +small_parse_table/small_parse_table_1918 \ +small_parse_table/small_parse_table_1919 \ +small_parse_table/small_parse_table_192 \ +small_parse_table/small_parse_table_1920 \ +small_parse_table/small_parse_table_1921 \ +small_parse_table/small_parse_table_1922 \ +small_parse_table/small_parse_table_1923 \ +small_parse_table/small_parse_table_1924 \ +small_parse_table/small_parse_table_1925 \ +small_parse_table/small_parse_table_1926 \ +small_parse_table/small_parse_table_1927 \ +small_parse_table/small_parse_table_1928 \ +small_parse_table/small_parse_table_1929 \ +small_parse_table/small_parse_table_193 \ +small_parse_table/small_parse_table_1930 \ +small_parse_table/small_parse_table_1931 \ +small_parse_table/small_parse_table_1932 \ +small_parse_table/small_parse_table_1933 \ +small_parse_table/small_parse_table_1934 \ +small_parse_table/small_parse_table_1935 \ +small_parse_table/small_parse_table_1936 \ +small_parse_table/small_parse_table_1937 \ +small_parse_table/small_parse_table_1938 \ +small_parse_table/small_parse_table_1939 \ +small_parse_table/small_parse_table_194 \ +small_parse_table/small_parse_table_1940 \ +small_parse_table/small_parse_table_1941 \ +small_parse_table/small_parse_table_1942 \ +small_parse_table/small_parse_table_1943 \ +small_parse_table/small_parse_table_1944 \ +small_parse_table/small_parse_table_1945 \ +small_parse_table/small_parse_table_1946 \ +small_parse_table/small_parse_table_1947 \ +small_parse_table/small_parse_table_1948 \ +small_parse_table/small_parse_table_1949 \ +small_parse_table/small_parse_table_195 \ +small_parse_table/small_parse_table_1950 \ +small_parse_table/small_parse_table_1951 \ +small_parse_table/small_parse_table_1952 \ +small_parse_table/small_parse_table_1953 \ +small_parse_table/small_parse_table_1954 \ +small_parse_table/small_parse_table_1955 \ +small_parse_table/small_parse_table_1956 \ +small_parse_table/small_parse_table_1957 \ +small_parse_table/small_parse_table_1958 \ +small_parse_table/small_parse_table_1959 \ +small_parse_table/small_parse_table_196 \ +small_parse_table/small_parse_table_1960 \ +small_parse_table/small_parse_table_1961 \ +small_parse_table/small_parse_table_1962 \ +small_parse_table/small_parse_table_1963 \ +small_parse_table/small_parse_table_1964 \ +small_parse_table/small_parse_table_1965 \ +small_parse_table/small_parse_table_1966 \ +small_parse_table/small_parse_table_1967 \ +small_parse_table/small_parse_table_1968 \ +small_parse_table/small_parse_table_1969 \ +small_parse_table/small_parse_table_197 \ +small_parse_table/small_parse_table_1970 \ +small_parse_table/small_parse_table_1971 \ +small_parse_table/small_parse_table_1972 \ +small_parse_table/small_parse_table_1973 \ +small_parse_table/small_parse_table_1974 \ +small_parse_table/small_parse_table_1975 \ +small_parse_table/small_parse_table_1976 \ +small_parse_table/small_parse_table_1977 \ +small_parse_table/small_parse_table_1978 \ +small_parse_table/small_parse_table_1979 \ +small_parse_table/small_parse_table_198 \ +small_parse_table/small_parse_table_1980 \ +small_parse_table/small_parse_table_1981 \ +small_parse_table/small_parse_table_1982 \ +small_parse_table/small_parse_table_1983 \ +small_parse_table/small_parse_table_1984 \ +small_parse_table/small_parse_table_1985 \ +small_parse_table/small_parse_table_1986 \ +small_parse_table/small_parse_table_1987 \ +small_parse_table/small_parse_table_1988 \ +small_parse_table/small_parse_table_1989 \ +small_parse_table/small_parse_table_199 \ +small_parse_table/small_parse_table_1990 \ +small_parse_table/small_parse_table_1991 \ +small_parse_table/small_parse_table_1992 \ +small_parse_table/small_parse_table_1993 \ +small_parse_table/small_parse_table_1994 \ +small_parse_table/small_parse_table_1995 \ +small_parse_table/small_parse_table_1996 \ +small_parse_table/small_parse_table_1997 \ +small_parse_table/small_parse_table_1998 \ +small_parse_table/small_parse_table_1999 \ +small_parse_table/small_parse_table_2 \ +small_parse_table/small_parse_table_20 \ +small_parse_table/small_parse_table_200 \ +small_parse_table/small_parse_table_2000 \ +small_parse_table/small_parse_table_2001 \ +small_parse_table/small_parse_table_2002 \ +small_parse_table/small_parse_table_2003 \ +small_parse_table/small_parse_table_2004 \ +small_parse_table/small_parse_table_2005 \ +small_parse_table/small_parse_table_2006 \ +small_parse_table/small_parse_table_2007 \ +small_parse_table/small_parse_table_2008 \ +small_parse_table/small_parse_table_2009 \ +small_parse_table/small_parse_table_201 \ +small_parse_table/small_parse_table_2010 \ +small_parse_table/small_parse_table_2011 \ +small_parse_table/small_parse_table_2012 \ +small_parse_table/small_parse_table_2013 \ +small_parse_table/small_parse_table_2014 \ +small_parse_table/small_parse_table_2015 \ +small_parse_table/small_parse_table_2016 \ +small_parse_table/small_parse_table_2017 \ +small_parse_table/small_parse_table_2018 \ +small_parse_table/small_parse_table_2019 \ +small_parse_table/small_parse_table_202 \ +small_parse_table/small_parse_table_2020 \ +small_parse_table/small_parse_table_2021 \ +small_parse_table/small_parse_table_2022 \ +small_parse_table/small_parse_table_2023 \ +small_parse_table/small_parse_table_2024 \ +small_parse_table/small_parse_table_2025 \ +small_parse_table/small_parse_table_2026 \ +small_parse_table/small_parse_table_2027 \ +small_parse_table/small_parse_table_2028 \ +small_parse_table/small_parse_table_2029 \ +small_parse_table/small_parse_table_203 \ +small_parse_table/small_parse_table_2030 \ +small_parse_table/small_parse_table_2031 \ +small_parse_table/small_parse_table_2032 \ +small_parse_table/small_parse_table_2033 \ +small_parse_table/small_parse_table_2034 \ +small_parse_table/small_parse_table_2035 \ +small_parse_table/small_parse_table_2036 \ +small_parse_table/small_parse_table_2037 \ +small_parse_table/small_parse_table_2038 \ +small_parse_table/small_parse_table_2039 \ +small_parse_table/small_parse_table_204 \ +small_parse_table/small_parse_table_2040 \ +small_parse_table/small_parse_table_2041 \ +small_parse_table/small_parse_table_2042 \ +small_parse_table/small_parse_table_2043 \ +small_parse_table/small_parse_table_2044 \ +small_parse_table/small_parse_table_2045 \ +small_parse_table/small_parse_table_2046 \ +small_parse_table/small_parse_table_2047 \ +small_parse_table/small_parse_table_2048 \ +small_parse_table/small_parse_table_2049 \ +small_parse_table/small_parse_table_205 \ +small_parse_table/small_parse_table_2050 \ +small_parse_table/small_parse_table_2051 \ +small_parse_table/small_parse_table_2052 \ +small_parse_table/small_parse_table_2053 \ +small_parse_table/small_parse_table_2054 \ +small_parse_table/small_parse_table_2055 \ +small_parse_table/small_parse_table_2056 \ +small_parse_table/small_parse_table_2057 \ +small_parse_table/small_parse_table_2058 \ +small_parse_table/small_parse_table_2059 \ +small_parse_table/small_parse_table_206 \ +small_parse_table/small_parse_table_2060 \ +small_parse_table/small_parse_table_2061 \ +small_parse_table/small_parse_table_2062 \ +small_parse_table/small_parse_table_2063 \ +small_parse_table/small_parse_table_2064 \ +small_parse_table/small_parse_table_2065 \ +small_parse_table/small_parse_table_2066 \ +small_parse_table/small_parse_table_2067 \ +small_parse_table/small_parse_table_2068 \ +small_parse_table/small_parse_table_2069 \ +small_parse_table/small_parse_table_207 \ +small_parse_table/small_parse_table_2070 \ +small_parse_table/small_parse_table_2071 \ +small_parse_table/small_parse_table_2072 \ +small_parse_table/small_parse_table_2073 \ +small_parse_table/small_parse_table_2074 \ +small_parse_table/small_parse_table_2075 \ +small_parse_table/small_parse_table_2076 \ +small_parse_table/small_parse_table_2077 \ +small_parse_table/small_parse_table_2078 \ +small_parse_table/small_parse_table_2079 \ +small_parse_table/small_parse_table_208 \ +small_parse_table/small_parse_table_2080 \ +small_parse_table/small_parse_table_2081 \ +small_parse_table/small_parse_table_2082 \ +small_parse_table/small_parse_table_2083 \ +small_parse_table/small_parse_table_2084 \ +small_parse_table/small_parse_table_2085 \ +small_parse_table/small_parse_table_2086 \ +small_parse_table/small_parse_table_2087 \ +small_parse_table/small_parse_table_2088 \ +small_parse_table/small_parse_table_2089 \ +small_parse_table/small_parse_table_209 \ +small_parse_table/small_parse_table_2090 \ +small_parse_table/small_parse_table_2091 \ +small_parse_table/small_parse_table_2092 \ +small_parse_table/small_parse_table_2093 \ +small_parse_table/small_parse_table_2094 \ +small_parse_table/small_parse_table_2095 \ +small_parse_table/small_parse_table_2096 \ +small_parse_table/small_parse_table_2097 \ +small_parse_table/small_parse_table_2098 \ +small_parse_table/small_parse_table_2099 \ +small_parse_table/small_parse_table_21 \ +small_parse_table/small_parse_table_210 \ +small_parse_table/small_parse_table_2100 \ +small_parse_table/small_parse_table_2101 \ +small_parse_table/small_parse_table_2102 \ +small_parse_table/small_parse_table_2103 \ +small_parse_table/small_parse_table_2104 \ +small_parse_table/small_parse_table_2105 \ +small_parse_table/small_parse_table_2106 \ +small_parse_table/small_parse_table_2107 \ +small_parse_table/small_parse_table_2108 \ +small_parse_table/small_parse_table_2109 \ +small_parse_table/small_parse_table_211 \ +small_parse_table/small_parse_table_2110 \ +small_parse_table/small_parse_table_2111 \ +small_parse_table/small_parse_table_2112 \ +small_parse_table/small_parse_table_2113 \ +small_parse_table/small_parse_table_2114 \ +small_parse_table/small_parse_table_2115 \ +small_parse_table/small_parse_table_2116 \ +small_parse_table/small_parse_table_2117 \ +small_parse_table/small_parse_table_2118 \ +small_parse_table/small_parse_table_2119 \ +small_parse_table/small_parse_table_212 \ +small_parse_table/small_parse_table_2120 \ +small_parse_table/small_parse_table_2121 \ +small_parse_table/small_parse_table_2122 \ +small_parse_table/small_parse_table_2123 \ +small_parse_table/small_parse_table_2124 \ +small_parse_table/small_parse_table_2125 \ +small_parse_table/small_parse_table_2126 \ +small_parse_table/small_parse_table_2127 \ +small_parse_table/small_parse_table_2128 \ +small_parse_table/small_parse_table_2129 \ +small_parse_table/small_parse_table_213 \ +small_parse_table/small_parse_table_2130 \ +small_parse_table/small_parse_table_2131 \ +small_parse_table/small_parse_table_2132 \ +small_parse_table/small_parse_table_2133 \ +small_parse_table/small_parse_table_2134 \ +small_parse_table/small_parse_table_2135 \ +small_parse_table/small_parse_table_2136 \ +small_parse_table/small_parse_table_2137 \ +small_parse_table/small_parse_table_2138 \ +small_parse_table/small_parse_table_2139 \ +small_parse_table/small_parse_table_214 \ +small_parse_table/small_parse_table_2140 \ +small_parse_table/small_parse_table_2141 \ +small_parse_table/small_parse_table_2142 \ +small_parse_table/small_parse_table_2143 \ +small_parse_table/small_parse_table_2144 \ +small_parse_table/small_parse_table_2145 \ +small_parse_table/small_parse_table_2146 \ +small_parse_table/small_parse_table_2147 \ +small_parse_table/small_parse_table_2148 \ +small_parse_table/small_parse_table_2149 \ +small_parse_table/small_parse_table_215 \ +small_parse_table/small_parse_table_2150 \ +small_parse_table/small_parse_table_2151 \ +small_parse_table/small_parse_table_2152 \ +small_parse_table/small_parse_table_2153 \ +small_parse_table/small_parse_table_2154 \ +small_parse_table/small_parse_table_2155 \ +small_parse_table/small_parse_table_2156 \ +small_parse_table/small_parse_table_2157 \ +small_parse_table/small_parse_table_2158 \ +small_parse_table/small_parse_table_2159 \ +small_parse_table/small_parse_table_216 \ +small_parse_table/small_parse_table_2160 \ +small_parse_table/small_parse_table_2161 \ +small_parse_table/small_parse_table_2162 \ +small_parse_table/small_parse_table_2163 \ +small_parse_table/small_parse_table_2164 \ +small_parse_table/small_parse_table_2165 \ +small_parse_table/small_parse_table_2166 \ +small_parse_table/small_parse_table_2167 \ +small_parse_table/small_parse_table_2168 \ +small_parse_table/small_parse_table_2169 \ +small_parse_table/small_parse_table_217 \ +small_parse_table/small_parse_table_2170 \ +small_parse_table/small_parse_table_2171 \ +small_parse_table/small_parse_table_2172 \ +small_parse_table/small_parse_table_2173 \ +small_parse_table/small_parse_table_2174 \ +small_parse_table/small_parse_table_2175 \ +small_parse_table/small_parse_table_2176 \ +small_parse_table/small_parse_table_2177 \ +small_parse_table/small_parse_table_2178 \ +small_parse_table/small_parse_table_2179 \ +small_parse_table/small_parse_table_218 \ +small_parse_table/small_parse_table_2180 \ +small_parse_table/small_parse_table_2181 \ +small_parse_table/small_parse_table_2182 \ +small_parse_table/small_parse_table_2183 \ +small_parse_table/small_parse_table_2184 \ +small_parse_table/small_parse_table_2185 \ +small_parse_table/small_parse_table_2186 \ +small_parse_table/small_parse_table_2187 \ +small_parse_table/small_parse_table_2188 \ +small_parse_table/small_parse_table_2189 \ +small_parse_table/small_parse_table_219 \ +small_parse_table/small_parse_table_2190 \ +small_parse_table/small_parse_table_2191 \ +small_parse_table/small_parse_table_2192 \ +small_parse_table/small_parse_table_2193 \ +small_parse_table/small_parse_table_2194 \ +small_parse_table/small_parse_table_2195 \ +small_parse_table/small_parse_table_2196 \ +small_parse_table/small_parse_table_2197 \ +small_parse_table/small_parse_table_2198 \ +small_parse_table/small_parse_table_2199 \ +small_parse_table/small_parse_table_22 \ +small_parse_table/small_parse_table_220 \ +small_parse_table/small_parse_table_2200 \ +small_parse_table/small_parse_table_2201 \ +small_parse_table/small_parse_table_2202 \ +small_parse_table/small_parse_table_2203 \ +small_parse_table/small_parse_table_2204 \ +small_parse_table/small_parse_table_2205 \ +small_parse_table/small_parse_table_2206 \ +small_parse_table/small_parse_table_2207 \ +small_parse_table/small_parse_table_2208 \ +small_parse_table/small_parse_table_2209 \ +small_parse_table/small_parse_table_221 \ +small_parse_table/small_parse_table_2210 \ +small_parse_table/small_parse_table_2211 \ +small_parse_table/small_parse_table_2212 \ +small_parse_table/small_parse_table_2213 \ +small_parse_table/small_parse_table_2214 \ +small_parse_table/small_parse_table_2215 \ +small_parse_table/small_parse_table_2216 \ +small_parse_table/small_parse_table_2217 \ +small_parse_table/small_parse_table_2218 \ +small_parse_table/small_parse_table_2219 \ +small_parse_table/small_parse_table_222 \ +small_parse_table/small_parse_table_2220 \ +small_parse_table/small_parse_table_2221 \ +small_parse_table/small_parse_table_2222 \ +small_parse_table/small_parse_table_2223 \ +small_parse_table/small_parse_table_2224 \ +small_parse_table/small_parse_table_2225 \ +small_parse_table/small_parse_table_2226 \ +small_parse_table/small_parse_table_2227 \ +small_parse_table/small_parse_table_2228 \ +small_parse_table/small_parse_table_2229 \ +small_parse_table/small_parse_table_223 \ +small_parse_table/small_parse_table_2230 \ +small_parse_table/small_parse_table_2231 \ +small_parse_table/small_parse_table_2232 \ +small_parse_table/small_parse_table_2233 \ +small_parse_table/small_parse_table_2234 \ +small_parse_table/small_parse_table_2235 \ +small_parse_table/small_parse_table_2236 \ +small_parse_table/small_parse_table_2237 \ +small_parse_table/small_parse_table_2238 \ +small_parse_table/small_parse_table_2239 \ +small_parse_table/small_parse_table_224 \ +small_parse_table/small_parse_table_2240 \ +small_parse_table/small_parse_table_2241 \ +small_parse_table/small_parse_table_2242 \ +small_parse_table/small_parse_table_2243 \ +small_parse_table/small_parse_table_2244 \ +small_parse_table/small_parse_table_2245 \ +small_parse_table/small_parse_table_2246 \ +small_parse_table/small_parse_table_2247 \ +small_parse_table/small_parse_table_2248 \ +small_parse_table/small_parse_table_2249 \ +small_parse_table/small_parse_table_225 \ +small_parse_table/small_parse_table_2250 \ +small_parse_table/small_parse_table_2251 \ +small_parse_table/small_parse_table_2252 \ +small_parse_table/small_parse_table_2253 \ +small_parse_table/small_parse_table_2254 \ +small_parse_table/small_parse_table_2255 \ +small_parse_table/small_parse_table_2256 \ +small_parse_table/small_parse_table_2257 \ +small_parse_table/small_parse_table_2258 \ +small_parse_table/small_parse_table_2259 \ +small_parse_table/small_parse_table_226 \ +small_parse_table/small_parse_table_2260 \ +small_parse_table/small_parse_table_2261 \ +small_parse_table/small_parse_table_2262 \ +small_parse_table/small_parse_table_2263 \ +small_parse_table/small_parse_table_2264 \ +small_parse_table/small_parse_table_2265 \ +small_parse_table/small_parse_table_2266 \ +small_parse_table/small_parse_table_2267 \ +small_parse_table/small_parse_table_2268 \ +small_parse_table/small_parse_table_2269 \ +small_parse_table/small_parse_table_227 \ +small_parse_table/small_parse_table_2270 \ +small_parse_table/small_parse_table_2271 \ +small_parse_table/small_parse_table_2272 \ +small_parse_table/small_parse_table_2273 \ +small_parse_table/small_parse_table_2274 \ +small_parse_table/small_parse_table_2275 \ +small_parse_table/small_parse_table_2276 \ +small_parse_table/small_parse_table_2277 \ +small_parse_table/small_parse_table_2278 \ +small_parse_table/small_parse_table_2279 \ +small_parse_table/small_parse_table_228 \ +small_parse_table/small_parse_table_2280 \ +small_parse_table/small_parse_table_2281 \ +small_parse_table/small_parse_table_2282 \ +small_parse_table/small_parse_table_2283 \ +small_parse_table/small_parse_table_2284 \ +small_parse_table/small_parse_table_2285 \ +small_parse_table/small_parse_table_2286 \ +small_parse_table/small_parse_table_2287 \ +small_parse_table/small_parse_table_2288 \ +small_parse_table/small_parse_table_2289 \ +small_parse_table/small_parse_table_229 \ +small_parse_table/small_parse_table_2290 \ +small_parse_table/small_parse_table_2291 \ +small_parse_table/small_parse_table_2292 \ +small_parse_table/small_parse_table_2293 \ +small_parse_table/small_parse_table_2294 \ +small_parse_table/small_parse_table_2295 \ +small_parse_table/small_parse_table_2296 \ +small_parse_table/small_parse_table_2297 \ +small_parse_table/small_parse_table_2298 \ +small_parse_table/small_parse_table_2299 \ +small_parse_table/small_parse_table_23 \ +small_parse_table/small_parse_table_230 \ +small_parse_table/small_parse_table_2300 \ +small_parse_table/small_parse_table_2301 \ +small_parse_table/small_parse_table_2302 \ +small_parse_table/small_parse_table_2303 \ +small_parse_table/small_parse_table_2304 \ +small_parse_table/small_parse_table_2305 \ +small_parse_table/small_parse_table_2306 \ +small_parse_table/small_parse_table_2307 \ +small_parse_table/small_parse_table_2308 \ +small_parse_table/small_parse_table_2309 \ +small_parse_table/small_parse_table_231 \ +small_parse_table/small_parse_table_2310 \ +small_parse_table/small_parse_table_2311 \ +small_parse_table/small_parse_table_2312 \ +small_parse_table/small_parse_table_2313 \ +small_parse_table/small_parse_table_2314 \ +small_parse_table/small_parse_table_2315 \ +small_parse_table/small_parse_table_2316 \ +small_parse_table/small_parse_table_2317 \ +small_parse_table/small_parse_table_2318 \ +small_parse_table/small_parse_table_2319 \ +small_parse_table/small_parse_table_232 \ +small_parse_table/small_parse_table_2320 \ +small_parse_table/small_parse_table_2321 \ +small_parse_table/small_parse_table_2322 \ +small_parse_table/small_parse_table_2323 \ +small_parse_table/small_parse_table_2324 \ +small_parse_table/small_parse_table_2325 \ +small_parse_table/small_parse_table_2326 \ +small_parse_table/small_parse_table_2327 \ +small_parse_table/small_parse_table_2328 \ +small_parse_table/small_parse_table_2329 \ +small_parse_table/small_parse_table_233 \ +small_parse_table/small_parse_table_2330 \ +small_parse_table/small_parse_table_2331 \ +small_parse_table/small_parse_table_2332 \ +small_parse_table/small_parse_table_2333 \ +small_parse_table/small_parse_table_2334 \ +small_parse_table/small_parse_table_2335 \ +small_parse_table/small_parse_table_2336 \ +small_parse_table/small_parse_table_2337 \ +small_parse_table/small_parse_table_2338 \ +small_parse_table/small_parse_table_2339 \ +small_parse_table/small_parse_table_234 \ +small_parse_table/small_parse_table_2340 \ +small_parse_table/small_parse_table_2341 \ +small_parse_table/small_parse_table_2342 \ +small_parse_table/small_parse_table_2343 \ +small_parse_table/small_parse_table_2344 \ +small_parse_table/small_parse_table_2345 \ +small_parse_table/small_parse_table_2346 \ +small_parse_table/small_parse_table_2347 \ +small_parse_table/small_parse_table_2348 \ +small_parse_table/small_parse_table_2349 \ +small_parse_table/small_parse_table_235 \ +small_parse_table/small_parse_table_2350 \ +small_parse_table/small_parse_table_2351 \ +small_parse_table/small_parse_table_2352 \ +small_parse_table/small_parse_table_2353 \ +small_parse_table/small_parse_table_2354 \ +small_parse_table/small_parse_table_2355 \ +small_parse_table/small_parse_table_2356 \ +small_parse_table/small_parse_table_2357 \ +small_parse_table/small_parse_table_2358 \ +small_parse_table/small_parse_table_2359 \ +small_parse_table/small_parse_table_236 \ +small_parse_table/small_parse_table_2360 \ +small_parse_table/small_parse_table_2361 \ +small_parse_table/small_parse_table_2362 \ +small_parse_table/small_parse_table_2363 \ +small_parse_table/small_parse_table_2364 \ +small_parse_table/small_parse_table_2365 \ +small_parse_table/small_parse_table_2366 \ +small_parse_table/small_parse_table_2367 \ +small_parse_table/small_parse_table_2368 \ +small_parse_table/small_parse_table_2369 \ +small_parse_table/small_parse_table_237 \ +small_parse_table/small_parse_table_2370 \ +small_parse_table/small_parse_table_2371 \ +small_parse_table/small_parse_table_2372 \ +small_parse_table/small_parse_table_2373 \ +small_parse_table/small_parse_table_2374 \ +small_parse_table/small_parse_table_2375 \ +small_parse_table/small_parse_table_2376 \ +small_parse_table/small_parse_table_2377 \ +small_parse_table/small_parse_table_2378 \ +small_parse_table/small_parse_table_2379 \ +small_parse_table/small_parse_table_238 \ +small_parse_table/small_parse_table_2380 \ +small_parse_table/small_parse_table_2381 \ +small_parse_table/small_parse_table_2382 \ +small_parse_table/small_parse_table_2383 \ +small_parse_table/small_parse_table_2384 \ +small_parse_table/small_parse_table_2385 \ +small_parse_table/small_parse_table_2386 \ +small_parse_table/small_parse_table_2387 \ +small_parse_table/small_parse_table_2388 \ +small_parse_table/small_parse_table_2389 \ +small_parse_table/small_parse_table_239 \ +small_parse_table/small_parse_table_2390 \ +small_parse_table/small_parse_table_2391 \ +small_parse_table/small_parse_table_2392 \ +small_parse_table/small_parse_table_2393 \ +small_parse_table/small_parse_table_2394 \ +small_parse_table/small_parse_table_2395 \ +small_parse_table/small_parse_table_2396 \ +small_parse_table/small_parse_table_2397 \ +small_parse_table/small_parse_table_2398 \ +small_parse_table/small_parse_table_2399 \ +small_parse_table/small_parse_table_24 \ +small_parse_table/small_parse_table_240 \ +small_parse_table/small_parse_table_2400 \ +small_parse_table/small_parse_table_2401 \ +small_parse_table/small_parse_table_2402 \ +small_parse_table/small_parse_table_2403 \ +small_parse_table/small_parse_table_2404 \ +small_parse_table/small_parse_table_2405 \ +small_parse_table/small_parse_table_2406 \ +small_parse_table/small_parse_table_2407 \ +small_parse_table/small_parse_table_2408 \ +small_parse_table/small_parse_table_2409 \ +small_parse_table/small_parse_table_241 \ +small_parse_table/small_parse_table_2410 \ +small_parse_table/small_parse_table_2411 \ +small_parse_table/small_parse_table_2412 \ +small_parse_table/small_parse_table_2413 \ +small_parse_table/small_parse_table_2414 \ +small_parse_table/small_parse_table_2415 \ +small_parse_table/small_parse_table_2416 \ +small_parse_table/small_parse_table_2417 \ +small_parse_table/small_parse_table_2418 \ +small_parse_table/small_parse_table_2419 \ +small_parse_table/small_parse_table_242 \ +small_parse_table/small_parse_table_2420 \ +small_parse_table/small_parse_table_2421 \ +small_parse_table/small_parse_table_2422 \ +small_parse_table/small_parse_table_2423 \ +small_parse_table/small_parse_table_2424 \ +small_parse_table/small_parse_table_2425 \ +small_parse_table/small_parse_table_2426 \ +small_parse_table/small_parse_table_2427 \ +small_parse_table/small_parse_table_2428 \ +small_parse_table/small_parse_table_2429 \ +small_parse_table/small_parse_table_243 \ +small_parse_table/small_parse_table_2430 \ +small_parse_table/small_parse_table_2431 \ +small_parse_table/small_parse_table_2432 \ +small_parse_table/small_parse_table_2433 \ +small_parse_table/small_parse_table_2434 \ +small_parse_table/small_parse_table_2435 \ +small_parse_table/small_parse_table_2436 \ +small_parse_table/small_parse_table_2437 \ +small_parse_table/small_parse_table_2438 \ +small_parse_table/small_parse_table_2439 \ +small_parse_table/small_parse_table_244 \ +small_parse_table/small_parse_table_2440 \ +small_parse_table/small_parse_table_2441 \ +small_parse_table/small_parse_table_2442 \ +small_parse_table/small_parse_table_2443 \ +small_parse_table/small_parse_table_2444 \ +small_parse_table/small_parse_table_2445 \ +small_parse_table/small_parse_table_2446 \ +small_parse_table/small_parse_table_2447 \ +small_parse_table/small_parse_table_2448 \ +small_parse_table/small_parse_table_2449 \ +small_parse_table/small_parse_table_245 \ +small_parse_table/small_parse_table_2450 \ +small_parse_table/small_parse_table_2451 \ +small_parse_table/small_parse_table_2452 \ +small_parse_table/small_parse_table_2453 \ +small_parse_table/small_parse_table_2454 \ +small_parse_table/small_parse_table_2455 \ +small_parse_table/small_parse_table_2456 \ +small_parse_table/small_parse_table_2457 \ +small_parse_table/small_parse_table_2458 \ +small_parse_table/small_parse_table_2459 \ +small_parse_table/small_parse_table_246 \ +small_parse_table/small_parse_table_2460 \ +small_parse_table/small_parse_table_2461 \ +small_parse_table/small_parse_table_2462 \ +small_parse_table/small_parse_table_2463 \ +small_parse_table/small_parse_table_2464 \ +small_parse_table/small_parse_table_2465 \ +small_parse_table/small_parse_table_2466 \ +small_parse_table/small_parse_table_2467 \ +small_parse_table/small_parse_table_2468 \ +small_parse_table/small_parse_table_2469 \ +small_parse_table/small_parse_table_247 \ +small_parse_table/small_parse_table_2470 \ +small_parse_table/small_parse_table_2471 \ +small_parse_table/small_parse_table_2472 \ +small_parse_table/small_parse_table_2473 \ +small_parse_table/small_parse_table_2474 \ +small_parse_table/small_parse_table_2475 \ +small_parse_table/small_parse_table_2476 \ +small_parse_table/small_parse_table_2477 \ +small_parse_table/small_parse_table_2478 \ +small_parse_table/small_parse_table_2479 \ +small_parse_table/small_parse_table_248 \ +small_parse_table/small_parse_table_2480 \ +small_parse_table/small_parse_table_2481 \ +small_parse_table/small_parse_table_2482 \ +small_parse_table/small_parse_table_2483 \ +small_parse_table/small_parse_table_2484 \ +small_parse_table/small_parse_table_2485 \ +small_parse_table/small_parse_table_2486 \ +small_parse_table/small_parse_table_2487 \ +small_parse_table/small_parse_table_2488 \ +small_parse_table/small_parse_table_2489 \ +small_parse_table/small_parse_table_249 \ +small_parse_table/small_parse_table_2490 \ +small_parse_table/small_parse_table_2491 \ +small_parse_table/small_parse_table_2492 \ +small_parse_table/small_parse_table_2493 \ +small_parse_table/small_parse_table_2494 \ +small_parse_table/small_parse_table_2495 \ +small_parse_table/small_parse_table_2496 \ +small_parse_table/small_parse_table_2497 \ +small_parse_table/small_parse_table_2498 \ +small_parse_table/small_parse_table_2499 \ +small_parse_table/small_parse_table_25 \ +small_parse_table/small_parse_table_250 \ +small_parse_table/small_parse_table_2500 \ +small_parse_table/small_parse_table_2501 \ +small_parse_table/small_parse_table_2502 \ +small_parse_table/small_parse_table_2503 \ +small_parse_table/small_parse_table_2504 \ +small_parse_table/small_parse_table_2505 \ +small_parse_table/small_parse_table_2506 \ +small_parse_table/small_parse_table_2507 \ +small_parse_table/small_parse_table_2508 \ +small_parse_table/small_parse_table_2509 \ +small_parse_table/small_parse_table_251 \ +small_parse_table/small_parse_table_2510 \ +small_parse_table/small_parse_table_2511 \ +small_parse_table/small_parse_table_2512 \ +small_parse_table/small_parse_table_2513 \ +small_parse_table/small_parse_table_2514 \ +small_parse_table/small_parse_table_2515 \ +small_parse_table/small_parse_table_2516 \ +small_parse_table/small_parse_table_2517 \ +small_parse_table/small_parse_table_2518 \ +small_parse_table/small_parse_table_2519 \ +small_parse_table/small_parse_table_252 \ +small_parse_table/small_parse_table_2520 \ +small_parse_table/small_parse_table_2521 \ +small_parse_table/small_parse_table_2522 \ +small_parse_table/small_parse_table_2523 \ +small_parse_table/small_parse_table_2524 \ +small_parse_table/small_parse_table_2525 \ +small_parse_table/small_parse_table_2526 \ +small_parse_table/small_parse_table_2527 \ +small_parse_table/small_parse_table_2528 \ +small_parse_table/small_parse_table_2529 \ +small_parse_table/small_parse_table_253 \ +small_parse_table/small_parse_table_2530 \ +small_parse_table/small_parse_table_2531 \ +small_parse_table/small_parse_table_2532 \ +small_parse_table/small_parse_table_2533 \ +small_parse_table/small_parse_table_2534 \ +small_parse_table/small_parse_table_2535 \ +small_parse_table/small_parse_table_2536 \ +small_parse_table/small_parse_table_2537 \ +small_parse_table/small_parse_table_2538 \ +small_parse_table/small_parse_table_2539 \ +small_parse_table/small_parse_table_254 \ +small_parse_table/small_parse_table_2540 \ +small_parse_table/small_parse_table_2541 \ +small_parse_table/small_parse_table_2542 \ +small_parse_table/small_parse_table_2543 \ +small_parse_table/small_parse_table_2544 \ +small_parse_table/small_parse_table_2545 \ +small_parse_table/small_parse_table_2546 \ +small_parse_table/small_parse_table_2547 \ +small_parse_table/small_parse_table_2548 \ +small_parse_table/small_parse_table_2549 \ +small_parse_table/small_parse_table_255 \ +small_parse_table/small_parse_table_2550 \ +small_parse_table/small_parse_table_2551 \ +small_parse_table/small_parse_table_2552 \ +small_parse_table/small_parse_table_2553 \ +small_parse_table/small_parse_table_2554 \ +small_parse_table/small_parse_table_2555 \ +small_parse_table/small_parse_table_2556 \ +small_parse_table/small_parse_table_2557 \ +small_parse_table/small_parse_table_2558 \ +small_parse_table/small_parse_table_2559 \ +small_parse_table/small_parse_table_256 \ +small_parse_table/small_parse_table_2560 \ +small_parse_table/small_parse_table_2561 \ +small_parse_table/small_parse_table_2562 \ +small_parse_table/small_parse_table_2563 \ +small_parse_table/small_parse_table_2564 \ +small_parse_table/small_parse_table_2565 \ +small_parse_table/small_parse_table_2566 \ +small_parse_table/small_parse_table_2567 \ +small_parse_table/small_parse_table_2568 \ +small_parse_table/small_parse_table_2569 \ +small_parse_table/small_parse_table_257 \ +small_parse_table/small_parse_table_2570 \ +small_parse_table/small_parse_table_2571 \ +small_parse_table/small_parse_table_2572 \ +small_parse_table/small_parse_table_2573 \ +small_parse_table/small_parse_table_2574 \ +small_parse_table/small_parse_table_2575 \ +small_parse_table/small_parse_table_2576 \ +small_parse_table/small_parse_table_2577 \ +small_parse_table/small_parse_table_2578 \ +small_parse_table/small_parse_table_2579 \ +small_parse_table/small_parse_table_258 \ +small_parse_table/small_parse_table_2580 \ +small_parse_table/small_parse_table_2581 \ +small_parse_table/small_parse_table_2582 \ +small_parse_table/small_parse_table_2583 \ +small_parse_table/small_parse_table_2584 \ +small_parse_table/small_parse_table_2585 \ +small_parse_table/small_parse_table_2586 \ +small_parse_table/small_parse_table_2587 \ +small_parse_table/small_parse_table_2588 \ +small_parse_table/small_parse_table_2589 \ +small_parse_table/small_parse_table_259 \ +small_parse_table/small_parse_table_2590 \ +small_parse_table/small_parse_table_2591 \ +small_parse_table/small_parse_table_2592 \ +small_parse_table/small_parse_table_2593 \ +small_parse_table/small_parse_table_2594 \ +small_parse_table/small_parse_table_2595 \ +small_parse_table/small_parse_table_2596 \ +small_parse_table/small_parse_table_2597 \ +small_parse_table/small_parse_table_2598 \ +small_parse_table/small_parse_table_2599 \ +small_parse_table/small_parse_table_26 \ +small_parse_table/small_parse_table_260 \ +small_parse_table/small_parse_table_2600 \ +small_parse_table/small_parse_table_2601 \ +small_parse_table/small_parse_table_2602 \ +small_parse_table/small_parse_table_2603 \ +small_parse_table/small_parse_table_2604 \ +small_parse_table/small_parse_table_2605 \ +small_parse_table/small_parse_table_2606 \ +small_parse_table/small_parse_table_2607 \ +small_parse_table/small_parse_table_2608 \ +small_parse_table/small_parse_table_2609 \ +small_parse_table/small_parse_table_261 \ +small_parse_table/small_parse_table_2610 \ +small_parse_table/small_parse_table_2611 \ +small_parse_table/small_parse_table_2612 \ +small_parse_table/small_parse_table_2613 \ +small_parse_table/small_parse_table_2614 \ +small_parse_table/small_parse_table_2615 \ +small_parse_table/small_parse_table_2616 \ +small_parse_table/small_parse_table_2617 \ +small_parse_table/small_parse_table_2618 \ +small_parse_table/small_parse_table_2619 \ +small_parse_table/small_parse_table_262 \ +small_parse_table/small_parse_table_2620 \ +small_parse_table/small_parse_table_2621 \ +small_parse_table/small_parse_table_2622 \ +small_parse_table/small_parse_table_2623 \ +small_parse_table/small_parse_table_2624 \ +small_parse_table/small_parse_table_2625 \ +small_parse_table/small_parse_table_2626 \ +small_parse_table/small_parse_table_2627 \ +small_parse_table/small_parse_table_2628 \ +small_parse_table/small_parse_table_2629 \ +small_parse_table/small_parse_table_263 \ +small_parse_table/small_parse_table_2630 \ +small_parse_table/small_parse_table_2631 \ +small_parse_table/small_parse_table_2632 \ +small_parse_table/small_parse_table_2633 \ +small_parse_table/small_parse_table_2634 \ +small_parse_table/small_parse_table_2635 \ +small_parse_table/small_parse_table_2636 \ +small_parse_table/small_parse_table_2637 \ +small_parse_table/small_parse_table_2638 \ +small_parse_table/small_parse_table_2639 \ +small_parse_table/small_parse_table_264 \ +small_parse_table/small_parse_table_2640 \ +small_parse_table/small_parse_table_2641 \ +small_parse_table/small_parse_table_2642 \ +small_parse_table/small_parse_table_2643 \ +small_parse_table/small_parse_table_2644 \ +small_parse_table/small_parse_table_2645 \ +small_parse_table/small_parse_table_2646 \ +small_parse_table/small_parse_table_2647 \ +small_parse_table/small_parse_table_2648 \ +small_parse_table/small_parse_table_2649 \ +small_parse_table/small_parse_table_265 \ +small_parse_table/small_parse_table_2650 \ +small_parse_table/small_parse_table_2651 \ +small_parse_table/small_parse_table_2652 \ +small_parse_table/small_parse_table_2653 \ +small_parse_table/small_parse_table_2654 \ +small_parse_table/small_parse_table_2655 \ +small_parse_table/small_parse_table_2656 \ +small_parse_table/small_parse_table_2657 \ +small_parse_table/small_parse_table_2658 \ +small_parse_table/small_parse_table_2659 \ +small_parse_table/small_parse_table_266 \ +small_parse_table/small_parse_table_2660 \ +small_parse_table/small_parse_table_2661 \ +small_parse_table/small_parse_table_2662 \ +small_parse_table/small_parse_table_2663 \ +small_parse_table/small_parse_table_2664 \ +small_parse_table/small_parse_table_2665 \ +small_parse_table/small_parse_table_2666 \ +small_parse_table/small_parse_table_2667 \ +small_parse_table/small_parse_table_2668 \ +small_parse_table/small_parse_table_2669 \ +small_parse_table/small_parse_table_267 \ +small_parse_table/small_parse_table_2670 \ +small_parse_table/small_parse_table_2671 \ +small_parse_table/small_parse_table_2672 \ +small_parse_table/small_parse_table_2673 \ +small_parse_table/small_parse_table_2674 \ +small_parse_table/small_parse_table_2675 \ +small_parse_table/small_parse_table_2676 \ +small_parse_table/small_parse_table_2677 \ +small_parse_table/small_parse_table_2678 \ +small_parse_table/small_parse_table_2679 \ +small_parse_table/small_parse_table_268 \ +small_parse_table/small_parse_table_2680 \ +small_parse_table/small_parse_table_2681 \ +small_parse_table/small_parse_table_2682 \ +small_parse_table/small_parse_table_2683 \ +small_parse_table/small_parse_table_2684 \ +small_parse_table/small_parse_table_2685 \ +small_parse_table/small_parse_table_2686 \ +small_parse_table/small_parse_table_2687 \ +small_parse_table/small_parse_table_2688 \ +small_parse_table/small_parse_table_2689 \ +small_parse_table/small_parse_table_269 \ +small_parse_table/small_parse_table_2690 \ +small_parse_table/small_parse_table_2691 \ +small_parse_table/small_parse_table_2692 \ +small_parse_table/small_parse_table_2693 \ +small_parse_table/small_parse_table_2694 \ +small_parse_table/small_parse_table_2695 \ +small_parse_table/small_parse_table_2696 \ +small_parse_table/small_parse_table_2697 \ +small_parse_table/small_parse_table_2698 \ +small_parse_table/small_parse_table_2699 \ +small_parse_table/small_parse_table_27 \ +small_parse_table/small_parse_table_270 \ +small_parse_table/small_parse_table_2700 \ +small_parse_table/small_parse_table_2701 \ +small_parse_table/small_parse_table_2702 \ +small_parse_table/small_parse_table_2703 \ +small_parse_table/small_parse_table_2704 \ +small_parse_table/small_parse_table_2705 \ +small_parse_table/small_parse_table_2706 \ +small_parse_table/small_parse_table_2707 \ +small_parse_table/small_parse_table_2708 \ +small_parse_table/small_parse_table_2709 \ +small_parse_table/small_parse_table_271 \ +small_parse_table/small_parse_table_2710 \ +small_parse_table/small_parse_table_2711 \ +small_parse_table/small_parse_table_2712 \ +small_parse_table/small_parse_table_2713 \ +small_parse_table/small_parse_table_2714 \ +small_parse_table/small_parse_table_2715 \ +small_parse_table/small_parse_table_2716 \ +small_parse_table/small_parse_table_2717 \ +small_parse_table/small_parse_table_2718 \ +small_parse_table/small_parse_table_2719 \ +small_parse_table/small_parse_table_272 \ +small_parse_table/small_parse_table_2720 \ +small_parse_table/small_parse_table_2721 \ +small_parse_table/small_parse_table_2722 \ +small_parse_table/small_parse_table_2723 \ +small_parse_table/small_parse_table_2724 \ +small_parse_table/small_parse_table_2725 \ +small_parse_table/small_parse_table_2726 \ +small_parse_table/small_parse_table_2727 \ +small_parse_table/small_parse_table_2728 \ +small_parse_table/small_parse_table_2729 \ +small_parse_table/small_parse_table_273 \ +small_parse_table/small_parse_table_2730 \ +small_parse_table/small_parse_table_2731 \ +small_parse_table/small_parse_table_2732 \ +small_parse_table/small_parse_table_2733 \ +small_parse_table/small_parse_table_2734 \ +small_parse_table/small_parse_table_2735 \ +small_parse_table/small_parse_table_2736 \ +small_parse_table/small_parse_table_2737 \ +small_parse_table/small_parse_table_2738 \ +small_parse_table/small_parse_table_2739 \ +small_parse_table/small_parse_table_274 \ +small_parse_table/small_parse_table_2740 \ +small_parse_table/small_parse_table_2741 \ +small_parse_table/small_parse_table_2742 \ +small_parse_table/small_parse_table_2743 \ +small_parse_table/small_parse_table_2744 \ +small_parse_table/small_parse_table_2745 \ +small_parse_table/small_parse_table_2746 \ +small_parse_table/small_parse_table_2747 \ +small_parse_table/small_parse_table_2748 \ +small_parse_table/small_parse_table_2749 \ +small_parse_table/small_parse_table_275 \ +small_parse_table/small_parse_table_2750 \ +small_parse_table/small_parse_table_2751 \ +small_parse_table/small_parse_table_2752 \ +small_parse_table/small_parse_table_2753 \ +small_parse_table/small_parse_table_2754 \ +small_parse_table/small_parse_table_2755 \ +small_parse_table/small_parse_table_2756 \ +small_parse_table/small_parse_table_2757 \ +small_parse_table/small_parse_table_2758 \ +small_parse_table/small_parse_table_2759 \ +small_parse_table/small_parse_table_276 \ +small_parse_table/small_parse_table_2760 \ +small_parse_table/small_parse_table_2761 \ +small_parse_table/small_parse_table_2762 \ +small_parse_table/small_parse_table_2763 \ +small_parse_table/small_parse_table_2764 \ +small_parse_table/small_parse_table_2765 \ +small_parse_table/small_parse_table_2766 \ +small_parse_table/small_parse_table_2767 \ +small_parse_table/small_parse_table_2768 \ +small_parse_table/small_parse_table_2769 \ +small_parse_table/small_parse_table_277 \ +small_parse_table/small_parse_table_2770 \ +small_parse_table/small_parse_table_2771 \ +small_parse_table/small_parse_table_2772 \ +small_parse_table/small_parse_table_2773 \ +small_parse_table/small_parse_table_2774 \ +small_parse_table/small_parse_table_2775 \ +small_parse_table/small_parse_table_2776 \ +small_parse_table/small_parse_table_2777 \ +small_parse_table/small_parse_table_2778 \ +small_parse_table/small_parse_table_2779 \ +small_parse_table/small_parse_table_278 \ +small_parse_table/small_parse_table_2780 \ +small_parse_table/small_parse_table_2781 \ +small_parse_table/small_parse_table_2782 \ +small_parse_table/small_parse_table_2783 \ +small_parse_table/small_parse_table_2784 \ +small_parse_table/small_parse_table_2785 \ +small_parse_table/small_parse_table_2786 \ +small_parse_table/small_parse_table_2787 \ +small_parse_table/small_parse_table_2788 \ +small_parse_table/small_parse_table_2789 \ +small_parse_table/small_parse_table_279 \ +small_parse_table/small_parse_table_2790 \ +small_parse_table/small_parse_table_2791 \ +small_parse_table/small_parse_table_2792 \ +small_parse_table/small_parse_table_2793 \ +small_parse_table/small_parse_table_2794 \ +small_parse_table/small_parse_table_2795 \ +small_parse_table/small_parse_table_2796 \ +small_parse_table/small_parse_table_2797 \ +small_parse_table/small_parse_table_2798 \ +small_parse_table/small_parse_table_2799 \ +small_parse_table/small_parse_table_28 \ +small_parse_table/small_parse_table_280 \ +small_parse_table/small_parse_table_2800 \ +small_parse_table/small_parse_table_2801 \ +small_parse_table/small_parse_table_2802 \ +small_parse_table/small_parse_table_2803 \ +small_parse_table/small_parse_table_2804 \ +small_parse_table/small_parse_table_2805 \ +small_parse_table/small_parse_table_2806 \ +small_parse_table/small_parse_table_2807 \ +small_parse_table/small_parse_table_2808 \ +small_parse_table/small_parse_table_2809 \ +small_parse_table/small_parse_table_281 \ +small_parse_table/small_parse_table_2810 \ +small_parse_table/small_parse_table_2811 \ +small_parse_table/small_parse_table_2812 \ +small_parse_table/small_parse_table_2813 \ +small_parse_table/small_parse_table_2814 \ +small_parse_table/small_parse_table_2815 \ +small_parse_table/small_parse_table_2816 \ +small_parse_table/small_parse_table_2817 \ +small_parse_table/small_parse_table_2818 \ +small_parse_table/small_parse_table_2819 \ +small_parse_table/small_parse_table_282 \ +small_parse_table/small_parse_table_2820 \ +small_parse_table/small_parse_table_2821 \ +small_parse_table/small_parse_table_2822 \ +small_parse_table/small_parse_table_2823 \ +small_parse_table/small_parse_table_2824 \ +small_parse_table/small_parse_table_2825 \ +small_parse_table/small_parse_table_2826 \ +small_parse_table/small_parse_table_2827 \ +small_parse_table/small_parse_table_2828 \ +small_parse_table/small_parse_table_2829 \ +small_parse_table/small_parse_table_283 \ +small_parse_table/small_parse_table_2830 \ +small_parse_table/small_parse_table_2831 \ +small_parse_table/small_parse_table_2832 \ +small_parse_table/small_parse_table_2833 \ +small_parse_table/small_parse_table_2834 \ +small_parse_table/small_parse_table_2835 \ +small_parse_table/small_parse_table_2836 \ +small_parse_table/small_parse_table_2837 \ +small_parse_table/small_parse_table_2838 \ +small_parse_table/small_parse_table_2839 \ +small_parse_table/small_parse_table_284 \ +small_parse_table/small_parse_table_2840 \ +small_parse_table/small_parse_table_2841 \ +small_parse_table/small_parse_table_2842 \ +small_parse_table/small_parse_table_2843 \ +small_parse_table/small_parse_table_2844 \ +small_parse_table/small_parse_table_2845 \ +small_parse_table/small_parse_table_2846 \ +small_parse_table/small_parse_table_2847 \ +small_parse_table/small_parse_table_2848 \ +small_parse_table/small_parse_table_2849 \ +small_parse_table/small_parse_table_285 \ +small_parse_table/small_parse_table_2850 \ +small_parse_table/small_parse_table_2851 \ +small_parse_table/small_parse_table_2852 \ +small_parse_table/small_parse_table_2853 \ +small_parse_table/small_parse_table_2854 \ +small_parse_table/small_parse_table_2855 \ +small_parse_table/small_parse_table_2856 \ +small_parse_table/small_parse_table_2857 \ +small_parse_table/small_parse_table_2858 \ +small_parse_table/small_parse_table_2859 \ +small_parse_table/small_parse_table_286 \ +small_parse_table/small_parse_table_2860 \ +small_parse_table/small_parse_table_2861 \ +small_parse_table/small_parse_table_2862 \ +small_parse_table/small_parse_table_2863 \ +small_parse_table/small_parse_table_2864 \ +small_parse_table/small_parse_table_2865 \ +small_parse_table/small_parse_table_2866 \ +small_parse_table/small_parse_table_2867 \ +small_parse_table/small_parse_table_2868 \ +small_parse_table/small_parse_table_2869 \ +small_parse_table/small_parse_table_287 \ +small_parse_table/small_parse_table_2870 \ +small_parse_table/small_parse_table_2871 \ +small_parse_table/small_parse_table_2872 \ +small_parse_table/small_parse_table_2873 \ +small_parse_table/small_parse_table_2874 \ +small_parse_table/small_parse_table_2875 \ +small_parse_table/small_parse_table_2876 \ +small_parse_table/small_parse_table_2877 \ +small_parse_table/small_parse_table_2878 \ +small_parse_table/small_parse_table_2879 \ +small_parse_table/small_parse_table_288 \ +small_parse_table/small_parse_table_2880 \ +small_parse_table/small_parse_table_2881 \ +small_parse_table/small_parse_table_2882 \ +small_parse_table/small_parse_table_2883 \ +small_parse_table/small_parse_table_2884 \ +small_parse_table/small_parse_table_2885 \ +small_parse_table/small_parse_table_2886 \ +small_parse_table/small_parse_table_2887 \ +small_parse_table/small_parse_table_2888 \ +small_parse_table/small_parse_table_2889 \ +small_parse_table/small_parse_table_289 \ +small_parse_table/small_parse_table_2890 \ +small_parse_table/small_parse_table_2891 \ +small_parse_table/small_parse_table_2892 \ +small_parse_table/small_parse_table_2893 \ +small_parse_table/small_parse_table_2894 \ +small_parse_table/small_parse_table_2895 \ +small_parse_table/small_parse_table_2896 \ +small_parse_table/small_parse_table_2897 \ +small_parse_table/small_parse_table_2898 \ +small_parse_table/small_parse_table_2899 \ +small_parse_table/small_parse_table_29 \ +small_parse_table/small_parse_table_290 \ +small_parse_table/small_parse_table_2900 \ +small_parse_table/small_parse_table_2901 \ +small_parse_table/small_parse_table_2902 \ +small_parse_table/small_parse_table_2903 \ +small_parse_table/small_parse_table_2904 \ +small_parse_table/small_parse_table_2905 \ +small_parse_table/small_parse_table_2906 \ +small_parse_table/small_parse_table_2907 \ +small_parse_table/small_parse_table_2908 \ +small_parse_table/small_parse_table_2909 \ +small_parse_table/small_parse_table_291 \ +small_parse_table/small_parse_table_2910 \ +small_parse_table/small_parse_table_2911 \ +small_parse_table/small_parse_table_2912 \ +small_parse_table/small_parse_table_2913 \ +small_parse_table/small_parse_table_2914 \ +small_parse_table/small_parse_table_2915 \ +small_parse_table/small_parse_table_2916 \ +small_parse_table/small_parse_table_2917 \ +small_parse_table/small_parse_table_2918 \ +small_parse_table/small_parse_table_2919 \ +small_parse_table/small_parse_table_292 \ +small_parse_table/small_parse_table_2920 \ +small_parse_table/small_parse_table_2921 \ +small_parse_table/small_parse_table_2922 \ +small_parse_table/small_parse_table_2923 \ +small_parse_table/small_parse_table_2924 \ +small_parse_table/small_parse_table_2925 \ +small_parse_table/small_parse_table_2926 \ +small_parse_table/small_parse_table_2927 \ +small_parse_table/small_parse_table_2928 \ +small_parse_table/small_parse_table_2929 \ +small_parse_table/small_parse_table_293 \ +small_parse_table/small_parse_table_2930 \ +small_parse_table/small_parse_table_2931 \ +small_parse_table/small_parse_table_2932 \ +small_parse_table/small_parse_table_2933 \ +small_parse_table/small_parse_table_2934 \ +small_parse_table/small_parse_table_2935 \ +small_parse_table/small_parse_table_2936 \ +small_parse_table/small_parse_table_2937 \ +small_parse_table/small_parse_table_2938 \ +small_parse_table/small_parse_table_2939 \ +small_parse_table/small_parse_table_294 \ +small_parse_table/small_parse_table_2940 \ +small_parse_table/small_parse_table_2941 \ +small_parse_table/small_parse_table_2942 \ +small_parse_table/small_parse_table_2943 \ +small_parse_table/small_parse_table_2944 \ +small_parse_table/small_parse_table_2945 \ +small_parse_table/small_parse_table_2946 \ +small_parse_table/small_parse_table_2947 \ +small_parse_table/small_parse_table_2948 \ +small_parse_table/small_parse_table_2949 \ +small_parse_table/small_parse_table_295 \ +small_parse_table/small_parse_table_2950 \ +small_parse_table/small_parse_table_2951 \ +small_parse_table/small_parse_table_2952 \ +small_parse_table/small_parse_table_2953 \ +small_parse_table/small_parse_table_2954 \ +small_parse_table/small_parse_table_2955 \ +small_parse_table/small_parse_table_2956 \ +small_parse_table/small_parse_table_2957 \ +small_parse_table/small_parse_table_2958 \ +small_parse_table/small_parse_table_2959 \ +small_parse_table/small_parse_table_296 \ +small_parse_table/small_parse_table_2960 \ +small_parse_table/small_parse_table_2961 \ +small_parse_table/small_parse_table_2962 \ +small_parse_table/small_parse_table_2963 \ +small_parse_table/small_parse_table_2964 \ +small_parse_table/small_parse_table_2965 \ +small_parse_table/small_parse_table_2966 \ +small_parse_table/small_parse_table_2967 \ +small_parse_table/small_parse_table_2968 \ +small_parse_table/small_parse_table_2969 \ +small_parse_table/small_parse_table_297 \ +small_parse_table/small_parse_table_2970 \ +small_parse_table/small_parse_table_2971 \ +small_parse_table/small_parse_table_2972 \ +small_parse_table/small_parse_table_2973 \ +small_parse_table/small_parse_table_2974 \ +small_parse_table/small_parse_table_2975 \ +small_parse_table/small_parse_table_2976 \ +small_parse_table/small_parse_table_2977 \ +small_parse_table/small_parse_table_2978 \ +small_parse_table/small_parse_table_2979 \ +small_parse_table/small_parse_table_298 \ +small_parse_table/small_parse_table_2980 \ +small_parse_table/small_parse_table_2981 \ +small_parse_table/small_parse_table_2982 \ +small_parse_table/small_parse_table_2983 \ +small_parse_table/small_parse_table_2984 \ +small_parse_table/small_parse_table_2985 \ +small_parse_table/small_parse_table_2986 \ +small_parse_table/small_parse_table_2987 \ +small_parse_table/small_parse_table_2988 \ +small_parse_table/small_parse_table_2989 \ +small_parse_table/small_parse_table_299 \ +small_parse_table/small_parse_table_2990 \ +small_parse_table/small_parse_table_2991 \ +small_parse_table/small_parse_table_2992 \ +small_parse_table/small_parse_table_2993 \ +small_parse_table/small_parse_table_2994 \ +small_parse_table/small_parse_table_2995 \ +small_parse_table/small_parse_table_2996 \ +small_parse_table/small_parse_table_2997 \ +small_parse_table/small_parse_table_2998 \ +small_parse_table/small_parse_table_2999 \ +small_parse_table/small_parse_table_3 \ +small_parse_table/small_parse_table_30 \ +small_parse_table/small_parse_table_300 \ +small_parse_table/small_parse_table_3000 \ +small_parse_table/small_parse_table_3001 \ +small_parse_table/small_parse_table_3002 \ +small_parse_table/small_parse_table_3003 \ +small_parse_table/small_parse_table_3004 \ +small_parse_table/small_parse_table_3005 \ +small_parse_table/small_parse_table_3006 \ +small_parse_table/small_parse_table_3007 \ +small_parse_table/small_parse_table_3008 \ +small_parse_table/small_parse_table_3009 \ +small_parse_table/small_parse_table_301 \ +small_parse_table/small_parse_table_3010 \ +small_parse_table/small_parse_table_3011 \ +small_parse_table/small_parse_table_3012 \ +small_parse_table/small_parse_table_3013 \ +small_parse_table/small_parse_table_3014 \ +small_parse_table/small_parse_table_3015 \ +small_parse_table/small_parse_table_3016 \ +small_parse_table/small_parse_table_3017 \ +small_parse_table/small_parse_table_3018 \ +small_parse_table/small_parse_table_3019 \ +small_parse_table/small_parse_table_302 \ +small_parse_table/small_parse_table_3020 \ +small_parse_table/small_parse_table_3021 \ +small_parse_table/small_parse_table_3022 \ +small_parse_table/small_parse_table_3023 \ +small_parse_table/small_parse_table_3024 \ +small_parse_table/small_parse_table_3025 \ +small_parse_table/small_parse_table_3026 \ +small_parse_table/small_parse_table_3027 \ +small_parse_table/small_parse_table_3028 \ +small_parse_table/small_parse_table_3029 \ +small_parse_table/small_parse_table_303 \ +small_parse_table/small_parse_table_3030 \ +small_parse_table/small_parse_table_3031 \ +small_parse_table/small_parse_table_3032 \ +small_parse_table/small_parse_table_3033 \ +small_parse_table/small_parse_table_3034 \ +small_parse_table/small_parse_table_3035 \ +small_parse_table/small_parse_table_3036 \ +small_parse_table/small_parse_table_3037 \ +small_parse_table/small_parse_table_3038 \ +small_parse_table/small_parse_table_3039 \ +small_parse_table/small_parse_table_304 \ +small_parse_table/small_parse_table_3040 \ +small_parse_table/small_parse_table_3041 \ +small_parse_table/small_parse_table_3042 \ +small_parse_table/small_parse_table_3043 \ +small_parse_table/small_parse_table_3044 \ +small_parse_table/small_parse_table_3045 \ +small_parse_table/small_parse_table_3046 \ +small_parse_table/small_parse_table_3047 \ +small_parse_table/small_parse_table_3048 \ +small_parse_table/small_parse_table_3049 \ +small_parse_table/small_parse_table_305 \ +small_parse_table/small_parse_table_3050 \ +small_parse_table/small_parse_table_3051 \ +small_parse_table/small_parse_table_3052 \ +small_parse_table/small_parse_table_3053 \ +small_parse_table/small_parse_table_3054 \ +small_parse_table/small_parse_table_3055 \ +small_parse_table/small_parse_table_3056 \ +small_parse_table/small_parse_table_3057 \ +small_parse_table/small_parse_table_3058 \ +small_parse_table/small_parse_table_3059 \ +small_parse_table/small_parse_table_306 \ +small_parse_table/small_parse_table_3060 \ +small_parse_table/small_parse_table_3061 \ +small_parse_table/small_parse_table_3062 \ +small_parse_table/small_parse_table_3063 \ +small_parse_table/small_parse_table_3064 \ +small_parse_table/small_parse_table_3065 \ +small_parse_table/small_parse_table_3066 \ +small_parse_table/small_parse_table_3067 \ +small_parse_table/small_parse_table_3068 \ +small_parse_table/small_parse_table_3069 \ +small_parse_table/small_parse_table_307 \ +small_parse_table/small_parse_table_3070 \ +small_parse_table/small_parse_table_3071 \ +small_parse_table/small_parse_table_3072 \ +small_parse_table/small_parse_table_3073 \ +small_parse_table/small_parse_table_3074 \ +small_parse_table/small_parse_table_3075 \ +small_parse_table/small_parse_table_3076 \ +small_parse_table/small_parse_table_3077 \ +small_parse_table/small_parse_table_3078 \ +small_parse_table/small_parse_table_3079 \ +small_parse_table/small_parse_table_308 \ +small_parse_table/small_parse_table_3080 \ +small_parse_table/small_parse_table_3081 \ +small_parse_table/small_parse_table_3082 \ +small_parse_table/small_parse_table_3083 \ +small_parse_table/small_parse_table_3084 \ +small_parse_table/small_parse_table_3085 \ +small_parse_table/small_parse_table_3086 \ +small_parse_table/small_parse_table_3087 \ +small_parse_table/small_parse_table_3088 \ +small_parse_table/small_parse_table_3089 \ +small_parse_table/small_parse_table_309 \ +small_parse_table/small_parse_table_3090 \ +small_parse_table/small_parse_table_3091 \ +small_parse_table/small_parse_table_3092 \ +small_parse_table/small_parse_table_3093 \ +small_parse_table/small_parse_table_3094 \ +small_parse_table/small_parse_table_3095 \ +small_parse_table/small_parse_table_3096 \ +small_parse_table/small_parse_table_3097 \ +small_parse_table/small_parse_table_3098 \ +small_parse_table/small_parse_table_3099 \ +small_parse_table/small_parse_table_31 \ +small_parse_table/small_parse_table_310 \ +small_parse_table/small_parse_table_3100 \ +small_parse_table/small_parse_table_3101 \ +small_parse_table/small_parse_table_3102 \ +small_parse_table/small_parse_table_3103 \ +small_parse_table/small_parse_table_3104 \ +small_parse_table/small_parse_table_3105 \ +small_parse_table/small_parse_table_3106 \ +small_parse_table/small_parse_table_3107 \ +small_parse_table/small_parse_table_3108 \ +small_parse_table/small_parse_table_3109 \ +small_parse_table/small_parse_table_311 \ +small_parse_table/small_parse_table_3110 \ +small_parse_table/small_parse_table_3111 \ +small_parse_table/small_parse_table_3112 \ +small_parse_table/small_parse_table_3113 \ +small_parse_table/small_parse_table_3114 \ +small_parse_table/small_parse_table_3115 \ +small_parse_table/small_parse_table_3116 \ +small_parse_table/small_parse_table_3117 \ +small_parse_table/small_parse_table_3118 \ +small_parse_table/small_parse_table_3119 \ +small_parse_table/small_parse_table_312 \ +small_parse_table/small_parse_table_3120 \ +small_parse_table/small_parse_table_3121 \ +small_parse_table/small_parse_table_3122 \ +small_parse_table/small_parse_table_3123 \ +small_parse_table/small_parse_table_3124 \ +small_parse_table/small_parse_table_3125 \ +small_parse_table/small_parse_table_3126 \ +small_parse_table/small_parse_table_3127 \ +small_parse_table/small_parse_table_3128 \ +small_parse_table/small_parse_table_3129 \ +small_parse_table/small_parse_table_313 \ +small_parse_table/small_parse_table_3130 \ +small_parse_table/small_parse_table_3131 \ +small_parse_table/small_parse_table_3132 \ +small_parse_table/small_parse_table_3133 \ +small_parse_table/small_parse_table_3134 \ +small_parse_table/small_parse_table_3135 \ +small_parse_table/small_parse_table_3136 \ +small_parse_table/small_parse_table_3137 \ +small_parse_table/small_parse_table_3138 \ +small_parse_table/small_parse_table_3139 \ +small_parse_table/small_parse_table_314 \ +small_parse_table/small_parse_table_3140 \ +small_parse_table/small_parse_table_3141 \ +small_parse_table/small_parse_table_3142 \ +small_parse_table/small_parse_table_3143 \ +small_parse_table/small_parse_table_3144 \ +small_parse_table/small_parse_table_3145 \ +small_parse_table/small_parse_table_3146 \ +small_parse_table/small_parse_table_3147 \ +small_parse_table/small_parse_table_3148 \ +small_parse_table/small_parse_table_3149 \ +small_parse_table/small_parse_table_315 \ +small_parse_table/small_parse_table_3150 \ +small_parse_table/small_parse_table_3151 \ +small_parse_table/small_parse_table_3152 \ +small_parse_table/small_parse_table_3153 \ +small_parse_table/small_parse_table_3154 \ +small_parse_table/small_parse_table_3155 \ +small_parse_table/small_parse_table_3156 \ +small_parse_table/small_parse_table_3157 \ +small_parse_table/small_parse_table_3158 \ +small_parse_table/small_parse_table_3159 \ +small_parse_table/small_parse_table_316 \ +small_parse_table/small_parse_table_3160 \ +small_parse_table/small_parse_table_3161 \ +small_parse_table/small_parse_table_3162 \ +small_parse_table/small_parse_table_3163 \ +small_parse_table/small_parse_table_3164 \ +small_parse_table/small_parse_table_3165 \ +small_parse_table/small_parse_table_3166 \ +small_parse_table/small_parse_table_3167 \ +small_parse_table/small_parse_table_3168 \ +small_parse_table/small_parse_table_3169 \ +small_parse_table/small_parse_table_317 \ +small_parse_table/small_parse_table_3170 \ +small_parse_table/small_parse_table_3171 \ +small_parse_table/small_parse_table_3172 \ +small_parse_table/small_parse_table_3173 \ +small_parse_table/small_parse_table_3174 \ +small_parse_table/small_parse_table_3175 \ +small_parse_table/small_parse_table_3176 \ +small_parse_table/small_parse_table_3177 \ +small_parse_table/small_parse_table_3178 \ +small_parse_table/small_parse_table_3179 \ +small_parse_table/small_parse_table_318 \ +small_parse_table/small_parse_table_3180 \ +small_parse_table/small_parse_table_3181 \ +small_parse_table/small_parse_table_3182 \ +small_parse_table/small_parse_table_3183 \ +small_parse_table/small_parse_table_3184 \ +small_parse_table/small_parse_table_3185 \ +small_parse_table/small_parse_table_3186 \ +small_parse_table/small_parse_table_3187 \ +small_parse_table/small_parse_table_3188 \ +small_parse_table/small_parse_table_3189 \ +small_parse_table/small_parse_table_319 \ +small_parse_table/small_parse_table_3190 \ +small_parse_table/small_parse_table_3191 \ +small_parse_table/small_parse_table_3192 \ +small_parse_table/small_parse_table_3193 \ +small_parse_table/small_parse_table_3194 \ +small_parse_table/small_parse_table_3195 \ +small_parse_table/small_parse_table_3196 \ +small_parse_table/small_parse_table_3197 \ +small_parse_table/small_parse_table_3198 \ +small_parse_table/small_parse_table_3199 \ +small_parse_table/small_parse_table_32 \ +small_parse_table/small_parse_table_320 \ +small_parse_table/small_parse_table_3200 \ +small_parse_table/small_parse_table_3201 \ +small_parse_table/small_parse_table_3202 \ +small_parse_table/small_parse_table_3203 \ +small_parse_table/small_parse_table_3204 \ +small_parse_table/small_parse_table_3205 \ +small_parse_table/small_parse_table_3206 \ +small_parse_table/small_parse_table_3207 \ +small_parse_table/small_parse_table_3208 \ +small_parse_table/small_parse_table_3209 \ +small_parse_table/small_parse_table_321 \ +small_parse_table/small_parse_table_3210 \ +small_parse_table/small_parse_table_3211 \ +small_parse_table/small_parse_table_3212 \ +small_parse_table/small_parse_table_3213 \ +small_parse_table/small_parse_table_3214 \ +small_parse_table/small_parse_table_3215 \ +small_parse_table/small_parse_table_3216 \ +small_parse_table/small_parse_table_3217 \ +small_parse_table/small_parse_table_3218 \ +small_parse_table/small_parse_table_3219 \ +small_parse_table/small_parse_table_322 \ +small_parse_table/small_parse_table_3220 \ +small_parse_table/small_parse_table_3221 \ +small_parse_table/small_parse_table_3222 \ +small_parse_table/small_parse_table_3223 \ +small_parse_table/small_parse_table_3224 \ +small_parse_table/small_parse_table_3225 \ +small_parse_table/small_parse_table_3226 \ +small_parse_table/small_parse_table_3227 \ +small_parse_table/small_parse_table_3228 \ +small_parse_table/small_parse_table_3229 \ +small_parse_table/small_parse_table_323 \ +small_parse_table/small_parse_table_3230 \ +small_parse_table/small_parse_table_3231 \ +small_parse_table/small_parse_table_3232 \ +small_parse_table/small_parse_table_3233 \ +small_parse_table/small_parse_table_3234 \ +small_parse_table/small_parse_table_3235 \ +small_parse_table/small_parse_table_3236 \ +small_parse_table/small_parse_table_3237 \ +small_parse_table/small_parse_table_3238 \ +small_parse_table/small_parse_table_3239 \ +small_parse_table/small_parse_table_324 \ +small_parse_table/small_parse_table_3240 \ +small_parse_table/small_parse_table_3241 \ +small_parse_table/small_parse_table_3242 \ +small_parse_table/small_parse_table_3243 \ +small_parse_table/small_parse_table_325 \ +small_parse_table/small_parse_table_326 \ +small_parse_table/small_parse_table_327 \ +small_parse_table/small_parse_table_328 \ +small_parse_table/small_parse_table_329 \ +small_parse_table/small_parse_table_33 \ +small_parse_table/small_parse_table_330 \ +small_parse_table/small_parse_table_331 \ +small_parse_table/small_parse_table_332 \ +small_parse_table/small_parse_table_333 \ +small_parse_table/small_parse_table_334 \ +small_parse_table/small_parse_table_335 \ +small_parse_table/small_parse_table_336 \ +small_parse_table/small_parse_table_337 \ +small_parse_table/small_parse_table_338 \ +small_parse_table/small_parse_table_339 \ +small_parse_table/small_parse_table_34 \ +small_parse_table/small_parse_table_340 \ +small_parse_table/small_parse_table_341 \ +small_parse_table/small_parse_table_342 \ +small_parse_table/small_parse_table_343 \ +small_parse_table/small_parse_table_344 \ +small_parse_table/small_parse_table_345 \ +small_parse_table/small_parse_table_346 \ +small_parse_table/small_parse_table_347 \ +small_parse_table/small_parse_table_348 \ +small_parse_table/small_parse_table_349 \ +small_parse_table/small_parse_table_35 \ +small_parse_table/small_parse_table_350 \ +small_parse_table/small_parse_table_351 \ +small_parse_table/small_parse_table_352 \ +small_parse_table/small_parse_table_353 \ +small_parse_table/small_parse_table_354 \ +small_parse_table/small_parse_table_355 \ +small_parse_table/small_parse_table_356 \ +small_parse_table/small_parse_table_357 \ +small_parse_table/small_parse_table_358 \ +small_parse_table/small_parse_table_359 \ +small_parse_table/small_parse_table_36 \ +small_parse_table/small_parse_table_360 \ +small_parse_table/small_parse_table_361 \ +small_parse_table/small_parse_table_362 \ +small_parse_table/small_parse_table_363 \ +small_parse_table/small_parse_table_364 \ +small_parse_table/small_parse_table_365 \ +small_parse_table/small_parse_table_366 \ +small_parse_table/small_parse_table_367 \ +small_parse_table/small_parse_table_368 \ +small_parse_table/small_parse_table_369 \ +small_parse_table/small_parse_table_37 \ +small_parse_table/small_parse_table_370 \ +small_parse_table/small_parse_table_371 \ +small_parse_table/small_parse_table_372 \ +small_parse_table/small_parse_table_373 \ +small_parse_table/small_parse_table_374 \ +small_parse_table/small_parse_table_375 \ +small_parse_table/small_parse_table_376 \ +small_parse_table/small_parse_table_377 \ +small_parse_table/small_parse_table_378 \ +small_parse_table/small_parse_table_379 \ +small_parse_table/small_parse_table_38 \ +small_parse_table/small_parse_table_380 \ +small_parse_table/small_parse_table_381 \ +small_parse_table/small_parse_table_382 \ +small_parse_table/small_parse_table_383 \ +small_parse_table/small_parse_table_384 \ +small_parse_table/small_parse_table_385 \ +small_parse_table/small_parse_table_386 \ +small_parse_table/small_parse_table_387 \ +small_parse_table/small_parse_table_388 \ +small_parse_table/small_parse_table_389 \ +small_parse_table/small_parse_table_39 \ +small_parse_table/small_parse_table_390 \ +small_parse_table/small_parse_table_391 \ +small_parse_table/small_parse_table_392 \ +small_parse_table/small_parse_table_393 \ +small_parse_table/small_parse_table_394 \ +small_parse_table/small_parse_table_395 \ +small_parse_table/small_parse_table_396 \ +small_parse_table/small_parse_table_397 \ +small_parse_table/small_parse_table_398 \ +small_parse_table/small_parse_table_399 \ +small_parse_table/small_parse_table_4 \ +small_parse_table/small_parse_table_40 \ +small_parse_table/small_parse_table_400 \ +small_parse_table/small_parse_table_401 \ +small_parse_table/small_parse_table_402 \ +small_parse_table/small_parse_table_403 \ +small_parse_table/small_parse_table_404 \ +small_parse_table/small_parse_table_405 \ +small_parse_table/small_parse_table_406 \ +small_parse_table/small_parse_table_407 \ +small_parse_table/small_parse_table_408 \ +small_parse_table/small_parse_table_409 \ +small_parse_table/small_parse_table_41 \ +small_parse_table/small_parse_table_410 \ +small_parse_table/small_parse_table_411 \ +small_parse_table/small_parse_table_412 \ +small_parse_table/small_parse_table_413 \ +small_parse_table/small_parse_table_414 \ +small_parse_table/small_parse_table_415 \ +small_parse_table/small_parse_table_416 \ +small_parse_table/small_parse_table_417 \ +small_parse_table/small_parse_table_418 \ +small_parse_table/small_parse_table_419 \ +small_parse_table/small_parse_table_42 \ +small_parse_table/small_parse_table_420 \ +small_parse_table/small_parse_table_421 \ +small_parse_table/small_parse_table_422 \ +small_parse_table/small_parse_table_423 \ +small_parse_table/small_parse_table_424 \ +small_parse_table/small_parse_table_425 \ +small_parse_table/small_parse_table_426 \ +small_parse_table/small_parse_table_427 \ +small_parse_table/small_parse_table_428 \ +small_parse_table/small_parse_table_429 \ +small_parse_table/small_parse_table_43 \ +small_parse_table/small_parse_table_430 \ +small_parse_table/small_parse_table_431 \ +small_parse_table/small_parse_table_432 \ +small_parse_table/small_parse_table_433 \ +small_parse_table/small_parse_table_434 \ +small_parse_table/small_parse_table_435 \ +small_parse_table/small_parse_table_436 \ +small_parse_table/small_parse_table_437 \ +small_parse_table/small_parse_table_438 \ +small_parse_table/small_parse_table_439 \ +small_parse_table/small_parse_table_44 \ +small_parse_table/small_parse_table_440 \ +small_parse_table/small_parse_table_441 \ +small_parse_table/small_parse_table_442 \ +small_parse_table/small_parse_table_443 \ +small_parse_table/small_parse_table_444 \ +small_parse_table/small_parse_table_445 \ +small_parse_table/small_parse_table_446 \ +small_parse_table/small_parse_table_447 \ +small_parse_table/small_parse_table_448 \ +small_parse_table/small_parse_table_449 \ +small_parse_table/small_parse_table_45 \ +small_parse_table/small_parse_table_450 \ +small_parse_table/small_parse_table_451 \ +small_parse_table/small_parse_table_452 \ +small_parse_table/small_parse_table_453 \ +small_parse_table/small_parse_table_454 \ +small_parse_table/small_parse_table_455 \ +small_parse_table/small_parse_table_456 \ +small_parse_table/small_parse_table_457 \ +small_parse_table/small_parse_table_458 \ +small_parse_table/small_parse_table_459 \ +small_parse_table/small_parse_table_46 \ +small_parse_table/small_parse_table_460 \ +small_parse_table/small_parse_table_461 \ +small_parse_table/small_parse_table_462 \ +small_parse_table/small_parse_table_463 \ +small_parse_table/small_parse_table_464 \ +small_parse_table/small_parse_table_465 \ +small_parse_table/small_parse_table_466 \ +small_parse_table/small_parse_table_467 \ +small_parse_table/small_parse_table_468 \ +small_parse_table/small_parse_table_469 \ +small_parse_table/small_parse_table_47 \ +small_parse_table/small_parse_table_470 \ +small_parse_table/small_parse_table_471 \ +small_parse_table/small_parse_table_472 \ +small_parse_table/small_parse_table_473 \ +small_parse_table/small_parse_table_474 \ +small_parse_table/small_parse_table_475 \ +small_parse_table/small_parse_table_476 \ +small_parse_table/small_parse_table_477 \ +small_parse_table/small_parse_table_478 \ +small_parse_table/small_parse_table_479 \ +small_parse_table/small_parse_table_48 \ +small_parse_table/small_parse_table_480 \ +small_parse_table/small_parse_table_481 \ +small_parse_table/small_parse_table_482 \ +small_parse_table/small_parse_table_483 \ +small_parse_table/small_parse_table_484 \ +small_parse_table/small_parse_table_485 \ +small_parse_table/small_parse_table_486 \ +small_parse_table/small_parse_table_487 \ +small_parse_table/small_parse_table_488 \ +small_parse_table/small_parse_table_489 \ +small_parse_table/small_parse_table_49 \ +small_parse_table/small_parse_table_490 \ +small_parse_table/small_parse_table_491 \ +small_parse_table/small_parse_table_492 \ +small_parse_table/small_parse_table_493 \ +small_parse_table/small_parse_table_494 \ +small_parse_table/small_parse_table_495 \ +small_parse_table/small_parse_table_496 \ +small_parse_table/small_parse_table_497 \ +small_parse_table/small_parse_table_498 \ +small_parse_table/small_parse_table_499 \ +small_parse_table/small_parse_table_5 \ +small_parse_table/small_parse_table_50 \ +small_parse_table/small_parse_table_500 \ +small_parse_table/small_parse_table_501 \ +small_parse_table/small_parse_table_502 \ +small_parse_table/small_parse_table_503 \ +small_parse_table/small_parse_table_504 \ +small_parse_table/small_parse_table_505 \ +small_parse_table/small_parse_table_506 \ +small_parse_table/small_parse_table_507 \ +small_parse_table/small_parse_table_508 \ +small_parse_table/small_parse_table_509 \ +small_parse_table/small_parse_table_51 \ +small_parse_table/small_parse_table_510 \ +small_parse_table/small_parse_table_511 \ +small_parse_table/small_parse_table_512 \ +small_parse_table/small_parse_table_513 \ +small_parse_table/small_parse_table_514 \ +small_parse_table/small_parse_table_515 \ +small_parse_table/small_parse_table_516 \ +small_parse_table/small_parse_table_517 \ +small_parse_table/small_parse_table_518 \ +small_parse_table/small_parse_table_519 \ +small_parse_table/small_parse_table_52 \ +small_parse_table/small_parse_table_520 \ +small_parse_table/small_parse_table_521 \ +small_parse_table/small_parse_table_522 \ +small_parse_table/small_parse_table_523 \ +small_parse_table/small_parse_table_524 \ +small_parse_table/small_parse_table_525 \ +small_parse_table/small_parse_table_526 \ +small_parse_table/small_parse_table_527 \ +small_parse_table/small_parse_table_528 \ +small_parse_table/small_parse_table_529 \ +small_parse_table/small_parse_table_53 \ +small_parse_table/small_parse_table_530 \ +small_parse_table/small_parse_table_531 \ +small_parse_table/small_parse_table_532 \ +small_parse_table/small_parse_table_533 \ +small_parse_table/small_parse_table_534 \ +small_parse_table/small_parse_table_535 \ +small_parse_table/small_parse_table_536 \ +small_parse_table/small_parse_table_537 \ +small_parse_table/small_parse_table_538 \ +small_parse_table/small_parse_table_539 \ +small_parse_table/small_parse_table_54 \ +small_parse_table/small_parse_table_540 \ +small_parse_table/small_parse_table_541 \ +small_parse_table/small_parse_table_542 \ +small_parse_table/small_parse_table_543 \ +small_parse_table/small_parse_table_544 \ +small_parse_table/small_parse_table_545 \ +small_parse_table/small_parse_table_546 \ +small_parse_table/small_parse_table_547 \ +small_parse_table/small_parse_table_548 \ +small_parse_table/small_parse_table_549 \ +small_parse_table/small_parse_table_55 \ +small_parse_table/small_parse_table_550 \ +small_parse_table/small_parse_table_551 \ +small_parse_table/small_parse_table_552 \ +small_parse_table/small_parse_table_553 \ +small_parse_table/small_parse_table_554 \ +small_parse_table/small_parse_table_555 \ +small_parse_table/small_parse_table_556 \ +small_parse_table/small_parse_table_557 \ +small_parse_table/small_parse_table_558 \ +small_parse_table/small_parse_table_559 \ +small_parse_table/small_parse_table_56 \ +small_parse_table/small_parse_table_560 \ +small_parse_table/small_parse_table_561 \ +small_parse_table/small_parse_table_562 \ +small_parse_table/small_parse_table_563 \ +small_parse_table/small_parse_table_564 \ +small_parse_table/small_parse_table_565 \ +small_parse_table/small_parse_table_566 \ +small_parse_table/small_parse_table_567 \ +small_parse_table/small_parse_table_568 \ +small_parse_table/small_parse_table_569 \ +small_parse_table/small_parse_table_57 \ +small_parse_table/small_parse_table_570 \ +small_parse_table/small_parse_table_571 \ +small_parse_table/small_parse_table_572 \ +small_parse_table/small_parse_table_573 \ +small_parse_table/small_parse_table_574 \ +small_parse_table/small_parse_table_575 \ +small_parse_table/small_parse_table_576 \ +small_parse_table/small_parse_table_577 \ +small_parse_table/small_parse_table_578 \ +small_parse_table/small_parse_table_579 \ +small_parse_table/small_parse_table_58 \ +small_parse_table/small_parse_table_580 \ +small_parse_table/small_parse_table_581 \ +small_parse_table/small_parse_table_582 \ +small_parse_table/small_parse_table_583 \ +small_parse_table/small_parse_table_584 \ +small_parse_table/small_parse_table_585 \ +small_parse_table/small_parse_table_586 \ +small_parse_table/small_parse_table_587 \ +small_parse_table/small_parse_table_588 \ +small_parse_table/small_parse_table_589 \ +small_parse_table/small_parse_table_59 \ +small_parse_table/small_parse_table_590 \ +small_parse_table/small_parse_table_591 \ +small_parse_table/small_parse_table_592 \ +small_parse_table/small_parse_table_593 \ +small_parse_table/small_parse_table_594 \ +small_parse_table/small_parse_table_595 \ +small_parse_table/small_parse_table_596 \ +small_parse_table/small_parse_table_597 \ +small_parse_table/small_parse_table_598 \ +small_parse_table/small_parse_table_599 \ +small_parse_table/small_parse_table_6 \ +small_parse_table/small_parse_table_60 \ +small_parse_table/small_parse_table_600 \ +small_parse_table/small_parse_table_601 \ +small_parse_table/small_parse_table_602 \ +small_parse_table/small_parse_table_603 \ +small_parse_table/small_parse_table_604 \ +small_parse_table/small_parse_table_605 \ +small_parse_table/small_parse_table_606 \ +small_parse_table/small_parse_table_607 \ +small_parse_table/small_parse_table_608 \ +small_parse_table/small_parse_table_609 \ +small_parse_table/small_parse_table_61 \ +small_parse_table/small_parse_table_610 \ +small_parse_table/small_parse_table_611 \ +small_parse_table/small_parse_table_612 \ +small_parse_table/small_parse_table_613 \ +small_parse_table/small_parse_table_614 \ +small_parse_table/small_parse_table_615 \ +small_parse_table/small_parse_table_616 \ +small_parse_table/small_parse_table_617 \ +small_parse_table/small_parse_table_618 \ +small_parse_table/small_parse_table_619 \ +small_parse_table/small_parse_table_62 \ +small_parse_table/small_parse_table_620 \ +small_parse_table/small_parse_table_621 \ +small_parse_table/small_parse_table_622 \ +small_parse_table/small_parse_table_623 \ +small_parse_table/small_parse_table_624 \ +small_parse_table/small_parse_table_625 \ +small_parse_table/small_parse_table_626 \ +small_parse_table/small_parse_table_627 \ +small_parse_table/small_parse_table_628 \ +small_parse_table/small_parse_table_629 \ +small_parse_table/small_parse_table_63 \ +small_parse_table/small_parse_table_630 \ +small_parse_table/small_parse_table_631 \ +small_parse_table/small_parse_table_632 \ +small_parse_table/small_parse_table_633 \ +small_parse_table/small_parse_table_634 \ +small_parse_table/small_parse_table_635 \ +small_parse_table/small_parse_table_636 \ +small_parse_table/small_parse_table_637 \ +small_parse_table/small_parse_table_638 \ +small_parse_table/small_parse_table_639 \ +small_parse_table/small_parse_table_64 \ +small_parse_table/small_parse_table_640 \ +small_parse_table/small_parse_table_641 \ +small_parse_table/small_parse_table_642 \ +small_parse_table/small_parse_table_643 \ +small_parse_table/small_parse_table_644 \ +small_parse_table/small_parse_table_645 \ +small_parse_table/small_parse_table_646 \ +small_parse_table/small_parse_table_647 \ +small_parse_table/small_parse_table_648 \ +small_parse_table/small_parse_table_649 \ +small_parse_table/small_parse_table_65 \ +small_parse_table/small_parse_table_650 \ +small_parse_table/small_parse_table_651 \ +small_parse_table/small_parse_table_652 \ +small_parse_table/small_parse_table_653 \ +small_parse_table/small_parse_table_654 \ +small_parse_table/small_parse_table_655 \ +small_parse_table/small_parse_table_656 \ +small_parse_table/small_parse_table_657 \ +small_parse_table/small_parse_table_658 \ +small_parse_table/small_parse_table_659 \ +small_parse_table/small_parse_table_66 \ +small_parse_table/small_parse_table_660 \ +small_parse_table/small_parse_table_661 \ +small_parse_table/small_parse_table_662 \ +small_parse_table/small_parse_table_663 \ +small_parse_table/small_parse_table_664 \ +small_parse_table/small_parse_table_665 \ +small_parse_table/small_parse_table_666 \ +small_parse_table/small_parse_table_667 \ +small_parse_table/small_parse_table_668 \ +small_parse_table/small_parse_table_669 \ +small_parse_table/small_parse_table_67 \ +small_parse_table/small_parse_table_670 \ +small_parse_table/small_parse_table_671 \ +small_parse_table/small_parse_table_672 \ +small_parse_table/small_parse_table_673 \ +small_parse_table/small_parse_table_674 \ +small_parse_table/small_parse_table_675 \ +small_parse_table/small_parse_table_676 \ +small_parse_table/small_parse_table_677 \ +small_parse_table/small_parse_table_678 \ +small_parse_table/small_parse_table_679 \ +small_parse_table/small_parse_table_68 \ +small_parse_table/small_parse_table_680 \ +small_parse_table/small_parse_table_681 \ +small_parse_table/small_parse_table_682 \ +small_parse_table/small_parse_table_683 \ +small_parse_table/small_parse_table_684 \ +small_parse_table/small_parse_table_685 \ +small_parse_table/small_parse_table_686 \ +small_parse_table/small_parse_table_687 \ +small_parse_table/small_parse_table_688 \ +small_parse_table/small_parse_table_689 \ +small_parse_table/small_parse_table_69 \ +small_parse_table/small_parse_table_690 \ +small_parse_table/small_parse_table_691 \ +small_parse_table/small_parse_table_692 \ +small_parse_table/small_parse_table_693 \ +small_parse_table/small_parse_table_694 \ +small_parse_table/small_parse_table_695 \ +small_parse_table/small_parse_table_696 \ +small_parse_table/small_parse_table_697 \ +small_parse_table/small_parse_table_698 \ +small_parse_table/small_parse_table_699 \ +small_parse_table/small_parse_table_7 \ +small_parse_table/small_parse_table_70 \ +small_parse_table/small_parse_table_700 \ +small_parse_table/small_parse_table_701 \ +small_parse_table/small_parse_table_702 \ +small_parse_table/small_parse_table_703 \ +small_parse_table/small_parse_table_704 \ +small_parse_table/small_parse_table_705 \ +small_parse_table/small_parse_table_706 \ +small_parse_table/small_parse_table_707 \ +small_parse_table/small_parse_table_708 \ +small_parse_table/small_parse_table_709 \ +small_parse_table/small_parse_table_71 \ +small_parse_table/small_parse_table_710 \ +small_parse_table/small_parse_table_711 \ +small_parse_table/small_parse_table_712 \ +small_parse_table/small_parse_table_713 \ +small_parse_table/small_parse_table_714 \ +small_parse_table/small_parse_table_715 \ +small_parse_table/small_parse_table_716 \ +small_parse_table/small_parse_table_717 \ +small_parse_table/small_parse_table_718 \ +small_parse_table/small_parse_table_719 \ +small_parse_table/small_parse_table_72 \ +small_parse_table/small_parse_table_720 \ +small_parse_table/small_parse_table_721 \ +small_parse_table/small_parse_table_722 \ +small_parse_table/small_parse_table_723 \ +small_parse_table/small_parse_table_724 \ +small_parse_table/small_parse_table_725 \ +small_parse_table/small_parse_table_726 \ +small_parse_table/small_parse_table_727 \ +small_parse_table/small_parse_table_728 \ +small_parse_table/small_parse_table_729 \ +small_parse_table/small_parse_table_73 \ +small_parse_table/small_parse_table_730 \ +small_parse_table/small_parse_table_731 \ +small_parse_table/small_parse_table_732 \ +small_parse_table/small_parse_table_733 \ +small_parse_table/small_parse_table_734 \ +small_parse_table/small_parse_table_735 \ +small_parse_table/small_parse_table_736 \ +small_parse_table/small_parse_table_737 \ +small_parse_table/small_parse_table_738 \ +small_parse_table/small_parse_table_739 \ +small_parse_table/small_parse_table_74 \ +small_parse_table/small_parse_table_740 \ +small_parse_table/small_parse_table_741 \ +small_parse_table/small_parse_table_742 \ +small_parse_table/small_parse_table_743 \ +small_parse_table/small_parse_table_744 \ +small_parse_table/small_parse_table_745 \ +small_parse_table/small_parse_table_746 \ +small_parse_table/small_parse_table_747 \ +small_parse_table/small_parse_table_748 \ +small_parse_table/small_parse_table_749 \ +small_parse_table/small_parse_table_75 \ +small_parse_table/small_parse_table_750 \ +small_parse_table/small_parse_table_751 \ +small_parse_table/small_parse_table_752 \ +small_parse_table/small_parse_table_753 \ +small_parse_table/small_parse_table_754 \ +small_parse_table/small_parse_table_755 \ +small_parse_table/small_parse_table_756 \ +small_parse_table/small_parse_table_757 \ +small_parse_table/small_parse_table_758 \ +small_parse_table/small_parse_table_759 \ +small_parse_table/small_parse_table_76 \ +small_parse_table/small_parse_table_760 \ +small_parse_table/small_parse_table_761 \ +small_parse_table/small_parse_table_762 \ +small_parse_table/small_parse_table_763 \ +small_parse_table/small_parse_table_764 \ +small_parse_table/small_parse_table_765 \ +small_parse_table/small_parse_table_766 \ +small_parse_table/small_parse_table_767 \ +small_parse_table/small_parse_table_768 \ +small_parse_table/small_parse_table_769 \ +small_parse_table/small_parse_table_77 \ +small_parse_table/small_parse_table_770 \ +small_parse_table/small_parse_table_771 \ +small_parse_table/small_parse_table_772 \ +small_parse_table/small_parse_table_773 \ +small_parse_table/small_parse_table_774 \ +small_parse_table/small_parse_table_775 \ +small_parse_table/small_parse_table_776 \ +small_parse_table/small_parse_table_777 \ +small_parse_table/small_parse_table_778 \ +small_parse_table/small_parse_table_779 \ +small_parse_table/small_parse_table_78 \ +small_parse_table/small_parse_table_780 \ +small_parse_table/small_parse_table_781 \ +small_parse_table/small_parse_table_782 \ +small_parse_table/small_parse_table_783 \ +small_parse_table/small_parse_table_784 \ +small_parse_table/small_parse_table_785 \ +small_parse_table/small_parse_table_786 \ +small_parse_table/small_parse_table_787 \ +small_parse_table/small_parse_table_788 \ +small_parse_table/small_parse_table_789 \ +small_parse_table/small_parse_table_79 \ +small_parse_table/small_parse_table_790 \ +small_parse_table/small_parse_table_791 \ +small_parse_table/small_parse_table_792 \ +small_parse_table/small_parse_table_793 \ +small_parse_table/small_parse_table_794 \ +small_parse_table/small_parse_table_795 \ +small_parse_table/small_parse_table_796 \ +small_parse_table/small_parse_table_797 \ +small_parse_table/small_parse_table_798 \ +small_parse_table/small_parse_table_799 \ +small_parse_table/small_parse_table_8 \ +small_parse_table/small_parse_table_80 \ +small_parse_table/small_parse_table_800 \ +small_parse_table/small_parse_table_801 \ +small_parse_table/small_parse_table_802 \ +small_parse_table/small_parse_table_803 \ +small_parse_table/small_parse_table_804 \ +small_parse_table/small_parse_table_805 \ +small_parse_table/small_parse_table_806 \ +small_parse_table/small_parse_table_807 \ +small_parse_table/small_parse_table_808 \ +small_parse_table/small_parse_table_809 \ +small_parse_table/small_parse_table_81 \ +small_parse_table/small_parse_table_810 \ +small_parse_table/small_parse_table_811 \ +small_parse_table/small_parse_table_812 \ +small_parse_table/small_parse_table_813 \ +small_parse_table/small_parse_table_814 \ +small_parse_table/small_parse_table_815 \ +small_parse_table/small_parse_table_816 \ +small_parse_table/small_parse_table_817 \ +small_parse_table/small_parse_table_818 \ +small_parse_table/small_parse_table_819 \ +small_parse_table/small_parse_table_82 \ +small_parse_table/small_parse_table_820 \ +small_parse_table/small_parse_table_821 \ +small_parse_table/small_parse_table_822 \ +small_parse_table/small_parse_table_823 \ +small_parse_table/small_parse_table_824 \ +small_parse_table/small_parse_table_825 \ +small_parse_table/small_parse_table_826 \ +small_parse_table/small_parse_table_827 \ +small_parse_table/small_parse_table_828 \ +small_parse_table/small_parse_table_829 \ +small_parse_table/small_parse_table_83 \ +small_parse_table/small_parse_table_830 \ +small_parse_table/small_parse_table_831 \ +small_parse_table/small_parse_table_832 \ +small_parse_table/small_parse_table_833 \ +small_parse_table/small_parse_table_834 \ +small_parse_table/small_parse_table_835 \ +small_parse_table/small_parse_table_836 \ +small_parse_table/small_parse_table_837 \ +small_parse_table/small_parse_table_838 \ +small_parse_table/small_parse_table_839 \ +small_parse_table/small_parse_table_84 \ +small_parse_table/small_parse_table_840 \ +small_parse_table/small_parse_table_841 \ +small_parse_table/small_parse_table_842 \ +small_parse_table/small_parse_table_843 \ +small_parse_table/small_parse_table_844 \ +small_parse_table/small_parse_table_845 \ +small_parse_table/small_parse_table_846 \ +small_parse_table/small_parse_table_847 \ +small_parse_table/small_parse_table_848 \ +small_parse_table/small_parse_table_849 \ +small_parse_table/small_parse_table_85 \ +small_parse_table/small_parse_table_850 \ +small_parse_table/small_parse_table_851 \ +small_parse_table/small_parse_table_852 \ +small_parse_table/small_parse_table_853 \ +small_parse_table/small_parse_table_854 \ +small_parse_table/small_parse_table_855 \ +small_parse_table/small_parse_table_856 \ +small_parse_table/small_parse_table_857 \ +small_parse_table/small_parse_table_858 \ +small_parse_table/small_parse_table_859 \ +small_parse_table/small_parse_table_86 \ +small_parse_table/small_parse_table_860 \ +small_parse_table/small_parse_table_861 \ +small_parse_table/small_parse_table_862 \ +small_parse_table/small_parse_table_863 \ +small_parse_table/small_parse_table_864 \ +small_parse_table/small_parse_table_865 \ +small_parse_table/small_parse_table_866 \ +small_parse_table/small_parse_table_867 \ +small_parse_table/small_parse_table_868 \ +small_parse_table/small_parse_table_869 \ +small_parse_table/small_parse_table_87 \ +small_parse_table/small_parse_table_870 \ +small_parse_table/small_parse_table_871 \ +small_parse_table/small_parse_table_872 \ +small_parse_table/small_parse_table_873 \ +small_parse_table/small_parse_table_874 \ +small_parse_table/small_parse_table_875 \ +small_parse_table/small_parse_table_876 \ +small_parse_table/small_parse_table_877 \ +small_parse_table/small_parse_table_878 \ +small_parse_table/small_parse_table_879 \ +small_parse_table/small_parse_table_88 \ +small_parse_table/small_parse_table_880 \ +small_parse_table/small_parse_table_881 \ +small_parse_table/small_parse_table_882 \ +small_parse_table/small_parse_table_883 \ +small_parse_table/small_parse_table_884 \ +small_parse_table/small_parse_table_885 \ +small_parse_table/small_parse_table_886 \ +small_parse_table/small_parse_table_887 \ +small_parse_table/small_parse_table_888 \ +small_parse_table/small_parse_table_889 \ +small_parse_table/small_parse_table_89 \ +small_parse_table/small_parse_table_890 \ +small_parse_table/small_parse_table_891 \ +small_parse_table/small_parse_table_892 \ +small_parse_table/small_parse_table_893 \ +small_parse_table/small_parse_table_894 \ +small_parse_table/small_parse_table_895 \ +small_parse_table/small_parse_table_896 \ +small_parse_table/small_parse_table_897 \ +small_parse_table/small_parse_table_898 \ +small_parse_table/small_parse_table_899 \ +small_parse_table/small_parse_table_9 \ +small_parse_table/small_parse_table_90 \ +small_parse_table/small_parse_table_900 \ +small_parse_table/small_parse_table_901 \ +small_parse_table/small_parse_table_902 \ +small_parse_table/small_parse_table_903 \ +small_parse_table/small_parse_table_904 \ +small_parse_table/small_parse_table_905 \ +small_parse_table/small_parse_table_906 \ +small_parse_table/small_parse_table_907 \ +small_parse_table/small_parse_table_908 \ +small_parse_table/small_parse_table_909 \ +small_parse_table/small_parse_table_91 \ +small_parse_table/small_parse_table_910 \ +small_parse_table/small_parse_table_911 \ +small_parse_table/small_parse_table_912 \ +small_parse_table/small_parse_table_913 \ +small_parse_table/small_parse_table_914 \ +small_parse_table/small_parse_table_915 \ +small_parse_table/small_parse_table_916 \ +small_parse_table/small_parse_table_917 \ +small_parse_table/small_parse_table_918 \ +small_parse_table/small_parse_table_919 \ +small_parse_table/small_parse_table_92 \ +small_parse_table/small_parse_table_920 \ +small_parse_table/small_parse_table_921 \ +small_parse_table/small_parse_table_922 \ +small_parse_table/small_parse_table_923 \ +small_parse_table/small_parse_table_924 \ +small_parse_table/small_parse_table_925 \ +small_parse_table/small_parse_table_926 \ +small_parse_table/small_parse_table_927 \ +small_parse_table/small_parse_table_928 \ +small_parse_table/small_parse_table_929 \ +small_parse_table/small_parse_table_93 \ +small_parse_table/small_parse_table_930 \ +small_parse_table/small_parse_table_931 \ +small_parse_table/small_parse_table_932 \ +small_parse_table/small_parse_table_933 \ +small_parse_table/small_parse_table_934 \ +small_parse_table/small_parse_table_935 \ +small_parse_table/small_parse_table_936 \ +small_parse_table/small_parse_table_937 \ +small_parse_table/small_parse_table_938 \ +small_parse_table/small_parse_table_939 \ +small_parse_table/small_parse_table_94 \ +small_parse_table/small_parse_table_940 \ +small_parse_table/small_parse_table_941 \ +small_parse_table/small_parse_table_942 \ +small_parse_table/small_parse_table_943 \ +small_parse_table/small_parse_table_944 \ +small_parse_table/small_parse_table_945 \ +small_parse_table/small_parse_table_946 \ +small_parse_table/small_parse_table_947 \ +small_parse_table/small_parse_table_948 \ +small_parse_table/small_parse_table_949 \ +small_parse_table/small_parse_table_95 \ +small_parse_table/small_parse_table_950 \ +small_parse_table/small_parse_table_951 \ +small_parse_table/small_parse_table_952 \ +small_parse_table/small_parse_table_953 \ +small_parse_table/small_parse_table_954 \ +small_parse_table/small_parse_table_955 \ +small_parse_table/small_parse_table_956 \ +small_parse_table/small_parse_table_957 \ +small_parse_table/small_parse_table_958 \ +small_parse_table/small_parse_table_959 \ +small_parse_table/small_parse_table_96 \ +small_parse_table/small_parse_table_960 \ +small_parse_table/small_parse_table_961 \ +small_parse_table/small_parse_table_962 \ +small_parse_table/small_parse_table_963 \ +small_parse_table/small_parse_table_964 \ +small_parse_table/small_parse_table_965 \ +small_parse_table/small_parse_table_966 \ +small_parse_table/small_parse_table_967 \ +small_parse_table/small_parse_table_968 \ +small_parse_table/small_parse_table_969 \ +small_parse_table/small_parse_table_97 \ +small_parse_table/small_parse_table_970 \ +small_parse_table/small_parse_table_971 \ +small_parse_table/small_parse_table_972 \ +small_parse_table/small_parse_table_973 \ +small_parse_table/small_parse_table_974 \ +small_parse_table/small_parse_table_975 \ +small_parse_table/small_parse_table_976 \ +small_parse_table/small_parse_table_977 \ +small_parse_table/small_parse_table_978 \ +small_parse_table/small_parse_table_979 \ +small_parse_table/small_parse_table_98 \ +small_parse_table/small_parse_table_980 \ +small_parse_table/small_parse_table_981 \ +small_parse_table/small_parse_table_982 \ +small_parse_table/small_parse_table_983 \ +small_parse_table/small_parse_table_984 \ +small_parse_table/small_parse_table_985 \ +small_parse_table/small_parse_table_986 \ +small_parse_table/small_parse_table_987 \ +small_parse_table/small_parse_table_988 \ +small_parse_table/small_parse_table_989 \ +small_parse_table/small_parse_table_99 \ +small_parse_table/small_parse_table_990 \ +small_parse_table/small_parse_table_991 \ +small_parse_table/small_parse_table_992 \ +small_parse_table/small_parse_table_993 \ +small_parse_table/small_parse_table_994 \ +small_parse_table/small_parse_table_995 \ +small_parse_table/small_parse_table_996 \ +small_parse_table/small_parse_table_997 \ +small_parse_table/small_parse_table_998 \ +small_parse_table/small_parse_table_999 \ +small_parse_table_map/small_parse_table_map_0 \ +small_parse_table_map/small_parse_table_map_1 \ +small_parse_table_map/small_parse_table_map_10 \ +small_parse_table_map/small_parse_table_map_11 \ +small_parse_table_map/small_parse_table_map_12 \ +small_parse_table_map/small_parse_table_map_13 \ +small_parse_table_map/small_parse_table_map_14 \ +small_parse_table_map/small_parse_table_map_15 \ +small_parse_table_map/small_parse_table_map_16 \ +small_parse_table_map/small_parse_table_map_17 \ +small_parse_table_map/small_parse_table_map_18 \ +small_parse_table_map/small_parse_table_map_19 \ +small_parse_table_map/small_parse_table_map_2 \ +small_parse_table_map/small_parse_table_map_20 \ +small_parse_table_map/small_parse_table_map_21 \ +small_parse_table_map/small_parse_table_map_22 \ +small_parse_table_map/small_parse_table_map_23 \ +small_parse_table_map/small_parse_table_map_24 \ +small_parse_table_map/small_parse_table_map_25 \ +small_parse_table_map/small_parse_table_map_26 \ +small_parse_table_map/small_parse_table_map_27 \ +small_parse_table_map/small_parse_table_map_28 \ +small_parse_table_map/small_parse_table_map_29 \ +small_parse_table_map/small_parse_table_map_3 \ +small_parse_table_map/small_parse_table_map_30 \ +small_parse_table_map/small_parse_table_map_31 \ +small_parse_table_map/small_parse_table_map_32 \ +small_parse_table_map/small_parse_table_map_33 \ +small_parse_table_map/small_parse_table_map_34 \ +small_parse_table_map/small_parse_table_map_35 \ +small_parse_table_map/small_parse_table_map_36 \ +small_parse_table_map/small_parse_table_map_37 \ +small_parse_table_map/small_parse_table_map_38 \ +small_parse_table_map/small_parse_table_map_39 \ +small_parse_table_map/small_parse_table_map_4 \ +small_parse_table_map/small_parse_table_map_40 \ +small_parse_table_map/small_parse_table_map_41 \ +small_parse_table_map/small_parse_table_map_42 \ +small_parse_table_map/small_parse_table_map_43 \ +small_parse_table_map/small_parse_table_map_44 \ +small_parse_table_map/small_parse_table_map_45 \ +small_parse_table_map/small_parse_table_map_46 \ +small_parse_table_map/small_parse_table_map_47 \ +small_parse_table_map/small_parse_table_map_48 \ +small_parse_table_map/small_parse_table_map_49 \ +small_parse_table_map/small_parse_table_map_5 \ +small_parse_table_map/small_parse_table_map_50 \ +small_parse_table_map/small_parse_table_map_51 \ +small_parse_table_map/small_parse_table_map_52 \ +small_parse_table_map/small_parse_table_map_53 \ +small_parse_table_map/small_parse_table_map_54 \ +small_parse_table_map/small_parse_table_map_55 \ +small_parse_table_map/small_parse_table_map_56 \ +small_parse_table_map/small_parse_table_map_57 \ +small_parse_table_map/small_parse_table_map_58 \ +small_parse_table_map/small_parse_table_map_59 \ +small_parse_table_map/small_parse_table_map_6 \ +small_parse_table_map/small_parse_table_map_60 \ +small_parse_table_map/small_parse_table_map_61 \ +small_parse_table_map/small_parse_table_map_62 \ +small_parse_table_map/small_parse_table_map_63 \ +small_parse_table_map/small_parse_table_map_64 \ +small_parse_table_map/small_parse_table_map_65 \ +small_parse_table_map/small_parse_table_map_66 \ +small_parse_table_map/small_parse_table_map_67 \ +small_parse_table_map/small_parse_table_map_68 \ +small_parse_table_map/small_parse_table_map_69 \ +small_parse_table_map/small_parse_table_map_7 \ +small_parse_table_map/small_parse_table_map_70 \ +small_parse_table_map/small_parse_table_map_71 \ +small_parse_table_map/small_parse_table_map_8 \ +small_parse_table_map/small_parse_table_map_9 \ +symbols_metadata/symbols_metadata_0 \ +symbols_metadata/symbols_metadata_1 \ +symbols_metadata/symbols_metadata_2 \ +symbols_names/symbols_names_0 \ +symbols_names/symbols_names_1 \ +symbols_names/symbols_names_2 \ +unique_symbols_map/unique_symbols_map_0 \ +unique_symbols_map/unique_symbols_map_1 \ +unique_symbols_map/unique_symbols_map_2 diff --git a/parser/Grammar.mk b/parser/Grammar.mk new file mode 100644 index 00000000..a7718fce --- /dev/null +++ b/parser/Grammar.mk @@ -0,0 +1,73 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Grammar.mk :+: :+: :+: # +# +:+ +:+ +:+ # +# By: maiboyer +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2023/11/03 13:20:01 by maiboyer #+# #+# # +# Updated: 2024/05/30 19:51:10 by maiboyer ### ########.fr # +# # +# **************************************************************************** # + +ANAME = gmr + +BUILD_DIR = ../build +SRC_DIR = ./static + +BONUS_FLAGS = +NAME = lib$(ANAME).a +LIB_NAME ?= +TARGET = $(BUILD_DIR)/$(NAME) +CC ?= cc +CFLAGS = -Wall -Wextra -Werror -MMD -I./includes -I../includes -I../output/include +#CFLAGS += -fsanitize=address -fno-omit-frame-pointer -fsanitize-address-use-after-return=runtime -fno-common -fsanitize-address-use-after-scope + +include ./Filelist.mk + +SRC = $(addsuffix .c,$(addprefix $(SRC_DIR)/,$(SRC_FILES))) +OBJ = $(addsuffix .o,$(addprefix $(BUILD_DIR)/$(ANAME)/,$(SRC_FILES))) +DEPS = $(addsuffix .d,$(addprefix $(BUILD_DIR)/$(ANAME)/,$(SRC_FILES))) + +INCLUDES = + +GREEN = \033[32m +GREY = \033[0;90m +RED = \033[0;31m +GOLD = \033[38;5;220m +END = \033[0m + +.PHONY: all clean fclean re + +all: $(NAME) + +$(NAME): $(TARGET) + +$(TARGET): $(OBJ) + @echo -e '$(GREY) Linking\t$(END)$(GREEN)$(NAME)$(END)' + @ar rcs $(BUILD_DIR)/$(NAME) $(OBJ) + +$(BUILD_DIR)/$(ANAME)/%.o: $(SRC_DIR)/%.c + @mkdir -p $(dir $@) + @echo -e '$(GREY) Compiling\t$(END)$(GREEN)$<$(END)' + @$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ + +clean: + @- $(foreach LIB,$(LIBS), \ + make clean LIB_NAME=$(LIB)/ BUILD_DIR=$(realpath $(BUILD_DIR)) -C $(LIB) --no-print-directory || true;\ + ) + $(if $(LIB_NAME),,\ + rm -rf $(BUILD_DIR) \ + ) + +fclean: clean + @- $(foreach LIB,$(LIBS), \ + make fclean LIB_NAME=$(LIB)/ BUILD_DIR=$(realpath $(BUILD_DIR)) -C $(LIB) --no-print-directory || true;\ + ) + rm -f $(BUILD_DIR)/$(NAME) + +re: + @$(MAKE) --no-print-directory fclean + @$(MAKE) --no-print-directory all + +-include $(DEPS) diff --git a/parser/Makefile b/parser/Makefile index 66bc0b80..ee4d27e9 100644 --- a/parser/Makefile +++ b/parser/Makefile @@ -3,81 +3,23 @@ # ::: :::::::: # # Makefile :+: :+: :+: # # +:+ +:+ +:+ # -# By: maiboyer +#+ +:+ +#+ # +# By: rparodi +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # -# Created: 2023/11/03 13:20:01 by maiboyer #+# #+# # -# Updated: 2024/05/25 16:29:29 by maiboyer ### ########.fr # +# Created: 2023/11/12 11:05:05 by rparodi #+# #+# # +# Updated: 2024/05/30 19:46:52 by maiboyer ### ########.fr # # # # **************************************************************************** # -BUILD_DIR = ../build -SRC_DIR = ./ +BUILD_DIR ?= ../build/ -BONUS_FLAGS = -NAME = libgmr.a -LIB_NAME ?= -TARGET = $(BUILD_DIR)/$(NAME) -CC ?= cc -CFLAGS = -Wall -Wextra -Werror -MMD -I./includes -I../includes -I../output/include -#CFLAGS += -fsanitize=address -fno-omit-frame-pointer -fsanitize-address-use-after-return=runtime -fno-common -fsanitize-address-use-after-scope -include ./Filelist.mk +all: + @$(MAKE) --no-print-directory -f Parser.mk "LIB_NAME=$(shell realpath .)/" "BUILD_DIR=$(shell realpath $(BUILD_DIR))" libparser.a + @$(MAKE) --no-print-directory -f Grammar.mk "LIB_NAME=$(shell realpath .)/" "BUILD_DIR=$(shell realpath $(BUILD_DIR))" libgmr.a -SRC_FILES += ./src/combined ./src/scanner -SRC = $(addsuffix .c,$(addprefix $(SRC_DIR)/,$(SRC_FILES))) -OBJ = $(addsuffix .o,$(addprefix $(BUILD_DIR)/gmr/,$(SRC_FILES))) -DEPS = $(addsuffix .d,$(addprefix $(BUILD_DIR)/gmr/,$(SRC_FILES))) +libparser.a: + @$(MAKE) --no-print-directory -f Parser.mk "LIB_NAME=$(shell realpath .)/" "BUILD_DIR=$(shell realpath $(BUILD_DIR))" libparser.a -INCLUDES = -GREEN = \033[32m -GREY = \033[0;90m -RED = \033[0;31m -GOLD = \033[38;5;220m -END = \033[0m +libgmr.a: + @$(MAKE) --no-print-directory -f Grammar.mk "LIB_NAME=$(shell realpath .)/" "BUILD_DIR=$(shell realpath $(BUILD_DIR))" libgmr.a -.PHONY: all -.PHONY: libs_build -.PHONY: bonus -.PHONY: clean -.PHONY: fclean -.PHONY: re -.PHONY: format -.PHONY: subject -.PHONY: submit -.PHONY: so - -all: $(NAME) - -$(NAME): $(TARGET) - -$(TARGET): $(OBJ) - @#echo "ar rcs $(BUILD_DIR)/$(NAME) " - @echo -e '$(GREY) Linking\t$(END)$(GREEN)$(NAME)$(END)' - @ar rcs $(BUILD_DIR)/$(NAME) $(OBJ) - -$(BUILD_DIR)/gmr/%.o: $(SRC_DIR)/%.c - @mkdir -p $(dir $@) - @echo -e '$(GREY) Compiling\t$(END)$(GREEN)$<$(END)' - @$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ - -clean: - @- $(foreach LIB,$(LIBS), \ - make clean LIB_NAME=$(LIB)/ BUILD_DIR=$(realpath $(BUILD_DIR)) -C $(LIB) --no-print-directory || true;\ - ) - $(if $(LIB_NAME),,\ - rm -rf $(BUILD_DIR) \ - ) - -fclean: clean - @- $(foreach LIB,$(LIBS), \ - make fclean LIB_NAME=$(LIB)/ BUILD_DIR=$(realpath $(BUILD_DIR)) -C $(LIB) --no-print-directory || true;\ - ) - rm -f $(BUILD_DIR)/$(NAME) - -re: - @$(MAKE) --no-print-directory fclean - @$(MAKE) --no-print-directory all - -generate_filelist: - @/usr/bin/env zsh -c "tree -iFf --noreport $(SRC_DIR) | rg '^$(SRC_DIR)/(.*)\.c\$$' --replace '\$$1' | sort -u" > ./source_files.list - --include $(DEPS) +.PHONY: all bonus clean fclean re libparser.a libgmr.a diff --git a/parser/Parser.mk b/parser/Parser.mk new file mode 100644 index 00000000..7fb5cc51 --- /dev/null +++ b/parser/Parser.mk @@ -0,0 +1,75 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Parser.mk :+: :+: :+: # +# +:+ +:+ +:+ # +# By: maiboyer +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2023/11/03 13:20:01 by maiboyer #+# #+# # +# Updated: 2024/05/30 19:41:06 by maiboyer ### ########.fr # +# # +# **************************************************************************** # + +ANAME = parser + +BUILD_DIR = ../build +SRC_DIR = ./src +GEN_DIR = ./generic + +BONUS_FLAGS = +NAME = lib$(ANAME).a +LIB_NAME ?= +TARGET = $(BUILD_DIR)/$(NAME) +CC ?= cc +CFLAGS = -Wall -Wextra -Werror -MMD -I./includes -I../includes -I../output/include +#CFLAGS += -fsanitize=address -fno-omit-frame-pointer -fsanitize-address-use-after-return=runtime -fno-common -fsanitize-address-use-after-scope + +SRC_FILES = combined scanner funcs create_language +GEN_FILES = + +SRC = $(addsuffix .c,$(addprefix $(SRC_DIR)/,$(SRC_FILES))) $(addsuffix .c,$(addprefix $(GEN_DIR)/,$(GEN_FILES))) +OBJ = $(addsuffix .o,$(addprefix $(BUILD_DIR)/$(ANAME)/,$(SRC_FILES))) $(addsuffix .o,$(addprefix $(BUILD_DIR)/$(ANAME)/,$(GEN_FILES))) +DEPS = $(addsuffix .d,$(addprefix $(BUILD_DIR)/$(ANAME)/,$(SRC_FILES))) $(addsuffix .d,$(addprefix $(BUILD_DIR)/$(ANAME)/,$(GEN_FILES))) + +INCLUDES = +GREEN = \033[32m +GREY = \033[0;90m +RED = \033[0;31m +GOLD = \033[38;5;220m +END = \033[0m + +.PHONY: all clean fclean re + +all: $(NAME) + +$(NAME): $(TARGET) + +$(TARGET): $(OBJ) + @#echo "ar rcs $(BUILD_DIR)/$(NAME) " + @echo -e '$(GREY) Linking\t$(END)$(GREEN)$(NAME)$(END)' + @ar rcs $(BUILD_DIR)/$(NAME) $(OBJ) + +$(BUILD_DIR)/$(ANAME)/%.o: $(SRC_DIR)/%.c + @mkdir -p $(dir $@) + @echo -e '$(GREY) Compiling\t$(END)$(GREEN)$<$(END)' + @$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ + +clean: + @- $(foreach LIB,$(LIBS), \ + make clean LIB_NAME=$(LIB)/ BUILD_DIR=$(realpath $(BUILD_DIR)) -C $(LIB) --no-print-directory || true;\ + ) + $(if $(LIB_NAME),,\ + rm -rf $(BUILD_DIR) \ + ) + +fclean: clean + @- $(foreach LIB,$(LIBS), \ + make fclean LIB_NAME=$(LIB)/ BUILD_DIR=$(realpath $(BUILD_DIR)) -C $(LIB) --no-print-directory || true;\ + ) + rm -f $(BUILD_DIR)/$(NAME) + +re: + @$(MAKE) --no-print-directory fclean + @$(MAKE) --no-print-directory all + +-include $(DEPS) diff --git a/parser/src/api.h b/parser/src/api.h index b58200e5..e07776c3 100644 --- a/parser/src/api.h +++ b/parser/src/api.h @@ -33,14 +33,14 @@ #define MAX_ITERATOR_COUNT 64 #define TS_MAX_INLINE_TREE_LENGTH UINT8_MAX #define TS_MAX_TREE_POOL_SIZE 32 -#define ts_builtin_sym_error ((t_symbol) - 1) +#define ts_builtin_sym_error ((t_symbol)-1) #define ts_builtin_sym_end 0 #define POINT_ZERO ((t_point){0, 0}) #define POINT_MAX ((t_point){UINT32_MAX, UINT32_MAX}) #define TS_TREE_STATE_NONE USHRT_MAX #define NULL_SUBTREE ((t_subtree){.ptr = NULL}) -#define STACK_VERSION_NONE ((t_stack_version) - 1) +#define STACK_VERSION_NONE ((t_stack_version)-1) #define TS_DECODE_ERROR (-1) #if true @@ -59,728 +59,7 @@ // tree's own heap data. #define ts_subtree_children(self) ((self).data.is_inline ? NULL : (t_subtree *)((self).ptr) - (self).ptr->child_count) -/// Helper macro for the `_sorted_by` routines below. This takes the left -/// (existing) parameter by reference in order to work with the generic sorting -/// function above. -#define _compare_int(a, b) ((int)*(a) - (int)(b)) - -static inline size_t atomic_load(const volatile size_t *p) -{ - return (*p); -} - -static inline uint32_t atomic_inc(volatile uint32_t *p) -{ - return (++(*p)); -} - -static inline uint32_t atomic_dec(volatile uint32_t *p) -{ - return (--(*p)); -} - -static inline bool ts_language_is_symbol_external(const t_language *self, t_symbol symbol) -{ - return 0 < symbol && symbol < self->external_token_count + 1; -} - -static inline const t_parse_action *ts_language_actions(const t_language *self, t_state_id state, t_symbol symbol, uint32_t *count) -{ - t_table_entry entry; - ts_language_table_entry(self, state, symbol, &entry); - *count = entry.action_count; - return entry.actions; -} - -static inline bool ts_language_has_reduce_action(const t_language *self, t_state_id state, t_symbol symbol) -{ - t_table_entry entry; - ts_language_table_entry(self, state, symbol, &entry); - return entry.action_count > 0 && entry.actions[0].type == TSParseActionTypeReduce; -} - -// Lookup the table value for a given symbol and state. -// -// For non-terminal symbols, the table value represents a successor state. -// For terminal symbols, it represents an index in the actions table. -// For 'large' parse states, this is a direct lookup. For 'small' parse -// states, this requires searching through the symbol groups to find -// the given symbol. -static inline uint16_t ts_language_lookup(const t_language *self, t_state_id state, t_symbol symbol) -{ - if (state >= self->large_state_count) - { - uint32_t index = self->small_parse_table_map[state - self->large_state_count]; - const uint16_t *data = &self->small_parse_table[index]; - uint16_t group_count = *(data++); - for (unsigned i = 0; i < group_count; i++) - { - uint16_t section_value = *(data++); - uint16_t symbol_count = *(data++); - for (unsigned j = 0; j < symbol_count; j++) - { - if (*(data++) == symbol) - return section_value; - } - } - return 0; - } - else - { - return self->parse_table[state * self->symbol_count + symbol]; - } -} - -static inline bool ts_language_has_actions(const t_language *self, t_state_id state, t_symbol symbol) -{ - return ts_language_lookup(self, state, symbol) != 0; -} - -// Iterate over all of the symbols that are valid in the given state. -// -// For 'large' parse states, this just requires iterating through -// all possible symbols and checking the parse table for each one. -// For 'small' parse states, this exploits the structure of the -// table to only visit the valid symbols. -static inline t_lookahead_iterator ts_language_lookaheads(const t_language *self, t_state_id state) -{ - bool is_small_state = state >= self->large_state_count; - const uint16_t *data; - const uint16_t *group_end = NULL; - uint16_t group_count = 0; - if (is_small_state) - { - uint32_t index = self->small_parse_table_map[state - self->large_state_count]; - data = &self->small_parse_table[index]; - group_end = data + 1; - group_count = *data; - } - else - { - data = &self->parse_table[state * self->symbol_count] - 1; - } - return (t_lookahead_iterator){ - .language = self, - .data = data, - .group_end = group_end, - .group_count = group_count, - .is_small_state = is_small_state, - .symbol = UINT16_MAX, - .next_state = 0, - }; -} - -static inline bool ts_lookahead_iterator__next(t_lookahead_iterator *self) -{ - // For small parse states, valid symbols are listed explicitly, - // grouped by their value. There's no need to look up the actions - // again until moving to the next group. - if (self->is_small_state) - { - self->data++; - if (self->data == self->group_end) - { - if (self->group_count == 0) - return false; - self->group_count--; - self->table_value = *(self->data++); - unsigned symbol_count = *(self->data++); - self->group_end = self->data + symbol_count; - self->symbol = *self->data; - } - else - { - self->symbol = *self->data; - return true; - } - } - - // For large parse states, iterate through every symbol until one - // is found that has valid actions. - else - { - do - { - self->data++; - self->symbol++; - if (self->symbol >= self->language->symbol_count) - return false; - self->table_value = *self->data; - } while (!self->table_value); - } - - // Depending on if the symbols is terminal or non-terminal, the table value - // either represents a list of actions or a successor state. - if (self->symbol < self->language->token_count) - { - const t_parse_action_entry *entry = &self->language->parse_actions[self->table_value]; - self->action_count = entry->entry.count; - self->actions = (const t_parse_action *)(entry + 1); - self->next_state = 0; - } - else - { - self->action_count = 0; - self->next_state = self->table_value; - } - return true; -} - -// Whether the state is a "primary state". If this returns false, it indicates -// that there exists another state that behaves identically to this one with -// respect to query analysis. -static inline bool ts_language_state_is_primary(const t_language *self, t_state_id state) -{ - if (self->version >= LANGUAGE_VERSION_WITH_PRIMARY_STATES) - { - return state == self->primary_state_ids[state]; - } - else - { - return true; - } -} - -static inline const bool *ts_language_enabled_external_tokens(const t_language *self, unsigned external_scanner_state) -{ - if (external_scanner_state == 0) - { - return NULL; - } - else - { - return self->external_scanner.states + self->external_token_count * external_scanner_state; - } -} - -static inline const t_symbol *ts_language_alias_sequence(const t_language *self, uint32_t production_id) -{ - return production_id ? &self->alias_sequences[production_id * self->max_alias_sequence_length] : NULL; -} - -static inline t_symbol ts_language_alias_at(const t_language *self, uint32_t production_id, uint32_t child_index) -{ - return production_id ? self->alias_sequences[production_id * self->max_alias_sequence_length + child_index] : 0; -} - -static inline void ts_language_field_map(const t_language *self, uint32_t production_id, const t_field_map_entry **start, const t_field_map_entry **end) -{ - if (self->field_count == 0) - { - *start = NULL; - *end = NULL; - return; - } - - t_field_map_slice slice = self->field_map_slices[production_id]; - *start = &self->field_map_entries[slice.index]; - *end = &self->field_map_entries[slice.index] + slice.length; -} - -static inline void ts_language_aliases_for_symbol(const t_language *self, t_symbol original_symbol, const t_symbol **start, const t_symbol **end) -{ - *start = &self->public_symbol_map[original_symbol]; - *end = *start + 1; - - unsigned idx = 0; - for (;;) - { - t_symbol symbol = self->alias_map[idx++]; - if (symbol == 0 || symbol > original_symbol) - break; - uint16_t count = self->alias_map[idx++]; - if (symbol == original_symbol) - { - *start = &self->alias_map[idx]; - *end = &self->alias_map[idx + count]; - break; - } - idx += count; - } -} - static const t_length LENGTH_UNDEFINED = {0, {0, 1}}; static const t_length LENGTH_MAX = {UINT32_MAX, {UINT32_MAX, UINT32_MAX}}; -static t_point point_add(t_point a, t_point b); -static t_point point_sub(t_point a, t_point b); - -static inline bool length_is_undefined(t_length length) -{ - return length.bytes == 0 && length.extent.column != 0; -} - -static inline t_length length_min(t_length len1, t_length len2) -{ - return (len1.bytes < len2.bytes) ? len1 : len2; -} - -static inline t_length length_add(t_length len1, t_length len2) -{ - t_length result; - result.bytes = len1.bytes + len2.bytes; - result.extent = point_add(len1.extent, len2.extent); - return result; -} - -static inline t_length length_sub(t_length len1, t_length len2) -{ - t_length result; - result.bytes = len1.bytes - len2.bytes; - result.extent = point_sub(len1.extent, len2.extent); - return result; -} - -static inline t_length length_zero(void) -{ - t_length result = {0, {0, 0}}; - return result; -} - -static inline t_length length_saturating_sub(t_length len1, t_length len2) -{ - if (len1.bytes > len2.bytes) - { - return length_sub(len1, len2); - } - else - { - return length_zero(); - } -} - -static inline bool set_contains(t_char_range *ranges, uint32_t len, int32_t lookahead) -{ - uint32_t index = 0; - uint32_t size = len - index; - while (size > 1) - { - uint32_t half_size = size / 2; - uint32_t mid_index = index + half_size; - t_char_range *range = &ranges[mid_index]; - if (lookahead >= range->start && lookahead <= range->end) - { - return true; - } - else if (lookahead > range->end) - { - index = mid_index; - } - size -= half_size; - } - t_char_range *range = &ranges[index]; - return (lookahead >= range->start && lookahead <= range->end); -} - -static inline t_point point__new(unsigned row, unsigned column) -{ - t_point result = {row, column}; - return result; -} - -static inline t_point point_add(t_point a, t_point b) -{ - if (b.row > 0) - return point__new(a.row + b.row, b.column); - else - return point__new(a.row, a.column + b.column); -} - -static inline t_point point_sub(t_point a, t_point b) -{ - if (a.row > b.row) - return point__new(a.row - b.row, a.column); - else - return point__new(0, a.column - b.column); -} - -static inline bool point_lte(t_point a, t_point b) -{ - return (a.row < b.row) || (a.row == b.row && a.column <= b.column); -} - -static inline bool point_lt(t_point a, t_point b) -{ - return (a.row < b.row) || (a.row == b.row && a.column < b.column); -} - -static inline bool point_gt(t_point a, t_point b) -{ - return (a.row > b.row) || (a.row == b.row && a.column > b.column); -} - -static inline bool point_gte(t_point a, t_point b) -{ - return (a.row > b.row) || (a.row == b.row && a.column >= b.column); -} - -static inline bool point_eq(t_point a, t_point b) -{ - return a.row == b.row && a.column == b.column; -} - -static inline t_point point_min(t_point a, t_point b) -{ - if (a.row < b.row || (a.row == b.row && a.column < b.column)) - return a; - else - return b; -} - -static inline t_point point_max(t_point a, t_point b) -{ - if (a.row > b.row || (a.row == b.row && a.column > b.column)) - return a; - else - return b; -} - -static inline void ts_reduce_action_set_add(t_reduce_action_set *self, t_reduce_action new_action) -{ - for (uint32_t i = 0; i < self->size; i++) - { - t_reduce_action action = self->contents[i]; - if (action.symbol == new_action.symbol && action.count == new_action.count) - return; - } - array_push(self, new_action); -} - -static inline t_reusable_node reusable_node_new(void) -{ - return (t_reusable_node){array_new(), NULL_SUBTREE}; -} - -static inline void reusable_node_clear(t_reusable_node *self) -{ - array_clear(&self->stack); - self->last_external_token = NULL_SUBTREE; -} - -static inline t_subtree reusable_node_tree(t_reusable_node *self) -{ - return self->stack.size > 0 ? self->stack.contents[self->stack.size - 1].tree : NULL_SUBTREE; -} - -static inline uint32_t reusable_node_byte_offset(t_reusable_node *self) -{ - return self->stack.size > 0 ? self->stack.contents[self->stack.size - 1].byte_offset : UINT32_MAX; -} - -static inline void reusable_node_delete(t_reusable_node *self) -{ - array_delete(&self->stack); -} - -static inline uint32_t ts_subtree_total_bytes(t_subtree self); -static inline uint32_t ts_subtree_child_count(t_subtree self); -static inline bool ts_subtree_has_external_tokens(t_subtree self); - -static inline void reusable_node_advance(t_reusable_node *self) -{ - t_stack_entry last_entry = *array_back(&self->stack); - uint32_t byte_offset = last_entry.byte_offset + ts_subtree_total_bytes(last_entry.tree); - if (ts_subtree_has_external_tokens(last_entry.tree)) - { - self->last_external_token = ts_subtree_last_external_token(last_entry.tree); - } - - t_subtree tree; - uint32_t next_index; - do - { - t_stack_entry popped_entry = array_pop(&self->stack); - next_index = popped_entry.child_index + 1; - if (self->stack.size == 0) - return; - tree = array_back(&self->stack)->tree; - } while (ts_subtree_child_count(tree) <= next_index); - - array_push(&self->stack, ((t_stack_entry){ - .tree = ts_subtree_children(tree)[next_index], - .child_index = next_index, - .byte_offset = byte_offset, - })); -} - -static inline bool reusable_node_descend(t_reusable_node *self) -{ - t_stack_entry last_entry = *array_back(&self->stack); - if (ts_subtree_child_count(last_entry.tree) > 0) - { - array_push(&self->stack, ((t_stack_entry){ - .tree = ts_subtree_children(last_entry.tree)[0], - .child_index = 0, - .byte_offset = last_entry.byte_offset, - })); - return true; - } - else - { - return false; - } -} - -static inline void reusable_node_advance_past_leaf(t_reusable_node *self) -{ - while (reusable_node_descend(self)) - { - } - reusable_node_advance(self); -} - -static inline void reusable_node_reset(t_reusable_node *self, t_subtree tree) -{ - reusable_node_clear(self); - array_push(&self->stack, ((t_stack_entry){ - .tree = tree, - .child_index = 0, - .byte_offset = 0, - })); - - // Never reuse the root node, because it has a non-standard internal - // structure due to transformations that are applied when it is accepted: - // adding the EOF child and any extra children. - if (!reusable_node_descend(self)) - { - reusable_node_clear(self); - } -} - -#define SUBTREE_GET(self, name) ((self).data.is_inline ? (self).data.name : (self).ptr->name) - -static inline t_symbol ts_subtree_symbol(t_subtree self) -{ - return SUBTREE_GET(self, symbol); -} -static inline bool ts_subtree_visible(t_subtree self) -{ - return SUBTREE_GET(self, visible); -} -static inline bool ts_subtree_named(t_subtree self) -{ - return SUBTREE_GET(self, named); -} -static inline bool ts_subtree_extra(t_subtree self) -{ - return SUBTREE_GET(self, extra); -} -static inline bool ts_subtree_has_changes(t_subtree self) -{ - return SUBTREE_GET(self, has_changes); -} -static inline bool ts_subtree_missing(t_subtree self) -{ - return SUBTREE_GET(self, is_missing); -} -static inline bool ts_subtree_is_keyword(t_subtree self) -{ - return SUBTREE_GET(self, is_keyword); -} -static inline t_state_id ts_subtree_parse_state(t_subtree self) -{ - return SUBTREE_GET(self, parse_state); -} -static inline uint32_t ts_subtree_lookahead_bytes(t_subtree self) -{ - return SUBTREE_GET(self, lookahead_bytes); -} - -#undef SUBTREE_GET - -// Get the size needed to store a heap-allocated subtree with the given -// number of children. -static inline size_t ts_subtree_alloc_size(uint32_t child_count) -{ - return child_count * sizeof(t_subtree) + sizeof(t_subtree_heap_data); -} - -static inline void ts_subtree_set_extra(t_mutable_subtree *self, bool is_extra) -{ - if (self->data.is_inline) - { - self->data.extra = is_extra; - } - else - { - self->ptr->extra = is_extra; - } -} - -static inline t_symbol ts_subtree_leaf_symbol(t_subtree self) -{ - if (self.data.is_inline) - return self.data.symbol; - if (self.ptr->child_count == 0) - return self.ptr->symbol; - return self.ptr->first_leaf.symbol; -} - -static inline t_state_id ts_subtree_leaf_parse_state(t_subtree self) -{ - if (self.data.is_inline) - return self.data.parse_state; - if (self.ptr->child_count == 0) - return self.ptr->parse_state; - return self.ptr->first_leaf.parse_state; -} - -static inline t_length ts_subtree_padding(t_subtree self) -{ - if (self.data.is_inline) - { - t_length result = {self.data.padding_bytes, {self.data.padding_rows, self.data.padding_columns}}; - return result; - } - else - { - return self.ptr->padding; - } -} - -static inline t_length ts_subtree_size(t_subtree self) -{ - if (self.data.is_inline) - { - t_length result = {self.data.size_bytes, {0, self.data.size_bytes}}; - return result; - } - else - { - return self.ptr->size; - } -} - -static inline t_length ts_subtree_total_size(t_subtree self) -{ - return length_add(ts_subtree_padding(self), ts_subtree_size(self)); -} - -static inline uint32_t ts_subtree_total_bytes(t_subtree self) -{ - return ts_subtree_total_size(self).bytes; -} - -static inline uint32_t ts_subtree_child_count(t_subtree self) -{ - return self.data.is_inline ? 0 : self.ptr->child_count; -} - -static inline uint32_t ts_subtree_repeat_depth(t_subtree self) -{ - return self.data.is_inline ? 0 : self.ptr->repeat_depth; -} - -static inline uint32_t ts_subtree_is_repetition(t_subtree self) -{ - return self.data.is_inline ? 0 : !self.ptr->named && !self.ptr->visible && self.ptr->child_count != 0; -} - -static inline uint32_t ts_subtree_visible_descendant_count(t_subtree self) -{ - return (self.data.is_inline || self.ptr->child_count == 0) ? 0 : self.ptr->visible_descendant_count; -} - -static inline uint32_t ts_subtree_visible_child_count(t_subtree self) -{ - if (ts_subtree_child_count(self) > 0) - { - return self.ptr->visible_child_count; - } - else - { - return 0; - } -} - -static inline uint32_t ts_subtree_error_cost(t_subtree self) -{ - if (ts_subtree_missing(self)) - { - return ERROR_COST_PER_MISSING_TREE + ERROR_COST_PER_RECOVERY; - } - else - { - return self.data.is_inline ? 0 : self.ptr->error_cost; - } -} - -static inline int32_t ts_subtree_dynamic_precedence(t_subtree self) -{ - return (self.data.is_inline || self.ptr->child_count == 0) ? 0 : self.ptr->dynamic_precedence; -} - -static inline uint16_t ts_subtree_production_id(t_subtree self) -{ - if (ts_subtree_child_count(self) > 0) - { - return self.ptr->production_id; - } - else - { - return 0; - } -} - -static inline bool ts_subtree_fragile_left(t_subtree self) -{ - return self.data.is_inline ? false : self.ptr->fragile_left; -} - -static inline bool ts_subtree_fragile_right(t_subtree self) -{ - return self.data.is_inline ? false : self.ptr->fragile_right; -} - -static inline bool ts_subtree_has_external_tokens(t_subtree self) -{ - return self.data.is_inline ? false : self.ptr->has_external_tokens; -} - -static inline bool ts_subtree_has_external_scanner_state_change(t_subtree self) -{ - return self.data.is_inline ? false : self.ptr->has_external_scanner_state_change; -} - -static inline bool ts_subtree_depends_on_column(t_subtree self) -{ - return self.data.is_inline ? false : self.ptr->depends_on_column; -} - -static inline bool ts_subtree_is_fragile(t_subtree self) -{ - return self.data.is_inline ? false : (self.ptr->fragile_left || self.ptr->fragile_right); -} - -static inline bool ts_subtree_is_error(t_subtree self) -{ - return ts_subtree_symbol(self) == ts_builtin_sym_error; -} - -static inline bool ts_subtree_is_eof(t_subtree self) -{ - return ts_subtree_symbol(self) == ts_builtin_sym_end; -} - -static inline t_subtree ts_subtree_from_mut(t_mutable_subtree self) -{ - t_subtree result; - result.data = self.data; - return result; -} - -static inline t_mutable_subtree ts_subtree_to_mut_unsafe(t_subtree self) -{ - t_mutable_subtree result; - result.data = self.data; - return result; -} - -static inline t_subtree ts_tree_cursor_current_subtree(const t_tree_cursor *_self) -{ - const t_tree_cursor *self = (const t_tree_cursor *)_self; - t_tree_cursor_entry *last_entry = array_back(&self->stack); - return *last_entry->subtree; -} - #endif // TREE_SITTER_TREE_H_ diff --git a/parser/src/api_structs.h b/parser/src/api_structs.h index 1148e992..3df6c1c2 100644 --- a/parser/src/api_structs.h +++ b/parser/src/api_structs.h @@ -12,7 +12,7 @@ typedef uint16_t t_state_id; typedef uint16_t t_symbol; typedef uint64_t t_parser_clock; typedef uint64_t t_parser_duration; -typedef unsigned t_stack_version; +typedef uint32_t t_stack_version; typedef union u_parse_action_entry t_parse_action_entry; typedef union u_subtree t_subtree; @@ -126,8 +126,7 @@ struct s_parse_range struct s_parse_input { void *payload; - const char *(*read)(void *payload, uint32_t byte_index, t_point position, - uint32_t *bytes_read); + const char *(*read)(void *payload, uint32_t byte_index, t_point position, uint32_t *bytes_read); t_input_encoding encoding; }; @@ -257,19 +256,19 @@ struct s_external_scanner_state uint32_t length; }; -#define SUBTREE_BITS \ - bool visible : 1; \ - bool named : 1; \ - bool extra : 1; \ - bool has_changes : 1; \ - bool is_missing : 1; \ +#define SUBTREE_BITS \ + bool visible : 1; \ + bool named : 1; \ + bool extra : 1; \ + bool has_changes : 1; \ + bool is_missing : 1; \ bool is_keyword : 1; -#define SUBTREE_SIZE \ - uint8_t padding_columns; \ - uint8_t padding_rows : 4; \ - uint8_t lookahead_bytes : 4; \ - uint8_t padding_bytes; \ +#define SUBTREE_SIZE \ + uint8_t padding_columns; \ + uint8_t padding_rows : 4; \ + uint8_t lookahead_bytes : 4; \ + uint8_t padding_bytes; \ uint8_t size_bytes; #if TS_BIG_ENDIAN @@ -520,8 +519,8 @@ struct s_language void *(*create)(void); void (*destroy)(void *); bool (*scan)(void *, t_lexer_data *, const bool *symbol_whitelist); - unsigned (*serialize)(void *, char *); - void (*deserialize)(void *, const char *, unsigned); + uint32_t (*serialize)(void *, char *); + void (*deserialize)(void *, const char *, uint32_t); } external_scanner; const t_state_id *primary_state_ids; }; @@ -550,10 +549,10 @@ struct s_lexer struct s_reduce_action { - uint32_t count; - t_symbol symbol; - int dynamic_precedence; - unsigned short production_id; + uint32_t count; + t_symbol symbol; + int32_t dynamic_precedence; + uint16_t production_id; }; struct s_stack_entry @@ -574,7 +573,7 @@ struct s_first_tree t_subtree root; const t_language *language; t_parse_range *included_ranges; - unsigned included_range_count; + uint32_t included_range_count; }; #endif // API_STRUCTS_H diff --git a/parser/src/array.h b/parser/src/array.h index f1848cef..1502063c 100644 --- a/parser/src/array.h +++ b/parser/src/array.h @@ -18,12 +18,12 @@ # define free(p) mem_free((p)) #endif -#define Array(T) \ - struct \ - { \ - T *contents; \ - uint32_t size; \ - uint32_t capacity; \ +#define Array(T) \ + struct \ + { \ + T *contents; \ + uint32_t size; \ + uint32_t capacity; \ } #ifndef inline @@ -31,18 +31,16 @@ #endif /// Initialize an array. -#define array_init(self) \ - ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL) +#define array_init(self) ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL) /// Create an empty array. -#define array_new() \ - { \ - NULL, 0, 0 \ +#define array_new() \ + { \ + NULL, 0, 0 \ } /// Get a pointer to the element at a given `index` in the array. -#define array_get(self, _index) \ - (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index]) +#define array_get(self, _index) (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index]) /// Get a pointer to the first element in the array. #define array_front(self) array_get(self, 0) @@ -56,64 +54,51 @@ /// Reserve `new_capacity` elements of space in the array. If `new_capacity` is /// less than the array's current capacity, this function has no effect. -#define array_reserve(self, new_capacity) \ - _array__reserve((Array *)(self), array_elem_size(self), new_capacity) +#define array_reserve(self, new_capacity) _array__reserve((Array *)(self), array_elem_size(self), new_capacity) /// Free any memory allocated for this array. Note that this does not free any /// memory allocated for the array's contents. #define array_delete(self) _array__delete((Array *)(self)) /// Push a new `element` onto the end of the array. -#define array_push(self, element) \ - (_array__grow((Array *)(self), 1, array_elem_size(self)), \ - (self)->contents[(self)->size++] = (element)) +#define array_push(self, element) (_array__grow((Array *)(self), 1, array_elem_size(self)), (self)->contents[(self)->size++] = (element)) /// Increase the array's size by `count` elements. /// New elements are zero-initialized. -#define array_grow_by(self, count) \ - do \ - { \ - if ((count) == 0) \ - break; \ - _array__grow((Array *)(self), count, array_elem_size(self)); \ - memset((self)->contents + (self)->size, 0, \ - (count) * array_elem_size(self)); \ - (self)->size += (count); \ +#define array_grow_by(self, count) \ + do \ + { \ + if ((count) == 0) \ + break; \ + _array__grow((Array *)(self), count, array_elem_size(self)); \ + memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ + (self)->size += (count); \ } while (0) /// Append all elements from one array to the end of another. -#define array_push_all(self, other) \ - array_extend((self), (other)->size, (other)->contents) +#define array_push_all(self, other) array_extend((self), (other)->size, (other)->contents) /// Append `count` elements to the end of the array, reading their values from /// the `contents` pointer. -#define array_extend(self, count, contents) \ - _array__splice((Array *)(self), array_elem_size(self), (self)->size, 0, \ - count, contents) +#define array_extend(self, count, contents) _array__splice((Array *)(self), array_elem_size(self), (self)->size, 0, count, contents) /// Remove `old_count` elements from the array starting at the given `index`. At /// the same index, insert `new_count` new elements, reading their values from /// the `new_contents` pointer. -#define array_splice(self, _index, old_count, new_count, new_contents) \ - _array__splice((Array *)(self), array_elem_size(self), _index, old_count, \ - new_count, new_contents) +#define array_splice(self, _index, old_count, new_count, new_contents) \ + _array__splice((Array *)(self), array_elem_size(self), _index, old_count, new_count, new_contents) /// Insert one `element` into the array at the given `index`. -#define array_insert(self, _index, element) \ - _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, \ - &(element)) +#define array_insert(self, _index, element) _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, &(element)) /// Remove one element from the array at the given `index`. -#define array_erase(self, _index) \ - _array__erase((Array *)(self), array_elem_size(self), _index) +#define array_erase(self, _index) _array__erase((Array *)(self), array_elem_size(self), _index) /// Pop the last element off the array, returning the element by value. #define array_pop(self) ((self)->contents[--(self)->size]) /// Assign the contents of one array to another, reallocating if necessary. -#define array_assign(self, other) \ - _array__assign((Array *)(self), (const Array *)(other), \ - array_elem_size(self)) +#define array_assign(self, other) _array__assign((Array *)(self), (const Array *)(other), array_elem_size(self)) /// Swap one array with another #define array_swap(self, other) _array__swap((Array *)(self), (Array *)(other)) @@ -129,39 +114,42 @@ /// out-parameter is set to true. Otherwise, `index` is set to an index where /// `needle` should be inserted in order to preserve the sorting, and `exists` /// is set to false. -#define array_search_sorted_with(self, compare, needle, _index, _exists) \ - _array__search_sorted(self, 0, compare, , needle, _index, _exists) +#define array_search_sorted_with(self, compare, needle, _index, _exists) _array__search_sorted(self, 0, compare, , needle, _index, _exists) + +/// Helper macro for the `_sorted_by` routines below. This takes the left +/// (existing) parameter by reference in order to work with the generic sorting +/// function above. +#define _compare_int(a, b) ((int)*(a) - (int)(b)) /// Search a sorted array for a given `needle` value, using integer comparisons /// of a given struct field (specified with a leading dot) to determine the /// order. /// /// See also `array_search_sorted_with`. -#define array_search_sorted_by(self, field, needle, _index, _exists) \ - _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists) +#define array_search_sorted_by(self, field, needle, _index, _exists) _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists) /// Insert a given `value` into a sorted array, using the given `compare` /// callback to determine the order. -#define array_insert_sorted_with(self, compare, value) \ - do \ - { \ - unsigned _index, _exists; \ - array_search_sorted_with(self, compare, &(value), &_index, &_exists); \ - if (!_exists) \ - array_insert(self, _index, value); \ +#define array_insert_sorted_with(self, compare, value) \ + do \ + { \ + unsigned _index, _exists; \ + array_search_sorted_with(self, compare, &(value), &_index, &_exists); \ + if (!_exists) \ + array_insert(self, _index, value); \ } while (0) /// Insert a given `value` into a sorted array, using integer comparisons of /// a given struct field (specified with a leading dot) to determine the order. /// /// See also `array_search_sorted_by`. -#define array_insert_sorted_by(self, field, value) \ - do \ - { \ - unsigned _index, _exists; \ - array_search_sorted_by(self, field, (value)field, &_index, &_exists); \ - if (!_exists) \ - array_insert(self, _index, value); \ +#define array_insert_sorted_by(self, field, value) \ + do \ + { \ + unsigned _index, _exists; \ + array_search_sorted_by(self, field, (value)field, &_index, &_exists); \ + if (!_exists) \ + array_insert(self, _index, value); \ } while (0) typedef Array(void) Array; @@ -179,27 +167,22 @@ static inline void _array__delete(Array *self) } /// This is not what you're looking for, see `array_erase`. -static inline void _array__erase(Array *self, size_t element_size, - uint32_t index) +static inline void _array__erase(Array *self, size_t element_size, uint32_t index) { assert(index < self->size); char *contents = (char *)self->contents; - memmove(contents + index * element_size, - contents + (index + 1) * element_size, - (self->size - index - 1) * element_size); + memmove(contents + index * element_size, contents + (index + 1) * element_size, (self->size - index - 1) * element_size); self->size--; } /// This is not what you're looking for, see `array_reserve`. -static inline void _array__reserve(Array *self, size_t element_size, - uint32_t new_capacity) +static inline void _array__reserve(Array *self, size_t element_size, uint32_t new_capacity) { if (new_capacity > self->capacity) { if (self->contents) { - self->contents = - realloc(self->contents, new_capacity * element_size); + self->contents = realloc(self->contents, new_capacity * element_size); } else { @@ -210,8 +193,7 @@ static inline void _array__reserve(Array *self, size_t element_size, } /// This is not what you're looking for, see `array_assign`. -static inline void _array__assign(Array *self, const Array *other, - size_t element_size) +static inline void _array__assign(Array *self, const Array *other, size_t element_size) { _array__reserve(self, element_size, other->size); self->size = other->size; @@ -227,8 +209,7 @@ static inline void _array__swap(Array *self, Array *other) } /// This is not what you're looking for, see `array_push` or `array_grow_by`. -static inline void _array__grow(Array *self, uint32_t count, - size_t element_size) +static inline void _array__grow(Array *self, uint32_t count, size_t element_size) { uint32_t new_size = self->size + count; if (new_size > self->capacity) @@ -243,9 +224,7 @@ static inline void _array__grow(Array *self, uint32_t count, } /// This is not what you're looking for, see `array_splice`. -static inline void _array__splice(Array *self, size_t element_size, - uint32_t index, uint32_t old_count, - uint32_t new_count, const void *elements) +static inline void _array__splice(Array *self, size_t element_size, uint32_t index, uint32_t old_count, uint32_t new_count, const void *elements) { uint32_t new_size = self->size + new_count - old_count; uint32_t old_end = index + old_count; @@ -257,21 +236,17 @@ static inline void _array__splice(Array *self, size_t element_size, char *contents = (char *)self->contents; if (self->size > old_end) { - memmove(contents + new_end * element_size, - contents + old_end * element_size, - (self->size - old_end) * element_size); + memmove(contents + new_end * element_size, contents + old_end * element_size, (self->size - old_end) * element_size); } if (new_count > 0) { if (elements) { - memcpy((contents + index * element_size), elements, - new_count * element_size); + memcpy((contents + index * element_size), elements, new_count * element_size); } else { - memset((contents + index * element_size), 0, - new_count * element_size); + memset((contents + index * element_size), 0, new_count * element_size); } } self->size += new_count - old_count; @@ -280,31 +255,29 @@ static inline void _array__splice(Array *self, size_t element_size, /// A binary search routine, based on Rust's `std::slice::binary_search_by`. /// This is not what you're looking for, see `array_search_sorted_with` or /// `array_search_sorted_by`. -#define _array__search_sorted(self, start, compare, suffix, needle, _index, \ - _exists) \ - do \ - { \ - *(_index) = start; \ - *(_exists) = false; \ - uint32_t size = (self)->size - *(_index); \ - if (size == 0) \ - break; \ - int comparison; \ - while (size > 1) \ - { \ - uint32_t half_size = size / 2; \ - uint32_t mid_index = *(_index) + half_size; \ - comparison = \ - compare(&((self)->contents[mid_index] suffix), (needle)); \ - if (comparison <= 0) \ - *(_index) = mid_index; \ - size -= half_size; \ - } \ - comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \ - if (comparison == 0) \ - *(_exists) = true; \ - else if (comparison < 0) \ - *(_index) += 1; \ +#define _array__search_sorted(self, start, compare, suffix, needle, _index, _exists) \ + do \ + { \ + *(_index) = start; \ + *(_exists) = false; \ + uint32_t size = (self)->size - *(_index); \ + if (size == 0) \ + break; \ + int comparison; \ + while (size > 1) \ + { \ + uint32_t half_size = size / 2; \ + uint32_t mid_index = *(_index) + half_size; \ + comparison = compare(&((self)->contents[mid_index] suffix), (needle)); \ + if (comparison <= 0) \ + *(_index) = mid_index; \ + size -= half_size; \ + } \ + comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \ + if (comparison == 0) \ + *(_exists) = true; \ + else if (comparison < 0) \ + *(_index) += 1; \ } while (0) -#endif // ARRAY_H \ No newline at end of file +#endif // ARRAY_H diff --git a/parser/src/combined.c b/parser/src/combined.c index abd65a9e..8c0ad4f7 100644 --- a/parser/src/combined.c +++ b/parser/src/combined.c @@ -6,20 +6,18 @@ t_parse_node ts_node_parent(t_parse_node self); bool ts_node_is_null(t_parse_node self); uint32_t ts_node_child_count(t_parse_node self); t_parse_node ts_tree_root_node(const t_first_tree *self); -t_parse_node ts_node_child_containing_descendant(t_parse_node self, - t_parse_node subnode); +t_parse_node ts_node_child_containing_descendant(t_parse_node self, t_parse_node subnode); void ts_parser_reset(t_first_parser *self); -bool ts_parser_set_language(t_first_parser *self, const t_language *language); -void ts_query_delete(t_parse_query *self); -void ts_tree_cursor_delete(t_tree_cursor *_self); -void ts_tree_cursor_reset(t_tree_cursor *_self, t_parse_node node); -bool ts_tree_cursor_goto_parent(t_tree_cursor *_self); +bool ts_parser_set_language(t_first_parser *self, const t_language *language); +void ts_query_delete(t_parse_query *self); +void ts_tree_cursor_delete(t_tree_cursor *_self); +void ts_tree_cursor_reset(t_tree_cursor *_self, t_parse_node node); +bool ts_tree_cursor_goto_parent(t_tree_cursor *_self); t_parse_node ts_tree_cursor_current_node(const t_tree_cursor *_self); // #define DEBUG_GET_CHANGED_RANGES -static void ts_range_array_add(t_range_array *self, t_length start, - t_length end) +static void ts_range_array_add(t_range_array *self, t_length start, t_length end) { if (self->size > 0) { @@ -34,14 +32,12 @@ static void ts_range_array_add(t_range_array *self, t_length start, if (start.bytes < end.bytes) { - t_parse_range range = {start.extent, end.extent, start.bytes, - end.bytes}; + t_parse_range range = {start.extent, end.extent, start.bytes, end.bytes}; array_push(self, range); } } -bool ts_range_array_intersects(const t_range_array *self, unsigned start_index, - uint32_t start_byte, uint32_t end_byte) +bool ts_range_array_intersects(const t_range_array *self, unsigned start_index, uint32_t start_byte, uint32_t end_byte) { for (unsigned i = start_index; i < self->size; i++) { @@ -56,11 +52,8 @@ bool ts_range_array_intersects(const t_range_array *self, unsigned start_index, return false; } -void ts_range_array_get_changed_ranges(const t_parse_range *old_ranges, - unsigned old_range_count, - const t_parse_range *new_ranges, - unsigned new_range_count, - t_range_array *differences) +void ts_range_array_get_changed_ranges(const t_parse_range *old_ranges, unsigned old_range_count, const t_parse_range *new_ranges, unsigned new_range_count, + t_range_array *differences) { unsigned new_index = 0; unsigned old_index = 0; @@ -76,13 +69,11 @@ void ts_range_array_get_changed_ranges(const t_parse_range *old_ranges, t_length next_old_position; if (in_old_range) { - next_old_position = - (t_length){old_range->end_byte, old_range->end_point}; + next_old_position = (t_length){old_range->end_byte, old_range->end_point}; } else if (old_index < old_range_count) { - next_old_position = - (t_length){old_range->start_byte, old_range->start_point}; + next_old_position = (t_length){old_range->start_byte, old_range->start_point}; } else { @@ -92,13 +83,11 @@ void ts_range_array_get_changed_ranges(const t_parse_range *old_ranges, t_length next_new_position; if (in_new_range) { - next_new_position = - (t_length){new_range->end_byte, new_range->end_point}; + next_new_position = (t_length){new_range->end_byte, new_range->end_point}; } else if (new_index < new_range_count) { - next_new_position = - (t_length){new_range->start_byte, new_range->start_point}; + next_new_position = (t_length){new_range->start_byte, new_range->start_point}; } else { @@ -109,8 +98,7 @@ void ts_range_array_get_changed_ranges(const t_parse_range *old_ranges, { if (in_old_range != in_new_range) { - ts_range_array_add(differences, current_position, - next_old_position); + ts_range_array_add(differences, current_position, next_old_position); } if (in_old_range) old_index++; @@ -121,8 +109,7 @@ void ts_range_array_get_changed_ranges(const t_parse_range *old_ranges, { if (in_old_range != in_new_range) { - ts_range_array_add(differences, current_position, - next_new_position); + ts_range_array_add(differences, current_position, next_new_position); } if (in_new_range) new_index++; @@ -133,8 +120,7 @@ void ts_range_array_get_changed_ranges(const t_parse_range *old_ranges, { if (in_old_range != in_new_range) { - ts_range_array_add(differences, current_position, - next_new_position); + ts_range_array_add(differences, current_position, next_new_position); } if (in_old_range) old_index++; @@ -147,8 +133,7 @@ void ts_range_array_get_changed_ranges(const t_parse_range *old_ranges, } } -static t_iterator iterator_new(t_tree_cursor *cursor, const t_subtree *tree, - const t_language *language) +static t_iterator iterator_new(t_tree_cursor *cursor, const t_subtree *tree, const t_language *language) { array_clear(&cursor->stack); array_push(&cursor->stack, ((t_tree_cursor_entry){ @@ -186,8 +171,7 @@ static t_length iterator_start_position(t_iterator *self) static t_length iterator_end_position(t_iterator *self) { t_tree_cursor_entry entry = *array_back(&self->cursor.stack); - t_length result = - length_add(entry.position, ts_subtree_padding(*entry.subtree)); + t_length result = length_add(entry.position, ts_subtree_padding(*entry.subtree)); if (self->in_padding) { return result; @@ -205,17 +189,13 @@ static bool iterator_tree_is_visible(const t_iterator *self) return true; if (self->cursor.stack.size > 1) { - t_subtree parent = - *self->cursor.stack.contents[self->cursor.stack.size - 2].subtree; - return ts_language_alias_at(self->language, parent.ptr->production_id, - entry.structural_child_index) != 0; + t_subtree parent = *self->cursor.stack.contents[self->cursor.stack.size - 2].subtree; + return ts_language_alias_at(self->language, parent.ptr->production_id, entry.structural_child_index) != 0; } return false; } -static void iterator_get_visible_state(const t_iterator *self, t_subtree *tree, - t_symbol *alias_symbol, - uint32_t *start_byte) +static void iterator_get_visible_state(const t_iterator *self, t_subtree *tree, t_symbol *alias_symbol, uint32_t *start_byte) { uint32_t i = self->cursor.stack.size - 1; @@ -232,11 +212,8 @@ static void iterator_get_visible_state(const t_iterator *self, t_subtree *tree, if (i > 0) { - const t_subtree *parent = - self->cursor.stack.contents[i - 1].subtree; - *alias_symbol = - ts_language_alias_at(self->language, parent->ptr->production_id, - entry.structural_child_index); + const t_subtree *parent = self->cursor.stack.contents[i - 1].subtree; + *alias_symbol = ts_language_alias_at(self->language, parent->ptr->production_id, entry.structural_child_index); } if (ts_subtree_visible(*entry.subtree) || *alias_symbol) @@ -271,24 +248,20 @@ static bool iterator_descend(t_iterator *self, uint32_t goal_position) t_tree_cursor_entry entry = *array_back(&self->cursor.stack); t_length position = entry.position; uint32_t structural_child_index = 0; - for (uint32_t i = 0, n = ts_subtree_child_count(*entry.subtree); i < n; - i++) + for (uint32_t i = 0, n = ts_subtree_child_count(*entry.subtree); i < n; i++) { const t_subtree *child = &ts_subtree_children(*entry.subtree)[i]; - t_length child_left = - length_add(position, ts_subtree_padding(*child)); - t_length child_right = - length_add(child_left, ts_subtree_size(*child)); + t_length child_left = length_add(position, ts_subtree_padding(*child)); + t_length child_right = length_add(child_left, ts_subtree_size(*child)); if (child_right.bytes > goal_position) { - array_push(&self->cursor.stack, - ((t_tree_cursor_entry){ - .subtree = child, - .position = position, - .child_index = i, - .structural_child_index = structural_child_index, - })); + array_push(&self->cursor.stack, ((t_tree_cursor_entry){ + .subtree = child, + .position = position, + .child_index = i, + .structural_child_index = structural_child_index, + })); if (iterator_tree_is_visible(self)) { @@ -344,21 +317,18 @@ static void iterator_advance(t_iterator *self) uint32_t child_index = entry.child_index + 1; if (ts_subtree_child_count(*parent) > child_index) { - t_length position = length_add( - entry.position, ts_subtree_total_size(*entry.subtree)); + t_length position = length_add(entry.position, ts_subtree_total_size(*entry.subtree)); uint32_t structural_child_index = entry.structural_child_index; if (!ts_subtree_extra(*entry.subtree)) structural_child_index++; - const t_subtree *next_child = - &ts_subtree_children(*parent)[child_index]; + const t_subtree *next_child = &ts_subtree_children(*parent)[child_index]; - array_push(&self->cursor.stack, - ((t_tree_cursor_entry){ - .subtree = next_child, - .position = position, - .child_index = child_index, - .structural_child_index = structural_child_index, - })); + array_push(&self->cursor.stack, ((t_tree_cursor_entry){ + .subtree = next_child, + .position = position, + .child_index = child_index, + .structural_child_index = structural_child_index, + })); if (iterator_tree_is_visible(self)) { @@ -380,8 +350,7 @@ static void iterator_advance(t_iterator *self) } } -static t_iterator_comparison iterator_compare(const t_iterator *old_iter, - const t_iterator *new_iter) +static t_iterator_comparison iterator_compare(const t_iterator *old_iter, const t_iterator *new_iter) { t_subtree old_tree = NULL_SUBTREE; t_subtree new_tree = NULL_SUBTREE; @@ -389,27 +358,20 @@ static t_iterator_comparison iterator_compare(const t_iterator *old_iter, uint32_t new_start = 0; t_symbol old_alias_symbol = 0; t_symbol new_alias_symbol = 0; - iterator_get_visible_state(old_iter, &old_tree, &old_alias_symbol, - &old_start); - iterator_get_visible_state(new_iter, &new_tree, &new_alias_symbol, - &new_start); + iterator_get_visible_state(old_iter, &old_tree, &old_alias_symbol, &old_start); + iterator_get_visible_state(new_iter, &new_tree, &new_alias_symbol, &new_start); if (!old_tree.ptr && !new_tree.ptr) return IteratorMatches; if (!old_tree.ptr || !new_tree.ptr) return IteratorDiffers; - if (old_alias_symbol == new_alias_symbol && - ts_subtree_symbol(old_tree) == ts_subtree_symbol(new_tree)) + if (old_alias_symbol == new_alias_symbol && ts_subtree_symbol(old_tree) == ts_subtree_symbol(new_tree)) { - if (old_start == new_start && !ts_subtree_has_changes(old_tree) && - ts_subtree_symbol(old_tree) != ts_builtin_sym_error && - ts_subtree_size(old_tree).bytes == - ts_subtree_size(new_tree).bytes && - ts_subtree_parse_state(old_tree) != TS_TREE_STATE_NONE && + if (old_start == new_start && !ts_subtree_has_changes(old_tree) && ts_subtree_symbol(old_tree) != ts_builtin_sym_error && + ts_subtree_size(old_tree).bytes == ts_subtree_size(new_tree).bytes && ts_subtree_parse_state(old_tree) != TS_TREE_STATE_NONE && ts_subtree_parse_state(new_tree) != TS_TREE_STATE_NONE && - (ts_subtree_parse_state(old_tree) == ERROR_STATE) == - (ts_subtree_parse_state(new_tree) == ERROR_STATE)) + (ts_subtree_parse_state(old_tree) == ERROR_STATE) == (ts_subtree_parse_state(new_tree) == ERROR_STATE)) { return IteratorMatches; } @@ -428,18 +390,14 @@ static inline void iterator_print_state(t_iterator *self) t_tree_cursor_entry entry = *array_back(&self->cursor.stack); t_point start = iterator_start_position(self).extent; t_point end = iterator_end_position(self).extent; - const char *name = ts_language_symbol_name( - self->language, ts_subtree_symbol(*entry.subtree)); - printf("(%-25s %s\t depth:%u [%u, %u] - [%u, %u])", name, - self->in_padding ? "(p)" : " ", self->visible_depth, start.row + 1, - start.column, end.row + 1, end.column); + const char *name = ts_language_symbol_name(self->language, ts_subtree_symbol(*entry.subtree)); + printf("(%-25s %s\t depth:%u [%u, %u] - [%u, %u])", name, self->in_padding ? "(p)" : " ", self->visible_depth, start.row + 1, start.column, end.row + 1, + end.column); } #endif -unsigned ts_subtree_get_changed_ranges( - const t_subtree *old_tree, const t_subtree *new_tree, - t_tree_cursor *cursor1, t_tree_cursor *cursor2, const t_language *language, - const t_range_array *included_range_differences, t_parse_range **ranges) +unsigned ts_subtree_get_changed_ranges(const t_subtree *old_tree, const t_subtree *new_tree, t_tree_cursor *cursor1, t_tree_cursor *cursor2, + const t_language *language, const t_range_array *included_range_differences, t_parse_range **ranges) { t_range_array results = array_new(); @@ -464,8 +422,7 @@ unsigned ts_subtree_get_changed_ranges( do { #ifdef DEBUG_GET_CHANGED_RANGES - printf("At [%-2u, %-2u] Compare ", position.extent.row + 1, - position.extent.column); + printf("At [%-2u, %-2u] Compare ", position.extent.row + 1, position.extent.column); iterator_print_state(&old_iter); printf("\tvs\t"); iterator_print_state(&new_iter); @@ -473,16 +430,13 @@ unsigned ts_subtree_get_changed_ranges( #endif // Compare the old and new subtrees. - t_iterator_comparison comparison = - iterator_compare(&old_iter, &new_iter); + t_iterator_comparison comparison = iterator_compare(&old_iter, &new_iter); // Even if the two subtrees appear to be identical, they could differ // internally if they contain a range of text that was previously // excluded from the parse, and is now included, or vice-versa. if (comparison == IteratorMatches && - ts_range_array_intersects( - included_range_differences, included_range_difference_index, - position.bytes, iterator_end_position(&old_iter).bytes)) + ts_range_array_intersects(included_range_differences, included_range_difference_index, position.bytes, iterator_end_position(&old_iter).bytes)) { comparison = IteratorMayDiffer; } @@ -514,8 +468,7 @@ unsigned ts_subtree_get_changed_ranges( } else { - next_position = length_min(iterator_end_position(&old_iter), - iterator_end_position(&new_iter)); + next_position = length_min(iterator_end_position(&old_iter), iterator_end_position(&new_iter)); } break; @@ -523,17 +476,14 @@ unsigned ts_subtree_get_changed_ranges( // to the end of both subtrees. case IteratorDiffers: is_changed = true; - next_position = length_min(iterator_end_position(&old_iter), - iterator_end_position(&new_iter)); + next_position = length_min(iterator_end_position(&old_iter), iterator_end_position(&new_iter)); break; } // Ensure that both iterators are caught up to the current position. - while (!iterator_done(&old_iter) && - iterator_end_position(&old_iter).bytes <= next_position.bytes) + while (!iterator_done(&old_iter) && iterator_end_position(&old_iter).bytes <= next_position.bytes) iterator_advance(&old_iter); - while (!iterator_done(&new_iter) && - iterator_end_position(&new_iter).bytes <= next_position.bytes) + while (!iterator_done(&new_iter) && iterator_end_position(&new_iter).bytes <= next_position.bytes) iterator_advance(&new_iter); // Ensure that both iterators are at the same depth in the tree. @@ -549,8 +499,7 @@ unsigned ts_subtree_get_changed_ranges( if (is_changed) { #ifdef DEBUG_GET_CHANGED_RANGES - printf(" change: [[%u, %u] - [%u, %u]]\n", position.extent.row + 1, - position.extent.column, next_position.extent.row + 1, + printf(" change: [[%u, %u] - [%u, %u]]\n", position.extent.row + 1, position.extent.column, next_position.extent.row + 1, next_position.extent.column); #endif @@ -561,12 +510,9 @@ unsigned ts_subtree_get_changed_ranges( // Keep track of the current position in the included range differences // array in order to avoid scanning the entire array on each iteration. - while (included_range_difference_index < - included_range_differences->size) + while (included_range_difference_index < included_range_differences->size) { - const t_parse_range *range = - &included_range_differences - ->contents[included_range_difference_index]; + const t_parse_range *range = &included_range_differences->contents[included_range_difference_index]; if (range->end_byte <= position.bytes) { included_range_difference_index++; @@ -625,8 +571,7 @@ uint32_t ts_language_field_count(const t_language *self) return self->field_count; } -void ts_language_table_entry(const t_language *self, t_state_id state, - t_symbol symbol, t_table_entry *result) +void ts_language_table_entry(const t_language *self, t_state_id state, t_symbol symbol, t_table_entry *result) { if (symbol == ts_builtin_sym_error || symbol == ts_builtin_sym_error_repeat) { @@ -637,7 +582,7 @@ void ts_language_table_entry(const t_language *self, t_state_id state, else { assert(symbol < self->token_count); - uint32_t action_index = ts_language_lookup(self, state, symbol); + uint32_t action_index = ts_language_lookup(self, state, symbol); const t_parse_action_entry *entry = &self->parse_actions[action_index]; result->action_count = entry->entry.count; result->is_reusable = entry->entry.reusable; @@ -645,8 +590,7 @@ void ts_language_table_entry(const t_language *self, t_state_id state, } } -t_symbol_metadata ts_language_symbol_metadata(const t_language *self, - t_symbol symbol) +t_symbol_metadata ts_language_symbol_metadata(const t_language *self, t_symbol symbol) { if (symbol == ts_builtin_sym_error) { @@ -669,8 +613,7 @@ t_symbol ts_language_public_symbol(const t_language *self, t_symbol symbol) return self->public_symbol_map[symbol]; } -t_state_id ts_language_next_state(const t_language *self, t_state_id state, - t_symbol symbol) +t_state_id ts_language_next_state(const t_language *self, t_state_id state, t_symbol symbol) { if (symbol == ts_builtin_sym_error || symbol == ts_builtin_sym_error_repeat) { @@ -679,8 +622,7 @@ t_state_id ts_language_next_state(const t_language *self, t_state_id state, else if (symbol < self->token_count) { uint32_t count; - const t_parse_action *actions = - ts_language_actions(self, state, symbol, &count); + const t_parse_action *actions = ts_language_actions(self, state, symbol, &count); if (count > 0) { t_parse_action action = actions[count - 1]; @@ -717,8 +659,7 @@ const char *ts_language_symbol_name(const t_language *self, t_symbol symbol) } } -t_symbol ts_language_symbol_for_name(const t_language *self, const char *string, - uint32_t length, bool is_named) +t_symbol ts_language_symbol_for_name(const t_language *self, const char *string, uint32_t length, bool is_named) { if (!strncmp(string, "ERROR", length)) return ts_builtin_sym_error; @@ -726,8 +667,7 @@ t_symbol ts_language_symbol_for_name(const t_language *self, const char *string, for (t_symbol i = 0; i < count; i++) { t_symbol_metadata metadata = ts_language_symbol_metadata(self, i); - if ((!metadata.visible && !metadata.supertype) || - metadata.named != is_named) + if ((!metadata.visible && !metadata.supertype) || metadata.named != is_named) continue; const char *symbol_name = self->symbol_names[i]; if (!strncmp(symbol_name, string, length) && !symbol_name[length]) @@ -768,8 +708,7 @@ const char *ts_language_field_name_for_id(const t_language *self, t_field_id id) } } -t_field_id ts_language_field_id_for_name(const t_language *self, - const char *name, uint32_t name_length) +t_field_id ts_language_field_id_for_name(const t_language *self, const char *name, uint32_t name_length) { uint16_t count = (uint16_t)ts_language_field_count(self); for (t_symbol i = 1; i < count + 1; i++) @@ -789,8 +728,7 @@ t_field_id ts_language_field_id_for_name(const t_language *self, return 0; } -t_lookahead_iterator *ts_lookahead_iterator_new(const t_language *self, - t_state_id state) +t_lookahead_iterator *ts_lookahead_iterator_new(const t_language *self, t_state_id state) { if (state >= self->state_count) return NULL; @@ -804,8 +742,7 @@ void ts_lookahead_iterator_delete(t_lookahead_iterator *self) free(self); } -bool ts_lookahead_iterator_reset_state(t_lookahead_iterator *self, - t_state_id state) +bool ts_lookahead_iterator_reset_state(t_lookahead_iterator *self, t_state_id state) { t_lookahead_iterator *iterator = (t_lookahead_iterator *)self; if (state >= iterator->language->state_count) @@ -814,15 +751,13 @@ bool ts_lookahead_iterator_reset_state(t_lookahead_iterator *self, return true; } -const t_language *ts_lookahead_iterator_language( - const t_lookahead_iterator *self) +const t_language *ts_lookahead_iterator_language(const t_lookahead_iterator *self) { const t_lookahead_iterator *iterator = (const t_lookahead_iterator *)self; return iterator->language; } -bool ts_lookahead_iterator_reset(t_lookahead_iterator *self, - const t_language *language, t_state_id state) +bool ts_lookahead_iterator_reset(t_lookahead_iterator *self, const t_language *language, t_state_id state) { if (state >= language->state_count) return false; @@ -843,8 +778,7 @@ t_symbol ts_lookahead_iterator_current_symbol(const t_lookahead_iterator *self) return iterator->symbol; } -const char *ts_lookahead_iterator_current_symbol_name( - const t_lookahead_iterator *self) +const char *ts_lookahead_iterator_current_symbol_name(const t_lookahead_iterator *self) { const t_lookahead_iterator *iterator = (const t_lookahead_iterator *)self; return ts_language_symbol_name(iterator->language, iterator->symbol); @@ -888,9 +822,7 @@ static void ts_lexer__clear_chunk(t_lexer *self) static void ts_lexer__get_chunk(t_lexer *self) { self->chunk_start = self->current_position.bytes; - self->chunk = - self->input.read(self->input.payload, self->current_position.bytes, - self->current_position.extent, &self->chunk_size); + self->chunk = self->input.read(self->input.payload, self->current_position.bytes, self->current_position.extent, &self->chunk_size); if (!self->chunk_size) { self->current_included_range_index = self->included_range_count; @@ -910,8 +842,7 @@ uint32_t ascii_decode(const uint8_t *chunk, uint32_t size, int32_t *codepoint) // code that spans the current position. static void ts_lexer__get_lookahead(t_lexer *self) { - uint32_t position_in_chunk = - self->current_position.bytes - self->chunk_start; + uint32_t position_in_chunk = self->current_position.bytes - self->chunk_start; uint32_t size = self->chunk_size - position_in_chunk; if (size == 0) @@ -921,7 +852,7 @@ static void ts_lexer__get_lookahead(t_lexer *self) return; } - const uint8_t *chunk = (const uint8_t *)self->chunk + position_in_chunk; + const uint8_t *chunk = (const uint8_t *)self->chunk + position_in_chunk; t_unicode_decode_function decode = ascii_decode; self->lookahead_size = decode(chunk, size, &self->data.lookahead); @@ -951,8 +882,7 @@ static void ts_lexer_goto(t_lexer *self, t_length position) for (unsigned i = 0; i < self->included_range_count; i++) { t_parse_range *included_range = &self->included_ranges[i]; - if (included_range->end_byte > self->current_position.bytes && - included_range->end_byte > included_range->start_byte) + if (included_range->end_byte > self->current_position.bytes && included_range->end_byte > included_range->start_byte) { if (included_range->start_byte >= self->current_position.bytes) { @@ -972,9 +902,7 @@ static void ts_lexer_goto(t_lexer *self, t_length position) { // If the current position is outside of the current chunk of text, // then clear out the current chunk of text. - if (self->chunk && (self->current_position.bytes < self->chunk_start || - self->current_position.bytes >= - self->chunk_start + self->chunk_size)) + if (self->chunk && (self->current_position.bytes < self->chunk_start || self->current_position.bytes >= self->chunk_start + self->chunk_size)) { ts_lexer__clear_chunk(self); } @@ -988,8 +916,7 @@ static void ts_lexer_goto(t_lexer *self, t_length position) else { self->current_included_range_index = self->included_range_count; - t_parse_range *last_included_range = - &self->included_ranges[self->included_range_count - 1]; + t_parse_range *last_included_range = &self->included_ranges[self->included_range_count - 1]; self->current_position = (t_length){ .bytes = last_included_range->end_byte, .extent = last_included_range->end_point, @@ -1017,10 +944,8 @@ static void ts_lexer__do_advance(t_lexer *self, bool skip) } } - const t_parse_range *current_range = - &self->included_ranges[self->current_included_range_index]; - while (self->current_position.bytes >= current_range->end_byte || - current_range->end_byte == current_range->start_byte) + const t_parse_range *current_range = &self->included_ranges[self->current_included_range_index]; + while (self->current_position.bytes >= current_range->end_byte || current_range->end_byte == current_range->start_byte) { if (self->current_included_range_index < self->included_range_count) { @@ -1046,9 +971,7 @@ static void ts_lexer__do_advance(t_lexer *self, bool skip) if (current_range) { - if (self->current_position.bytes < self->chunk_start || - self->current_position.bytes >= - self->chunk_start + self->chunk_size) + if (self->current_position.bytes < self->chunk_start || self->current_position.bytes >= self->chunk_start + self->chunk_size) { ts_lexer__get_chunk(self); } @@ -1090,10 +1013,8 @@ static void ts_lexer__mark_end(t_lexer_data *_self) // If the lexer is right at the beginning of included range, // then the token should be considered to end at the *end* of the // previous included range, rather than here. - t_parse_range *current_included_range = - &self->included_ranges[self->current_included_range_index]; - if (self->current_included_range_index > 0 && - self->current_position.bytes == current_included_range->start_byte) + t_parse_range *current_included_range = &self->included_ranges[self->current_included_range_index]; + if (self->current_included_range_index > 0 && self->current_position.bytes == current_included_range->start_byte) { t_parse_range *previous_included_range = current_included_range - 1; self->token_end_position = (t_length){ @@ -1145,8 +1066,7 @@ static bool ts_lexer__is_at_included_range_start(const t_lexer_data *_self) const t_lexer *self = (const t_lexer *)_self; if (self->current_included_range_index < self->included_range_count) { - t_parse_range *current_range = - &self->included_ranges[self->current_included_range_index]; + t_parse_range *current_range = &self->included_ranges[self->current_included_range_index]; return self->current_position.bytes == current_range->start_byte; } else @@ -1168,8 +1088,7 @@ void ts_lexer_init(t_lexer *self) .advance = ts_lexer__advance, .mark_end = ts_lexer__mark_end, .get_column = ts_lexer__get_column, - .is_at_included_range_start = - ts_lexer__is_at_included_range_start, + .is_at_included_range_start = ts_lexer__is_at_included_range_start, .eof = ts_lexer__eof, .lookahead = 0, .result_symbol = 0, @@ -1220,8 +1139,7 @@ void ts_lexer_start(t_lexer *self) ts_lexer__get_chunk(self); if (!self->lookahead_size) ts_lexer__get_lookahead(self); - if (self->current_position.bytes == 0 && - self->data.lookahead == BYTE_ORDER_MARK) + if (self->current_position.bytes == 0 && self->data.lookahead == BYTE_ORDER_MARK) ts_lexer__advance(&self->data, true); } } @@ -1272,8 +1190,7 @@ void ts_lexer_mark_end(t_lexer *self) ts_lexer__mark_end(&self->data); } -bool ts_lexer_set_included_ranges(t_lexer *self, const t_parse_range *ranges, - uint32_t count) +bool ts_lexer_set_included_ranges(t_lexer *self, const t_parse_range *ranges, uint32_t count) { if (count == 0 || !ranges) { @@ -1286,8 +1203,7 @@ bool ts_lexer_set_included_ranges(t_lexer *self, const t_parse_range *ranges, for (unsigned i = 0; i < count; i++) { const t_parse_range *range = &ranges[i]; - if (range->start_byte < previous_byte || - range->end_byte < range->start_byte) + if (range->start_byte < previous_byte || range->end_byte < range->start_byte) return false; previous_byte = range->end_byte; } @@ -1311,8 +1227,7 @@ t_parse_range *ts_lexer_included_ranges(const t_lexer *self, uint32_t *count) // t_parse_node - constructors -t_parse_node ts_node_new(const t_first_tree *tree, const t_subtree *subtree, - t_length position, t_symbol alias) +t_parse_node ts_node_new(const t_first_tree *tree, const t_subtree *subtree, t_length position, t_symbol alias) { return (t_parse_node){ {position.bytes, position.extent.row, position.extent.column, alias}, @@ -1350,17 +1265,14 @@ static inline t_subtree ts_node__subtree(t_parse_node self) // t_node_child_iterator -static inline t_node_child_iterator ts_node_iterate_children( - const t_parse_node *node) +static inline t_node_child_iterator ts_node_iterate_children(const t_parse_node *node) { t_subtree subtree = ts_node__subtree(*node); if (ts_subtree_child_count(subtree) == 0) { - return (t_node_child_iterator){ - NULL_SUBTREE, node->tree, length_zero(), 0, 0, NULL}; + return (t_node_child_iterator){NULL_SUBTREE, node->tree, length_zero(), 0, 0, NULL}; } - const t_symbol *alias_sequence = ts_language_alias_sequence( - node->tree->language, subtree.ptr->production_id); + const t_symbol *alias_sequence = ts_language_alias_sequence(node->tree->language, subtree.ptr->production_id); return (t_node_child_iterator){ .tree = node->tree, .parent = subtree, @@ -1376,14 +1288,12 @@ static inline bool ts_node_child_iterator_done(t_node_child_iterator *self) return self->child_index == self->parent.ptr->child_count; } -static inline bool ts_node_child_iterator_next(t_node_child_iterator *self, - t_parse_node *result) +static inline bool ts_node_child_iterator_next(t_node_child_iterator *self, t_parse_node *result) { if (!self->parent.ptr || ts_node_child_iterator_done(self)) return false; - const t_subtree *child = - &ts_subtree_children(self->parent)[self->child_index]; - t_symbol alias_symbol = 0; + const t_subtree *child = &ts_subtree_children(self->parent)[self->child_index]; + t_symbol alias_symbol = 0; if (!ts_subtree_extra(*child)) { if (self->alias_sequence) @@ -1404,8 +1314,7 @@ static inline bool ts_node_child_iterator_next(t_node_child_iterator *self, // t_parse_node - private -static inline bool ts_node__is_relevant(t_parse_node self, - bool include_anonymous) +static inline bool ts_node__is_relevant(t_parse_node self, bool include_anonymous) { t_subtree tree = ts_node__subtree(self); if (include_anonymous) @@ -1417,8 +1326,7 @@ static inline bool ts_node__is_relevant(t_parse_node self, t_symbol alias = ts_node__alias(&self); if (alias) { - return ts_language_symbol_metadata(self.tree->language, alias) - .named; + return ts_language_symbol_metadata(self.tree->language, alias).named; } else { @@ -1427,8 +1335,7 @@ static inline bool ts_node__is_relevant(t_parse_node self, } } -static inline uint32_t ts_node__relevant_child_count(t_parse_node self, - bool include_anonymous) +static inline uint32_t ts_node__relevant_child_count(t_parse_node self, bool include_anonymous) { t_subtree tree = ts_node__subtree(self); if (ts_subtree_child_count(tree) > 0) @@ -1448,9 +1355,7 @@ static inline uint32_t ts_node__relevant_child_count(t_parse_node self, } } -static inline t_parse_node ts_node__child(t_parse_node self, - uint32_t child_index, - bool include_anonymous) +static inline t_parse_node ts_node__child(t_parse_node self, uint32_t child_index, bool include_anonymous) { t_parse_node result = self; bool did_descend = true; @@ -1475,8 +1380,7 @@ static inline t_parse_node ts_node__child(t_parse_node self, else { uint32_t grandchild_index = child_index - index; - uint32_t grandchild_count = - ts_node__relevant_child_count(child, include_anonymous); + uint32_t grandchild_count = ts_node__relevant_child_count(child, include_anonymous); if (grandchild_index < grandchild_count) { did_descend = true; @@ -1492,16 +1396,14 @@ static inline t_parse_node ts_node__child(t_parse_node self, return ts_node__null(); } -static bool ts_subtree_has_trailing_empty_descendant(t_subtree self, - t_subtree other) +static bool ts_subtree_has_trailing_empty_descendant(t_subtree self, t_subtree other) { for (unsigned i = ts_subtree_child_count(self) - 1; i + 1 > 0; i--) { t_subtree child = ts_subtree_children(self)[i]; if (ts_subtree_total_bytes(child) > 0) break; - if (child.ptr == other.ptr || - ts_subtree_has_trailing_empty_descendant(child, other)) + if (child.ptr == other.ptr || ts_subtree_has_trailing_empty_descendant(child, other)) { return true; } @@ -1509,8 +1411,7 @@ static bool ts_subtree_has_trailing_empty_descendant(t_subtree self, return false; } -static inline t_parse_node ts_node__prev_sibling(t_parse_node self, - bool include_anonymous) +static inline t_parse_node ts_node__prev_sibling(t_parse_node self, bool include_anonymous) { t_subtree self_subtree = ts_node__subtree(self); bool self_is_empty = ts_subtree_total_bytes(self_subtree) == 0; @@ -1539,8 +1440,7 @@ static inline t_parse_node ts_node__prev_sibling(t_parse_node self, } if (iterator.position.bytes == target_end_byte && - (!self_is_empty || ts_subtree_has_trailing_empty_descendant( - ts_node__subtree(child), self_subtree))) + (!self_is_empty || ts_subtree_has_trailing_empty_descendant(ts_node__subtree(child), self_subtree))) { found_child_containing_target = true; break; @@ -1551,8 +1451,7 @@ static inline t_parse_node ts_node__prev_sibling(t_parse_node self, earlier_child = child; earlier_child_is_relevant = true; } - else if (ts_node__relevant_child_count(child, include_anonymous) > - 0) + else if (ts_node__relevant_child_count(child, include_anonymous) > 0) { earlier_child = child; earlier_child_is_relevant = false; @@ -1591,8 +1490,7 @@ static inline t_parse_node ts_node__prev_sibling(t_parse_node self, return ts_node__null(); } -static inline t_parse_node ts_node__next_sibling(t_parse_node self, - bool include_anonymous) +static inline t_parse_node ts_node__next_sibling(t_parse_node self, bool include_anonymous) { uint32_t target_end_byte = ts_node_end_byte(self); @@ -1625,8 +1523,7 @@ static inline t_parse_node ts_node__next_sibling(t_parse_node self, later_child_is_relevant = true; break; } - else if (ts_node__relevant_child_count(child, include_anonymous) > - 0) + else if (ts_node__relevant_child_count(child, include_anonymous) > 0) { later_child = child; later_child_is_relevant = false; @@ -1664,9 +1561,7 @@ static inline t_parse_node ts_node__next_sibling(t_parse_node self, return ts_node__null(); } -static inline t_parse_node ts_node__first_child_for_byte(t_parse_node self, - uint32_t goal, - bool include_anonymous) +static inline t_parse_node ts_node__first_child_for_byte(t_parse_node self, uint32_t goal, bool include_anonymous) { t_parse_node node = self; bool did_descend = true; @@ -1698,9 +1593,7 @@ static inline t_parse_node ts_node__first_child_for_byte(t_parse_node self, return ts_node__null(); } -static inline t_parse_node ts_node__descendant_for_byte_range( - t_parse_node self, uint32_t range_start, uint32_t range_end, - bool include_anonymous) +static inline t_parse_node ts_node__descendant_for_byte_range(t_parse_node self, uint32_t range_start, uint32_t range_end, bool include_anonymous) { t_parse_node node = self; t_parse_node last_visible_node = self; @@ -1741,9 +1634,7 @@ static inline t_parse_node ts_node__descendant_for_byte_range( return last_visible_node; } -static inline t_parse_node ts_node__descendant_for_point_range( - t_parse_node self, t_point range_start, t_point range_end, - bool include_anonymous) +static inline t_parse_node ts_node__descendant_for_point_range(t_parse_node self, t_point range_start, t_point range_end, bool include_anonymous) { t_parse_node node = self; t_parse_node last_visible_node = self; @@ -1788,14 +1679,12 @@ static inline t_parse_node ts_node__descendant_for_point_range( uint32_t ts_node_end_byte(t_parse_node self) { - return ts_node_start_byte(self) + - ts_subtree_size(ts_node__subtree(self)).bytes; + return ts_node_start_byte(self) + ts_subtree_size(ts_node__subtree(self)).bytes; } t_point ts_node_end_point(t_parse_node self) { - return point_add(ts_node_start_point(self), - ts_subtree_size(ts_node__subtree(self)).extent); + return point_add(ts_node_start_point(self), ts_subtree_size(ts_node__subtree(self)).extent); } t_symbol ts_node_symbol(t_parse_node self) @@ -1833,10 +1722,8 @@ const char *ts_node_grammar_type(t_parse_node self) char *ts_node_string(t_parse_node self) { t_symbol alias_symbol = ts_node__alias(&self); - return ts_subtree_string( - ts_node__subtree(self), alias_symbol, - ts_language_symbol_metadata(self.tree->language, alias_symbol).visible, - self.tree->language, false); + return ts_subtree_string(ts_node__subtree(self), alias_symbol, ts_language_symbol_metadata(self.tree->language, alias_symbol).visible, self.tree->language, + false); } bool ts_node_eq(t_parse_node self, t_parse_node other) @@ -1857,8 +1744,7 @@ bool ts_node_is_extra(t_parse_node self) bool ts_node_is_named(t_parse_node self) { t_symbol alias = ts_node__alias(&self); - return alias ? ts_language_symbol_metadata(self.tree->language, alias).named - : ts_subtree_named(ts_node__subtree(self)); + return alias ? ts_language_symbol_metadata(self.tree->language, alias).named : ts_subtree_named(ts_node__subtree(self)); } bool ts_node_is_missing(t_parse_node self) @@ -1912,8 +1798,7 @@ t_parse_node ts_node_parent(t_parse_node self) while (true) { - t_parse_node next_node = - ts_node_child_containing_descendant(node, self); + t_parse_node next_node = ts_node_child_containing_descendant(node, self); if (ts_node_is_null(next_node)) break; node = next_node; @@ -1922,8 +1807,7 @@ t_parse_node ts_node_parent(t_parse_node self) return node; } -t_parse_node ts_node_child_containing_descendant(t_parse_node self, - t_parse_node subnode) +t_parse_node ts_node_child_containing_descendant(t_parse_node self, t_parse_node subnode) { uint32_t start_byte = ts_node_start_byte(subnode); uint32_t end_byte = ts_node_end_byte(subnode); @@ -1933,13 +1817,11 @@ t_parse_node ts_node_child_containing_descendant(t_parse_node self, t_node_child_iterator iter = ts_node_iterate_children(&self); do { - if (!ts_node_child_iterator_next(&iter, &self) || - ts_node_start_byte(self) > start_byte || self.id == subnode.id) + if (!ts_node_child_iterator_next(&iter, &self) || ts_node_start_byte(self) > start_byte || self.id == subnode.id) { return ts_node__null(); } - } while (iter.position.bytes < end_byte || - ts_node_child_count(self) == 0); + } while (iter.position.bytes < end_byte || ts_node_child_count(self) == 0); } while (!ts_node__is_relevant(self, true)); return self; @@ -1962,9 +1844,7 @@ recur: return ts_node__null(); const t_field_map_entry *field_map, *field_map_end; - ts_language_field_map(self.tree->language, - ts_node__subtree(self).ptr->production_id, &field_map, - &field_map_end); + ts_language_field_map(self.tree->language, ts_node__subtree(self).ptr->production_id, &field_map, &field_map_end); if (field_map == field_map_end) return ts_node__null(); @@ -2009,8 +1889,7 @@ recur: // the field, continue searching subsequent children. else { - t_parse_node result = - ts_node_child_by_field_id(child, field_id); + t_parse_node result = ts_node_child_by_field_id(child, field_id); if (result.id) return result; field_map++; @@ -2044,17 +1923,13 @@ recur: return ts_node__null(); } -static inline const char *ts_node__field_name_from_language( - t_parse_node self, uint32_t structural_child_index) +static inline const char *ts_node__field_name_from_language(t_parse_node self, uint32_t structural_child_index) { const t_field_map_entry *field_map, *field_map_end; - ts_language_field_map(self.tree->language, - ts_node__subtree(self).ptr->production_id, &field_map, - &field_map_end); + ts_language_field_map(self.tree->language, ts_node__subtree(self).ptr->production_id, &field_map, &field_map_end); for (; field_map != field_map_end; field_map++) { - if (!field_map->inherited && - field_map->child_index == structural_child_index) + if (!field_map->inherited && field_map->child_index == structural_child_index) { return self.tree->language->field_names[field_map->field_id]; } @@ -2062,8 +1937,7 @@ static inline const char *ts_node__field_name_from_language( return NULL; } -const char *ts_node_field_name_for_child(t_parse_node self, - uint32_t child_index) +const char *ts_node_field_name_for_child(t_parse_node self, uint32_t child_index) { t_parse_node result = self; bool did_descend = true; @@ -2086,8 +1960,7 @@ const char *ts_node_field_name_for_child(t_parse_node self, { return NULL; } - const char *field_name = ts_node__field_name_from_language( - result, iterator.structural_child_index - 1); + const char *field_name = ts_node__field_name_from_language(result, iterator.structural_child_index - 1); if (field_name) return field_name; return inherited_field_name; @@ -2097,12 +1970,10 @@ const char *ts_node_field_name_for_child(t_parse_node self, else { uint32_t grandchild_index = child_index - index; - uint32_t grandchild_count = - ts_node__relevant_child_count(child, true); + uint32_t grandchild_count = ts_node__relevant_child_count(child, true); if (grandchild_index < grandchild_count) { - const char *field_name = ts_node__field_name_from_language( - result, iterator.structural_child_index - 1); + const char *field_name = ts_node__field_name_from_language(result, iterator.structural_child_index - 1); if (field_name) inherited_field_name = field_name; @@ -2119,11 +1990,9 @@ const char *ts_node_field_name_for_child(t_parse_node self, return NULL; } -t_parse_node ts_node_child_by_field_name(t_parse_node self, const char *name, - uint32_t name_length) +t_parse_node ts_node_child_by_field_name(t_parse_node self, const char *name, uint32_t name_length) { - t_field_id field_id = - ts_language_field_id_for_name(self.tree->language, name, name_length); + t_field_id field_id = ts_language_field_id_for_name(self.tree->language, name, name_length); return ts_node_child_by_field_id(self, field_id); } @@ -2178,34 +2047,27 @@ t_parse_node ts_node_first_child_for_byte(t_parse_node self, uint32_t byte) return ts_node__first_child_for_byte(self, byte, true); } -t_parse_node ts_node_first_named_child_for_byte(t_parse_node self, - uint32_t byte) +t_parse_node ts_node_first_named_child_for_byte(t_parse_node self, uint32_t byte) { return ts_node__first_child_for_byte(self, byte, false); } -t_parse_node ts_node_descendant_for_byte_range(t_parse_node self, - uint32_t start, uint32_t end) +t_parse_node ts_node_descendant_for_byte_range(t_parse_node self, uint32_t start, uint32_t end) { return ts_node__descendant_for_byte_range(self, start, end, true); } -t_parse_node ts_node_named_descendant_for_byte_range(t_parse_node self, - uint32_t start, - uint32_t end) +t_parse_node ts_node_named_descendant_for_byte_range(t_parse_node self, uint32_t start, uint32_t end) { return ts_node__descendant_for_byte_range(self, start, end, false); } -t_parse_node ts_node_descendant_for_point_range(t_parse_node self, - t_point start, t_point end) +t_parse_node ts_node_descendant_for_point_range(t_parse_node self, t_point start, t_point end) { return ts_node__descendant_for_point_range(self, start, end, true); } -t_parse_node ts_node_named_descendant_for_point_range(t_parse_node self, - t_point start, - t_point end) +t_parse_node ts_node_named_descendant_for_point_range(t_parse_node self, t_point start, t_point end) { return ts_node__descendant_for_point_range(self, start, end, false); } @@ -2218,8 +2080,7 @@ void ts_node_edit(t_parse_node *self, const t_input_edit *edit) if (start_byte >= edit->old_end_byte) { start_byte = edit->new_end_byte + (start_byte - edit->old_end_byte); - start_point = point_add(edit->new_end_point, - point_sub(start_point, edit->old_end_point)); + start_point = point_add(edit->new_end_point, point_sub(start_point, edit->old_end_point)); } else if (start_byte > edit->start_byte) { @@ -2244,8 +2105,7 @@ static const unsigned OP_COUNT_PER_TIMEOUT_CHECK = 100; // StringInput -static const char *ts_string_input_read(void *_self, uint32_t byte, - t_point point, uint32_t *length) +static const char *ts_string_input_read(void *_self, uint32_t byte, t_point point, uint32_t *length) { (void)point; t_string_input *self = (t_string_input *)_self; @@ -2263,8 +2123,7 @@ static const char *ts_string_input_read(void *_self, uint32_t byte, // Parser - Private -static bool ts_parser__breakdown_top_of_stack(t_first_parser *self, - t_stack_version version) +static bool ts_parser__breakdown_top_of_stack(t_first_parser *self, t_stack_version version) { bool did_break_down = false; bool pending = false; @@ -2294,13 +2153,11 @@ static bool ts_parser__breakdown_top_of_stack(t_first_parser *self, } else if (!ts_subtree_extra(child)) { - state = ts_language_next_state(self->language, state, - ts_subtree_symbol(child)); + state = ts_language_next_state(self->language, state, ts_subtree_symbol(child)); } ts_subtree_retain(child); - ts_stack_push(self->stack, slice.version, child, pending, - state); + ts_stack_push(self->stack, slice.version, child, pending, state); } for (uint32_t j = 1; j < slice.subtrees.size; j++) @@ -2317,15 +2174,11 @@ static bool ts_parser__breakdown_top_of_stack(t_first_parser *self, return did_break_down; } -static void ts_parser__breakdown_lookahead(t_first_parser *self, - t_subtree *lookahead, - t_state_id state, - t_reusable_node *reusable_node) +static void ts_parser__breakdown_lookahead(t_first_parser *self, t_subtree *lookahead, t_state_id state, t_reusable_node *reusable_node) { bool did_descend = false; t_subtree tree = reusable_node_tree(reusable_node); - while (ts_subtree_child_count(tree) > 0 && - ts_subtree_parse_state(tree) != state) + while (ts_subtree_child_count(tree) > 0 && ts_subtree_parse_state(tree) != state) { reusable_node_descend(reusable_node); tree = reusable_node_tree(reusable_node); @@ -2340,9 +2193,7 @@ static void ts_parser__breakdown_lookahead(t_first_parser *self, } } -static t_error_comparaison ts_parser__compare_versions(t_first_parser *self, - t_error_status a, - t_error_status b) +static t_error_comparaison ts_parser__compare_versions(t_first_parser *self, t_error_status a, t_error_status b) { (void)self; if (!a.is_in_error && b.is_in_error) @@ -2400,27 +2251,21 @@ static t_error_comparaison ts_parser__compare_versions(t_first_parser *self, return ErrorComparisonNone; } -static t_error_status ts_parser__version_status(t_first_parser *self, - t_stack_version version) +static t_error_status ts_parser__version_status(t_first_parser *self, t_stack_version version) { unsigned cost = ts_stack_error_cost(self->stack, version); bool is_paused = ts_stack_is_paused(self->stack, version); if (is_paused) cost += ERROR_COST_PER_SKIPPED_TREE; - return (t_error_status){ - .cost = cost, - .node_count = ts_stack_node_count_since_error(self->stack, version), - .dynamic_precedence = ts_stack_dynamic_precedence(self->stack, version), - .is_in_error = - is_paused || ts_stack_state(self->stack, version) == ERROR_STATE}; + return (t_error_status){.cost = cost, + .node_count = ts_stack_node_count_since_error(self->stack, version), + .dynamic_precedence = ts_stack_dynamic_precedence(self->stack, version), + .is_in_error = is_paused || ts_stack_state(self->stack, version) == ERROR_STATE}; } -static bool ts_parser__better_version_exists(t_first_parser *self, - t_stack_version version, - bool is_in_error, unsigned cost) +static bool ts_parser__better_version_exists(t_first_parser *self, t_stack_version version, bool is_in_error, unsigned cost) { - if (self->finished_tree.ptr && - ts_subtree_error_cost(self->finished_tree) <= cost) + if (self->finished_tree.ptr && ts_subtree_error_cost(self->finished_tree) <= cost) { return true; } @@ -2433,11 +2278,9 @@ static bool ts_parser__better_version_exists(t_first_parser *self, .node_count = ts_stack_node_count_since_error(self->stack, version), }; - for (t_stack_version i = 0, n = ts_stack_version_count(self->stack); i < n; - i++) + for (t_stack_version i = 0, n = ts_stack_version_count(self->stack); i < n; i++) { - if (i == version || !ts_stack_is_active(self->stack, i) || - ts_stack_position(self->stack, i).bytes < position.bytes) + if (i == version || !ts_stack_is_active(self->stack, i) || ts_stack_position(self->stack, i).bytes < position.bytes) continue; t_error_status status_i = ts_parser__version_status(self, i); switch (ts_parser__compare_versions(self, status, status_i)) @@ -2456,14 +2299,12 @@ static bool ts_parser__better_version_exists(t_first_parser *self, return false; } -static bool ts_parser__call_main_lex_fn(t_first_parser *self, - t_lex_mode lex_mode) +static bool ts_parser__call_main_lex_fn(t_first_parser *self, t_lex_mode lex_mode) { return self->language->lex_fn(&self->lexer.data, lex_mode.lex_state); } -static bool ts_parser__call_keyword_lex_fn(t_first_parser *self, - t_lex_mode lex_mode) +static bool ts_parser__call_keyword_lex_fn(t_first_parser *self, t_lex_mode lex_mode) { (void)(lex_mode); @@ -2476,19 +2317,16 @@ static void ts_parser__external_scanner_create(t_first_parser *self) { if (self->language->external_scanner.create) { - self->external_scanner_payload = - self->language->external_scanner.create(); + self->external_scanner_payload = self->language->external_scanner.create(); } } } static void ts_parser__external_scanner_destroy(t_first_parser *self) { - if (self->language && self->external_scanner_payload && - self->language->external_scanner.destroy) + if (self->language && self->external_scanner_payload && self->language->external_scanner.destroy) { - self->language->external_scanner.destroy( - self->external_scanner_payload); + self->language->external_scanner.destroy(self->external_scanner_payload); } self->external_scanner_payload = NULL; } @@ -2496,42 +2334,32 @@ static void ts_parser__external_scanner_destroy(t_first_parser *self) static unsigned ts_parser__external_scanner_serialize(t_first_parser *self) { - uint32_t length = self->language->external_scanner.serialize( - self->external_scanner_payload, self->lexer.debug_buffer); + uint32_t length = self->language->external_scanner.serialize(self->external_scanner_payload, self->lexer.debug_buffer); assert(length <= TREE_SITTER_SERIALIZATION_BUFFER_SIZE); return length; } -static void ts_parser__external_scanner_deserialize(t_first_parser *self, - t_subtree external_token) +static void ts_parser__external_scanner_deserialize(t_first_parser *self, t_subtree external_token) { const char *data = NULL; uint32_t length = 0; if (external_token.ptr) { - data = ts_external_scanner_state_data( - &external_token.ptr->external_scanner_state); + data = ts_external_scanner_state_data(&external_token.ptr->external_scanner_state); length = external_token.ptr->external_scanner_state.length; } - self->language->external_scanner.deserialize(self->external_scanner_payload, - data, length); + self->language->external_scanner.deserialize(self->external_scanner_payload, data, length); } -static bool ts_parser__external_scanner_scan(t_first_parser *self, - t_state_id external_lex_state) +static bool ts_parser__external_scanner_scan(t_first_parser *self, t_state_id external_lex_state) { - const bool *valid_external_tokens = - ts_language_enabled_external_tokens(self->language, external_lex_state); - return self->language->external_scanner.scan(self->external_scanner_payload, - &self->lexer.data, - valid_external_tokens); + const bool *valid_external_tokens = ts_language_enabled_external_tokens(self->language, external_lex_state); + return self->language->external_scanner.scan(self->external_scanner_payload, &self->lexer.data, valid_external_tokens); } -static bool ts_parser__can_reuse_first_leaf(t_first_parser *self, - t_state_id state, t_subtree tree, - t_table_entry *table_entry) +static bool ts_parser__can_reuse_first_leaf(t_first_parser *self, t_state_id state, t_subtree tree, t_table_entry *table_entry) { t_lex_mode current_lex_mode = self->language->lex_modes[state]; t_symbol leaf_symbol = ts_subtree_leaf_symbol(tree); @@ -2547,11 +2375,8 @@ static bool ts_parser__can_reuse_first_leaf(t_first_parser *self, // If the token was created in a state with the same set of lookaheads, it // is reusable. - if (table_entry->action_count > 0 && - memcmp(&leaf_lex_mode, ¤t_lex_mode, sizeof(t_lex_mode)) == 0 && - (leaf_symbol != self->language->keyword_capture_token || - (!ts_subtree_is_keyword(tree) && - ts_subtree_parse_state(tree) == state))) + if (table_entry->action_count > 0 && memcmp(&leaf_lex_mode, ¤t_lex_mode, sizeof(t_lex_mode)) == 0 && + (leaf_symbol != self->language->keyword_capture_token || (!ts_subtree_is_keyword(tree) && ts_subtree_parse_state(tree) == state))) return true; // Empty tokens are not reusable in states with different lookaheads. @@ -2563,13 +2388,10 @@ static bool ts_parser__can_reuse_first_leaf(t_first_parser *self, return current_lex_mode.external_lex_state == 0 && table_entry->is_reusable; } -const t_external_scanner_state *ts_subtree_external_scanner_state( - t_subtree self) +const t_external_scanner_state *ts_subtree_external_scanner_state(t_subtree self) { - static const t_external_scanner_state empty_state = {{.short_data = {0}}, - .length = 0}; - if (self.ptr && !self.data.is_inline && self.ptr->has_external_tokens && - self.ptr->child_count == 0) + static const t_external_scanner_state empty_state = {{.short_data = {0}}, .length = 0}; + if (self.ptr && !self.data.is_inline && self.ptr->has_external_tokens && self.ptr->child_count == 0) { return &self.ptr->external_scanner_state; } @@ -2579,8 +2401,7 @@ const t_external_scanner_state *ts_subtree_external_scanner_state( } } -static t_subtree ts_parser__lex(t_first_parser *self, t_stack_version version, - t_state_id parse_state) +static t_subtree ts_parser__lex(t_first_parser *self, t_stack_version version, t_state_id parse_state) { t_lex_mode lex_mode = self->language->lex_modes[parse_state]; if (lex_mode.lex_state == (uint16_t)-1) @@ -2589,8 +2410,7 @@ static t_subtree ts_parser__lex(t_first_parser *self, t_stack_version version, } const t_length start_position = ts_stack_position(self->stack, version); - const t_subtree external_token = - ts_stack_last_external_token(self->stack, version); + const t_subtree external_token = ts_stack_last_external_token(self->stack, version); bool found_external_token = false; bool error_mode = parse_state == ERROR_STATE; @@ -2613,19 +2433,16 @@ static t_subtree ts_parser__lex(t_first_parser *self, t_stack_version version, { ts_lexer_start(&self->lexer); ts_parser__external_scanner_deserialize(self, external_token); - found_token = ts_parser__external_scanner_scan( - self, lex_mode.external_lex_state); + found_token = ts_parser__external_scanner_scan(self, lex_mode.external_lex_state); if (self->has_scanner_error) return NULL_SUBTREE; ts_lexer_finish(&self->lexer, &lookahead_end_byte); if (found_token) { - external_scanner_state_len = - ts_parser__external_scanner_serialize(self); - external_scanner_state_changed = !ts_external_scanner_state_eq( - ts_subtree_external_scanner_state(external_token), - self->lexer.debug_buffer, external_scanner_state_len); + external_scanner_state_len = ts_parser__external_scanner_serialize(self); + external_scanner_state_changed = + !ts_external_scanner_state_eq(ts_subtree_external_scanner_state(external_token), self->lexer.debug_buffer, external_scanner_state_len); // When recovering from an error, ignore any zero-length // external tokens unless they have changed the external @@ -2640,11 +2457,8 @@ static t_subtree ts_parser__lex(t_first_parser *self, t_stack_version version, // when a token is terminated at the start of an included range, // it is marked as ending at the *end* of the preceding included // range. - if (self->lexer.token_end_position.bytes <= - current_position.bytes && - (error_mode || !ts_stack_has_advanced_since_error( - self->stack, version)) && - !external_scanner_state_changed) + if (self->lexer.token_end_position.bytes <= current_position.bytes && + (error_mode || !ts_stack_has_advanced_since_error(self->stack, version)) && !external_scanner_state_changed) { found_token = false; } @@ -2699,22 +2513,16 @@ static t_subtree ts_parser__lex(t_first_parser *self, t_stack_version version, { t_length padding = length_sub(error_start_position, start_position); t_length size = length_sub(error_end_position, error_start_position); - uint32_t lookahead_bytes = - lookahead_end_byte - error_end_position.bytes; - result = ts_subtree_new_error(&self->tree_pool, first_error_character, - padding, size, lookahead_bytes, - parse_state, self->language); + uint32_t lookahead_bytes = lookahead_end_byte - error_end_position.bytes; + result = ts_subtree_new_error(&self->tree_pool, first_error_character, padding, size, lookahead_bytes, parse_state, self->language); } else { bool is_keyword = false; t_symbol symbol = self->lexer.data.result_symbol; - t_length padding = - length_sub(self->lexer.token_start_position, start_position); - t_length size = length_sub(self->lexer.token_end_position, - self->lexer.token_start_position); - uint32_t lookahead_bytes = - lookahead_end_byte - self->lexer.token_end_position.bytes; + t_length padding = length_sub(self->lexer.token_start_position, start_position); + t_length size = length_sub(self->lexer.token_end_position, self->lexer.token_start_position); + uint32_t lookahead_bytes = lookahead_end_byte - self->lexer.token_end_position.bytes; if (found_external_token) { @@ -2728,47 +2536,33 @@ static t_subtree ts_parser__lex(t_first_parser *self, t_stack_version version, is_keyword = ts_parser__call_keyword_lex_fn(self, lex_mode); - if (is_keyword && - self->lexer.token_end_position.bytes == end_byte && - ts_language_has_actions(self->language, parse_state, - self->lexer.data.result_symbol)) + if (is_keyword && self->lexer.token_end_position.bytes == end_byte && + ts_language_has_actions(self->language, parse_state, self->lexer.data.result_symbol)) { symbol = self->lexer.data.result_symbol; } } - result = ts_subtree_new_leaf(&self->tree_pool, symbol, padding, size, - lookahead_bytes, parse_state, - found_external_token, called_get_column, - is_keyword, self->language); + result = ts_subtree_new_leaf(&self->tree_pool, symbol, padding, size, lookahead_bytes, parse_state, found_external_token, called_get_column, is_keyword, + self->language); if (found_external_token) { t_mutable_subtree mut_result = ts_subtree_to_mut_unsafe(result); - ts_external_scanner_state_init( - &mut_result.ptr->external_scanner_state, - self->lexer.debug_buffer, external_scanner_state_len); - mut_result.ptr->has_external_scanner_state_change = - external_scanner_state_changed; + ts_external_scanner_state_init(&mut_result.ptr->external_scanner_state, self->lexer.debug_buffer, external_scanner_state_len); + mut_result.ptr->has_external_scanner_state_change = external_scanner_state_changed; } } return result; } -static t_subtree ts_parser__get_cached_token(t_first_parser *self, - t_state_id state, size_t position, - t_subtree last_external_token, - t_table_entry *table_entry) +static t_subtree ts_parser__get_cached_token(t_first_parser *self, t_state_id state, size_t position, t_subtree last_external_token, t_table_entry *table_entry) { t_token_cache *cache = &self->token_cache; - if (cache->token.ptr && cache->byte_index == position && - ts_subtree_external_scanner_state_eq(cache->last_external_token, - last_external_token)) + if (cache->token.ptr && cache->byte_index == position && ts_subtree_external_scanner_state_eq(cache->last_external_token, last_external_token)) { - ts_language_table_entry(self->language, state, - ts_subtree_symbol(cache->token), table_entry); - if (ts_parser__can_reuse_first_leaf(self, state, cache->token, - table_entry)) + ts_language_table_entry(self->language, state, ts_subtree_symbol(cache->token), table_entry); + if (ts_parser__can_reuse_first_leaf(self, state, cache->token, table_entry)) { ts_subtree_retain(cache->token); return cache->token; @@ -2777,10 +2571,7 @@ static t_subtree ts_parser__get_cached_token(t_first_parser *self, return NULL_SUBTREE; } -static void ts_parser__set_cached_token(t_first_parser *self, - uint32_t byte_index, - t_subtree last_external_token, - t_subtree token) +static void ts_parser__set_cached_token(t_first_parser *self, uint32_t byte_index, t_subtree last_external_token, t_subtree token) { t_token_cache *cache = &self->token_cache; if (token.ptr) @@ -2796,19 +2587,12 @@ static void ts_parser__set_cached_token(t_first_parser *self, cache->last_external_token = last_external_token; } -static bool ts_parser__has_included_range_difference(const t_first_parser *self, - uint32_t start_position, - uint32_t end_position) +static bool ts_parser__has_included_range_difference(const t_first_parser *self, uint32_t start_position, uint32_t end_position) { - return ts_range_array_intersects(&self->included_range_differences, - self->included_range_difference_index, - start_position, end_position); + return ts_range_array_intersects(&self->included_range_differences, self->included_range_difference_index, start_position, end_position); } -static t_subtree ts_parser__reuse_node(t_first_parser *self, - t_stack_version version, - t_state_id *state, uint32_t position, - t_subtree last_external_token, +static t_subtree ts_parser__reuse_node(t_first_parser *self, t_stack_version version, t_state_id *state, uint32_t position, t_subtree last_external_token, t_table_entry *table_entry) { t_subtree result; @@ -2831,16 +2615,14 @@ static t_subtree ts_parser__reuse_node(t_first_parser *self, if (byte_offset < position) { - if (end_byte_offset <= position || - !reusable_node_descend(&self->reusable_node)) + if (end_byte_offset <= position || !reusable_node_descend(&self->reusable_node)) { reusable_node_advance(&self->reusable_node); } continue; } - if (!ts_subtree_external_scanner_state_eq( - self->reusable_node.last_external_token, last_external_token)) + if (!ts_subtree_external_scanner_state_eq(self->reusable_node.last_external_token, last_external_token)) { reusable_node_advance(&self->reusable_node); continue; @@ -2863,8 +2645,7 @@ static t_subtree ts_parser__reuse_node(t_first_parser *self, { reason = "is_fragile"; } - else if (ts_parser__has_included_range_difference(self, byte_offset, - end_byte_offset)) + else if (ts_parser__has_included_range_difference(self, byte_offset, end_byte_offset)) { reason = "contains_different_included_range"; } @@ -2881,8 +2662,7 @@ static t_subtree ts_parser__reuse_node(t_first_parser *self, } t_symbol leaf_symbol = ts_subtree_leaf_symbol(result); - ts_language_table_entry(self->language, *state, leaf_symbol, - table_entry); + ts_language_table_entry(self->language, *state, leaf_symbol, table_entry); if (!ts_parser__can_reuse_first_leaf(self, *state, result, table_entry)) { reusable_node_advance_past_leaf(&self->reusable_node); @@ -2900,8 +2680,7 @@ static t_subtree ts_parser__reuse_node(t_first_parser *self, // The decision is based on the trees' error costs (if any), their dynamic // precedence, and finally, as a default, by a recursive comparison of the // trees' symbols. -static bool ts_parser__select_tree(t_first_parser *self, t_subtree left, - t_subtree right) +static bool ts_parser__select_tree(t_first_parser *self, t_subtree left, t_subtree right) { if (!left.ptr) return true; @@ -2918,14 +2697,12 @@ static bool ts_parser__select_tree(t_first_parser *self, t_subtree left, return false; } - if (ts_subtree_dynamic_precedence(right) > - ts_subtree_dynamic_precedence(left)) + if (ts_subtree_dynamic_precedence(right) > ts_subtree_dynamic_precedence(left)) { return true; } - if (ts_subtree_dynamic_precedence(left) > - ts_subtree_dynamic_precedence(right)) + if (ts_subtree_dynamic_precedence(left) > ts_subtree_dynamic_precedence(right)) { return false; } @@ -2948,8 +2725,7 @@ static bool ts_parser__select_tree(t_first_parser *self, t_subtree left, // Determine if a given tree's children should be replaced by an alternative // array of children. -static bool ts_parser__select_children(t_first_parser *self, t_subtree left, - const t_subtree_array *children) +static bool ts_parser__select_children(t_first_parser *self, t_subtree left, const t_subtree_array *children) { array_assign(&self->scratch_trees, children); @@ -2957,22 +2733,18 @@ static bool ts_parser__select_children(t_first_parser *self, t_subtree left, // not perform any allocation except for possibly growing the array to make // room for its own heap data. The scratch tree is never explicitly // released, so the same 'scratch trees' array can be reused again later. - t_mutable_subtree scratch_tree = ts_subtree_new_node( - ts_subtree_symbol(left), &self->scratch_trees, 0, self->language); + t_mutable_subtree scratch_tree = ts_subtree_new_node(ts_subtree_symbol(left), &self->scratch_trees, 0, self->language); - return ts_parser__select_tree(self, left, - ts_subtree_from_mut(scratch_tree)); + return ts_parser__select_tree(self, left, ts_subtree_from_mut(scratch_tree)); } -static void ts_parser__shift(t_first_parser *self, t_stack_version version, - t_state_id state, t_subtree lookahead, bool extra) +static void ts_parser__shift(t_first_parser *self, t_stack_version version, t_state_id state, t_subtree lookahead, bool extra) { bool is_leaf = ts_subtree_child_count(lookahead) == 0; t_subtree subtree_to_push = lookahead; if (extra != ts_subtree_extra(lookahead) && is_leaf) { - t_mutable_subtree result = - ts_subtree_make_mut(&self->tree_pool, lookahead); + t_mutable_subtree result = ts_subtree_make_mut(&self->tree_pool, lookahead); ts_subtree_set_extra(&result, extra); subtree_to_push = ts_subtree_from_mut(result); } @@ -2980,16 +2752,12 @@ static void ts_parser__shift(t_first_parser *self, t_stack_version version, ts_stack_push(self->stack, version, subtree_to_push, !is_leaf, state); if (ts_subtree_has_external_tokens(subtree_to_push)) { - ts_stack_set_last_external_token( - self->stack, version, - ts_subtree_last_external_token(subtree_to_push)); + ts_stack_set_last_external_token(self->stack, version, ts_subtree_last_external_token(subtree_to_push)); } } -static t_stack_version ts_parser__reduce( - t_first_parser *self, t_stack_version version, t_symbol symbol, - uint32_t count, int dynamic_precedence, uint16_t production_id, - bool is_fragile, bool end_of_non_terminal_extra) +static t_stack_version ts_parser__reduce(t_first_parser *self, t_stack_version version, t_symbol symbol, uint32_t count, int dynamic_precedence, + uint16_t production_id, bool is_fragile, bool end_of_non_terminal_extra) { uint32_t initial_version_count = ts_stack_version_count(self->stack); @@ -3029,11 +2797,9 @@ static t_stack_version ts_parser__reduce( // parent node. They will be re-pushed onto the stack after the parent // node is created and pushed. t_subtree_array children = slice.subtrees; - ts_subtree_array_remove_trailing_extras(&children, - &self->trailing_extras); + ts_subtree_array_remove_trailing_extras(&children, &self->trailing_extras); - t_mutable_subtree parent = ts_subtree_new_node( - symbol, &children, production_id, self->language); + t_mutable_subtree parent = ts_subtree_new_node(symbol, &children, production_id, self->language); // This pop operation may have caused multiple stack versions to // collapse into one, because they all diverged from a common state. In @@ -3047,19 +2813,14 @@ static t_stack_version ts_parser__reduce( i++; t_subtree_array next_slice_children = next_slice.subtrees; - ts_subtree_array_remove_trailing_extras(&next_slice_children, - &self->trailing_extras2); + ts_subtree_array_remove_trailing_extras(&next_slice_children, &self->trailing_extras2); - if (ts_parser__select_children(self, ts_subtree_from_mut(parent), - &next_slice_children)) + if (ts_parser__select_children(self, ts_subtree_from_mut(parent), &next_slice_children)) { - ts_subtree_array_clear(&self->tree_pool, - &self->trailing_extras); - ts_subtree_release(&self->tree_pool, - ts_subtree_from_mut(parent)); + ts_subtree_array_clear(&self->tree_pool, &self->trailing_extras); + ts_subtree_release(&self->tree_pool, ts_subtree_from_mut(parent)); array_swap(&self->trailing_extras, &self->trailing_extras2); - parent = ts_subtree_new_node(symbol, &next_slice_children, - production_id, self->language); + parent = ts_subtree_new_node(symbol, &next_slice_children, production_id, self->language); } else { @@ -3069,8 +2830,7 @@ static t_stack_version ts_parser__reduce( } t_state_id state = ts_stack_state(self->stack, slice_version); - t_state_id next_state = - ts_language_next_state(self->language, state, symbol); + t_state_id next_state = ts_language_next_state(self->language, state, symbol); if (end_of_non_terminal_extra && next_state == state) { parent.ptr->extra = true; @@ -3089,12 +2849,10 @@ static t_stack_version ts_parser__reduce( // Push the parent node onto the stack, along with any extra tokens that // were previously on top of the stack. - ts_stack_push(self->stack, slice_version, ts_subtree_from_mut(parent), - false, next_state); + ts_stack_push(self->stack, slice_version, ts_subtree_from_mut(parent), false, next_state); for (uint32_t j = 0; j < self->trailing_extras.size; j++) { - ts_stack_push(self->stack, slice_version, - self->trailing_extras.contents[j], false, next_state); + ts_stack_push(self->stack, slice_version, self->trailing_extras.contents[j], false, next_state); } for (t_stack_version j = 0; j < slice_version; j++) @@ -3110,13 +2868,10 @@ static t_stack_version ts_parser__reduce( } // Return the first new stack version that was created. - return ts_stack_version_count(self->stack) > initial_version_count - ? initial_version_count - : STACK_VERSION_NONE; + return ts_stack_version_count(self->stack) > initial_version_count ? initial_version_count : STACK_VERSION_NONE; } -static void ts_parser__accept(t_first_parser *self, t_stack_version version, - t_subtree lookahead) +static void ts_parser__accept(t_first_parser *self, t_stack_version version, t_subtree lookahead) { assert(ts_subtree_is_eof(lookahead)); ts_stack_push(self->stack, version, lookahead, false, 1); @@ -3140,9 +2895,7 @@ static void ts_parser__accept(t_first_parser *self, t_stack_version version, ts_subtree_retain(children[k]); } array_splice(&trees, j, 1, child_count, children); - root = ts_subtree_from_mut(ts_subtree_new_node( - ts_subtree_symbol(tree), &trees, tree.ptr->production_id, - self->language)); + root = ts_subtree_from_mut(ts_subtree_new_node(ts_subtree_symbol(tree), &trees, tree.ptr->production_id, self->language)); ts_subtree_release(&self->tree_pool, tree); break; } @@ -3173,9 +2926,7 @@ static void ts_parser__accept(t_first_parser *self, t_stack_version version, ts_stack_halt(self->stack, version); } -static bool ts_parser__do_all_potential_reductions( - t_first_parser *self, t_stack_version starting_version, - t_symbol lookahead_symbol) +static bool ts_parser__do_all_potential_reductions(t_first_parser *self, t_stack_version starting_version, t_symbol lookahead_symbol) { uint32_t initial_version_count = ts_stack_version_count(self->stack); @@ -3231,15 +2982,12 @@ static bool ts_parser__do_all_potential_reductions( break; case TSParseActionTypeReduce: if (action.reduce.child_count > 0) - ts_reduce_action_set_add( - &self->reduce_actions, - (t_reduce_action){ - .symbol = action.reduce.symbol, - .count = action.reduce.child_count, - .dynamic_precedence = - action.reduce.dynamic_precedence, - .production_id = action.reduce.production_id, - }); + ts_reduce_action_set_add(&self->reduce_actions, (t_reduce_action){ + .symbol = action.reduce.symbol, + .count = action.reduce.child_count, + .dynamic_precedence = action.reduce.dynamic_precedence, + .production_id = action.reduce.production_id, + }); break; default: break; @@ -3252,17 +3000,14 @@ static bool ts_parser__do_all_potential_reductions( { t_reduce_action action = self->reduce_actions.contents[j]; - reduction_version = ts_parser__reduce( - self, version, action.symbol, action.count, - action.dynamic_precedence, action.production_id, true, false); + reduction_version = ts_parser__reduce(self, version, action.symbol, action.count, action.dynamic_precedence, action.production_id, true, false); } if (has_shift_action) { can_shift_lookahead_symbol = true; } - else if (reduction_version != STACK_VERSION_NONE && - i < MAX_VERSION_COUNT) + else if (reduction_version != STACK_VERSION_NONE && i < MAX_VERSION_COUNT) { ts_stack_renumber_version(self->stack, reduction_version, version); continue; @@ -3285,9 +3030,7 @@ static bool ts_parser__do_all_potential_reductions( return can_shift_lookahead_symbol; } -static bool ts_parser__recover_to_state(t_first_parser *self, - t_stack_version version, unsigned depth, - t_state_id goal_state) +static bool ts_parser__recover_to_state(t_first_parser *self, t_stack_version version, unsigned depth, t_state_id goal_state) { t_stack_slice_array pop = ts_stack_pop_count(self->stack, version, depth); t_stack_version previous_version = STACK_VERSION_NONE; @@ -3311,8 +3054,7 @@ static bool ts_parser__recover_to_state(t_first_parser *self, continue; } - t_subtree_array error_trees = - ts_stack_pop_error(self->stack, slice.version); + t_subtree_array error_trees = ts_stack_pop_error(self->stack, slice.version); if (error_trees.size > 0) { assert(error_trees.size == 1); @@ -3320,8 +3062,7 @@ static bool ts_parser__recover_to_state(t_first_parser *self, uint32_t error_child_count = ts_subtree_child_count(error_tree); if (error_child_count > 0) { - array_splice(&slice.subtrees, 0, 0, error_child_count, - ts_subtree_children(error_tree)); + array_splice(&slice.subtrees, 0, 0, error_child_count, ts_subtree_children(error_tree)); for (unsigned j = 0; j < error_child_count; j++) { ts_subtree_retain(slice.subtrees.contents[j]); @@ -3330,13 +3071,11 @@ static bool ts_parser__recover_to_state(t_first_parser *self, ts_subtree_array_delete(&self->tree_pool, &error_trees); } - ts_subtree_array_remove_trailing_extras(&slice.subtrees, - &self->trailing_extras); + ts_subtree_array_remove_trailing_extras(&slice.subtrees, &self->trailing_extras); if (slice.subtrees.size > 0) { - t_subtree error = ts_subtree_new_error_node(&slice.subtrees, true, - self->language); + t_subtree error = ts_subtree_new_error_node(&slice.subtrees, true, self->language); ts_stack_push(self->stack, slice.version, error, false, goal_state); } else @@ -3356,16 +3095,14 @@ static bool ts_parser__recover_to_state(t_first_parser *self, return previous_version != STACK_VERSION_NONE; } -static void ts_parser__recover(t_first_parser *self, t_stack_version version, - t_subtree lookahead) +static void ts_parser__recover(t_first_parser *self, t_stack_version version, t_subtree lookahead) { - bool did_recover = false; - unsigned previous_version_count = ts_stack_version_count(self->stack); - t_length position = ts_stack_position(self->stack, version); + bool did_recover = false; + unsigned previous_version_count = ts_stack_version_count(self->stack); + t_length position = ts_stack_position(self->stack, version); t_stack_summary *summary = ts_stack_get_summary(self->stack, version); - unsigned node_count_since_error = - ts_stack_node_count_since_error(self->stack, version); - unsigned current_error_cost = ts_stack_error_cost(self->stack, version); + unsigned node_count_since_error = ts_stack_node_count_since_error(self->stack, version); + unsigned current_error_cost = ts_stack_error_cost(self->stack, version); // When the parser is in the error state, there are two strategies for // recovering with a given lookahead token: @@ -3400,8 +3137,7 @@ static void ts_parser__recover(t_first_parser *self, t_stack_version version, bool would_merge = false; for (unsigned j = 0; j < previous_version_count; j++) { - if (ts_stack_state(self->stack, j) == entry.state && - ts_stack_position(self->stack, j).bytes == position.bytes) + if (ts_stack_state(self->stack, j) == entry.state && ts_stack_position(self->stack, j).bytes == position.bytes) { would_merge = true; break; @@ -3412,23 +3148,17 @@ static void ts_parser__recover(t_first_parser *self, t_stack_version version, // Do not recover if the result would clearly be worse than some // existing stack version. - unsigned new_cost = - current_error_cost + entry.depth * ERROR_COST_PER_SKIPPED_TREE + - (position.bytes - entry.position.bytes) * - ERROR_COST_PER_SKIPPED_CHAR + - (position.extent.row - entry.position.extent.row) * - ERROR_COST_PER_SKIPPED_LINE; - if (ts_parser__better_version_exists(self, version, false, - new_cost)) + unsigned new_cost = current_error_cost + entry.depth * ERROR_COST_PER_SKIPPED_TREE + + (position.bytes - entry.position.bytes) * ERROR_COST_PER_SKIPPED_CHAR + + (position.extent.row - entry.position.extent.row) * ERROR_COST_PER_SKIPPED_LINE; + if (ts_parser__better_version_exists(self, version, false, new_cost)) break; // If the current lookahead token is valid in some previous state, // recover to that state. Then stop looking for further recoveries. - if (ts_language_has_actions(self->language, entry.state, - ts_subtree_symbol(lookahead))) + if (ts_language_has_actions(self->language, entry.state, ts_subtree_symbol(lookahead))) { - if (ts_parser__recover_to_state(self, version, depth, - entry.state)) + if (ts_parser__recover_to_state(self, version, depth, entry.state)) { did_recover = true; break; @@ -3439,8 +3169,7 @@ static void ts_parser__recover(t_first_parser *self, t_stack_version version, // In the process of attempting to recover, some stack versions may have // been created and subsequently halted. Remove those versions. - for (unsigned i = previous_version_count; - i < ts_stack_version_count(self->stack); i++) + for (unsigned i = previous_version_count; i < ts_stack_version_count(self->stack); i++) { if (!ts_stack_is_active(self->stack, i)) { @@ -3474,8 +3203,7 @@ static void ts_parser__recover(t_first_parser *self, t_stack_version version, if (ts_subtree_is_eof(lookahead)) { t_subtree_array children = array_new(); - t_subtree parent = - ts_subtree_new_error_node(&children, false, self->language); + t_subtree parent = ts_subtree_new_error_node(&children, false, self->language); ts_stack_push(self->stack, version, parent, false, 1); ts_parser__accept(self, version, lookahead); return; @@ -3483,11 +3211,8 @@ static void ts_parser__recover(t_first_parser *self, t_stack_version version, // Do not recover if the result would clearly be worse than some existing // stack version. - unsigned new_cost = - current_error_cost + ERROR_COST_PER_SKIPPED_TREE + - ts_subtree_total_bytes(lookahead) * ERROR_COST_PER_SKIPPED_CHAR + - ts_subtree_total_size(lookahead).extent.row * - ERROR_COST_PER_SKIPPED_LINE; + unsigned new_cost = current_error_cost + ERROR_COST_PER_SKIPPED_TREE + ts_subtree_total_bytes(lookahead) * ERROR_COST_PER_SKIPPED_CHAR + + ts_subtree_total_size(lookahead).extent.row * ERROR_COST_PER_SKIPPED_LINE; if (ts_parser__better_version_exists(self, version, false, new_cost)) { ts_stack_halt(self->stack, version); @@ -3498,13 +3223,10 @@ static void ts_parser__recover(t_first_parser *self, t_stack_version version, // If the current lookahead token is an extra token, mark it as extra. This // means it won't be counted in error cost calculations. unsigned n; - const t_parse_action *actions = ts_language_actions( - self->language, 1, ts_subtree_symbol(lookahead), &n); - if (n > 0 && actions[n - 1].type == TSParseActionTypeShift && - actions[n - 1].shift.extra) + const t_parse_action *actions = ts_language_actions(self->language, 1, ts_subtree_symbol(lookahead), &n); + if (n > 0 && actions[n - 1].type == TSParseActionTypeShift && actions[n - 1].shift.extra) { - t_mutable_subtree mutable_lookahead = - ts_subtree_make_mut(&self->tree_pool, lookahead); + t_mutable_subtree mutable_lookahead = ts_subtree_make_mut(&self->tree_pool, lookahead); ts_subtree_set_extra(&mutable_lookahead, true); lookahead = ts_subtree_from_mut(mutable_lookahead); } @@ -3513,8 +3235,7 @@ static void ts_parser__recover(t_first_parser *self, t_stack_version version, t_subtree_array children = array_new(); array_reserve(&children, 1); array_push(&children, lookahead); - t_mutable_subtree error_repeat = ts_subtree_new_node( - ts_builtin_sym_error_repeat, &children, 0, self->language); + t_mutable_subtree error_repeat = ts_subtree_new_node(ts_builtin_sym_error_repeat, &children, 0, self->language); // If other tokens have already been skipped, so there is already an ERROR // at the top of the stack, then pop that ERROR off the stack and wrap the @@ -3531,39 +3252,28 @@ static void ts_parser__recover(t_first_parser *self, t_stack_version version, { for (unsigned i = 1; i < pop.size; i++) { - ts_subtree_array_delete(&self->tree_pool, - &pop.contents[i].subtrees); + ts_subtree_array_delete(&self->tree_pool, &pop.contents[i].subtrees); } - while (ts_stack_version_count(self->stack) > - pop.contents[0].version + 1) + while (ts_stack_version_count(self->stack) > pop.contents[0].version + 1) { - ts_stack_remove_version(self->stack, - pop.contents[0].version + 1); + ts_stack_remove_version(self->stack, pop.contents[0].version + 1); } } - ts_stack_renumber_version(self->stack, pop.contents[0].version, - version); - array_push(&pop.contents[0].subtrees, - ts_subtree_from_mut(error_repeat)); - error_repeat = - ts_subtree_new_node(ts_builtin_sym_error_repeat, - &pop.contents[0].subtrees, 0, self->language); + ts_stack_renumber_version(self->stack, pop.contents[0].version, version); + array_push(&pop.contents[0].subtrees, ts_subtree_from_mut(error_repeat)); + error_repeat = ts_subtree_new_node(ts_builtin_sym_error_repeat, &pop.contents[0].subtrees, 0, self->language); } // Push the new ERROR onto the stack. - ts_stack_push(self->stack, version, ts_subtree_from_mut(error_repeat), - false, ERROR_STATE); + ts_stack_push(self->stack, version, ts_subtree_from_mut(error_repeat), false, ERROR_STATE); if (ts_subtree_has_external_tokens(lookahead)) { - ts_stack_set_last_external_token( - self->stack, version, ts_subtree_last_external_token(lookahead)); + ts_stack_set_last_external_token(self->stack, version, ts_subtree_last_external_token(lookahead)); } } -static void ts_parser__handle_error(t_first_parser *self, - t_stack_version version, - t_subtree lookahead) +static void ts_parser__handle_error(t_first_parser *self, t_stack_version version, t_subtree lookahead) { uint32_t previous_version_count = ts_stack_version_count(self->stack); @@ -3582,21 +3292,15 @@ static void ts_parser__handle_error(t_first_parser *self, if (!did_insert_missing_token) { t_state_id state = ts_stack_state(self->stack, v); - for (t_symbol missing_symbol = 1; - missing_symbol < (uint16_t)self->language->token_count; - missing_symbol++) + for (t_symbol missing_symbol = 1; missing_symbol < (uint16_t)self->language->token_count; missing_symbol++) { - t_state_id state_after_missing_symbol = ts_language_next_state( - self->language, state, missing_symbol); - if (state_after_missing_symbol == 0 || - state_after_missing_symbol == state) + t_state_id state_after_missing_symbol = ts_language_next_state(self->language, state, missing_symbol); + if (state_after_missing_symbol == 0 || state_after_missing_symbol == state) { continue; } - if (ts_language_has_reduce_action( - self->language, state_after_missing_symbol, - ts_subtree_leaf_symbol(lookahead))) + if (ts_language_has_reduce_action(self->language, state_after_missing_symbol, ts_subtree_leaf_symbol(lookahead))) { // In case the parser is currently outside of any included // range, the lexer will snap to the beginning of the next @@ -3604,24 +3308,14 @@ static void ts_parser__handle_error(t_first_parser *self, // assigned to position it within the next included range. ts_lexer_reset(&self->lexer, position); ts_lexer_mark_end(&self->lexer); - t_length padding = - length_sub(self->lexer.token_end_position, position); - uint32_t lookahead_bytes = - ts_subtree_total_bytes(lookahead) + - ts_subtree_lookahead_bytes(lookahead); + t_length padding = length_sub(self->lexer.token_end_position, position); + uint32_t lookahead_bytes = ts_subtree_total_bytes(lookahead) + ts_subtree_lookahead_bytes(lookahead); - t_stack_version version_with_missing_tree = - ts_stack_copy_version(self->stack, v); - t_subtree missing_tree = ts_subtree_new_missing_leaf( - &self->tree_pool, missing_symbol, padding, - lookahead_bytes, self->language); - ts_stack_push(self->stack, version_with_missing_tree, - missing_tree, false, - state_after_missing_symbol); + t_stack_version version_with_missing_tree = ts_stack_copy_version(self->stack, v); + t_subtree missing_tree = ts_subtree_new_missing_leaf(&self->tree_pool, missing_symbol, padding, lookahead_bytes, self->language); + ts_stack_push(self->stack, version_with_missing_tree, missing_tree, false, state_after_missing_symbol); - if (ts_parser__do_all_potential_reductions( - self, version_with_missing_tree, - ts_subtree_leaf_symbol(lookahead))) + if (ts_parser__do_all_potential_reductions(self, version_with_missing_tree, ts_subtree_leaf_symbol(lookahead))) { did_insert_missing_token = true; break; @@ -3636,8 +3330,7 @@ static void ts_parser__handle_error(t_first_parser *self, for (unsigned i = previous_version_count; i < version_count; i++) { - bool did_merge = - ts_stack_merge(self->stack, version, previous_version_count); + bool did_merge = ts_stack_merge(self->stack, version, previous_version_count); assert(did_merge); (void)did_merge; // fix warning/error with clang -Os } @@ -3651,19 +3344,16 @@ static void ts_parser__handle_error(t_first_parser *self, // order to recognize it. if (ts_subtree_child_count(lookahead) > 0) { - ts_parser__breakdown_lookahead(self, &lookahead, ERROR_STATE, - &self->reusable_node); + ts_parser__breakdown_lookahead(self, &lookahead, ERROR_STATE, &self->reusable_node); } ts_parser__recover(self, version, lookahead); } -static bool ts_parser__advance(t_first_parser *self, t_stack_version version, - bool allow_node_reuse) +static bool ts_parser__advance(t_first_parser *self, t_stack_version version, bool allow_node_reuse) { t_state_id state = ts_stack_state(self->stack, version); uint32_t position = ts_stack_position(self->stack, version).bytes; - t_subtree last_external_token = - ts_stack_last_external_token(self->stack, version); + t_subtree last_external_token = ts_stack_last_external_token(self->stack, version); bool did_reuse = true; t_subtree lookahead = NULL_SUBTREE; @@ -3672,8 +3362,7 @@ static bool ts_parser__advance(t_first_parser *self, t_stack_version version, // If possible, reuse a node from the previous syntax tree. if (allow_node_reuse) { - lookahead = ts_parser__reuse_node(self, version, &state, position, - last_external_token, &table_entry); + lookahead = ts_parser__reuse_node(self, version, &state, position, last_external_token, &table_entry); } // If no node from the previous syntax tree could be reused, then try to @@ -3681,8 +3370,7 @@ static bool ts_parser__advance(t_first_parser *self, t_stack_version version, if (!lookahead.ptr) { did_reuse = false; - lookahead = ts_parser__get_cached_token( - self, state, position, last_external_token, &table_entry); + lookahead = ts_parser__get_cached_token(self, state, position, last_external_token, &table_entry); } bool needs_lex = !lookahead.ptr; @@ -3698,11 +3386,8 @@ static bool ts_parser__advance(t_first_parser *self, t_stack_version version, if (lookahead.ptr) { - ts_parser__set_cached_token(self, position, last_external_token, - lookahead); - ts_language_table_entry(self->language, state, - ts_subtree_symbol(lookahead), - &table_entry); + ts_parser__set_cached_token(self, position, last_external_token, lookahead); + ts_language_table_entry(self->language, state, ts_subtree_symbol(lookahead), &table_entry); } // When parsing a non-terminal extra, a null lookahead indicates the @@ -3710,8 +3395,7 @@ static bool ts_parser__advance(t_first_parser *self, t_stack_version version, // After the reduction, the lexer needs to be run again. else { - ts_language_table_entry(self->language, state, - ts_builtin_sym_end, &table_entry); + ts_language_table_entry(self->language, state, ts_builtin_sym_end, &table_entry); } } @@ -3749,27 +3433,22 @@ static bool ts_parser__advance(t_first_parser *self, t_stack_version version, if (ts_subtree_child_count(lookahead) > 0) { - ts_parser__breakdown_lookahead(self, &lookahead, state, - &self->reusable_node); - next_state = ts_language_next_state( - self->language, state, ts_subtree_symbol(lookahead)); + ts_parser__breakdown_lookahead(self, &lookahead, state, &self->reusable_node); + next_state = ts_language_next_state(self->language, state, ts_subtree_symbol(lookahead)); } - ts_parser__shift(self, version, next_state, lookahead, - action.shift.extra); + ts_parser__shift(self, version, next_state, lookahead, action.shift.extra); if (did_reuse) reusable_node_advance(&self->reusable_node); return true; } case TSParseActionTypeReduce: { - bool is_fragile = table_entry.action_count > 1; - bool end_of_non_terminal_extra = lookahead.ptr == NULL; - t_stack_version reduction_version = ts_parser__reduce( - self, version, action.reduce.symbol, - action.reduce.child_count, action.reduce.dynamic_precedence, - action.reduce.production_id, is_fragile, - end_of_non_terminal_extra); + bool is_fragile = table_entry.action_count > 1; + bool end_of_non_terminal_extra = lookahead.ptr == NULL; + t_stack_version reduction_version = + ts_parser__reduce(self, version, action.reduce.symbol, action.reduce.child_count, action.reduce.dynamic_precedence, + action.reduce.production_id, is_fragile, end_of_non_terminal_extra); if (reduction_version != STACK_VERSION_NONE) { last_reduction_version = reduction_version; @@ -3785,8 +3464,7 @@ static bool ts_parser__advance(t_first_parser *self, t_stack_version version, case TSParseActionTypeRecover: { if (ts_subtree_child_count(lookahead) > 0) { - ts_parser__breakdown_lookahead( - self, &lookahead, ERROR_STATE, &self->reusable_node); + ts_parser__breakdown_lookahead(self, &lookahead, ERROR_STATE, &self->reusable_node); } ts_parser__recover(self, version, lookahead); @@ -3802,8 +3480,7 @@ static bool ts_parser__advance(t_first_parser *self, t_stack_version version, // processing this version of the stack with the same lookahead symbol. if (last_reduction_version != STACK_VERSION_NONE) { - ts_stack_renumber_version(self->stack, last_reduction_version, - version); + ts_stack_renumber_version(self->stack, last_reduction_version, version); state = ts_stack_state(self->stack, version); // At the end of a non-terminal extra rule, the lexer will return a @@ -3817,9 +3494,7 @@ static bool ts_parser__advance(t_first_parser *self, t_stack_version version, } else { - ts_language_table_entry(self->language, state, - ts_subtree_leaf_symbol(lookahead), - &table_entry); + ts_language_table_entry(self->language, state, ts_subtree_leaf_symbol(lookahead), &table_entry); } continue; @@ -3837,21 +3512,14 @@ static bool ts_parser__advance(t_first_parser *self, t_stack_version version, // it is not valid in this state. If the current lookahead token is a // keyword, then switch to treating it as the normal word token if that // token is valid in this state. - if (ts_subtree_is_keyword(lookahead) && - ts_subtree_symbol(lookahead) != - self->language->keyword_capture_token) + if (ts_subtree_is_keyword(lookahead) && ts_subtree_symbol(lookahead) != self->language->keyword_capture_token) { - ts_language_table_entry(self->language, state, - self->language->keyword_capture_token, - &table_entry); + ts_language_table_entry(self->language, state, self->language->keyword_capture_token, &table_entry); if (table_entry.action_count > 0) { - t_mutable_subtree mutable_lookahead = - ts_subtree_make_mut(&self->tree_pool, lookahead); - ts_subtree_set_symbol(&mutable_lookahead, - self->language->keyword_capture_token, - self->language); + t_mutable_subtree mutable_lookahead = ts_subtree_make_mut(&self->tree_pool, lookahead); + ts_subtree_set_symbol(&mutable_lookahead, self->language->keyword_capture_token, self->language); lookahead = ts_subtree_from_mut(mutable_lookahead); continue; } @@ -3975,13 +3643,11 @@ static unsigned ts_parser__condense_stack(t_first_parser *self) if (ts_stack_version_count(self->stack) > 0) { bool has_unpaused_version = false; - for (t_stack_version i = 0, n = ts_stack_version_count(self->stack); - i < n; i++) + for (t_stack_version i = 0, n = ts_stack_version_count(self->stack); i < n; i++) { if (ts_stack_is_paused(self->stack, i)) { - if (!has_unpaused_version && - self->accept_count < MAX_VERSION_COUNT) + if (!has_unpaused_version && self->accept_count < MAX_VERSION_COUNT) { min_error_cost = ts_stack_error_cost(self->stack, i); t_subtree lookahead = ts_stack_resume(self->stack, i); @@ -4008,9 +3674,7 @@ static unsigned ts_parser__condense_stack(t_first_parser *self) static bool ts_parser_has_outstanding_parse(t_first_parser *self) { - return (self->external_scanner_payload || - ts_stack_state(self->stack, 0) != 1 || - ts_stack_node_count_since_error(self->stack, 0) != 0); + return (self->external_scanner_payload || ts_stack_state(self->stack, 0) != 1 || ts_stack_node_count_since_error(self->stack, 0) != 0); } // Parser - Public @@ -4122,14 +3786,12 @@ void ts_parser_set_timeout_micros(t_first_parser *self, uint64_t timeout_micros) self->timeout_duration = 0; } -bool ts_parser_set_included_ranges(t_first_parser *self, - const t_parse_range *ranges, uint32_t count) +bool ts_parser_set_included_ranges(t_first_parser *self, const t_parse_range *ranges, uint32_t count) { return ts_lexer_set_included_ranges(&self->lexer, ranges, count); } -const t_parse_range *ts_parser_included_ranges(const t_first_parser *self, - uint32_t *count) +const t_parse_range *ts_parser_included_ranges(const t_first_parser *self, uint32_t *count) { return ts_lexer_included_ranges(&self->lexer, count); } @@ -4156,8 +3818,7 @@ void ts_parser_reset(t_first_parser *self) self->has_scanner_error = false; } -t_first_tree *ts_parser_parse(t_first_parser *self, - const t_first_tree *old_tree, t_parse_input input) +t_first_tree *ts_parser_parse(t_first_parser *self, const t_first_tree *old_tree, t_parse_input input) { t_first_tree *result = NULL; if (!self->language || !input.read) @@ -4180,10 +3841,8 @@ t_first_tree *ts_parser_parse(t_first_parser *self, { ts_subtree_retain(old_tree->root); self->old_tree = old_tree->root; - ts_range_array_get_changed_ranges( - old_tree->included_ranges, old_tree->included_range_count, - self->lexer.included_ranges, self->lexer.included_range_count, - &self->included_range_differences); + ts_range_array_get_changed_ranges(old_tree->included_ranges, old_tree->included_range_count, self->lexer.included_ranges, + self->lexer.included_range_count, &self->included_range_differences); reusable_node_reset(&self->reusable_node, old_tree->root); } else @@ -4197,10 +3856,7 @@ t_first_tree *ts_parser_parse(t_first_parser *self, uint32_t position = 0, last_position = 0, version_count = 0; do { - for (t_stack_version version = 0; - version_count = ts_stack_version_count(self->stack), - version < version_count; - version++) + for (t_stack_version version = 0; version_count = ts_stack_version_count(self->stack), version < version_count; version++) { bool allow_node_reuse = version_count == 1; while (ts_stack_is_active(self->stack, version)) @@ -4214,8 +3870,7 @@ t_first_tree *ts_parser_parse(t_first_parser *self, } position = ts_stack_position(self->stack, version).bytes; - if (position > last_position || - (version > 0 && position == last_position)) + if (position > last_position || (version > 0 && position == last_position)) { last_position = position; break; @@ -4232,19 +3887,15 @@ t_first_tree *ts_parser_parse(t_first_parser *self, // remove any extra references to subtrees within the finished tree, // ensuring that these subtrees can be safely mutated in-place for // rebalancing. - if (self->finished_tree.ptr && - ts_subtree_error_cost(self->finished_tree) < min_error_cost) + if (self->finished_tree.ptr && ts_subtree_error_cost(self->finished_tree) < min_error_cost) { ts_stack_clear(self->stack); break; } - while (self->included_range_difference_index < - self->included_range_differences.size) + while (self->included_range_difference_index < self->included_range_differences.size) { - t_parse_range *range = - &self->included_range_differences - .contents[self->included_range_difference_index]; + t_parse_range *range = &self->included_range_differences.contents[self->included_range_difference_index]; if (range->end_byte <= position) { self->included_range_difference_index++; @@ -4259,9 +3910,7 @@ t_first_tree *ts_parser_parse(t_first_parser *self, assert(self->finished_tree.ptr); ts_subtree_balance(self->finished_tree, &self->tree_pool, self->language); - result = ts_tree_new(self->finished_tree, self->language, - self->lexer.included_ranges, - self->lexer.included_range_count); + result = ts_tree_new(self->finished_tree, self->language, self->lexer.included_ranges, self->lexer.included_range_count); self->finished_tree = NULL_SUBTREE; exit: @@ -4269,25 +3918,16 @@ exit: return result; } -t_first_tree *ts_parser_parse_string_encoding(t_first_parser *self, - const t_first_tree *old_tree, - const char *string, - uint32_t length, - t_input_encoding encoding); +t_first_tree *ts_parser_parse_string_encoding(t_first_parser *self, const t_first_tree *old_tree, const char *string, uint32_t length, + t_input_encoding encoding); -t_first_tree *ts_parser_parse_string(t_first_parser *self, - const t_first_tree *old_tree, - const char *string, uint32_t length) +t_first_tree *ts_parser_parse_string(t_first_parser *self, const t_first_tree *old_tree, const char *string, uint32_t length) { - return ts_parser_parse_string_encoding(self, old_tree, string, length, - TSInputEncodingUTF8); + return ts_parser_parse_string_encoding(self, old_tree, string, length, TSInputEncodingUTF8); } -t_first_tree *ts_parser_parse_string_encoding(t_first_parser *self, - const t_first_tree *old_tree, - const char *string, - uint32_t length, - t_input_encoding encoding) +t_first_tree *ts_parser_parse_string_encoding(t_first_parser *self, const t_first_tree *old_tree, const char *string, uint32_t length, + t_input_encoding encoding) { t_string_input input = {string, length}; return ts_parser_parse(self, old_tree, @@ -4313,9 +3953,7 @@ static bool stream_advance(t_stream *self) self->input += self->next_size; if (self->input < self->end) { - uint32_t size = - ascii_decode((const uint8_t *)self->input, - (uint32_t)(self->end - self->input), &self->next); + uint32_t size = ascii_decode((const uint8_t *)self->input, (uint32_t)(self->end - self->input), &self->next); if (size > 0) { self->next_size = size; @@ -4386,9 +4024,7 @@ static void stream_scan_identifier(t_stream *stream) do { stream_advance(stream); - } while (me_isalnum(stream->next) || stream->next == '_' || - stream->next == '-' || stream->next == '.' || - stream->next == '?' || stream->next == '!'); + } while (me_isalnum(stream->next) || stream->next == '_' || stream->next == '-' || stream->next == '.' || stream->next == '?' || stream->next == '!'); } static uint32_t stream_offset(t_stream *self) @@ -4429,16 +4065,14 @@ static void capture_list_pool_delete(t_capture_list_pool *self) array_delete(&self->list); } -static const t_capture_list *capture_list_pool_get( - const t_capture_list_pool *self, uint16_t id) +static const t_capture_list *capture_list_pool_get(const t_capture_list_pool *self, uint16_t id) { if (id >= self->list.size) return &self->empty_list; return &self->list.contents[id]; } -static t_capture_list *capture_list_pool_get_mut(t_capture_list_pool *self, - uint16_t id) +static t_capture_list *capture_list_pool_get_mut(t_capture_list_pool *self, uint16_t id) { assert(id < self->list.size); return &self->list.contents[id]; @@ -4448,8 +4082,7 @@ static bool capture_list_pool_is_empty(const t_capture_list_pool *self) { // The capture list pool is empty if all allocated lists are in use, and we // have reached the maximum allowed number of allocated lists. - return self->free_capture_list_count == 0 && - self->list.size >= self->max_capture_list_count; + return self->free_capture_list_count == 0 && self->list.size >= self->max_capture_list_count; } static uint16_t capture_list_pool_acquire(t_capture_list_pool *self) @@ -4678,37 +4311,31 @@ static void capture_quantifiers_clear(t_capture_quantifiers *self) } // Replace capture quantifiers with the given quantifiers -static void capture_quantifiers_replace(t_capture_quantifiers *self, - t_capture_quantifiers *quantifiers) +static void capture_quantifiers_replace(t_capture_quantifiers *self, t_capture_quantifiers *quantifiers) { array_clear(self); array_push_all(self, quantifiers); } // Return capture quantifier for the given capture id -static t_quantifier capture_quantifier_for_id(const t_capture_quantifiers *self, - uint16_t id) +static t_quantifier capture_quantifier_for_id(const t_capture_quantifiers *self, uint16_t id) { - return (self->size <= id) ? TSQuantifierZero - : (t_quantifier)*array_get(self, id); + return (self->size <= id) ? TSQuantifierZero : (t_quantifier)*array_get(self, id); } // Add the given quantifier to the current value for id -static void capture_quantifiers_add_for_id(t_capture_quantifiers *self, - uint16_t id, t_quantifier quantifier) +static void capture_quantifiers_add_for_id(t_capture_quantifiers *self, uint16_t id, t_quantifier quantifier) { if (self->size <= id) { array_grow_by(self, id + 1 - self->size); } uint8_t *own_quantifier = array_get(self, id); - *own_quantifier = - (uint8_t)quantifier_add((t_quantifier)*own_quantifier, quantifier); + *own_quantifier = (uint8_t)quantifier_add((t_quantifier)*own_quantifier, quantifier); } // Point-wise add the given quantifiers to the current values -static void capture_quantifiers_add_all(t_capture_quantifiers *self, - t_capture_quantifiers *quantifiers) +static void capture_quantifiers_add_all(t_capture_quantifiers *self, t_capture_quantifiers *quantifiers) { if (self->size < quantifiers->size) { @@ -4718,27 +4345,23 @@ static void capture_quantifiers_add_all(t_capture_quantifiers *self, { uint8_t *quantifier = array_get(quantifiers, id); uint8_t *own_quantifier = array_get(self, id); - *own_quantifier = (uint8_t)quantifier_add((t_quantifier)*own_quantifier, - (t_quantifier)*quantifier); + *own_quantifier = (uint8_t)quantifier_add((t_quantifier)*own_quantifier, (t_quantifier)*quantifier); } } // Join the given quantifier with the current values -static void capture_quantifiers_mul(t_capture_quantifiers *self, - t_quantifier quantifier) +static void capture_quantifiers_mul(t_capture_quantifiers *self, t_quantifier quantifier) { for (uint16_t id = 0; id < (uint16_t)self->size; id++) { uint8_t *own_quantifier = array_get(self, id); - *own_quantifier = - (uint8_t)quantifier_mul((t_quantifier)*own_quantifier, quantifier); + *own_quantifier = (uint8_t)quantifier_mul((t_quantifier)*own_quantifier, quantifier); } } // Point-wise join the quantifiers from a list of alternatives with the current // values -static void capture_quantifiers_join_all(t_capture_quantifiers *self, - t_capture_quantifiers *quantifiers) +static void capture_quantifiers_join_all(t_capture_quantifiers *self, t_capture_quantifiers *quantifiers) { if (self->size < quantifiers->size) { @@ -4748,14 +4371,12 @@ static void capture_quantifiers_join_all(t_capture_quantifiers *self, { uint8_t *quantifier = array_get(quantifiers, id); uint8_t *own_quantifier = array_get(self, id); - *own_quantifier = (uint8_t)quantifier_join( - (t_quantifier)*own_quantifier, (t_quantifier)*quantifier); + *own_quantifier = (uint8_t)quantifier_join((t_quantifier)*own_quantifier, (t_quantifier)*quantifier); } for (uint32_t id = quantifiers->size; id < self->size; id++) { uint8_t *own_quantifier = array_get(self, id); - *own_quantifier = (uint8_t)quantifier_join( - (t_quantifier)*own_quantifier, TSQuantifierZero); + *own_quantifier = (uint8_t)quantifier_join((t_quantifier)*own_quantifier, TSQuantifierZero); } } @@ -4777,29 +4398,25 @@ static void symbol_table_delete(t_symbol_table *self) array_delete(&self->slices); } -static int symbol_table_id_for_name(const t_symbol_table *self, - const char *name, uint32_t length) +static int symbol_table_id_for_name(const t_symbol_table *self, const char *name, uint32_t length) { for (unsigned i = 0; i < self->slices.size; i++) { t_slice slice = self->slices.contents[i]; - if (slice.length == length && - !strncmp(&self->characters.contents[slice.offset], name, length)) + if (slice.length == length && !strncmp(&self->characters.contents[slice.offset], name, length)) return i; } return -1; } -static const char *symbol_table_name_for_id(const t_symbol_table *self, - uint16_t id, uint32_t *length) +static const char *symbol_table_name_for_id(const t_symbol_table *self, uint16_t id, uint32_t *length) { t_slice slice = self->slices.contents[id]; *length = slice.length; return &self->characters.contents[slice.offset]; } -static uint16_t symbol_table_insert_name(t_symbol_table *self, const char *name, - uint32_t length) +static uint16_t symbol_table_insert_name(t_symbol_table *self, const char *name, uint32_t length) { int id = symbol_table_id_for_name(self, name, length); if (id >= 0) @@ -4819,8 +4436,7 @@ static uint16_t symbol_table_insert_name(t_symbol_table *self, const char *name, * t_query_step ************/ -static t_query_step query_step__new(t_symbol symbol, uint16_t depth, - bool is_immediate) +static t_query_step query_step__new(t_symbol symbol, uint16_t depth, bool is_immediate) { t_query_step step = { .symbol = symbol, @@ -4880,13 +4496,10 @@ static void query_step__remove_capture(t_query_step *self, uint16_t capture_id) * t_state_predecessor_map **********************/ -static inline t_state_predecessor_map state_predecessor_map_new( - const t_language *language) +static inline t_state_predecessor_map state_predecessor_map_new(const t_language *language) { return (t_state_predecessor_map){ - .contents = calloc((size_t)language->state_count * - (MAX_STATE_PREDECESSOR_COUNT + 1), - sizeof(t_state_id)), + .contents = calloc((size_t)language->state_count * (MAX_STATE_PREDECESSOR_COUNT + 1), sizeof(t_state_id)), }; } @@ -4895,22 +4508,18 @@ static inline void state_predecessor_map_delete(t_state_predecessor_map *self) free(self->contents); } -static inline void state_predecessor_map_add(t_state_predecessor_map *self, - t_state_id state, - t_state_id predecessor) +static inline void state_predecessor_map_add(t_state_predecessor_map *self, t_state_id state, t_state_id predecessor) { size_t index = (size_t)state * (MAX_STATE_PREDECESSOR_COUNT + 1); t_state_id *count = &self->contents[index]; - if (*count == 0 || (*count < MAX_STATE_PREDECESSOR_COUNT && - self->contents[index + *count] != predecessor)) + if (*count == 0 || (*count < MAX_STATE_PREDECESSOR_COUNT && self->contents[index + *count] != predecessor)) { (*count)++; self->contents[index + *count] = predecessor; } } -static inline const t_state_id *state_predecessor_map_get( - const t_state_predecessor_map *self, t_state_id state, unsigned *count) +static inline const t_state_id *state_predecessor_map_get(const t_state_predecessor_map *self, t_state_id state, unsigned *count) { size_t index = (size_t)state * (MAX_STATE_PREDECESSOR_COUNT + 1); *count = self->contents[index]; @@ -4939,8 +4548,7 @@ static unsigned analysis_state__recursion_depth(const t_analysis_state *self) return result; } -static inline int analysis_state__compare_position( - t_analysis_state *const *self, t_analysis_state *const *other) +static inline int analysis_state__compare_position(t_analysis_state *const *self, t_analysis_state *const *other) { for (unsigned i = 0; i < (*self)->depth; i++) { @@ -4960,8 +4568,7 @@ static inline int analysis_state__compare_position( return 0; } -static inline int analysis_state__compare(t_analysis_state *const *self, - t_analysis_state *const *other) +static inline int analysis_state__compare(t_analysis_state *const *self, t_analysis_state *const *other) { int result = analysis_state__compare_position(self, other); if (result != 0) @@ -4984,8 +4591,7 @@ static inline int analysis_state__compare(t_analysis_state *const *self, return 0; } -static inline t_analysis_state_entry *analysis_state__top( - t_analysis_state *self) +static inline t_analysis_state_entry *analysis_state__top(t_analysis_state *self) { if (self->depth == 0) { @@ -4994,8 +4600,7 @@ static inline t_analysis_state_entry *analysis_state__top( return &self->stack[self->depth - 1]; } -static inline bool analysis_state__has_supertype(t_analysis_state *self, - t_symbol symbol) +static inline bool analysis_state__has_supertype(t_analysis_state *self, t_symbol symbol) { for (unsigned i = 0; i < self->depth; i++) { @@ -5011,8 +4616,7 @@ static inline bool analysis_state__has_supertype(t_analysis_state *self, // Obtains an `t_analysis_state` instance, either by consuming one from this // set's object pool, or by cloning one from scratch. -static inline t_analysis_state *analysis_state_pool__clone_or_reuse( - t_analysis_state_set *self, t_analysis_state *borrowed_item) +static inline t_analysis_state *analysis_state_pool__clone_or_reuse(t_analysis_state_set *self, t_analysis_state *borrowed_item) { t_analysis_state *new_item; if (self->size) @@ -5033,17 +4637,13 @@ static inline t_analysis_state *analysis_state_pool__clone_or_reuse( // // The caller retains ownership of the passed-in memory. However, the clone that // is created by this function will be managed by the state set. -static inline void analysis_state_set__insert_sorted( - t_analysis_state_set *self, t_analysis_state_set *pool, - t_analysis_state *borrowed_item) +static inline void analysis_state_set__insert_sorted(t_analysis_state_set *self, t_analysis_state_set *pool, t_analysis_state *borrowed_item) { unsigned index, exists; - array_search_sorted_with(self, analysis_state__compare, &borrowed_item, - &index, &exists); + array_search_sorted_with(self, analysis_state__compare, &borrowed_item, &index, &exists); if (!exists) { - t_analysis_state *new_item = - analysis_state_pool__clone_or_reuse(pool, borrowed_item); + t_analysis_state *new_item = analysis_state_pool__clone_or_reuse(pool, borrowed_item); array_insert(self, index, new_item); } } @@ -5057,18 +4657,14 @@ static inline void analysis_state_set__insert_sorted( // // The caller retains ownership of the passed-in memory. However, the clone that // is created by this function will be managed by the state set. -static inline void analysis_state_set__push(t_analysis_state_set *self, - t_analysis_state_set *pool, - t_analysis_state *borrowed_item) +static inline void analysis_state_set__push(t_analysis_state_set *self, t_analysis_state_set *pool, t_analysis_state *borrowed_item) { - t_analysis_state *new_item = - analysis_state_pool__clone_or_reuse(pool, borrowed_item); + t_analysis_state *new_item = analysis_state_pool__clone_or_reuse(pool, borrowed_item); array_push(self, new_item); } // Removes all items from this set, returning it to an empty state. -static inline void analysis_state_set__clear(t_analysis_state_set *self, - t_analysis_state_set *pool) +static inline void analysis_state_set__clear(t_analysis_state_set *self, t_analysis_state_set *pool) { array_push_all(pool, self); array_clear(self); @@ -5117,8 +4713,7 @@ static inline void query_analysis__delete(t_query_analysis *self) * t_analysis_subgraph_node ***********************/ -static inline int analysis_subgraph_node__compare( - const t_analysis_subgraph_node *self, const t_analysis_subgraph_node *other) +static inline int analysis_subgraph_node__compare(const t_analysis_subgraph_node *self, const t_analysis_subgraph_node *other) { if (self->state < other->state) return -1; @@ -5157,9 +4752,7 @@ static inline int analysis_subgraph_node__compare( // This returns `true` if the symbol is present and `false` otherwise. // If the symbol is not present `*result` is set to the index where the // symbol should be inserted. -static inline bool ts_query__pattern_map_search(const t_parse_query *self, - t_symbol needle, - uint32_t *result) +static inline bool ts_query__pattern_map_search(const t_parse_query *self, t_symbol needle, uint32_t *result) { uint32_t base_index = self->wildcard_root_pattern_count; uint32_t size = self->pattern_map.size - base_index; @@ -5172,28 +4765,20 @@ static inline bool ts_query__pattern_map_search(const t_parse_query *self, { uint32_t half_size = size / 2; uint32_t mid_index = base_index + half_size; - t_symbol mid_symbol = - self->steps - .contents[self->pattern_map.contents[mid_index].step_index] - .symbol; + t_symbol mid_symbol = self->steps.contents[self->pattern_map.contents[mid_index].step_index].symbol; if (needle > mid_symbol) base_index = mid_index; size -= half_size; } - t_symbol symbol = - self->steps.contents[self->pattern_map.contents[base_index].step_index] - .symbol; + t_symbol symbol = self->steps.contents[self->pattern_map.contents[base_index].step_index].symbol; if (needle > symbol) { base_index++; if (base_index < self->pattern_map.size) { - symbol = - self->steps - .contents[self->pattern_map.contents[base_index].step_index] - .symbol; + symbol = self->steps.contents[self->pattern_map.contents[base_index].step_index].symbol; } } @@ -5203,9 +4788,7 @@ static inline bool ts_query__pattern_map_search(const t_parse_query *self, // Insert a new pattern's start index into the pattern map, maintaining // the pattern map's ordering invariant. -static inline void ts_query__pattern_map_insert(t_parse_query *self, - t_symbol symbol, - t_pattern_entry new_entry) +static inline void ts_query__pattern_map_insert(t_parse_query *self, t_symbol symbol, t_pattern_entry new_entry) { uint32_t index; ts_query__pattern_map_search(self, symbol, &index); @@ -5217,8 +4800,7 @@ static inline void ts_query__pattern_map_insert(t_parse_query *self, while (index < self->pattern_map.size) { t_pattern_entry *entry = &self->pattern_map.contents[index]; - if (self->steps.contents[entry->step_index].symbol == symbol && - entry->pattern_index < new_entry.pattern_index) + if (self->steps.contents[entry->step_index].symbol == symbol && entry->pattern_index < new_entry.pattern_index) { index++; } @@ -5233,9 +4815,7 @@ static inline void ts_query__pattern_map_insert(t_parse_query *self, // Walk the subgraph for this non-terminal, tracking all of the possible // sequences of progress within the pattern. -static void ts_query__perform_analysis( - t_parse_query *self, const t_analysis_subgraph_array *subgraphs, - t_query_analysis *analysis) +static void ts_query__perform_analysis(t_parse_query *self, const t_analysis_subgraph_array *subgraphs, t_query_analysis *analysis) { unsigned recursion_depth_limit = 0; unsigned prev_final_step_count = 0; @@ -5263,14 +4843,10 @@ static void ts_query__perform_analysis( printf(" %3u: step: %u, stack: [", j, state->step_index); for (unsigned k = 0; k < state->depth; k++) { - printf( - " {%s, child: %u, state: %4u", - self->language->symbol_names[state->stack[k].parent_symbol], - state->stack[k].child_index, state->stack[k].parse_state); + printf(" {%s, child: %u, state: %4u", self->language->symbol_names[state->stack[k].parent_symbol], state->stack[k].child_index, + state->stack[k].parse_state); if (state->stack[k].field_id) - printf( - ", field: %s", - self->language->field_names[state->stack[k].field_id]); + printf(", field: %s", self->language->field_names[state->stack[k].field_id]); if (state->stack[k].done) printf(", DONE"); printf("}"); @@ -5285,12 +4861,10 @@ static void ts_query__perform_analysis( // been made since the last time the depth limit was increased. if (analysis->states.size == 0) { - if (analysis->deeper_states.size > 0 && - analysis->final_step_indices.size > prev_final_step_count) + if (analysis->deeper_states.size > 0 && analysis->final_step_indices.size > prev_final_step_count) { #ifdef DEBUG_ANALYZE_QUERY - printf("Increase recursion depth limit to %u\n", - recursion_depth_limit + 1); + printf("Increase recursion depth limit to %u\n", recursion_depth_limit + 1); #endif prev_final_step_count = analysis->final_step_indices.size; @@ -5304,8 +4878,7 @@ static void ts_query__perform_analysis( break; } - analysis_state_set__clear(&analysis->next_states, - &analysis->state_pool); + analysis_state_set__clear(&analysis->next_states, &analysis->state_pool); for (unsigned j = 0; j < analysis->states.size; j++) { t_analysis_state *const state = analysis->states.contents[j]; @@ -5318,12 +4891,10 @@ static void ts_query__perform_analysis( // that have already made more progress. if (analysis->next_states.size > 0) { - int comparison = analysis_state__compare_position( - &state, array_back(&analysis->next_states)); + int comparison = analysis_state__compare_position(&state, array_back(&analysis->next_states)); if (comparison == 0) { - analysis_state_set__insert_sorted( - &analysis->next_states, &analysis->state_pool, state); + analysis_state_set__insert_sorted(&analysis->next_states, &analysis->state_pool, state); continue; } else if (comparison > 0) @@ -5333,38 +4904,28 @@ static void ts_query__perform_analysis( #endif while (j < analysis->states.size) { - analysis_state_set__push(&analysis->next_states, - &analysis->state_pool, - analysis->states.contents[j]); + analysis_state_set__push(&analysis->next_states, &analysis->state_pool, analysis->states.contents[j]); j++; } break; } } - const t_state_id parse_state = - analysis_state__top(state)->parse_state; - const t_symbol parent_symbol = - analysis_state__top(state)->parent_symbol; - const t_field_id parent_field_id = - analysis_state__top(state)->field_id; - const unsigned child_index = - analysis_state__top(state)->child_index; - const t_query_step *const step = - &self->steps.contents[state->step_index]; + const t_state_id parse_state = analysis_state__top(state)->parse_state; + const t_symbol parent_symbol = analysis_state__top(state)->parent_symbol; + const t_field_id parent_field_id = analysis_state__top(state)->field_id; + const unsigned child_index = analysis_state__top(state)->child_index; + const t_query_step *const step = &self->steps.contents[state->step_index]; unsigned subgraph_index, exists; - array_search_sorted_by(subgraphs, .symbol, parent_symbol, - &subgraph_index, &exists); + array_search_sorted_by(subgraphs, .symbol, parent_symbol, &subgraph_index, &exists); if (!exists) continue; - const t_analysis_subgraph *subgraph = - &subgraphs->contents[subgraph_index]; + const t_analysis_subgraph *subgraph = &subgraphs->contents[subgraph_index]; // Follow every possible path in the parse table, but only visit // states that are part of the subgraph for the current symbol. - t_lookahead_iterator lookahead_iterator = - ts_language_lookaheads(self->language, parse_state); + t_lookahead_iterator lookahead_iterator = ts_language_lookaheads(self->language, parse_state); while (ts_lookahead_iterator__next(&lookahead_iterator)) { t_symbol sym = lookahead_iterator.symbol; @@ -5375,9 +4936,7 @@ static void ts_query__perform_analysis( }; if (lookahead_iterator.action_count) { - const t_parse_action *action = - &lookahead_iterator - .actions[lookahead_iterator.action_count - 1]; + const t_parse_action *action = &lookahead_iterator.actions[lookahead_iterator.action_count - 1]; if (action->type == TSParseActionTypeShift) { if (!action->shift.extra) @@ -5402,37 +4961,25 @@ static void ts_query__perform_analysis( } unsigned node_index; - array_search_sorted_with(&subgraph->nodes, - analysis_subgraph_node__compare, - &successor, &node_index, &exists); + array_search_sorted_with(&subgraph->nodes, analysis_subgraph_node__compare, &successor, &node_index, &exists); while (node_index < subgraph->nodes.size) { - t_analysis_subgraph_node *node = - &subgraph->nodes.contents[node_index++]; - if (node->state != successor.state || - node->child_index != successor.child_index) + t_analysis_subgraph_node *node = &subgraph->nodes.contents[node_index++]; + if (node->state != successor.state || node->child_index != successor.child_index) break; // Use the subgraph to determine what alias and field will // eventually be applied to this child node. - t_symbol alias = ts_language_alias_at( - self->language, node->production_id, child_index); - t_symbol visible_symbol = - alias ? alias - : self->language->symbol_metadata[sym].visible - ? self->language->public_symbol_map[sym] - : 0; + t_symbol alias = ts_language_alias_at(self->language, node->production_id, child_index); + t_symbol visible_symbol = alias ? alias : self->language->symbol_metadata[sym].visible ? self->language->public_symbol_map[sym] : 0; t_field_id field_id = parent_field_id; if (!field_id) { const t_field_map_entry *field_map, *field_map_end; - ts_language_field_map(self->language, - node->production_id, &field_map, - &field_map_end); + ts_language_field_map(self->language, node->production_id, &field_map, &field_map_end); for (; field_map != field_map_end; field_map++) { - if (!field_map->inherited && - field_map->child_index == child_index) + if (!field_map->inherited && field_map->child_index == child_index) { field_id = field_map->field_id; break; @@ -5443,8 +4990,7 @@ static void ts_query__perform_analysis( // Create a new state that has advanced past this // hypothetical subtree. t_analysis_state next_state = *state; - t_analysis_state_entry *next_state_top = - analysis_state__top(&next_state); + t_analysis_state_entry *next_state_top = analysis_state__top(&next_state); next_state_top->child_index = successor.child_index; next_state_top->parse_state = successor.state; if (node->done) @@ -5458,9 +5004,7 @@ static void ts_query__perform_analysis( does_match = true; if (step->symbol == WILDCARD_SYMBOL) { - if (step->is_named && - !self->language->symbol_metadata[visible_symbol] - .named) + if (step->is_named && !self->language->symbol_metadata[visible_symbol].named) does_match = false; } else if (step->symbol != visible_symbol) @@ -5471,9 +5015,7 @@ static void ts_query__perform_analysis( { does_match = false; } - if (step->supertype_symbol && - !analysis_state__has_supertype( - state, step->supertype_symbol)) + if (step->supertype_symbol && !analysis_state__has_supertype(state, step->supertype_symbol)) does_match = false; } @@ -5485,12 +5027,10 @@ static void ts_query__perform_analysis( { if (!next_state_top->done) { - if (next_state.depth + 1 >= - MAX_ANALYSIS_STATE_DEPTH) + if (next_state.depth + 1 >= MAX_ANALYSIS_STATE_DEPTH) { #ifdef DEBUG_ANALYZE_QUERY - printf("Exceeded depth limit for state %u\n", - j); + printf("Exceeded depth limit for state %u\n", j); #endif analysis->did_abort = true; @@ -5509,12 +5049,9 @@ static void ts_query__perform_analysis( .done = false, }; - if (analysis_state__recursion_depth(&next_state) > - recursion_depth_limit) + if (analysis_state__recursion_depth(&next_state) > recursion_depth_limit) { - analysis_state_set__insert_sorted( - &analysis->deeper_states, &analysis->state_pool, - &next_state); + analysis_state_set__insert_sorted(&analysis->deeper_states, &analysis->state_pool, &next_state); continue; } } @@ -5537,10 +5074,8 @@ static void ts_query__perform_analysis( for (;;) { next_state.step_index++; - next_step = - &self->steps.contents[next_state.step_index]; - if (next_step->depth == PATTERN_DONE_MARKER || - next_step->depth <= step->depth) + next_step = &self->steps.contents[next_state.step_index]; + if (next_step->depth == PATTERN_DONE_MARKER || next_step->depth <= step->depth) break; } } @@ -5570,26 +5105,18 @@ static void ts_query__perform_analysis( // next iteration. if (!next_step->is_dead_end) { - bool did_finish_pattern = - self->steps.contents[next_state.step_index] - .depth != step->depth; + bool did_finish_pattern = self->steps.contents[next_state.step_index].depth != step->depth; if (did_finish_pattern) { - array_insert_sorted_by( - &analysis->finished_parent_symbols, , - state->root_symbol); + array_insert_sorted_by(&analysis->finished_parent_symbols, , state->root_symbol); } else if (next_state.depth == 0) { - array_insert_sorted_by( - &analysis->final_step_indices, , - next_state.step_index); + array_insert_sorted_by(&analysis->final_step_indices, , next_state.step_index); } else { - analysis_state_set__insert_sorted( - &analysis->next_states, - &analysis->state_pool, &next_state); + analysis_state_set__insert_sorted(&analysis->next_states, &analysis->state_pool, &next_state); } } @@ -5599,15 +5126,10 @@ static void ts_query__perform_analysis( // process of actually matching a pattern during query // execution, because for the purposes of query // analysis, there is no need to process repetitions. - if (does_match && - next_step->alternative_index != NONE && - next_step->alternative_index > - next_state.step_index) + if (does_match && next_step->alternative_index != NONE && next_step->alternative_index > next_state.step_index) { - next_state.step_index = - next_step->alternative_index; - next_step = - &self->steps.contents[next_state.step_index]; + next_state.step_index = next_step->alternative_index; + next_step = &self->steps.contents[next_state.step_index]; } else { @@ -5624,8 +5146,7 @@ static void ts_query__perform_analysis( } } -static bool ts_query__analyze_patterns(t_parse_query *self, - unsigned *error_offset) +static bool ts_query__analyze_patterns(t_parse_query *self, unsigned *error_offset) { Array(uint16_t) non_rooted_pattern_start_steps = array_new(); for (unsigned i = 0; i < self->pattern_map.size; i++) @@ -5662,8 +5183,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, for (unsigned j = i + 1; j < self->steps.size; j++) { t_query_step *next_step = &self->steps.contents[j]; - if (next_step->depth == PATTERN_DONE_MARKER || - next_step->depth <= step->depth) + if (next_step->depth == PATTERN_DONE_MARKER || next_step->depth <= step->depth) break; if (next_step->capture_ids[0] != NONE) { @@ -5694,13 +5214,12 @@ static bool ts_query__analyze_patterns(t_parse_query *self, t_analysis_subgraph_array subgraphs = array_new(); for (unsigned i = 0; i < parent_step_indices.size; i++) { - uint32_t parent_step_index = parent_step_indices.contents[i]; - t_symbol parent_symbol = self->steps.contents[parent_step_index].symbol; + uint32_t parent_step_index = parent_step_indices.contents[i]; + t_symbol parent_symbol = self->steps.contents[parent_step_index].symbol; t_analysis_subgraph subgraph = {.symbol = parent_symbol}; array_insert_sorted_by(&subgraphs, .symbol, subgraph); } - for (t_symbol sym = (uint16_t)self->language->token_count; - sym < (uint16_t)self->language->symbol_count; sym++) + for (t_symbol sym = (uint16_t)self->language->token_count; sym < (uint16_t)self->language->symbol_count; sym++) { if (!ts_language_symbol_metadata(self->language, sym).visible) { @@ -5715,61 +5234,44 @@ static bool ts_query__analyze_patterns(t_parse_query *self, // 2) All of the parse states where one of these symbols can end, along // with information about the node that would be created. // 3) A list of predecessor states for each state. - t_state_predecessor_map predecessor_map = - state_predecessor_map_new(self->language); - for (t_state_id state = 1; state < (uint16_t)self->language->state_count; - state++) + t_state_predecessor_map predecessor_map = state_predecessor_map_new(self->language); + for (t_state_id state = 1; state < (uint16_t)self->language->state_count; state++) { unsigned subgraph_index, exists; - t_lookahead_iterator lookahead_iterator = - ts_language_lookaheads(self->language, state); + t_lookahead_iterator lookahead_iterator = ts_language_lookaheads(self->language, state); while (ts_lookahead_iterator__next(&lookahead_iterator)) { if (lookahead_iterator.action_count) { for (unsigned i = 0; i < lookahead_iterator.action_count; i++) { - const t_parse_action *action = - &lookahead_iterator.actions[i]; + const t_parse_action *action = &lookahead_iterator.actions[i]; if (action->type == TSParseActionTypeReduce) { const t_symbol *aliases, *aliases_end; - ts_language_aliases_for_symbol(self->language, - action->reduce.symbol, - &aliases, &aliases_end); - for (const t_symbol *symbol = aliases; - symbol < aliases_end; symbol++) + ts_language_aliases_for_symbol(self->language, action->reduce.symbol, &aliases, &aliases_end); + for (const t_symbol *symbol = aliases; symbol < aliases_end; symbol++) { - array_search_sorted_by(&subgraphs, .symbol, *symbol, - &subgraph_index, &exists); + array_search_sorted_by(&subgraphs, .symbol, *symbol, &subgraph_index, &exists); if (exists) { - t_analysis_subgraph *subgraph = - &subgraphs.contents[subgraph_index]; - if (subgraph->nodes.size == 0 || - array_back(&subgraph->nodes)->state != - state) + t_analysis_subgraph *subgraph = &subgraphs.contents[subgraph_index]; + if (subgraph->nodes.size == 0 || array_back(&subgraph->nodes)->state != state) { - array_push( - &subgraph->nodes, - ((t_analysis_subgraph_node){ - .state = state, - .production_id = - action->reduce.production_id, - .child_index = - action->reduce.child_count, - .done = true, - })); + array_push(&subgraph->nodes, ((t_analysis_subgraph_node){ + .state = state, + .production_id = action->reduce.production_id, + .child_index = action->reduce.child_count, + .done = true, + })); } } } } - else if (action->type == TSParseActionTypeShift && - !action->shift.extra) + else if (action->type == TSParseActionTypeShift && !action->shift.extra) { t_state_id next_state = action->shift.state; - state_predecessor_map_add(&predecessor_map, next_state, - state); + state_predecessor_map_add(&predecessor_map, next_state, state); } } } @@ -5777,26 +5279,19 @@ static bool ts_query__analyze_patterns(t_parse_query *self, { if (lookahead_iterator.next_state != state) { - state_predecessor_map_add( - &predecessor_map, lookahead_iterator.next_state, state); + state_predecessor_map_add(&predecessor_map, lookahead_iterator.next_state, state); } if (ts_language_state_is_primary(self->language, state)) { const t_symbol *aliases, *aliases_end; - ts_language_aliases_for_symbol(self->language, - lookahead_iterator.symbol, - &aliases, &aliases_end); - for (const t_symbol *symbol = aliases; symbol < aliases_end; - symbol++) + ts_language_aliases_for_symbol(self->language, lookahead_iterator.symbol, &aliases, &aliases_end); + for (const t_symbol *symbol = aliases; symbol < aliases_end; symbol++) { - array_search_sorted_by(&subgraphs, .symbol, *symbol, - &subgraph_index, &exists); + array_search_sorted_by(&subgraphs, .symbol, *symbol, &subgraph_index, &exists); if (exists) { - t_analysis_subgraph *subgraph = - &subgraphs.contents[subgraph_index]; - if (subgraph->start_states.size == 0 || - *array_back(&subgraph->start_states) != state) + t_analysis_subgraph *subgraph = &subgraphs.contents[subgraph_index]; + if (subgraph->start_states.size == 0 || *array_back(&subgraph->start_states) != state) array_push(&subgraph->start_states, state); } } @@ -5825,8 +5320,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, if (node.child_index > 1) { unsigned predecessor_count; - const t_state_id *predecessors = state_predecessor_map_get( - &predecessor_map, node.state, &predecessor_count); + const t_state_id *predecessors = state_predecessor_map_get(&predecessor_map, node.state, &predecessor_count); for (unsigned j = 0; j < predecessor_count; j++) { t_analysis_subgraph_node predecessor_node = { @@ -5836,9 +5330,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, .done = false, }; unsigned index, exists; - array_search_sorted_with( - &subgraph->nodes, analysis_subgraph_node__compare, - &predecessor_node, &index, &exists); + array_search_sorted_with(&subgraph->nodes, analysis_subgraph_node__compare, &predecessor_node, &index, &exists); if (!exists) { array_insert(&subgraph->nodes, index, predecessor_node); @@ -5854,8 +5346,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, for (unsigned i = 0; i < subgraphs.size; i++) { t_analysis_subgraph *subgraph = &subgraphs.contents[i]; - printf(" %u, %s:\n", subgraph->symbol, - ts_language_symbol_name(self->language, subgraph->symbol)); + printf(" %u, %s:\n", subgraph->symbol, ts_language_symbol_name(self->language, subgraph->symbol)); for (unsigned j = 0; j < subgraph->start_states.size; j++) { printf(" {state: %u}\n", subgraph->start_states.contents[j]); @@ -5865,8 +5356,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, t_analysis_subgraph_node *node = &subgraph->nodes.contents[j]; printf(" {state: %u, child_index: %u, production_id: %u, done: " "%d}\n", - node->state, node->child_index, node->production_id, - node->done); + node->state, node->child_index, node->production_id, node->done); } printf("\n"); } @@ -5888,14 +5378,12 @@ static bool ts_query__analyze_patterns(t_parse_query *self, // Find the subgraph that corresponds to this pattern's root symbol. If // the pattern's root symbol is a terminal, then return an error. unsigned subgraph_index, exists; - array_search_sorted_by(&subgraphs, .symbol, parent_symbol, - &subgraph_index, &exists); + array_search_sorted_by(&subgraphs, .symbol, parent_symbol, &subgraph_index, &exists); if (!exists) { unsigned first_child_step_index = parent_step_index + 1; uint32_t j, child_exists; - array_search_sorted_by(&self->step_offsets, .step_index, - first_child_step_index, &j, &child_exists); + array_search_sorted_by(&self->step_offsets, .step_index, first_child_step_index, &j, &child_exists); assert(child_exists); *error_offset = self->step_offsets.contents[j].byte_offset; all_patterns_are_valid = false; @@ -5906,36 +5394,31 @@ static bool ts_query__analyze_patterns(t_parse_query *self, // this parent symbol can occur. t_analysis_subgraph *subgraph = &subgraphs.contents[subgraph_index]; analysis_state_set__clear(&analysis.states, &analysis.state_pool); - analysis_state_set__clear(&analysis.deeper_states, - &analysis.state_pool); + analysis_state_set__clear(&analysis.deeper_states, &analysis.state_pool); for (unsigned j = 0; j < subgraph->start_states.size; j++) { t_state_id parse_state = subgraph->start_states.contents[j]; - analysis_state_set__push( - &analysis.states, &analysis.state_pool, - &((t_analysis_state){ - .step_index = parent_step_index + 1, - .stack = - { - [0] = - { - .parse_state = parse_state, - .parent_symbol = parent_symbol, - .child_index = 0, - .field_id = 0, - .done = false, - }, - }, - .depth = 1, - .root_symbol = parent_symbol, - })); + analysis_state_set__push(&analysis.states, &analysis.state_pool, + &((t_analysis_state){ + .step_index = parent_step_index + 1, + .stack = + { + [0] = + { + .parse_state = parse_state, + .parent_symbol = parent_symbol, + .child_index = 0, + .field_id = 0, + .done = false, + }, + }, + .depth = 1, + .root_symbol = parent_symbol, + })); } #ifdef DEBUG_ANALYZE_QUERY - printf("\nWalk states for %s:\n", - ts_language_symbol_name( - self->language, - analysis.states.contents[0]->stack[0].parent_symbol)); + printf("\nWalk states for %s:\n", ts_language_symbol_name(self->language, analysis.states.contents[0]->stack[0].parent_symbol)); #endif analysis.did_abort = false; @@ -5948,8 +5431,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, for (unsigned j = parent_step_index + 1; j < self->steps.size; j++) { t_query_step *step = &self->steps.contents[j]; - if (step->depth <= parent_depth || - step->depth == PATTERN_DONE_MARKER) + if (step->depth <= parent_depth || step->depth == PATTERN_DONE_MARKER) break; if (!step->is_dead_end) { @@ -5965,12 +5447,9 @@ static bool ts_query__analyze_patterns(t_parse_query *self, if (analysis.finished_parent_symbols.size == 0) { assert(analysis.final_step_indices.size > 0); - uint16_t impossible_step_index = - *array_back(&analysis.final_step_indices); + uint16_t impossible_step_index = *array_back(&analysis.final_step_indices); uint32_t j, impossible_exists; - array_search_sorted_by(&self->step_offsets, .step_index, - impossible_step_index, &j, - &impossible_exists); + array_search_sorted_by(&self->step_offsets, .step_index, impossible_step_index, &j, &impossible_exists); if (j >= self->step_offsets.size) j = self->step_offsets.size - 1; *error_offset = self->step_offsets.contents[j].byte_offset; @@ -5983,10 +5462,9 @@ static bool ts_query__analyze_patterns(t_parse_query *self, // predecessors. for (unsigned j = 0; j < analysis.final_step_indices.size; j++) { - uint32_t final_step_index = analysis.final_step_indices.contents[j]; + uint32_t final_step_index = analysis.final_step_indices.contents[j]; t_query_step *step = &self->steps.contents[final_step_index]; - if (step->depth != PATTERN_DONE_MARKER && - step->depth > parent_depth && !step->is_dead_end) + if (step->depth != PATTERN_DONE_MARKER && step->depth > parent_depth && !step->is_dead_end) { step->parent_pattern_guaranteed = false; step->root_pattern_guaranteed = false; @@ -6003,9 +5481,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, // Gather all of the captures that are used in predicates for this // pattern. array_clear(&predicate_capture_ids); - for (unsigned start = pattern->predicate_steps.offset, - end = start + pattern->predicate_steps.length, j = start; - j < end; j++) + for (unsigned start = pattern->predicate_steps.offset, end = start + pattern->predicate_steps.length, j = start; j < end; j++) { t_query_predicate_step *step = &self->predicate_steps.contents[j]; if (step->type == TSQueryPredicateStepTypeCapture) @@ -6016,9 +5492,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, } // Find all of the steps that have these captures. - for (unsigned start = pattern->steps.offset, - end = start + pattern->steps.length, j = start; - j < end; j++) + for (unsigned start = pattern->steps.offset, end = start + pattern->steps.length, j = start; j < end; j++) { t_query_step *step = &self->steps.contents[j]; for (unsigned k = 0; k < MAX_STEP_CAPTURE_COUNT; k++) @@ -6027,8 +5501,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, if (capture_id == NONE) break; unsigned index, exists; - array_search_sorted_by(&predicate_capture_ids, , capture_id, - &index, &exists); + array_search_sorted_by(&predicate_capture_ids, , capture_id, &index, &exists); if (exists) { step->root_pattern_guaranteed = false; @@ -6059,8 +5532,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, parent_pattern_guaranteed = true; break; } - if (step->alternative_index == NONE || - step->alternative_index < i) + if (step->alternative_index == NONE || step->alternative_index < i) { break; } @@ -6071,9 +5543,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, if (!parent_pattern_guaranteed) { t_query_step *prev_step = &self->steps.contents[i - 1]; - if (!prev_step->is_dead_end && - prev_step->depth != PATTERN_DONE_MARKER && - prev_step->root_pattern_guaranteed) + if (!prev_step->is_dead_end && prev_step->depth != PATTERN_DONE_MARKER && prev_step->root_pattern_guaranteed) { prev_step->root_pattern_guaranteed = false; done = false; @@ -6093,18 +5563,11 @@ static bool ts_query__analyze_patterns(t_parse_query *self, } else { - printf( - " %u: {symbol: %s, field: %s, depth: %u, " - "parent_pattern_guaranteed: %d, root_pattern_guaranteed: %d}\n", - i, - (step->symbol == WILDCARD_SYMBOL) - ? "ANY" - : ts_language_symbol_name(self->language, step->symbol), - (step->field ? ts_language_field_name_for_id(self->language, - step->field) - : "-"), - step->depth, step->parent_pattern_guaranteed, - step->root_pattern_guaranteed); + printf(" %u: {symbol: %s, field: %s, depth: %u, " + "parent_pattern_guaranteed: %d, root_pattern_guaranteed: %d}\n", + i, (step->symbol == WILDCARD_SYMBOL) ? "ANY" : ts_language_symbol_name(self->language, step->symbol), + (step->field ? ts_language_field_name_for_id(self->language, step->field) : "-"), step->depth, step->parent_pattern_guaranteed, + step->root_pattern_guaranteed); } } #endif @@ -6115,64 +5578,56 @@ static bool ts_query__analyze_patterns(t_parse_query *self, analysis.did_abort = false; for (uint32_t i = 0; i < non_rooted_pattern_start_steps.size; i++) { - uint16_t pattern_entry_index = - non_rooted_pattern_start_steps.contents[i]; - t_pattern_entry *pattern_entry = - &self->pattern_map.contents[pattern_entry_index]; + uint16_t pattern_entry_index = non_rooted_pattern_start_steps.contents[i]; + t_pattern_entry *pattern_entry = &self->pattern_map.contents[pattern_entry_index]; analysis_state_set__clear(&analysis.states, &analysis.state_pool); - analysis_state_set__clear(&analysis.deeper_states, - &analysis.state_pool); + analysis_state_set__clear(&analysis.deeper_states, &analysis.state_pool); for (unsigned j = 0; j < subgraphs.size; j++) { t_analysis_subgraph *subgraph = &subgraphs.contents[j]; - t_symbol_metadata metadata = - ts_language_symbol_metadata(self->language, subgraph->symbol); + t_symbol_metadata metadata = ts_language_symbol_metadata(self->language, subgraph->symbol); if (metadata.visible || metadata.named) continue; for (uint32_t k = 0; k < subgraph->start_states.size; k++) { t_state_id parse_state = subgraph->start_states.contents[k]; - analysis_state_set__push( - &analysis.states, &analysis.state_pool, - &((t_analysis_state){ - .step_index = pattern_entry->step_index, - .stack = - { - [0] = - { - .parse_state = parse_state, - .parent_symbol = subgraph->symbol, - .child_index = 0, - .field_id = 0, - .done = false, - }, - }, - .root_symbol = subgraph->symbol, - .depth = 1, - })); + analysis_state_set__push(&analysis.states, &analysis.state_pool, + &((t_analysis_state){ + .step_index = pattern_entry->step_index, + .stack = + { + [0] = + { + .parse_state = parse_state, + .parent_symbol = subgraph->symbol, + .child_index = 0, + .field_id = 0, + .done = false, + }, + }, + .root_symbol = subgraph->symbol, + .depth = 1, + })); } } #ifdef DEBUG_ANALYZE_QUERY - printf("\nWalk states for rootless pattern step %u:\n", - pattern_entry->step_index); + printf("\nWalk states for rootless pattern step %u:\n", pattern_entry->step_index); #endif ts_query__perform_analysis(self, &subgraphs, &analysis); if (analysis.finished_parent_symbols.size > 0) { - self->patterns.contents[pattern_entry->pattern_index].is_non_local = - true; + self->patterns.contents[pattern_entry->pattern_index].is_non_local = true; } for (unsigned k = 0; k < analysis.finished_parent_symbols.size; k++) { t_symbol symbol = analysis.finished_parent_symbols.contents[k]; - array_insert_sorted_by(&self->repeat_symbols_with_rootless_patterns, - , symbol); + array_insert_sorted_by(&self->repeat_symbols_with_rootless_patterns, , symbol); } } @@ -6181,13 +5636,10 @@ static bool ts_query__analyze_patterns(t_parse_query *self, { printf("\nRepetition symbols with rootless patterns:\n"); printf("aborted analysis: %d\n", analysis.did_abort); - for (unsigned i = 0; - i < self->repeat_symbols_with_rootless_patterns.size; i++) + for (unsigned i = 0; i < self->repeat_symbols_with_rootless_patterns.size; i++) { - t_symbol symbol = - self->repeat_symbols_with_rootless_patterns.contents[i]; - printf(" %u, %s\n", symbol, - ts_language_symbol_name(self->language, symbol)); + t_symbol symbol = self->repeat_symbols_with_rootless_patterns.contents[i]; + printf(" %u, %s\n", symbol, ts_language_symbol_name(self->language, symbol)); } printf("\n"); } @@ -6210,10 +5662,7 @@ static bool ts_query__analyze_patterns(t_parse_query *self, return all_patterns_are_valid; } -static void ts_query__add_negated_fields(t_parse_query *self, - uint16_t step_index, - t_field_id *field_ids, - uint16_t field_count) +static void ts_query__add_negated_fields(t_parse_query *self, uint16_t step_index, t_field_id *field_ids, uint16_t field_count) { t_query_step *step = &self->steps.contents[step_index]; @@ -6247,8 +5696,7 @@ static void ts_query__add_negated_fields(t_parse_query *self, // If the existing list matches our new list so far, then advance // to the next element of the new list. - else if (match_count < field_count && - existing_field_id == field_ids[match_count] && !failed_match) + else if (match_count < field_count && existing_field_id == field_ids[match_count] && !failed_match) { match_count++; } @@ -6266,8 +5714,7 @@ static void ts_query__add_negated_fields(t_parse_query *self, array_push(&self->negated_fields, 0); } -static t_query_error ts_query__parse_string_literal(t_parse_query *self, - t_stream *stream) +static t_query_error ts_query__parse_string_literal(t_parse_query *self, t_stream *stream) { const char *string_start = stream->input; if (stream->next != '"') @@ -6297,8 +5744,7 @@ static t_query_error ts_query__parse_string_literal(t_parse_query *self, array_push(&self->string_buffer, '\0'); break; default: - array_extend(&self->string_buffer, stream->next_size, - stream->input); + array_extend(&self->string_buffer, stream->next_size, stream->input); break; } prev_position = stream->input + stream->next_size; @@ -6307,17 +5753,13 @@ static t_query_error ts_query__parse_string_literal(t_parse_query *self, { if (stream->next == '\\') { - array_extend(&self->string_buffer, - (uint32_t)(stream->input - prev_position), - prev_position); + array_extend(&self->string_buffer, (uint32_t)(stream->input - prev_position), prev_position); prev_position = stream->input + 1; is_escaped = true; } else if (stream->next == '"') { - array_extend(&self->string_buffer, - (uint32_t)(stream->input - prev_position), - prev_position); + array_extend(&self->string_buffer, (uint32_t)(stream->input - prev_position), prev_position); stream_advance(stream); return TSQueryErrorNone; } @@ -6341,21 +5783,18 @@ static t_query_error ts_query__parse_string_literal(t_parse_query *self, // a higher level of abstraction, such as the Rust/JavaScript bindings. They // can contain '@'-prefixed capture names, double-quoted strings, and bare // symbols, which also represent strings. -static t_query_error ts_query__parse_predicate(t_parse_query *self, - t_stream *stream) +static t_query_error ts_query__parse_predicate(t_parse_query *self, t_stream *stream) { if (!stream_is_ident_start(stream)) return TSQueryErrorSyntax; const char *predicate_name = stream->input; stream_scan_identifier(stream); uint32_t length = (uint32_t)(stream->input - predicate_name); - uint16_t id = symbol_table_insert_name(&self->predicate_values, - predicate_name, length); - array_push(&self->predicate_steps, - ((t_query_predicate_step){ - .type = TSQueryPredicateStepTypeString, - .value_id = id, - })); + uint16_t id = symbol_table_insert_name(&self->predicate_values, predicate_name, length); + array_push(&self->predicate_steps, ((t_query_predicate_step){ + .type = TSQueryPredicateStepTypeString, + .value_id = id, + })); stream_skip_whitespace(stream); for (;;) @@ -6364,11 +5803,10 @@ static t_query_error ts_query__parse_predicate(t_parse_query *self, { stream_advance(stream); stream_skip_whitespace(stream); - array_push(&self->predicate_steps, - ((t_query_predicate_step){ - .type = TSQueryPredicateStepTypeDone, - .value_id = 0, - })); + array_push(&self->predicate_steps, ((t_query_predicate_step){ + .type = TSQueryPredicateStepTypeDone, + .value_id = 0, + })); break; } @@ -6385,19 +5823,17 @@ static t_query_error ts_query__parse_predicate(t_parse_query *self, uint32_t capture_length = (uint32_t)(stream->input - capture_name); // Add the capture id to the first step of the pattern - int capture_id = symbol_table_id_for_name( - &self->captures, capture_name, capture_length); + int capture_id = symbol_table_id_for_name(&self->captures, capture_name, capture_length); if (capture_id == -1) { stream_reset(stream, capture_name); return TSQueryErrorCapture; } - array_push(&self->predicate_steps, - ((t_query_predicate_step){ - .type = TSQueryPredicateStepTypeCapture, - .value_id = capture_id, - })); + array_push(&self->predicate_steps, ((t_query_predicate_step){ + .type = TSQueryPredicateStepTypeCapture, + .value_id = capture_id, + })); } // Parse a string literal @@ -6406,14 +5842,11 @@ static t_query_error ts_query__parse_predicate(t_parse_query *self, t_query_error e = ts_query__parse_string_literal(self, stream); if (e) return e; - uint16_t query_id = symbol_table_insert_name( - &self->predicate_values, self->string_buffer.contents, - self->string_buffer.size); - array_push(&self->predicate_steps, - ((t_query_predicate_step){ - .type = TSQueryPredicateStepTypeString, - .value_id = query_id, - })); + uint16_t query_id = symbol_table_insert_name(&self->predicate_values, self->string_buffer.contents, self->string_buffer.size); + array_push(&self->predicate_steps, ((t_query_predicate_step){ + .type = TSQueryPredicateStepTypeString, + .value_id = query_id, + })); } // Parse a bare symbol @@ -6422,13 +5855,11 @@ static t_query_error ts_query__parse_predicate(t_parse_query *self, const char *symbol_start = stream->input; stream_scan_identifier(stream); uint32_t symbol_length = (uint32_t)(stream->input - symbol_start); - uint16_t query_id = symbol_table_insert_name( - &self->predicate_values, symbol_start, symbol_length); - array_push(&self->predicate_steps, - ((t_query_predicate_step){ - .type = TSQueryPredicateStepTypeString, - .value_id = query_id, - })); + uint16_t query_id = symbol_table_insert_name(&self->predicate_values, symbol_start, symbol_length); + array_push(&self->predicate_steps, ((t_query_predicate_step){ + .type = TSQueryPredicateStepTypeString, + .value_id = query_id, + })); } else @@ -6449,9 +5880,8 @@ static t_query_error ts_query__parse_predicate(t_parse_query *self, // The caller is responsible for passing in a dedicated t_capture_quantifiers. // These should not be shared between different calls to // ts_query__parse_pattern! -static t_query_error ts_query__parse_pattern( - t_parse_query *self, t_stream *stream, uint32_t depth, bool is_immediate, - t_capture_quantifiers *capture_quantifiers) +static t_query_error ts_query__parse_pattern(t_parse_query *self, t_stream *stream, uint32_t depth, bool is_immediate, + t_capture_quantifiers *capture_quantifiers) { if (stream->next == 0) return TSQueryErrorSyntax; @@ -6461,14 +5891,12 @@ static t_query_error ts_query__parse_pattern( const uint32_t starting_step_index = self->steps.size; // Store the byte offset of each step in the query. - if (self->step_offsets.size == 0 || - array_back(&self->step_offsets)->step_index != starting_step_index) + if (self->step_offsets.size == 0 || array_back(&self->step_offsets)->step_index != starting_step_index) { - array_push(&self->step_offsets, - ((t_step_offset){ - .step_index = starting_step_index, - .byte_offset = stream_offset(stream), - })); + array_push(&self->step_offsets, ((t_step_offset){ + .step_index = starting_step_index, + .byte_offset = stream_offset(stream), + })); } // An open bracket is the start of an alternation. @@ -6480,13 +5908,11 @@ static t_query_error ts_query__parse_pattern( // Parse each branch, and add a placeholder step in between the // branches. Array(uint32_t) branch_step_indices = array_new(); - t_capture_quantifiers branch_capture_quantifiers = - capture_quantifiers_new(); + t_capture_quantifiers branch_capture_quantifiers = capture_quantifiers_new(); for (;;) { uint32_t start_index = self->steps.size; - t_query_error e = ts_query__parse_pattern( - self, stream, depth, is_immediate, &branch_capture_quantifiers); + t_query_error e = ts_query__parse_pattern(self, stream, depth, is_immediate, &branch_capture_quantifiers); if (e == PARENT_DONE) { @@ -6506,13 +5932,11 @@ static t_query_error ts_query__parse_pattern( if (start_index == starting_step_index) { - capture_quantifiers_replace(capture_quantifiers, - &branch_capture_quantifiers); + capture_quantifiers_replace(capture_quantifiers, &branch_capture_quantifiers); } else { - capture_quantifiers_join_all(capture_quantifiers, - &branch_capture_quantifiers); + capture_quantifiers_join_all(capture_quantifiers, &branch_capture_quantifiers); } array_push(&branch_step_indices, start_index); @@ -6553,8 +5977,7 @@ static t_query_error ts_query__parse_pattern( if (stream->next == '(' || stream->next == '"' || stream->next == '[') { bool child_is_immediate = is_immediate; - t_capture_quantifiers child_capture_quantifiers = - capture_quantifiers_new(); + t_capture_quantifiers child_capture_quantifiers = capture_quantifiers_new(); for (;;) { if (stream->next == '.') @@ -6563,9 +5986,7 @@ static t_query_error ts_query__parse_pattern( stream_advance(stream); stream_skip_whitespace(stream); } - t_query_error e = ts_query__parse_pattern( - self, stream, depth, child_is_immediate, - &child_capture_quantifiers); + t_query_error e = ts_query__parse_pattern(self, stream, depth, child_is_immediate, &child_capture_quantifiers); if (e == PARENT_DONE) { if (stream->next == ')') @@ -6581,8 +6002,7 @@ static t_query_error ts_query__parse_pattern( return e; } - capture_quantifiers_add_all(capture_quantifiers, - &child_capture_quantifiers); + capture_quantifiers_add_all(capture_quantifiers, &child_capture_quantifiers); capture_quantifiers_clear(&child_capture_quantifiers); child_is_immediate = false; } @@ -6617,8 +6037,7 @@ static t_query_error ts_query__parse_pattern( else { - symbol = ts_language_symbol_for_name( - self->language, node_name, length, true); + symbol = ts_language_symbol_for_name(self->language, node_name, length, true); if (!symbol) { stream_reset(stream, node_name); @@ -6632,8 +6051,7 @@ static t_query_error ts_query__parse_pattern( } // Add a step for the node. - array_push(&self->steps, - query_step__new(symbol, depth, is_immediate)); + array_push(&self->steps, query_step__new(symbol, depth, is_immediate)); t_query_step *step = array_back(&self->steps); if (ts_language_symbol_metadata(self->language, symbol).supertype) { @@ -6659,8 +6077,7 @@ static t_query_error ts_query__parse_pattern( stream_scan_identifier(stream); uint32_t length = (uint32_t)(stream->input - node_name); - step->symbol = ts_language_symbol_for_name( - self->language, node_name, length, true); + step->symbol = ts_language_symbol_for_name(self->language, node_name, length, true); if (!step->symbol) { stream_reset(stream, node_name); @@ -6675,8 +6092,7 @@ static t_query_error ts_query__parse_pattern( uint16_t last_child_step_index = 0; uint16_t negated_field_count = 0; t_field_id negated_field_ids[MAX_NEGATED_FIELD_COUNT]; - t_capture_quantifiers child_capture_quantifiers = - capture_quantifiers_new(); + t_capture_quantifiers child_capture_quantifiers = capture_quantifiers_new(); for (;;) { // Parse a negated field assertion @@ -6694,8 +6110,7 @@ static t_query_error ts_query__parse_pattern( uint32_t length = (uint32_t)(stream->input - field_name); stream_skip_whitespace(stream); - t_field_id field_id = ts_language_field_id_for_name( - self->language, field_name, length); + t_field_id field_id = ts_language_field_id_for_name(self->language, field_name, length); if (!field_id) { stream->input = field_name; @@ -6722,9 +6137,7 @@ static t_query_error ts_query__parse_pattern( } uint16_t step_index = self->steps.size; - t_query_error e = ts_query__parse_pattern( - self, stream, depth + 1, child_is_immediate, - &child_capture_quantifiers); + t_query_error e = ts_query__parse_pattern(self, stream, depth + 1, child_is_immediate, &child_capture_quantifiers); if (e == PARENT_DONE) { if (stream->next == ')') @@ -6733,19 +6146,15 @@ static t_query_error ts_query__parse_pattern( { if (last_child_step_index == 0) { - capture_quantifiers_delete( - &child_capture_quantifiers); + capture_quantifiers_delete(&child_capture_quantifiers); return TSQueryErrorSyntax; } - self->steps.contents[last_child_step_index] - .is_last_child = true; + self->steps.contents[last_child_step_index].is_last_child = true; } if (negated_field_count) { - ts_query__add_negated_fields( - self, starting_step_index, negated_field_ids, - negated_field_count); + ts_query__add_negated_fields(self, starting_step_index, negated_field_ids, negated_field_count); } stream_advance(stream); @@ -6759,8 +6168,7 @@ static t_query_error ts_query__parse_pattern( return e; } - capture_quantifiers_add_all(capture_quantifiers, - &child_capture_quantifiers); + capture_quantifiers_add_all(capture_quantifiers, &child_capture_quantifiers); last_child_step_index = step_index; child_is_immediate = false; @@ -6777,8 +6185,7 @@ static t_query_error ts_query__parse_pattern( stream_skip_whitespace(stream); // Add a step that matches any kind of node - array_push(&self->steps, - query_step__new(WILDCARD_SYMBOL, depth, is_immediate)); + array_push(&self->steps, query_step__new(WILDCARD_SYMBOL, depth, is_immediate)); } // Parse a double-quoted anonymous leaf node expression @@ -6790,9 +6197,7 @@ static t_query_error ts_query__parse_pattern( return e; // Add a step for the node - t_symbol symbol = ts_language_symbol_for_name( - self->language, self->string_buffer.contents, - self->string_buffer.size, false); + t_symbol symbol = ts_language_symbol_for_name(self->language, self->string_buffer.contents, self->string_buffer.size, false); if (!symbol) { stream_reset(stream, string_start + 1); @@ -6819,10 +6224,8 @@ static t_query_error ts_query__parse_pattern( stream_skip_whitespace(stream); // Parse the pattern - t_capture_quantifiers field_capture_quantifiers = - capture_quantifiers_new(); - t_query_error e = ts_query__parse_pattern( - self, stream, depth, is_immediate, &field_capture_quantifiers); + t_capture_quantifiers field_capture_quantifiers = capture_quantifiers_new(); + t_query_error e = ts_query__parse_pattern(self, stream, depth, is_immediate, &field_capture_quantifiers); if (e) { capture_quantifiers_delete(&field_capture_quantifiers); @@ -6832,8 +6235,7 @@ static t_query_error ts_query__parse_pattern( } // Add the field name to the first step of the pattern - t_field_id field_id = - ts_language_field_id_for_name(self->language, field_name, length); + t_field_id field_id = ts_language_field_id_for_name(self->language, field_name, length); if (!field_id) { stream->input = field_name; @@ -6845,9 +6247,7 @@ static t_query_error ts_query__parse_pattern( for (;;) { step->field = field_id; - if (step->alternative_index != NONE && - step->alternative_index > step_index && - step->alternative_index < self->steps.size) + if (step->alternative_index != NONE && step->alternative_index > step_index && step->alternative_index < self->steps.size) { step_index = step->alternative_index; step = &self->steps.contents[step_index]; @@ -6858,8 +6258,7 @@ static t_query_error ts_query__parse_pattern( } } - capture_quantifiers_add_all(capture_quantifiers, - &field_capture_quantifiers); + capture_quantifiers_add_all(capture_quantifiers, &field_capture_quantifiers); capture_quantifiers_delete(&field_capture_quantifiers); } @@ -6882,8 +6281,7 @@ static t_query_error ts_query__parse_pattern( stream_advance(stream); stream_skip_whitespace(stream); - t_query_step repeat_step = - query_step__new(WILDCARD_SYMBOL, depth, false); + t_query_step repeat_step = query_step__new(WILDCARD_SYMBOL, depth, false); repeat_step.alternative_index = starting_step_index; repeat_step.is_pass_through = true; repeat_step.alternative_is_immediate = true; @@ -6898,8 +6296,7 @@ static t_query_error ts_query__parse_pattern( stream_advance(stream); stream_skip_whitespace(stream); - t_query_step repeat_step = - query_step__new(WILDCARD_SYMBOL, depth, false); + t_query_step repeat_step = query_step__new(WILDCARD_SYMBOL, depth, false); repeat_step.alternative_index = starting_step_index; repeat_step.is_pass_through = true; repeat_step.alternative_is_immediate = true; @@ -6909,8 +6306,7 @@ static t_query_error ts_query__parse_pattern( // `repeat_step` or beyond. Note that having just been pushed, // `repeat_step` occupies slot `self->steps.size - 1`. t_query_step *step = &self->steps.contents[starting_step_index]; - while (step->alternative_index != NONE && - step->alternative_index < self->steps.size - 1) + while (step->alternative_index != NONE && step->alternative_index < self->steps.size - 1) { step = &self->steps.contents[step->alternative_index]; } @@ -6926,8 +6322,7 @@ static t_query_error ts_query__parse_pattern( stream_skip_whitespace(stream); t_query_step *step = &self->steps.contents[starting_step_index]; - while (step->alternative_index != NONE && - step->alternative_index < self->steps.size) + while (step->alternative_index != NONE && step->alternative_index < self->steps.size) { step = &self->steps.contents[step->alternative_index]; } @@ -6946,21 +6341,17 @@ static t_query_error ts_query__parse_pattern( stream_skip_whitespace(stream); // Add the capture id to the first step of the pattern - uint16_t capture_id = - symbol_table_insert_name(&self->captures, capture_name, length); + uint16_t capture_id = symbol_table_insert_name(&self->captures, capture_name, length); // Add the capture quantifier - capture_quantifiers_add_for_id(capture_quantifiers, capture_id, - TSQuantifierOne); + capture_quantifiers_add_for_id(capture_quantifiers, capture_id, TSQuantifierOne); uint32_t step_index = starting_step_index; for (;;) { t_query_step *step = &self->steps.contents[step_index]; query_step__add_capture(step, capture_id); - if (step->alternative_index != NONE && - step->alternative_index > step_index && - step->alternative_index < self->steps.size) + if (step->alternative_index != NONE && step->alternative_index > step_index && step->alternative_index < self->steps.size) { step_index = step->alternative_index; } @@ -6983,9 +6374,7 @@ static t_query_error ts_query__parse_pattern( return 0; } -t_parse_query *ts_query_new(const t_language *language, const char *source, - uint32_t source_len, uint32_t *error_offset, - t_query_error *error_type) +t_parse_query *ts_query_new(const t_language *language, const char *source, uint32_t source_len, uint32_t *error_offset, t_query_error *error_type) { t_parse_query *self = malloc(sizeof(t_parse_query)); @@ -7015,24 +6404,19 @@ t_parse_query *ts_query_new(const t_language *language, const char *source, uint32_t pattern_index = self->patterns.size; uint32_t start_step_index = self->steps.size; uint32_t start_predicate_step_index = self->predicate_steps.size; - array_push(&self->patterns, - ((t_query_pattern){ - .steps = (t_slice){.offset = start_step_index}, - .predicate_steps = - (t_slice){.offset = start_predicate_step_index}, - .start_byte = stream_offset(&stream), - .is_non_local = false, - })); + array_push(&self->patterns, ((t_query_pattern){ + .steps = (t_slice){.offset = start_step_index}, + .predicate_steps = (t_slice){.offset = start_predicate_step_index}, + .start_byte = stream_offset(&stream), + .is_non_local = false, + })); t_capture_quantifiers capture_quantifiers = capture_quantifiers_new(); - *error_type = ts_query__parse_pattern(self, &stream, 0, false, - &capture_quantifiers); - array_push(&self->steps, - query_step__new(0, PATTERN_DONE_MARKER, false)); + *error_type = ts_query__parse_pattern(self, &stream, 0, false, &capture_quantifiers); + array_push(&self->steps, query_step__new(0, PATTERN_DONE_MARKER, false)); t_query_pattern *pattern = array_back(&self->patterns); pattern->steps.length = self->steps.size - start_step_index; - pattern->predicate_steps.length = - self->predicate_steps.size - start_predicate_step_index; + pattern->predicate_steps.length = self->predicate_steps.size - start_predicate_step_index; // If any pattern could not be parsed, then report the error information // and terminate. @@ -7060,13 +6444,10 @@ t_parse_query *ts_query_new(const t_language *language, const char *source, // skipping matching the wildcard. Later, during the matching // process, the query cursor will check that there is a parent node, // and capture it if necessary. - if (step->symbol == WILDCARD_SYMBOL && step->depth == 0 && - !step->field) + if (step->symbol == WILDCARD_SYMBOL && step->depth == 0 && !step->field) { - t_query_step *second_step = - &self->steps.contents[start_step_index + 1]; - if (second_step->symbol != WILDCARD_SYMBOL && - second_step->depth == 1) + t_query_step *second_step = &self->steps.contents[start_step_index + 1]; + if (second_step->symbol != WILDCARD_SYMBOL && second_step->depth == 1) { wildcard_root_alternative_index = step->alternative_index; start_step_index += 1; @@ -7080,8 +6461,7 @@ t_parse_query *ts_query_new(const t_language *language, const char *source, // immediately within an error node. uint32_t start_depth = step->depth; bool is_rooted = start_depth == 0; - for (uint32_t step_index = start_step_index + 1; - step_index < self->steps.size; step_index++) + for (uint32_t step_index = start_step_index + 1; step_index < self->steps.size; step_index++) { t_query_step *child_step = &self->steps.contents[step_index]; if (child_step->is_dead_end) @@ -7093,11 +6473,8 @@ t_parse_query *ts_query_new(const t_language *language, const char *source, } } - ts_query__pattern_map_insert( - self, step->symbol, - (t_pattern_entry){.step_index = start_step_index, - .pattern_index = pattern_index, - .is_rooted = is_rooted}); + ts_query__pattern_map_insert(self, step->symbol, + (t_pattern_entry){.step_index = start_step_index, .pattern_index = pattern_index, .is_rooted = is_rooted}); if (step->symbol == WILDCARD_SYMBOL) { self->wildcard_root_pattern_count++; @@ -7147,11 +6524,9 @@ void ts_query_delete(t_parse_query *self) ts_language_delete(self->language); symbol_table_delete(&self->captures); symbol_table_delete(&self->predicate_values); - for (uint32_t index = 0; index < self->capture_quantifiers.size; - index++) + for (uint32_t index = 0; index < self->capture_quantifiers.size; index++) { - t_capture_quantifiers *capture_quantifiers = - array_get(&self->capture_quantifiers, index); + t_capture_quantifiers *capture_quantifiers = array_get(&self->capture_quantifiers, index); capture_quantifiers_delete(capture_quantifiers); } array_delete(&self->capture_quantifiers); @@ -7174,29 +6549,23 @@ uint32_t ts_query_string_count(const t_parse_query *self) return self->predicate_values.slices.size; } -const char *ts_query_capture_name_for_id(const t_parse_query *self, - uint32_t index, uint32_t *length) +const char *ts_query_capture_name_for_id(const t_parse_query *self, uint32_t index, uint32_t *length) { return symbol_table_name_for_id(&self->captures, index, length); } -t_quantifier ts_query_capture_quantifier_for_id(const t_parse_query *self, - uint32_t pattern_index, - uint32_t capture_index) +t_quantifier ts_query_capture_quantifier_for_id(const t_parse_query *self, uint32_t pattern_index, uint32_t capture_index) { - t_capture_quantifiers *capture_quantifiers = - array_get(&self->capture_quantifiers, pattern_index); + t_capture_quantifiers *capture_quantifiers = array_get(&self->capture_quantifiers, pattern_index); return capture_quantifier_for_id(capture_quantifiers, capture_index); } -const char *ts_query_string_value_for_id(const t_parse_query *self, - uint32_t index, uint32_t *length) +const char *ts_query_string_value_for_id(const t_parse_query *self, uint32_t index, uint32_t *length) { return symbol_table_name_for_id(&self->predicate_values, index, length); } -const t_query_predicate_step *ts_query_predicates_for_pattern( - const t_parse_query *self, uint32_t pattern_index, uint32_t *step_count) +const t_query_predicate_step *ts_query_predicates_for_pattern(const t_parse_query *self, uint32_t pattern_index, uint32_t *step_count) { t_slice slice = self->patterns.contents[pattern_index].predicate_steps; *step_count = slice.length; @@ -7207,14 +6576,12 @@ const t_query_predicate_step *ts_query_predicates_for_pattern( return &self->predicate_steps.contents[slice.offset]; } -uint32_t ts_query_start_byte_for_pattern(const t_parse_query *self, - uint32_t pattern_index) +uint32_t ts_query_start_byte_for_pattern(const t_parse_query *self, uint32_t pattern_index) { return self->patterns.contents[pattern_index].start_byte; } -bool ts_query_is_pattern_rooted(const t_parse_query *self, - uint32_t pattern_index) +bool ts_query_is_pattern_rooted(const t_parse_query *self, uint32_t pattern_index) { for (unsigned i = 0; i < self->pattern_map.size; i++) { @@ -7228,8 +6595,7 @@ bool ts_query_is_pattern_rooted(const t_parse_query *self, return true; } -bool ts_query_is_pattern_non_local(const t_parse_query *self, - uint32_t pattern_index) +bool ts_query_is_pattern_non_local(const t_parse_query *self, uint32_t pattern_index) { if (pattern_index < self->patterns.size) { @@ -7241,8 +6607,7 @@ bool ts_query_is_pattern_non_local(const t_parse_query *self, } } -bool ts_query_is_pattern_guaranteed_at_step(const t_parse_query *self, - uint32_t byte_offset) +bool ts_query_is_pattern_guaranteed_at_step(const t_parse_query *self, uint32_t byte_offset) { uint32_t step_index = UINT32_MAX; for (unsigned i = 0; i < self->step_offsets.size; i++) @@ -7267,13 +6632,10 @@ bool ts_query__step_is_fallible(const t_parse_query *self, uint16_t step_index) assert((uint32_t)step_index + 1 < self->steps.size); t_query_step *step = &self->steps.contents[step_index]; t_query_step *next_step = &self->steps.contents[step_index + 1]; - return (next_step->depth != PATTERN_DONE_MARKER && - next_step->depth > step->depth && - !next_step->parent_pattern_guaranteed); + return (next_step->depth != PATTERN_DONE_MARKER && next_step->depth > step->depth && !next_step->parent_pattern_guaranteed); } -void ts_query_disable_capture(t_parse_query *self, const char *name, - uint32_t length) +void ts_query_disable_capture(t_parse_query *self, const char *name, uint32_t length) { // Remove capture information for any pattern step that previously // captured with the given name. @@ -7358,8 +6720,7 @@ void ts_query_cursor_set_match_limit(t_query_cursor *self, uint32_t limit) # define LOG(...) #endif -void ts_query_cursor_exec(t_query_cursor *self, const t_parse_query *query, - t_parse_node node) +void ts_query_cursor_exec(t_query_cursor *self, const t_parse_query *query, t_parse_node node) { if (query) { @@ -7413,8 +6774,7 @@ void ts_query_cursor_exec(t_query_cursor *self, const t_parse_query *query, self->did_exceed_match_limit = false; } -void ts_query_cursor_set_byte_range(t_query_cursor *self, uint32_t start_byte, - uint32_t end_byte) +void ts_query_cursor_set_byte_range(t_query_cursor *self, uint32_t start_byte, uint32_t end_byte) { if (end_byte == 0) { @@ -7424,8 +6784,7 @@ void ts_query_cursor_set_byte_range(t_query_cursor *self, uint32_t start_byte, self->end_byte = end_byte; } -void ts_query_cursor_set_point_range(t_query_cursor *self, t_point start_point, - t_point end_point) +void ts_query_cursor_set_point_range(t_query_cursor *self, t_point start_point, t_point end_point) { if (end_point.row == 0 && end_point.column == 0) { @@ -7437,9 +6796,8 @@ void ts_query_cursor_set_point_range(t_query_cursor *self, t_point start_point, // Search through all of the in-progress states, and find the captured // node that occurs earliest in the document. -static bool ts_query_cursor__first_in_progress_capture( - t_query_cursor *self, uint32_t *state_index, uint32_t *byte_offset, - uint32_t *pattern_index, bool *root_pattern_guaranteed) +static bool ts_query_cursor__first_in_progress_capture(t_query_cursor *self, uint32_t *state_index, uint32_t *byte_offset, uint32_t *pattern_index, + bool *root_pattern_guaranteed) { bool result = false; *state_index = UINT32_MAX; @@ -7451,17 +6809,14 @@ static bool ts_query_cursor__first_in_progress_capture( if (state->dead) continue; - const t_capture_list *captures = capture_list_pool_get( - &self->capture_list_pool, state->capture_list_id); + const t_capture_list *captures = capture_list_pool_get(&self->capture_list_pool, state->capture_list_id); if (state->consumed_capture_count >= captures->size) { continue; } - t_parse_node node = - captures->contents[state->consumed_capture_count].node; - if (ts_node_end_byte(node) <= self->start_byte || - point_lte(ts_node_end_point(node), self->start_point)) + t_parse_node node = captures->contents[state->consumed_capture_count].node; + if (ts_node_end_byte(node) <= self->start_byte || point_lte(ts_node_end_point(node), self->start_point)) { state->consumed_capture_count++; i--; @@ -7469,12 +6824,9 @@ static bool ts_query_cursor__first_in_progress_capture( } uint32_t node_start_byte = ts_node_start_byte(node); - if (!result || node_start_byte < *byte_offset || - (node_start_byte == *byte_offset && - state->pattern_index < *pattern_index)) + if (!result || node_start_byte < *byte_offset || (node_start_byte == *byte_offset && state->pattern_index < *pattern_index)) { - t_query_step *step = - &self->query->steps.contents[state->step_index]; + t_query_step *step = &self->query->steps.contents[state->step_index]; if (root_pattern_guaranteed) { *root_pattern_guaranteed = step->root_pattern_guaranteed; @@ -7515,16 +6867,11 @@ int ts_query_cursor__compare_nodes(t_parse_node left, t_parse_node right) } // Determine if either state contains a superset of the other state's captures. -void ts_query_cursor__compare_captures(t_query_cursor *self, - t_query_state *left_state, - t_query_state *right_state, - bool *left_contains_right, - bool *right_contains_left) +void ts_query_cursor__compare_captures(t_query_cursor *self, t_query_state *left_state, t_query_state *right_state, bool *left_contains_right, + bool *right_contains_left) { - const t_capture_list *left_captures = capture_list_pool_get( - &self->capture_list_pool, left_state->capture_list_id); - const t_capture_list *right_captures = capture_list_pool_get( - &self->capture_list_pool, right_state->capture_list_id); + const t_capture_list *left_captures = capture_list_pool_get(&self->capture_list_pool, left_state->capture_list_id); + const t_capture_list *right_captures = capture_list_pool_get(&self->capture_list_pool, right_state->capture_list_id); *left_contains_right = true; *right_contains_left = true; unsigned i = 0, j = 0; @@ -7536,16 +6883,14 @@ void ts_query_cursor__compare_captures(t_query_cursor *self, { t_query_capture *left = &left_captures->contents[i]; t_query_capture *right = &right_captures->contents[j]; - if (left->node.id == right->node.id && - left->index == right->index) + if (left->node.id == right->node.id && left->index == right->index) { i++; j++; } else { - switch ( - ts_query_cursor__compare_nodes(left->node, right->node)) + switch (ts_query_cursor__compare_nodes(left->node, right->node)) { case -1: *right_contains_left = false; @@ -7581,8 +6926,7 @@ void ts_query_cursor__compare_captures(t_query_cursor *self, } } -static void ts_query_cursor__add_state(t_query_cursor *self, - const t_pattern_entry *pattern) +static void ts_query_cursor__add_state(t_query_cursor *self, const t_pattern_entry *pattern) { t_query_step *step = &self->query->steps.contents[pattern->step_index]; uint32_t start_depth = self->depth - step->depth; @@ -7618,8 +6962,7 @@ static void ts_query_cursor__add_state(t_query_cursor *self, { // Avoid inserting an unnecessary duplicate state, which would be // immediately pruned by the longest-match criteria. - if (prev_state->pattern_index == pattern->pattern_index && - prev_state->step_index == pattern->step_index) + if (prev_state->pattern_index == pattern->pattern_index && prev_state->step_index == pattern->step_index) return; if (prev_state->pattern_index <= pattern->pattern_index) break; @@ -7627,8 +6970,7 @@ static void ts_query_cursor__add_state(t_query_cursor *self, index--; } - LOG(" start state. pattern:%u, step:%u\n", pattern->pattern_index, - pattern->step_index); + LOG(" start state. pattern:%u, step:%u\n", pattern->pattern_index, pattern->step_index); array_insert(&self->states, index, ((t_query_state){ .id = UINT32_MAX, @@ -7647,14 +6989,11 @@ static void ts_query_cursor__add_state(t_query_cursor *self, // Acquire a capture list for this state. If there are no capture lists left in // the pool, this will steal the capture list from another existing state, and // mark that other state as 'dead'. -static t_capture_list *ts_query_cursor__prepare_to_capture( - t_query_cursor *self, t_query_state *state, - unsigned state_index_to_preserve) +static t_capture_list *ts_query_cursor__prepare_to_capture(t_query_cursor *self, t_query_state *state, unsigned state_index_to_preserve) { if (state->capture_list_id == NONE) { - state->capture_list_id = - capture_list_pool_acquire(&self->capture_list_pool); + state->capture_list_id = capture_list_pool_acquire(&self->capture_list_pool); // If there are no capture lists left in the pool, then terminate // whichever state has captured the earliest node in the document, and @@ -7663,19 +7002,14 @@ static t_capture_list *ts_query_cursor__prepare_to_capture( { self->did_exceed_match_limit = true; uint32_t state_index, byte_offset, pattern_index; - if (ts_query_cursor__first_in_progress_capture( - self, &state_index, &byte_offset, &pattern_index, NULL) && - state_index != state_index_to_preserve) + if (ts_query_cursor__first_in_progress_capture(self, &state_index, &byte_offset, &pattern_index, NULL) && state_index != state_index_to_preserve) { - LOG(" abandon state. index:%u, pattern:%u, offset:%u.\n", - state_index, pattern_index, byte_offset); - t_query_state *other_state = - &self->states.contents[state_index]; + LOG(" abandon state. index:%u, pattern:%u, offset:%u.\n", state_index, pattern_index, byte_offset); + t_query_state *other_state = &self->states.contents[state_index]; state->capture_list_id = other_state->capture_list_id; other_state->capture_list_id = NONE; other_state->dead = true; - t_capture_list *list = capture_list_pool_get_mut( - &self->capture_list_pool, state->capture_list_id); + t_capture_list *list = capture_list_pool_get_mut(&self->capture_list_pool, state->capture_list_id); array_clear(list); return list; } @@ -7686,17 +7020,14 @@ static t_capture_list *ts_query_cursor__prepare_to_capture( } } } - return capture_list_pool_get_mut(&self->capture_list_pool, - state->capture_list_id); + return capture_list_pool_get_mut(&self->capture_list_pool, state->capture_list_id); } -static void ts_query_cursor__capture(t_query_cursor *self, t_query_state *state, - t_query_step *step, t_parse_node node) +static void ts_query_cursor__capture(t_query_cursor *self, t_query_state *state, t_query_step *step, t_parse_node node) { if (state->dead) return; - t_capture_list *capture_list = - ts_query_cursor__prepare_to_capture(self, state, UINT32_MAX); + t_capture_list *capture_list = ts_query_cursor__prepare_to_capture(self, state, UINT32_MAX); if (!capture_list) { state->dead = true; @@ -7711,31 +7042,27 @@ static void ts_query_cursor__capture(t_query_cursor *self, t_query_state *state, array_push(capture_list, ((t_query_capture){node, capture_id})); LOG(" capture node. type:%s, pattern:%u, capture_id:%u, " "capture_count:%u\n", - ts_node_type(node), state->pattern_index, capture_id, - capture_list->size); + ts_node_type(node), state->pattern_index, capture_id, capture_list->size); } } // Duplicate the given state and insert the newly-created state immediately // after the given state in the `states` array. Ensures that the given state // reference is still valid, even if the states array is reallocated. -static t_query_state *ts_query_cursor__copy_state(t_query_cursor *self, - t_query_state **state_ref) +static t_query_state *ts_query_cursor__copy_state(t_query_cursor *self, t_query_state **state_ref) { const t_query_state *state = *state_ref; - uint32_t state_index = (uint32_t)(state - self->states.contents); - t_query_state copy = *state; + uint32_t state_index = (uint32_t)(state - self->states.contents); + t_query_state copy = *state; copy.capture_list_id = NONE; // If the state has captures, copy its capture list. if (state->capture_list_id != NONE) { - t_capture_list *new_captures = - ts_query_cursor__prepare_to_capture(self, ©, state_index); + t_capture_list *new_captures = ts_query_cursor__prepare_to_capture(self, ©, state_index); if (!new_captures) return NULL; - const t_capture_list *old_captures = capture_list_pool_get( - &self->capture_list_pool, state->capture_list_id); + const t_capture_list *old_captures = capture_list_pool_get(&self->capture_list_pool, state->capture_list_id); array_push_all(new_captures, old_captures); } @@ -7744,8 +7071,7 @@ static t_query_state *ts_query_cursor__copy_state(t_query_cursor *self, return &self->states.contents[state_index + 1]; } -static inline bool ts_query_cursor__should_descend(t_query_cursor *self, - bool node_intersects_range) +static inline bool ts_query_cursor__should_descend(t_query_cursor *self, bool node_intersects_range) { if (node_intersects_range && self->depth < self->max_start_depth) @@ -7759,10 +7085,8 @@ static inline bool ts_query_cursor__should_descend(t_query_cursor *self, { t_query_state *state = &self->states.contents[i]; ; - t_query_step *next_step = - &self->query->steps.contents[state->step_index]; - if (next_step->depth != PATTERN_DONE_MARKER && - state->start_depth + next_step->depth > self->depth) + t_query_step *next_step = &self->query->steps.contents[state->step_index]; + if (next_step->depth != PATTERN_DONE_MARKER && state->start_depth + next_step->depth > self->depth) { return true; } @@ -7788,9 +7112,7 @@ static inline bool ts_query_cursor__should_descend(t_query_cursor *self, { bool exists; uint32_t index; - array_search_sorted_by( - &self->query->repeat_symbols_with_rootless_patterns, , - ts_subtree_symbol(subtree), &index, &exists); + array_search_sorted_by(&self->query->repeat_symbols_with_rootless_patterns, , ts_subtree_symbol(subtree), &index, &exists); return exists; } @@ -7804,8 +7126,7 @@ static inline bool ts_query_cursor__should_descend(t_query_cursor *self, // If one or more patterns finish, return `true` and store their states in the // `finished_states` array. Multiple patterns can finish on the same node. If // there are no more matches, return `false`. -static inline bool ts_query_cursor__advance(t_query_cursor *self, - bool stop_on_definite_step) +static inline bool ts_query_cursor__advance(t_query_cursor *self, bool stop_on_definite_step) { bool did_match = false; for (;;) @@ -7815,8 +7136,7 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, while (self->states.size > 0) { t_query_state state = array_pop(&self->states); - capture_list_pool_release(&self->capture_list_pool, - state.capture_list_id); + capture_list_pool_release(&self->capture_list_pool, state.capture_list_id); } } @@ -7828,8 +7148,7 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, { if (self->on_visible_node) { - LOG("leave node. depth:%u, type:%s\n", self->depth, - ts_node_type(ts_tree_cursor_current_node(&self->cursor))); + LOG("leave node. depth:%u, type:%s\n", self->depth, ts_node_type(ts_tree_cursor_current_node(&self->cursor))); // After leaving a node, remove any states that cannot make // further progress. @@ -7837,14 +7156,12 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, for (unsigned i = 0, n = self->states.size; i < n; i++) { t_query_state *state = &self->states.contents[i]; - t_query_step *step = - &self->query->steps.contents[state->step_index]; + t_query_step *step = &self->query->steps.contents[state->step_index]; // If a state completed its pattern inside of this node, but // was deferred from finishing in order to search for longer // matches, mark it as finished. - if (step->depth == PATTERN_DONE_MARKER && - (state->start_depth > self->depth || self->depth == 0)) + if (step->depth == PATTERN_DONE_MARKER && (state->start_depth > self->depth || self->depth == 0)) { LOG(" finish pattern %u\n", state->pattern_index); array_push(&self->finished_states, *state); @@ -7854,15 +7171,10 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, // If a state needed to match something within this node, // then remove that state as it has failed to match. - else if (step->depth != PATTERN_DONE_MARKER && - (uint32_t)state->start_depth + - (uint32_t)step->depth > - self->depth) + else if (step->depth != PATTERN_DONE_MARKER && (uint32_t)state->start_depth + (uint32_t)step->depth > self->depth) { - LOG(" failed to match. pattern:%u, step:%u\n", - state->pattern_index, state->step_index); - capture_list_pool_release(&self->capture_list_pool, - state->capture_list_id); + LOG(" failed to match. pattern:%u, step:%u\n", state->pattern_index, state->step_index); + capture_list_pool_release(&self->capture_list_pool, state->capture_list_id); deleted_count++; } @@ -7911,28 +7223,17 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, { // Get the properties of the current node. t_parse_node node = ts_tree_cursor_current_node(&self->cursor); - t_parse_node parent_node = - ts_tree_cursor_parent_node(&self->cursor); - bool parent_precedes_range = - !ts_node_is_null(parent_node) && - (ts_node_end_byte(parent_node) <= self->start_byte || - point_lte(ts_node_end_point(parent_node), self->start_point)); - bool parent_follows_range = - !ts_node_is_null(parent_node) && - (ts_node_start_byte(parent_node) >= self->end_byte || - point_gte(ts_node_start_point(parent_node), self->end_point)); + t_parse_node parent_node = ts_tree_cursor_parent_node(&self->cursor); + bool parent_precedes_range = !ts_node_is_null(parent_node) && + (ts_node_end_byte(parent_node) <= self->start_byte || point_lte(ts_node_end_point(parent_node), self->start_point)); + bool parent_follows_range = !ts_node_is_null(parent_node) && + (ts_node_start_byte(parent_node) >= self->end_byte || point_gte(ts_node_start_point(parent_node), self->end_point)); bool node_precedes_range = - parent_precedes_range || - (ts_node_end_byte(node) <= self->start_byte || - point_lte(ts_node_end_point(node), self->start_point)); + parent_precedes_range || (ts_node_end_byte(node) <= self->start_byte || point_lte(ts_node_end_point(node), self->start_point)); bool node_follows_range = - parent_follows_range || - (ts_node_start_byte(node) >= self->end_byte || - point_gte(ts_node_start_point(node), self->end_point)); - bool parent_intersects_range = - !parent_precedes_range && !parent_follows_range; - bool node_intersects_range = - !node_precedes_range && !node_follows_range; + parent_follows_range || (ts_node_start_byte(node) >= self->end_byte || point_gte(ts_node_start_point(node), self->end_point)); + bool parent_intersects_range = !parent_precedes_range && !parent_follows_range; + bool node_intersects_range = !node_precedes_range && !node_follows_range; if (self->on_visible_node) { @@ -7944,44 +7245,30 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, t_field_id field_id = 0; t_symbol supertypes[8] = {0}; unsigned supertype_count = 8; - ts_tree_cursor_current_status( - &self->cursor, &field_id, &has_later_siblings, - &has_later_named_siblings, - &can_have_later_siblings_with_this_field, supertypes, - &supertype_count); + ts_tree_cursor_current_status(&self->cursor, &field_id, &has_later_siblings, &has_later_named_siblings, + &can_have_later_siblings_with_this_field, supertypes, &supertype_count); LOG("enter node. depth:%u, type:%s, field:%s, row:%u " "state_count:%u, finished_state_count:%u\n", - self->depth, ts_node_type(node), - ts_language_field_name_for_id(self->query->language, - field_id), - ts_node_start_point(node).row, self->states.size, - self->finished_states.size); + self->depth, ts_node_type(node), ts_language_field_name_for_id(self->query->language, field_id), ts_node_start_point(node).row, + self->states.size, self->finished_states.size); bool node_is_error = symbol == ts_builtin_sym_error; - bool parent_is_error = - !ts_node_is_null(parent_node) && - ts_node_symbol(parent_node) == ts_builtin_sym_error; + bool parent_is_error = !ts_node_is_null(parent_node) && ts_node_symbol(parent_node) == ts_builtin_sym_error; // Add new states for any patterns whose root node is a // wildcard. if (!node_is_error) { - for (unsigned i = 0; - i < self->query->wildcard_root_pattern_count; i++) + for (unsigned i = 0; i < self->query->wildcard_root_pattern_count; i++) { - t_pattern_entry *pattern = - &self->query->pattern_map.contents[i]; + t_pattern_entry *pattern = &self->query->pattern_map.contents[i]; // If this node matches the first step of the pattern, // then add a new state at the start of this pattern. - t_query_step *step = - &self->query->steps.contents[pattern->step_index]; - uint32_t start_depth = self->depth - step->depth; - if ((pattern->is_rooted ? node_intersects_range - : (parent_intersects_range && - !parent_is_error)) && - (!step->field || field_id == step->field) && - (!step->supertype_symbol || supertype_count > 0) && + t_query_step *step = &self->query->steps.contents[pattern->step_index]; + uint32_t start_depth = self->depth - step->depth; + if ((pattern->is_rooted ? node_intersects_range : (parent_intersects_range && !parent_is_error)) && + (!step->field || field_id == step->field) && (!step->supertype_symbol || supertype_count > 0) && (start_depth <= self->max_start_depth)) { ts_query_cursor__add_state(self, pattern); @@ -7994,21 +7281,16 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, unsigned i; if (ts_query__pattern_map_search(self->query, symbol, &i)) { - t_pattern_entry *pattern = - &self->query->pattern_map.contents[i]; + t_pattern_entry *pattern = &self->query->pattern_map.contents[i]; - t_query_step *step = - &self->query->steps.contents[pattern->step_index]; - uint32_t start_depth = self->depth - step->depth; + t_query_step *step = &self->query->steps.contents[pattern->step_index]; + uint32_t start_depth = self->depth - step->depth; do { // If this node matches the first step of the pattern, // then add a new state at the start of this pattern. - if ((pattern->is_rooted ? node_intersects_range - : (parent_intersects_range && - !parent_is_error)) && - (!step->field || field_id == step->field) && - (start_depth <= self->max_start_depth)) + if ((pattern->is_rooted ? node_intersects_range : (parent_intersects_range && !parent_is_error)) && + (!step->field || field_id == step->field) && (start_depth <= self->max_start_depth)) { ts_query_cursor__add_state(self, pattern); } @@ -8019,25 +7301,21 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, if (i == self->query->pattern_map.size) break; pattern = &self->query->pattern_map.contents[i]; - step = - &self->query->steps.contents[pattern->step_index]; + step = &self->query->steps.contents[pattern->step_index]; } while (step->symbol == symbol); } // Update all of the in-progress states with current node. - for (unsigned j = 0, copy_count = 0; j < self->states.size; - j += 1 + copy_count) + for (unsigned j = 0, copy_count = 0; j < self->states.size; j += 1 + copy_count) { t_query_state *state = &self->states.contents[j]; - t_query_step *step = - &self->query->steps.contents[state->step_index]; + t_query_step *step = &self->query->steps.contents[state->step_index]; state->has_in_progress_alternatives = false; copy_count = 0; // Check that the node matches all of the criteria for the // next step of the pattern. - if ((uint32_t)state->start_depth + (uint32_t)step->depth != - self->depth) + if ((uint32_t)state->start_depth + (uint32_t)step->depth != self->depth) continue; // Determine if this node matches this step of the pattern, @@ -8046,16 +7324,14 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, bool node_does_match = false; if (step->symbol == WILDCARD_SYMBOL) { - node_does_match = - !node_is_error && (is_named || !step->is_named); + node_does_match = !node_is_error && (is_named || !step->is_named); } else { node_does_match = symbol == step->symbol; } bool later_sibling_can_match = has_later_siblings; - if ((step->is_immediate && is_named) || - state->seeking_immediate_match) + if ((step->is_immediate && is_named) || state->seeking_immediate_match) { later_sibling_can_match = false; } @@ -8094,18 +7370,14 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, if (step->negated_field_list_id) { - t_field_id *negated_field_ids = - &self->query->negated_fields - .contents[step->negated_field_list_id]; + t_field_id *negated_field_ids = &self->query->negated_fields.contents[step->negated_field_list_id]; for (;;) { t_field_id negated_field_id = *negated_field_ids; if (negated_field_id) { negated_field_ids++; - if (ts_node_child_by_field_id(node, - negated_field_id) - .id) + if (ts_node_child_by_field_id(node, negated_field_id).id) { node_does_match = false; break; @@ -8124,10 +7396,8 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, { if (!later_sibling_can_match) { - LOG(" discard state. pattern:%u, step:%u\n", - state->pattern_index, state->step_index); - capture_list_pool_release(&self->capture_list_pool, - state->capture_list_id); + LOG(" discard state. pattern:%u, step:%u\n", state->pattern_index, state->step_index); + capture_list_pool_release(&self->capture_list_pool, state->capture_list_id); array_erase(&self->states, j); j--; } @@ -8141,10 +7411,7 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, // split into two states: one that matches this node, and // one which skips over this node, to preserve the // possibility of matching later siblings. - if (later_sibling_can_match && - (step->contains_captures || - ts_query__step_is_fallible(self->query, - state->step_index))) + if (later_sibling_can_match && (step->contains_captures || ts_query__step_is_fallible(self->query, state->step_index))) { if (ts_query_cursor__copy_state(self, &state)) { @@ -8161,8 +7428,7 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, // capture the parent node if necessary. if (state->needs_parent) { - t_parse_node parent = - ts_tree_cursor_parent_node(&self->cursor); + t_parse_node parent = ts_tree_cursor_parent_node(&self->cursor); if (ts_node_is_null(parent)) { LOG(" missing parent node\n"); @@ -8175,14 +7441,11 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, do { skipped_wildcard_step--; - } while (skipped_wildcard_step->is_dead_end || - skipped_wildcard_step->is_pass_through || - skipped_wildcard_step->depth > 0); + } while (skipped_wildcard_step->is_dead_end || skipped_wildcard_step->is_pass_through || skipped_wildcard_step->depth > 0); if (skipped_wildcard_step->capture_ids[0] != NONE) { LOG(" capture wildcard parent\n"); - ts_query_cursor__capture( - self, state, skipped_wildcard_step, parent); + ts_query_cursor__capture(self, state, skipped_wildcard_step, parent); } } } @@ -8204,13 +7467,10 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, // Advance this state to the next step of its pattern. state->step_index++; state->seeking_immediate_match = false; - LOG(" advance state. pattern:%u, step:%u\n", - state->pattern_index, state->step_index); + LOG(" advance state. pattern:%u, step:%u\n", state->pattern_index, state->step_index); - t_query_step *next_step = - &self->query->steps.contents[state->step_index]; - if (stop_on_definite_step && - next_step->root_pattern_guaranteed) + t_query_step *next_step = &self->query->steps.contents[state->step_index]; + if (stop_on_definite_step && next_step->root_pattern_guaranteed) did_match = true; // If this state's next step has an alternative step, then @@ -8221,9 +7481,7 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, for (unsigned k = j; k < end_index; k++) { t_query_state *child_state = &self->states.contents[k]; - t_query_step *child_step = - &self->query->steps - .contents[child_state->step_index]; + t_query_step *child_step = &self->query->steps.contents[child_state->step_index]; if (child_step->alternative_index != NONE) { // A "dead-end" step exists only to add a @@ -8233,8 +7491,7 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, // alternative. if (child_step->is_dead_end) { - child_state->step_index = - child_step->alternative_index; + child_state->step_index = child_step->alternative_index; k--; continue; } @@ -8251,24 +7508,17 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, k--; } - t_query_state *copy = - ts_query_cursor__copy_state(self, &child_state); + t_query_state *copy = ts_query_cursor__copy_state(self, &child_state); if (copy) { LOG(" split state for branch. pattern:%u, " "from_step:%u, to_step:%u, immediate:%d, " "capture_count: %u\n", - copy->pattern_index, copy->step_index, - next_step->alternative_index, - next_step->alternative_is_immediate, - capture_list_pool_get( - &self->capture_list_pool, - copy->capture_list_id) - ->size); + copy->pattern_index, copy->step_index, next_step->alternative_index, next_step->alternative_is_immediate, + capture_list_pool_get(&self->capture_list_pool, copy->capture_list_id)->size); end_index++; copy_count++; - copy->step_index = - child_step->alternative_index; + copy->step_index = child_step->alternative_index; if (child_step->alternative_is_immediate) { copy->seeking_immediate_match = true; @@ -8303,14 +7553,11 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, // matches of the same pattern and root node, we only // need to perform pairwise comparisons within a small // slice of the states array. - if (other_state->start_depth != state->start_depth || - other_state->pattern_index != state->pattern_index) + if (other_state->start_depth != state->start_depth || other_state->pattern_index != state->pattern_index) break; bool left_contains_right, right_contains_left; - ts_query_cursor__compare_captures( - self, state, other_state, &left_contains_right, - &right_contains_left); + ts_query_cursor__compare_captures(self, state, other_state, &left_contains_right, &right_contains_left); if (left_contains_right) { if (state->step_index == other_state->step_index) @@ -8318,9 +7565,7 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, LOG(" drop shorter state. pattern: %u, " "step_index: %u\n", state->pattern_index, state->step_index); - capture_list_pool_release( - &self->capture_list_pool, - other_state->capture_list_id); + capture_list_pool_release(&self->capture_list_pool, other_state->capture_list_id); array_erase(&self->states, k); k--; continue; @@ -8334,9 +7579,7 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, LOG(" drop shorter state. pattern: %u, " "step_index: %u\n", state->pattern_index, state->step_index); - capture_list_pool_release( - &self->capture_list_pool, - state->capture_list_id); + capture_list_pool_release(&self->capture_list_pool, state->capture_list_id); array_erase(&self->states, j); j--; did_remove = true; @@ -8353,28 +7596,20 @@ static inline bool ts_query_cursor__advance(t_query_cursor *self, { LOG(" keep state. pattern: %u, start_depth: %u, " "step_index: %u, capture_count: %u\n", - state->pattern_index, state->start_depth, - state->step_index, - capture_list_pool_get(&self->capture_list_pool, - state->capture_list_id) - ->size); - t_query_step *next_step = - &self->query->steps.contents[state->step_index]; + state->pattern_index, state->start_depth, state->step_index, + capture_list_pool_get(&self->capture_list_pool, state->capture_list_id)->size); + t_query_step *next_step = &self->query->steps.contents[state->step_index]; if (next_step->depth == PATTERN_DONE_MARKER) { if (state->has_in_progress_alternatives) { - LOG(" defer finishing pattern %u\n", - state->pattern_index); + LOG(" defer finishing pattern %u\n", state->pattern_index); } else { - LOG(" finish pattern %u\n", - state->pattern_index); + LOG(" finish pattern %u\n", state->pattern_index); array_push(&self->finished_states, *state); - array_erase( - &self->states, - (uint32_t)(state - self->states.contents)); + array_erase(&self->states, (uint32_t)(state - self->states.contents)); did_match = true; j--; } @@ -8419,8 +7654,7 @@ bool ts_query_cursor_next_match(t_query_cursor *self, t_query_match *match) state->id = self->next_state_id++; match->id = state->id; match->pattern_index = state->pattern_index; - const t_capture_list *captures = - capture_list_pool_get(&self->capture_list_pool, state->capture_list_id); + const t_capture_list *captures = capture_list_pool_get(&self->capture_list_pool, state->capture_list_id); match->captures = captures->contents; match->capture_count = captures->size; capture_list_pool_release(&self->capture_list_pool, state->capture_list_id); @@ -8435,8 +7669,7 @@ void ts_query_cursor_remove_match(t_query_cursor *self, uint32_t match_id) const t_query_state *state = &self->finished_states.contents[i]; if (state->id == match_id) { - capture_list_pool_release(&self->capture_list_pool, - state->capture_list_id); + capture_list_pool_release(&self->capture_list_pool, state->capture_list_id); array_erase(&self->finished_states, i); return; } @@ -8449,16 +7682,14 @@ void ts_query_cursor_remove_match(t_query_cursor *self, uint32_t match_id) const t_query_state *state = &self->states.contents[i]; if (state->id == match_id) { - capture_list_pool_release(&self->capture_list_pool, - state->capture_list_id); + capture_list_pool_release(&self->capture_list_pool, state->capture_list_id); array_erase(&self->states, i); return; } } } -bool ts_query_cursor_next_capture(t_query_cursor *self, t_query_match *match, - uint32_t *capture_index) +bool ts_query_cursor_next_capture(t_query_cursor *self, t_query_match *match, uint32_t *capture_index) { // The goal here is to return captures in order, even though they may not // be discovered in order, because patterns can overlap. Search for matches @@ -8470,42 +7701,32 @@ bool ts_query_cursor_next_capture(t_query_cursor *self, t_query_match *match, uint32_t first_unfinished_pattern_index; uint32_t first_unfinished_state_index; bool first_unfinished_state_is_definite = false; - ts_query_cursor__first_in_progress_capture( - self, &first_unfinished_state_index, &first_unfinished_capture_byte, - &first_unfinished_pattern_index, - &first_unfinished_state_is_definite); + ts_query_cursor__first_in_progress_capture(self, &first_unfinished_state_index, &first_unfinished_capture_byte, &first_unfinished_pattern_index, + &first_unfinished_state_is_definite); // Then find the earliest capture in a finished match. It must occur // before the first capture in an *unfinished* match. t_query_state *first_finished_state = NULL; - uint32_t first_finished_capture_byte = first_unfinished_capture_byte; - uint32_t first_finished_pattern_index = first_unfinished_pattern_index; + uint32_t first_finished_capture_byte = first_unfinished_capture_byte; + uint32_t first_finished_pattern_index = first_unfinished_pattern_index; for (unsigned i = 0; i < self->finished_states.size;) { t_query_state *state = &self->finished_states.contents[i]; - const t_capture_list *captures = capture_list_pool_get( - &self->capture_list_pool, state->capture_list_id); + const t_capture_list *captures = capture_list_pool_get(&self->capture_list_pool, state->capture_list_id); // Remove states whose captures are all consumed. if (state->consumed_capture_count >= captures->size) { - capture_list_pool_release(&self->capture_list_pool, - state->capture_list_id); + capture_list_pool_release(&self->capture_list_pool, state->capture_list_id); array_erase(&self->finished_states, i); continue; } - t_parse_node node = - captures->contents[state->consumed_capture_count].node; + t_parse_node node = captures->contents[state->consumed_capture_count].node; - bool node_precedes_range = - (ts_node_end_byte(node) <= self->start_byte || - point_lte(ts_node_end_point(node), self->start_point)); - bool node_follows_range = - (ts_node_start_byte(node) >= self->end_byte || - point_gte(ts_node_start_point(node), self->end_point)); - bool node_outside_of_range = - node_precedes_range || node_follows_range; + bool node_precedes_range = (ts_node_end_byte(node) <= self->start_byte || point_lte(ts_node_end_point(node), self->start_point)); + bool node_follows_range = (ts_node_start_byte(node) >= self->end_byte || point_gte(ts_node_start_point(node), self->end_point)); + bool node_outside_of_range = node_precedes_range || node_follows_range; // Skip captures that are outside of the cursor's range. if (node_outside_of_range) @@ -8516,8 +7737,7 @@ bool ts_query_cursor_next_capture(t_query_cursor *self, t_query_match *match, uint32_t node_start_byte = ts_node_start_byte(node); if (node_start_byte < first_finished_capture_byte || - (node_start_byte == first_finished_capture_byte && - state->pattern_index < first_finished_pattern_index)) + (node_start_byte == first_finished_capture_byte && state->pattern_index < first_finished_pattern_index)) { first_finished_state = state; first_finished_capture_byte = node_start_byte; @@ -8549,8 +7769,7 @@ bool ts_query_cursor_next_capture(t_query_cursor *self, t_query_match *match, state->id = self->next_state_id++; match->id = state->id; match->pattern_index = state->pattern_index; - const t_capture_list *captures = capture_list_pool_get( - &self->capture_list_pool, state->capture_list_id); + const t_capture_list *captures = capture_list_pool_get(&self->capture_list_pool, state->capture_list_id); match->captures = captures->contents; match->capture_count = captures->size; *capture_index = state->consumed_capture_count; @@ -8560,26 +7779,20 @@ bool ts_query_cursor_next_capture(t_query_cursor *self, t_query_match *match, if (capture_list_pool_is_empty(&self->capture_list_pool)) { - LOG(" abandon state. index:%u, pattern:%u, offset:%u.\n", - first_unfinished_state_index, first_unfinished_pattern_index, + LOG(" abandon state. index:%u, pattern:%u, offset:%u.\n", first_unfinished_state_index, first_unfinished_pattern_index, first_unfinished_capture_byte); - capture_list_pool_release( - &self->capture_list_pool, - self->states.contents[first_unfinished_state_index] - .capture_list_id); + capture_list_pool_release(&self->capture_list_pool, self->states.contents[first_unfinished_state_index].capture_list_id); array_erase(&self->states, first_unfinished_state_index); } // If there are no finished matches that are ready to be returned, then // continue finding more matches. - if (!ts_query_cursor__advance(self, true) && - self->finished_states.size == 0) + if (!ts_query_cursor__advance(self, true) && self->finished_states.size == 0) return false; } } -void ts_query_cursor_set_max_start_depth(t_query_cursor *self, - uint32_t max_start_depth) +void ts_query_cursor_set_max_start_depth(t_query_cursor *self, uint32_t max_start_depth) { self->max_start_depth = max_start_depth; } @@ -8595,8 +7808,7 @@ static void stack_node_retain(t_stack_node *self) assert(self->ref_count != 0); } -static void stack_node_release(t_stack_node *self, t_stack_node_array *pool, - t_subtree_pool *subtree_pool) +static void stack_node_release(t_stack_node *self, t_stack_node_array *pool, t_subtree_pool *subtree_pool) { recur: assert(self->ref_count != 0); @@ -8653,12 +7865,9 @@ static uint32_t stack__subtree_node_count(t_subtree subtree) return count; } -static t_stack_node *stack_node_new(t_stack_node *previous_node, - t_subtree subtree, bool is_pending, - t_state_id state, t_stack_node_array *pool) +static t_stack_node *stack_node_new(t_stack_node *previous_node, t_subtree subtree, bool is_pending, t_state_id state, t_stack_node_array *pool) { - t_stack_node *node = - pool->size > 0 ? array_pop(pool) : malloc(sizeof(t_stack_node)); + t_stack_node *node = pool->size > 0 ? array_pop(pool) : malloc(sizeof(t_stack_node)); *node = (t_stack_node){.ref_count = 1, .link_count = 0, .state = state}; if (previous_node) @@ -8678,8 +7887,7 @@ static t_stack_node *stack_node_new(t_stack_node *previous_node, if (subtree.ptr) { node->error_cost += ts_subtree_error_cost(subtree); - node->position = - length_add(node->position, ts_subtree_total_size(subtree)); + node->position = length_add(node->position, ts_subtree_total_size(subtree)); node->node_count += stack__subtree_node_count(subtree); node->dynamic_precedence += ts_subtree_dynamic_precedence(subtree); } @@ -8708,15 +7916,12 @@ static bool stack__subtree_is_equivalent(t_subtree left, t_subtree right) if (ts_subtree_error_cost(left) > 0 && ts_subtree_error_cost(right) > 0) return true; - return (ts_subtree_padding(left).bytes == ts_subtree_padding(right).bytes && - ts_subtree_size(left).bytes == ts_subtree_size(right).bytes && - ts_subtree_child_count(left) == ts_subtree_child_count(right) && - ts_subtree_extra(left) == ts_subtree_extra(right) && + return (ts_subtree_padding(left).bytes == ts_subtree_padding(right).bytes && ts_subtree_size(left).bytes == ts_subtree_size(right).bytes && + ts_subtree_child_count(left) == ts_subtree_child_count(right) && ts_subtree_extra(left) == ts_subtree_extra(right) && ts_subtree_external_scanner_state_eq(left, right)); } -static void stack_node_add_link(t_stack_node *self, t_stack_link link, - t_subtree_pool *subtree_pool) +static void stack_node_add_link(t_stack_node *self, t_stack_link link, t_subtree_pool *subtree_pool) { if (link.node == self) return; @@ -8733,35 +7938,28 @@ static void stack_node_add_link(t_stack_node *self, t_stack_link link, // ambiguity ahead of time without changing behavior. if (existing_link->node == link.node) { - if (ts_subtree_dynamic_precedence(link.subtree) > - ts_subtree_dynamic_precedence(existing_link->subtree)) + if (ts_subtree_dynamic_precedence(link.subtree) > ts_subtree_dynamic_precedence(existing_link->subtree)) { ts_subtree_retain(link.subtree); ts_subtree_release(subtree_pool, existing_link->subtree); existing_link->subtree = link.subtree; - self->dynamic_precedence = - link.node->dynamic_precedence + - ts_subtree_dynamic_precedence(link.subtree); + self->dynamic_precedence = link.node->dynamic_precedence + ts_subtree_dynamic_precedence(link.subtree); } return; } // If the previous nodes are mergeable, merge them recursively. - if (existing_link->node->state == link.node->state && - existing_link->node->position.bytes == - link.node->position.bytes && + if (existing_link->node->state == link.node->state && existing_link->node->position.bytes == link.node->position.bytes && existing_link->node->error_cost == link.node->error_cost) { for (int j = 0; j < link.node->link_count; j++) { - stack_node_add_link(existing_link->node, - link.node->links[j], subtree_pool); + stack_node_add_link(existing_link->node, link.node->links[j], subtree_pool); } int32_t dynamic_precedence = link.node->dynamic_precedence; if (link.subtree.ptr) { - dynamic_precedence += - ts_subtree_dynamic_precedence(link.subtree); + dynamic_precedence += ts_subtree_dynamic_precedence(link.subtree); } if (dynamic_precedence > self->dynamic_precedence) { @@ -8793,8 +7991,7 @@ static void stack_node_add_link(t_stack_node *self, t_stack_link link, self->dynamic_precedence = dynamic_precedence; } -static void stack_head_delete(t_stack_head *self, t_stack_node_array *pool, - t_subtree_pool *subtree_pool) +static void stack_head_delete(t_stack_head *self, t_stack_node_array *pool, t_subtree_pool *subtree_pool) { if (self->node) { @@ -8815,16 +8012,12 @@ static void stack_head_delete(t_stack_head *self, t_stack_node_array *pool, } } -static t_stack_version ts_stack__add_version(t_stack *self, - t_stack_version original_version, - t_stack_node *node) +static t_stack_version ts_stack__add_version(t_stack *self, t_stack_version original_version, t_stack_node *node) { t_stack_head head = { .node = node, - .node_count_at_last_error = - self->heads.contents[original_version].node_count_at_last_error, - .last_external_token = - self->heads.contents[original_version].last_external_token, + .node_count_at_last_error = self->heads.contents[original_version].node_count_at_last_error, + .last_external_token = self->heads.contents[original_version].last_external_token, .status = StackStatusActive, .lookahead_when_paused = NULL_SUBTREE, }; @@ -8835,8 +8028,7 @@ static t_stack_version ts_stack__add_version(t_stack *self, return (t_stack_version)(self->heads.size - 1); } -static void ts_stack__add_slice(t_stack *self, t_stack_version original_version, - t_stack_node *node, t_subtree_array *subtrees) +static void ts_stack__add_slice(t_stack *self, t_stack_version original_version, t_stack_node *node, t_subtree_array *subtrees) { for (uint32_t i = self->slices.size - 1; i + 1 > 0; i--) { @@ -8849,15 +8041,12 @@ static void ts_stack__add_slice(t_stack *self, t_stack_version original_version, } } - t_stack_version version = - ts_stack__add_version(self, original_version, node); - t_stack_slice slice = {*subtrees, version}; + t_stack_version version = ts_stack__add_version(self, original_version, node); + t_stack_slice slice = {*subtrees, version}; array_push(&self->slices, slice); } -static t_stack_slice_array stack__iter(t_stack *self, t_stack_version version, - t_stack_callback callback, void *payload, - int goal_subtree_count) +static t_stack_slice_array stack__iter(t_stack *self, t_stack_version version, t_stack_callback callback, void *payload, int goal_subtree_count) { array_clear(&self->slices); array_clear(&self->iterators); @@ -8874,9 +8063,7 @@ static t_stack_slice_array stack__iter(t_stack *self, t_stack_version version, if (goal_subtree_count >= 0) { include_subtrees = true; - array_reserve(&new_iterator.subtrees, - (uint32_t)ts_subtree_alloc_size(goal_subtree_count) / - sizeof(t_subtree)); + array_reserve(&new_iterator.subtrees, (uint32_t)ts_subtree_alloc_size(goal_subtree_count) / sizeof(t_subtree)); } array_push(&self->iterators, new_iterator); @@ -8890,8 +8077,7 @@ static t_stack_slice_array stack__iter(t_stack *self, t_stack_version version, t_stack_action action = callback(payload, iterator); bool should_pop = action & StackActionPop; - bool should_stop = - action & StackActionStop || node->link_count == 0; + bool should_stop = action & StackActionStop || node->link_count == 0; if (should_pop) { @@ -8908,8 +8094,7 @@ static t_stack_slice_array stack__iter(t_stack *self, t_stack_version version, { if (!should_pop) { - ts_subtree_array_delete(self->subtree_pool, - &iterator->subtrees); + ts_subtree_array_delete(self->subtree_pool, &iterator->subtrees); } array_erase(&self->iterators, i); i--, size--; @@ -8930,12 +8115,10 @@ static t_stack_slice_array stack__iter(t_stack *self, t_stack_version version, if (self->iterators.size >= MAX_ITERATOR_COUNT) continue; link = node->links[j]; - t_stack_iterator current_iterator = - self->iterators.contents[i]; + t_stack_iterator current_iterator = self->iterators.contents[i]; array_push(&self->iterators, current_iterator); next_iterator = array_back(&self->iterators); - ts_subtree_array_copy(next_iterator->subtrees, - &next_iterator->subtrees); + ts_subtree_array_copy(next_iterator->subtrees, &next_iterator->subtrees); } next_iterator->node = link.node; @@ -8982,8 +8165,7 @@ t_stack *ts_stack_new(t_subtree_pool *subtree_pool) array_reserve(&self->node_pool, MAX_NODE_POOL_SIZE); self->subtree_pool = subtree_pool; - self->base_node = - stack_node_new(NULL, NULL_SUBTREE, false, 1, &self->node_pool); + self->base_node = stack_node_new(NULL, NULL_SUBTREE, false, 1, &self->node_pool); ts_stack_clear(self); return self; @@ -8998,8 +8180,7 @@ void ts_stack_delete(t_stack *self) stack_node_release(self->base_node, &self->node_pool, self->subtree_pool); for (uint32_t i = 0; i < self->heads.size; i++) { - stack_head_delete(&self->heads.contents[i], &self->node_pool, - self->subtree_pool); + stack_head_delete(&self->heads.contents[i], &self->node_pool, self->subtree_pool); } array_clear(&self->heads); if (self->node_pool.contents) @@ -9027,14 +8208,12 @@ t_length ts_stack_position(const t_stack *self, t_stack_version version) return array_get(&self->heads, version)->node->position; } -t_subtree ts_stack_last_external_token(const t_stack *self, - t_stack_version version) +t_subtree ts_stack_last_external_token(const t_stack *self, t_stack_version version) { return array_get(&self->heads, version)->last_external_token; } -void ts_stack_set_last_external_token(t_stack *self, t_stack_version version, - t_subtree token) +void ts_stack_set_last_external_token(t_stack *self, t_stack_version version, t_subtree token) { t_stack_head *head = array_get(&self->heads, version); if (token.ptr) @@ -9048,16 +8227,14 @@ unsigned ts_stack_error_cost(const t_stack *self, t_stack_version version) { t_stack_head *head = array_get(&self->heads, version); unsigned result = head->node->error_cost; - if (head->status == StackStatusPaused || - (head->node->state == ERROR_STATE && !head->node->links[0].subtree.ptr)) + if (head->status == StackStatusPaused || (head->node->state == ERROR_STATE && !head->node->links[0].subtree.ptr)) { result += ERROR_COST_PER_RECOVERY; } return result; } -unsigned ts_stack_node_count_since_error(const t_stack *self, - t_stack_version version) +unsigned ts_stack_node_count_since_error(const t_stack *self, t_stack_version version) { t_stack_head *head = array_get(&self->heads, version); if (head->node->node_count < head->node_count_at_last_error) @@ -9067,19 +8244,16 @@ unsigned ts_stack_node_count_since_error(const t_stack *self, return head->node->node_count - head->node_count_at_last_error; } -void ts_stack_push(t_stack *self, t_stack_version version, t_subtree subtree, - bool pending, t_state_id state) +void ts_stack_push(t_stack *self, t_stack_version version, t_subtree subtree, bool pending, t_state_id state) { t_stack_head *head = array_get(&self->heads, version); - t_stack_node *new_node = - stack_node_new(head->node, subtree, pending, state, &self->node_pool); + t_stack_node *new_node = stack_node_new(head->node, subtree, pending, state, &self->node_pool); if (!subtree.ptr) head->node_count_at_last_error = new_node->node_count; head->node = new_node; } -static inline t_stack_action pop_count_callback( - void *payload, const t_stack_iterator *iterator) +static inline t_stack_action pop_count_callback(void *payload, const t_stack_iterator *iterator) { unsigned *goal_subtree_count = payload; if (iterator->subtree_count == *goal_subtree_count) @@ -9092,14 +8266,12 @@ static inline t_stack_action pop_count_callback( } } -t_stack_slice_array ts_stack_pop_count(t_stack *self, t_stack_version version, - uint32_t count) +t_stack_slice_array ts_stack_pop_count(t_stack *self, t_stack_version version, uint32_t count) { return stack__iter(self, version, pop_count_callback, &count, (int)count); } -static inline t_stack_action pop_pending_callback( - void *payload, const t_stack_iterator *iterator) +static inline t_stack_action pop_pending_callback(void *payload, const t_stack_iterator *iterator) { (void)payload; if (iterator->subtree_count >= 1) @@ -9121,8 +8293,7 @@ static inline t_stack_action pop_pending_callback( t_stack_slice_array ts_stack_pop_pending(t_stack *self, t_stack_version version) { - t_stack_slice_array pop = - stack__iter(self, version, pop_pending_callback, NULL, 0); + t_stack_slice_array pop = stack__iter(self, version, pop_pending_callback, NULL, 0); if (pop.size > 0) { ts_stack_renumber_version(self, pop.contents[0].version, version); @@ -9131,14 +8302,12 @@ t_stack_slice_array ts_stack_pop_pending(t_stack *self, t_stack_version version) return pop; } -static inline t_stack_action pop_error_callback( - void *payload, const t_stack_iterator *iterator) +static inline t_stack_action pop_error_callback(void *payload, const t_stack_iterator *iterator) { if (iterator->subtrees.size > 0) { bool *found_error = payload; - if (!*found_error && - ts_subtree_is_error(iterator->subtrees.contents[0])) + if (!*found_error && ts_subtree_is_error(iterator->subtrees.contents[0])) { *found_error = true; return StackActionPop | StackActionStop; @@ -9159,17 +8328,14 @@ t_subtree_array ts_stack_pop_error(t_stack *self, t_stack_version version) t_stack_node *node = array_get(&self->heads, version)->node; for (unsigned i = 0; i < node->link_count; i++) { - if (node->links[i].subtree.ptr && - ts_subtree_is_error(node->links[i].subtree)) + if (node->links[i].subtree.ptr && ts_subtree_is_error(node->links[i].subtree)) { bool found_error = false; - t_stack_slice_array pop = - stack__iter(self, version, pop_error_callback, &found_error, 1); + t_stack_slice_array pop = stack__iter(self, version, pop_error_callback, &found_error, 1); if (pop.size > 0) { assert(pop.size == 1); - ts_stack_renumber_version(self, pop.contents[0].version, - version); + ts_stack_renumber_version(self, pop.contents[0].version, version); return pop.contents[0].subtrees; } break; @@ -9178,8 +8344,7 @@ t_subtree_array ts_stack_pop_error(t_stack *self, t_stack_version version) return (t_subtree_array){.size = 0}; } -static inline t_stack_action pop_all_callback(void *payload, - const t_stack_iterator *iterator) +static inline t_stack_action pop_all_callback(void *payload, const t_stack_iterator *iterator) { (void)payload; return iterator->node->link_count == 0 ? StackActionPop : StackActionNone; @@ -9190,8 +8355,7 @@ t_stack_slice_array ts_stack_pop_all(t_stack *self, t_stack_version version) return stack__iter(self, version, pop_all_callback, NULL, 0); } -static inline t_stack_action summarize_stack_callback( - void *payload, const t_stack_iterator *iterator) +static inline t_stack_action summarize_stack_callback(void *payload, const t_stack_iterator *iterator) { t_summarize_stack_session *session = payload; t_state_id state = iterator->node->state; @@ -9214,11 +8378,9 @@ static inline t_stack_action summarize_stack_callback( return StackActionNone; } -void ts_stack_record_summary(t_stack *self, t_stack_version version, - unsigned max_depth) +void ts_stack_record_summary(t_stack *self, t_stack_version version, unsigned max_depth) { - t_summarize_stack_session session = { - .summary = malloc(sizeof(t_stack_summary)), .max_depth = max_depth}; + t_summarize_stack_session session = {.summary = malloc(sizeof(t_stack_summary)), .max_depth = max_depth}; array_init(session.summary); stack__iter(self, version, summarize_stack_callback, &session, -1); t_stack_head *head = &self->heads.contents[version]; @@ -9240,8 +8402,7 @@ int ts_stack_dynamic_precedence(t_stack *self, t_stack_version version) return array_get(&self->heads, version)->node->dynamic_precedence; } -bool ts_stack_has_advanced_since_error(const t_stack *self, - t_stack_version version) +bool ts_stack_has_advanced_since_error(const t_stack *self, t_stack_version version) { const t_stack_head *head = array_get(&self->heads, version); const t_stack_node *node = head->node; @@ -9258,8 +8419,7 @@ bool ts_stack_has_advanced_since_error(const t_stack *self, { return true; } - else if (node->node_count > head->node_count_at_last_error && - ts_subtree_error_cost(subtree) == 0) + else if (node->node_count > head->node_count_at_last_error && ts_subtree_error_cost(subtree) == 0) { node = node->links[0].node; continue; @@ -9273,13 +8433,11 @@ bool ts_stack_has_advanced_since_error(const t_stack *self, void ts_stack_remove_version(t_stack *self, t_stack_version version) { - stack_head_delete(array_get(&self->heads, version), &self->node_pool, - self->subtree_pool); + stack_head_delete(array_get(&self->heads, version), &self->node_pool, self->subtree_pool); array_erase(&self->heads, version); } -void ts_stack_renumber_version(t_stack *self, t_stack_version v1, - t_stack_version v2) +void ts_stack_renumber_version(t_stack *self, t_stack_version v1, t_stack_version v2) { if (v1 == v2) return; @@ -9297,8 +8455,7 @@ void ts_stack_renumber_version(t_stack *self, t_stack_version v1, array_erase(&self->heads, v1); } -void ts_stack_swap_versions(t_stack *self, t_stack_version v1, - t_stack_version v2) +void ts_stack_swap_versions(t_stack *self, t_stack_version v1, t_stack_version v2) { t_stack_head temporary_head = self->heads.contents[v1]; self->heads.contents[v1] = self->heads.contents[v2]; @@ -9317,8 +8474,7 @@ t_stack_version ts_stack_copy_version(t_stack *self, t_stack_version version) return self->heads.size - 1; } -bool ts_stack_merge(t_stack *self, t_stack_version version1, - t_stack_version version2) +bool ts_stack_merge(t_stack *self, t_stack_version version1, t_stack_version version2) { if (!ts_stack_can_merge(self, version1, version2)) return false; @@ -9326,8 +8482,7 @@ bool ts_stack_merge(t_stack *self, t_stack_version version1, t_stack_head *head2 = &self->heads.contents[version2]; for (uint32_t i = 0; i < head2->node->link_count; i++) { - stack_node_add_link(head1->node, head2->node->links[i], - self->subtree_pool); + stack_node_add_link(head1->node, head2->node->links[i], self->subtree_pool); } if (head1->node->state == ERROR_STATE) { @@ -9337,18 +8492,13 @@ bool ts_stack_merge(t_stack *self, t_stack_version version1, return true; } -bool ts_stack_can_merge(t_stack *self, t_stack_version version1, - t_stack_version version2) +bool ts_stack_can_merge(t_stack *self, t_stack_version version1, t_stack_version version2) { t_stack_head *head1 = &self->heads.contents[version1]; t_stack_head *head2 = &self->heads.contents[version2]; - return head1->status == StackStatusActive && - head2->status == StackStatusActive && - head1->node->state == head2->node->state && - head1->node->position.bytes == head2->node->position.bytes && - head1->node->error_cost == head2->node->error_cost && - ts_subtree_external_scanner_state_eq(head1->last_external_token, - head2->last_external_token); + return head1->status == StackStatusActive && head2->status == StackStatusActive && head1->node->state == head2->node->state && + head1->node->position.bytes == head2->node->position.bytes && head1->node->error_cost == head2->node->error_cost && + ts_subtree_external_scanner_state_eq(head1->last_external_token, head2->last_external_token); } void ts_stack_halt(t_stack *self, t_stack_version version) @@ -9394,8 +8544,7 @@ void ts_stack_clear(t_stack *self) stack_node_retain(self->base_node); for (uint32_t i = 0; i < self->heads.size; i++) { - stack_head_delete(&self->heads.contents[i], &self->node_pool, - self->subtree_pool); + stack_head_delete(&self->heads.contents[i], &self->node_pool, self->subtree_pool); } array_clear(&self->heads); array_push(&self->heads, ((t_stack_head){ @@ -9406,8 +8555,7 @@ void ts_stack_clear(t_stack *self) })); } -bool ts_stack_print_dot_graph(t_stack *self, const t_language *language, - void *f) +bool ts_stack_print_dot_graph(t_stack *self, const t_language *language, void *f) { (void)(self); (void)(language); @@ -9417,8 +8565,7 @@ bool ts_stack_print_dot_graph(t_stack *self, const t_language *language, // t_external_scanner_state -void ts_external_scanner_state_init(t_external_scanner_state *self, - const char *data, unsigned length) +void ts_external_scanner_state_init(t_external_scanner_state *self, const char *data, unsigned length) { self->length = length; if (length > sizeof(self->short_data)) @@ -9432,8 +8579,7 @@ void ts_external_scanner_state_init(t_external_scanner_state *self, } } -t_external_scanner_state ts_external_scanner_state_copy( - const t_external_scanner_state *self) +t_external_scanner_state ts_external_scanner_state_copy(const t_external_scanner_state *self) { t_external_scanner_state result = *self; if (self->length > sizeof(self->short_data)) @@ -9464,11 +8610,9 @@ const char *ts_external_scanner_state_data(const t_external_scanner_state *self) } } -bool ts_external_scanner_state_eq(const t_external_scanner_state *self, - const char *buffer, unsigned length) +bool ts_external_scanner_state_eq(const t_external_scanner_state *self, const char *buffer, unsigned length) { - return self->length == length && - memcmp(ts_external_scanner_state_data(self), buffer, length) == 0; + return self->length == length && memcmp(ts_external_scanner_state_data(self), buffer, length) == 0; } // t_subtree_array @@ -9504,8 +8648,7 @@ void ts_subtree_array_delete(t_subtree_pool *pool, t_subtree_array *self) array_delete(self); } -void ts_subtree_array_remove_trailing_extras(t_subtree_array *self, - t_subtree_array *destination) +void ts_subtree_array_remove_trailing_extras(t_subtree_array *self, t_subtree_array *destination) { array_clear(destination); while (self->size > 0) @@ -9570,11 +8713,9 @@ static t_subtree_heap_data *ts_subtree_pool_allocate(t_subtree_pool *self) } } -static void ts_subtree_pool_free(t_subtree_pool *self, - t_subtree_heap_data *tree) +static void ts_subtree_pool_free(t_subtree_pool *self, t_subtree_heap_data *tree) { - if (self->free_trees.capacity > 0 && - self->free_trees.size + 1 <= TS_MAX_TREE_POOL_SIZE) + if (self->free_trees.capacity > 0 && self->free_trees.size + 1 <= TS_MAX_TREE_POOL_SIZE) { array_push(&self->free_trees, (t_mutable_subtree){.ptr = tree}); } @@ -9586,28 +8727,19 @@ static void ts_subtree_pool_free(t_subtree_pool *self, // t_subtree -static inline bool ts_subtree_can_inline(t_length padding, t_length size, - uint32_t lookahead_bytes) +static inline bool ts_subtree_can_inline(t_length padding, t_length size, uint32_t lookahead_bytes) { - return padding.bytes < TS_MAX_INLINE_TREE_LENGTH && - padding.extent.row < 16 && - padding.extent.column < TS_MAX_INLINE_TREE_LENGTH && - size.extent.row == 0 && - size.extent.column < TS_MAX_INLINE_TREE_LENGTH && - lookahead_bytes < 16; + return padding.bytes < TS_MAX_INLINE_TREE_LENGTH && padding.extent.row < 16 && padding.extent.column < TS_MAX_INLINE_TREE_LENGTH && size.extent.row == 0 && + size.extent.column < TS_MAX_INLINE_TREE_LENGTH && lookahead_bytes < 16; } -t_subtree ts_subtree_new_leaf(t_subtree_pool *pool, t_symbol symbol, - t_length padding, t_length size, - uint32_t lookahead_bytes, t_state_id parse_state, - bool has_external_tokens, bool depends_on_column, - bool is_keyword, const t_language *language) +t_subtree ts_subtree_new_leaf(t_subtree_pool *pool, t_symbol symbol, t_length padding, t_length size, uint32_t lookahead_bytes, t_state_id parse_state, + bool has_external_tokens, bool depends_on_column, bool is_keyword, const t_language *language) { t_symbol_metadata metadata = ts_language_symbol_metadata(language, symbol); bool extra = symbol == ts_builtin_sym_end; - bool is_inline = (symbol <= UINT8_MAX && !has_external_tokens && - ts_subtree_can_inline(padding, size, lookahead_bytes)); + bool is_inline = (symbol <= UINT8_MAX && !has_external_tokens && ts_subtree_can_inline(padding, size, lookahead_bytes)); if (is_inline) { @@ -9631,33 +8763,31 @@ t_subtree ts_subtree_new_leaf(t_subtree_pool *pool, t_symbol symbol, else { t_subtree_heap_data *data = ts_subtree_pool_allocate(pool); - *data = (t_subtree_heap_data){ - .ref_count = 1, - .padding = padding, - .size = size, - .lookahead_bytes = lookahead_bytes, - .error_cost = 0, - .child_count = 0, - .symbol = symbol, - .parse_state = parse_state, - .visible = metadata.visible, - .named = metadata.named, - .extra = extra, - .fragile_left = false, - .fragile_right = false, - .has_changes = false, - .has_external_tokens = has_external_tokens, - .has_external_scanner_state_change = false, - .depends_on_column = depends_on_column, - .is_missing = false, - .is_keyword = is_keyword, - {{.first_leaf = {.symbol = 0, .parse_state = 0}}}}; + *data = (t_subtree_heap_data){.ref_count = 1, + .padding = padding, + .size = size, + .lookahead_bytes = lookahead_bytes, + .error_cost = 0, + .child_count = 0, + .symbol = symbol, + .parse_state = parse_state, + .visible = metadata.visible, + .named = metadata.named, + .extra = extra, + .fragile_left = false, + .fragile_right = false, + .has_changes = false, + .has_external_tokens = has_external_tokens, + .has_external_scanner_state_change = false, + .depends_on_column = depends_on_column, + .is_missing = false, + .is_keyword = is_keyword, + {{.first_leaf = {.symbol = 0, .parse_state = 0}}}}; return (t_subtree){.ptr = data}; } } -void ts_subtree_set_symbol(t_mutable_subtree *self, t_symbol symbol, - const t_language *language) +void ts_subtree_set_symbol(t_mutable_subtree *self, t_symbol symbol, const t_language *language) { t_symbol_metadata metadata = ts_language_symbol_metadata(language, symbol); if (self->data.is_inline) @@ -9675,14 +8805,10 @@ void ts_subtree_set_symbol(t_mutable_subtree *self, t_symbol symbol, } } -t_subtree ts_subtree_new_error(t_subtree_pool *pool, int32_t lookahead_char, - t_length padding, t_length size, - uint32_t bytes_scanned, t_state_id parse_state, +t_subtree ts_subtree_new_error(t_subtree_pool *pool, int32_t lookahead_char, t_length padding, t_length size, uint32_t bytes_scanned, t_state_id parse_state, const t_language *language) { - t_subtree result = ts_subtree_new_leaf(pool, ts_builtin_sym_error, padding, - size, bytes_scanned, parse_state, - false, false, false, language); + t_subtree result = ts_subtree_new_leaf(pool, ts_builtin_sym_error, padding, size, bytes_scanned, parse_state, false, false, false, language); t_subtree_heap_data *data = (t_subtree_heap_data *)result.ptr; data->fragile_left = true; data->fragile_right = true; @@ -9697,8 +8823,7 @@ t_mutable_subtree ts_subtree_clone(t_subtree self) t_subtree *new_children = malloc(alloc_size); t_subtree *old_children = ts_subtree_children(self); memcpy(new_children, old_children, alloc_size); - t_subtree_heap_data *result = - (t_subtree_heap_data *)&new_children[self.ptr->child_count]; + t_subtree_heap_data *result = (t_subtree_heap_data *)&new_children[self.ptr->child_count]; if (self.ptr->child_count > 0) { for (uint32_t i = 0; i < self.ptr->child_count; i++) @@ -9708,8 +8833,7 @@ t_mutable_subtree ts_subtree_clone(t_subtree self) } else if (self.ptr->has_external_tokens) { - result->external_scanner_state = - ts_external_scanner_state_copy(&self.ptr->external_scanner_state); + result->external_scanner_state = ts_external_scanner_state_copy(&self.ptr->external_scanner_state); } result->ref_count = 1; return (t_mutable_subtree){.ptr = result}; @@ -9731,9 +8855,7 @@ t_mutable_subtree ts_subtree_make_mut(t_subtree_pool *pool, t_subtree self) return result; } -static void ts_subtree__compress(t_mutable_subtree self, unsigned count, - const t_language *language, - t_mutable_subtree_array *stack) +static void ts_subtree__compress(t_mutable_subtree self, unsigned count, const t_language *language, t_mutable_subtree_array *stack) { unsigned initial_stack_size = stack->size; @@ -9744,23 +8866,17 @@ static void ts_subtree__compress(t_mutable_subtree self, unsigned count, if (tree.ptr->ref_count > 1 || tree.ptr->child_count < 2) break; - t_mutable_subtree child = - ts_subtree_to_mut_unsafe(ts_subtree_children(tree)[0]); - if (child.data.is_inline || child.ptr->child_count < 2 || - child.ptr->ref_count > 1 || child.ptr->symbol != symbol) + t_mutable_subtree child = ts_subtree_to_mut_unsafe(ts_subtree_children(tree)[0]); + if (child.data.is_inline || child.ptr->child_count < 2 || child.ptr->ref_count > 1 || child.ptr->symbol != symbol) break; - t_mutable_subtree grandchild = - ts_subtree_to_mut_unsafe(ts_subtree_children(child)[0]); - if (grandchild.data.is_inline || grandchild.ptr->child_count < 2 || - grandchild.ptr->ref_count > 1 || grandchild.ptr->symbol != symbol) + t_mutable_subtree grandchild = ts_subtree_to_mut_unsafe(ts_subtree_children(child)[0]); + if (grandchild.data.is_inline || grandchild.ptr->child_count < 2 || grandchild.ptr->ref_count > 1 || grandchild.ptr->symbol != symbol) break; ts_subtree_children(tree)[0] = ts_subtree_from_mut(grandchild); - ts_subtree_children(child)[0] = - ts_subtree_children(grandchild)[grandchild.ptr->child_count - 1]; - ts_subtree_children(grandchild)[grandchild.ptr->child_count - 1] = - ts_subtree_from_mut(child); + ts_subtree_children(child)[0] = ts_subtree_children(grandchild)[grandchild.ptr->child_count - 1]; + ts_subtree_children(grandchild)[grandchild.ptr->child_count - 1] = ts_subtree_from_mut(child); array_push(stack, tree); tree = grandchild; } @@ -9768,18 +8884,15 @@ static void ts_subtree__compress(t_mutable_subtree self, unsigned count, while (stack->size > initial_stack_size) { tree = array_pop(stack); - t_mutable_subtree child = - ts_subtree_to_mut_unsafe(ts_subtree_children(tree)[0]); - t_mutable_subtree grandchild = ts_subtree_to_mut_unsafe( - ts_subtree_children(child)[child.ptr->child_count - 1]); + t_mutable_subtree child = ts_subtree_to_mut_unsafe(ts_subtree_children(tree)[0]); + t_mutable_subtree grandchild = ts_subtree_to_mut_unsafe(ts_subtree_children(child)[child.ptr->child_count - 1]); ts_subtree_summarize_children(grandchild, language); ts_subtree_summarize_children(child, language); ts_subtree_summarize_children(tree, language); } } -void ts_subtree_balance(t_subtree self, t_subtree_pool *pool, - const t_language *language) +void ts_subtree_balance(t_subtree self, t_subtree_pool *pool, const t_language *language) { array_clear(&pool->tree_stack); @@ -9795,10 +8908,8 @@ void ts_subtree_balance(t_subtree self, t_subtree_pool *pool, if (tree.ptr->repeat_depth > 0) { t_subtree child1 = ts_subtree_children(tree)[0]; - t_subtree child2 = - ts_subtree_children(tree)[tree.ptr->child_count - 1]; - long repeat_delta = (long)ts_subtree_repeat_depth(child1) - - (long)ts_subtree_repeat_depth(child2); + t_subtree child2 = ts_subtree_children(tree)[tree.ptr->child_count - 1]; + long repeat_delta = (long)ts_subtree_repeat_depth(child1) - (long)ts_subtree_repeat_depth(child2); if (repeat_delta > 0) { unsigned n = (unsigned)repeat_delta; @@ -9822,8 +8933,7 @@ void ts_subtree_balance(t_subtree self, t_subtree_pool *pool, } // Assign all of the node's properties that depend on its children. -void ts_subtree_summarize_children(t_mutable_subtree self, - const t_language *language) +void ts_subtree_summarize_children(t_mutable_subtree self, const t_language *language) { assert(!self.data.is_inline); @@ -9838,17 +8948,15 @@ void ts_subtree_summarize_children(t_mutable_subtree self, self.ptr->dynamic_precedence = 0; uint32_t structural_index = 0; - const t_symbol *alias_sequence = - ts_language_alias_sequence(language, self.ptr->production_id); - uint32_t lookahead_end_byte = 0; + const t_symbol *alias_sequence = ts_language_alias_sequence(language, self.ptr->production_id); + uint32_t lookahead_end_byte = 0; const t_subtree *children = ts_subtree_children(self); for (uint32_t i = 0; i < self.ptr->child_count; i++) { t_subtree child = children[i]; - if (self.ptr->size.extent.row == 0 && - ts_subtree_depends_on_column(child)) + if (self.ptr->size.extent.row == 0 && ts_subtree_depends_on_column(child)) { self.ptr->depends_on_column = true; } @@ -9865,13 +8973,10 @@ void ts_subtree_summarize_children(t_mutable_subtree self, } else { - self.ptr->size = - length_add(self.ptr->size, ts_subtree_total_size(child)); + self.ptr->size = length_add(self.ptr->size, ts_subtree_total_size(child)); } - uint32_t child_lookahead_end_byte = self.ptr->padding.bytes + - self.ptr->size.bytes + - ts_subtree_lookahead_bytes(child); + uint32_t child_lookahead_end_byte = self.ptr->padding.bytes + self.ptr->size.bytes + ts_subtree_lookahead_bytes(child); if (child_lookahead_end_byte > lookahead_end_byte) { lookahead_end_byte = child_lookahead_end_byte; @@ -9883,11 +8988,9 @@ void ts_subtree_summarize_children(t_mutable_subtree self, } uint32_t grandchild_count = ts_subtree_child_count(child); - if (self.ptr->symbol == ts_builtin_sym_error || - self.ptr->symbol == ts_builtin_sym_error_repeat) + if (self.ptr->symbol == ts_builtin_sym_error || self.ptr->symbol == ts_builtin_sym_error_repeat) { - if (!ts_subtree_extra(child) && - !(ts_subtree_is_error(child) && grandchild_count == 0)) + if (!ts_subtree_extra(child) && !(ts_subtree_is_error(child) && grandchild_count == 0)) { if (ts_subtree_visible(child)) { @@ -9895,24 +8998,19 @@ void ts_subtree_summarize_children(t_mutable_subtree self, } else if (grandchild_count > 0) { - self.ptr->error_cost += ERROR_COST_PER_SKIPPED_TREE * - child.ptr->visible_child_count; + self.ptr->error_cost += ERROR_COST_PER_SKIPPED_TREE * child.ptr->visible_child_count; } } } self.ptr->dynamic_precedence += ts_subtree_dynamic_precedence(child); - self.ptr->visible_descendant_count += - ts_subtree_visible_descendant_count(child); + self.ptr->visible_descendant_count += ts_subtree_visible_descendant_count(child); - if (alias_sequence && alias_sequence[structural_index] != 0 && - !ts_subtree_extra(child)) + if (alias_sequence && alias_sequence[structural_index] != 0 && !ts_subtree_extra(child)) { self.ptr->visible_descendant_count++; self.ptr->visible_child_count++; - if (ts_language_symbol_metadata(language, - alias_sequence[structural_index]) - .named) + if (ts_language_symbol_metadata(language, alias_sequence[structural_index]).named) { self.ptr->named_child_count++; } @@ -9943,16 +9041,12 @@ void ts_subtree_summarize_children(t_mutable_subtree self, structural_index++; } - self.ptr->lookahead_bytes = - lookahead_end_byte - self.ptr->size.bytes - self.ptr->padding.bytes; + self.ptr->lookahead_bytes = lookahead_end_byte - self.ptr->size.bytes - self.ptr->padding.bytes; - if (self.ptr->symbol == ts_builtin_sym_error || - self.ptr->symbol == ts_builtin_sym_error_repeat) + if (self.ptr->symbol == ts_builtin_sym_error || self.ptr->symbol == ts_builtin_sym_error_repeat) { self.ptr->error_cost += - ERROR_COST_PER_RECOVERY + - ERROR_COST_PER_SKIPPED_CHAR * self.ptr->size.bytes + - ERROR_COST_PER_SKIPPED_LINE * self.ptr->size.extent.row; + ERROR_COST_PER_RECOVERY + ERROR_COST_PER_SKIPPED_CHAR * self.ptr->size.bytes + ERROR_COST_PER_SKIPPED_LINE * self.ptr->size.extent.row; } if (self.ptr->child_count > 0) @@ -9961,28 +9055,22 @@ void ts_subtree_summarize_children(t_mutable_subtree self, t_subtree last_child = children[self.ptr->child_count - 1]; self.ptr->first_leaf.symbol = ts_subtree_leaf_symbol(first_child); - self.ptr->first_leaf.parse_state = - ts_subtree_leaf_parse_state(first_child); + self.ptr->first_leaf.parse_state = ts_subtree_leaf_parse_state(first_child); if (ts_subtree_fragile_left(first_child)) self.ptr->fragile_left = true; if (ts_subtree_fragile_right(last_child)) self.ptr->fragile_right = true; - if (self.ptr->child_count >= 2 && !self.ptr->visible && - !self.ptr->named && - ts_subtree_symbol(first_child) == self.ptr->symbol) + if (self.ptr->child_count >= 2 && !self.ptr->visible && !self.ptr->named && ts_subtree_symbol(first_child) == self.ptr->symbol) { - if (ts_subtree_repeat_depth(first_child) > - ts_subtree_repeat_depth(last_child)) + if (ts_subtree_repeat_depth(first_child) > ts_subtree_repeat_depth(last_child)) { - self.ptr->repeat_depth = - ts_subtree_repeat_depth(first_child) + 1; + self.ptr->repeat_depth = ts_subtree_repeat_depth(first_child) + 1; } else { - self.ptr->repeat_depth = - ts_subtree_repeat_depth(last_child) + 1; + self.ptr->repeat_depth = ts_subtree_repeat_depth(last_child) + 1; } } } @@ -9991,14 +9079,10 @@ void ts_subtree_summarize_children(t_mutable_subtree self, // Create a new parent node with the given children. // // This takes ownership of the children array. -t_mutable_subtree ts_subtree_new_node(t_symbol symbol, - t_subtree_array *children, - unsigned production_id, - const t_language *language) +t_mutable_subtree ts_subtree_new_node(t_symbol symbol, t_subtree_array *children, unsigned production_id, const t_language *language) { t_symbol_metadata metadata = ts_language_symbol_metadata(language, symbol); - bool fragile = - symbol == ts_builtin_sym_error || symbol == ts_builtin_sym_error_repeat; + bool fragile = symbol == ts_builtin_sym_error || symbol == ts_builtin_sym_error_repeat; // Allocate the node's data at the end of the array of children. size_t new_byte_size = ts_subtree_alloc_size(children->size); @@ -10007,25 +9091,23 @@ t_mutable_subtree ts_subtree_new_node(t_symbol symbol, children->contents = realloc(children->contents, new_byte_size); children->capacity = (uint32_t)(new_byte_size / sizeof(t_subtree)); } - t_subtree_heap_data *data = - (t_subtree_heap_data *)&children->contents[children->size]; + t_subtree_heap_data *data = (t_subtree_heap_data *)&children->contents[children->size]; - *data = - (t_subtree_heap_data){.ref_count = 1, - .symbol = symbol, - .child_count = children->size, - .visible = metadata.visible, - .named = metadata.named, - .has_changes = false, - .has_external_scanner_state_change = false, - .fragile_left = fragile, - .fragile_right = fragile, - .is_keyword = false, - {{ - .visible_descendant_count = 0, - .production_id = production_id, - .first_leaf = {.symbol = 0, .parse_state = 0}, - }}}; + *data = (t_subtree_heap_data){.ref_count = 1, + .symbol = symbol, + .child_count = children->size, + .visible = metadata.visible, + .named = metadata.named, + .has_changes = false, + .has_external_scanner_state_change = false, + .fragile_left = fragile, + .fragile_right = fragile, + .is_keyword = false, + {{ + .visible_descendant_count = 0, + .production_id = production_id, + .first_leaf = {.symbol = 0, .parse_state = 0}, + }}}; t_mutable_subtree result = {.ptr = data}; ts_subtree_summarize_children(result, language); return result; @@ -10035,11 +9117,9 @@ t_mutable_subtree ts_subtree_new_node(t_symbol symbol, // // This node is treated as 'extra'. Its children are prevented from having // having any effect on the parse state. -t_subtree ts_subtree_new_error_node(t_subtree_array *children, bool extra, - const t_language *language) +t_subtree ts_subtree_new_error_node(t_subtree_array *children, bool extra, const t_language *language) { - t_mutable_subtree result = - ts_subtree_new_node(ts_builtin_sym_error, children, 0, language); + t_mutable_subtree result = ts_subtree_new_node(ts_builtin_sym_error, children, 0, language); result.ptr->extra = extra; return ts_subtree_from_mut(result); } @@ -10048,14 +9128,9 @@ t_subtree ts_subtree_new_error_node(t_subtree_array *children, bool extra, // // This node is treated as 'extra'. Its children are prevented from having // having any effect on the parse state. -t_subtree ts_subtree_new_missing_leaf(t_subtree_pool *pool, t_symbol symbol, - t_length padding, - uint32_t lookahead_bytes, - const t_language *language) +t_subtree ts_subtree_new_missing_leaf(t_subtree_pool *pool, t_symbol symbol, t_length padding, uint32_t lookahead_bytes, const t_language *language) { - t_subtree result = - ts_subtree_new_leaf(pool, symbol, padding, length_zero(), - lookahead_bytes, 0, false, false, false, language); + t_subtree result = ts_subtree_new_leaf(pool, symbol, padding, length_zero(), lookahead_bytes, 0, false, false, false, language); if (result.data.is_inline) { result.data.is_missing = true; @@ -10102,8 +9177,7 @@ void ts_subtree_release(t_subtree_pool *pool, t_subtree self) assert(child.ptr->ref_count > 0); if (atomic_dec((volatile uint32_t *)&child.ptr->ref_count) == 0) { - array_push(&pool->tree_stack, - ts_subtree_to_mut_unsafe(child)); + array_push(&pool->tree_stack, ts_subtree_to_mut_unsafe(child)); } } free(children); @@ -10112,8 +9186,7 @@ void ts_subtree_release(t_subtree_pool *pool, t_subtree self) { if (tree.ptr->has_external_tokens) { - ts_external_scanner_state_delete( - &tree.ptr->external_scanner_state); + ts_external_scanner_state_delete(&tree.ptr->external_scanner_state); } ts_subtree_pool_free(pool, tree.ptr); } @@ -10150,8 +9223,7 @@ int ts_subtree_compare(t_subtree left, t_subtree right, t_subtree_pool *pool) t_subtree left_child = ts_subtree_children(left)[i - 1]; t_subtree right_child = ts_subtree_children(right)[i - 1]; array_push(&pool->tree_stack, ts_subtree_to_mut_unsafe(left_child)); - array_push(&pool->tree_stack, - ts_subtree_to_mut_unsafe(right_child)); + array_push(&pool->tree_stack, ts_subtree_to_mut_unsafe(right_child)); } } @@ -10170,41 +9242,34 @@ static inline void ts_subtree_set_has_changes(t_mutable_subtree *self) } } -t_subtree ts_subtree_edit(t_subtree self, const t_input_edit *input_edit, - t_subtree_pool *pool) +t_subtree ts_subtree_edit(t_subtree self, const t_input_edit *input_edit, t_subtree_pool *pool) { Array(t_edit_entry) stack = array_new(); - array_push( - &stack, - ((t_edit_entry){ - .tree = &self, - .edit = - (t_edit){ - .start = {input_edit->start_byte, input_edit->start_point}, - .old_end = {input_edit->old_end_byte, - input_edit->old_end_point}, - .new_end = {input_edit->new_end_byte, - input_edit->new_end_point}, - }, - })); + array_push(&stack, ((t_edit_entry){ + .tree = &self, + .edit = + (t_edit){ + .start = {input_edit->start_byte, input_edit->start_point}, + .old_end = {input_edit->old_end_byte, input_edit->old_end_point}, + .new_end = {input_edit->new_end_byte, input_edit->new_end_point}, + }, + })); while (stack.size) { t_edit_entry entry = array_pop(&stack); t_edit edit = entry.edit; - bool is_noop = edit.old_end.bytes == edit.start.bytes && - edit.new_end.bytes == edit.start.bytes; - bool is_pure_insertion = edit.old_end.bytes == edit.start.bytes; - bool invalidate_first_row = ts_subtree_depends_on_column(*entry.tree); + bool is_noop = edit.old_end.bytes == edit.start.bytes && edit.new_end.bytes == edit.start.bytes; + bool is_pure_insertion = edit.old_end.bytes == edit.start.bytes; + bool invalidate_first_row = ts_subtree_depends_on_column(*entry.tree); t_length size = ts_subtree_size(*entry.tree); t_length padding = ts_subtree_padding(*entry.tree); t_length total_size = length_add(padding, size); uint32_t lookahead_bytes = ts_subtree_lookahead_bytes(*entry.tree); uint32_t end_byte = total_size.bytes + lookahead_bytes; - if (edit.start.bytes > end_byte || - (is_noop && edit.start.bytes == end_byte)) + if (edit.start.bytes > end_byte || (is_noop && edit.start.bytes == end_byte)) continue; // If the edit is entirely within the space before this subtree, then @@ -10212,8 +9277,7 @@ t_subtree ts_subtree_edit(t_subtree self, const t_input_edit *input_edit, // size. if (edit.old_end.bytes <= padding.bytes) { - padding = - length_add(edit.new_end, length_sub(padding, edit.old_end)); + padding = length_add(edit.new_end, length_sub(padding, edit.old_end)); } // If the edit starts in the space before this subtree and extends into @@ -10221,8 +9285,7 @@ t_subtree ts_subtree_edit(t_subtree self, const t_input_edit *input_edit, // change in the space before it. else if (edit.start.bytes < padding.bytes) { - size = - length_saturating_sub(size, length_sub(edit.old_end, padding)); + size = length_saturating_sub(size, length_sub(edit.old_end, padding)); padding = edit.new_end; } @@ -10235,11 +9298,9 @@ t_subtree ts_subtree_edit(t_subtree self, const t_input_edit *input_edit, // If the edit is within this subtree, resize the subtree to reflect the // edit. - else if (edit.start.bytes < total_size.bytes || - (edit.start.bytes == total_size.bytes && is_pure_insertion)) + else if (edit.start.bytes < total_size.bytes || (edit.start.bytes == total_size.bytes && is_pure_insertion)) { - size = length_add(length_sub(edit.new_end, padding), - length_saturating_sub(total_size, edit.old_end)); + size = length_add(length_sub(edit.new_end, padding), length_saturating_sub(total_size, edit.old_end)); } t_mutable_subtree result = ts_subtree_make_mut(pool, *entry.tree); @@ -10287,8 +9348,7 @@ t_subtree ts_subtree_edit(t_subtree self, const t_input_edit *input_edit, *entry.tree = ts_subtree_from_mut(result); t_length child_left, child_right = length_zero(); - for (uint32_t i = 0, n = ts_subtree_child_count(*entry.tree); i < n; - i++) + for (uint32_t i = 0, n = ts_subtree_child_count(*entry.tree); i < n; i++) { t_subtree *child = &ts_subtree_children(*entry.tree)[i]; t_length child_size = ts_subtree_total_size(*child); @@ -10296,19 +9356,15 @@ t_subtree ts_subtree_edit(t_subtree self, const t_input_edit *input_edit, child_right = length_add(child_left, child_size); // If this child ends before the edit, it is not affected. - if (child_right.bytes + ts_subtree_lookahead_bytes(*child) < - edit.start.bytes) + if (child_right.bytes + ts_subtree_lookahead_bytes(*child) < edit.start.bytes) continue; // Keep editing child nodes until a node is reached that starts // after the edit. Also, if this node's validity depends on its // column position, then continue invaliditing child nodes until // reaching a line break. - if (((child_left.bytes > edit.old_end.bytes) || - (child_left.bytes == edit.old_end.bytes && - child_size.bytes > 0 && i > 0)) && - (!invalidate_first_row || - child_left.extent.row > entry.tree->ptr->padding.extent.row)) + if (((child_left.bytes > edit.old_end.bytes) || (child_left.bytes == edit.old_end.bytes && child_size.bytes > 0 && i > 0)) && + (!invalidate_first_row || child_left.extent.row > entry.tree->ptr->padding.extent.row)) { break; } @@ -10324,8 +9380,7 @@ t_subtree ts_subtree_edit(t_subtree self, const t_input_edit *input_edit, // touches the edit. Subsequent children are only never have any // text inserted into them; they are only shrunk to compensate for // the edit. - if (child_right.bytes > edit.start.bytes || - (child_right.bytes == edit.start.bytes && is_pure_insertion)) + if (child_right.bytes > edit.start.bytes || (child_right.bytes == edit.start.bytes && is_pure_insertion)) { edit.new_end = edit.start; } @@ -10370,10 +9425,8 @@ t_subtree ts_subtree_last_external_token(t_subtree tree) static const char *const ROOT_FIELD = "__ROOT__"; -static size_t ts_subtree__write_to_string( - t_subtree self, char *string, size_t limit, const t_language *language, - bool include_all, t_symbol alias_symbol, bool alias_is_named, - const char *field_name) +static size_t ts_subtree__write_to_string(t_subtree self, char *string, size_t limit, const t_language *language, bool include_all, t_symbol alias_symbol, + bool alias_is_named, const char *field_name) { (void)(self); (void)(string); @@ -10386,24 +9439,16 @@ static size_t ts_subtree__write_to_string( return (0); } -char *ts_subtree_string(t_subtree self, t_symbol alias_symbol, - bool alias_is_named, const t_language *language, - bool include_all) +char *ts_subtree_string(t_subtree self, t_symbol alias_symbol, bool alias_is_named, const t_language *language, bool include_all) { char scratch_string[1]; - size_t size = ts_subtree__write_to_string(self, scratch_string, 1, language, - include_all, alias_symbol, - alias_is_named, ROOT_FIELD) + - 1; - char *result = malloc(size * sizeof(char)); - ts_subtree__write_to_string(self, result, size, language, include_all, - alias_symbol, alias_is_named, ROOT_FIELD); + size_t size = ts_subtree__write_to_string(self, scratch_string, 1, language, include_all, alias_symbol, alias_is_named, ROOT_FIELD) + 1; + char *result = malloc(size * sizeof(char)); + ts_subtree__write_to_string(self, result, size, language, include_all, alias_symbol, alias_is_named, ROOT_FIELD); return result; } -void ts_subtree__print_dot_graph(const t_subtree *self, uint32_t start_offset, - const t_language *language, - t_symbol alias_symbol, void *f) +void ts_subtree__print_dot_graph(const t_subtree *self, uint32_t start_offset, const t_language *language, t_symbol alias_symbol, void *f) { (void)(self); (void)(start_offset); @@ -10414,26 +9459,18 @@ void ts_subtree__print_dot_graph(const t_subtree *self, uint32_t start_offset, bool ts_subtree_external_scanner_state_eq(t_subtree self, t_subtree other) { - const t_external_scanner_state *state_self = - ts_subtree_external_scanner_state(self); - const t_external_scanner_state *state_other = - ts_subtree_external_scanner_state(other); - return ts_external_scanner_state_eq( - state_self, ts_external_scanner_state_data(state_other), - state_other->length); + const t_external_scanner_state *state_self = ts_subtree_external_scanner_state(self); + const t_external_scanner_state *state_other = ts_subtree_external_scanner_state(other); + return ts_external_scanner_state_eq(state_self, ts_external_scanner_state_data(state_other), state_other->length); } -t_first_tree *ts_tree_new(t_subtree root, const t_language *language, - const t_parse_range *included_ranges, - unsigned included_range_count) +t_first_tree *ts_tree_new(t_subtree root, const t_language *language, const t_parse_range *included_ranges, unsigned included_range_count) { t_first_tree *result = malloc(sizeof(t_first_tree)); result->root = root; result->language = ts_language_copy(language); - result->included_ranges = - calloc(included_range_count, sizeof(t_parse_range)); - memcpy(result->included_ranges, included_ranges, - included_range_count * sizeof(t_parse_range)); + result->included_ranges = calloc(included_range_count, sizeof(t_parse_range)); + memcpy(result->included_ranges, included_ranges, included_range_count * sizeof(t_parse_range)); result->included_range_count = included_range_count; return result; } @@ -10441,8 +9478,7 @@ t_first_tree *ts_tree_new(t_subtree root, const t_language *language, t_first_tree *ts_tree_copy(const t_first_tree *self) { ts_subtree_retain(self->root); - return ts_tree_new(self->root, self->language, self->included_ranges, - self->included_range_count); + return ts_tree_new(self->root, self->language, self->included_ranges, self->included_range_count); } void ts_tree_delete(t_first_tree *self) @@ -10463,13 +9499,10 @@ t_parse_node ts_tree_root_node(const t_first_tree *self) return ts_node_new(self, &self->root, ts_subtree_padding(self->root), 0); } -t_parse_node ts_tree_root_node_with_offset(const t_first_tree *self, - uint32_t offset_bytes, - t_point offset_extent) +t_parse_node ts_tree_root_node_with_offset(const t_first_tree *self, uint32_t offset_bytes, t_point offset_extent) { t_length offset = {offset_bytes, offset_extent}; - return ts_node_new(self, &self->root, - length_add(offset, ts_subtree_padding(self->root)), 0); + return ts_node_new(self, &self->root, length_add(offset, ts_subtree_padding(self->root)), 0); } const t_language *ts_tree_language(const t_first_tree *self) @@ -10486,11 +9519,8 @@ void ts_tree_edit(t_first_tree *self, const t_input_edit *edit) { if (range->end_byte != UINT32_MAX) { - range->end_byte = - edit->new_end_byte + (range->end_byte - edit->old_end_byte); - range->end_point = - point_add(edit->new_end_point, - point_sub(range->end_point, edit->old_end_point)); + range->end_byte = edit->new_end_byte + (range->end_byte - edit->old_end_byte); + range->end_point = point_add(edit->new_end_point, point_sub(range->end_point, edit->old_end_point)); if (range->end_byte < edit->new_end_byte) { range->end_byte = UINT32_MAX; @@ -10505,11 +9535,8 @@ void ts_tree_edit(t_first_tree *self, const t_input_edit *edit) } if (range->start_byte >= edit->old_end_byte) { - range->start_byte = - edit->new_end_byte + (range->start_byte - edit->old_end_byte); - range->start_point = - point_add(edit->new_end_point, - point_sub(range->start_point, edit->old_end_point)); + range->start_byte = edit->new_end_byte + (range->start_byte - edit->old_end_byte); + range->start_point = point_add(edit->new_end_point, point_sub(range->start_point, edit->old_end_point)); if (range->start_byte < edit->new_end_byte) { range->start_byte = UINT32_MAX; @@ -10528,20 +9555,15 @@ void ts_tree_edit(t_first_tree *self, const t_input_edit *edit) ts_subtree_pool_delete(&pool); } -t_parse_range *ts_tree_included_ranges(const t_first_tree *self, - uint32_t *length) +t_parse_range *ts_tree_included_ranges(const t_first_tree *self, uint32_t *length) { *length = self->included_range_count; - t_parse_range *ranges = - calloc(self->included_range_count, sizeof(t_parse_range)); - memcpy(ranges, self->included_ranges, - self->included_range_count * sizeof(t_parse_range)); + t_parse_range *ranges = calloc(self->included_range_count, sizeof(t_parse_range)); + memcpy(ranges, self->included_ranges, self->included_range_count * sizeof(t_parse_range)); return ranges; } -t_parse_range *ts_tree_get_changed_ranges(const t_first_tree *old_tree, - const t_first_tree *new_tree, - uint32_t *length) +t_parse_range *ts_tree_get_changed_ranges(const t_first_tree *old_tree, const t_first_tree *new_tree, uint32_t *length) { t_tree_cursor cursor1 = {NULL, array_new(), 0}; t_tree_cursor cursor2 = {NULL, array_new(), 0}; @@ -10549,15 +9571,11 @@ t_parse_range *ts_tree_get_changed_ranges(const t_first_tree *old_tree, ts_tree_cursor_init(&cursor2, ts_tree_root_node(new_tree)); t_range_array included_range_differences = array_new(); - ts_range_array_get_changed_ranges( - old_tree->included_ranges, old_tree->included_range_count, - new_tree->included_ranges, new_tree->included_range_count, - &included_range_differences); + ts_range_array_get_changed_ranges(old_tree->included_ranges, old_tree->included_range_count, new_tree->included_ranges, new_tree->included_range_count, + &included_range_differences); t_parse_range *result; - *length = ts_subtree_get_changed_ranges( - &old_tree->root, &new_tree->root, &cursor1, &cursor2, - old_tree->language, &included_range_differences, &result); + *length = ts_subtree_get_changed_ranges(&old_tree->root, &new_tree->root, &cursor1, &cursor2, old_tree->language, &included_range_differences, &result); array_delete(&included_range_differences); array_delete(&cursor1.stack); @@ -10573,8 +9591,7 @@ t_parse_range *ts_tree_get_changed_ranges(const t_first_tree *old_tree, int _ts_dup(HANDLE handle) { HANDLE dup_handle; - if (!DuplicateHandle(GetCurrentProcess(), handle, GetCurrentProcess(), - &dup_handle, 0, FALSE, DUPLICATE_SAME_ACCESS)) + if (!DuplicateHandle(GetCurrentProcess(), handle, GetCurrentProcess(), &dup_handle, 0, FALSE, DUPLICATE_SAME_ACCESS)) return -1; return _open_osfhandle((intptr_t)dup_handle, 0); @@ -10606,8 +9623,7 @@ void ts_tree_print_dot_graph(const t_first_tree *self, int file_descriptor) // t_cursor_child_iterator -static inline bool ts_tree_cursor_is_entry_visible(const t_tree_cursor *self, - uint32_t index) +static inline bool ts_tree_cursor_is_entry_visible(const t_tree_cursor *self, uint32_t index) { t_tree_cursor_entry *entry = &self->stack.contents[index]; if (index == 0 || ts_subtree_visible(*entry->subtree)) @@ -10617,9 +9633,7 @@ static inline bool ts_tree_cursor_is_entry_visible(const t_tree_cursor *self, else if (!ts_subtree_extra(*entry->subtree)) { t_tree_cursor_entry *parent_entry = &self->stack.contents[index - 1]; - return ts_language_alias_at(self->tree->language, - parent_entry->subtree->ptr->production_id, - entry->structural_child_index); + return ts_language_alias_at(self->tree->language, parent_entry->subtree->ptr->production_id, entry->structural_child_index); } else { @@ -10627,17 +9641,14 @@ static inline bool ts_tree_cursor_is_entry_visible(const t_tree_cursor *self, } } -static inline t_cursor_child_iterator ts_tree_cursor_iterate_children( - const t_tree_cursor *self) +static inline t_cursor_child_iterator ts_tree_cursor_iterate_children(const t_tree_cursor *self) { t_tree_cursor_entry *last_entry = array_back(&self->stack); if (ts_subtree_child_count(*last_entry->subtree) == 0) { - return (t_cursor_child_iterator){ - NULL_SUBTREE, self->tree, length_zero(), 0, 0, 0, NULL}; + return (t_cursor_child_iterator){NULL_SUBTREE, self->tree, length_zero(), 0, 0, 0, NULL}; } - const t_symbol *alias_sequence = ts_language_alias_sequence( - self->tree->language, last_entry->subtree->ptr->production_id); + const t_symbol *alias_sequence = ts_language_alias_sequence(self->tree->language, last_entry->subtree->ptr->production_id); uint32_t descendant_index = last_entry->descendant_index; if (ts_tree_cursor_is_entry_visible(self, self->stack.size - 1)) @@ -10656,13 +9667,11 @@ static inline t_cursor_child_iterator ts_tree_cursor_iterate_children( }; } -static inline bool ts_tree_cursor_child_iterator_next( - t_cursor_child_iterator *self, t_tree_cursor_entry *result, bool *visible) +static inline bool ts_tree_cursor_child_iterator_next(t_cursor_child_iterator *self, t_tree_cursor_entry *result, bool *visible) { if (!self->parent.ptr || self->child_index == self->parent.ptr->child_count) return false; - const t_subtree *child = - &ts_subtree_children(self->parent)[self->child_index]; + const t_subtree *child = &ts_subtree_children(self->parent)[self->child_index]; *result = (t_tree_cursor_entry){ .subtree = child, .position = self->position, @@ -10692,10 +9701,8 @@ static inline bool ts_tree_cursor_child_iterator_next( if (self->child_index < self->parent.ptr->child_count) { - t_subtree next_child = - ts_subtree_children(self->parent)[self->child_index]; - self->position = - length_add(self->position, ts_subtree_padding(next_child)); + t_subtree next_child = ts_subtree_children(self->parent)[self->child_index]; + self->position = length_add(self->position, ts_subtree_padding(next_child)); } return true; @@ -10719,15 +9726,13 @@ static inline t_length length_backtrack(t_length a, t_length b) return result; } -static inline bool ts_tree_cursor_child_iterator_previous( - t_cursor_child_iterator *self, t_tree_cursor_entry *result, bool *visible) +static inline bool ts_tree_cursor_child_iterator_previous(t_cursor_child_iterator *self, t_tree_cursor_entry *result, bool *visible) { // this is mostly a reverse `ts_tree_cursor_child_iterator_next` taking into // account unsigned underflow if (!self->parent.ptr || (int8_t)self->child_index == -1) return false; - const t_subtree *child = - &ts_subtree_children(self->parent)[self->child_index]; + const t_subtree *child = &ts_subtree_children(self->parent)[self->child_index]; *result = (t_tree_cursor_entry){ .subtree = child, .position = self->position, @@ -10742,16 +9747,14 @@ static inline bool ts_tree_cursor_child_iterator_previous( self->structural_child_index--; } - self->position = - length_backtrack(self->position, ts_subtree_padding(*child)); + self->position = length_backtrack(self->position, ts_subtree_padding(*child)); self->child_index--; // unsigned can underflow so compare it to child_count if (self->child_index < self->parent.ptr->child_count) { - t_subtree previous_child = - ts_subtree_children(self->parent)[self->child_index]; - t_length size = ts_subtree_size(previous_child); + t_subtree previous_child = ts_subtree_children(self->parent)[self->child_index]; + t_length size = ts_subtree_size(previous_child); self->position = length_backtrack(self->position, size); } @@ -10779,8 +9782,7 @@ void ts_tree_cursor_init(t_tree_cursor *self, t_parse_node node) array_clear(&self->stack); array_push(&self->stack, ((t_tree_cursor_entry){ .subtree = (const t_subtree *)node.id, - .position = {ts_node_start_byte(node), - ts_node_start_point(node)}, + .position = {ts_node_start_byte(node), ts_node_start_point(node)}, .child_index = 0, .structural_child_index = 0, .descendant_index = 0, @@ -10795,8 +9797,7 @@ void ts_tree_cursor_delete(t_tree_cursor *_self) // t_tree_cursor - walking the tree -t_tree_cursor_step ts_tree_cursor_goto_first_child_internal( - t_tree_cursor *_self) +t_tree_cursor_step ts_tree_cursor_goto_first_child_internal(t_tree_cursor *_self) { t_tree_cursor *self = (t_tree_cursor *)_self; bool visible; @@ -10885,8 +9886,7 @@ bool ts_tree_cursor_goto_last_child(t_tree_cursor *self) return false; } -static inline int64_t ts_tree_cursor_goto_first_child_for_byte_and_point( - t_tree_cursor *_self, uint32_t goal_byte, t_point goal_point) +static inline int64_t ts_tree_cursor_goto_first_child_for_byte_and_point(t_tree_cursor *_self, uint32_t goal_byte, t_point goal_point) { t_tree_cursor *self = (t_tree_cursor *)_self; uint32_t initial_size = self->stack.size; @@ -10899,16 +9899,12 @@ static inline int64_t ts_tree_cursor_goto_first_child_for_byte_and_point( bool visible; t_tree_cursor_entry entry; - t_cursor_child_iterator iterator = - ts_tree_cursor_iterate_children(self); + t_cursor_child_iterator iterator = ts_tree_cursor_iterate_children(self); while (ts_tree_cursor_child_iterator_next(&iterator, &entry, &visible)) { - t_length entry_end = - length_add(entry.position, ts_subtree_size(*entry.subtree)); - bool at_goal = entry_end.bytes >= goal_byte && - point_gte(entry_end.extent, goal_point); - uint32_t visible_child_count = - ts_subtree_visible_child_count(*entry.subtree); + t_length entry_end = length_add(entry.position, ts_subtree_size(*entry.subtree)); + bool at_goal = entry_end.bytes >= goal_byte && point_gte(entry_end.extent, goal_point); + uint32_t visible_child_count = ts_subtree_visible_child_count(*entry.subtree); if (at_goal) { if (visible) @@ -10938,23 +9934,17 @@ static inline int64_t ts_tree_cursor_goto_first_child_for_byte_and_point( return -1; } -int64_t ts_tree_cursor_goto_first_child_for_byte(t_tree_cursor *self, - uint32_t goal_byte) +int64_t ts_tree_cursor_goto_first_child_for_byte(t_tree_cursor *self, uint32_t goal_byte) { - return ts_tree_cursor_goto_first_child_for_byte_and_point(self, goal_byte, - POINT_ZERO); + return ts_tree_cursor_goto_first_child_for_byte_and_point(self, goal_byte, POINT_ZERO); } -int64_t ts_tree_cursor_goto_first_child_for_point(t_tree_cursor *self, - t_point goal_point) +int64_t ts_tree_cursor_goto_first_child_for_point(t_tree_cursor *self, t_point goal_point) { - return ts_tree_cursor_goto_first_child_for_byte_and_point(self, 0, - goal_point); + return ts_tree_cursor_goto_first_child_for_byte_and_point(self, 0, goal_point); } -t_tree_cursor_step ts_tree_cursor_goto_sibling_internal( - t_tree_cursor *_self, - bool (*advance)(t_cursor_child_iterator *, t_tree_cursor_entry *, bool *)) +t_tree_cursor_step ts_tree_cursor_goto_sibling_internal(t_tree_cursor *_self, bool (*advance)(t_cursor_child_iterator *, t_tree_cursor_entry *, bool *)) { t_tree_cursor *self = (t_tree_cursor *)_self; uint32_t initial_size = self->stack.size; @@ -10962,8 +9952,7 @@ t_tree_cursor_step ts_tree_cursor_goto_sibling_internal( while (self->stack.size > 1) { t_tree_cursor_entry entry = array_pop(&self->stack); - t_cursor_child_iterator iterator = - ts_tree_cursor_iterate_children(self); + t_cursor_child_iterator iterator = ts_tree_cursor_iterate_children(self); iterator.child_index = entry.child_index; iterator.structural_child_index = entry.structural_child_index; iterator.position = entry.position; @@ -10994,11 +9983,9 @@ t_tree_cursor_step ts_tree_cursor_goto_sibling_internal( return TreeCursorStepNone; } -t_tree_cursor_step ts_tree_cursor_goto_next_sibling_internal( - t_tree_cursor *_self) +t_tree_cursor_step ts_tree_cursor_goto_next_sibling_internal(t_tree_cursor *_self) { - return ts_tree_cursor_goto_sibling_internal( - _self, ts_tree_cursor_child_iterator_next); + return ts_tree_cursor_goto_sibling_internal(_self, ts_tree_cursor_child_iterator_next); } bool ts_tree_cursor_goto_next_sibling(t_tree_cursor *self) @@ -11015,16 +10002,14 @@ bool ts_tree_cursor_goto_next_sibling(t_tree_cursor *self) } } -t_tree_cursor_step ts_tree_cursor_goto_previous_sibling_internal( - t_tree_cursor *_self) +t_tree_cursor_step ts_tree_cursor_goto_previous_sibling_internal(t_tree_cursor *_self) { // since subtracting across row loses column information, we may have to // restore it t_tree_cursor *self = (t_tree_cursor *)_self; // for that, save current position before traversing - t_tree_cursor_step step = ts_tree_cursor_goto_sibling_internal( - _self, ts_tree_cursor_child_iterator_previous); + t_tree_cursor_step step = ts_tree_cursor_goto_sibling_internal(_self, ts_tree_cursor_child_iterator_previous); if (step == TreeCursorStepNone) return step; @@ -11033,11 +10018,10 @@ t_tree_cursor_step ts_tree_cursor_goto_previous_sibling_internal( return step; // restore position from the parent node - const t_tree_cursor_entry *parent = - &self->stack.contents[self->stack.size - 2]; - t_length position = parent->position; - uint32_t child_index = array_back(&self->stack)->child_index; - const t_subtree *children = ts_subtree_children((*(parent->subtree))); + const t_tree_cursor_entry *parent = &self->stack.contents[self->stack.size - 2]; + t_length position = parent->position; + uint32_t child_index = array_back(&self->stack)->child_index; + const t_subtree *children = ts_subtree_children((*(parent->subtree))); if (child_index > 0) { @@ -11048,8 +10032,7 @@ t_tree_cursor_step ts_tree_cursor_goto_previous_sibling_internal( { position = length_add(position, ts_subtree_total_size(children[i])); } - position = - length_add(position, ts_subtree_padding(children[child_index])); + position = length_add(position, ts_subtree_padding(children[child_index])); } array_back(&self->stack)->position = position; @@ -11085,8 +10068,7 @@ bool ts_tree_cursor_goto_parent(t_tree_cursor *_self) return false; } -void ts_tree_cursor_goto_descendant(t_tree_cursor *_self, - uint32_t goal_descendant_index) +void ts_tree_cursor_goto_descendant(t_tree_cursor *_self, uint32_t goal_descendant_index) { t_tree_cursor *self = (t_tree_cursor *)_self; @@ -11096,11 +10078,8 @@ void ts_tree_cursor_goto_descendant(t_tree_cursor *_self, uint32_t i = self->stack.size - 1; t_tree_cursor_entry *entry = &self->stack.contents[i]; uint32_t next_descendant_index = - entry->descendant_index + - (ts_tree_cursor_is_entry_visible(self, i) ? 1 : 0) + - ts_subtree_visible_descendant_count(*entry->subtree); - if ((entry->descendant_index <= goal_descendant_index) && - (next_descendant_index > goal_descendant_index)) + entry->descendant_index + (ts_tree_cursor_is_entry_visible(self, i) ? 1 : 0) + ts_subtree_visible_descendant_count(*entry->subtree); + if ((entry->descendant_index <= goal_descendant_index) && (next_descendant_index > goal_descendant_index)) { break; } @@ -11121,8 +10100,7 @@ void ts_tree_cursor_goto_descendant(t_tree_cursor *_self, did_descend = false; bool visible; t_tree_cursor_entry entry; - t_cursor_child_iterator iterator = - ts_tree_cursor_iterate_children(self); + t_cursor_child_iterator iterator = ts_tree_cursor_iterate_children(self); if (iterator.descendant_index > goal_descendant_index) { return; @@ -11161,23 +10139,16 @@ t_parse_node ts_tree_cursor_current_node(const t_tree_cursor *_self) t_symbol alias_symbol = self->root_alias_symbol; if (self->stack.size > 1 && !ts_subtree_extra(*last_entry->subtree)) { - t_tree_cursor_entry *parent_entry = - &self->stack.contents[self->stack.size - 2]; - alias_symbol = ts_language_alias_at( - self->tree->language, parent_entry->subtree->ptr->production_id, - last_entry->structural_child_index); + t_tree_cursor_entry *parent_entry = &self->stack.contents[self->stack.size - 2]; + alias_symbol = ts_language_alias_at(self->tree->language, parent_entry->subtree->ptr->production_id, last_entry->structural_child_index); } - return ts_node_new(self->tree, last_entry->subtree, last_entry->position, - alias_symbol); + return ts_node_new(self->tree, last_entry->subtree, last_entry->position, alias_symbol); } // Private - Get various facts about the current node that are needed // when executing tree queries. -void ts_tree_cursor_current_status( - const t_tree_cursor *_self, t_field_id *field_id, bool *has_later_siblings, - bool *has_later_named_siblings, - bool *can_have_later_siblings_with_this_field, t_symbol *supertypes, - unsigned *supertype_count) +void ts_tree_cursor_current_status(const t_tree_cursor *_self, t_field_id *field_id, bool *has_later_siblings, bool *has_later_named_siblings, + bool *can_have_later_siblings_with_this_field, t_symbol *supertypes, unsigned *supertype_count) { const t_tree_cursor *self = (const t_tree_cursor *)_self; unsigned max_supertypes = *supertype_count; @@ -11194,20 +10165,15 @@ void ts_tree_cursor_current_status( t_tree_cursor_entry *entry = &self->stack.contents[i]; t_tree_cursor_entry *parent_entry = &self->stack.contents[i - 1]; - const t_symbol *alias_sequence = ts_language_alias_sequence( - self->tree->language, parent_entry->subtree->ptr->production_id); + const t_symbol *alias_sequence = ts_language_alias_sequence(self->tree->language, parent_entry->subtree->ptr->production_id); -#define subtree_symbol(subtree, structural_child_index) \ - ((!ts_subtree_extra(subtree) && alias_sequence && \ - alias_sequence[structural_child_index]) \ - ? alias_sequence[structural_child_index] \ - : ts_subtree_symbol(subtree)) +#define subtree_symbol(subtree, structural_child_index) \ + ((!ts_subtree_extra(subtree) && alias_sequence && alias_sequence[structural_child_index]) ? alias_sequence[structural_child_index] \ + : ts_subtree_symbol(subtree)) // Stop walking up when a visible ancestor is found. - t_symbol entry_symbol = - subtree_symbol(*entry->subtree, entry->structural_child_index); - t_symbol_metadata entry_metadata = - ts_language_symbol_metadata(self->tree->language, entry_symbol); + t_symbol entry_symbol = subtree_symbol(*entry->subtree, entry->structural_child_index); + t_symbol_metadata entry_metadata = ts_language_symbol_metadata(self->tree->language, entry_symbol); if (i != self->stack.size - 1 && entry_metadata.visible) break; @@ -11227,12 +10193,8 @@ void ts_tree_cursor_current_status( structural_child_index++; for (unsigned j = entry->child_index + 1; j < sibling_count; j++) { - t_subtree sibling = - ts_subtree_children(*parent_entry->subtree)[j]; - t_symbol_metadata sibling_metadata = - ts_language_symbol_metadata( - self->tree->language, - subtree_symbol(sibling, structural_child_index)); + t_subtree sibling = ts_subtree_children(*parent_entry->subtree)[j]; + t_symbol_metadata sibling_metadata = ts_language_symbol_metadata(self->tree->language, subtree_symbol(sibling, structural_child_index)); if (sibling_metadata.visible) { *has_later_siblings = true; @@ -11265,18 +10227,14 @@ void ts_tree_cursor_current_status( if (!ts_subtree_extra(*entry->subtree)) { const t_field_map_entry *field_map, *field_map_end; - ts_language_field_map(self->tree->language, - parent_entry->subtree->ptr->production_id, - &field_map, &field_map_end); + ts_language_field_map(self->tree->language, parent_entry->subtree->ptr->production_id, &field_map, &field_map_end); // Look for a field name associated with the current node. if (!*field_id) { - for (const t_field_map_entry *map = field_map; - map < field_map_end; map++) + for (const t_field_map_entry *map = field_map; map < field_map_end; map++) { - if (!map->inherited && - map->child_index == entry->structural_child_index) + if (!map->inherited && map->child_index == entry->structural_child_index) { *field_id = map->field_id; break; @@ -11288,11 +10246,9 @@ void ts_tree_cursor_current_status( // same field name. if (*field_id) { - for (const t_field_map_entry *map = field_map; - map < field_map_end; map++) + for (const t_field_map_entry *map = field_map; map < field_map_end; map++) { - if (map->field_id == *field_id && - map->child_index > entry->structural_child_index) + if (map->field_id == *field_id && map->child_index > entry->structural_child_index) { *can_have_later_siblings_with_this_field = true; break; @@ -11328,16 +10284,12 @@ t_parse_node ts_tree_cursor_parent_node(const t_tree_cursor *_self) if (i > 0) { t_tree_cursor_entry *parent_entry = &self->stack.contents[i - 1]; - alias_symbol = ts_language_alias_at( - self->tree->language, parent_entry->subtree->ptr->production_id, - entry->structural_child_index); - is_visible = - (alias_symbol != 0) || ts_subtree_visible(*entry->subtree); + alias_symbol = ts_language_alias_at(self->tree->language, parent_entry->subtree->ptr->production_id, entry->structural_child_index); + is_visible = (alias_symbol != 0) || ts_subtree_visible(*entry->subtree); } if (is_visible) { - return ts_node_new(self->tree, entry->subtree, entry->position, - alias_symbol); + return ts_node_new(self->tree, entry->subtree, entry->position, alias_symbol); } } return ts_node_new(NULL, NULL, length_zero(), 0); @@ -11354,22 +10306,17 @@ t_field_id ts_tree_cursor_current_field_id(const t_tree_cursor *_self) t_tree_cursor_entry *parent_entry = &self->stack.contents[i - 1]; // Stop walking up when another visible node is found. - if (i != self->stack.size - 1 && - ts_tree_cursor_is_entry_visible(self, i)) + if (i != self->stack.size - 1 && ts_tree_cursor_is_entry_visible(self, i)) break; if (ts_subtree_extra(*entry->subtree)) break; const t_field_map_entry *field_map, *field_map_end; - ts_language_field_map(self->tree->language, - parent_entry->subtree->ptr->production_id, - &field_map, &field_map_end); - for (const t_field_map_entry *map = field_map; map < field_map_end; - map++) + ts_language_field_map(self->tree->language, parent_entry->subtree->ptr->production_id, &field_map, &field_map_end); + for (const t_field_map_entry *map = field_map; map < field_map_end; map++) { - if (!map->inherited && - map->child_index == entry->structural_child_index) + if (!map->inherited && map->child_index == entry->structural_child_index) { return map->field_id; } diff --git a/parser/src/funcs.c b/parser/src/funcs.c new file mode 100644 index 00000000..22c33137 --- /dev/null +++ b/parser/src/funcs.c @@ -0,0 +1,711 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* funcs.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: maiboyer +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/05/30 19:21:01 by maiboyer #+# #+# */ +/* Updated: 2024/05/30 19:22:53 by maiboyer ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "./api.h" + +size_t atomic_load(const volatile size_t *p) +{ + return (*p); +} + +uint32_t atomic_inc(volatile uint32_t *p) +{ + return (++(*p)); +} + +uint32_t atomic_dec(volatile uint32_t *p) +{ + return (--(*p)); +} + +bool ts_language_is_symbol_external(const t_language *self, t_symbol symbol) +{ + return 0 < symbol && symbol < self->external_token_count + 1; +} + +const t_parse_action *ts_language_actions(const t_language *self, t_state_id state, t_symbol symbol, uint32_t *count) +{ + t_table_entry entry; + ts_language_table_entry(self, state, symbol, &entry); + *count = entry.action_count; + return entry.actions; +} + +bool ts_language_has_reduce_action(const t_language *self, t_state_id state, t_symbol symbol) +{ + t_table_entry entry; + ts_language_table_entry(self, state, symbol, &entry); + return entry.action_count > 0 && entry.actions[0].type == TSParseActionTypeReduce; +} + +uint16_t ts_language_lookup(const t_language *self, t_state_id state, t_symbol symbol) +{ + if (state >= self->large_state_count) + { + uint32_t index = self->small_parse_table_map[state - self->large_state_count]; + const uint16_t *data = &self->small_parse_table[index]; + uint16_t group_count = *(data++); + for (unsigned i = 0; i < group_count; i++) + { + uint16_t section_value = *(data++); + uint16_t symbol_count = *(data++); + for (unsigned j = 0; j < symbol_count; j++) + { + if (*(data++) == symbol) + return section_value; + } + } + return 0; + } + else + { + return self->parse_table[state * self->symbol_count + symbol]; + } +} + +bool ts_language_has_actions(const t_language *self, t_state_id state, t_symbol symbol) +{ + return ts_language_lookup(self, state, symbol) != 0; +} + +t_lookahead_iterator ts_language_lookaheads(const t_language *self, t_state_id state) +{ + bool is_small_state = state >= self->large_state_count; + const uint16_t *data; + const uint16_t *group_end = NULL; + uint16_t group_count = 0; + if (is_small_state) + { + uint32_t index = self->small_parse_table_map[state - self->large_state_count]; + data = &self->small_parse_table[index]; + group_end = data + 1; + group_count = *data; + } + else + { + data = &self->parse_table[state * self->symbol_count] - 1; + } + return (t_lookahead_iterator){ + .language = self, + .data = data, + .group_end = group_end, + .group_count = group_count, + .is_small_state = is_small_state, + .symbol = UINT16_MAX, + .next_state = 0, + }; +} + +bool ts_lookahead_iterator__next(t_lookahead_iterator *self) +{ + // For small parse states, valid symbols are listed explicitly, + // grouped by their value. There's no need to look up the actions + // again until moving to the next group. + if (self->is_small_state) + { + self->data++; + if (self->data == self->group_end) + { + if (self->group_count == 0) + return false; + self->group_count--; + self->table_value = *(self->data++); + unsigned symbol_count = *(self->data++); + self->group_end = self->data + symbol_count; + self->symbol = *self->data; + } + else + { + self->symbol = *self->data; + return true; + } + } + + // For large parse states, iterate through every symbol until one + // is found that has valid actions. + else + { + do + { + self->data++; + self->symbol++; + if (self->symbol >= self->language->symbol_count) + return false; + self->table_value = *self->data; + } while (!self->table_value); + } + + // Depending on if the symbols is terminal or non-terminal, the table value + // either represents a list of actions or a successor state. + if (self->symbol < self->language->token_count) + { + const t_parse_action_entry *entry = &self->language->parse_actions[self->table_value]; + self->action_count = entry->entry.count; + self->actions = (const t_parse_action *)(entry + 1); + self->next_state = 0; + } + else + { + self->action_count = 0; + self->next_state = self->table_value; + } + return true; +} + +bool ts_language_state_is_primary(const t_language *self, t_state_id state) +{ + if (self->version >= LANGUAGE_VERSION_WITH_PRIMARY_STATES) + { + return state == self->primary_state_ids[state]; + } + else + { + return true; + } +} + +const bool *ts_language_enabled_external_tokens(const t_language *self, unsigned external_scanner_state) +{ + if (external_scanner_state == 0) + { + return NULL; + } + else + { + return self->external_scanner.states + self->external_token_count * external_scanner_state; + } +} + +const t_symbol *ts_language_alias_sequence(const t_language *self, uint32_t production_id) +{ + return production_id ? &self->alias_sequences[production_id * self->max_alias_sequence_length] : NULL; +} + +t_symbol ts_language_alias_at(const t_language *self, uint32_t production_id, uint32_t child_index) +{ + return production_id ? self->alias_sequences[production_id * self->max_alias_sequence_length + child_index] : 0; +} + +void ts_language_field_map(const t_language *self, uint32_t production_id, const t_field_map_entry **start, const t_field_map_entry **end) +{ + if (self->field_count == 0) + { + *start = NULL; + *end = NULL; + return; + } + + t_field_map_slice slice = self->field_map_slices[production_id]; + *start = &self->field_map_entries[slice.index]; + *end = &self->field_map_entries[slice.index] + slice.length; +} + +void ts_language_aliases_for_symbol(const t_language *self, t_symbol original_symbol, const t_symbol **start, const t_symbol **end) +{ + *start = &self->public_symbol_map[original_symbol]; + *end = *start + 1; + + unsigned idx = 0; + for (;;) + { + t_symbol symbol = self->alias_map[idx++]; + if (symbol == 0 || symbol > original_symbol) + break; + uint16_t count = self->alias_map[idx++]; + if (symbol == original_symbol) + { + *start = &self->alias_map[idx]; + *end = &self->alias_map[idx + count]; + break; + } + idx += count; + } +} + +bool length_is_undefined(t_length length) +{ + return length.bytes == 0 && length.extent.column != 0; +} + +t_length length_min(t_length len1, t_length len2) +{ + return (len1.bytes < len2.bytes) ? len1 : len2; +} + +t_length length_add(t_length len1, t_length len2) +{ + t_length result; + result.bytes = len1.bytes + len2.bytes; + result.extent = point_add(len1.extent, len2.extent); + return result; +} + +t_length length_sub(t_length len1, t_length len2) +{ + t_length result; + result.bytes = len1.bytes - len2.bytes; + result.extent = point_sub(len1.extent, len2.extent); + return result; +} + +t_length length_zero(void) +{ + t_length result = {0, {0, 0}}; + return result; +} + +t_length length_saturating_sub(t_length len1, t_length len2) +{ + if (len1.bytes > len2.bytes) + { + return length_sub(len1, len2); + } + else + { + return length_zero(); + } +} + +bool set_contains(t_char_range *ranges, uint32_t len, int32_t lookahead) +{ + uint32_t index = 0; + uint32_t size = len - index; + while (size > 1) + { + uint32_t half_size = size / 2; + uint32_t mid_index = index + half_size; + t_char_range *range = &ranges[mid_index]; + if (lookahead >= range->start && lookahead <= range->end) + { + return true; + } + else if (lookahead > range->end) + { + index = mid_index; + } + size -= half_size; + } + t_char_range *range = &ranges[index]; + return (lookahead >= range->start && lookahead <= range->end); +} + +t_point point__new(unsigned row, unsigned column) +{ + t_point result = {row, column}; + return result; +} + +t_point point_add(t_point a, t_point b) +{ + if (b.row > 0) + return point__new(a.row + b.row, b.column); + else + return point__new(a.row, a.column + b.column); +} + +t_point point_sub(t_point a, t_point b) +{ + if (a.row > b.row) + return point__new(a.row - b.row, a.column); + else + return point__new(0, a.column - b.column); +} + +bool point_lte(t_point a, t_point b) +{ + return (a.row < b.row) || (a.row == b.row && a.column <= b.column); +} + +bool point_lt(t_point a, t_point b) +{ + return (a.row < b.row) || (a.row == b.row && a.column < b.column); +} + +bool point_gt(t_point a, t_point b) +{ + return (a.row > b.row) || (a.row == b.row && a.column > b.column); +} + +bool point_gte(t_point a, t_point b) +{ + return (a.row > b.row) || (a.row == b.row && a.column >= b.column); +} + +bool point_eq(t_point a, t_point b) +{ + return a.row == b.row && a.column == b.column; +} + +t_point point_min(t_point a, t_point b) +{ + if (a.row < b.row || (a.row == b.row && a.column < b.column)) + return a; + else + return b; +} + +t_point point_max(t_point a, t_point b) +{ + if (a.row > b.row || (a.row == b.row && a.column > b.column)) + return a; + else + return b; +} + +void ts_reduce_action_set_add(t_reduce_action_set *self, t_reduce_action new_action) +{ + for (uint32_t i = 0; i < self->size; i++) + { + t_reduce_action action = self->contents[i]; + if (action.symbol == new_action.symbol && action.count == new_action.count) + return; + } + array_push(self, new_action); +} + +t_reusable_node reusable_node_new(void) +{ + return (t_reusable_node){array_new(), NULL_SUBTREE}; +} + +void reusable_node_clear(t_reusable_node *self) +{ + array_clear(&self->stack); + self->last_external_token = NULL_SUBTREE; +} + +t_subtree reusable_node_tree(t_reusable_node *self) +{ + return self->stack.size > 0 ? self->stack.contents[self->stack.size - 1].tree : NULL_SUBTREE; +} + +uint32_t reusable_node_byte_offset(t_reusable_node *self) +{ + return self->stack.size > 0 ? self->stack.contents[self->stack.size - 1].byte_offset : UINT32_MAX; +} + +void reusable_node_delete(t_reusable_node *self) +{ + array_delete(&self->stack); +} + +void reusable_node_advance(t_reusable_node *self) +{ + t_stack_entry last_entry = *array_back(&self->stack); + uint32_t byte_offset = last_entry.byte_offset + ts_subtree_total_bytes(last_entry.tree); + if (ts_subtree_has_external_tokens(last_entry.tree)) + { + self->last_external_token = ts_subtree_last_external_token(last_entry.tree); + } + + t_subtree tree; + uint32_t next_index; + do + { + t_stack_entry popped_entry = array_pop(&self->stack); + next_index = popped_entry.child_index + 1; + if (self->stack.size == 0) + return; + tree = array_back(&self->stack)->tree; + } while (ts_subtree_child_count(tree) <= next_index); + + array_push(&self->stack, ((t_stack_entry){ + .tree = ts_subtree_children(tree)[next_index], + .child_index = next_index, + .byte_offset = byte_offset, + })); +} + +bool reusable_node_descend(t_reusable_node *self) +{ + t_stack_entry last_entry = *array_back(&self->stack); + if (ts_subtree_child_count(last_entry.tree) > 0) + { + array_push(&self->stack, ((t_stack_entry){ + .tree = ts_subtree_children(last_entry.tree)[0], + .child_index = 0, + .byte_offset = last_entry.byte_offset, + })); + return true; + } + else + { + return false; + } +} + +void reusable_node_advance_past_leaf(t_reusable_node *self) +{ + while (reusable_node_descend(self)) + { + } + reusable_node_advance(self); +} + +void reusable_node_reset(t_reusable_node *self, t_subtree tree) +{ + reusable_node_clear(self); + array_push(&self->stack, ((t_stack_entry){ + .tree = tree, + .child_index = 0, + .byte_offset = 0, + })); + + // Never reuse the root node, because it has a non-standard internal + // structure due to transformations that are applied when it is accepted: + // adding the EOF child and any extra children. + if (!reusable_node_descend(self)) + { + reusable_node_clear(self); + } +} + + +#define SUBTREE_GET(self, name) ((self).data.is_inline ? (self).data.name : (self).ptr->name) + +t_symbol ts_subtree_symbol(t_subtree self) +{ + return SUBTREE_GET(self, symbol); +} + +bool ts_subtree_visible(t_subtree self) +{ + return SUBTREE_GET(self, visible); +} + +bool ts_subtree_named(t_subtree self) +{ + return SUBTREE_GET(self, named); +} + +bool ts_subtree_extra(t_subtree self) +{ + return SUBTREE_GET(self, extra); +} + +bool ts_subtree_has_changes(t_subtree self) +{ + return SUBTREE_GET(self, has_changes); +} + +bool ts_subtree_missing(t_subtree self) +{ + return SUBTREE_GET(self, is_missing); +} + +bool ts_subtree_is_keyword(t_subtree self) +{ + return SUBTREE_GET(self, is_keyword); +} + +t_state_id ts_subtree_parse_state(t_subtree self) +{ + return SUBTREE_GET(self, parse_state); +} + +uint32_t ts_subtree_lookahead_bytes(t_subtree self) +{ + return SUBTREE_GET(self, lookahead_bytes); +} + +size_t ts_subtree_alloc_size(uint32_t child_count) +{ + return child_count * sizeof(t_subtree) + sizeof(t_subtree_heap_data); +} + +void ts_subtree_set_extra(t_mutable_subtree *self, bool is_extra) +{ + if (self->data.is_inline) + { + self->data.extra = is_extra; + } + else + { + self->ptr->extra = is_extra; + } +} + +t_symbol ts_subtree_leaf_symbol(t_subtree self) +{ + if (self.data.is_inline) + return self.data.symbol; + if (self.ptr->child_count == 0) + return self.ptr->symbol; + return self.ptr->first_leaf.symbol; +} + +t_state_id ts_subtree_leaf_parse_state(t_subtree self) +{ + if (self.data.is_inline) + return self.data.parse_state; + if (self.ptr->child_count == 0) + return self.ptr->parse_state; + return self.ptr->first_leaf.parse_state; +} + +t_length ts_subtree_padding(t_subtree self) +{ + if (self.data.is_inline) + { + t_length result = {self.data.padding_bytes, {self.data.padding_rows, self.data.padding_columns}}; + return result; + } + else + { + return self.ptr->padding; + } +} + +t_length ts_subtree_size(t_subtree self) +{ + if (self.data.is_inline) + { + t_length result = {self.data.size_bytes, {0, self.data.size_bytes}}; + return result; + } + else + { + return self.ptr->size; + } +} + +t_length ts_subtree_total_size(t_subtree self) +{ + return length_add(ts_subtree_padding(self), ts_subtree_size(self)); +} + +uint32_t ts_subtree_total_bytes(t_subtree self) +{ + return ts_subtree_total_size(self).bytes; +} + +uint32_t ts_subtree_child_count(t_subtree self) +{ + return self.data.is_inline ? 0 : self.ptr->child_count; +} + +uint32_t ts_subtree_repeat_depth(t_subtree self) +{ + return self.data.is_inline ? 0 : self.ptr->repeat_depth; +} + +uint32_t ts_subtree_is_repetition(t_subtree self) +{ + return self.data.is_inline ? 0 : !self.ptr->named && !self.ptr->visible && self.ptr->child_count != 0; +} + +uint32_t ts_subtree_visible_descendant_count(t_subtree self) +{ + return (self.data.is_inline || self.ptr->child_count == 0) ? 0 : self.ptr->visible_descendant_count; +} + +uint32_t ts_subtree_visible_child_count(t_subtree self) +{ + if (ts_subtree_child_count(self) > 0) + { + return self.ptr->visible_child_count; + } + else + { + return 0; + } +} + +uint32_t ts_subtree_error_cost(t_subtree self) +{ + if (ts_subtree_missing(self)) + { + return ERROR_COST_PER_MISSING_TREE + ERROR_COST_PER_RECOVERY; + } + else + { + return self.data.is_inline ? 0 : self.ptr->error_cost; + } +} + +int32_t ts_subtree_dynamic_precedence(t_subtree self) +{ + return (self.data.is_inline || self.ptr->child_count == 0) ? 0 : self.ptr->dynamic_precedence; +} + +uint16_t ts_subtree_production_id(t_subtree self) +{ + if (ts_subtree_child_count(self) > 0) + { + return self.ptr->production_id; + } + else + { + return 0; + } +} + +bool ts_subtree_fragile_left(t_subtree self) +{ + return self.data.is_inline ? false : self.ptr->fragile_left; +} + +bool ts_subtree_fragile_right(t_subtree self) +{ + return self.data.is_inline ? false : self.ptr->fragile_right; +} + +bool ts_subtree_has_external_tokens(t_subtree self) +{ + return self.data.is_inline ? false : self.ptr->has_external_tokens; +} + +bool ts_subtree_has_external_scanner_state_change(t_subtree self) +{ + return self.data.is_inline ? false : self.ptr->has_external_scanner_state_change; +} + +bool ts_subtree_depends_on_column(t_subtree self) +{ + return self.data.is_inline ? false : self.ptr->depends_on_column; +} + +bool ts_subtree_is_fragile(t_subtree self) +{ + return self.data.is_inline ? false : (self.ptr->fragile_left || self.ptr->fragile_right); +} + +bool ts_subtree_is_error(t_subtree self) +{ + return ts_subtree_symbol(self) == ts_builtin_sym_error; +} + +bool ts_subtree_is_eof(t_subtree self) +{ + return ts_subtree_symbol(self) == ts_builtin_sym_end; +} + +t_subtree ts_subtree_from_mut(t_mutable_subtree self) +{ + t_subtree result; + result.data = self.data; + return result; +} + +t_mutable_subtree ts_subtree_to_mut_unsafe(t_subtree self) +{ + t_mutable_subtree result; + result.data = self.data; + return result; +} + +t_subtree ts_tree_cursor_current_subtree(const t_tree_cursor *_self) +{ + const t_tree_cursor *self = (const t_tree_cursor *)_self; + t_tree_cursor_entry *last_entry = array_back(&self->stack); + return *last_entry->subtree; +} diff --git a/parser/src/funcs.h b/parser/src/funcs.h index 5fcd962d..0876b1b0 100644 --- a/parser/src/funcs.h +++ b/parser/src/funcs.h @@ -3,28 +3,78 @@ #include "./api_structs.h" -bool ts_external_scanner_state_eq(const t_external_scanner_state *self, const char *, unsigned); +bool length_is_undefined(t_length length); +bool point_eq(t_point a, t_point b); +bool point_gt(t_point a, t_point b); +bool point_gte(t_point a, t_point b); +bool point_lt(t_point a, t_point b); +bool point_lte(t_point a, t_point b); +bool reusable_node_descend(t_reusable_node *self); +bool set_contains(t_char_range *ranges, uint32_t len, int32_t lookahead); +bool ts_external_scanner_state_eq(const t_external_scanner_state *self, const char *, uint32_t); +bool ts_language_has_actions(const t_language *self, t_state_id state, t_symbol symbol); +bool ts_language_has_reduce_action(const t_language *self, t_state_id state, t_symbol symbol); +bool ts_language_is_symbol_external(const t_language *self, t_symbol symbol); +bool ts_language_state_is_primary(const t_language *self, t_state_id state); bool ts_lexer_set_included_ranges(t_lexer *self, const t_parse_range *ranges, uint32_t count); -bool ts_range_array_intersects(const t_range_array *self, unsigned start_index, uint32_t start_byte, uint32_t end_byte); +bool ts_lookahead_iterator__next(t_lookahead_iterator *self); +bool ts_range_array_intersects(const t_range_array *self, uint32_t start_index, uint32_t start_byte, uint32_t end_byte); bool ts_stack_can_merge(t_stack *, t_stack_version, t_stack_version); bool ts_stack_has_advanced_since_error(const t_stack *, t_stack_version); bool ts_stack_is_active(const t_stack *, t_stack_version); bool ts_stack_is_halted(const t_stack *, t_stack_version); bool ts_stack_is_paused(const t_stack *, t_stack_version); bool ts_stack_merge(t_stack *, t_stack_version, t_stack_version); +bool ts_subtree_depends_on_column(t_subtree self); bool ts_subtree_external_scanner_state_eq(t_subtree, t_subtree); +bool ts_subtree_extra(t_subtree self); +bool ts_subtree_fragile_left(t_subtree self); +bool ts_subtree_fragile_right(t_subtree self); +bool ts_subtree_has_changes(t_subtree self); +bool ts_subtree_has_external_scanner_state_change(t_subtree self); +bool ts_subtree_has_external_tokens(t_subtree self); +bool ts_subtree_has_external_tokens(t_subtree self); +bool ts_subtree_is_eof(t_subtree self); +bool ts_subtree_is_error(t_subtree self); +bool ts_subtree_is_fragile(t_subtree self); +bool ts_subtree_is_keyword(t_subtree self); +bool ts_subtree_missing(t_subtree self); +bool ts_subtree_named(t_subtree self); +bool ts_subtree_visible(t_subtree self); char *ts_subtree_string(t_subtree, t_symbol, bool, const t_language *, bool include_all); +const bool *ts_language_enabled_external_tokens(const t_language *self, uint32_t external_scanner_state); const char *ts_external_scanner_state_data(const t_external_scanner_state *); const t_external_scanner_state *ts_subtree_external_scanner_state(t_subtree self); +const t_parse_action *ts_language_actions(const t_language *self, t_state_id state, t_symbol symbol, uint32_t *count); +const t_symbol *ts_language_alias_sequence(const t_language *self, uint32_t production_id); int ts_stack_dynamic_precedence(t_stack *, t_stack_version); int ts_subtree_compare(t_subtree, t_subtree, t_subtree_pool *); -t_first_tree *ts_tree_new(t_subtree root, const t_language *language, const t_parse_range *, unsigned); +int32_t ts_subtree_dynamic_precedence(t_subtree self); +size_t atomic_load(const volatile size_t *p); +size_t ts_subtree_alloc_size(uint32_t child_count); +t_first_tree *ts_tree_new(t_subtree root, const t_language *language, const t_parse_range *, uint32_t); +t_length length_add(t_length len1, t_length len2); +t_length length_min(t_length len1, t_length len2); +t_length length_saturating_sub(t_length len1, t_length len2); +t_length length_sub(t_length len1, t_length len2); +t_length length_zero(void); t_length ts_stack_position(const t_stack *, t_stack_version); +t_length ts_subtree_padding(t_subtree self); +t_length ts_subtree_size(t_subtree self); +t_length ts_subtree_total_size(t_subtree self); +t_lookahead_iterator ts_language_lookaheads(const t_language *self, t_state_id state); t_mutable_subtree ts_subtree_make_mut(t_subtree_pool *, t_subtree); -t_mutable_subtree ts_subtree_new_node(t_symbol, t_subtree_array *, unsigned, const t_language *); +t_mutable_subtree ts_subtree_new_node(t_symbol, t_subtree_array *, uint32_t, const t_language *); +t_mutable_subtree ts_subtree_to_mut_unsafe(t_subtree self); t_parse_node ts_node_new(const t_first_tree *, const t_subtree *, t_length, t_symbol); t_parse_node ts_tree_cursor_parent_node(const t_tree_cursor *); t_parse_range *ts_lexer_included_ranges(const t_lexer *self, uint32_t *count); +t_point point__new(uint32_t row, uint32_t column); +t_point point_add(t_point a, t_point b); +t_point point_max(t_point a, t_point b); +t_point point_min(t_point a, t_point b); +t_point point_sub(t_point a, t_point b); +t_reusable_node reusable_node_new(void); t_stack *ts_stack_new(t_subtree_pool *); t_stack_slice_array ts_stack_pop_all(t_stack *, t_stack_version); t_stack_slice_array ts_stack_pop_count(t_stack *, t_stack_version, uint32_t count); @@ -33,26 +83,56 @@ t_stack_summary *ts_stack_get_summary(t_stack *, t_stack_version); t_stack_version ts_stack_copy_version(t_stack *, t_stack_version); t_state_id ts_language_next_state(const t_language *self, t_state_id state, t_symbol symbol); t_state_id ts_stack_state(const t_stack *, t_stack_version); +t_state_id ts_subtree_leaf_parse_state(t_subtree self); +t_state_id ts_subtree_parse_state(t_subtree self); +t_subtree reusable_node_tree(t_reusable_node *self); t_subtree ts_stack_last_external_token(const t_stack *, t_stack_version); t_subtree ts_stack_resume(t_stack *, t_stack_version); t_subtree ts_subtree_edit(t_subtree, const t_input_edit *edit, t_subtree_pool *); +t_subtree ts_subtree_from_mut(t_mutable_subtree self); t_subtree ts_subtree_last_external_token(t_subtree); t_subtree ts_subtree_new_error(t_subtree_pool *, int32_t, t_length, t_length, uint32_t, t_state_id, const t_language *); t_subtree ts_subtree_new_error_node(t_subtree_array *, bool, const t_language *); t_subtree ts_subtree_new_leaf(t_subtree_pool *, t_symbol, t_length, t_length, uint32_t, t_state_id, bool, bool, bool, const t_language *); t_subtree ts_subtree_new_missing_leaf(t_subtree_pool *, t_symbol, t_length, uint32_t, const t_language *); +t_subtree ts_tree_cursor_current_subtree(const t_tree_cursor *_self); t_subtree_array ts_stack_pop_error(t_stack *, t_stack_version); t_subtree_pool ts_subtree_pool_new(uint32_t capacity); +t_symbol ts_language_alias_at(const t_language *self, uint32_t production_id, uint32_t child_index); t_symbol ts_language_public_symbol(const t_language *, t_symbol); +t_symbol ts_subtree_leaf_symbol(t_subtree self); +t_symbol ts_subtree_symbol(t_subtree self); t_symbol_metadata ts_language_symbol_metadata(const t_language *, t_symbol); t_tree_cursor_step ts_tree_cursor_goto_first_child_internal(t_tree_cursor *); t_tree_cursor_step ts_tree_cursor_goto_next_sibling_internal(t_tree_cursor *); +uint16_t ts_language_lookup(const t_language *self, t_state_id state, t_symbol symbol); +uint16_t ts_subtree_production_id(t_subtree self); +uint32_t atomic_dec(volatile uint32_t *p); +uint32_t atomic_inc(volatile uint32_t *p); +uint32_t reusable_node_byte_offset(t_reusable_node *self); uint32_t ts_stack_version_count(const t_stack *); -unsigned ts_stack_error_cost(const t_stack *, t_stack_version version); -unsigned ts_stack_node_count_since_error(const t_stack *, t_stack_version); -unsigned ts_subtree_get_changed_ranges(const t_subtree *old_tree, const t_subtree *new_tree, t_tree_cursor *cursor1, t_tree_cursor *cursor2, const t_language *language, const t_range_array *included_range_differences, t_parse_range **ranges); +uint32_t ts_subtree_child_count(t_subtree self); +uint32_t ts_subtree_child_count(t_subtree self); +uint32_t ts_subtree_error_cost(t_subtree self); +uint32_t ts_subtree_is_repetition(t_subtree self); +uint32_t ts_subtree_lookahead_bytes(t_subtree self); +uint32_t ts_subtree_repeat_depth(t_subtree self); +uint32_t ts_subtree_total_bytes(t_subtree self); +uint32_t ts_subtree_total_bytes(t_subtree self); +uint32_t ts_subtree_visible_child_count(t_subtree self); +uint32_t ts_subtree_visible_descendant_count(t_subtree self); +uint32_t ts_stack_error_cost(const t_stack *, t_stack_version version); +uint32_t ts_stack_node_count_since_error(const t_stack *, t_stack_version); +uint32_t ts_subtree_get_changed_ranges(const t_subtree *old_tree, const t_subtree *new_tree, t_tree_cursor *cursor1, t_tree_cursor *cursor2, const t_language *language, const t_range_array *included_range_differences, t_parse_range **ranges); +void reusable_node_advance(t_reusable_node *self); +void reusable_node_advance_past_leaf(t_reusable_node *self); +void reusable_node_clear(t_reusable_node *self); +void reusable_node_delete(t_reusable_node *self); +void reusable_node_reset(t_reusable_node *self, t_subtree tree); void ts_external_scanner_state_delete(t_external_scanner_state *self); -void ts_external_scanner_state_init(t_external_scanner_state *, const char *, unsigned); +void ts_external_scanner_state_init(t_external_scanner_state *, const char *, uint32_t); +void ts_language_aliases_for_symbol(const t_language *self, t_symbol original_symbol, const t_symbol **start, const t_symbol **end); +void ts_language_field_map(const t_language *self, uint32_t production_id, const t_field_map_entry **start, const t_field_map_entry **end); void ts_language_table_entry(const t_language *, t_state_id, t_symbol, t_table_entry *); void ts_lexer_advance_to_end(t_lexer *lexer); void ts_lexer_delete(t_lexer *lexer); @@ -62,13 +142,14 @@ void ts_lexer_mark_end(t_lexer *lexer); void ts_lexer_reset(t_lexer *lexer, t_length); void ts_lexer_set_input(t_lexer *lexer, t_parse_input); void ts_lexer_start(t_lexer *lexer); -void ts_range_array_get_changed_ranges(const t_parse_range *old_ranges, unsigned old_range_count, const t_parse_range *new_ranges, unsigned new_range_count, t_range_array *differences); +void ts_range_array_get_changed_ranges(const t_parse_range *old_ranges, uint32_t old_range_count, const t_parse_range *new_ranges, uint32_t new_range_count, t_range_array *differences); +void ts_reduce_action_set_add(t_reduce_action_set *self, t_reduce_action new_action); void ts_stack_clear(t_stack *); void ts_stack_delete(t_stack *); void ts_stack_halt(t_stack *, t_stack_version); void ts_stack_pause(t_stack *, t_stack_version, t_subtree); void ts_stack_push(t_stack *, t_stack_version, t_subtree, bool, t_state_id); -void ts_stack_record_summary(t_stack *, t_stack_version, unsigned max_depth); +void ts_stack_record_summary(t_stack *, t_stack_version, uint32_t max_depth); void ts_stack_remove_version(t_stack *, t_stack_version); void ts_stack_renumber_version(t_stack *, t_stack_version, t_stack_version); void ts_stack_set_last_external_token(t_stack *, t_stack_version, t_subtree); @@ -82,10 +163,11 @@ void ts_subtree_balance(t_subtree, t_subtree_pool *, const t_language *); void ts_subtree_pool_delete(t_subtree_pool *); void ts_subtree_release(t_subtree_pool *, t_subtree); void ts_subtree_retain(t_subtree); +void ts_subtree_set_extra(t_mutable_subtree *self, bool is_extra); void ts_subtree_set_symbol(t_mutable_subtree *, t_symbol, const t_language *); void ts_subtree_summarize(t_mutable_subtree, const t_subtree *, uint32_t, const t_language *); void ts_subtree_summarize_children(t_mutable_subtree, const t_language *); -void ts_tree_cursor_current_status(const t_tree_cursor *, t_field_id *, bool *, bool *, bool *, t_symbol *, unsigned *); +void ts_tree_cursor_current_status(const t_tree_cursor *, t_field_id *, bool *, bool *, bool *, t_symbol *, uint32_t *); void ts_tree_cursor_init(t_tree_cursor *, t_parse_node); #endif // FUNCS_H