diff --git a/Vagrantfile b/Vagrantfile index 508dc589..c94ee886 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -5,7 +5,7 @@ VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| - config.vm.box = "ubuntu/bionic64" + config.vm.box = "ubuntu/focal64" config.ssh.forward_agent = true config.vm.provision "shell", path: "script/provision", privileged: false end diff --git a/gitfs/cache/gitignore.py b/gitfs/cache/gitignore.py index 53e79b9a..2f9de100 100644 --- a/gitfs/cache/gitignore.py +++ b/gitfs/cache/gitignore.py @@ -17,8 +17,6 @@ import os import fnmatch -from six import string_types - class CachedIgnore(object): def __init__(self, ignore=False, submodules=False, exclude=False, hard_ignore=None): @@ -65,7 +63,7 @@ def _parse_ignore_file(self, ignore_file): return items def _parse_hard_ignore(self, hard_ignore): - if isinstance(hard_ignore, string_types): + if isinstance(hard_ignore, str): return hard_ignore.split("|") else: return [] diff --git a/gitfs/merges/accept_mine.py b/gitfs/merges/accept_mine.py index 61e0302f..25c614a7 100644 --- a/gitfs/merges/accept_mine.py +++ b/gitfs/merges/accept_mine.py @@ -14,7 +14,6 @@ import pygit2 -import six from gitfs.log import log from .base import Merger @@ -132,7 +131,7 @@ def solve_conflicts(self, conflicts): log.debug("AcceptMine: overwrite all file with our " "content") with open(self.repository._full_path(ours.path), "w") as f: data = self.repository.get(ours.id).data - f.write(six.text_type(data)) + f.write(data) self.repository.index.add(ours.path) else: log.info("AcceptMine: No conflicts to solve") diff --git a/gitfs/repository.py b/gitfs/repository.py index 91b75279..7414ceeb 100644 --- a/gitfs/repository.py +++ b/gitfs/repository.py @@ -30,7 +30,6 @@ GIT_BRANCH_LOCAL, GIT_FILEMODE_BLOB_EXECUTABLE, ) -from six import iteritems from gitfs.cache import CommitCache from gitfs.log import log @@ -94,7 +93,7 @@ def checkout(self, ref, *args, **kwargs): self.ignore.update() status = self._repo.status() - for path, status in iteritems(status): + for path, status in status.items(): # path is in current status, move on if status == GIT_STATUS_CURRENT: continue diff --git a/gitfs/utils/args.py b/gitfs/utils/args.py index ecce1a37..b865c90c 100644 --- a/gitfs/utils/args.py +++ b/gitfs/utils/args.py @@ -23,8 +23,7 @@ from logging import Formatter, StreamHandler from logging.handlers import TimedRotatingFileHandler, SysLogHandler from collections import OrderedDict -from six import iteritems -from six.moves.urllib.parse import urlparse +from urllib.parse import urlparse from gitfs.log import log from gitfs.cache import lru_cache @@ -144,7 +143,7 @@ def __getattr__(self, attr): return getattr(self.__dict__["config"], attr) def set_defaults(self, args): - for option, value in iteritems(self.DEFAULTS): + for option, value in self.DEFAULTS.items(): new_value = getattr(args, option, None) if not new_value: diff --git a/gitfs/utils/decorators/not_in.py b/gitfs/utils/decorators/not_in.py index c48e5399..277b4e50 100644 --- a/gitfs/utils/decorators/not_in.py +++ b/gitfs/utils/decorators/not_in.py @@ -17,8 +17,6 @@ import inspect from functools import wraps -from six import string_types - from fuse import FuseOSError @@ -31,7 +29,7 @@ def __call__(self, f): @wraps(f) def decorated(their_self, *args, **kwargs): # TODO: check for look_at in self first - if isinstance(self.look_at, string_types): + if isinstance(self.look_at, str): self.look_at = getattr(their_self, self.look_at) self.check_args(f, args) diff --git a/gitfs/worker/commit_queue.py b/gitfs/worker/commit_queue.py index dcba2050..5af7ae65 100644 --- a/gitfs/worker/commit_queue.py +++ b/gitfs/worker/commit_queue.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from six.moves.queue import Queue +from queue import Queue from gitfs.log import log diff --git a/gitfs/worker/peasant.py b/gitfs/worker/peasant.py index bc5b8e7e..dac3e93d 100644 --- a/gitfs/worker/peasant.py +++ b/gitfs/worker/peasant.py @@ -15,8 +15,6 @@ from threading import Thread -from six import iteritems - from gitfs.log import log @@ -24,7 +22,7 @@ class Peasant(Thread): def __init__(self, *args, **kwargs): super(Peasant, self).__init__() - for name, value in iteritems(kwargs): + for name, value in kwargs.items(): setattr(self, name, value) def run(self): diff --git a/gitfs/worker/sync.py b/gitfs/worker/sync.py index 0771c328..2bce34e6 100644 --- a/gitfs/worker/sync.py +++ b/gitfs/worker/sync.py @@ -13,9 +13,9 @@ # limitations under the License. import random import time +from queue import Empty import pygit2 -from six.moves.queue import Empty from gitfs.worker.peasant import Peasant from gitfs.merges import AcceptMine diff --git a/requirements.txt b/requirements.txt index fb7d0f3e..c6cb39e2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,4 +4,3 @@ fusepy==3.0.1 pycparser==2.19 pygit2==0.28.2 raven==6.10.0 -six==1.12.0 diff --git a/script/lextab.py b/script/lextab.py new file mode 100644 index 00000000..ea38ebc3 --- /dev/null +++ b/script/lextab.py @@ -0,0 +1,10 @@ +# lextab.py. This file automatically created by PLY (version 3.10). Don't edit! +_tabversion = '3.10' +_lextokens = set(('MODEQUAL', 'LE', 'FLOAT', 'SHORT', 'TIMES', 'ANDEQUAL', 'MINUSMINUS', 'STRUCT', '_BOOL', 'ELLIPSIS', 'ELSE', 'SIGNED', 'UNION', 'INT', 'PPPRAGMASTR', 'XOREQUAL', 'LBRACKET', 'LOR', 'MOD', 'LSHIFT', 'COLON', 'MINUS', 'EQ', 'LONG', 'XOR', 'TYPEDEF', 'REGISTER', 'TYPEID', 'CHAR_CONST', 'STRING_LITERAL', 'LNOT', 'VOID', 'DIVEQUAL', 'OREQUAL', 'RBRACE', 'OR', 'PERIOD', 'CASE', 'WHILE', 'LBRACE', 'FLOAT_CONST', 'LSHIFTEQUAL', '__INT128', 'RSHIFTEQUAL', 'RETURN', 'RESTRICT', 'EXTERN', 'EQUALS', 'RBRACKET', 'PPHASH', 'GOTO', 'LAND', 'ID', 'FOR', 'RSHIFT', 'ENUM', 'IF', 'CONDOP', 'CONTINUE', 'NOT', 'INT_CONST_HEX', 'WSTRING_LITERAL', '_COMPLEX', 'BREAK', 'ARROW', 'MINUSEQUAL', 'UNSIGNED', 'COMMA', 'DOUBLE', 'PLUS', 'CONST', 'GE', 'PLUSPLUS', 'GT', 'SWITCH', 'DIVIDE', 'WCHAR_CONST', 'LPAREN', 'VOLATILE', 'LT', 'NE', 'RPAREN', 'PLUSEQUAL', 'CHAR', 'OFFSETOF', 'SEMI', 'AUTO', 'PPPRAGMA', 'INLINE', 'INT_CONST_DEC', 'DO', 'INT_CONST_OCT', 'DEFAULT', 'INT_CONST_BIN', 'AND', 'HEX_FLOAT_CONST', 'SIZEOF', 'TIMESEQUAL', 'STATIC')) +_lexreflags = 64 +_lexliterals = '' +_lexstateinfo = {'INITIAL': 'inclusive', 'ppline': 'exclusive', 'pppragma': 'exclusive'} +_lexstatere = {'INITIAL': [('(?P[ \\t]*\\#)|(?P\\n+)|(?P\\{)|(?P\\})|(?P((((([0-9]*\\.[0-9]+)|([0-9]+\\.))([eE][-+]?[0-9]+)?)|([0-9]+([eE][-+]?[0-9]+)))[FfLl]?))|(?P(0[xX]([0-9a-fA-F]+|((([0-9a-fA-F]+)?\\.[0-9a-fA-F]+)|([0-9a-fA-F]+\\.)))([pP][+-]?[0-9]+)[FfLl]?))|(?P0[xX][0-9a-fA-F]+(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?)|(?P0[bB][01]+(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?)|(?P0[0-7]*[89])|(?P0[0-7]*(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?)|(?P(0(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?)|([1-9][0-9]*(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?))|(?P\'([^\'\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))\')|(?PL\'([^\'\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))\')|(?P(\'([^\'\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*\\n)|(\'([^\'\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*$))|(?P(\'([^\'\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))[^\'\n]+\')|(\'\')|(\'([\\\\][^a-zA-Z._~^!=&\\^\\-\\\\?\'"x0-7])[^\'\\n]*\'))|(?PL"([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*")|(?P"([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*?([\\\\][^a-zA-Z._~^!=&\\^\\-\\\\?\'"x0-7])([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*")|(?P[a-zA-Z_$][0-9a-zA-Z_$]*)|(?P"([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*")|(?P\\.\\.\\.)|(?P\\|\\|)|(?P\\+\\+)|(?P<<=)|(?P\\|=)|(?P\\+=)|(?P>>=)|(?P\\*=)|(?P\\^=)|(?P&=)|(?P->)|(?P\\?)|(?P/=)|(?P==)|(?P>=)|(?P&&)|(?P\\[)|(?P<=)|(?P\\()|(?P<<)|(?P-=)|(?P--)|(?P%=)|(?P!=)|(?P\\|)|(?P\\.)|(?P\\+)|(?P\\])|(?P\\))|(?P>>)|(?P\\*)|(?P\\^)|(?P&)|(?P:)|(?P,)|(?P/)|(?P=)|(?P>)|(?P!)|(?P<)|(?P-)|(?P%)|(?P~)|(?P;)', [None, ('t_PPHASH', 'PPHASH'), ('t_NEWLINE', 'NEWLINE'), ('t_LBRACE', 'LBRACE'), ('t_RBRACE', 'RBRACE'), ('t_FLOAT_CONST', 'FLOAT_CONST'), None, None, None, None, None, None, None, None, None, ('t_HEX_FLOAT_CONST', 'HEX_FLOAT_CONST'), None, None, None, None, None, None, None, ('t_INT_CONST_HEX', 'INT_CONST_HEX'), None, None, None, None, None, None, None, ('t_INT_CONST_BIN', 'INT_CONST_BIN'), None, None, None, None, None, None, None, ('t_BAD_CONST_OCT', 'BAD_CONST_OCT'), ('t_INT_CONST_OCT', 'INT_CONST_OCT'), None, None, None, None, None, None, None, ('t_INT_CONST_DEC', 'INT_CONST_DEC'), None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, ('t_CHAR_CONST', 'CHAR_CONST'), None, None, None, None, None, None, ('t_WCHAR_CONST', 'WCHAR_CONST'), None, None, None, None, None, None, ('t_UNMATCHED_QUOTE', 'UNMATCHED_QUOTE'), None, None, None, None, None, None, None, None, None, None, None, None, None, None, ('t_BAD_CHAR_CONST', 'BAD_CHAR_CONST'), None, None, None, None, None, None, None, None, None, None, ('t_WSTRING_LITERAL', 'WSTRING_LITERAL'), None, None, None, None, None, None, ('t_BAD_STRING_LITERAL', 'BAD_STRING_LITERAL'), None, None, None, None, None, None, None, None, None, None, None, None, None, ('t_ID', 'ID'), (None, 'STRING_LITERAL'), None, None, None, None, None, None, (None, 'ELLIPSIS'), (None, 'LOR'), (None, 'PLUSPLUS'), (None, 'LSHIFTEQUAL'), (None, 'OREQUAL'), (None, 'PLUSEQUAL'), (None, 'RSHIFTEQUAL'), (None, 'TIMESEQUAL'), (None, 'XOREQUAL'), (None, 'ANDEQUAL'), (None, 'ARROW'), (None, 'CONDOP'), (None, 'DIVEQUAL'), (None, 'EQ'), (None, 'GE'), (None, 'LAND'), (None, 'LBRACKET'), (None, 'LE'), (None, 'LPAREN'), (None, 'LSHIFT'), (None, 'MINUSEQUAL'), (None, 'MINUSMINUS'), (None, 'MODEQUAL'), (None, 'NE'), (None, 'OR'), (None, 'PERIOD'), (None, 'PLUS'), (None, 'RBRACKET'), (None, 'RPAREN'), (None, 'RSHIFT'), (None, 'TIMES'), (None, 'XOR'), (None, 'AND'), (None, 'COLON'), (None, 'COMMA'), (None, 'DIVIDE'), (None, 'EQUALS'), (None, 'GT'), (None, 'LNOT'), (None, 'LT'), (None, 'MINUS'), (None, 'MOD'), (None, 'NOT'), (None, 'SEMI')])], 'ppline': [('(?P"([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*")|(?P(0(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?)|([1-9][0-9]*(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?))|(?P\\n)|(?Pline)', [None, ('t_ppline_FILENAME', 'FILENAME'), None, None, None, None, None, None, ('t_ppline_LINE_NUMBER', 'LINE_NUMBER'), None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, ('t_ppline_NEWLINE', 'NEWLINE'), ('t_ppline_PPLINE', 'PPLINE')])], 'pppragma': [('(?P\\n)|(?Ppragma)|(?P.+)', [None, ('t_pppragma_NEWLINE', 'NEWLINE'), ('t_pppragma_PPPRAGMA', 'PPPRAGMA'), ('t_pppragma_STR', 'STR')])]} +_lexstateignore = {'INITIAL': ' \t', 'ppline': ' \t', 'pppragma': ' \t'} +_lexstateerrorf = {'INITIAL': 't_error', 'ppline': 't_ppline_error', 'pppragma': 't_pppragma_error'} +_lexstateeoff = {} diff --git a/script/provision b/script/provision index d7c00922..09ac1a82 100755 --- a/script/provision +++ b/script/provision @@ -1,27 +1,24 @@ #!/usr/bin/env bash -export PYTHON_VERSION=python3.7 - -function python { - $PYTHON_VERSION "$@" -} - echo "I am provisioning..." sudo sh -c 'date > /etc/vagrant_provisioned_at' echo "Installing dependencies" -sudo add-apt-repository ppa:presslabs/gitfs +sudo add-apt-repository -y ppa:presslabs/gitfs sudo apt-get update -sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q python-virtualenv python-dev libffi-dev build-essential git-core "$PYTHON_VERSION-dev" libgit2-dev "$PYTHON_VERSION-venv" libfuse-dev libfuse2 +sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q python3-dev python3-venv libffi-dev build-essential git-core libgit2-dev libfuse-dev libfuse2 echo "Configuring fuse" sudo groupadd fuse -sudo adduser "$USER" fuse +sudo adduser vagrant fuse sudo sh -c "echo 'user_allow_other' >> /etc/fuse.conf" echo "Configure virtualenv" -python -m venv /home/vagrant/gitfs -echo "source $HOME/gitfs/bin/activate" >> "$HOME/.bashrc" +python3 -m venv /home/vagrant/gitfs +echo "source /home/vagrant/gitfs/bin/activate" >> "$HOME/.bashrc" + +echo Installing whell +/home/vagrant/gitfs/bin/pip install -q 'wheel' echo Installing cffi /home/vagrant/gitfs/bin/pip install -q 'cffi' @@ -34,4 +31,4 @@ git config --global user.email "vagrant@localhost" git config --global user.name "Vagrant" echo Installing gitfs -"$HOME/gitfs/bin/pip" install -q -e /vagrant +/home/vagrant/gitfs/bin/pip install -q -e /vagrant diff --git a/script/yacctab.py b/script/yacctab.py new file mode 100644 index 00000000..fac4b358 --- /dev/null +++ b/script/yacctab.py @@ -0,0 +1,338 @@ + +# yacctab.py +# This file is automatically generated. Do not edit. +_tabversion = '3.10' + +_lr_method = 'LALR' + +_lr_signature = 'translation_unit_or_emptyleftLORleftLANDleftORleftXORleftANDleftEQNEleftGTGELTLEleftRSHIFTLSHIFTleftPLUSMINUSleftTIMESDIVIDEMOD_BOOL _COMPLEX AUTO BREAK CASE CHAR CONST CONTINUE DEFAULT DO DOUBLE ELSE ENUM EXTERN FLOAT FOR GOTO IF INLINE INT LONG REGISTER OFFSETOF RESTRICT RETURN SHORT SIGNED SIZEOF STATIC STRUCT SWITCH TYPEDEF UNION UNSIGNED VOID VOLATILE WHILE __INT128 ID TYPEID INT_CONST_DEC INT_CONST_OCT INT_CONST_HEX INT_CONST_BIN FLOAT_CONST HEX_FLOAT_CONST CHAR_CONST WCHAR_CONST STRING_LITERAL WSTRING_LITERAL PLUS MINUS TIMES DIVIDE MOD OR AND NOT XOR LSHIFT RSHIFT LOR LAND LNOT LT LE GT GE EQ NE EQUALS TIMESEQUAL DIVEQUAL MODEQUAL PLUSEQUAL MINUSEQUAL LSHIFTEQUAL RSHIFTEQUAL ANDEQUAL XOREQUAL OREQUAL PLUSPLUS MINUSMINUS ARROW CONDOP LPAREN RPAREN LBRACKET RBRACKET LBRACE RBRACE COMMA PERIOD SEMI COLON ELLIPSIS PPHASH PPPRAGMA PPPRAGMASTRabstract_declarator_opt : empty\n| abstract_declaratorassignment_expression_opt : empty\n| assignment_expressionblock_item_list_opt : empty\n| block_item_listdeclaration_list_opt : empty\n| declaration_listdeclaration_specifiers_no_type_opt : empty\n| declaration_specifiers_no_typedesignation_opt : empty\n| designationexpression_opt : empty\n| expressionid_init_declarator_list_opt : empty\n| id_init_declarator_listidentifier_list_opt : empty\n| identifier_listinit_declarator_list_opt : empty\n| init_declarator_listinitializer_list_opt : empty\n| initializer_listparameter_type_list_opt : empty\n| parameter_type_liststruct_declarator_list_opt : empty\n| struct_declarator_listtype_qualifier_list_opt : empty\n| type_qualifier_list direct_id_declarator : ID\n direct_id_declarator : LPAREN id_declarator RPAREN\n direct_id_declarator : direct_id_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET\n direct_id_declarator : direct_id_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKET\n | direct_id_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET\n direct_id_declarator : direct_id_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKET\n direct_id_declarator : direct_id_declarator LPAREN parameter_type_list RPAREN\n | direct_id_declarator LPAREN identifier_list_opt RPAREN\n direct_typeid_declarator : TYPEID\n direct_typeid_declarator : LPAREN typeid_declarator RPAREN\n direct_typeid_declarator : direct_typeid_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET\n direct_typeid_declarator : direct_typeid_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKET\n | direct_typeid_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET\n direct_typeid_declarator : direct_typeid_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKET\n direct_typeid_declarator : direct_typeid_declarator LPAREN parameter_type_list RPAREN\n | direct_typeid_declarator LPAREN identifier_list_opt RPAREN\n direct_typeid_noparen_declarator : TYPEID\n direct_typeid_noparen_declarator : direct_typeid_noparen_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET\n direct_typeid_noparen_declarator : direct_typeid_noparen_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKET\n | direct_typeid_noparen_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET\n direct_typeid_noparen_declarator : direct_typeid_noparen_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKET\n direct_typeid_noparen_declarator : direct_typeid_noparen_declarator LPAREN parameter_type_list RPAREN\n | direct_typeid_noparen_declarator LPAREN identifier_list_opt RPAREN\n id_declarator : direct_id_declarator\n id_declarator : pointer direct_id_declarator\n typeid_declarator : direct_typeid_declarator\n typeid_declarator : pointer direct_typeid_declarator\n typeid_noparen_declarator : direct_typeid_noparen_declarator\n typeid_noparen_declarator : pointer direct_typeid_noparen_declarator\n translation_unit_or_empty : translation_unit\n | empty\n translation_unit : external_declaration\n translation_unit : translation_unit external_declaration\n external_declaration : function_definition\n external_declaration : declaration\n external_declaration : pp_directive\n | pppragma_directive\n external_declaration : SEMI\n pp_directive : PPHASH\n pppragma_directive : PPPRAGMA\n | PPPRAGMA PPPRAGMASTR\n function_definition : id_declarator declaration_list_opt compound_statement\n function_definition : declaration_specifiers id_declarator declaration_list_opt compound_statement\n statement : labeled_statement\n | expression_statement\n | compound_statement\n | selection_statement\n | iteration_statement\n | jump_statement\n | pppragma_directive\n pragmacomp_or_statement : pppragma_directive statement\n | statement\n decl_body : declaration_specifiers init_declarator_list_opt\n | declaration_specifiers_no_type id_init_declarator_list_opt\n declaration : decl_body SEMI\n declaration_list : declaration\n | declaration_list declaration\n declaration_specifiers_no_type : type_qualifier declaration_specifiers_no_type_opt\n declaration_specifiers_no_type : storage_class_specifier declaration_specifiers_no_type_opt\n declaration_specifiers_no_type : function_specifier declaration_specifiers_no_type_opt\n declaration_specifiers : declaration_specifiers type_qualifier\n declaration_specifiers : declaration_specifiers storage_class_specifier\n declaration_specifiers : declaration_specifiers function_specifier\n declaration_specifiers : declaration_specifiers type_specifier_no_typeid\n declaration_specifiers : type_specifier\n declaration_specifiers : declaration_specifiers_no_type type_specifier\n storage_class_specifier : AUTO\n | REGISTER\n | STATIC\n | EXTERN\n | TYPEDEF\n function_specifier : INLINE\n type_specifier_no_typeid : VOID\n | _BOOL\n | CHAR\n | SHORT\n | INT\n | LONG\n | FLOAT\n | DOUBLE\n | _COMPLEX\n | SIGNED\n | UNSIGNED\n | __INT128\n type_specifier : typedef_name\n | enum_specifier\n | struct_or_union_specifier\n | type_specifier_no_typeid\n type_qualifier : CONST\n | RESTRICT\n | VOLATILE\n init_declarator_list : init_declarator\n | init_declarator_list COMMA init_declarator\n init_declarator : declarator\n | declarator EQUALS initializer\n id_init_declarator_list : id_init_declarator\n | id_init_declarator_list COMMA init_declarator\n id_init_declarator : id_declarator\n | id_declarator EQUALS initializer\n specifier_qualifier_list : specifier_qualifier_list type_specifier_no_typeid\n specifier_qualifier_list : specifier_qualifier_list type_qualifier\n specifier_qualifier_list : type_specifier\n specifier_qualifier_list : type_qualifier_list type_specifier\n struct_or_union_specifier : struct_or_union ID\n | struct_or_union TYPEID\n struct_or_union_specifier : struct_or_union brace_open struct_declaration_list brace_close\n | struct_or_union brace_open brace_close\n struct_or_union_specifier : struct_or_union ID brace_open struct_declaration_list brace_close\n | struct_or_union ID brace_open brace_close\n | struct_or_union TYPEID brace_open struct_declaration_list brace_close\n | struct_or_union TYPEID brace_open brace_close\n struct_or_union : STRUCT\n | UNION\n struct_declaration_list : struct_declaration\n | struct_declaration_list struct_declaration\n struct_declaration : specifier_qualifier_list struct_declarator_list_opt SEMI\n struct_declaration : SEMI\n struct_declaration : pppragma_directive\n struct_declarator_list : struct_declarator\n | struct_declarator_list COMMA struct_declarator\n struct_declarator : declarator\n struct_declarator : declarator COLON constant_expression\n | COLON constant_expression\n enum_specifier : ENUM ID\n | ENUM TYPEID\n enum_specifier : ENUM brace_open enumerator_list brace_close\n enum_specifier : ENUM ID brace_open enumerator_list brace_close\n | ENUM TYPEID brace_open enumerator_list brace_close\n enumerator_list : enumerator\n | enumerator_list COMMA\n | enumerator_list COMMA enumerator\n enumerator : ID\n | ID EQUALS constant_expression\n declarator : id_declarator\n | typeid_declarator\n pointer : TIMES type_qualifier_list_opt\n | TIMES type_qualifier_list_opt pointer\n type_qualifier_list : type_qualifier\n | type_qualifier_list type_qualifier\n parameter_type_list : parameter_list\n | parameter_list COMMA ELLIPSIS\n parameter_list : parameter_declaration\n | parameter_list COMMA parameter_declaration\n parameter_declaration : declaration_specifiers id_declarator\n | declaration_specifiers typeid_noparen_declarator\n parameter_declaration : declaration_specifiers abstract_declarator_opt\n identifier_list : identifier\n | identifier_list COMMA identifier\n initializer : assignment_expression\n initializer : brace_open initializer_list_opt brace_close\n | brace_open initializer_list COMMA brace_close\n initializer_list : designation_opt initializer\n | initializer_list COMMA designation_opt initializer\n designation : designator_list EQUALS\n designator_list : designator\n | designator_list designator\n designator : LBRACKET constant_expression RBRACKET\n | PERIOD identifier\n type_name : specifier_qualifier_list abstract_declarator_opt\n abstract_declarator : pointer\n abstract_declarator : pointer direct_abstract_declarator\n abstract_declarator : direct_abstract_declarator\n direct_abstract_declarator : LPAREN abstract_declarator RPAREN direct_abstract_declarator : direct_abstract_declarator LBRACKET assignment_expression_opt RBRACKET\n direct_abstract_declarator : LBRACKET assignment_expression_opt RBRACKET\n direct_abstract_declarator : direct_abstract_declarator LBRACKET TIMES RBRACKET\n direct_abstract_declarator : LBRACKET TIMES RBRACKET\n direct_abstract_declarator : direct_abstract_declarator LPAREN parameter_type_list_opt RPAREN\n direct_abstract_declarator : LPAREN parameter_type_list_opt RPAREN\n block_item : declaration\n | statement\n block_item_list : block_item\n | block_item_list block_item\n compound_statement : brace_open block_item_list_opt brace_close labeled_statement : ID COLON pragmacomp_or_statement labeled_statement : CASE constant_expression COLON pragmacomp_or_statement labeled_statement : DEFAULT COLON pragmacomp_or_statement selection_statement : IF LPAREN expression RPAREN pragmacomp_or_statement selection_statement : IF LPAREN expression RPAREN statement ELSE pragmacomp_or_statement selection_statement : SWITCH LPAREN expression RPAREN pragmacomp_or_statement iteration_statement : WHILE LPAREN expression RPAREN pragmacomp_or_statement iteration_statement : DO pragmacomp_or_statement WHILE LPAREN expression RPAREN SEMI iteration_statement : FOR LPAREN expression_opt SEMI expression_opt SEMI expression_opt RPAREN pragmacomp_or_statement iteration_statement : FOR LPAREN declaration expression_opt SEMI expression_opt RPAREN pragmacomp_or_statement jump_statement : GOTO ID SEMI jump_statement : BREAK SEMI jump_statement : CONTINUE SEMI jump_statement : RETURN expression SEMI\n | RETURN SEMI\n expression_statement : expression_opt SEMI expression : assignment_expression\n | expression COMMA assignment_expression\n typedef_name : TYPEID assignment_expression : conditional_expression\n | unary_expression assignment_operator assignment_expression\n assignment_operator : EQUALS\n | XOREQUAL\n | TIMESEQUAL\n | DIVEQUAL\n | MODEQUAL\n | PLUSEQUAL\n | MINUSEQUAL\n | LSHIFTEQUAL\n | RSHIFTEQUAL\n | ANDEQUAL\n | OREQUAL\n constant_expression : conditional_expression conditional_expression : binary_expression\n | binary_expression CONDOP expression COLON conditional_expression\n binary_expression : cast_expression\n | binary_expression TIMES binary_expression\n | binary_expression DIVIDE binary_expression\n | binary_expression MOD binary_expression\n | binary_expression PLUS binary_expression\n | binary_expression MINUS binary_expression\n | binary_expression RSHIFT binary_expression\n | binary_expression LSHIFT binary_expression\n | binary_expression LT binary_expression\n | binary_expression LE binary_expression\n | binary_expression GE binary_expression\n | binary_expression GT binary_expression\n | binary_expression EQ binary_expression\n | binary_expression NE binary_expression\n | binary_expression AND binary_expression\n | binary_expression OR binary_expression\n | binary_expression XOR binary_expression\n | binary_expression LAND binary_expression\n | binary_expression LOR binary_expression\n cast_expression : unary_expression cast_expression : LPAREN type_name RPAREN cast_expression unary_expression : postfix_expression unary_expression : PLUSPLUS unary_expression\n | MINUSMINUS unary_expression\n | unary_operator cast_expression\n unary_expression : SIZEOF unary_expression\n | SIZEOF LPAREN type_name RPAREN\n unary_operator : AND\n | TIMES\n | PLUS\n | MINUS\n | NOT\n | LNOT\n postfix_expression : primary_expression postfix_expression : postfix_expression LBRACKET expression RBRACKET postfix_expression : postfix_expression LPAREN argument_expression_list RPAREN\n | postfix_expression LPAREN RPAREN\n postfix_expression : postfix_expression PERIOD ID\n | postfix_expression PERIOD TYPEID\n | postfix_expression ARROW ID\n | postfix_expression ARROW TYPEID\n postfix_expression : postfix_expression PLUSPLUS\n | postfix_expression MINUSMINUS\n postfix_expression : LPAREN type_name RPAREN brace_open initializer_list brace_close\n | LPAREN type_name RPAREN brace_open initializer_list COMMA brace_close\n primary_expression : identifier primary_expression : constant primary_expression : unified_string_literal\n | unified_wstring_literal\n primary_expression : LPAREN expression RPAREN primary_expression : OFFSETOF LPAREN type_name COMMA offsetof_member_designator RPAREN\n offsetof_member_designator : identifier\n | offsetof_member_designator PERIOD identifier\n | offsetof_member_designator LBRACKET expression RBRACKET\n argument_expression_list : assignment_expression\n | argument_expression_list COMMA assignment_expression\n identifier : ID constant : INT_CONST_DEC\n | INT_CONST_OCT\n | INT_CONST_HEX\n | INT_CONST_BIN\n constant : FLOAT_CONST\n | HEX_FLOAT_CONST\n constant : CHAR_CONST\n | WCHAR_CONST\n unified_string_literal : STRING_LITERAL\n | unified_string_literal STRING_LITERAL\n unified_wstring_literal : WSTRING_LITERAL\n | unified_wstring_literal WSTRING_LITERAL\n brace_open : LBRACE\n brace_close : RBRACE\n empty : ' + +_lr_action_items = {'$end':([0,1,2,3,4,5,6,7,8,9,13,14,55,77,78,105,144,210,264,],[-309,0,-58,-59,-60,-62,-63,-64,-65,-66,-67,-68,-61,-83,-69,-70,-308,-71,-202,]),'SEMI':([0,2,4,5,6,7,8,9,11,12,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,60,61,62,63,64,65,66,67,69,70,72,73,74,75,76,77,78,81,82,83,84,85,86,87,88,89,90,91,92,98,99,101,102,103,104,105,106,108,110,127,131,139,140,141,142,143,144,145,146,147,148,151,152,153,154,155,156,157,158,159,160,161,162,163,166,169,172,175,176,177,178,179,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,227,228,242,243,246,249,250,251,252,253,254,255,256,257,258,259,260,261,263,264,265,266,267,269,270,272,273,282,283,284,285,286,287,288,289,325,326,327,329,330,331,333,334,349,350,351,352,371,372,375,376,377,380,381,382,384,387,391,395,396,397,398,399,400,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,431,438,439,442,443,456,457,458,460,462,463,464,466,467,469,470,473,475,479,480,490,491,493,494,496,498,507,508,510,513,518,519,520,522,525,526,528,],[9,9,-60,-62,-63,-64,-65,-66,-309,77,-67,-68,-52,-309,-309,-309,-116,-93,-309,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,-309,-309,-162,-89,-90,-91,-92,-81,-19,-20,-120,-122,-163,-54,-37,-83,-69,-53,-86,-9,-10,-87,-88,-94,-82,-15,-16,-124,-126,-152,-153,-307,-132,-133,146,-70,-309,-162,-55,-294,-30,146,146,146,-135,-142,-308,-309,-145,-146,-130,-13,-309,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-294,273,-14,-309,286,287,289,-219,-222,-257,-236,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-71,-121,-38,-123,-177,-35,-36,-125,-127,-154,146,-137,146,-139,-134,-143,377,-128,-129,-25,-26,-147,-149,-131,-202,-201,-13,-309,-235,-257,-309,-218,-78,-80,-309,398,-214,-215,399,-217,-279,-280,-260,-261,-262,-263,-304,-306,-43,-44,-31,-34,-155,-156,-136,-138,-144,-151,-203,-309,-205,-287,-220,-79,466,-309,-213,-216,-223,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,-274,-275,-276,-277,-278,-178,-39,-42,-32,-33,-148,-150,-204,-309,-258,-309,-309,-309,497,-272,-273,-264,-179,-40,-41,-206,-80,-208,-209,511,-237,-309,-281,520,-288,-207,-282,-210,-309,-309,-212,-211,]),'PPHASH':([0,2,4,5,6,7,8,9,13,14,55,77,78,105,144,210,264,],[13,13,-60,-62,-63,-64,-65,-66,-67,-68,-61,-83,-69,-70,-308,-71,-202,]),'PPPRAGMA':([0,2,4,5,6,7,8,9,13,14,55,77,78,101,104,105,106,139,140,141,143,144,146,147,152,153,154,155,156,157,158,159,160,161,162,172,210,249,251,254,264,265,267,272,273,282,283,286,287,289,377,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[14,14,-60,-62,-63,-64,-65,-66,-67,-68,-61,-83,-69,-307,14,-70,14,14,14,14,-142,-308,-145,-146,14,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,14,-71,14,14,-143,-202,-201,14,14,-218,14,-80,-214,-215,-217,-144,-203,14,-205,-79,-213,-216,-204,14,14,14,-206,-80,-208,-209,14,-207,-210,14,14,-212,-211,]),'ID':([0,2,4,5,6,7,8,9,11,13,14,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,60,61,63,64,65,66,68,71,77,78,79,80,82,83,84,85,86,87,94,95,96,97,98,99,100,101,102,103,105,106,111,113,114,115,116,117,118,126,129,130,132,133,134,135,142,144,145,148,152,153,154,155,156,157,158,159,160,161,162,164,168,172,174,177,183,184,185,187,188,189,190,191,193,194,210,215,216,217,218,222,225,226,230,234,238,239,246,247,248,250,252,253,256,257,262,263,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,328,332,338,339,340,343,344,346,347,348,360,361,364,368,369,371,372,375,376,378,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,474,476,477,482,483,484,490,491,493,494,497,507,509,511,514,515,518,520,522,525,526,528,],[23,23,-60,-62,-63,-64,-65,-66,23,-67,-68,23,-309,-309,-309,-116,-93,23,23,-97,-309,-113,-114,-115,-221,98,102,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-140,-141,-61,23,23,-89,-90,-91,-92,23,23,-83,-69,-309,127,-86,-9,-10,-87,-88,-94,-164,-27,-28,-166,-152,-153,138,-307,-132,-133,-70,163,23,127,-309,127,127,-309,-28,23,23,127,-165,-167,138,138,-135,-308,23,-130,163,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,127,127,163,285,127,127,127,127,127,-266,-267,-268,-265,-269,-270,-71,-309,127,-309,-28,-266,127,127,127,23,23,127,-154,138,127,-137,-139,-134,-128,-129,127,-131,-202,-201,163,127,163,-218,127,127,127,127,163,-80,127,-214,-215,-217,127,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,424,426,127,127,-11,127,-12,127,127,-266,127,127,-309,127,23,-266,127,-155,-156,-136,-138,23,127,-203,163,-205,127,-79,127,-213,-216,-309,-182,127,-309,-28,-266,-204,127,163,-309,163,163,127,127,127,127,127,127,-11,-266,127,127,-206,-80,-208,-209,127,163,-309,127,127,127,-207,-210,163,163,-212,-211,]),'LPAREN':([0,2,4,5,6,7,8,9,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,60,61,63,64,65,66,68,71,75,76,77,78,79,81,82,83,84,85,86,87,94,95,96,97,98,99,101,102,103,105,106,110,111,113,114,116,117,118,126,127,129,130,131,132,133,142,144,145,148,152,153,154,155,156,157,158,159,160,161,162,163,164,167,168,170,171,172,173,177,182,183,184,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,212,215,216,217,218,222,225,226,227,228,234,235,238,239,240,241,246,248,250,252,253,256,257,262,263,264,265,267,271,272,273,274,277,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,325,326,328,332,333,334,338,339,340,343,346,347,348,349,350,351,352,358,359,360,364,368,369,371,372,375,376,378,379,381,382,384,386,387,389,390,394,395,397,398,399,422,424,425,426,427,432,434,438,439,442,443,444,445,446,449,450,451,452,454,458,459,460,461,463,464,465,466,468,469,470,471,476,477,479,480,482,483,484,485,486,487,488,489,490,491,493,494,497,503,504,507,508,509,511,513,515,516,517,518,519,520,522,525,526,528,],[24,24,-60,-62,-63,-64,-65,-66,71,-67,-68,80,24,-309,-309,-309,-116,-93,24,-29,24,-97,-309,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,71,24,-89,-90,-91,-92,71,71,115,-37,-83,-69,-309,80,-86,-9,-10,-87,-88,-94,-164,-27,-28,-166,-152,-153,-307,-132,-133,-70,168,115,71,168,-309,168,-309,-28,238,-294,71,168,-30,-165,-167,-135,-308,71,-130,168,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-294,271,274,168,279,280,168,284,168,322,328,328,271,332,-266,-267,-268,-265,-271,-269,-270,-283,-284,-285,-286,335,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-71,-38,-309,168,-309,-28,-266,168,168,-35,-36,238,361,238,168,-45,370,-154,271,-137,-139,-134,-128,-129,271,-131,-202,-201,168,168,168,-218,168,390,168,168,168,168,-80,168,-214,-215,-217,168,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,168,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,168,168,-279,-280,168,168,-304,-306,-11,168,-12,271,-266,168,168,-43,-44,-31,-34,361,370,-309,238,-266,168,-155,-156,-136,-138,71,271,-203,168,-205,271,-287,390,390,465,-79,168,-213,-216,-274,-275,-276,-277,-278,-309,-182,-39,-42,-32,-33,168,-309,-28,-191,-197,-193,-195,-266,-204,271,168,-309,168,168,168,168,271,-272,-273,168,168,-11,-40,-41,-266,168,168,-50,-51,-192,-194,-196,-206,-80,-208,-209,168,-46,-49,168,-281,-309,168,-288,168,-47,-48,-207,-282,-210,168,168,-212,-211,]),'TIMES':([0,2,4,5,6,7,8,9,11,13,14,17,18,19,20,21,22,24,25,26,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,60,61,63,64,65,66,71,77,78,79,82,83,84,85,86,87,94,95,96,97,98,99,101,102,103,105,106,111,113,114,116,117,118,126,127,129,130,133,142,144,145,148,152,153,154,155,156,157,158,159,160,161,162,163,164,168,172,177,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,200,201,202,203,204,205,206,207,208,209,210,215,216,217,218,222,225,226,238,239,246,248,250,252,253,256,257,262,263,264,265,267,270,271,272,273,274,277,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,325,326,327,328,329,330,331,332,333,334,338,339,340,343,346,347,348,360,368,369,371,372,375,376,378,379,381,382,384,386,387,390,395,397,398,399,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,432,434,444,445,446,454,458,459,460,461,462,463,464,465,466,468,469,470,471,473,476,477,482,483,484,490,491,493,494,497,507,508,509,511,513,515,518,519,520,522,525,526,528,],[26,26,-60,-62,-63,-64,-65,-66,26,-67,-68,-309,-309,-309,-116,-93,26,26,-97,-309,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,26,26,-89,-90,-91,-92,26,-83,-69,-309,-86,-9,-10,-87,-88,-94,26,-27,-28,-166,-152,-153,-307,-132,-133,-70,188,26,188,-309,222,-309,-28,26,-294,26,188,-167,-135,-308,26,-130,188,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-294,188,188,188,188,-257,303,-259,188,188,188,-238,188,-266,-267,-268,-265,-271,-269,-270,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-71,-309,346,-309,-28,-266,188,188,26,368,-154,188,-137,-139,-134,-128,-129,188,-131,-202,-201,188,-257,188,188,-218,188,26,188,188,188,188,-80,188,-214,-215,-217,188,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,-279,-280,-260,188,-261,-262,-263,188,-304,-306,-11,188,-12,188,-266,188,188,-309,-266,454,-155,-156,-136,-138,26,188,-203,188,-205,188,-287,26,-79,188,-213,-216,-239,-240,-241,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,-274,-275,-276,-277,-278,-309,-182,482,-309,-28,-266,-204,188,188,-309,-258,188,188,188,188,188,-272,-273,188,-264,188,-11,-266,188,188,-206,-80,-208,-209,188,188,-281,-309,188,-288,188,-207,-282,-210,188,188,-212,-211,]),'TYPEID':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,58,59,60,61,62,63,64,65,66,68,71,77,78,80,81,82,83,84,85,86,87,94,95,96,97,98,99,101,102,103,104,105,106,107,111,115,126,128,129,131,132,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,234,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,282,283,284,286,287,289,323,324,328,332,335,351,352,361,370,371,372,375,376,377,378,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[30,30,-60,-62,-63,-64,-65,-66,30,76,-67,-68,-52,-309,-309,-309,-116,-93,30,-29,-97,-309,-113,-114,-115,-221,99,103,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-140,-141,-61,30,-84,76,30,30,-89,-90,-91,-92,76,76,-83,-69,30,-53,-86,-9,-10,-87,-88,-94,-164,-27,-28,-166,-152,-153,-307,-132,-133,30,-70,30,-85,76,30,240,30,76,-30,-165,-167,30,30,30,-135,-142,-308,76,-145,-146,-130,30,30,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,30,-71,-35,-36,30,240,30,-154,30,-137,30,-139,-134,-143,-128,-129,-131,-202,-201,30,-218,-78,-80,30,-214,-215,-217,425,427,30,30,30,-31,-34,30,30,-155,-156,-136,-138,-144,76,-203,-205,30,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'ENUM':([0,2,4,5,6,7,8,9,10,13,14,15,17,18,19,22,23,25,45,46,47,48,49,50,51,52,55,58,59,61,62,77,78,80,81,82,83,84,85,86,97,101,104,105,106,107,115,128,131,133,139,140,141,143,144,146,147,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,249,251,254,264,265,271,273,282,283,284,286,287,289,328,332,335,351,352,361,370,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[31,31,-60,-62,-63,-64,-65,-66,31,-67,-68,-52,-309,-309,-309,31,-29,-97,-117,-118,-119,-95,-96,-98,-99,-100,-61,31,-84,31,31,-83,-69,31,-53,-86,-9,-10,-87,-88,-166,-307,31,-70,31,-85,31,31,-30,-167,31,31,31,-142,-308,-145,-146,31,31,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,31,-71,-35,-36,31,31,31,31,-143,-202,-201,31,-218,-78,-80,31,-214,-215,-217,31,31,31,-31,-34,31,31,-144,-203,-205,31,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'VOID':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[33,33,-60,-62,-63,-64,-65,-66,33,33,-67,-68,-52,-309,-309,-309,-116,-93,33,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,33,-84,33,33,33,-89,-90,-91,-92,-83,-69,33,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,33,-70,33,-85,33,33,33,-30,-167,33,33,33,-135,-142,-308,33,-145,-146,-130,33,33,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,33,-71,-35,-36,33,33,-154,33,-137,33,-139,-134,-143,-128,-129,-131,-202,-201,33,-218,33,-78,-80,33,-214,-215,-217,33,33,33,-31,-34,33,33,-155,-156,-136,-138,-144,-203,-205,33,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'_BOOL':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[34,34,-60,-62,-63,-64,-65,-66,34,34,-67,-68,-52,-309,-309,-309,-116,-93,34,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,34,-84,34,34,34,-89,-90,-91,-92,-83,-69,34,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,34,-70,34,-85,34,34,34,-30,-167,34,34,34,-135,-142,-308,34,-145,-146,-130,34,34,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,34,-71,-35,-36,34,34,-154,34,-137,34,-139,-134,-143,-128,-129,-131,-202,-201,34,-218,34,-78,-80,34,-214,-215,-217,34,34,34,-31,-34,34,34,-155,-156,-136,-138,-144,-203,-205,34,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'CHAR':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[35,35,-60,-62,-63,-64,-65,-66,35,35,-67,-68,-52,-309,-309,-309,-116,-93,35,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,35,-84,35,35,35,-89,-90,-91,-92,-83,-69,35,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,35,-70,35,-85,35,35,35,-30,-167,35,35,35,-135,-142,-308,35,-145,-146,-130,35,35,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,35,-71,-35,-36,35,35,-154,35,-137,35,-139,-134,-143,-128,-129,-131,-202,-201,35,-218,35,-78,-80,35,-214,-215,-217,35,35,35,-31,-34,35,35,-155,-156,-136,-138,-144,-203,-205,35,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'SHORT':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[36,36,-60,-62,-63,-64,-65,-66,36,36,-67,-68,-52,-309,-309,-309,-116,-93,36,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,36,-84,36,36,36,-89,-90,-91,-92,-83,-69,36,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,36,-70,36,-85,36,36,36,-30,-167,36,36,36,-135,-142,-308,36,-145,-146,-130,36,36,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,36,-71,-35,-36,36,36,-154,36,-137,36,-139,-134,-143,-128,-129,-131,-202,-201,36,-218,36,-78,-80,36,-214,-215,-217,36,36,36,-31,-34,36,36,-155,-156,-136,-138,-144,-203,-205,36,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'INT':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[37,37,-60,-62,-63,-64,-65,-66,37,37,-67,-68,-52,-309,-309,-309,-116,-93,37,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,37,-84,37,37,37,-89,-90,-91,-92,-83,-69,37,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,37,-70,37,-85,37,37,37,-30,-167,37,37,37,-135,-142,-308,37,-145,-146,-130,37,37,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,37,-71,-35,-36,37,37,-154,37,-137,37,-139,-134,-143,-128,-129,-131,-202,-201,37,-218,37,-78,-80,37,-214,-215,-217,37,37,37,-31,-34,37,37,-155,-156,-136,-138,-144,-203,-205,37,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'LONG':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[38,38,-60,-62,-63,-64,-65,-66,38,38,-67,-68,-52,-309,-309,-309,-116,-93,38,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,38,-84,38,38,38,-89,-90,-91,-92,-83,-69,38,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,38,-70,38,-85,38,38,38,-30,-167,38,38,38,-135,-142,-308,38,-145,-146,-130,38,38,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,38,-71,-35,-36,38,38,-154,38,-137,38,-139,-134,-143,-128,-129,-131,-202,-201,38,-218,38,-78,-80,38,-214,-215,-217,38,38,38,-31,-34,38,38,-155,-156,-136,-138,-144,-203,-205,38,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'FLOAT':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[39,39,-60,-62,-63,-64,-65,-66,39,39,-67,-68,-52,-309,-309,-309,-116,-93,39,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,39,-84,39,39,39,-89,-90,-91,-92,-83,-69,39,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,39,-70,39,-85,39,39,39,-30,-167,39,39,39,-135,-142,-308,39,-145,-146,-130,39,39,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,39,-71,-35,-36,39,39,-154,39,-137,39,-139,-134,-143,-128,-129,-131,-202,-201,39,-218,39,-78,-80,39,-214,-215,-217,39,39,39,-31,-34,39,39,-155,-156,-136,-138,-144,-203,-205,39,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'DOUBLE':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[40,40,-60,-62,-63,-64,-65,-66,40,40,-67,-68,-52,-309,-309,-309,-116,-93,40,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,40,-84,40,40,40,-89,-90,-91,-92,-83,-69,40,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,40,-70,40,-85,40,40,40,-30,-167,40,40,40,-135,-142,-308,40,-145,-146,-130,40,40,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,40,-71,-35,-36,40,40,-154,40,-137,40,-139,-134,-143,-128,-129,-131,-202,-201,40,-218,40,-78,-80,40,-214,-215,-217,40,40,40,-31,-34,40,40,-155,-156,-136,-138,-144,-203,-205,40,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'_COMPLEX':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[41,41,-60,-62,-63,-64,-65,-66,41,41,-67,-68,-52,-309,-309,-309,-116,-93,41,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,41,-84,41,41,41,-89,-90,-91,-92,-83,-69,41,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,41,-70,41,-85,41,41,41,-30,-167,41,41,41,-135,-142,-308,41,-145,-146,-130,41,41,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,41,-71,-35,-36,41,41,-154,41,-137,41,-139,-134,-143,-128,-129,-131,-202,-201,41,-218,41,-78,-80,41,-214,-215,-217,41,41,41,-31,-34,41,41,-155,-156,-136,-138,-144,-203,-205,41,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'SIGNED':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[42,42,-60,-62,-63,-64,-65,-66,42,42,-67,-68,-52,-309,-309,-309,-116,-93,42,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,42,-84,42,42,42,-89,-90,-91,-92,-83,-69,42,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,42,-70,42,-85,42,42,42,-30,-167,42,42,42,-135,-142,-308,42,-145,-146,-130,42,42,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,42,-71,-35,-36,42,42,-154,42,-137,42,-139,-134,-143,-128,-129,-131,-202,-201,42,-218,42,-78,-80,42,-214,-215,-217,42,42,42,-31,-34,42,42,-155,-156,-136,-138,-144,-203,-205,42,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'UNSIGNED':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[43,43,-60,-62,-63,-64,-65,-66,43,43,-67,-68,-52,-309,-309,-309,-116,-93,43,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,43,-84,43,43,43,-89,-90,-91,-92,-83,-69,43,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,43,-70,43,-85,43,43,43,-30,-167,43,43,43,-135,-142,-308,43,-145,-146,-130,43,43,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,43,-71,-35,-36,43,43,-154,43,-137,43,-139,-134,-143,-128,-129,-131,-202,-201,43,-218,43,-78,-80,43,-214,-215,-217,43,43,43,-31,-34,43,43,-155,-156,-136,-138,-144,-203,-205,43,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'__INT128':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,61,62,63,64,65,66,77,78,80,81,82,83,84,85,86,87,97,98,99,101,102,103,104,105,106,107,115,126,128,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[44,44,-60,-62,-63,-64,-65,-66,44,44,-67,-68,-52,-309,-309,-309,-116,-93,44,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,44,-84,44,44,44,-89,-90,-91,-92,-83,-69,44,-53,-86,-9,-10,-87,-88,-94,-166,-152,-153,-307,-132,-133,44,-70,44,-85,44,44,44,-30,-167,44,44,44,-135,-142,-308,44,-145,-146,-130,44,44,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,44,-71,-35,-36,44,44,-154,44,-137,44,-139,-134,-143,-128,-129,-131,-202,-201,44,-218,44,-78,-80,44,-214,-215,-217,44,44,44,-31,-34,44,44,-155,-156,-136,-138,-144,-203,-205,44,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'CONST':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,23,25,26,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,62,63,64,65,66,77,78,79,80,81,87,96,97,98,99,101,102,103,104,105,106,107,114,115,117,118,126,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,217,218,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,360,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,445,446,458,490,491,493,494,518,520,526,528,],[45,45,-60,-62,-63,-64,-65,-66,45,45,-67,-68,-52,45,45,45,-116,-93,-29,-97,45,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,45,-84,45,45,-89,-90,-91,-92,-83,-69,45,45,-53,-94,45,-166,-152,-153,-307,-132,-133,45,-70,45,-85,45,45,45,45,45,-30,-167,45,45,45,-135,-142,-308,45,-145,-146,-130,45,45,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,45,-71,45,45,-35,-36,45,45,-154,45,-137,45,-139,-134,-143,-128,-129,-131,-202,-201,45,-218,45,-78,-80,45,-214,-215,-217,45,45,45,-31,-34,45,45,45,-155,-156,-136,-138,-144,-203,-205,45,-79,-213,-216,-32,-33,45,45,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'RESTRICT':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,23,25,26,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,62,63,64,65,66,77,78,79,80,81,87,96,97,98,99,101,102,103,104,105,106,107,114,115,117,118,126,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,217,218,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,360,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,445,446,458,490,491,493,494,518,520,526,528,],[46,46,-60,-62,-63,-64,-65,-66,46,46,-67,-68,-52,46,46,46,-116,-93,-29,-97,46,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,46,-84,46,46,-89,-90,-91,-92,-83,-69,46,46,-53,-94,46,-166,-152,-153,-307,-132,-133,46,-70,46,-85,46,46,46,46,46,-30,-167,46,46,46,-135,-142,-308,46,-145,-146,-130,46,46,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,46,-71,46,46,-35,-36,46,46,-154,46,-137,46,-139,-134,-143,-128,-129,-131,-202,-201,46,-218,46,-78,-80,46,-214,-215,-217,46,46,46,-31,-34,46,46,46,-155,-156,-136,-138,-144,-203,-205,46,-79,-213,-216,-32,-33,46,46,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'VOLATILE':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,23,25,26,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,62,63,64,65,66,77,78,79,80,81,87,96,97,98,99,101,102,103,104,105,106,107,114,115,117,118,126,131,133,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,156,157,158,159,160,161,162,168,210,217,218,227,228,229,238,246,249,250,251,252,253,254,256,257,263,264,265,271,273,277,282,283,284,286,287,289,328,332,335,351,352,360,361,370,371,372,375,376,377,381,384,390,395,398,399,442,443,445,446,458,490,491,493,494,518,520,526,528,],[47,47,-60,-62,-63,-64,-65,-66,47,47,-67,-68,-52,47,47,47,-116,-93,-29,-97,47,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,47,-84,47,47,-89,-90,-91,-92,-83,-69,47,47,-53,-94,47,-166,-152,-153,-307,-132,-133,47,-70,47,-85,47,47,47,47,47,-30,-167,47,47,47,-135,-142,-308,47,-145,-146,-130,47,47,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,47,-71,47,47,-35,-36,47,47,-154,47,-137,47,-139,-134,-143,-128,-129,-131,-202,-201,47,-218,47,-78,-80,47,-214,-215,-217,47,47,47,-31,-34,47,47,47,-155,-156,-136,-138,-144,-203,-205,47,-79,-213,-216,-32,-33,47,47,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'AUTO':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,62,63,64,65,66,77,78,80,81,87,98,99,101,102,103,105,106,107,115,126,131,142,144,152,153,154,155,156,157,158,159,160,161,162,210,227,228,229,238,246,250,252,253,264,265,273,282,283,284,286,287,289,351,352,361,370,371,372,375,376,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[48,48,-60,-62,-63,-64,-65,-66,48,48,-67,-68,-52,48,48,48,-116,-93,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,48,-84,48,48,-89,-90,-91,-92,-83,-69,48,-53,-94,-152,-153,-307,-132,-133,-70,48,-85,48,48,-30,-135,-308,48,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-71,-35,-36,48,48,-154,-137,-139,-134,-202,-201,-218,-78,-80,48,-214,-215,-217,-31,-34,48,48,-155,-156,-136,-138,-203,-205,48,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'REGISTER':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,62,63,64,65,66,77,78,80,81,87,98,99,101,102,103,105,106,107,115,126,131,142,144,152,153,154,155,156,157,158,159,160,161,162,210,227,228,229,238,246,250,252,253,264,265,273,282,283,284,286,287,289,351,352,361,370,371,372,375,376,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[49,49,-60,-62,-63,-64,-65,-66,49,49,-67,-68,-52,49,49,49,-116,-93,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,49,-84,49,49,-89,-90,-91,-92,-83,-69,49,-53,-94,-152,-153,-307,-132,-133,-70,49,-85,49,49,-30,-135,-308,49,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-71,-35,-36,49,49,-154,-137,-139,-134,-202,-201,-218,-78,-80,49,-214,-215,-217,-31,-34,49,49,-155,-156,-136,-138,-203,-205,49,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'STATIC':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,62,63,64,65,66,77,78,79,80,81,87,97,98,99,101,102,103,105,106,107,114,115,118,126,131,133,142,144,152,153,154,155,156,157,158,159,160,161,162,210,218,227,228,229,238,246,250,252,253,264,265,273,282,283,284,286,287,289,351,352,360,361,370,371,372,375,376,381,384,390,395,398,399,442,443,446,458,490,491,493,494,518,520,526,528,],[25,25,-60,-62,-63,-64,-65,-66,25,25,-67,-68,-52,25,25,25,-116,-93,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,25,-84,25,25,-89,-90,-91,-92,-83,-69,117,25,-53,-94,-166,-152,-153,-307,-132,-133,-70,25,-85,217,25,226,25,-30,-167,-135,-308,25,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-71,348,-35,-36,25,25,-154,-137,-139,-134,-202,-201,-218,-78,-80,25,-214,-215,-217,-31,-34,445,25,25,-155,-156,-136,-138,-203,-205,25,-79,-213,-216,-32,-33,484,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'EXTERN':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,62,63,64,65,66,77,78,80,81,87,98,99,101,102,103,105,106,107,115,126,131,142,144,152,153,154,155,156,157,158,159,160,161,162,210,227,228,229,238,246,250,252,253,264,265,273,282,283,284,286,287,289,351,352,361,370,371,372,375,376,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[50,50,-60,-62,-63,-64,-65,-66,50,50,-67,-68,-52,50,50,50,-116,-93,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,50,-84,50,50,-89,-90,-91,-92,-83,-69,50,-53,-94,-152,-153,-307,-132,-133,-70,50,-85,50,50,-30,-135,-308,50,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-71,-35,-36,50,50,-154,-137,-139,-134,-202,-201,-218,-78,-80,50,-214,-215,-217,-31,-34,50,50,-155,-156,-136,-138,-203,-205,50,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'TYPEDEF':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,62,63,64,65,66,77,78,80,81,87,98,99,101,102,103,105,106,107,115,126,131,142,144,152,153,154,155,156,157,158,159,160,161,162,210,227,228,229,238,246,250,252,253,264,265,273,282,283,284,286,287,289,351,352,361,370,371,372,375,376,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[51,51,-60,-62,-63,-64,-65,-66,51,51,-67,-68,-52,51,51,51,-116,-93,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,51,-84,51,51,-89,-90,-91,-92,-83,-69,51,-53,-94,-152,-153,-307,-132,-133,-70,51,-85,51,51,-30,-135,-308,51,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-71,-35,-36,51,51,-154,-137,-139,-134,-202,-201,-218,-78,-80,51,-214,-215,-217,-31,-34,51,51,-155,-156,-136,-138,-203,-205,51,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'INLINE':([0,2,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,23,25,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,58,59,60,62,63,64,65,66,77,78,80,81,87,98,99,101,102,103,105,106,107,115,126,131,142,144,152,153,154,155,156,157,158,159,160,161,162,210,227,228,229,238,246,250,252,253,264,265,273,282,283,284,286,287,289,351,352,361,370,371,372,375,376,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[52,52,-60,-62,-63,-64,-65,-66,52,52,-67,-68,-52,52,52,52,-116,-93,-29,-97,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-61,52,-84,52,52,-89,-90,-91,-92,-83,-69,52,-53,-94,-152,-153,-307,-132,-133,-70,52,-85,52,52,-30,-135,-308,52,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-71,-35,-36,52,52,-154,-137,-139,-134,-202,-201,-218,-78,-80,52,-214,-215,-217,-31,-34,52,52,-155,-156,-136,-138,-203,-205,52,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'STRUCT':([0,2,4,5,6,7,8,9,10,13,14,15,17,18,19,22,23,25,45,46,47,48,49,50,51,52,55,58,59,61,62,77,78,80,81,82,83,84,85,86,97,101,104,105,106,107,115,128,131,133,139,140,141,143,144,146,147,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,249,251,254,264,265,271,273,282,283,284,286,287,289,328,332,335,351,352,361,370,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[53,53,-60,-62,-63,-64,-65,-66,53,-67,-68,-52,-309,-309,-309,53,-29,-97,-117,-118,-119,-95,-96,-98,-99,-100,-61,53,-84,53,53,-83,-69,53,-53,-86,-9,-10,-87,-88,-166,-307,53,-70,53,-85,53,53,-30,-167,53,53,53,-142,-308,-145,-146,53,53,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,53,-71,-35,-36,53,53,53,53,-143,-202,-201,53,-218,-78,-80,53,-214,-215,-217,53,53,53,-31,-34,53,53,-144,-203,-205,53,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'UNION':([0,2,4,5,6,7,8,9,10,13,14,15,17,18,19,22,23,25,45,46,47,48,49,50,51,52,55,58,59,61,62,77,78,80,81,82,83,84,85,86,97,101,104,105,106,107,115,128,131,133,139,140,141,143,144,146,147,149,152,153,154,155,156,157,158,159,160,161,162,168,210,227,228,229,238,249,251,254,264,265,271,273,282,283,284,286,287,289,328,332,335,351,352,361,370,377,381,384,390,395,398,399,442,443,458,490,491,493,494,518,520,526,528,],[54,54,-60,-62,-63,-64,-65,-66,54,-67,-68,-52,-309,-309,-309,54,-29,-97,-117,-118,-119,-95,-96,-98,-99,-100,-61,54,-84,54,54,-83,-69,54,-53,-86,-9,-10,-87,-88,-166,-307,54,-70,54,-85,54,54,-30,-167,54,54,54,-142,-308,-145,-146,54,54,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,54,-71,-35,-36,54,54,54,54,-143,-202,-201,54,-218,-78,-80,54,-214,-215,-217,54,54,54,-31,-34,54,54,-144,-203,-205,54,-79,-213,-216,-32,-33,-204,-206,-80,-208,-209,-207,-210,-212,-211,]),'LBRACE':([10,14,15,23,31,32,53,54,56,57,58,59,62,77,78,81,98,99,101,102,103,106,107,109,113,130,131,144,152,153,154,155,156,157,158,159,160,161,162,172,215,227,228,264,265,267,272,273,282,283,286,287,289,338,339,340,351,352,381,382,384,386,395,398,399,432,434,442,443,458,459,460,461,463,464,472,473,476,477,490,491,493,494,507,509,518,520,522,525,526,528,],[-309,-68,-52,-29,101,101,-140,-141,101,-7,-8,-84,-309,-83,-69,-53,101,101,-307,101,101,101,-85,101,101,101,-30,-308,101,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,101,-309,-35,-36,-202,-201,101,101,-218,101,-80,-214,-215,-217,-11,101,-12,-31,-34,-203,101,-205,101,-79,-213,-216,-309,-182,-32,-33,-204,101,101,-309,101,101,101,101,101,-11,-206,-80,-208,-209,101,-309,-207,-210,101,101,-212,-211,]),'RBRACE':([14,77,78,101,104,106,127,136,137,138,139,140,141,143,144,146,147,150,151,152,153,154,155,156,157,158,159,160,161,162,179,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,214,215,244,245,247,249,251,254,264,265,269,270,273,282,283,286,287,289,325,326,327,329,330,331,333,334,336,337,338,373,374,377,381,384,387,395,398,399,400,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,431,432,433,458,462,469,470,473,475,490,491,492,493,494,498,502,508,509,513,518,519,520,526,528,],[-68,-83,-69,-307,144,-309,-294,144,-157,-160,144,144,144,-142,-308,-145,-146,144,-5,-6,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-222,-257,-236,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-177,-309,144,144,-158,144,144,-143,-202,-201,-235,-257,-218,-78,-80,-214,-215,-217,-279,-280,-260,-261,-262,-263,-304,-306,144,-22,-21,-159,-161,-144,-203,-205,-287,-79,-213,-216,-223,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,-274,-275,-276,-277,-278,-178,144,-180,-204,-258,-272,-273,-264,-179,-206,-80,144,-208,-209,-237,-181,-281,144,-288,-207,-282,-210,-212,-211,]),'CASE':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,164,-308,164,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,164,-202,-201,164,164,-218,164,-80,-214,-215,-217,-203,164,-205,-79,-213,-216,-204,164,164,164,-206,-80,-208,-209,164,-207,-210,164,164,-212,-211,]),'DEFAULT':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,165,-308,165,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,165,-202,-201,165,165,-218,165,-80,-214,-215,-217,-203,165,-205,-79,-213,-216,-204,165,165,165,-206,-80,-208,-209,165,-207,-210,165,165,-212,-211,]),'IF':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,167,-308,167,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,167,-202,-201,167,167,-218,167,-80,-214,-215,-217,-203,167,-205,-79,-213,-216,-204,167,167,167,-206,-80,-208,-209,167,-207,-210,167,167,-212,-211,]),'SWITCH':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,170,-308,170,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,170,-202,-201,170,170,-218,170,-80,-214,-215,-217,-203,170,-205,-79,-213,-216,-204,170,170,170,-206,-80,-208,-209,170,-207,-210,170,170,-212,-211,]),'WHILE':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,281,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,171,-308,171,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,171,-202,-201,171,171,-218,394,171,-80,-214,-215,-217,-203,171,-205,-79,-213,-216,-204,171,171,171,-206,-80,-208,-209,171,-207,-210,171,171,-212,-211,]),'DO':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,172,-308,172,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,172,-202,-201,172,172,-218,172,-80,-214,-215,-217,-203,172,-205,-79,-213,-216,-204,172,172,172,-206,-80,-208,-209,172,-207,-210,172,172,-212,-211,]),'FOR':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,173,-308,173,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,173,-202,-201,173,173,-218,173,-80,-214,-215,-217,-203,173,-205,-79,-213,-216,-204,173,173,173,-206,-80,-208,-209,173,-207,-210,173,173,-212,-211,]),'GOTO':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,174,-308,174,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,174,-202,-201,174,174,-218,174,-80,-214,-215,-217,-203,174,-205,-79,-213,-216,-204,174,174,174,-206,-80,-208,-209,174,-207,-210,174,174,-212,-211,]),'BREAK':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,175,-308,175,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,175,-202,-201,175,175,-218,175,-80,-214,-215,-217,-203,175,-205,-79,-213,-216,-204,175,175,175,-206,-80,-208,-209,175,-207,-210,175,175,-212,-211,]),'CONTINUE':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,176,-308,176,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,176,-202,-201,176,176,-218,176,-80,-214,-215,-217,-203,176,-205,-79,-213,-216,-204,176,176,176,-206,-80,-208,-209,176,-207,-210,176,176,-212,-211,]),'RETURN':([14,77,78,101,106,144,152,153,154,155,156,157,158,159,160,161,162,172,264,265,267,272,273,282,283,286,287,289,381,382,384,395,398,399,458,460,463,464,490,491,493,494,507,518,520,522,525,526,528,],[-68,-83,-69,-307,177,-308,177,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,177,-202,-201,177,177,-218,177,-80,-214,-215,-217,-203,177,-205,-79,-213,-216,-204,177,177,177,-206,-80,-208,-209,177,-207,-210,177,177,-212,-211,]),'PLUSPLUS':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,127,130,133,144,152,153,154,155,156,157,158,159,160,161,162,163,164,168,172,177,182,183,184,185,187,188,189,190,191,192,193,194,195,196,197,198,200,201,202,203,204,205,206,207,208,209,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,325,326,328,332,333,334,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,387,395,397,398,399,422,424,425,426,427,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,469,470,471,476,477,482,483,484,490,491,493,494,497,507,508,509,511,513,515,518,519,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,183,183,-309,183,-309,-28,-294,183,-167,-308,183,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-294,183,183,183,183,325,183,183,183,183,-266,-267,-268,-265,-271,-269,-270,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-309,183,-309,-28,-266,183,183,183,183,183,-202,-201,183,183,183,-218,183,183,183,183,183,-80,183,-214,-215,-217,183,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,-279,-280,183,183,-304,-306,-11,183,-12,183,-266,183,183,-309,-266,183,183,-203,183,-205,183,-287,-79,183,-213,-216,-274,-275,-276,-277,-278,-309,-182,183,-309,-28,-266,-204,183,183,-309,183,183,183,183,183,-272,-273,183,183,-11,-266,183,183,-206,-80,-208,-209,183,183,-281,-309,183,-288,183,-207,-282,-210,183,183,-212,-211,]),'MINUSMINUS':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,127,130,133,144,152,153,154,155,156,157,158,159,160,161,162,163,164,168,172,177,182,183,184,185,187,188,189,190,191,192,193,194,195,196,197,198,200,201,202,203,204,205,206,207,208,209,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,325,326,328,332,333,334,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,387,395,397,398,399,422,424,425,426,427,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,469,470,471,476,477,482,483,484,490,491,493,494,497,507,508,509,511,513,515,518,519,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,184,184,-309,184,-309,-28,-294,184,-167,-308,184,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-294,184,184,184,184,326,184,184,184,184,-266,-267,-268,-265,-271,-269,-270,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-309,184,-309,-28,-266,184,184,184,184,184,-202,-201,184,184,184,-218,184,184,184,184,184,-80,184,-214,-215,-217,184,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,-279,-280,184,184,-304,-306,-11,184,-12,184,-266,184,184,-309,-266,184,184,-203,184,-205,184,-287,-79,184,-213,-216,-274,-275,-276,-277,-278,-309,-182,184,-309,-28,-266,-204,184,184,-309,184,184,184,184,184,-272,-273,184,184,-11,-266,184,184,-206,-80,-208,-209,184,184,-281,-309,184,-288,184,-207,-282,-210,184,184,-212,-211,]),'SIZEOF':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,187,187,-309,187,-309,-28,187,-167,-308,187,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,187,187,187,187,187,187,187,187,-266,-267,-268,-265,-269,-270,-309,187,-309,-28,-266,187,187,187,187,187,-202,-201,187,187,187,-218,187,187,187,187,187,-80,187,-214,-215,-217,187,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,-11,187,-12,187,-266,187,187,-309,-266,187,187,-203,187,-205,187,-79,187,-213,-216,-309,-182,187,-309,-28,-266,-204,187,187,-309,187,187,187,187,187,187,187,-11,-266,187,187,-206,-80,-208,-209,187,187,-309,187,187,-207,-210,187,187,-212,-211,]),'AND':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,127,130,133,144,152,153,154,155,156,157,158,159,160,161,162,163,164,168,172,177,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,200,201,202,203,204,205,206,207,208,209,215,216,217,218,222,225,226,239,248,262,264,265,267,270,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,325,326,327,328,329,330,331,332,333,334,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,387,395,397,398,399,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,432,434,444,445,446,454,458,459,460,461,462,463,464,465,466,468,469,470,471,473,476,477,482,483,484,490,491,493,494,497,507,508,509,511,513,515,518,519,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,191,191,-309,191,-309,-28,-294,191,-167,-308,191,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-294,191,191,191,191,-257,316,-259,191,191,191,-238,191,-266,-267,-268,-265,-271,-269,-270,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-309,191,-309,-28,-266,191,191,191,191,191,-202,-201,191,-257,191,191,-218,191,191,191,191,191,-80,191,-214,-215,-217,191,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,-279,-280,-260,191,-261,-262,-263,191,-304,-306,-11,191,-12,191,-266,191,191,-309,-266,191,191,-203,191,-205,191,-287,-79,191,-213,-216,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,316,316,316,316,-274,-275,-276,-277,-278,-309,-182,191,-309,-28,-266,-204,191,191,-309,-258,191,191,191,191,191,-272,-273,191,-264,191,-11,-266,191,191,-206,-80,-208,-209,191,191,-281,-309,191,-288,191,-207,-282,-210,191,191,-212,-211,]),'PLUS':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,127,130,133,144,152,153,154,155,156,157,158,159,160,161,162,163,164,168,172,177,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,200,201,202,203,204,205,206,207,208,209,215,216,217,218,222,225,226,239,248,262,264,265,267,270,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,325,326,327,328,329,330,331,332,333,334,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,387,395,397,398,399,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,432,434,444,445,446,454,458,459,460,461,462,463,464,465,466,468,469,470,471,473,476,477,482,483,484,490,491,493,494,497,507,508,509,511,513,515,518,519,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,189,189,-309,189,-309,-28,-294,189,-167,-308,189,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-294,189,189,189,189,-257,306,-259,189,189,189,-238,189,-266,-267,-268,-265,-271,-269,-270,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-309,189,-309,-28,-266,189,189,189,189,189,-202,-201,189,-257,189,189,-218,189,189,189,189,189,-80,189,-214,-215,-217,189,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,-279,-280,-260,189,-261,-262,-263,189,-304,-306,-11,189,-12,189,-266,189,189,-309,-266,189,189,-203,189,-205,189,-287,-79,189,-213,-216,-239,-240,-241,-242,-243,306,306,306,306,306,306,306,306,306,306,306,306,306,-274,-275,-276,-277,-278,-309,-182,189,-309,-28,-266,-204,189,189,-309,-258,189,189,189,189,189,-272,-273,189,-264,189,-11,-266,189,189,-206,-80,-208,-209,189,189,-281,-309,189,-288,189,-207,-282,-210,189,189,-212,-211,]),'MINUS':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,127,130,133,144,152,153,154,155,156,157,158,159,160,161,162,163,164,168,172,177,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,200,201,202,203,204,205,206,207,208,209,215,216,217,218,222,225,226,239,248,262,264,265,267,270,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,325,326,327,328,329,330,331,332,333,334,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,387,395,397,398,399,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,432,434,444,445,446,454,458,459,460,461,462,463,464,465,466,468,469,470,471,473,476,477,482,483,484,490,491,493,494,497,507,508,509,511,513,515,518,519,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,190,190,-309,190,-309,-28,-294,190,-167,-308,190,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,-294,190,190,190,190,-257,307,-259,190,190,190,-238,190,-266,-267,-268,-265,-271,-269,-270,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-309,190,-309,-28,-266,190,190,190,190,190,-202,-201,190,-257,190,190,-218,190,190,190,190,190,-80,190,-214,-215,-217,190,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,-279,-280,-260,190,-261,-262,-263,190,-304,-306,-11,190,-12,190,-266,190,190,-309,-266,190,190,-203,190,-205,190,-287,-79,190,-213,-216,-239,-240,-241,-242,-243,307,307,307,307,307,307,307,307,307,307,307,307,307,-274,-275,-276,-277,-278,-309,-182,190,-309,-28,-266,-204,190,190,-309,-258,190,190,190,190,190,-272,-273,190,-264,190,-11,-266,190,190,-206,-80,-208,-209,190,190,-281,-309,190,-288,190,-207,-282,-210,190,190,-212,-211,]),'NOT':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,193,193,-309,193,-309,-28,193,-167,-308,193,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,193,193,193,193,193,193,193,193,-266,-267,-268,-265,-269,-270,-309,193,-309,-28,-266,193,193,193,193,193,-202,-201,193,193,193,-218,193,193,193,193,193,-80,193,-214,-215,-217,193,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,-11,193,-12,193,-266,193,193,-309,-266,193,193,-203,193,-205,193,-79,193,-213,-216,-309,-182,193,-309,-28,-266,-204,193,193,-309,193,193,193,193,193,193,193,-11,-266,193,193,-206,-80,-208,-209,193,193,-309,193,193,-207,-210,193,193,-212,-211,]),'LNOT':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,194,194,-309,194,-309,-28,194,-167,-308,194,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,194,194,194,194,194,194,194,194,-266,-267,-268,-265,-269,-270,-309,194,-309,-28,-266,194,194,194,194,194,-202,-201,194,194,194,-218,194,194,194,194,194,-80,194,-214,-215,-217,194,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,-11,194,-12,194,-266,194,194,-309,-266,194,194,-203,194,-205,194,-79,194,-213,-216,-309,-182,194,-309,-28,-266,-204,194,194,-309,194,194,194,194,194,194,194,-11,-266,194,194,-206,-80,-208,-209,194,194,-309,194,194,-207,-210,194,194,-212,-211,]),'OFFSETOF':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,199,199,-309,199,-309,-28,199,-167,-308,199,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,199,199,199,199,199,199,199,199,-266,-267,-268,-265,-269,-270,-309,199,-309,-28,-266,199,199,199,199,199,-202,-201,199,199,199,-218,199,199,199,199,199,-80,199,-214,-215,-217,199,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,-11,199,-12,199,-266,199,199,-309,-266,199,199,-203,199,-205,199,-79,199,-213,-216,-309,-182,199,-309,-28,-266,-204,199,199,-309,199,199,199,199,199,199,199,-11,-266,199,199,-206,-80,-208,-209,199,199,-309,199,199,-207,-210,199,199,-212,-211,]),'INT_CONST_DEC':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,200,200,-309,200,-309,-28,200,-167,-308,200,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,200,200,200,200,200,200,200,200,-266,-267,-268,-265,-269,-270,-309,200,-309,-28,-266,200,200,200,200,200,-202,-201,200,200,200,-218,200,200,200,200,200,-80,200,-214,-215,-217,200,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,-11,200,-12,200,-266,200,200,-309,-266,200,200,-203,200,-205,200,-79,200,-213,-216,-309,-182,200,-309,-28,-266,-204,200,200,-309,200,200,200,200,200,200,200,-11,-266,200,200,-206,-80,-208,-209,200,200,-309,200,200,-207,-210,200,200,-212,-211,]),'INT_CONST_OCT':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,201,201,-309,201,-309,-28,201,-167,-308,201,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,201,201,201,201,201,201,201,201,-266,-267,-268,-265,-269,-270,-309,201,-309,-28,-266,201,201,201,201,201,-202,-201,201,201,201,-218,201,201,201,201,201,-80,201,-214,-215,-217,201,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,-11,201,-12,201,-266,201,201,-309,-266,201,201,-203,201,-205,201,-79,201,-213,-216,-309,-182,201,-309,-28,-266,-204,201,201,-309,201,201,201,201,201,201,201,-11,-266,201,201,-206,-80,-208,-209,201,201,-309,201,201,-207,-210,201,201,-212,-211,]),'INT_CONST_HEX':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,202,202,-309,202,-309,-28,202,-167,-308,202,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,202,202,202,202,202,202,202,202,-266,-267,-268,-265,-269,-270,-309,202,-309,-28,-266,202,202,202,202,202,-202,-201,202,202,202,-218,202,202,202,202,202,-80,202,-214,-215,-217,202,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,-11,202,-12,202,-266,202,202,-309,-266,202,202,-203,202,-205,202,-79,202,-213,-216,-309,-182,202,-309,-28,-266,-204,202,202,-309,202,202,202,202,202,202,202,-11,-266,202,202,-206,-80,-208,-209,202,202,-309,202,202,-207,-210,202,202,-212,-211,]),'INT_CONST_BIN':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,203,203,-309,203,-309,-28,203,-167,-308,203,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,203,203,203,203,203,203,203,203,-266,-267,-268,-265,-269,-270,-309,203,-309,-28,-266,203,203,203,203,203,-202,-201,203,203,203,-218,203,203,203,203,203,-80,203,-214,-215,-217,203,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,-11,203,-12,203,-266,203,203,-309,-266,203,203,-203,203,-205,203,-79,203,-213,-216,-309,-182,203,-309,-28,-266,-204,203,203,-309,203,203,203,203,203,203,203,-11,-266,203,203,-206,-80,-208,-209,203,203,-309,203,203,-207,-210,203,203,-212,-211,]),'FLOAT_CONST':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,204,204,-309,204,-309,-28,204,-167,-308,204,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,204,204,204,204,204,204,204,204,-266,-267,-268,-265,-269,-270,-309,204,-309,-28,-266,204,204,204,204,204,-202,-201,204,204,204,-218,204,204,204,204,204,-80,204,-214,-215,-217,204,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,-11,204,-12,204,-266,204,204,-309,-266,204,204,-203,204,-205,204,-79,204,-213,-216,-309,-182,204,-309,-28,-266,-204,204,204,-309,204,204,204,204,204,204,204,-11,-266,204,204,-206,-80,-208,-209,204,204,-309,204,204,-207,-210,204,204,-212,-211,]),'HEX_FLOAT_CONST':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,205,205,-309,205,-309,-28,205,-167,-308,205,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,205,205,205,205,205,205,205,205,-266,-267,-268,-265,-269,-270,-309,205,-309,-28,-266,205,205,205,205,205,-202,-201,205,205,205,-218,205,205,205,205,205,-80,205,-214,-215,-217,205,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,-11,205,-12,205,-266,205,205,-309,-266,205,205,-203,205,-205,205,-79,205,-213,-216,-309,-182,205,-309,-28,-266,-204,205,205,-309,205,205,205,205,205,205,205,-11,-266,205,205,-206,-80,-208,-209,205,205,-309,205,205,-207,-210,205,205,-212,-211,]),'CHAR_CONST':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,206,206,-309,206,-309,-28,206,-167,-308,206,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,206,206,206,206,206,206,206,206,-266,-267,-268,-265,-269,-270,-309,206,-309,-28,-266,206,206,206,206,206,-202,-201,206,206,206,-218,206,206,206,206,206,-80,206,-214,-215,-217,206,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,-11,206,-12,206,-266,206,206,-309,-266,206,206,-203,206,-205,206,-79,206,-213,-216,-309,-182,206,-309,-28,-266,-204,206,206,-309,206,206,206,206,206,206,206,-11,-266,206,206,-206,-80,-208,-209,206,206,-309,206,206,-207,-210,206,206,-212,-211,]),'WCHAR_CONST':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,207,207,-309,207,-309,-28,207,-167,-308,207,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,207,207,207,207,207,207,207,207,-266,-267,-268,-265,-269,-270,-309,207,-309,-28,-266,207,207,207,207,207,-202,-201,207,207,207,-218,207,207,207,207,207,-80,207,-214,-215,-217,207,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,-11,207,-12,207,-266,207,207,-309,-266,207,207,-203,207,-205,207,-79,207,-213,-216,-309,-182,207,-309,-28,-266,-204,207,207,-309,207,207,207,207,207,207,207,-11,-266,207,207,-206,-80,-208,-209,207,207,-309,207,207,-207,-210,207,207,-212,-211,]),'STRING_LITERAL':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,197,208,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,333,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,208,208,-309,208,-309,-28,208,-167,-308,208,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,208,208,208,208,208,208,208,208,-266,-267,-268,-265,-269,-270,333,-303,-309,208,-309,-28,-266,208,208,208,208,208,-202,-201,208,208,208,-218,208,208,208,208,208,-80,208,-214,-215,-217,208,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,-304,-11,208,-12,208,-266,208,208,-309,-266,208,208,-203,208,-205,208,-79,208,-213,-216,-309,-182,208,-309,-28,-266,-204,208,208,-309,208,208,208,208,208,208,208,-11,-266,208,208,-206,-80,-208,-209,208,208,-309,208,208,-207,-210,208,208,-212,-211,]),'WSTRING_LITERAL':([14,45,46,47,77,78,79,95,96,97,101,106,113,114,116,117,118,130,133,144,152,153,154,155,156,157,158,159,160,161,162,164,168,172,177,183,184,185,187,188,189,190,191,193,194,198,209,215,216,217,218,222,225,226,239,248,262,264,265,267,271,272,273,274,278,279,280,282,283,284,286,287,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,334,338,339,340,343,346,347,348,360,368,369,379,381,382,384,386,395,397,398,399,432,434,444,445,446,454,458,459,460,461,463,464,465,466,468,471,476,477,482,483,484,490,491,493,494,497,507,509,511,515,518,520,522,525,526,528,],[-68,-117,-118,-119,-83,-69,-309,-27,-28,-166,-307,209,209,-309,209,-309,-28,209,-167,-308,209,-200,-198,-199,-72,-73,-74,-75,-76,-77,-78,209,209,209,209,209,209,209,209,-266,-267,-268,-265,-269,-270,334,-305,-309,209,-309,-28,-266,209,209,209,209,209,-202,-201,209,209,209,-218,209,209,209,209,209,-80,209,-214,-215,-217,209,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,-306,-11,209,-12,209,-266,209,209,-309,-266,209,209,-203,209,-205,209,-79,209,-213,-216,-309,-182,209,-309,-28,-266,-204,209,209,-309,209,209,209,209,209,209,209,-11,-266,209,209,-206,-80,-208,-209,209,209,-309,209,209,-207,-210,209,209,-212,-211,]),'ELSE':([14,78,144,156,157,158,159,160,161,162,264,273,282,283,286,287,289,381,384,395,398,399,458,490,491,493,494,518,520,526,528,],[-68,-69,-308,-72,-73,-74,-75,-76,-77,-78,-202,-218,-78,-80,-214,-215,-217,-203,-205,-79,-213,-216,-204,-206,507,-208,-209,-207,-210,-212,-211,]),'PPPRAGMASTR':([14,],[78,]),'EQUALS':([15,23,62,73,74,75,76,81,92,108,110,127,131,138,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,212,227,228,270,325,326,327,329,330,331,333,334,341,342,349,350,351,352,387,422,424,425,426,427,435,437,438,439,442,443,462,469,470,473,478,479,480,508,513,519,],[-52,-29,-162,113,-163,-54,-37,-53,130,-162,-55,-294,-30,248,-308,-294,291,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-38,-35,-36,-257,-279,-280,-260,-261,-262,-263,-304,-306,434,-183,-43,-44,-31,-34,-287,-274,-275,-276,-277,-278,-184,-186,-39,-42,-32,-33,-258,-272,-273,-264,-185,-40,-41,-281,-288,-282,]),'COMMA':([15,20,21,23,25,26,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,62,63,64,65,66,70,72,73,74,75,76,81,87,90,91,92,94,95,96,97,98,99,102,103,108,110,121,123,124,125,126,127,131,132,133,136,137,138,142,144,148,163,169,178,179,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,211,212,213,214,227,228,231,232,233,234,235,236,237,240,241,242,243,244,245,246,247,250,252,253,256,257,259,260,261,263,269,270,276,277,288,325,326,327,329,330,331,333,334,337,349,350,351,352,356,357,358,359,371,372,373,374,375,376,380,385,387,388,389,391,392,393,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,430,431,433,438,439,442,443,449,450,451,452,456,457,462,469,470,473,475,479,480,485,486,487,488,489,492,495,498,499,502,503,504,508,513,516,517,519,524,],[-52,-116,-93,-29,-97,-309,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-162,-89,-90,-91,-92,111,-120,-122,-163,-54,-37,-53,-94,129,-124,-126,-164,-27,-28,-166,-152,-153,-132,-133,-162,-55,229,230,-170,-175,-309,-294,-30,-165,-167,247,-157,-160,-135,-308,-130,-294,278,-219,-222,-257,-236,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-121,-38,-123,-177,-35,-36,-172,-173,-174,-188,-56,-1,-2,-45,-190,-125,-127,247,247,-154,-158,-137,-139,-134,-128,-129,378,-147,-149,-131,-235,-257,278,-309,278,-279,-280,-260,-261,-262,-263,-304,-306,432,-43,-44,-31,-34,-171,-176,-57,-189,-155,-156,-159,-161,-136,-138,-151,278,-287,-187,-188,-220,278,278,-223,278,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,278,471,-274,-292,-275,-276,-277,-278,474,-178,-180,-39,-42,-32,-33,-191,-197,-193,-195,-148,-150,-258,-272,-273,-264,-179,-40,-41,-50,-51,-192,-194,-196,509,278,-237,-293,-181,-46,-49,-281,-288,-47,-48,-282,278,]),'RPAREN':([15,20,21,23,25,26,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,63,64,65,66,75,76,80,81,87,93,94,95,96,97,98,99,102,103,110,112,115,119,120,121,122,123,124,125,126,127,131,132,133,142,144,148,169,178,179,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,212,219,220,227,228,231,232,233,234,235,236,237,238,240,241,246,250,252,253,256,257,263,266,270,275,276,277,322,325,326,327,329,330,331,333,334,349,350,351,352,355,356,357,358,359,361,362,363,364,365,366,370,371,372,375,376,383,385,387,388,389,390,391,392,393,400,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,421,422,423,424,425,426,427,428,429,438,439,442,443,447,448,449,450,451,452,455,462,469,470,473,479,480,485,486,487,488,489,495,497,498,499,500,501,503,504,508,511,512,513,516,517,519,521,523,527,],[-52,-116,-93,-29,-97,-309,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-89,-90,-91,-92,-54,-37,-309,-53,-94,131,-164,-27,-28,-166,-152,-153,-132,-133,-55,212,-309,227,228,-168,-17,-18,-170,-175,-309,-294,-30,-165,-167,-135,-308,-130,-14,-219,-222,-257,-236,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-38,349,350,-35,-36,-172,-173,-174,-188,-56,-1,-2,-309,-45,-190,-154,-137,-139,-134,-128,-129,-131,-13,-257,386,387,-309,422,-279,-280,-260,-261,-262,-263,-304,-306,-43,-44,-31,-34,-169,-171,-176,-57,-189,-309,449,450,-188,-23,-24,-309,-155,-156,-136,-138,459,460,-287,-187,-188,-309,-220,463,464,-223,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,470,-274,-292,-275,-276,-277,-278,472,473,-39,-42,-32,-33,485,486,-191,-197,-193,-195,489,-258,-272,-273,-264,-40,-41,-50,-51,-192,-194,-196,510,-309,-237,-293,513,-289,-46,-49,-281,-309,522,-288,-47,-48,-282,525,-290,-291,]),'COLON':([15,20,23,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,74,75,76,81,98,99,102,103,108,110,127,131,142,144,145,148,163,165,178,179,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,212,227,228,246,250,252,253,256,257,261,263,268,269,270,325,326,327,329,330,331,333,334,349,350,351,352,371,372,375,376,378,387,391,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,438,439,442,443,462,469,470,473,479,480,498,508,513,519,],[-52,-116,-29,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-163,-54,-37,-53,-152,-153,-132,-133,-162,-55,-294,-30,-135,-308,262,-130,267,272,-219,-222,-257,-236,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-38,-35,-36,-154,-137,-139,-134,-128,-129,379,-131,382,-235,-257,-279,-280,-260,-261,-262,-263,-304,-306,-43,-44,-31,-34,-155,-156,-136,-138,262,-287,-220,-223,468,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,-274,-275,-276,-277,-278,-39,-42,-32,-33,-258,-272,-273,-264,-40,-41,-237,-281,-288,-282,]),'LBRACKET':([15,20,21,23,25,26,27,28,29,30,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,63,64,65,66,75,76,81,87,94,95,96,97,98,99,101,102,103,110,126,127,131,132,133,142,144,148,163,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,212,215,227,228,234,235,238,240,241,246,250,252,253,256,257,263,277,325,326,333,334,341,342,349,350,351,352,358,359,364,371,372,375,376,387,389,390,422,424,425,426,427,432,435,437,438,439,442,443,449,450,451,452,461,469,470,478,479,480,485,486,487,488,489,500,501,503,504,508,509,513,516,517,519,523,527,],[79,-116,-93,-29,-97,-309,-113,-114,-115,-221,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-117,-118,-119,-95,-96,-98,-99,-100,-89,-90,-91,-92,114,-37,79,-94,-164,-27,-28,-166,-152,-153,-307,-132,-133,114,239,-294,-30,-165,-167,-135,-308,-130,-294,321,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-38,343,-35,-36,239,360,239,-45,369,-154,-137,-139,-134,-128,-129,-131,239,-279,-280,-304,-306,343,-183,-43,-44,-31,-34,360,369,239,-155,-156,-136,-138,-287,239,239,-274,-275,-276,-277,-278,343,-184,-186,-39,-42,-32,-33,-191,-197,-193,-195,343,-272,-273,-185,-40,-41,-50,-51,-192,-194,-196,515,-289,-46,-49,-281,343,-288,-47,-48,-282,-290,-291,]),'RBRACKET':([45,46,47,79,95,97,114,116,118,127,133,144,178,179,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,216,218,221,222,223,224,239,269,270,325,326,327,329,330,331,333,334,345,346,353,354,360,367,368,369,387,391,400,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,422,424,425,426,427,436,440,441,444,446,453,454,462,469,470,473,481,482,498,505,506,508,513,519,524,],[-117,-118,-119,-309,-27,-166,-309,-309,-28,-294,-167,-308,-219,-222,-257,-236,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-309,-28,351,352,-3,-4,-309,-235,-257,-279,-280,-260,-261,-262,-263,-304,-306,438,439,442,443,-309,451,452,-309,-287,-220,-223,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,469,-274,-275,-276,-277,-278,478,479,480,-309,-28,487,488,-258,-272,-273,-264,503,504,-237,516,517,-281,-288,-282,527,]),'PERIOD':([101,127,144,163,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,215,325,326,333,334,341,342,387,422,424,425,426,427,432,435,437,461,469,470,478,500,501,508,509,513,519,523,527,],[-307,-294,-308,-294,323,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,344,-279,-280,-304,-306,344,-183,-287,-274,-275,-276,-277,-278,344,-184,-186,344,-272,-273,-185,514,-289,-281,344,-288,-282,-290,-291,]),'ARROW':([127,144,163,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,325,326,333,334,387,422,424,425,426,427,469,470,508,513,519,],[-294,-308,-294,324,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-279,-280,-304,-306,-287,-274,-275,-276,-277,-278,-272,-273,-281,-288,-282,]),'XOREQUAL':([127,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,292,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'TIMESEQUAL':([127,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,293,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'DIVEQUAL':([127,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,294,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'MODEQUAL':([127,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,295,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'PLUSEQUAL':([127,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,296,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'MINUSEQUAL':([127,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,297,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'LSHIFTEQUAL':([127,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,298,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'RSHIFTEQUAL':([127,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,299,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'ANDEQUAL':([127,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,300,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'OREQUAL':([127,144,163,180,182,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,301,-259,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'CONDOP':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,302,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'DIVIDE':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,304,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'MOD':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,305,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'RSHIFT':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,308,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,308,308,308,308,308,308,308,308,308,308,308,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'LSHIFT':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,309,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,309,309,309,309,309,309,309,309,309,309,309,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'LT':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,310,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,310,310,310,310,310,310,310,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'LE':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,311,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,311,311,311,311,311,311,311,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'GE':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,312,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,312,312,312,312,312,312,312,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'GT':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,313,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,313,313,313,313,313,313,313,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'EQ':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,314,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,314,314,314,314,314,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'NE':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,315,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,315,315,315,315,315,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'OR':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,317,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,317,317,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'XOR':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,318,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,318,-254,318,318,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'LAND':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,319,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,319,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'LOR':([127,144,163,180,181,182,186,192,195,196,197,198,200,201,202,203,204,205,206,207,208,209,270,325,326,327,329,330,331,333,334,387,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,422,424,425,426,427,462,469,470,473,508,513,519,],[-294,-308,-294,-257,320,-259,-238,-271,-283,-284,-285,-286,-295,-296,-297,-298,-299,-300,-301,-302,-303,-305,-257,-279,-280,-260,-261,-262,-263,-304,-306,-287,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,-274,-275,-276,-277,-278,-258,-272,-273,-264,-281,-288,-282,]),'ELLIPSIS':([229,],[355,]),} + +_lr_action = {} +for _k, _v in _lr_action_items.items(): + for _x,_y in zip(_v[0],_v[1]): + if not _x in _lr_action: _lr_action[_x] = {} + _lr_action[_x][_k] = _y +del _lr_action_items + +_lr_goto_items = {'translation_unit_or_empty':([0,],[1,]),'translation_unit':([0,],[2,]),'empty':([0,10,11,17,18,19,22,26,60,61,62,79,80,106,114,115,116,117,126,145,152,172,215,216,217,238,239,267,272,277,282,284,360,361,369,370,382,390,397,432,444,445,460,461,463,464,466,497,507,509,511,522,525,],[3,57,69,83,83,83,89,95,69,89,57,95,122,151,95,122,223,95,236,258,266,266,338,223,95,365,223,266,266,236,266,266,95,122,223,365,266,365,266,477,223,95,266,477,266,266,266,266,266,477,266,266,266,]),'external_declaration':([0,2,],[4,55,]),'function_definition':([0,2,],[5,5,]),'declaration':([0,2,10,58,62,106,152,284,],[6,6,59,107,59,154,154,397,]),'pp_directive':([0,2,],[7,7,]),'pppragma_directive':([0,2,104,106,139,140,141,152,172,249,251,267,272,282,382,460,463,464,507,522,525,],[8,8,147,162,147,147,147,162,282,147,147,282,282,162,282,282,282,282,282,282,282,]),'id_declarator':([0,2,11,22,24,60,61,71,111,126,129,145,238,378,],[10,10,62,92,93,108,92,93,108,231,108,108,93,108,]),'declaration_specifiers':([0,2,10,58,62,80,106,115,152,229,238,284,361,370,390,],[11,11,60,60,60,126,60,126,60,126,126,60,126,126,126,]),'decl_body':([0,2,10,58,62,106,152,284,],[12,12,12,12,12,12,12,12,]),'direct_id_declarator':([0,2,11,16,22,24,60,61,68,71,111,126,129,145,234,238,364,378,],[15,15,15,81,15,15,15,15,81,15,15,15,15,15,81,15,81,15,]),'pointer':([0,2,11,22,24,60,61,71,94,111,126,129,145,238,277,378,390,],[16,16,68,16,16,68,16,68,132,68,234,68,68,364,389,68,389,]),'type_qualifier':([0,2,10,11,17,18,19,26,58,60,62,79,80,96,104,106,114,115,117,118,126,139,140,141,145,149,152,168,217,218,229,238,249,251,271,277,284,328,332,335,360,361,370,390,445,446,],[17,17,17,63,17,17,17,97,17,63,17,97,17,133,97,17,97,17,97,133,63,97,97,97,257,133,17,97,97,133,17,17,97,97,97,257,17,97,97,97,97,17,17,17,97,133,]),'storage_class_specifier':([0,2,10,11,17,18,19,58,60,62,80,106,115,126,152,229,238,284,361,370,390,],[18,18,18,64,18,18,18,18,64,18,18,18,18,64,18,18,18,18,18,18,18,]),'function_specifier':([0,2,10,11,17,18,19,58,60,62,80,106,115,126,152,229,238,284,361,370,390,],[19,19,19,65,19,19,19,19,65,19,19,19,19,65,19,19,19,19,19,19,19,]),'type_specifier_no_typeid':([0,2,10,11,22,58,60,61,62,80,104,106,115,126,128,139,140,141,145,149,152,168,229,238,249,251,271,277,284,328,332,335,361,370,390,],[20,20,20,66,20,20,66,20,20,20,20,20,20,66,20,20,20,20,256,20,20,20,20,20,20,20,20,256,20,20,20,20,20,20,20,]),'type_specifier':([0,2,10,22,58,61,62,80,104,106,115,128,139,140,141,149,152,168,229,238,249,251,271,284,328,332,335,361,370,390,],[21,21,21,87,21,87,21,21,148,21,21,87,148,148,148,263,21,148,21,21,148,148,148,21,148,148,148,21,21,21,]),'declaration_specifiers_no_type':([0,2,10,17,18,19,58,62,80,106,115,152,229,238,284,361,370,390,],[22,22,61,84,84,84,61,61,128,61,128,61,128,128,61,128,128,128,]),'typedef_name':([0,2,10,22,58,61,62,80,104,106,115,128,139,140,141,149,152,168,229,238,249,251,271,284,328,332,335,361,370,390,],[27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,]),'enum_specifier':([0,2,10,22,58,61,62,80,104,106,115,128,139,140,141,149,152,168,229,238,249,251,271,284,328,332,335,361,370,390,],[28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,]),'struct_or_union_specifier':([0,2,10,22,58,61,62,80,104,106,115,128,139,140,141,149,152,168,229,238,249,251,271,284,328,332,335,361,370,390,],[29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,]),'struct_or_union':([0,2,10,22,58,61,62,80,104,106,115,128,139,140,141,149,152,168,229,238,249,251,271,284,328,332,335,361,370,390,],[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,]),'declaration_list_opt':([10,62,],[56,109,]),'declaration_list':([10,62,],[58,58,]),'init_declarator_list_opt':([11,60,],[67,67,]),'init_declarator_list':([11,60,],[70,70,]),'init_declarator':([11,60,111,129,],[72,72,211,242,]),'declarator':([11,60,111,129,145,378,],[73,73,73,73,261,261,]),'typeid_declarator':([11,60,71,111,129,145,378,],[74,74,112,74,74,74,74,]),'direct_typeid_declarator':([11,60,68,71,111,129,145,378,],[75,75,110,75,75,75,75,75,]),'declaration_specifiers_no_type_opt':([17,18,19,],[82,85,86,]),'id_init_declarator_list_opt':([22,61,],[88,88,]),'id_init_declarator_list':([22,61,],[90,90,]),'id_init_declarator':([22,61,],[91,91,]),'type_qualifier_list_opt':([26,79,114,117,217,360,445,],[94,116,216,225,347,444,483,]),'type_qualifier_list':([26,79,104,114,117,139,140,141,168,217,249,251,271,328,332,335,360,445,],[96,118,149,218,96,149,149,149,149,96,149,149,149,149,149,149,446,96,]),'brace_open':([31,32,56,98,99,102,103,106,109,113,130,152,172,267,272,282,339,382,386,459,460,463,464,472,473,476,507,522,525,],[100,104,106,134,135,139,140,106,106,215,215,106,106,106,106,106,215,106,461,461,106,106,106,461,461,215,106,106,106,]),'compound_statement':([56,106,109,152,172,267,272,282,382,460,463,464,507,522,525,],[105,158,210,158,158,158,158,158,158,158,158,158,158,158,158,]),'parameter_type_list':([80,115,238,361,370,390,],[119,219,366,447,366,366,]),'identifier_list_opt':([80,115,361,],[120,220,448,]),'parameter_list':([80,115,238,361,370,390,],[121,121,121,121,121,121,]),'identifier_list':([80,115,361,],[123,123,123,]),'parameter_declaration':([80,115,229,238,361,370,390,],[124,124,356,124,124,124,124,]),'identifier':([80,106,113,115,116,130,152,164,168,172,177,183,184,185,187,216,225,226,230,239,248,262,267,271,272,274,278,279,280,282,284,290,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,339,343,344,347,348,361,369,379,382,386,397,444,459,460,463,464,465,466,468,471,474,476,483,484,497,507,511,514,515,522,525,],[125,195,195,125,195,195,195,195,195,195,195,195,195,195,195,195,195,195,357,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,437,195,195,125,195,195,195,195,195,195,195,195,195,195,195,195,195,195,501,195,195,195,195,195,195,523,195,195,195,]),'enumerator_list':([100,134,135,],[136,244,245,]),'enumerator':([100,134,135,247,],[137,137,137,373,]),'struct_declaration_list':([104,139,140,],[141,249,251,]),'brace_close':([104,136,139,140,141,150,244,245,249,251,336,432,492,509,],[142,246,250,252,253,264,371,372,375,376,431,475,508,519,]),'struct_declaration':([104,139,140,141,249,251,],[143,143,143,254,254,254,]),'specifier_qualifier_list':([104,139,140,141,168,249,251,271,328,332,335,],[145,145,145,145,277,145,145,277,277,277,277,]),'block_item_list_opt':([106,],[150,]),'block_item_list':([106,],[152,]),'block_item':([106,152,],[153,265,]),'statement':([106,152,172,267,272,282,382,460,463,464,507,522,525,],[155,155,283,283,283,395,283,491,283,283,283,283,283,]),'labeled_statement':([106,152,172,267,272,282,382,460,463,464,507,522,525,],[156,156,156,156,156,156,156,156,156,156,156,156,156,]),'expression_statement':([106,152,172,267,272,282,382,460,463,464,507,522,525,],[157,157,157,157,157,157,157,157,157,157,157,157,157,]),'selection_statement':([106,152,172,267,272,282,382,460,463,464,507,522,525,],[159,159,159,159,159,159,159,159,159,159,159,159,159,]),'iteration_statement':([106,152,172,267,272,282,382,460,463,464,507,522,525,],[160,160,160,160,160,160,160,160,160,160,160,160,160,]),'jump_statement':([106,152,172,267,272,282,382,460,463,464,507,522,525,],[161,161,161,161,161,161,161,161,161,161,161,161,161,]),'expression_opt':([106,152,172,267,272,282,284,382,397,460,463,464,466,497,507,511,522,525,],[166,166,166,166,166,166,396,166,467,166,166,166,496,512,166,521,166,166,]),'expression':([106,152,168,172,177,267,271,272,274,279,280,282,284,302,321,328,332,382,397,460,463,464,465,466,497,507,511,515,522,525,],[169,169,276,169,288,169,276,169,385,392,393,169,169,401,420,276,276,169,169,169,169,169,495,169,169,169,169,524,169,169,]),'assignment_expression':([106,113,116,130,152,168,172,177,216,225,226,239,267,271,272,274,278,279,280,282,284,290,302,321,322,328,332,339,347,348,369,382,397,444,460,463,464,465,466,471,476,483,484,497,507,511,515,522,525,],[178,214,224,214,178,178,178,178,224,353,354,224,178,178,178,178,391,178,178,178,178,400,178,178,423,178,178,214,440,441,224,178,178,224,178,178,178,178,178,499,214,505,506,178,178,178,178,178,178,]),'conditional_expression':([106,113,116,130,152,164,168,172,177,216,225,226,239,248,262,267,271,272,274,278,279,280,282,284,290,302,321,322,328,332,339,343,347,348,369,379,382,397,444,460,463,464,465,466,468,471,476,483,484,497,507,511,515,522,525,],[179,179,179,179,179,269,179,179,179,179,179,179,179,269,269,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,269,179,179,179,269,179,179,179,179,179,179,179,179,498,179,179,179,179,179,179,179,179,179,179,]),'unary_expression':([106,113,116,130,152,164,168,172,177,183,184,185,187,216,225,226,239,248,262,267,271,272,274,278,279,280,282,284,290,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,339,343,347,348,369,379,382,386,397,444,459,460,463,464,465,466,468,471,476,483,484,497,507,511,515,522,525,],[180,180,180,180,180,270,180,180,180,327,329,270,331,180,180,180,180,270,270,180,180,180,180,180,180,180,180,180,180,180,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,180,180,180,180,180,270,180,180,180,270,180,270,180,180,270,180,180,180,180,180,270,180,180,180,180,180,180,180,180,180,180,]),'binary_expression':([106,113,116,130,152,164,168,172,177,216,225,226,239,248,262,267,271,272,274,278,279,280,282,284,290,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,339,343,347,348,369,379,382,397,444,460,463,464,465,466,468,471,476,483,484,497,507,511,515,522,525,],[181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,]),'postfix_expression':([106,113,116,130,152,164,168,172,177,183,184,185,187,216,225,226,239,248,262,267,271,272,274,278,279,280,282,284,290,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,339,343,347,348,369,379,382,386,397,444,459,460,463,464,465,466,468,471,476,483,484,497,507,511,515,522,525,],[182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,]),'unary_operator':([106,113,116,130,152,164,168,172,177,183,184,185,187,216,225,226,239,248,262,267,271,272,274,278,279,280,282,284,290,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,339,343,347,348,369,379,382,386,397,444,459,460,463,464,465,466,468,471,476,483,484,497,507,511,515,522,525,],[185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,]),'cast_expression':([106,113,116,130,152,164,168,172,177,185,216,225,226,239,248,262,267,271,272,274,278,279,280,282,284,290,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,339,343,347,348,369,379,382,386,397,444,459,460,463,464,465,466,468,471,476,483,484,497,507,511,515,522,525,],[186,186,186,186,186,186,186,186,186,330,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,462,186,186,462,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,]),'primary_expression':([106,113,116,130,152,164,168,172,177,183,184,185,187,216,225,226,239,248,262,267,271,272,274,278,279,280,282,284,290,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,339,343,347,348,369,379,382,386,397,444,459,460,463,464,465,466,468,471,476,483,484,497,507,511,515,522,525,],[192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,]),'constant':([106,113,116,130,152,164,168,172,177,183,184,185,187,216,225,226,239,248,262,267,271,272,274,278,279,280,282,284,290,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,339,343,347,348,369,379,382,386,397,444,459,460,463,464,465,466,468,471,476,483,484,497,507,511,515,522,525,],[196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,]),'unified_string_literal':([106,113,116,130,152,164,168,172,177,183,184,185,187,216,225,226,239,248,262,267,271,272,274,278,279,280,282,284,290,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,339,343,347,348,369,379,382,386,397,444,459,460,463,464,465,466,468,471,476,483,484,497,507,511,515,522,525,],[197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,]),'unified_wstring_literal':([106,113,116,130,152,164,168,172,177,183,184,185,187,216,225,226,239,248,262,267,271,272,274,278,279,280,282,284,290,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,328,332,339,343,347,348,369,379,382,386,397,444,459,460,463,464,465,466,468,471,476,483,484,497,507,511,515,522,525,],[198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,]),'initializer':([113,130,339,476,],[213,243,433,502,]),'assignment_expression_opt':([116,216,239,369,444,],[221,345,367,453,481,]),'typeid_noparen_declarator':([126,],[232,]),'abstract_declarator_opt':([126,277,],[233,388,]),'direct_typeid_noparen_declarator':([126,234,],[235,358,]),'abstract_declarator':([126,238,277,390,],[237,362,237,362,]),'direct_abstract_declarator':([126,234,238,277,364,389,390,],[241,359,241,241,359,359,241,]),'struct_declarator_list_opt':([145,],[255,]),'struct_declarator_list':([145,],[259,]),'struct_declarator':([145,378,],[260,456,]),'constant_expression':([164,248,262,343,379,],[268,374,380,436,457,]),'type_name':([168,271,328,332,335,],[275,383,428,429,430,]),'pragmacomp_or_statement':([172,267,272,382,460,463,464,507,522,525,],[281,381,384,458,490,493,494,518,526,528,]),'assignment_operator':([180,],[290,]),'initializer_list_opt':([215,],[336,]),'initializer_list':([215,461,],[337,492,]),'designation_opt':([215,432,461,509,],[339,476,339,476,]),'designation':([215,432,461,509,],[340,340,340,340,]),'designator_list':([215,432,461,509,],[341,341,341,341,]),'designator':([215,341,432,461,509,],[342,435,342,342,342,]),'parameter_type_list_opt':([238,370,390,],[363,455,363,]),'argument_expression_list':([322,],[421,]),'offsetof_member_designator':([474,],[500,]),} + +_lr_goto = {} +for _k, _v in _lr_goto_items.items(): + for _x, _y in zip(_v[0], _v[1]): + if not _x in _lr_goto: _lr_goto[_x] = {} + _lr_goto[_x][_k] = _y +del _lr_goto_items +_lr_productions = [ + ("S' -> translation_unit_or_empty","S'",1,None,None,None), + ('abstract_declarator_opt -> empty','abstract_declarator_opt',1,'p_abstract_declarator_opt','plyparser.py',43), + ('abstract_declarator_opt -> abstract_declarator','abstract_declarator_opt',1,'p_abstract_declarator_opt','plyparser.py',44), + ('assignment_expression_opt -> empty','assignment_expression_opt',1,'p_assignment_expression_opt','plyparser.py',43), + ('assignment_expression_opt -> assignment_expression','assignment_expression_opt',1,'p_assignment_expression_opt','plyparser.py',44), + ('block_item_list_opt -> empty','block_item_list_opt',1,'p_block_item_list_opt','plyparser.py',43), + ('block_item_list_opt -> block_item_list','block_item_list_opt',1,'p_block_item_list_opt','plyparser.py',44), + ('declaration_list_opt -> empty','declaration_list_opt',1,'p_declaration_list_opt','plyparser.py',43), + ('declaration_list_opt -> declaration_list','declaration_list_opt',1,'p_declaration_list_opt','plyparser.py',44), + ('declaration_specifiers_no_type_opt -> empty','declaration_specifiers_no_type_opt',1,'p_declaration_specifiers_no_type_opt','plyparser.py',43), + ('declaration_specifiers_no_type_opt -> declaration_specifiers_no_type','declaration_specifiers_no_type_opt',1,'p_declaration_specifiers_no_type_opt','plyparser.py',44), + ('designation_opt -> empty','designation_opt',1,'p_designation_opt','plyparser.py',43), + ('designation_opt -> designation','designation_opt',1,'p_designation_opt','plyparser.py',44), + ('expression_opt -> empty','expression_opt',1,'p_expression_opt','plyparser.py',43), + ('expression_opt -> expression','expression_opt',1,'p_expression_opt','plyparser.py',44), + ('id_init_declarator_list_opt -> empty','id_init_declarator_list_opt',1,'p_id_init_declarator_list_opt','plyparser.py',43), + ('id_init_declarator_list_opt -> id_init_declarator_list','id_init_declarator_list_opt',1,'p_id_init_declarator_list_opt','plyparser.py',44), + ('identifier_list_opt -> empty','identifier_list_opt',1,'p_identifier_list_opt','plyparser.py',43), + ('identifier_list_opt -> identifier_list','identifier_list_opt',1,'p_identifier_list_opt','plyparser.py',44), + ('init_declarator_list_opt -> empty','init_declarator_list_opt',1,'p_init_declarator_list_opt','plyparser.py',43), + ('init_declarator_list_opt -> init_declarator_list','init_declarator_list_opt',1,'p_init_declarator_list_opt','plyparser.py',44), + ('initializer_list_opt -> empty','initializer_list_opt',1,'p_initializer_list_opt','plyparser.py',43), + ('initializer_list_opt -> initializer_list','initializer_list_opt',1,'p_initializer_list_opt','plyparser.py',44), + ('parameter_type_list_opt -> empty','parameter_type_list_opt',1,'p_parameter_type_list_opt','plyparser.py',43), + ('parameter_type_list_opt -> parameter_type_list','parameter_type_list_opt',1,'p_parameter_type_list_opt','plyparser.py',44), + ('struct_declarator_list_opt -> empty','struct_declarator_list_opt',1,'p_struct_declarator_list_opt','plyparser.py',43), + ('struct_declarator_list_opt -> struct_declarator_list','struct_declarator_list_opt',1,'p_struct_declarator_list_opt','plyparser.py',44), + ('type_qualifier_list_opt -> empty','type_qualifier_list_opt',1,'p_type_qualifier_list_opt','plyparser.py',43), + ('type_qualifier_list_opt -> type_qualifier_list','type_qualifier_list_opt',1,'p_type_qualifier_list_opt','plyparser.py',44), + ('direct_id_declarator -> ID','direct_id_declarator',1,'p_direct_id_declarator_1','plyparser.py',126), + ('direct_id_declarator -> LPAREN id_declarator RPAREN','direct_id_declarator',3,'p_direct_id_declarator_2','plyparser.py',126), + ('direct_id_declarator -> direct_id_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET','direct_id_declarator',5,'p_direct_id_declarator_3','plyparser.py',126), + ('direct_id_declarator -> direct_id_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKET','direct_id_declarator',6,'p_direct_id_declarator_4','plyparser.py',126), + ('direct_id_declarator -> direct_id_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET','direct_id_declarator',6,'p_direct_id_declarator_4','plyparser.py',127), + ('direct_id_declarator -> direct_id_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKET','direct_id_declarator',5,'p_direct_id_declarator_5','plyparser.py',126), + ('direct_id_declarator -> direct_id_declarator LPAREN parameter_type_list RPAREN','direct_id_declarator',4,'p_direct_id_declarator_6','plyparser.py',126), + ('direct_id_declarator -> direct_id_declarator LPAREN identifier_list_opt RPAREN','direct_id_declarator',4,'p_direct_id_declarator_6','plyparser.py',127), + ('direct_typeid_declarator -> TYPEID','direct_typeid_declarator',1,'p_direct_typeid_declarator_1','plyparser.py',126), + ('direct_typeid_declarator -> LPAREN typeid_declarator RPAREN','direct_typeid_declarator',3,'p_direct_typeid_declarator_2','plyparser.py',126), + ('direct_typeid_declarator -> direct_typeid_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET','direct_typeid_declarator',5,'p_direct_typeid_declarator_3','plyparser.py',126), + ('direct_typeid_declarator -> direct_typeid_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKET','direct_typeid_declarator',6,'p_direct_typeid_declarator_4','plyparser.py',126), + ('direct_typeid_declarator -> direct_typeid_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET','direct_typeid_declarator',6,'p_direct_typeid_declarator_4','plyparser.py',127), + ('direct_typeid_declarator -> direct_typeid_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKET','direct_typeid_declarator',5,'p_direct_typeid_declarator_5','plyparser.py',126), + ('direct_typeid_declarator -> direct_typeid_declarator LPAREN parameter_type_list RPAREN','direct_typeid_declarator',4,'p_direct_typeid_declarator_6','plyparser.py',126), + ('direct_typeid_declarator -> direct_typeid_declarator LPAREN identifier_list_opt RPAREN','direct_typeid_declarator',4,'p_direct_typeid_declarator_6','plyparser.py',127), + ('direct_typeid_noparen_declarator -> TYPEID','direct_typeid_noparen_declarator',1,'p_direct_typeid_noparen_declarator_1','plyparser.py',126), + ('direct_typeid_noparen_declarator -> direct_typeid_noparen_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET','direct_typeid_noparen_declarator',5,'p_direct_typeid_noparen_declarator_3','plyparser.py',126), + ('direct_typeid_noparen_declarator -> direct_typeid_noparen_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKET','direct_typeid_noparen_declarator',6,'p_direct_typeid_noparen_declarator_4','plyparser.py',126), + ('direct_typeid_noparen_declarator -> direct_typeid_noparen_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET','direct_typeid_noparen_declarator',6,'p_direct_typeid_noparen_declarator_4','plyparser.py',127), + ('direct_typeid_noparen_declarator -> direct_typeid_noparen_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKET','direct_typeid_noparen_declarator',5,'p_direct_typeid_noparen_declarator_5','plyparser.py',126), + ('direct_typeid_noparen_declarator -> direct_typeid_noparen_declarator LPAREN parameter_type_list RPAREN','direct_typeid_noparen_declarator',4,'p_direct_typeid_noparen_declarator_6','plyparser.py',126), + ('direct_typeid_noparen_declarator -> direct_typeid_noparen_declarator LPAREN identifier_list_opt RPAREN','direct_typeid_noparen_declarator',4,'p_direct_typeid_noparen_declarator_6','plyparser.py',127), + ('id_declarator -> direct_id_declarator','id_declarator',1,'p_id_declarator_1','plyparser.py',126), + ('id_declarator -> pointer direct_id_declarator','id_declarator',2,'p_id_declarator_2','plyparser.py',126), + ('typeid_declarator -> direct_typeid_declarator','typeid_declarator',1,'p_typeid_declarator_1','plyparser.py',126), + ('typeid_declarator -> pointer direct_typeid_declarator','typeid_declarator',2,'p_typeid_declarator_2','plyparser.py',126), + ('typeid_noparen_declarator -> direct_typeid_noparen_declarator','typeid_noparen_declarator',1,'p_typeid_noparen_declarator_1','plyparser.py',126), + ('typeid_noparen_declarator -> pointer direct_typeid_noparen_declarator','typeid_noparen_declarator',2,'p_typeid_noparen_declarator_2','plyparser.py',126), + ('translation_unit_or_empty -> translation_unit','translation_unit_or_empty',1,'p_translation_unit_or_empty','c_parser.py',514), + ('translation_unit_or_empty -> empty','translation_unit_or_empty',1,'p_translation_unit_or_empty','c_parser.py',515), + ('translation_unit -> external_declaration','translation_unit',1,'p_translation_unit_1','c_parser.py',523), + ('translation_unit -> translation_unit external_declaration','translation_unit',2,'p_translation_unit_2','c_parser.py',530), + ('external_declaration -> function_definition','external_declaration',1,'p_external_declaration_1','c_parser.py',542), + ('external_declaration -> declaration','external_declaration',1,'p_external_declaration_2','c_parser.py',547), + ('external_declaration -> pp_directive','external_declaration',1,'p_external_declaration_3','c_parser.py',552), + ('external_declaration -> pppragma_directive','external_declaration',1,'p_external_declaration_3','c_parser.py',553), + ('external_declaration -> SEMI','external_declaration',1,'p_external_declaration_4','c_parser.py',558), + ('pp_directive -> PPHASH','pp_directive',1,'p_pp_directive','c_parser.py',563), + ('pppragma_directive -> PPPRAGMA','pppragma_directive',1,'p_pppragma_directive','c_parser.py',569), + ('pppragma_directive -> PPPRAGMA PPPRAGMASTR','pppragma_directive',2,'p_pppragma_directive','c_parser.py',570), + ('function_definition -> id_declarator declaration_list_opt compound_statement','function_definition',3,'p_function_definition_1','c_parser.py',581), + ('function_definition -> declaration_specifiers id_declarator declaration_list_opt compound_statement','function_definition',4,'p_function_definition_2','c_parser.py',598), + ('statement -> labeled_statement','statement',1,'p_statement','c_parser.py',609), + ('statement -> expression_statement','statement',1,'p_statement','c_parser.py',610), + ('statement -> compound_statement','statement',1,'p_statement','c_parser.py',611), + ('statement -> selection_statement','statement',1,'p_statement','c_parser.py',612), + ('statement -> iteration_statement','statement',1,'p_statement','c_parser.py',613), + ('statement -> jump_statement','statement',1,'p_statement','c_parser.py',614), + ('statement -> pppragma_directive','statement',1,'p_statement','c_parser.py',615), + ('pragmacomp_or_statement -> pppragma_directive statement','pragmacomp_or_statement',2,'p_pragmacomp_or_statement','c_parser.py',662), + ('pragmacomp_or_statement -> statement','pragmacomp_or_statement',1,'p_pragmacomp_or_statement','c_parser.py',663), + ('decl_body -> declaration_specifiers init_declarator_list_opt','decl_body',2,'p_decl_body','c_parser.py',682), + ('decl_body -> declaration_specifiers_no_type id_init_declarator_list_opt','decl_body',2,'p_decl_body','c_parser.py',683), + ('declaration -> decl_body SEMI','declaration',2,'p_declaration','c_parser.py',742), + ('declaration_list -> declaration','declaration_list',1,'p_declaration_list','c_parser.py',751), + ('declaration_list -> declaration_list declaration','declaration_list',2,'p_declaration_list','c_parser.py',752), + ('declaration_specifiers_no_type -> type_qualifier declaration_specifiers_no_type_opt','declaration_specifiers_no_type',2,'p_declaration_specifiers_no_type_1','c_parser.py',762), + ('declaration_specifiers_no_type -> storage_class_specifier declaration_specifiers_no_type_opt','declaration_specifiers_no_type',2,'p_declaration_specifiers_no_type_2','c_parser.py',767), + ('declaration_specifiers_no_type -> function_specifier declaration_specifiers_no_type_opt','declaration_specifiers_no_type',2,'p_declaration_specifiers_no_type_3','c_parser.py',772), + ('declaration_specifiers -> declaration_specifiers type_qualifier','declaration_specifiers',2,'p_declaration_specifiers_1','c_parser.py',778), + ('declaration_specifiers -> declaration_specifiers storage_class_specifier','declaration_specifiers',2,'p_declaration_specifiers_2','c_parser.py',783), + ('declaration_specifiers -> declaration_specifiers function_specifier','declaration_specifiers',2,'p_declaration_specifiers_3','c_parser.py',788), + ('declaration_specifiers -> declaration_specifiers type_specifier_no_typeid','declaration_specifiers',2,'p_declaration_specifiers_4','c_parser.py',793), + ('declaration_specifiers -> type_specifier','declaration_specifiers',1,'p_declaration_specifiers_5','c_parser.py',798), + ('declaration_specifiers -> declaration_specifiers_no_type type_specifier','declaration_specifiers',2,'p_declaration_specifiers_6','c_parser.py',803), + ('storage_class_specifier -> AUTO','storage_class_specifier',1,'p_storage_class_specifier','c_parser.py',809), + ('storage_class_specifier -> REGISTER','storage_class_specifier',1,'p_storage_class_specifier','c_parser.py',810), + ('storage_class_specifier -> STATIC','storage_class_specifier',1,'p_storage_class_specifier','c_parser.py',811), + ('storage_class_specifier -> EXTERN','storage_class_specifier',1,'p_storage_class_specifier','c_parser.py',812), + ('storage_class_specifier -> TYPEDEF','storage_class_specifier',1,'p_storage_class_specifier','c_parser.py',813), + ('function_specifier -> INLINE','function_specifier',1,'p_function_specifier','c_parser.py',818), + ('type_specifier_no_typeid -> VOID','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',823), + ('type_specifier_no_typeid -> _BOOL','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',824), + ('type_specifier_no_typeid -> CHAR','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',825), + ('type_specifier_no_typeid -> SHORT','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',826), + ('type_specifier_no_typeid -> INT','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',827), + ('type_specifier_no_typeid -> LONG','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',828), + ('type_specifier_no_typeid -> FLOAT','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',829), + ('type_specifier_no_typeid -> DOUBLE','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',830), + ('type_specifier_no_typeid -> _COMPLEX','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',831), + ('type_specifier_no_typeid -> SIGNED','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',832), + ('type_specifier_no_typeid -> UNSIGNED','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',833), + ('type_specifier_no_typeid -> __INT128','type_specifier_no_typeid',1,'p_type_specifier_no_typeid','c_parser.py',834), + ('type_specifier -> typedef_name','type_specifier',1,'p_type_specifier','c_parser.py',839), + ('type_specifier -> enum_specifier','type_specifier',1,'p_type_specifier','c_parser.py',840), + ('type_specifier -> struct_or_union_specifier','type_specifier',1,'p_type_specifier','c_parser.py',841), + ('type_specifier -> type_specifier_no_typeid','type_specifier',1,'p_type_specifier','c_parser.py',842), + ('type_qualifier -> CONST','type_qualifier',1,'p_type_qualifier','c_parser.py',847), + ('type_qualifier -> RESTRICT','type_qualifier',1,'p_type_qualifier','c_parser.py',848), + ('type_qualifier -> VOLATILE','type_qualifier',1,'p_type_qualifier','c_parser.py',849), + ('init_declarator_list -> init_declarator','init_declarator_list',1,'p_init_declarator_list','c_parser.py',854), + ('init_declarator_list -> init_declarator_list COMMA init_declarator','init_declarator_list',3,'p_init_declarator_list','c_parser.py',855), + ('init_declarator -> declarator','init_declarator',1,'p_init_declarator','c_parser.py',863), + ('init_declarator -> declarator EQUALS initializer','init_declarator',3,'p_init_declarator','c_parser.py',864), + ('id_init_declarator_list -> id_init_declarator','id_init_declarator_list',1,'p_id_init_declarator_list','c_parser.py',869), + ('id_init_declarator_list -> id_init_declarator_list COMMA init_declarator','id_init_declarator_list',3,'p_id_init_declarator_list','c_parser.py',870), + ('id_init_declarator -> id_declarator','id_init_declarator',1,'p_id_init_declarator','c_parser.py',875), + ('id_init_declarator -> id_declarator EQUALS initializer','id_init_declarator',3,'p_id_init_declarator','c_parser.py',876), + ('specifier_qualifier_list -> specifier_qualifier_list type_specifier_no_typeid','specifier_qualifier_list',2,'p_specifier_qualifier_list_1','c_parser.py',883), + ('specifier_qualifier_list -> specifier_qualifier_list type_qualifier','specifier_qualifier_list',2,'p_specifier_qualifier_list_2','c_parser.py',888), + ('specifier_qualifier_list -> type_specifier','specifier_qualifier_list',1,'p_specifier_qualifier_list_3','c_parser.py',893), + ('specifier_qualifier_list -> type_qualifier_list type_specifier','specifier_qualifier_list',2,'p_specifier_qualifier_list_4','c_parser.py',898), + ('struct_or_union_specifier -> struct_or_union ID','struct_or_union_specifier',2,'p_struct_or_union_specifier_1','c_parser.py',907), + ('struct_or_union_specifier -> struct_or_union TYPEID','struct_or_union_specifier',2,'p_struct_or_union_specifier_1','c_parser.py',908), + ('struct_or_union_specifier -> struct_or_union brace_open struct_declaration_list brace_close','struct_or_union_specifier',4,'p_struct_or_union_specifier_2','c_parser.py',918), + ('struct_or_union_specifier -> struct_or_union brace_open brace_close','struct_or_union_specifier',3,'p_struct_or_union_specifier_2','c_parser.py',919), + ('struct_or_union_specifier -> struct_or_union ID brace_open struct_declaration_list brace_close','struct_or_union_specifier',5,'p_struct_or_union_specifier_3','c_parser.py',936), + ('struct_or_union_specifier -> struct_or_union ID brace_open brace_close','struct_or_union_specifier',4,'p_struct_or_union_specifier_3','c_parser.py',937), + ('struct_or_union_specifier -> struct_or_union TYPEID brace_open struct_declaration_list brace_close','struct_or_union_specifier',5,'p_struct_or_union_specifier_3','c_parser.py',938), + ('struct_or_union_specifier -> struct_or_union TYPEID brace_open brace_close','struct_or_union_specifier',4,'p_struct_or_union_specifier_3','c_parser.py',939), + ('struct_or_union -> STRUCT','struct_or_union',1,'p_struct_or_union','c_parser.py',955), + ('struct_or_union -> UNION','struct_or_union',1,'p_struct_or_union','c_parser.py',956), + ('struct_declaration_list -> struct_declaration','struct_declaration_list',1,'p_struct_declaration_list','c_parser.py',963), + ('struct_declaration_list -> struct_declaration_list struct_declaration','struct_declaration_list',2,'p_struct_declaration_list','c_parser.py',964), + ('struct_declaration -> specifier_qualifier_list struct_declarator_list_opt SEMI','struct_declaration',3,'p_struct_declaration_1','c_parser.py',972), + ('struct_declaration -> SEMI','struct_declaration',1,'p_struct_declaration_2','c_parser.py',1010), + ('struct_declaration -> pppragma_directive','struct_declaration',1,'p_struct_declaration_3','c_parser.py',1015), + ('struct_declarator_list -> struct_declarator','struct_declarator_list',1,'p_struct_declarator_list','c_parser.py',1020), + ('struct_declarator_list -> struct_declarator_list COMMA struct_declarator','struct_declarator_list',3,'p_struct_declarator_list','c_parser.py',1021), + ('struct_declarator -> declarator','struct_declarator',1,'p_struct_declarator_1','c_parser.py',1029), + ('struct_declarator -> declarator COLON constant_expression','struct_declarator',3,'p_struct_declarator_2','c_parser.py',1034), + ('struct_declarator -> COLON constant_expression','struct_declarator',2,'p_struct_declarator_2','c_parser.py',1035), + ('enum_specifier -> ENUM ID','enum_specifier',2,'p_enum_specifier_1','c_parser.py',1043), + ('enum_specifier -> ENUM TYPEID','enum_specifier',2,'p_enum_specifier_1','c_parser.py',1044), + ('enum_specifier -> ENUM brace_open enumerator_list brace_close','enum_specifier',4,'p_enum_specifier_2','c_parser.py',1049), + ('enum_specifier -> ENUM ID brace_open enumerator_list brace_close','enum_specifier',5,'p_enum_specifier_3','c_parser.py',1054), + ('enum_specifier -> ENUM TYPEID brace_open enumerator_list brace_close','enum_specifier',5,'p_enum_specifier_3','c_parser.py',1055), + ('enumerator_list -> enumerator','enumerator_list',1,'p_enumerator_list','c_parser.py',1060), + ('enumerator_list -> enumerator_list COMMA','enumerator_list',2,'p_enumerator_list','c_parser.py',1061), + ('enumerator_list -> enumerator_list COMMA enumerator','enumerator_list',3,'p_enumerator_list','c_parser.py',1062), + ('enumerator -> ID','enumerator',1,'p_enumerator','c_parser.py',1073), + ('enumerator -> ID EQUALS constant_expression','enumerator',3,'p_enumerator','c_parser.py',1074), + ('declarator -> id_declarator','declarator',1,'p_declarator','c_parser.py',1089), + ('declarator -> typeid_declarator','declarator',1,'p_declarator','c_parser.py',1090), + ('pointer -> TIMES type_qualifier_list_opt','pointer',2,'p_pointer','c_parser.py',1201), + ('pointer -> TIMES type_qualifier_list_opt pointer','pointer',3,'p_pointer','c_parser.py',1202), + ('type_qualifier_list -> type_qualifier','type_qualifier_list',1,'p_type_qualifier_list','c_parser.py',1231), + ('type_qualifier_list -> type_qualifier_list type_qualifier','type_qualifier_list',2,'p_type_qualifier_list','c_parser.py',1232), + ('parameter_type_list -> parameter_list','parameter_type_list',1,'p_parameter_type_list','c_parser.py',1237), + ('parameter_type_list -> parameter_list COMMA ELLIPSIS','parameter_type_list',3,'p_parameter_type_list','c_parser.py',1238), + ('parameter_list -> parameter_declaration','parameter_list',1,'p_parameter_list','c_parser.py',1246), + ('parameter_list -> parameter_list COMMA parameter_declaration','parameter_list',3,'p_parameter_list','c_parser.py',1247), + ('parameter_declaration -> declaration_specifiers id_declarator','parameter_declaration',2,'p_parameter_declaration_1','c_parser.py',1266), + ('parameter_declaration -> declaration_specifiers typeid_noparen_declarator','parameter_declaration',2,'p_parameter_declaration_1','c_parser.py',1267), + ('parameter_declaration -> declaration_specifiers abstract_declarator_opt','parameter_declaration',2,'p_parameter_declaration_2','c_parser.py',1278), + ('identifier_list -> identifier','identifier_list',1,'p_identifier_list','c_parser.py',1309), + ('identifier_list -> identifier_list COMMA identifier','identifier_list',3,'p_identifier_list','c_parser.py',1310), + ('initializer -> assignment_expression','initializer',1,'p_initializer_1','c_parser.py',1319), + ('initializer -> brace_open initializer_list_opt brace_close','initializer',3,'p_initializer_2','c_parser.py',1324), + ('initializer -> brace_open initializer_list COMMA brace_close','initializer',4,'p_initializer_2','c_parser.py',1325), + ('initializer_list -> designation_opt initializer','initializer_list',2,'p_initializer_list','c_parser.py',1333), + ('initializer_list -> initializer_list COMMA designation_opt initializer','initializer_list',4,'p_initializer_list','c_parser.py',1334), + ('designation -> designator_list EQUALS','designation',2,'p_designation','c_parser.py',1345), + ('designator_list -> designator','designator_list',1,'p_designator_list','c_parser.py',1353), + ('designator_list -> designator_list designator','designator_list',2,'p_designator_list','c_parser.py',1354), + ('designator -> LBRACKET constant_expression RBRACKET','designator',3,'p_designator','c_parser.py',1359), + ('designator -> PERIOD identifier','designator',2,'p_designator','c_parser.py',1360), + ('type_name -> specifier_qualifier_list abstract_declarator_opt','type_name',2,'p_type_name','c_parser.py',1365), + ('abstract_declarator -> pointer','abstract_declarator',1,'p_abstract_declarator_1','c_parser.py',1376), + ('abstract_declarator -> pointer direct_abstract_declarator','abstract_declarator',2,'p_abstract_declarator_2','c_parser.py',1384), + ('abstract_declarator -> direct_abstract_declarator','abstract_declarator',1,'p_abstract_declarator_3','c_parser.py',1389), + ('direct_abstract_declarator -> LPAREN abstract_declarator RPAREN','direct_abstract_declarator',3,'p_direct_abstract_declarator_1','c_parser.py',1399), + ('direct_abstract_declarator -> direct_abstract_declarator LBRACKET assignment_expression_opt RBRACKET','direct_abstract_declarator',4,'p_direct_abstract_declarator_2','c_parser.py',1403), + ('direct_abstract_declarator -> LBRACKET assignment_expression_opt RBRACKET','direct_abstract_declarator',3,'p_direct_abstract_declarator_3','c_parser.py',1414), + ('direct_abstract_declarator -> direct_abstract_declarator LBRACKET TIMES RBRACKET','direct_abstract_declarator',4,'p_direct_abstract_declarator_4','c_parser.py',1423), + ('direct_abstract_declarator -> LBRACKET TIMES RBRACKET','direct_abstract_declarator',3,'p_direct_abstract_declarator_5','c_parser.py',1434), + ('direct_abstract_declarator -> direct_abstract_declarator LPAREN parameter_type_list_opt RPAREN','direct_abstract_declarator',4,'p_direct_abstract_declarator_6','c_parser.py',1443), + ('direct_abstract_declarator -> LPAREN parameter_type_list_opt RPAREN','direct_abstract_declarator',3,'p_direct_abstract_declarator_7','c_parser.py',1453), + ('block_item -> declaration','block_item',1,'p_block_item','c_parser.py',1464), + ('block_item -> statement','block_item',1,'p_block_item','c_parser.py',1465), + ('block_item_list -> block_item','block_item_list',1,'p_block_item_list','c_parser.py',1472), + ('block_item_list -> block_item_list block_item','block_item_list',2,'p_block_item_list','c_parser.py',1473), + ('compound_statement -> brace_open block_item_list_opt brace_close','compound_statement',3,'p_compound_statement_1','c_parser.py',1479), + ('labeled_statement -> ID COLON pragmacomp_or_statement','labeled_statement',3,'p_labeled_statement_1','c_parser.py',1485), + ('labeled_statement -> CASE constant_expression COLON pragmacomp_or_statement','labeled_statement',4,'p_labeled_statement_2','c_parser.py',1489), + ('labeled_statement -> DEFAULT COLON pragmacomp_or_statement','labeled_statement',3,'p_labeled_statement_3','c_parser.py',1493), + ('selection_statement -> IF LPAREN expression RPAREN pragmacomp_or_statement','selection_statement',5,'p_selection_statement_1','c_parser.py',1497), + ('selection_statement -> IF LPAREN expression RPAREN statement ELSE pragmacomp_or_statement','selection_statement',7,'p_selection_statement_2','c_parser.py',1501), + ('selection_statement -> SWITCH LPAREN expression RPAREN pragmacomp_or_statement','selection_statement',5,'p_selection_statement_3','c_parser.py',1505), + ('iteration_statement -> WHILE LPAREN expression RPAREN pragmacomp_or_statement','iteration_statement',5,'p_iteration_statement_1','c_parser.py',1510), + ('iteration_statement -> DO pragmacomp_or_statement WHILE LPAREN expression RPAREN SEMI','iteration_statement',7,'p_iteration_statement_2','c_parser.py',1514), + ('iteration_statement -> FOR LPAREN expression_opt SEMI expression_opt SEMI expression_opt RPAREN pragmacomp_or_statement','iteration_statement',9,'p_iteration_statement_3','c_parser.py',1518), + ('iteration_statement -> FOR LPAREN declaration expression_opt SEMI expression_opt RPAREN pragmacomp_or_statement','iteration_statement',8,'p_iteration_statement_4','c_parser.py',1522), + ('jump_statement -> GOTO ID SEMI','jump_statement',3,'p_jump_statement_1','c_parser.py',1527), + ('jump_statement -> BREAK SEMI','jump_statement',2,'p_jump_statement_2','c_parser.py',1531), + ('jump_statement -> CONTINUE SEMI','jump_statement',2,'p_jump_statement_3','c_parser.py',1535), + ('jump_statement -> RETURN expression SEMI','jump_statement',3,'p_jump_statement_4','c_parser.py',1539), + ('jump_statement -> RETURN SEMI','jump_statement',2,'p_jump_statement_4','c_parser.py',1540), + ('expression_statement -> expression_opt SEMI','expression_statement',2,'p_expression_statement','c_parser.py',1545), + ('expression -> assignment_expression','expression',1,'p_expression','c_parser.py',1552), + ('expression -> expression COMMA assignment_expression','expression',3,'p_expression','c_parser.py',1553), + ('typedef_name -> TYPEID','typedef_name',1,'p_typedef_name','c_parser.py',1565), + ('assignment_expression -> conditional_expression','assignment_expression',1,'p_assignment_expression','c_parser.py',1569), + ('assignment_expression -> unary_expression assignment_operator assignment_expression','assignment_expression',3,'p_assignment_expression','c_parser.py',1570), + ('assignment_operator -> EQUALS','assignment_operator',1,'p_assignment_operator','c_parser.py',1583), + ('assignment_operator -> XOREQUAL','assignment_operator',1,'p_assignment_operator','c_parser.py',1584), + ('assignment_operator -> TIMESEQUAL','assignment_operator',1,'p_assignment_operator','c_parser.py',1585), + ('assignment_operator -> DIVEQUAL','assignment_operator',1,'p_assignment_operator','c_parser.py',1586), + ('assignment_operator -> MODEQUAL','assignment_operator',1,'p_assignment_operator','c_parser.py',1587), + ('assignment_operator -> PLUSEQUAL','assignment_operator',1,'p_assignment_operator','c_parser.py',1588), + ('assignment_operator -> MINUSEQUAL','assignment_operator',1,'p_assignment_operator','c_parser.py',1589), + ('assignment_operator -> LSHIFTEQUAL','assignment_operator',1,'p_assignment_operator','c_parser.py',1590), + ('assignment_operator -> RSHIFTEQUAL','assignment_operator',1,'p_assignment_operator','c_parser.py',1591), + ('assignment_operator -> ANDEQUAL','assignment_operator',1,'p_assignment_operator','c_parser.py',1592), + ('assignment_operator -> OREQUAL','assignment_operator',1,'p_assignment_operator','c_parser.py',1593), + ('constant_expression -> conditional_expression','constant_expression',1,'p_constant_expression','c_parser.py',1598), + ('conditional_expression -> binary_expression','conditional_expression',1,'p_conditional_expression','c_parser.py',1602), + ('conditional_expression -> binary_expression CONDOP expression COLON conditional_expression','conditional_expression',5,'p_conditional_expression','c_parser.py',1603), + ('binary_expression -> cast_expression','binary_expression',1,'p_binary_expression','c_parser.py',1611), + ('binary_expression -> binary_expression TIMES binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1612), + ('binary_expression -> binary_expression DIVIDE binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1613), + ('binary_expression -> binary_expression MOD binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1614), + ('binary_expression -> binary_expression PLUS binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1615), + ('binary_expression -> binary_expression MINUS binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1616), + ('binary_expression -> binary_expression RSHIFT binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1617), + ('binary_expression -> binary_expression LSHIFT binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1618), + ('binary_expression -> binary_expression LT binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1619), + ('binary_expression -> binary_expression LE binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1620), + ('binary_expression -> binary_expression GE binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1621), + ('binary_expression -> binary_expression GT binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1622), + ('binary_expression -> binary_expression EQ binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1623), + ('binary_expression -> binary_expression NE binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1624), + ('binary_expression -> binary_expression AND binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1625), + ('binary_expression -> binary_expression OR binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1626), + ('binary_expression -> binary_expression XOR binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1627), + ('binary_expression -> binary_expression LAND binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1628), + ('binary_expression -> binary_expression LOR binary_expression','binary_expression',3,'p_binary_expression','c_parser.py',1629), + ('cast_expression -> unary_expression','cast_expression',1,'p_cast_expression_1','c_parser.py',1637), + ('cast_expression -> LPAREN type_name RPAREN cast_expression','cast_expression',4,'p_cast_expression_2','c_parser.py',1641), + ('unary_expression -> postfix_expression','unary_expression',1,'p_unary_expression_1','c_parser.py',1645), + ('unary_expression -> PLUSPLUS unary_expression','unary_expression',2,'p_unary_expression_2','c_parser.py',1649), + ('unary_expression -> MINUSMINUS unary_expression','unary_expression',2,'p_unary_expression_2','c_parser.py',1650), + ('unary_expression -> unary_operator cast_expression','unary_expression',2,'p_unary_expression_2','c_parser.py',1651), + ('unary_expression -> SIZEOF unary_expression','unary_expression',2,'p_unary_expression_3','c_parser.py',1656), + ('unary_expression -> SIZEOF LPAREN type_name RPAREN','unary_expression',4,'p_unary_expression_3','c_parser.py',1657), + ('unary_operator -> AND','unary_operator',1,'p_unary_operator','c_parser.py',1665), + ('unary_operator -> TIMES','unary_operator',1,'p_unary_operator','c_parser.py',1666), + ('unary_operator -> PLUS','unary_operator',1,'p_unary_operator','c_parser.py',1667), + ('unary_operator -> MINUS','unary_operator',1,'p_unary_operator','c_parser.py',1668), + ('unary_operator -> NOT','unary_operator',1,'p_unary_operator','c_parser.py',1669), + ('unary_operator -> LNOT','unary_operator',1,'p_unary_operator','c_parser.py',1670), + ('postfix_expression -> primary_expression','postfix_expression',1,'p_postfix_expression_1','c_parser.py',1675), + ('postfix_expression -> postfix_expression LBRACKET expression RBRACKET','postfix_expression',4,'p_postfix_expression_2','c_parser.py',1679), + ('postfix_expression -> postfix_expression LPAREN argument_expression_list RPAREN','postfix_expression',4,'p_postfix_expression_3','c_parser.py',1683), + ('postfix_expression -> postfix_expression LPAREN RPAREN','postfix_expression',3,'p_postfix_expression_3','c_parser.py',1684), + ('postfix_expression -> postfix_expression PERIOD ID','postfix_expression',3,'p_postfix_expression_4','c_parser.py',1689), + ('postfix_expression -> postfix_expression PERIOD TYPEID','postfix_expression',3,'p_postfix_expression_4','c_parser.py',1690), + ('postfix_expression -> postfix_expression ARROW ID','postfix_expression',3,'p_postfix_expression_4','c_parser.py',1691), + ('postfix_expression -> postfix_expression ARROW TYPEID','postfix_expression',3,'p_postfix_expression_4','c_parser.py',1692), + ('postfix_expression -> postfix_expression PLUSPLUS','postfix_expression',2,'p_postfix_expression_5','c_parser.py',1698), + ('postfix_expression -> postfix_expression MINUSMINUS','postfix_expression',2,'p_postfix_expression_5','c_parser.py',1699), + ('postfix_expression -> LPAREN type_name RPAREN brace_open initializer_list brace_close','postfix_expression',6,'p_postfix_expression_6','c_parser.py',1704), + ('postfix_expression -> LPAREN type_name RPAREN brace_open initializer_list COMMA brace_close','postfix_expression',7,'p_postfix_expression_6','c_parser.py',1705), + ('primary_expression -> identifier','primary_expression',1,'p_primary_expression_1','c_parser.py',1710), + ('primary_expression -> constant','primary_expression',1,'p_primary_expression_2','c_parser.py',1714), + ('primary_expression -> unified_string_literal','primary_expression',1,'p_primary_expression_3','c_parser.py',1718), + ('primary_expression -> unified_wstring_literal','primary_expression',1,'p_primary_expression_3','c_parser.py',1719), + ('primary_expression -> LPAREN expression RPAREN','primary_expression',3,'p_primary_expression_4','c_parser.py',1724), + ('primary_expression -> OFFSETOF LPAREN type_name COMMA offsetof_member_designator RPAREN','primary_expression',6,'p_primary_expression_5','c_parser.py',1728), + ('offsetof_member_designator -> identifier','offsetof_member_designator',1,'p_offsetof_member_designator','c_parser.py',1736), + ('offsetof_member_designator -> offsetof_member_designator PERIOD identifier','offsetof_member_designator',3,'p_offsetof_member_designator','c_parser.py',1737), + ('offsetof_member_designator -> offsetof_member_designator LBRACKET expression RBRACKET','offsetof_member_designator',4,'p_offsetof_member_designator','c_parser.py',1738), + ('argument_expression_list -> assignment_expression','argument_expression_list',1,'p_argument_expression_list','c_parser.py',1751), + ('argument_expression_list -> argument_expression_list COMMA assignment_expression','argument_expression_list',3,'p_argument_expression_list','c_parser.py',1752), + ('identifier -> ID','identifier',1,'p_identifier','c_parser.py',1761), + ('constant -> INT_CONST_DEC','constant',1,'p_constant_1','c_parser.py',1765), + ('constant -> INT_CONST_OCT','constant',1,'p_constant_1','c_parser.py',1766), + ('constant -> INT_CONST_HEX','constant',1,'p_constant_1','c_parser.py',1767), + ('constant -> INT_CONST_BIN','constant',1,'p_constant_1','c_parser.py',1768), + ('constant -> FLOAT_CONST','constant',1,'p_constant_2','c_parser.py',1774), + ('constant -> HEX_FLOAT_CONST','constant',1,'p_constant_2','c_parser.py',1775), + ('constant -> CHAR_CONST','constant',1,'p_constant_3','c_parser.py',1791), + ('constant -> WCHAR_CONST','constant',1,'p_constant_3','c_parser.py',1792), + ('unified_string_literal -> STRING_LITERAL','unified_string_literal',1,'p_unified_string_literal','c_parser.py',1803), + ('unified_string_literal -> unified_string_literal STRING_LITERAL','unified_string_literal',2,'p_unified_string_literal','c_parser.py',1804), + ('unified_wstring_literal -> WSTRING_LITERAL','unified_wstring_literal',1,'p_unified_wstring_literal','c_parser.py',1814), + ('unified_wstring_literal -> unified_wstring_literal WSTRING_LITERAL','unified_wstring_literal',2,'p_unified_wstring_literal','c_parser.py',1815), + ('brace_open -> LBRACE','brace_open',1,'p_brace_open','c_parser.py',1825), + ('brace_close -> RBRACE','brace_close',1,'p_brace_close','c_parser.py',1831), + ('empty -> ','empty',0,'p_empty','c_parser.py',1837), +] diff --git a/test_requirements.txt b/test_requirements.txt index 66bdbf3b..7a0cddfe 100644 --- a/test_requirements.txt +++ b/test_requirements.txt @@ -1,4 +1,3 @@ -r requirements.txt -mock==1.0.1 pytest==4.6.5 pytest-cov==2.8.1 diff --git a/tests/integrations/base.py b/tests/integrations/base.py index e29cf5f6..aa656f77 100644 --- a/tests/integrations/base.py +++ b/tests/integrations/base.py @@ -21,7 +21,6 @@ import time import pytest -from six import string_types class Sh(object): @@ -165,7 +164,7 @@ def __call__(self, expected, **kwargs): def log_context(gitfs_log): gitfs_log.clear() yield - if isinstance(expected, string_types): + if isinstance(expected, str): gitfs_log.expect(expected, **kwargs) else: gitfs_log.expect_multiple(expected, **kwargs) diff --git a/tests/integrations/commit/test_read.py b/tests/integrations/commit/test_read.py index b2e2f6a1..cccd3f3d 100644 --- a/tests/integrations/commit/test_read.py +++ b/tests/integrations/commit/test_read.py @@ -16,8 +16,6 @@ import os from datetime import datetime -from six import iteritems - from tests.integrations.base import BaseTest @@ -41,7 +39,7 @@ def test_stats(self): attrs = {"st_uid": os.getuid(), "st_gid": os.getgid(), "st_mode": 0o100444} - for name, value in iteritems(attrs): + for name, value in attrs.items(): assert getattr(stats, name) == value st_time = "{} {}".format(self.today, "-".join(commit.split("-")[:-1])) diff --git a/tests/integrations/current/test_read.py b/tests/integrations/current/test_read.py index 7bbd3347..e3ccbced 100644 --- a/tests/integrations/current/test_read.py +++ b/tests/integrations/current/test_read.py @@ -15,8 +15,6 @@ import os -from six import iteritems - from tests.integrations.base import BaseTest @@ -46,5 +44,5 @@ def test_get_correct_stats(self): "st_atime": real_stats.st_atime, } - for name, value in iteritems(attrs): + for name, value in attrs.items(): assert getattr(stats, name) == value diff --git a/tests/integrations/history/test_read.py b/tests/integrations/history/test_read.py index 94248a9e..9d8f1a9d 100644 --- a/tests/integrations/history/test_read.py +++ b/tests/integrations/history/test_read.py @@ -16,8 +16,6 @@ import os from datetime import datetime -from six import iteritems - from tests.integrations.base import BaseTest @@ -37,7 +35,7 @@ def test_stats(self): attrs = {"st_uid": os.getuid(), "st_gid": os.getgid(), "st_mode": 0o40555} - for name, value in iteritems(attrs): + for name, value in attrs.items(): assert getattr(stats, name) == value ctime = self._get_commit_time(0) @@ -52,7 +50,7 @@ def test_stats_with_commits(self): stats = os.stat(directory) attrs = {"st_uid": os.getuid(), "st_gid": os.getgid(), "st_mode": 0o40555} - for name, value in iteritems(attrs): + for name, value in attrs.items(): assert getattr(stats, name) == value st_time = "{} {}".format(self.today, "-".join(commit.split("-")[:-1])) diff --git a/tests/test_mount.py b/tests/test_mount.py index 2346d8b7..2aa92b8a 100644 --- a/tests/test_mount.py +++ b/tests/test_mount.py @@ -15,14 +15,12 @@ import sys from mock import MagicMock, patch, call -from six import iteritems - from gitfs.mounter import prepare_components, parse_args, start_fuse, get_credentials class EmptyObject(object): def __init__(self, **kwargs): - for name, value in iteritems(kwargs): + for name, value in kwargs.items(): setattr(self, name, value) diff --git a/tests/utils/test_args.py b/tests/utils/test_args.py index 1410d58f..49542e35 100644 --- a/tests/utils/test_args.py +++ b/tests/utils/test_args.py @@ -15,8 +15,6 @@ from mock import MagicMock, patch, call -from six import iteritems - from gitfs.utils.args import Args @@ -74,7 +72,7 @@ def test_args(self): "not_magic": "False", "ssh_user": "user", } - for name, value in iteritems(asserted_results): + for name, value in asserted_results.items(): assert value == getattr(args, name) assert args.config == mocked_args diff --git a/tests/utils/test_decorators.py b/tests/utils/test_decorators.py index 65f2def6..e765d5e9 100644 --- a/tests/utils/test_decorators.py +++ b/tests/utils/test_decorators.py @@ -18,8 +18,6 @@ import pytest from mock import MagicMock, patch, call -from six import iteritems - from gitfs.utils.decorators.retry import retry from gitfs.utils.decorators.while_not import while_not @@ -37,7 +35,7 @@ def decorated(*args, **kwargs): class EmptyMock(object): def __init__(self, **kwargs): - for name, value in iteritems(kwargs): + for name, value in kwargs.items(): setattr(self, name, value) diff --git a/tests/views/test_passthrough.py b/tests/views/test_passthrough.py index d90b8165..ab4a68df 100644 --- a/tests/views/test_passthrough.py +++ b/tests/views/test_passthrough.py @@ -18,7 +18,6 @@ import os from fuse import FuseOSError -from six.moves import builtins from pytest import raises from gitfs.views import PassthroughView diff --git a/tests/workers/test_sync.py b/tests/workers/test_sync.py index 2d32ccc5..0df549e7 100644 --- a/tests/workers/test_sync.py +++ b/tests/workers/test_sync.py @@ -11,10 +11,11 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from queue import Empty + from _pygit2 import GitError from mock import MagicMock, patch, call -from six.moves.queue import Empty import pygit2 import pytest