__pycache__
a.c
a.i
+a.xml
+ansi_c.l.xml
+ansi_c.y.xml
+lex_yy.py
tests/*.l.xml
tests/*.l.new.xml
tests/*.l.new
tests/*.y.xml
tests/*.y.new.xml
tests/*.y.new
+y_tab.py
--- /dev/null
+all: lex_yy.py y_tab.py
+
+lex_yy.py: ansi_c.l
+ ../bootstrap_flex.git/src/flex -o /dev/null $< 2>$<.xml
+ ../pilex.git/pilex.py --element --python $<.xml
+
+y_tab.py: ansi_c.y
+ ../bootstrap_bison.git/src/bison -o /dev/null $< 2>$<.xml
+ ../piyacc.git/piyacc.py --element --python $<.xml
+
+clean:
+ rm -f lex_yy.py y_tab.py *.xml
--- /dev/null
+%e 1019
+%p 2807
+%n 371
+%k 284
+%a 1213
+%o 1117
+
+O [0-7]
+D [0-9]
+NZ [1-9]
+L [a-zA-Z_]
+A [a-zA-Z_0-9]
+H [a-fA-F0-9]
+HP (0[xX])
+E ([Ee][+-]?{D}+)
+P ([Pp][+-]?{D}+)
+FS (f|F|l|L)
+IS (((u|U)(l|L|ll|LL)?)|((l|L|ll|LL)(u|U)?))
+CP (u|U|L)
+SP (u8|u|U|L)
+ES (\\(['"\?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F0-9]+))
+WS [ \t\v\n\f]
+
+%{
+import ast
+import y_tab
+%}
+
+%%
+
+"/*" {
+ if not skip_comment():
+ return -1
+}
+"//".* # consume //-comment
+
+"auto" return y_tab.AUTO
+"break" return y_tab.BREAK
+"case" return y_tab.CASE
+"char" return y_tab.CHAR
+"const" return y_tab.CONST
+
+"default" return y_tab.DEFAULT
+"do" return y_tab.DO
+"double" return y_tab.DOUBLE
+"else" return y_tab.ELSE
+"enum" return y_tab.ENUM
+"extern" return y_tab.EXTERN
+"float" return y_tab.FLOAT
+"for" return y_tab.FOR
+"goto" return y_tab.GOTO
+"if" return y_tab.IF
+"inline" return y_tab.INLINE
+"int" return y_tab.INT
+"long" return y_tab.LONG
+"register" return y_tab.REGISTER
+"restrict" return y_tab.RESTRICT
+"return" return y_tab.RETURN
+"short" return y_tab.SHORT
+"signed" return y_tab.SIGNED
+"sizeof" return y_tab.SIZEOF
+"static" return y_tab.STATIC
+"struct" return y_tab.STRUCT
+"switch" return y_tab.SWITCH
+"typedef" return y_tab.TYPEDEF
+"union" return y_tab.UNION
+"unsigned" return y_tab.UNSIGNED
+"void" return y_tab.VOID
+"volatile" return y_tab.VOLATILE
+"while" return y_tab.WHILE
+"_Alignas" return y_tab.ALIGNAS
+"_Alignof" return y_tab.ALIGNOF
+"_Atomic" return y_tab.ATOMIC
+"_Bool" return y_tab.BOOL
+"_Complex" return y_tab.COMPLEX
+"_Generic" return y_tab.GENERIC
+"_Imaginary" return y_tab.IMAGINARY
+"_Noreturn" return y_tab.NORETURN
+"_Static_assert" return y_tab.STATIC_ASSERT
+"_Thread_local" return y_tab.THREAD_LOCAL
+"__func__" return y_tab.FUNC_NAME
+
+"bool"|"scanflags_t"|"size_t" {
+ # THIS IS A HACK FOR NOW
+ return y_tab.TYPEDEF_NAME
+}
+
+(?E{ast.AST.Identifier}{L}{A}*) {
+ return y_tab.IDENTIFIER
+}
+
+(?E{ast.AST.ExpressionIntLiteral}{HP}{H}+{IS}?) |
+(?E{ast.AST.ExpressionIntLiteral}{NZ}{D}*{IS}?) |
+(?E{ast.AST.ExpressionIntLiteral}"0"{O}*{IS}?) |
+(?E{ast.AST.ExpressionCharConstant}{CP}?"'"([^'\\\n]|{ES})+"'") {
+ return y_tab.I_CONSTANT
+}
+
+(?E{ast.AST.ExpressionFloatLiteral}{D}+{E}{FS}?) |
+(?E{ast.AST.ExpressionFloatLiteral}{D}*"."{D}+{E}?{FS}?) |
+(?E{ast.AST.ExpressionFloatLiteral}{D}+"."{E}?{FS}?) |
+(?E{ast.AST.ExpressionFloatLiteral}{HP}{H}+{P}{FS}?) |
+(?E{ast.AST.ExpressionFloatLiteral}{HP}{H}*"."{H}+{P}{FS}?) |
+(?E{ast.AST.ExpressionFloatLiteral}{HP}{H}+"."{P}{FS}?) {
+ return y_tab.F_CONSTANT
+}
+
+(?E{ast.AST.ExpressionStringLiteral}({SP}?\"(?E{ast.AST.Text}([^"\\\n]|{ES})*)\"{WS}*)+) {
+ return y_tab.STRING_LITERAL
+}
+
+"..." return y_tab.ELLIPSIS
+">>=" return y_tab.RIGHT_ASSIGN
+"<<=" return y_tab.LEFT_ASSIGN
+"+=" return y_tab.ADD_ASSIGN
+"-=" return y_tab.SUB_ASSIGN
+"*=" return y_tab.MUL_ASSIGN
+"/=" return y_tab.DIV_ASSIGN
+"%=" return y_tab.MOD_ASSIGN
+"&=" return y_tab.AND_ASSIGN
+"^=" return y_tab.XOR_ASSIGN
+"|=" return y_tab.OR_ASSIGN
+">>" return y_tab.RIGHT_OP
+"<<" return y_tab.LEFT_OP
+"++" return y_tab.INC_OP
+"--" return y_tab.DEC_OP
+"->" return y_tab.PTR_OP
+"&&" return y_tab.AND_OP
+"||" return y_tab.OR_OP
+"<=" return y_tab.LE_OP
+">=" return y_tab.GE_OP
+"==" return y_tab.EQ_OP
+"!=" return y_tab.NE_OP
+";" return ord(';')
+("{"|"<%") return ord('{')
+("}"|"%>") return ord('}')
+"," return ord(',')
+":" return ord(':')
+"=" return ord('=')
+"(" return ord('(')
+")" return ord(')')
+("["|"<:") return ord('[')
+("]"|":>") return ord(']')
+"." return ord('.')
+"&" return ord('&')
+"!" return ord('!')
+"~" return ord('~')
+"-" return ord('-')
+"+" return ord('+')
+"*" return ord('*')
+"/" return ord('/')
+"%" return ord('%')
+"<" return ord('<')
+">" return ord('>')
+"^" return ord('^')
+"|" return ord('|')
+"?" return ord('?')
+
+{WS}+ # whitespace separates tokens
+. # discard bad characters
+<<EOF>> return 0
+
+%%
+
+def yywrap(): # called at end of input
+ return 1 # terminate now */
+
+def yyerror(s):
+ sys.stdout.flush()
+ sys.stderr.write('*** {0:s}\n'.format(s))
+
+def skip_comment():
+ c = input()
+ while len(c):
+ if c == '*':
+ c = input()
+ while c == '*':
+ c = input()
+ if c == '/':
+ return True;
+ if len(c) == 0:
+ break
+ c = input()
+ yyerror('unterminated comment')
+ return False
--- /dev/null
+#!/usr/bin/env python3
+
+# Copyright (C) 2018 Nick Downing <nick@ndcode.org>
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+import ast
+import element
+import sys
+import xml.etree.ElementTree
+import y_tab
+
+_ast = y_tab.yyparse(ast.AST)
+element.serialize(_ast, 'a.xml', 'utf-8')
+_ast = element.deserialize('a.xml', ast.factory, 'utf-8')
+xml.etree.ElementTree.dump(_ast)
--- /dev/null
+%token IDENTIFIER I_CONSTANT F_CONSTANT STRING_LITERAL FUNC_NAME SIZEOF
+%token PTR_OP INC_OP DEC_OP LEFT_OP RIGHT_OP LE_OP GE_OP EQ_OP NE_OP
+%token AND_OP OR_OP MUL_ASSIGN DIV_ASSIGN MOD_ASSIGN ADD_ASSIGN
+%token SUB_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN
+%token XOR_ASSIGN OR_ASSIGN
+%token TYPEDEF_NAME ENUMERATION_CONSTANT
+
+%token TYPEDEF EXTERN STATIC AUTO REGISTER INLINE
+%token CONST RESTRICT VOLATILE
+%token BOOL CHAR SHORT INT LONG SIGNED UNSIGNED FLOAT DOUBLE VOID
+%token COMPLEX IMAGINARY
+%token STRUCT UNION ENUM ELLIPSIS
+
+%token CASE DEFAULT IF ELSE SWITCH WHILE DO FOR GOTO CONTINUE BREAK RETURN
+
+%token ALIGNAS ALIGNOF ATOMIC GENERIC NORETURN STATIC_ASSERT THREAD_LOCAL
+
+%start block_item_list_opt
+
+%expect 2
+
+%{
+import ast
+%}
+
+%%
+
+primary_expression
+ : (?E{ast.AST.ExpressionIdentifier}IDENTIFIER)
+ | constant
+ | string
+ | '(' expression ')'
+ | generic_selection
+ ;
+
+constant
+ : I_CONSTANT
+ | F_CONSTANT
+ | ENUMERATION_CONSTANT
+ ;
+
+enumeration_constant
+ : IDENTIFIER
+ ;
+
+string
+ : STRING_LITERAL
+ | (?E{ast.AST.ExpressionFunctionName}FUNC_NAME)
+ ;
+
+generic_selection
+ : (?E{ast.AST.GenericSelection}GENERIC '(' assignment_expression ',' (?E{ast.AST.GenericAssociationList}generic_association_list) ')')
+ ;
+
+generic_association_list
+ : generic_association
+ | generic_association_list ',' generic_association
+ ;
+
+generic_association
+ : (?E{ast.AST.GenericAssociation}type_name_or_default ':' assignment_expression)
+ ;
+
+type_name_or_default
+ : type_name
+ | (?E{ast.AST.DefaultTypeName}DEFAULT)
+ ;
+
+postfix_expression
+ : primary_expression
+ | (?E{ast.AST.ExpressionIndex}postfix_expression '[' expression ']')
+ | (?E{ast.AST.ExpressionCall}postfix_expression '(' (?E{ast.AST.ArgumentExpressionList}argument_expression_list_opt) ')')
+ | (?E{ast.AST.ExpressionField}postfix_expression '.' IDENTIFIER)
+ | (?E{ast.AST.ExpressionFieldDereference}postfix_expression PTR_OP IDENTIFIER)
+ | (?E{ast.AST.ExpressionPostIncrement}postfix_expression INC_OP)
+ | (?E{ast.AST.ExpressionPostDecrement}postfix_expression DEC_OP)
+ | (?E{ast.AST.ExpressionArray}'(' type_name ')' '{' (?E{ast.AST.DesignatorInitializerList}designator_initializer_list_comma_opt) '}')
+ ;
+
+argument_expression_list_opt
+ :
+ | argument_expression_list
+ ;
+
+argument_expression_list
+ : assignment_expression
+ | argument_expression_list ',' assignment_expression
+ ;
+
+unary_expression
+ : postfix_expression
+ | (?E{ast.AST.ExpressionPreIncrement}INC_OP unary_expression)
+ | (?E{ast.AST.ExpressionPreDecrement}DEC_OP unary_expression)
+ | (?E{ast.AST.ExpressionAddressOf}'&' cast_expression)
+ | (?E{ast.AST.ExpressionDereference}'*' cast_expression)
+ | (?E{ast.AST.ExpressionPlus}'+' cast_expression)
+ | (?E{ast.AST.ExpressionMinus}'-' cast_expression)
+ | (?E{ast.AST.ExpressionBitwiseNot}'~' cast_expression)
+ | (?E{ast.AST.ExpressionLogicalNot}'!' cast_expression)
+ | (?E{ast.AST.ExpressionSizeOfExpression}SIZEOF unary_expression)
+ | (?E{ast.AST.ExpressionSizeOfType}SIZEOF '(' type_name ')')
+ | (?E{ast.AST.ExpressionAlignOfType}ALIGNOF '(' type_name ')')
+ ;
+
+cast_expression
+ : unary_expression
+ | (?E{ast.AST.ExpressionCast}'(' type_name ')' cast_expression)
+ ;
+
+multiplicative_expression
+ : cast_expression
+ | (?E{ast.AST.ExpressionMultiply}multiplicative_expression '*' cast_expression)
+ | (?E{ast.AST.ExpressionDivide}multiplicative_expression '/' cast_expression)
+ | (?E{ast.AST.ExpressionModulo}multiplicative_expression '%' cast_expression)
+ ;
+
+additive_expression
+ : multiplicative_expression
+ | (?E{ast.AST.ExpressionAdd}additive_expression '+' multiplicative_expression)
+ | (?E{ast.AST.ExpressionSubtract}additive_expression '-' multiplicative_expression)
+ ;
+
+shift_expression
+ : additive_expression
+ | (?E{ast.AST.ExpressionShiftLeft}shift_expression LEFT_OP additive_expression)
+ | (?E{ast.AST.ExpressionShiftRight}shift_expression RIGHT_OP additive_expression)
+ ;
+
+relational_expression
+ : shift_expression
+ | (?E{ast.AST.ExpressionLessThan}relational_expression '<' shift_expression)
+ | (?E{ast.AST.ExpressionGreaterThan}relational_expression '>' shift_expression)
+ | (?E{ast.AST.ExpressionLessThanOrEqual}relational_expression LE_OP shift_expression)
+ | (?E{ast.AST.ExpressionGreaterThanOrEqual}relational_expression GE_OP shift_expression)
+ ;
+
+equality_expression
+ : relational_expression
+ | (?E{ast.AST.ExpressionEqual}equality_expression EQ_OP relational_expression)
+ | (?E{ast.AST.ExpressionNotEqual}equality_expression NE_OP relational_expression)
+ ;
+
+and_expression
+ : equality_expression
+ | (?E{ast.AST.ExpressionBitwiseAnd}and_expression '&' equality_expression)
+ ;
+
+exclusive_or_expression
+ : and_expression
+ | (?E{ast.AST.ExpressionExclusiveOr}exclusive_or_expression '^' and_expression)
+ ;
+
+inclusive_or_expression
+ : exclusive_or_expression
+ | (?E{ast.AST.ExpressionBitwiseOr}inclusive_or_expression '|' exclusive_or_expression)
+ ;
+
+logical_and_expression
+ : inclusive_or_expression
+ | (?E{ast.AST.ExpressionLogicalAnd}logical_and_expression AND_OP inclusive_or_expression)
+ ;
+
+logical_or_expression
+ : logical_and_expression
+ | (?E{ast.AST.ExpressionLogicalOr}logical_or_expression OR_OP logical_and_expression)
+ ;
+
+conditional_expression
+ : logical_or_expression
+ | (?E{ast.AST.ExpressionConditional}logical_or_expression '?' expression ':' conditional_expression)
+ ;
+
+assignment_expression_or_asterisk_opt
+ : (?E{ast.AST.ExpressionEmpty})
+ | (?E{ast.AST.ExpressionAsterisk}'*')
+ | assignment_expression
+ ;
+
+assignment_expression
+ : conditional_expression
+ | (?E{ast.AST.ExpressionAssignment}unary_expression '=' assignment_expression)
+ | (?E{ast.AST.ExpressionMultiplyAssignment}unary_expression MUL_ASSIGN assignment_expression)
+ | (?E{ast.AST.ExpressionDivideAssignment}unary_expression DIV_ASSIGN assignment_expression)
+ | (?E{ast.AST.ExpressionModuloAssignment}unary_expression MOD_ASSIGN assignment_expression)
+ | (?E{ast.AST.ExpressionAddAssignment}unary_expression ADD_ASSIGN assignment_expression)
+ | (?E{ast.AST.ExpressionSubtractAssignment}unary_expression SUB_ASSIGN assignment_expression)
+ | (?E{ast.AST.ExpressionLeftShiftAssignment}unary_expression LEFT_ASSIGN assignment_expression)
+ | (?E{ast.AST.ExpressionRightShiftAssignment}unary_expression RIGHT_ASSIGN assignment_expression)
+ | (?E{ast.AST.ExpressionBitwiseAndAssignment}unary_expression AND_ASSIGN assignment_expression)
+ | (?E{ast.AST.ExpressionExclusiveOrAssignment}unary_expression XOR_ASSIGN assignment_expression)
+ | (?E{ast.AST.ExpressionBitwiseOrAssignment}unary_expression OR_ASSIGN assignment_expression)
+ ;
+
+expression_opt
+ : (?E{ast.AST.ExpressionEmpty})
+ | expression
+ ;
+
+expression
+ : assignment_expression
+ | (?E{ast.AST.ExpressionComma}expression ',' assignment_expression)
+ ;
+
+equals_constant_expression_opt
+ : (?E{ast.AST.ExpressionEmpty})
+ | '=' constant_expression
+ ;
+
+constant_expression
+ : conditional_expression
+ ;
+
+declaration
+ : (?E{ast.AST.Declaration}(?E{ast.AST.DeclarationSpecifierList}declaration_specifier_list) (?E{ast.AST.InitDeclaratorList}init_declarator_list_opt) ';')
+ | static_assert_declaration
+ ;
+
+declaration_specifier_list
+ : declaration_specifier
+ | declaration_specifier_list declaration_specifier
+ ;
+
+declaration_specifier
+ : storage_class_specifier
+ | type_specifier
+ | type_qualifier
+ | function_specifier
+ | alignment_specifier
+ ;
+
+init_declarator_list_opt
+ :
+ | init_declarator_list
+ ;
+
+init_declarator_list
+ : init_declarator
+ | init_declarator_list ',' init_declarator
+ ;
+
+init_declarator
+ : (?E{ast.AST.InitDeclarator}declarator equals_initializer_opt)
+ ;
+
+storage_class_specifier
+ : (?E{ast.AST.StorageClassSpecifier, n = 0}TYPEDEF)
+ | (?E{ast.AST.StorageClassSpecifier, n = 1}EXTERN)
+ | (?E{ast.AST.StorageClassSpecifier, n = 2}STATIC)
+ | (?E{ast.AST.StorageClassSpecifier, n = 3}THREAD_LOCAL)
+ | (?E{ast.AST.StorageClassSpecifier, n = 4}AUTO)
+ | (?E{ast.AST.StorageClassSpecifier, n = 5}REGISTER)
+ ;
+
+type_specifier
+ : (?E{ast.AST.TypeSpecifier, n = 0}VOID)
+ | (?E{ast.AST.TypeSpecifier, n = 1}CHAR)
+ | (?E{ast.AST.TypeSpecifier, n = 2}SHORT)
+ | (?E{ast.AST.TypeSpecifier, n = 3}INT)
+ | (?E{ast.AST.TypeSpecifier, n = 4}LONG)
+ | (?E{ast.AST.TypeSpecifier, n = 5}FLOAT)
+ | (?E{ast.AST.TypeSpecifier, n = 6}DOUBLE)
+ | (?E{ast.AST.TypeSpecifier, n = 7}SIGNED)
+ | (?E{ast.AST.TypeSpecifier, n = 8}UNSIGNED)
+ | (?E{ast.AST.TypeSpecifier, n = 9}BOOL)
+ | (?E{ast.AST.TypeSpecifier, n = 10}COMPLEX)
+ | (?E{ast.AST.TypeSpecifier, n = 11}IMAGINARY)
+ | atomic_type_specifier
+ | struct_specifier
+ | union_specifier
+ | enum_specifier
+ | TYPEDEF_NAME
+ ;
+
+struct_specifier
+ : (?E{ast.AST.StructSpecifier}STRUCT identifier_opt '{' (?E{ast.AST.StructDeclarationList}struct_declaration_list_opt) '}')
+ | (?E{ast.AST.StructSpecifier}STRUCT IDENTIFIER)
+ ;
+
+union_specifier
+ : (?E{ast.AST.UnionSpecifier}UNION identifier_opt '{' (?E{ast.AST.StructDeclarationList}struct_declaration_list_opt) '}')
+ | (?E{ast.AST.UnionSpecifier}UNION IDENTIFIER)
+ ;
+
+struct_declaration_list_opt
+ :
+ | struct_declaration_list
+ ;
+
+struct_declaration_list
+ : struct_declaration
+ | struct_declaration_list struct_declaration
+ ;
+
+struct_declaration
+ : (?E{ast.AST.StructDeclaration}(?E{ast.AST.SpecifierQualifierList}specifier_qualifier_list) (?E{ast.AST.StructDeclaratorList}struct_declarator_list_opt) ';')
+ | static_assert_declaration
+ ;
+
+specifier_qualifier_list
+ : specifier_qualifier
+ | specifier_qualifier_list specifier_qualifier
+ ;
+
+specifier_qualifier
+ : type_specifier
+ | type_qualifier
+ ;
+
+struct_declarator_list_opt
+ :
+ | struct_declarator_list
+ ;
+
+struct_declarator_list
+ : struct_declarator
+ | struct_declarator_list ',' struct_declarator
+ ;
+
+struct_declarator
+ : (?E{ast.AST.StructDeclarator}declarator_opt ':' constant_expression)
+ | declarator
+ ;
+
+enum_specifier
+ : (?E{ast.AST.EnumSpecifier}ENUM identifier_opt '{' (?E{ast.AST.EnumeratorList}enumerator_list_comma_opt) '}')
+ | (?E{ast.AST.EnumSpecifier}ENUM IDENTIFIER)
+ ;
+
+enumerator_list_comma_opt
+ :
+ | enumerator_list
+ | enumerator_list ','
+ ;
+
+enumerator_list
+ : enumerator
+ | enumerator_list ',' enumerator
+ ;
+
+enumerator
+ : (?E{ast.AST.Enumerator}enumeration_constant equals_constant_expression_opt)
+ ;
+
+atomic_type_specifier
+ : ATOMIC '(' type_name ')'
+ ;
+
+type_qualifier_or_static_list_opt
+ :
+ | type_qualifier_or_static_list
+ ;
+
+type_qualifier_or_static_list
+ : type_qualifier_or_static
+ | type_qualifier_or_static_list type_qualifier_or_static
+ ;
+
+type_qualifier_or_static
+ : type_qualifier
+ | (?E{ast.AST.StorageClassSpecifier, n = 2}STATIC)
+ ;
+
+type_qualifier
+ : (?E{ast.AST.TypeQualifier, n = 0}CONST)
+ | (?E{ast.AST.TypeQualifier, n = 1}RESTRICT)
+ | (?E{ast.AST.TypeQualifier, n = 2}VOLATILE)
+ | (?E{ast.AST.TypeQualifier, n = 3}ATOMIC)
+ ;
+
+function_specifier
+ : (?E{ast.AST.FunctionSpecifier, n = 0}INLINE)
+ | (?E{ast.AST.FunctionSpecifier, n = 1}NORETURN)
+ ;
+
+alignment_specifier
+ : (?E{ast.AST.AlignAsType}ALIGNAS '(' type_name ')')
+ | (?E{ast.AST.AlignAsExpression}ALIGNAS '(' constant_expression ')')
+ ;
+
+declarator_opt
+ : (?E{ast.AST.DeclaratorEmpty})
+ | declarator
+ ;
+
+declarator
+ : direct_declarator
+ | (?E{ast.AST.DeclaratorPointer}'*' (?E{ast.AST.TypeQualifierList}type_qualifier_list_opt) declarator)
+ ;
+
+direct_declarator
+ : (?E{ast.AST.DeclaratorIdentifier}IDENTIFIER)
+ | '(' declarator ')'
+ | (?E{ast.AST.DeclaratorArray}direct_declarator '[' (?E{ast.AST.TypeQualifierOrStaticList}type_qualifier_or_static_list_opt) assignment_expression_or_asterisk_opt ']')
+ | (?E{ast.AST.DeclaratorFunctionOldStyle}direct_declarator '(' (?E{ast.AST.IdentifierList}identifier_list_opt) ')')
+ | (?E{ast.AST.DeclaratorFunction}direct_declarator '(' (?E{ast.AST.ParameterDeclarationList}parameter_declaration_list) comma_ellipsis_opt ')')
+ ;
+
+type_qualifier_list_opt
+ :
+ | type_qualifier_list
+ ;
+
+type_qualifier_list
+ : type_qualifier
+ | type_qualifier_list type_qualifier
+ ;
+
+parameter_declaration_list
+ : parameter_declaration
+ | parameter_declaration_list ',' parameter_declaration
+ ;
+
+parameter_declaration
+ : (?E{ast.AST.ParameterDeclaration}(?E{ast.AST.DeclarationSpecifierList}declaration_specifier_list) declarator)
+ | (?E{ast.AST.ParameterDeclaration}(?E{ast.AST.DeclarationSpecifierList}declaration_specifier_list) abstract_declarator)
+ ;
+
+identifier_list_opt
+ :
+ | identifier_list
+ ;
+
+identifier_list
+ : IDENTIFIER
+ | identifier_list ',' IDENTIFIER
+ ;
+
+type_name
+ : (?E{ast.AST.TypeName}(?E{ast.AST.SpecifierQualifierList}specifier_qualifier_list) abstract_declarator)
+ ;
+
+abstract_declarator
+ : direct_abstract_declarator_opt
+ | (?E{ast.AST.DeclaratorPointer}'*' (?E{ast.AST.TypeQualifierList}type_qualifier_list_opt) abstract_declarator)
+ ;
+
+direct_abstract_declarator_opt
+ : (?E{ast.AST.DeclaratorAbstract})
+ | direct_abstract_declarator
+ ;
+
+/* in the below, ") (" should be ")(", inserted space for now */
+direct_abstract_declarator
+ : '(' direct_abstract_declarator ')'
+ | '(' (?E{ast.AST.DeclaratorPointer}'*' (?E{ast.AST.TypeQualifierList}type_qualifier_list_opt) abstract_declarator) ')'
+ | (?E{ast.AST.DeclaratorArray}(?E{ast.AST.DeclaratorAbstract})'[' (?E{ast.AST.TypeQualifierOrStaticList}type_qualifier_or_static_list_opt) assignment_expression_or_asterisk_opt ']')
+ | (?E{ast.AST.DeclaratorFunction}(?E{ast.AST.DeclaratorAbstract})'('(?E{ast.AST.ParameterDeclarationList}) (?E{ast.AST.CommaEllipsisEmpty}) ')')
+ | (?E{ast.AST.DeclaratorFunction}(?E{ast.AST.DeclaratorAbstract})'(' (?E{ast.AST.ParameterDeclarationList}parameter_declaration_list) comma_ellipsis_opt ')')
+ | (?E{ast.AST.DeclaratorArray}direct_abstract_declarator '[' (?E{ast.AST.TypeQualifierOrStaticList}type_qualifier_or_static_list_opt) assignment_expression_or_asterisk_opt ']')
+ | (?E{ast.AST.DeclaratorFunction}direct_abstract_declarator '('(?E{ast.AST.ParameterDeclarationList}) (?E{ast.AST.CommaEllipsisEmpty}) ')')
+ | (?E{ast.AST.DeclaratorFunction}direct_abstract_declarator '(' (?E{ast.AST.ParameterDeclarationList}parameter_declaration_list) comma_ellipsis_opt ')')
+ ;
+
+equals_initializer_opt
+ : (?E{ast.AST.EqualsInitializerEmpty})
+ | '=' initializer
+ ;
+
+initializer
+ : '{' (?E{ast.AST.DesignatorInitializerList}designator_initializer_list_comma_opt) '}'
+ | assignment_expression
+ ;
+
+designator_initializer_list_comma_opt
+ :
+ | designator_initializer_list
+ | designator_initializer_list ','
+ ;
+
+designator_initializer_list
+ : designator_initializer
+ | designator_initializer_list ',' designator_initializer
+ ;
+
+designator_initializer
+ : (?E{ast.AST.DesignatorInitializer}(?E{ast.AST.DesignatorList}designator_list_equals_opt) initializer)
+ ;
+
+designator_list_equals_opt
+ :
+ | designator_list '='
+ ;
+
+designator_list
+ : designator
+ | designator_list designator
+ ;
+
+designator
+ : (?E{ast.AST.DesignatorIndex}'[' constant_expression ']')
+ | (?E{ast.AST.DesignatorField}'.' IDENTIFIER)
+ ;
+
+static_assert_declaration
+ : (?E{ast.AST.StaticAssertDeclaration}STATIC_ASSERT '(' constant_expression ',' STRING_LITERAL ')' ';')
+ ;
+
+statement
+ : (?E{ast.AST.StatementLabel}IDENTIFIER ':' statement)
+ | (?E{ast.AST.StatementCase}CASE constant_expression ':' statement)
+ | (?E{ast.AST.StatementDefault}DEFAULT ':' statement)
+ | (?E{ast.AST.StatementBlock}'{' (?E{ast.AST.BlockItemList}block_item_list_opt) '}')
+ | (?E{ast.AST.StatementExpression}expression_opt ';')
+ | (?E{ast.AST.StatementIfElse}IF '(' expression ')' statement ELSE statement)
+ | (?E{ast.AST.StatementIf}IF '(' expression ')' statement)
+ | (?E{ast.AST.StatementSwitch}SWITCH '(' expression ')' statement)
+ | (?E{ast.AST.StatementWhile}WHILE '(' expression ')' statement)
+ | (?E{ast.AST.StatementDoWhile}DO statement WHILE '(' expression ')' ';')
+ | (?E{ast.AST.StatementFor}FOR '(' expression_opt ';' expression_opt ';' expression_opt ')' statement)
+ | (?E{ast.AST.StatementFor}FOR '(' declaration expression_opt ';' expression_opt ')' statement)
+ | (?E{ast.AST.StatementGoto}GOTO IDENTIFIER ';')
+ | (?E{ast.AST.StatementContinue}CONTINUE ';')
+ | (?E{ast.AST.StatementBreak}BREAK ';')
+ | (?E{ast.AST.StatementReturn}RETURN expression_opt ';')
+ ;
+
+block_item_list_opt
+ :
+ | block_item_list
+ ;
+
+block_item_list
+ : block_item
+ | block_item_list block_item
+ ;
+
+block_item
+ : declaration
+ | statement
+ ;
+
+/* changed %start to block_item_list_opt rather than translation_list
+translation_unit_opt
+ :
+ | translation_unit
+ ;
+
+translation_unit
+ : external_declaration
+ | translation_unit external_declaration
+ ;
+
+external_declaration
+ : function_definition
+ | declaration
+ ;
+
+function_definition
+ : (?E{ast.AST.FunctionDefinition}(?E{ast.AST.DeclarationSpecifierList}declaration_specifier_list) declarator (?E{ast.AST.DeclarationList}declaration_list_opt) '{' (?E{ast.AST.BlockItemList}block_item_list_opt) '}')
+ ;
+
+declaration_list_opt
+ :
+ | declaration_list
+ ;
+
+declaration_list
+ : declaration
+ | declaration_list declaration
+ ;
+*/
+
+identifier_opt
+ : (?E{ast.AST.IdentifierEmpty})
+ | IDENTIFIER
+ ;
+
+comma_ellipsis_opt
+ : (?E{ast.AST.CommaEllipsisEmpty})
+ | (?E{ast.AST.CommaEllipsis}',' ELLIPSIS)
+ ;
+++ /dev/null
-%e 1019
-%p 2807
-%n 371
-%k 284
-%a 1213
-%o 1117
-
-O [0-7]
-D [0-9]
-NZ [1-9]
-L [a-zA-Z_]
-A [a-zA-Z_0-9]
-H [a-fA-F0-9]
-HP (0[xX])
-E ([Ee][+-]?{D}+)
-P ([Pp][+-]?{D}+)
-FS (f|F|l|L)
-IS (((u|U)(l|L|ll|LL)?)|((l|L|ll|LL)(u|U)?))
-CP (u|U|L)
-SP (u8|u|U|L)
-ES (\\(['"\?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F0-9]+))
-WS [ \t\v\n\f]
-
-%{
-#include "Python.h"
-#include "structmember.h"
-#include <setjmp.h>
-#include <stdbool.h>
-
-#include "yaccmodule.h"
-
-PyDoc_STRVAR(lex_doc_string, \
-"lex is an interface to a flex-generated lexical analyzer.\n");
-
-/* filled in at module initialization time */
-static PyObject *work;
-static PyObject *work_factory;
-
-typedef struct {
- PyObject_HEAD
-
- /* filled in by lex.yylex.__init(), no change during iteration */
- PyObject *root, *mark, *yychunk_iter;
-
- /* filled in by YY_INPUT() each time we go on to a new chunk */
- PyObject *YY_INPUT_bytes;
- Py_ssize_t YY_INPUT_bytes_off, YY_INPUT_bytes_len;
-} lex_yylexObject;
-
-/* filled in by lex.yylex.__next__() each time iterator invoked */
-static lex_yylexObject *yylex_self;
-static jmp_buf yylex_abort;
-static Py_ssize_t yytext_pos, yytext_off, yytext_len;
-
-static void yyerror(const char *); /* prints grammar violation message */
-static bool get_cursor(lex_yylexObject *self, Py_ssize_t i, Py_ssize_t *pos, Py_ssize_t *off);
-static bool set_cursor(lex_yylexObject *self, Py_ssize_t i, Py_ssize_t pos, Py_ssize_t off);
-static bool new_cursor(lex_yylexObject *self, Py_ssize_t i, Py_ssize_t pos, Py_ssize_t off);
-static bool pop_cursors(lex_yylexObject *self, Py_ssize_t i);
-static bool apply_markup(const char *format, ...);
-static bool next_YY_INPUT_chunk(lex_yylexObject *self);
-static bool next_yytext_chunk(lex_yylexObject *self);
-/*static bool skip_yytext_byte(lex_yylexObject *self, int c);*/ /* NO PROTOTYPE, IT'S A MACRO */
-static bool skip_yytext(lex_yylexObject *self);
-static bool skip_comment(lex_yylexObject *self);
-
-#define YY_INPUT(buf, result, max_size) \
- do { \
- /*printf("YY_INPUT()\n");*/ \
- if (yylex_self->YY_INPUT_bytes_off >= yylex_self->YY_INPUT_bytes_len && !next_YY_INPUT_chunk(yylex_self)) \
- longjmp(yylex_abort, 1); \
- Py_ssize_t len = yylex_self->YY_INPUT_bytes_len - yylex_self->YY_INPUT_bytes_off; \
- if (len > max_size) \
- len = max_size; \
- /* note: don't call PyBytes_AS_STRING on Py_None (possible if len == 0) */ \
- if (len) { \
- memcpy(buf, PyBytes_AS_STRING(yylex_self->YY_INPUT_bytes) + yylex_self->YY_INPUT_bytes_off, len); \
- yylex_self->YY_INPUT_bytes_off += len; \
- } \
- result = len; \
- /*printf("YY_INPUT() returns \""); fwrite(buf, result, 1, stdout); printf("\"\n");*/ \
- } while (0)
-
-#define SKIP() \
- do { \
- if (!skip_yytext(yylex_self)) \
- return -1; \
- } \
- while (0)
-
-#define MARK() \
- do { \
- if (!new_cursor(yylex_self, -1, yytext_pos, yytext_off)) \
- return -1; \
- } \
- while (0)
-
-#define APPLY(tag) \
- do { \
- Py_ssize_t len = PyObject_Length(yylex_self->mark); \
- if ( \
- len < 0 || \
- !apply_markup( \
- "OOnnOs", \
- yylex_self->root, \
- yylex_self->mark, \
- len - 3, \
- len - 2, \
- work_factory, \
- tag \
- ) \
- ) \
- return -1; \
- } \
- while (0)
-
-#define sym_type(self, identifier) IDENTIFIER /* with no symbol table, fake it */
-%}
-
-%%
-"/*" { SKIP(); if (!skip_comment(yylex_self)) return -1; }
-"//".* { SKIP(); /* consume //-comment */ }
-
-"auto" { MARK(); SKIP(); MARK(); return AUTO; }
-"break" { MARK(); SKIP(); MARK(); return BREAK; }
-"case" { MARK(); SKIP(); MARK(); return CASE; }
-"char" { MARK(); SKIP(); MARK(); return CHAR; }
-"const" { MARK(); SKIP(); MARK(); return CONST; }
-"continue" { MARK(); SKIP(); MARK(); return CONTINUE; }
-"default" { MARK(); SKIP(); MARK(); return DEFAULT; }
-"do" { MARK(); SKIP(); MARK(); return DO; }
-"double" { MARK(); SKIP(); MARK(); return DOUBLE; }
-"else" { MARK(); SKIP(); MARK(); return ELSE; }
-"enum" { MARK(); SKIP(); MARK(); return ENUM; }
-"extern" { MARK(); SKIP(); MARK(); return EXTERN; }
-"float" { MARK(); SKIP(); MARK(); return FLOAT; }
-"for" { MARK(); SKIP(); MARK(); return FOR; }
-"goto" { MARK(); SKIP(); MARK(); return GOTO; }
-"if" { MARK(); SKIP(); MARK(); return IF; }
-"inline" { MARK(); SKIP(); MARK(); return INLINE; }
-"int" { MARK(); SKIP(); MARK(); return INT; }
-"long" { MARK(); SKIP(); MARK(); return LONG; }
-"register" { MARK(); SKIP(); MARK(); return REGISTER; }
-"restrict" { MARK(); SKIP(); MARK(); return RESTRICT; }
-"return" { MARK(); SKIP(); MARK(); return RETURN; }
-"short" { MARK(); SKIP(); MARK(); return SHORT; }
-"signed" { MARK(); SKIP(); MARK(); return SIGNED; }
-"sizeof" { MARK(); SKIP(); MARK(); return SIZEOF; }
-"static" { MARK(); SKIP(); MARK(); return STATIC; }
-"struct" { MARK(); SKIP(); MARK(); return STRUCT; }
-"switch" { MARK(); SKIP(); MARK(); return SWITCH; }
-"typedef" { MARK(); SKIP(); MARK(); return TYPEDEF; }
-"union" { MARK(); SKIP(); MARK(); return UNION; }
-"unsigned" { MARK(); SKIP(); MARK(); return UNSIGNED; }
-"void" { MARK(); SKIP(); MARK(); return VOID; }
-"volatile" { MARK(); SKIP(); MARK(); return VOLATILE; }
-"while" { MARK(); SKIP(); MARK(); return WHILE; }
-"_Alignas" { MARK(); SKIP(); MARK(); return ALIGNAS; }
-"_Alignof" { MARK(); SKIP(); MARK(); return ALIGNOF; }
-"_Atomic" { MARK(); SKIP(); MARK(); return ATOMIC; }
-"_Bool" { MARK(); SKIP(); MARK(); return BOOL; }
-"_Complex" { MARK(); SKIP(); MARK(); return COMPLEX; }
-"_Generic" { MARK(); SKIP(); MARK(); return GENERIC; }
-"_Imaginary" { MARK(); SKIP(); MARK(); return IMAGINARY; }
-"_Noreturn" { MARK(); SKIP(); MARK(); return NORETURN; }
-"_Static_assert" { MARK(); SKIP(); MARK(); return STATIC_ASSERT; }
-"_Thread_local" { MARK(); SKIP(); MARK(); return THREAD_LOCAL; }
-"__func__" { MARK(); SKIP(); MARK(); return FUNC_NAME; }
-"bool"|"scanflags_t"|"size_t" { MARK(); SKIP(); MARK(); return TYPEDEF_NAME; /* THIS IS A HACK FOR NOW */ }
-
-(?<Identifier>{L}{A}*) {
- MARK();
- SKIP();
- MARK();
- switch (sym_type(self, yytext))
- {
- case TYPEDEF_NAME: /* previously defined */
- APPLY("TypedefName");
- return TYPEDEF_NAME;
- case ENUMERATION_CONSTANT: /* previously defined */
- APPLY("EnumerationConstant");
- return ENUMERATION_CONSTANT;
- default: /* includes undefined */
- APPLY("Identifier");
- return IDENTIFIER;
- }
-}
-
-(?<ExpressionIntLiteral>{HP}{H}+{IS}?) { MARK(); SKIP(); MARK(); APPLY("ExpressionIntLiteral"); return I_CONSTANT; }
-(?<ExpressionIntLiteral>{NZ}{D}*{IS}?) { MARK(); SKIP(); MARK(); APPLY("ExpressionIntLiteral"); return I_CONSTANT; }
-(?<ExpressionIntLiteral>"0"{O}*{IS}?) { MARK(); SKIP(); MARK(); APPLY("ExpressionIntLiteral"); return I_CONSTANT; }
-(?<ExpressionCharConstant>{CP}?"'"([^'\\\n]|{ES})+"'") { MARK(); SKIP(); MARK(); APPLY("ExpressionCharConstant"); return I_CONSTANT; }
-
-(?<ExpressionFloatLiteral>{D}+{E}{FS}?) { MARK(); SKIP(); MARK(); APPLY("ExpressionFloatLiteral"); return F_CONSTANT; }
-(?<ExpressionFloatLiteral>{D}*"."{D}+{E}?{FS}?) { MARK(); SKIP(); MARK(); APPLY("ExpressionFloatLiteral"); return F_CONSTANT; }
-(?<ExpressionFloatLiteral>{D}+"."{E}?{FS}?) { MARK(); SKIP(); MARK(); APPLY("ExpressionFloatLiteral"); return F_CONSTANT; }
-(?<ExpressionFloatLiteral>{HP}{H}+{P}{FS}?) { MARK(); SKIP(); MARK(); APPLY("ExpressionFloatLiteral"); return F_CONSTANT; }
-(?<ExpressionFloatLiteral>{HP}{H}*"."{H}+{P}{FS}?) { MARK(); SKIP(); MARK(); APPLY("ExpressionFloatLiteral"); return F_CONSTANT; }
-(?<ExpressionFloatLiteral>{HP}{H}+"."{P}{FS}?) { MARK(); SKIP(); MARK(); APPLY("ExpressionFloatLiteral"); return F_CONSTANT; }
-
-(?<ExpressionStringLiteral>({SP}?\"(?<Text>([^"\\\n]|{ES})*)\"{WS}*)+) { MARK(); SKIP(); MARK(); APPLY("ExpressionStringLiteral"); return STRING_LITERAL; }
-
-"..." { MARK(); SKIP(); MARK(); return ELLIPSIS; }
-">>=" { MARK(); SKIP(); MARK(); return RIGHT_ASSIGN; }
-"<<=" { MARK(); SKIP(); MARK(); return LEFT_ASSIGN; }
-"+=" { MARK(); SKIP(); MARK(); return ADD_ASSIGN; }
-"-=" { MARK(); SKIP(); MARK(); return SUB_ASSIGN; }
-"*=" { MARK(); SKIP(); MARK(); return MUL_ASSIGN; }
-"/=" { MARK(); SKIP(); MARK(); return DIV_ASSIGN; }
-"%=" { MARK(); SKIP(); MARK(); return MOD_ASSIGN; }
-"&=" { MARK(); SKIP(); MARK(); return AND_ASSIGN; }
-"^=" { MARK(); SKIP(); MARK(); return XOR_ASSIGN; }
-"|=" { MARK(); SKIP(); MARK(); return OR_ASSIGN; }
-">>" { MARK(); SKIP(); MARK(); return RIGHT_OP; }
-"<<" { MARK(); SKIP(); MARK(); return LEFT_OP; }
-"++" { MARK(); SKIP(); MARK(); return INC_OP; }
-"--" { MARK(); SKIP(); MARK(); return DEC_OP; }
-"->" { MARK(); SKIP(); MARK(); return PTR_OP; }
-"&&" { MARK(); SKIP(); MARK(); return AND_OP; }
-"||" { MARK(); SKIP(); MARK(); return OR_OP; }
-"<=" { MARK(); SKIP(); MARK(); return LE_OP; }
-">=" { MARK(); SKIP(); MARK(); return GE_OP; }
-"==" { MARK(); SKIP(); MARK(); return EQ_OP; }
-"!=" { MARK(); SKIP(); MARK(); return NE_OP; }
-";" { MARK(); SKIP(); MARK(); return ';'; }
-("{"|"<%") { MARK(); SKIP(); MARK(); return '{'; }
-("}"|"%>") { MARK(); SKIP(); MARK(); return '}'; }
-"," { MARK(); SKIP(); MARK(); return ','; }
-":" { MARK(); SKIP(); MARK(); return ':'; }
-"=" { MARK(); SKIP(); MARK(); return '='; }
-"(" { MARK(); SKIP(); MARK(); return '('; }
-")" { MARK(); SKIP(); MARK(); return ')'; }
-("["|"<:") { MARK(); SKIP(); MARK(); return '['; }
-("]"|":>") { MARK(); SKIP(); MARK(); return ']'; }
-"." { MARK(); SKIP(); MARK(); return '.'; }
-"&" { MARK(); SKIP(); MARK(); return '&'; }
-"!" { MARK(); SKIP(); MARK(); return '!'; }
-"~" { MARK(); SKIP(); MARK(); return '~'; }
-"-" { MARK(); SKIP(); MARK(); return '-'; }
-"+" { MARK(); SKIP(); MARK(); return '+'; }
-"*" { MARK(); SKIP(); MARK(); return '*'; }
-"/" { MARK(); SKIP(); MARK(); return '/'; }
-"%" { MARK(); SKIP(); MARK(); return '%'; }
-"<" { MARK(); SKIP(); MARK(); return '<'; }
-">" { MARK(); SKIP(); MARK(); return '>'; }
-"^" { MARK(); SKIP(); MARK(); return '^'; }
-"|" { MARK(); SKIP(); MARK(); return '|'; }
-"?" { MARK(); SKIP(); MARK(); return '?'; }
-
-{WS}+ { SKIP(); /* whitespace separates tokens */ }
-. { SKIP(); /* discard bad characters */ }
-<<EOF>> { MARK(); return 0; }
-
-%%
-
-int yywrap(void) /* called at end of input */
-{
- /*printf("yywrap()\n");*/
- return 1; /* terminate now */
-}
-
-static void yyerror(const char *s) {
- fflush(stdout);
- fprintf(stderr, "*** %s\n", s);
-}
-
-static bool get_cursor(lex_yylexObject *self, Py_ssize_t i, Py_ssize_t *pos, Py_ssize_t *off) {
- /*printf("get_cursor() %zd\n", i);*/
- /* (pos, off) = self->mark[index] */
- PyObject *index = PyLong_FromSsize_t(i);
- if (index == NULL)
- goto error0;
- PyObject *cursor = PyObject_GetItem(self->mark, index);
- if (cursor == NULL)
- goto error1;
- if (!PyArg_ParseTuple(cursor, "nn", pos, off)) {
- Py_DECREF(cursor);
- error1:
- Py_DECREF(index);
- error0:
- return false;
- }
- Py_DECREF(cursor);
- Py_DECREF(index);
- /*printf("get_cursor() returns %zd %zd\n", *pos, *off);*/
- return true;
-}
-
-static bool set_cursor(lex_yylexObject *self, Py_ssize_t i, Py_ssize_t pos, Py_ssize_t off) {
- /*printf("set_cursor() %zd %zd %zd\n", i, pos, off);*/
- /* self->mark[index] = (pos, off) */
- PyObject *index = PyLong_FromSsize_t(i);
- if (index == NULL)
- goto error0;
- PyObject *cursor = Py_BuildValue("nn", pos, off);
- if (cursor == NULL)
- goto error1;
- if (PyObject_SetItem(self->mark, index, cursor)) {
- Py_DECREF(cursor);
- error1:
- Py_DECREF(index);
- error0:
- return false;
- }
- Py_DECREF(cursor);
- Py_DECREF(index);
- return true;
-}
-
-static bool new_cursor(lex_yylexObject *self, Py_ssize_t i, Py_ssize_t pos, Py_ssize_t off) {
- /*printf("new_cursor() %zd %zd %zd\n", i, pos, off);*/
- /* self->mark[i:i] = [(pos, off)] */
- PyObject *index = PyLong_FromSsize_t(i);
- if (index == NULL)
- goto error0;
- PyObject *slice = PySlice_New(index, index, NULL);
- if (slice == NULL)
- goto error1;
- PyObject *list = PyList_New(1);
- if (list == NULL)
- goto error2;
- PyObject *cursor = Py_BuildValue("nn", pos, off);
- if (cursor == NULL)
- goto error3;
- PyList_SET_ITEM(list, 0, cursor);
- if (PyObject_SetItem(self->mark, slice, list)) {
- error3:
- Py_DECREF(list);
- error2:
- Py_DECREF(slice);
- error1:
- Py_DECREF(index);
- error0:
- return false;
- }
- Py_DECREF(list);
- Py_DECREF(slice);
- Py_DECREF(index);
- return true;
-}
-
-static bool pop_cursors(lex_yylexObject *self, Py_ssize_t i) {
- /*printf("pop_cursors() %zd\n", i);*/
- /* del self->mark[i:] */
- PyObject *start = PyLong_FromSsize_t(i);
- if (start == NULL)
- goto error0;
- PyObject *slice = PySlice_New(start, NULL, NULL);
- if (slice == NULL)
- goto error1;
- if (PyObject_DelItem(self->mark, slice)) {
- Py_DECREF(slice);
- error1:
- Py_DECREF(start);
- error0:
- return false;
- }
- Py_DECREF(slice);
- Py_DECREF(start);
- return true;
-}
-
-static bool apply_markup(const char *format, ...) {
- PyObject *apply_markup = PyObject_GetAttrString(work, "apply_markup");
- if (apply_markup == NULL)
- goto error0;
-
- va_list argp;
- va_start(argp, format);
- PyObject *args = Py_VaBuildValue(format, argp);
- va_end(argp);
- if (args == NULL)
- goto error1;
-
- PyObject *result = PyObject_CallObject(apply_markup, args);
- if (result == NULL) {
- Py_DECREF(args);
- error1:
- Py_DECREF(apply_markup);
- error0:
- return false;
- }
-
- Py_DECREF(result);
- Py_DECREF(args);
- Py_DECREF(apply_markup);
- return true;
-}
-
-static bool next_YY_INPUT_chunk(lex_yylexObject *self) {
- /*printf("next_YY_INPUT_chunk()\n");*/
- /* cursor is not cached, since we'd have to re-cache every time we enter */
- /* iterator, whereas we are only supposed to read new chunks occasionally */
- Py_ssize_t pos, off, len;
- if (!get_cursor(self, -1, &pos, &off))
- goto error0;
-
- PyObject *tail;
- while (true) {
- /* re-check the length, as tail could have got longer in the meantime */
- tail = PyObject_CallMethod(work, "get_tail", "On", self->root, pos);
- if (tail == NULL)
- goto error0;
- len = PyObject_Length(tail);
- if (len < 0)
- goto error1;
-
- /* see if now need to do more data from the same chunk */
- if (off < len)
- break;
- Py_DECREF(tail);
-
- /* if last chunk try to extend it, otherwise go on to next */
- Py_ssize_t root_len = PyObject_Length(self->root);
- if (root_len < 0)
- goto error0;
- if (pos + 1 >= root_len) {
- if (self->yychunk_iter != Py_None){
- PyObject *result = PyObject_CallMethod(self->yychunk_iter, "__next__", "");
- if (result != NULL) {
- Py_DECREF(result);
- continue; /* re-check current chunk, in case extended */
- }
- if (!PyErr_ExceptionMatches(PyExc_StopIteration))
- goto error0;
- PyErr_Clear();
- }
-
- /* it is not an error to run out of data, empty return indicates EOF */
- Py_INCREF(Py_None);
- Py_DECREF(self->YY_INPUT_bytes);
- self->YY_INPUT_bytes = Py_None;
- self->YY_INPUT_bytes_off = 0;
- self->YY_INPUT_bytes_len = 0;
- return true;
- }
- ++pos;
- off = 0;
- }
-
- /* got something we can return, advance cursor by unicode length of data */
- if (!set_cursor(self, -1, pos, off + len))
- goto error1;
-
- /* check for less efficient case when caller has appended to the chunk, */
- /* requires a large copy that caller can avoid by only adding new chunks */
- if (off >= 0) {
- PyObject *index = PyLong_FromSsize_t(off);
- if (index == NULL)
- goto error1;
- PyObject *slice = PySlice_New(index, NULL, NULL);
- if (slice == NULL)
- goto error2;
- PyObject *item = PyObject_GetItem(tail, slice);
- if (item == NULL) {
- Py_DECREF(slice);
- error2:
- Py_DECREF(index);
- goto error1;
- }
- Py_DECREF(tail);
- tail = item;
- Py_DECREF(slice);
- Py_DECREF(index);
- }
-
- /* convert entire chunk to UTF-8, then use for multiple YY_INPUT() calls */
- PyObject *bytes = PyUnicode_AsUTF8String(tail);
- if (bytes == NULL)
- goto error1;
- len = PyObject_Length(bytes);
- if (len < 0) {
- Py_DECREF(bytes);
- error1:
- Py_DECREF(tail);
- error0:
- return false;
- }
- Py_DECREF(self->YY_INPUT_bytes);
- self->YY_INPUT_bytes = bytes;
- self->YY_INPUT_bytes_off = 0;
- self->YY_INPUT_bytes_len = len;
-
- Py_DECREF(tail);
- return true;
-}
-
-static bool next_yytext_chunk(lex_yylexObject *self) {
- while (true) {
- /* re-cache the length, as tail could have got longer in the meantime */
- PyObject *tail = PyObject_CallMethod(work, "get_tail", "On", self->root, yytext_pos);
- if (tail == NULL)
- goto error0;
- yytext_len = PyObject_Length(tail);
- if (yytext_len < 0) {
- Py_DECREF(tail);
- error0:
- return false;
- }
- Py_DECREF(tail);
-
- /* see if now need to do more data from the same chunk */
- if (yytext_off < yytext_len)
- break;
-
- /* go on to next chunk (note: it can't go past YY_INPUT cursor) */
- ++yytext_pos;
- yytext_off = 0;
- }
- return true;
-}
-
-#define skip_yytext_byte(self, c) \
- do { \
- if ((c & 0xc0) != 0x80) { \
- /*printf("'%c' %ld %ld\n", c, yytext_off, yytext_len);*/ \
- if (yytext_off >= yytext_len && !next_yytext_chunk(self)) \
- return false; \
- ++yytext_off; \
- } \
- } while (0)
-
-static bool skip_yytext(lex_yylexObject *self) {
- int c;
- for (char *p = yytext; (c = *p) != 0; ++p)
- skip_yytext_byte(self, c);
- return true;
-}
-
-static bool skip_comment(lex_yylexObject *self) {
- int c;
- while ((c = input()) != 0) {
- if (c == '*') {
- skip_yytext_byte(self, '*');
- while ((c = input()) == '*')
- skip_yytext_byte(self, '*');
-
- if (c == '/') {
- skip_yytext_byte(self, '/');
- return true;
- }
-
- if (c == 0)
- break;
- }
- skip_yytext_byte(self, c);
- }
- yyerror("unterminated comment");
- return true;
-}
-
-static PyObject *lex_yylex_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) {
- lex_yylexObject *self;
-
- self = (lex_yylexObject *)type->tp_alloc(type, 0);
- Py_INCREF(Py_None);
- self->root = Py_None;
- Py_INCREF(Py_None);
- self->mark = Py_None;
- Py_INCREF(Py_None);
- self->yychunk_iter = Py_None;
- Py_INCREF(Py_None);
- self->YY_INPUT_bytes = Py_None;
- return (PyObject *)self;
-}
-
-static void lex_yylex_dealloc(lex_yylexObject *self) {
- Py_DECREF(self->root);
- Py_DECREF(self->mark);
- Py_DECREF(self->yychunk_iter);
- Py_DECREF(self->YY_INPUT_bytes);
- Py_TYPE(self)->tp_free((PyObject *)self);
-}
-
-static int lex_yylex_init(lex_yylexObject *self, PyObject *args, PyObject *kwargs) {
- PyObject *root, *mark, *yychunk_iter = Py_None;
- if (!PyArg_ParseTuple(args, "OO|O", &root, &mark, &yychunk_iter))
- goto error0;
-
- Py_INCREF(root);
- Py_DECREF(self->root);
- self->root = root;
-
- Py_INCREF(mark);
- Py_DECREF(self->mark);
- self->mark = mark;
-
- if (yychunk_iter == Py_None)
- Py_INCREF(Py_None);
- else {
- yychunk_iter = PyObject_GetIter(yychunk_iter);
- if (yychunk_iter == NULL)
- goto error1;
- }
- Py_DECREF(self->yychunk_iter);
- self->yychunk_iter = yychunk_iter;
-
- /* mark[:] = [(-1, 0), (-1, 0)] */
- /* the first is the yytext cursor, it will be advanced one unicode code */
- /* point for each UTF-8 non-continuation character scanned in yytext; */
- /* the second is the YY_INPUT cursor, it will be advanced by the chunk */
- /* length in unicode code points each time we convert a chunk to UTF-8; */
- /* each cursor consists of (pos, off) referring to root[pos].tail[off:], */
- /* chunks accessed using work.get_tail(), so pos == -1 for root[pos].text */
- if (!pop_cursors(self, 0) || !new_cursor(self, 0, -1, 0) || !new_cursor(self, 1, -1, 0)) {
- error1:
- /* don't keep useless references to user data structures after error */
- Py_INCREF(Py_None);
- Py_DECREF(self->root);
- self->root = Py_None;
- Py_INCREF(Py_None);
- Py_DECREF(self->mark);
- self->mark = Py_None;
- Py_INCREF(Py_None);
- Py_DECREF(self->yychunk_iter);
- self->yychunk_iter = Py_None;
- error0:
- return -1;
- }
-
- Py_INCREF(Py_None);
- Py_DECREF(self->YY_INPUT_bytes);
- self->YY_INPUT_bytes = Py_None;
- self->YY_INPUT_bytes_off = 0;
- self->YY_INPUT_bytes_len = 0;
-
- return 0;
-}
-
-static PyObject *lex_yylex_iter(PyObject *self) {
- Py_INCREF(self);
- return self;
-}
-
-static PyObject *lex_yylex_iternext(lex_yylexObject *self) {
- /*printf("lex_yylex_iternext()\n");*/
- if (self->root == Py_None || self->mark == Py_None) {
- PyErr_SetNone(PyExc_StopIteration);
- goto error0;
- }
-
- /* cache yytext_pos, yytext_off, yytext_len for quickly scanning yytext */
- if (!get_cursor(self, -2, &yytext_pos, &yytext_off))
- goto error1;
- PyObject *tail = PyObject_CallMethod(work, "get_tail", "On", self->root, yytext_pos);
- if (tail == NULL)
- goto error1;
- yytext_len = PyObject_Length(tail);
- if (yytext_len < 0) {
- Py_DECREF(tail);
- goto error1;
- }
- Py_DECREF(tail);
-
- yylex_self = self;
- if (setjmp(yylex_abort))
- goto error1;
-
- (void)yyunput; /* fix defined but not used warning */
- int token = yylex();
- if (token == -1)
- goto error1;
-
- if (token == 0) {
- /* finished, automatically delete YY_INPUT cursor and drop references */
- if (!pop_cursors(self, -1)) {
- error1:
- /* don't keep useless references to user data structures after error */
- Py_INCREF(Py_None);
- Py_DECREF(self->root);
- self->root = Py_None;
- Py_INCREF(Py_None);
- Py_DECREF(self->mark);
- self->mark = Py_None;
- Py_INCREF(Py_None);
- Py_DECREF(self->yychunk_iter);
- self->yychunk_iter = Py_None;
- error0:
- return NULL;
- }
- /* don't keep useless references to user data structures after EOF */
- Py_INCREF(Py_None);
- Py_DECREF(self->root);
- self->root = Py_None;
- Py_INCREF(Py_None);
- Py_DECREF(self->mark);
- self->mark = Py_None;
- Py_INCREF(Py_None);
- Py_DECREF(self->yychunk_iter);
- self->yychunk_iter = Py_None;
- }
-
- /*printf("lex_yylex_iternext() returns %d\n", token);*/
- return PyLong_FromLong((long)token);
-}
-
-static int lex_yylex_traverse(lex_yylexObject *self, visitproc visit, void *arg)
-{
- Py_VISIT(self->root);
- Py_VISIT(self->mark);
- Py_VISIT(self->yychunk_iter);
- Py_VISIT(self->YY_INPUT_bytes);
- return 0;
-}
-
-static int lex_yylex_clear(lex_yylexObject *self)
-{
- Py_CLEAR(self->root);
- Py_CLEAR(self->mark);
- Py_CLEAR(self->yychunk_iter);
- Py_CLEAR(self->YY_INPUT_bytes);
- return 0;
-}
-
-static PyMemberDef lex_yylex_members[] = {
- {
- "root",
- T_OBJECT_EX,
- offsetof(lex_yylexObject,
- root),
- 0,
- "root element, stack of sub-elements (treated as characters) and text"
- },
- {
- "mark",
- T_OBJECT_EX,
- offsetof(lex_yylexObject,
- mark),
- 0,
- "list containing cursors, -2 current position, -1 next read position"
- },
- {
- "yychunk_iter",
- T_OBJECT_EX,
- offsetof(lex_yylexObject,
- yychunk_iter),
- 0,
- "iterator for new input chunks (or None)"
- },
- {
- "YY_INPUT_bytes",
- T_OBJECT_EX,
- offsetof(lex_yylexObject,
- YY_INPUT_bytes),
- 0,
- "UTF-8 encoding of current chunk to scan"
- },
- {
- "YY_INPUT_bytes_off",
- T_PYSSIZET,
- offsetof(lex_yylexObject,
- YY_INPUT_bytes_off),
- 0,
- "current offset in UTF-8 text"
- },
- {
- "YY_INPUT_bytes_len",
- T_PYSSIZET,
- offsetof(lex_yylexObject,
- YY_INPUT_bytes_len),
- 0,
- "maximum offset in UTF-8 text (inclusive)"
- },
- {}
-};
-
-static PyTypeObject lex_yylexType = {
- PyVarObject_HEAD_INIT(NULL, 0)
- "lex.yylex", /* tp_name */
- sizeof(lex_yylexObject), /* tp_basicsize */
- 0, /* tp_itemsize */
- (destructor)lex_yylex_dealloc, /* tp_dealloc */
- 0, /* tp_print */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_reserved */
- 0, /* tp_repr */
- 0, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- 0, /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /* tp_flags */
- "Lexical token iterator", /* tp_doc */
- (traverseproc)lex_yylex_traverse, /* tp_traverse */
- (inquiry)lex_yylex_clear, /* tp_clear */
- 0, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- (getiterfunc)lex_yylex_iter, /* tp_iter */
- (iternextfunc)lex_yylex_iternext, /* tp_iternext */
- 0, /* tp_methods */
- lex_yylex_members, /* tp_members */
- 0, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- (initproc)lex_yylex_init, /* tp_init */
- 0, /* tp_alloc */
- lex_yylex_new /* tp_new */
-};
-
-static int lex_traverse(PyObject *self, visitproc visit, void *arg)
-{
- Py_VISIT(work);
- Py_VISIT(work_factory);
- return 0;
-}
-
-static int lex_clear(PyObject *self)
-{
- Py_CLEAR(work);
- Py_CLEAR(work_factory);
- return 0;
-}
-
-static struct PyModuleDef lexmodule = {
- PyModuleDef_HEAD_INIT,
- "lex",
- lex_doc_string,
- -1,
- NULL,
- NULL,
- lex_traverse,
- lex_clear
-};
-
-PyMODINIT_FUNC PyInit_lex(void)
-{
- if (work != NULL) {
- PyErr_SetString(
- PyExc_RuntimeError,
- "lex module cannot be re-imported or sub-interpreted\n"
- );
- goto error0;
- }
-
- PyObject *module = PyModule_Create(&lexmodule);
- if (module == NULL)
- goto error0;
-
- if (
- PyType_Ready(&lex_yylexType) ||
- PyModule_AddObject(module, "yylex", (PyObject *)&lex_yylexType)
- )
- goto error1;
- Py_INCREF(&lex_yylexType);
-
- work = PyImport_ImportModule("work");
- if (work == NULL)
- goto error1;
- work_factory = PyObject_GetAttrString(work, "factory");
- if (work_factory == NULL) {
- Py_DECREF(work);
- work = NULL;
- error1:
- Py_DECREF(module);
- error0:
- return NULL;
- }
-
- return module;
-}
+++ /dev/null
-<root>
- <RegexAnd ref="0"><RegexRepeat count0="-1" count1="-1" non_greedy="false"><RegexCharacterNot character_set="0 256"><RegexCharacter character_set="" /></RegexCharacterNot></RegexRepeat><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexOr><RegexNone /><RegexGroup group_attributes="" group_index="0" group_name="">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="47 48">/</RegexCharacter></RegexSequence><RegexCharacter character_set="42 43">*</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="1" group_name=""><RegexSequence>"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="47 48">/</RegexCharacter></RegexSequence><RegexCharacter character_set="47 48">/</RegexCharacter></RegexSequence>"<RegexRepeat count0="0" count1="-1" non_greedy="false"><RegexCharacter character_set="0 10 11 256">.</RegexCharacter>*</RegexRepeat></RegexSequence></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="2" group_name="AUTO">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="3" group_name="BREAK">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="98 99">b</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="107 108">k</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="4" group_name="CASE">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="5" group_name="CHAR">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="104 105">h</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="6" group_name="CONST">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="7" group_name="CONTINUE">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="8" group_name="DEFAULT">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="100 101">d</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="102 103">f</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="9" group_name="DO">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="100 101">d</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="10" group_name="DOUBLE">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="100 101">d</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="98 99">b</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="11" group_name="ELSE">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="12" group_name="ENUM">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="109 110">m</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="13" group_name="EXTERN">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="120 121">x</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="14" group_name="FLOAT">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="102 103">f</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="15" group_name="FOR">"<RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="102 103">f</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="16" group_name="GOTO">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="103 104">g</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="17" group_name="IF">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="102 103">f</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="18" group_name="INLINE">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="19" group_name="INT">"<RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="20" group_name="LONG">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="103 104">g</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="21" group_name="REGISTER">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="103 104">g</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="22" group_name="RESTRICT">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="23" group_name="RETURN">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="24" group_name="SHORT">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="104 105">h</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="25" group_name="SIGNED">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="103 104">g</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="100 101">d</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="26" group_name="SIZEOF">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="122 123">z</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="102 103">f</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="27" group_name="STATIC">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="28" group_name="STRUCT">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="29" group_name="SWITCH">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="119 120">w</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="104 105">h</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="30" group_name="TYPEDEF">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="121 122">y</RegexCharacter></RegexSequence><RegexCharacter character_set="112 113">p</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="100 101">d</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="102 103">f</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="31" group_name="UNION">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="32" group_name="UNSIGNED">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="103 104">g</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="100 101">d</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="33" group_name="VOID">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="118 119">v</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="100 101">d</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="34" group_name="VOLATILE">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="118 119">v</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="35" group_name="WHILE">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="119 120">w</RegexCharacter></RegexSequence><RegexCharacter character_set="104 105">h</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="36" group_name="ALIGNAS">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="65 66">A</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="103 104">g</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="37" group_name="ALIGNOF">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="65 66">A</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="103 104">g</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="102 103">f</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="38" group_name="ATOMIC">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="65 66">A</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="109 110">m</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="39" group_name="BOOL">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="66 67">B</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="40" group_name="COMPLEX">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="67 68">C</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="109 110">m</RegexCharacter></RegexSequence><RegexCharacter character_set="112 113">p</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="120 121">x</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="41" group_name="GENERIC">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="71 72">G</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="42" group_name="IMAGINARY">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="73 74">I</RegexCharacter></RegexSequence><RegexCharacter character_set="109 110">m</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="103 104">g</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="121 122">y</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="43" group_name="NORETURN">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="78 79">N</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="44" group_name="STATIC_ASSERT">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="83 84">S</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="45" group_name="THREAD_LOCAL">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="84 85">T</RegexCharacter></RegexSequence><RegexCharacter character_set="104 105">h</RegexCharacter></RegexSequence><RegexCharacter character_set="114 115">r</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="100 101">d</RegexCharacter></RegexSequence><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="46" group_name="FUNC_NAME">"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="102 103">f</RegexCharacter></RegexSequence><RegexCharacter character_set="117 118">u</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="47" group_name="TYPEDEF_NAME"><RegexOr><RegexOr>"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="98 99">b</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="111 112">o</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence>"|"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="99 100">c</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="110 111">n</RegexCharacter></RegexSequence><RegexCharacter character_set="102 103">f</RegexCharacter></RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence><RegexCharacter character_set="97 98">a</RegexCharacter></RegexSequence><RegexCharacter character_set="103 104">g</RegexCharacter></RegexSequence><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence>"</RegexOr>|"<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="115 116">s</RegexCharacter></RegexSequence><RegexCharacter character_set="105 106">i</RegexCharacter></RegexSequence><RegexCharacter character_set="122 123">z</RegexCharacter></RegexSequence><RegexCharacter character_set="101 102">e</RegexCharacter></RegexSequence><RegexCharacter character_set="95 96">_</RegexCharacter></RegexSequence><RegexCharacter character_set="116 117">t</RegexCharacter></RegexSequence>"</RegexOr></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="48" group_name="IDENTIFIER"><RegexGroup group_attributes="" group_index="49" group_name="Identifier">(?<RegexSequence><RegexGroup group_attributes="" group_index="50" group_name="">([<RegexCharacterOr character_set="65 91 95 96 97 123"><RegexCharacterOr character_set="65 91 97 123"><RegexCharacterOr character_set="97 123"><RegexCharacter character_set="" /><RegexCharacterRange character_set="97 123"><RegexCharacter character_set="97 98">a</RegexCharacter>-<RegexCharacter character_set="122 123">z</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="65 91"><RegexCharacter character_set="65 66">A</RegexCharacter>-<RegexCharacter character_set="90 91">Z</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacter character_set="95 96">_</RegexCharacter></RegexCharacterOr>])</RegexGroup><RegexRepeat count0="0" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="51" group_name="">([<RegexCharacterOr character_set="48 58 65 91 95 96 97 123"><RegexCharacterOr character_set="65 91 95 96 97 123"><RegexCharacterOr character_set="65 91 97 123"><RegexCharacterOr character_set="97 123"><RegexCharacter character_set="" /><RegexCharacterRange character_set="97 123"><RegexCharacter character_set="97 98">a</RegexCharacter>-<RegexCharacter character_set="122 123">z</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="65 91"><RegexCharacter character_set="65 66">A</RegexCharacter>-<RegexCharacter character_set="90 91">Z</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacter character_set="95 96">_</RegexCharacter></RegexCharacterOr><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>*</RegexRepeat></RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="52" group_name="I_CONSTANT"><RegexGroup group_attributes="" group_index="53" group_name="ExpressionIntLiteral">(?<RegexSequence><RegexSequence><RegexGroup group_attributes="" group_index="54" group_name="">(<RegexGroup group_attributes="" group_index="55" group_name="">(<RegexSequence><RegexCharacter character_set="48 49">0</RegexCharacter>[<RegexCharacterOr character_set="88 89 120 121"><RegexCharacterOr character_set="120 121"><RegexCharacter character_set="" /><RegexCharacter character_set="120 121">x</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="88 89">X</RegexCharacter></RegexCharacterOr>]</RegexSequence>)</RegexGroup>)</RegexGroup><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="56" group_name="">([<RegexCharacterOr character_set="48 58 65 71 97 103"><RegexCharacterOr character_set="65 71 97 103"><RegexCharacterOr character_set="97 103"><RegexCharacter character_set="" /><RegexCharacterRange character_set="97 103"><RegexCharacter character_set="97 98">a</RegexCharacter>-<RegexCharacter character_set="102 103">f</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="65 71"><RegexCharacter character_set="65 66">A</RegexCharacter>-<RegexCharacter character_set="70 71">F</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="57" group_name="">(<RegexGroup group_attributes="" group_index="58" group_name="">(<RegexOr><RegexGroup group_attributes="" group_index="59" group_name="">(<RegexSequence><RegexGroup group_attributes="" group_index="60" group_name="">(<RegexOr><RegexCharacter character_set="117 118">u</RegexCharacter>|<RegexCharacter character_set="85 86">U</RegexCharacter></RegexOr>)</RegexGroup><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="61" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="108 109">l</RegexCharacter>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>|<RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence></RegexOr>|<RegexSequence><RegexCharacter character_set="76 77">L</RegexCharacter><RegexCharacter character_set="76 77">L</RegexCharacter></RegexSequence></RegexOr>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup>|<RegexGroup group_attributes="" group_index="62" group_name="">(<RegexSequence><RegexGroup group_attributes="" group_index="63" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="108 109">l</RegexCharacter>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>|<RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence></RegexOr>|<RegexSequence><RegexCharacter character_set="76 77">L</RegexCharacter><RegexCharacter character_set="76 77">L</RegexCharacter></RegexSequence></RegexOr>)</RegexGroup><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="64" group_name="">(<RegexOr><RegexCharacter character_set="117 118">u</RegexCharacter>|<RegexCharacter character_set="85 86">U</RegexCharacter></RegexOr>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="65" group_name="I_CONSTANT"><RegexGroup group_attributes="" group_index="66" group_name="ExpressionIntLiteral">(?<RegexSequence><RegexSequence><RegexGroup group_attributes="" group_index="67" group_name="">([<RegexCharacterOr character_set="49 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="49 58"><RegexCharacter character_set="49 50">1</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup><RegexRepeat count0="0" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="68" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>*</RegexRepeat></RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="69" group_name="">(<RegexGroup group_attributes="" group_index="70" group_name="">(<RegexOr><RegexGroup group_attributes="" group_index="71" group_name="">(<RegexSequence><RegexGroup group_attributes="" group_index="72" group_name="">(<RegexOr><RegexCharacter character_set="117 118">u</RegexCharacter>|<RegexCharacter character_set="85 86">U</RegexCharacter></RegexOr>)</RegexGroup><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="73" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="108 109">l</RegexCharacter>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>|<RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence></RegexOr>|<RegexSequence><RegexCharacter character_set="76 77">L</RegexCharacter><RegexCharacter character_set="76 77">L</RegexCharacter></RegexSequence></RegexOr>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup>|<RegexGroup group_attributes="" group_index="74" group_name="">(<RegexSequence><RegexGroup group_attributes="" group_index="75" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="108 109">l</RegexCharacter>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>|<RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence></RegexOr>|<RegexSequence><RegexCharacter character_set="76 77">L</RegexCharacter><RegexCharacter character_set="76 77">L</RegexCharacter></RegexSequence></RegexOr>)</RegexGroup><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="76" group_name="">(<RegexOr><RegexCharacter character_set="117 118">u</RegexCharacter>|<RegexCharacter character_set="85 86">U</RegexCharacter></RegexOr>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="77" group_name="I_CONSTANT"><RegexGroup group_attributes="" group_index="78" group_name="ExpressionIntLiteral">(?<RegexSequence><RegexSequence>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="48 49">0</RegexCharacter></RegexSequence>"<RegexRepeat count0="0" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="79" group_name="">([<RegexCharacterOr character_set="48 56"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 56"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="55 56">7</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>*</RegexRepeat></RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="80" group_name="">(<RegexGroup group_attributes="" group_index="81" group_name="">(<RegexOr><RegexGroup group_attributes="" group_index="82" group_name="">(<RegexSequence><RegexGroup group_attributes="" group_index="83" group_name="">(<RegexOr><RegexCharacter character_set="117 118">u</RegexCharacter>|<RegexCharacter character_set="85 86">U</RegexCharacter></RegexOr>)</RegexGroup><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="84" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="108 109">l</RegexCharacter>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>|<RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence></RegexOr>|<RegexSequence><RegexCharacter character_set="76 77">L</RegexCharacter><RegexCharacter character_set="76 77">L</RegexCharacter></RegexSequence></RegexOr>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup>|<RegexGroup group_attributes="" group_index="85" group_name="">(<RegexSequence><RegexGroup group_attributes="" group_index="86" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="108 109">l</RegexCharacter>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>|<RegexSequence><RegexCharacter character_set="108 109">l</RegexCharacter><RegexCharacter character_set="108 109">l</RegexCharacter></RegexSequence></RegexOr>|<RegexSequence><RegexCharacter character_set="76 77">L</RegexCharacter><RegexCharacter character_set="76 77">L</RegexCharacter></RegexSequence></RegexOr>)</RegexGroup><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="87" group_name="">(<RegexOr><RegexCharacter character_set="117 118">u</RegexCharacter>|<RegexCharacter character_set="85 86">U</RegexCharacter></RegexOr>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="88" group_name="I_CONSTANT"><RegexGroup group_attributes="" group_index="89" group_name="ExpressionCharConstant">(?<RegexSequence><RegexSequence><RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="90" group_name="">(<RegexGroup group_attributes="" group_index="91" group_name="">(<RegexOr><RegexOr><RegexCharacter character_set="117 118">u</RegexCharacter>|<RegexCharacter character_set="85 86">U</RegexCharacter></RegexOr>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="39 40">'</RegexCharacter></RegexSequence>"</RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="92" group_name="">(<RegexOr>[<RegexCharacterNot character_set="0 10 11 39 40 92 93 256">^<RegexCharacterOr character_set="10 11 39 40 92 93"><RegexCharacterOr character_set="39 40 92 93"><RegexCharacterOr character_set="39 40"><RegexCharacter character_set="" /><RegexCharacter character_set="39 40">'</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="92 93">\\</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="10 11">\n</RegexCharacter></RegexCharacterOr></RegexCharacterNot>]|<RegexGroup group_attributes="" group_index="93" group_name="">(<RegexGroup group_attributes="" group_index="94" group_name="">(<RegexSequence><RegexCharacter character_set="92 93">\\</RegexCharacter><RegexGroup group_attributes="" group_index="95" group_name="">(<RegexOr><RegexOr>[<RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99 102 103 110 111 114 115 116 117 118 119"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99 102 103 110 111 114 115 116 117"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99 102 103 110 111 114 115"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99 102 103 110 111"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99 102 103"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 98"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93"><RegexCharacterOr character_set="34 35 39 40 63 64"><RegexCharacterOr character_set="34 35 39 40"><RegexCharacterOr character_set="39 40"><RegexCharacter character_set="" /><RegexCharacter character_set="39 40">'</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="34 35">"</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="63 64">\?</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="92 93">\\</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="97 98">a</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="98 99">b</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="102 103">f</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="110 111">n</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="114 115">r</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="116 117">t</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="118 119">v</RegexCharacter></RegexCharacterOr>]|<RegexRepeat count0="1" count1="3" non_greedy="false">[<RegexCharacterOr character_set="48 56"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 56"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="55 56">7</RegexCharacter></RegexCharacterRange></RegexCharacterOr>]{</RegexRepeat></RegexOr>|<RegexSequence><RegexCharacter character_set="120 121">x</RegexCharacter><RegexRepeat count0="1" count1="-1" non_greedy="false">[<RegexCharacterOr character_set="48 58 65 71 97 103"><RegexCharacterOr character_set="65 71 97 103"><RegexCharacterOr character_set="97 103"><RegexCharacter character_set="" /><RegexCharacterRange character_set="97 103"><RegexCharacter character_set="97 98">a</RegexCharacter>-<RegexCharacter character_set="102 103">f</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="65 71"><RegexCharacter character_set="65 66">A</RegexCharacter>-<RegexCharacter character_set="70 71">F</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>]+</RegexRepeat></RegexSequence></RegexOr>)</RegexGroup></RegexSequence>)</RegexGroup>)</RegexGroup></RegexOr>)</RegexGroup>+</RegexRepeat></RegexSequence>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="39 40">'</RegexCharacter></RegexSequence>"</RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="96" group_name="F_CONSTANT"><RegexGroup group_attributes="" group_index="97" group_name="ExpressionFloatLiteral">(?<RegexSequence><RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="98" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat><RegexGroup group_attributes="" group_index="99" group_name="">(<RegexGroup group_attributes="" group_index="100" group_name="">(<RegexSequence><RegexSequence>[<RegexCharacterOr character_set="69 70 101 102"><RegexCharacterOr character_set="69 70"><RegexCharacter character_set="" /><RegexCharacter character_set="69 70">E</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="101 102">e</RegexCharacter></RegexCharacterOr>]<RegexRepeat count0="0" count1="1" non_greedy="false">[<RegexCharacterOr character_set="43 44 45 46"><RegexCharacterOr character_set="43 44"><RegexCharacter character_set="" /><RegexCharacter character_set="43 44">+</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="45 46">-</RegexCharacter></RegexCharacterOr>]?</RegexRepeat></RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="101" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence>)</RegexGroup>)</RegexGroup></RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="102" group_name="">(<RegexGroup group_attributes="" group_index="103" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="102 103">f</RegexCharacter>|<RegexCharacter character_set="70 71">F</RegexCharacter></RegexOr>|<RegexCharacter character_set="108 109">l</RegexCharacter></RegexOr>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="104" group_name="F_CONSTANT"><RegexGroup group_attributes="" group_index="105" group_name="ExpressionFloatLiteral">(?<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexRepeat count0="0" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="106" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>*</RegexRepeat>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="46 47">.</RegexCharacter></RegexSequence>"</RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="107" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="108" group_name="">(<RegexGroup group_attributes="" group_index="109" group_name="">(<RegexSequence><RegexSequence>[<RegexCharacterOr character_set="69 70 101 102"><RegexCharacterOr character_set="69 70"><RegexCharacter character_set="" /><RegexCharacter character_set="69 70">E</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="101 102">e</RegexCharacter></RegexCharacterOr>]<RegexRepeat count0="0" count1="1" non_greedy="false">[<RegexCharacterOr character_set="43 44 45 46"><RegexCharacterOr character_set="43 44"><RegexCharacter character_set="" /><RegexCharacter character_set="43 44">+</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="45 46">-</RegexCharacter></RegexCharacterOr>]?</RegexRepeat></RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="110" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="111" group_name="">(<RegexGroup group_attributes="" group_index="112" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="102 103">f</RegexCharacter>|<RegexCharacter character_set="70 71">F</RegexCharacter></RegexOr>|<RegexCharacter character_set="108 109">l</RegexCharacter></RegexOr>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="113" group_name="F_CONSTANT"><RegexGroup group_attributes="" group_index="114" group_name="ExpressionFloatLiteral">(?<RegexSequence><RegexSequence><RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="115" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="46 47">.</RegexCharacter></RegexSequence>"</RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="116" group_name="">(<RegexGroup group_attributes="" group_index="117" group_name="">(<RegexSequence><RegexSequence>[<RegexCharacterOr character_set="69 70 101 102"><RegexCharacterOr character_set="69 70"><RegexCharacter character_set="" /><RegexCharacter character_set="69 70">E</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="101 102">e</RegexCharacter></RegexCharacterOr>]<RegexRepeat count0="0" count1="1" non_greedy="false">[<RegexCharacterOr character_set="43 44 45 46"><RegexCharacterOr character_set="43 44"><RegexCharacter character_set="" /><RegexCharacter character_set="43 44">+</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="45 46">-</RegexCharacter></RegexCharacterOr>]?</RegexRepeat></RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="118" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="119" group_name="">(<RegexGroup group_attributes="" group_index="120" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="102 103">f</RegexCharacter>|<RegexCharacter character_set="70 71">F</RegexCharacter></RegexOr>|<RegexCharacter character_set="108 109">l</RegexCharacter></RegexOr>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="121" group_name="F_CONSTANT"><RegexGroup group_attributes="" group_index="122" group_name="ExpressionFloatLiteral">(?<RegexSequence><RegexSequence><RegexSequence><RegexGroup group_attributes="" group_index="123" group_name="">(<RegexGroup group_attributes="" group_index="124" group_name="">(<RegexSequence><RegexCharacter character_set="48 49">0</RegexCharacter>[<RegexCharacterOr character_set="88 89 120 121"><RegexCharacterOr character_set="120 121"><RegexCharacter character_set="" /><RegexCharacter character_set="120 121">x</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="88 89">X</RegexCharacter></RegexCharacterOr>]</RegexSequence>)</RegexGroup>)</RegexGroup><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="125" group_name="">([<RegexCharacterOr character_set="48 58 65 71 97 103"><RegexCharacterOr character_set="65 71 97 103"><RegexCharacterOr character_set="97 103"><RegexCharacter character_set="" /><RegexCharacterRange character_set="97 103"><RegexCharacter character_set="97 98">a</RegexCharacter>-<RegexCharacter character_set="102 103">f</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="65 71"><RegexCharacter character_set="65 66">A</RegexCharacter>-<RegexCharacter character_set="70 71">F</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence><RegexGroup group_attributes="" group_index="126" group_name="">(<RegexGroup group_attributes="" group_index="127" group_name="">(<RegexSequence><RegexSequence>[<RegexCharacterOr character_set="80 81 112 113"><RegexCharacterOr character_set="80 81"><RegexCharacter character_set="" /><RegexCharacter character_set="80 81">P</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="112 113">p</RegexCharacter></RegexCharacterOr>]<RegexRepeat count0="0" count1="1" non_greedy="false">[<RegexCharacterOr character_set="43 44 45 46"><RegexCharacterOr character_set="43 44"><RegexCharacter character_set="" /><RegexCharacter character_set="43 44">+</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="45 46">-</RegexCharacter></RegexCharacterOr>]?</RegexRepeat></RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="128" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence>)</RegexGroup>)</RegexGroup></RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="129" group_name="">(<RegexGroup group_attributes="" group_index="130" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="102 103">f</RegexCharacter>|<RegexCharacter character_set="70 71">F</RegexCharacter></RegexOr>|<RegexCharacter character_set="108 109">l</RegexCharacter></RegexOr>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="131" group_name="F_CONSTANT"><RegexGroup group_attributes="" group_index="132" group_name="ExpressionFloatLiteral">(?<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexGroup group_attributes="" group_index="133" group_name="">(<RegexGroup group_attributes="" group_index="134" group_name="">(<RegexSequence><RegexCharacter character_set="48 49">0</RegexCharacter>[<RegexCharacterOr character_set="88 89 120 121"><RegexCharacterOr character_set="120 121"><RegexCharacter character_set="" /><RegexCharacter character_set="120 121">x</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="88 89">X</RegexCharacter></RegexCharacterOr>]</RegexSequence>)</RegexGroup>)</RegexGroup><RegexRepeat count0="0" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="135" group_name="">([<RegexCharacterOr character_set="48 58 65 71 97 103"><RegexCharacterOr character_set="65 71 97 103"><RegexCharacterOr character_set="97 103"><RegexCharacter character_set="" /><RegexCharacterRange character_set="97 103"><RegexCharacter character_set="97 98">a</RegexCharacter>-<RegexCharacter character_set="102 103">f</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="65 71"><RegexCharacter character_set="65 66">A</RegexCharacter>-<RegexCharacter character_set="70 71">F</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>*</RegexRepeat></RegexSequence>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="46 47">.</RegexCharacter></RegexSequence>"</RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="136" group_name="">([<RegexCharacterOr character_set="48 58 65 71 97 103"><RegexCharacterOr character_set="65 71 97 103"><RegexCharacterOr character_set="97 103"><RegexCharacter character_set="" /><RegexCharacterRange character_set="97 103"><RegexCharacter character_set="97 98">a</RegexCharacter>-<RegexCharacter character_set="102 103">f</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="65 71"><RegexCharacter character_set="65 66">A</RegexCharacter>-<RegexCharacter character_set="70 71">F</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence><RegexGroup group_attributes="" group_index="137" group_name="">(<RegexGroup group_attributes="" group_index="138" group_name="">(<RegexSequence><RegexSequence>[<RegexCharacterOr character_set="80 81 112 113"><RegexCharacterOr character_set="80 81"><RegexCharacter character_set="" /><RegexCharacter character_set="80 81">P</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="112 113">p</RegexCharacter></RegexCharacterOr>]<RegexRepeat count0="0" count1="1" non_greedy="false">[<RegexCharacterOr character_set="43 44 45 46"><RegexCharacterOr character_set="43 44"><RegexCharacter character_set="" /><RegexCharacter character_set="43 44">+</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="45 46">-</RegexCharacter></RegexCharacterOr>]?</RegexRepeat></RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="139" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence>)</RegexGroup>)</RegexGroup></RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="140" group_name="">(<RegexGroup group_attributes="" group_index="141" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="102 103">f</RegexCharacter>|<RegexCharacter character_set="70 71">F</RegexCharacter></RegexOr>|<RegexCharacter character_set="108 109">l</RegexCharacter></RegexOr>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="142" group_name="F_CONSTANT"><RegexGroup group_attributes="" group_index="143" group_name="ExpressionFloatLiteral">(?<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexGroup group_attributes="" group_index="144" group_name="">(<RegexGroup group_attributes="" group_index="145" group_name="">(<RegexSequence><RegexCharacter character_set="48 49">0</RegexCharacter>[<RegexCharacterOr character_set="88 89 120 121"><RegexCharacterOr character_set="120 121"><RegexCharacter character_set="" /><RegexCharacter character_set="120 121">x</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="88 89">X</RegexCharacter></RegexCharacterOr>]</RegexSequence>)</RegexGroup>)</RegexGroup><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="146" group_name="">([<RegexCharacterOr character_set="48 58 65 71 97 103"><RegexCharacterOr character_set="65 71 97 103"><RegexCharacterOr character_set="97 103"><RegexCharacter character_set="" /><RegexCharacterRange character_set="97 103"><RegexCharacter character_set="97 98">a</RegexCharacter>-<RegexCharacter character_set="102 103">f</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="65 71"><RegexCharacter character_set="65 66">A</RegexCharacter>-<RegexCharacter character_set="70 71">F</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="46 47">.</RegexCharacter></RegexSequence>"</RegexSequence><RegexGroup group_attributes="" group_index="147" group_name="">(<RegexGroup group_attributes="" group_index="148" group_name="">(<RegexSequence><RegexSequence>[<RegexCharacterOr character_set="80 81 112 113"><RegexCharacterOr character_set="80 81"><RegexCharacter character_set="" /><RegexCharacter character_set="80 81">P</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="112 113">p</RegexCharacter></RegexCharacterOr>]<RegexRepeat count0="0" count1="1" non_greedy="false">[<RegexCharacterOr character_set="43 44 45 46"><RegexCharacterOr character_set="43 44"><RegexCharacter character_set="" /><RegexCharacter character_set="43 44">+</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="45 46">-</RegexCharacter></RegexCharacterOr>]?</RegexRepeat></RegexSequence><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="149" group_name="">([<RegexCharacterOr character_set="48 58"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexSequence>)</RegexGroup>)</RegexGroup></RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="150" group_name="">(<RegexGroup group_attributes="" group_index="151" group_name="">(<RegexOr><RegexOr><RegexOr><RegexCharacter character_set="102 103">f</RegexCharacter>|<RegexCharacter character_set="70 71">F</RegexCharacter></RegexOr>|<RegexCharacter character_set="108 109">l</RegexCharacter></RegexOr>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat></RegexSequence>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="152" group_name="STRING_LITERAL"><RegexGroup group_attributes="" group_index="153" group_name="ExpressionStringLiteral">(?<RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="154" group_name="">(<RegexSequence><RegexSequence><RegexSequence><RegexSequence><RegexRepeat count0="0" count1="1" non_greedy="false"><RegexGroup group_attributes="" group_index="155" group_name="">(<RegexGroup group_attributes="" group_index="156" group_name="">(<RegexOr><RegexOr><RegexOr><RegexSequence><RegexCharacter character_set="117 118">u</RegexCharacter><RegexCharacter character_set="56 57">8</RegexCharacter></RegexSequence>|<RegexCharacter character_set="117 118">u</RegexCharacter></RegexOr>|<RegexCharacter character_set="85 86">U</RegexCharacter></RegexOr>|<RegexCharacter character_set="76 77">L</RegexCharacter></RegexOr>)</RegexGroup>)</RegexGroup>?</RegexRepeat><RegexCharacter character_set="34 35">\"</RegexCharacter></RegexSequence><RegexGroup group_attributes="" group_index="157" group_name="Text">(?<RegexRepeat count0="0" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="158" group_name="">(<RegexOr>[<RegexCharacterNot character_set="0 10 11 34 35 92 93 256">^<RegexCharacterOr character_set="10 11 34 35 92 93"><RegexCharacterOr character_set="34 35 92 93"><RegexCharacterOr character_set="34 35"><RegexCharacter character_set="" /><RegexCharacter character_set="34 35">"</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="92 93">\\</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="10 11">\n</RegexCharacter></RegexCharacterOr></RegexCharacterNot>]|<RegexGroup group_attributes="" group_index="159" group_name="">(<RegexGroup group_attributes="" group_index="160" group_name="">(<RegexSequence><RegexCharacter character_set="92 93">\\</RegexCharacter><RegexGroup group_attributes="" group_index="161" group_name="">(<RegexOr><RegexOr>[<RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99 102 103 110 111 114 115 116 117 118 119"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99 102 103 110 111 114 115 116 117"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99 102 103 110 111 114 115"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99 102 103 110 111"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99 102 103"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 99"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93 97 98"><RegexCharacterOr character_set="34 35 39 40 63 64 92 93"><RegexCharacterOr character_set="34 35 39 40 63 64"><RegexCharacterOr character_set="34 35 39 40"><RegexCharacterOr character_set="39 40"><RegexCharacter character_set="" /><RegexCharacter character_set="39 40">'</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="34 35">"</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="63 64">\?</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="92 93">\\</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="97 98">a</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="98 99">b</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="102 103">f</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="110 111">n</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="114 115">r</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="116 117">t</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="118 119">v</RegexCharacter></RegexCharacterOr>]|<RegexRepeat count0="1" count1="3" non_greedy="false">[<RegexCharacterOr character_set="48 56"><RegexCharacter character_set="" /><RegexCharacterRange character_set="48 56"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="55 56">7</RegexCharacter></RegexCharacterRange></RegexCharacterOr>]{</RegexRepeat></RegexOr>|<RegexSequence><RegexCharacter character_set="120 121">x</RegexCharacter><RegexRepeat count0="1" count1="-1" non_greedy="false">[<RegexCharacterOr character_set="48 58 65 71 97 103"><RegexCharacterOr character_set="65 71 97 103"><RegexCharacterOr character_set="97 103"><RegexCharacter character_set="" /><RegexCharacterRange character_set="97 103"><RegexCharacter character_set="97 98">a</RegexCharacter>-<RegexCharacter character_set="102 103">f</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="65 71"><RegexCharacter character_set="65 66">A</RegexCharacter>-<RegexCharacter character_set="70 71">F</RegexCharacter></RegexCharacterRange></RegexCharacterOr><RegexCharacterRange character_set="48 58"><RegexCharacter character_set="48 49">0</RegexCharacter>-<RegexCharacter character_set="57 58">9</RegexCharacter></RegexCharacterRange></RegexCharacterOr>]+</RegexRepeat></RegexSequence></RegexOr>)</RegexGroup></RegexSequence>)</RegexGroup>)</RegexGroup></RegexOr>)</RegexGroup>*</RegexRepeat>)</RegexGroup></RegexSequence><RegexCharacter character_set="34 35">\"</RegexCharacter></RegexSequence><RegexRepeat count0="0" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="162" group_name="">([<RegexCharacterOr character_set="9 13 32 33"><RegexCharacterOr character_set="9 12 32 33"><RegexCharacterOr character_set="9 10 11 12 32 33"><RegexCharacterOr character_set="9 10 32 33"><RegexCharacterOr character_set="32 33"><RegexCharacter character_set="" /><RegexCharacter character_set="32 33"> </RegexCharacter></RegexCharacterOr><RegexCharacter character_set="9 10">\t</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="11 12">\v</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="10 11">\n</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="12 13">\f</RegexCharacter></RegexCharacterOr>])</RegexGroup>*</RegexRepeat></RegexSequence>)</RegexGroup>+</RegexRepeat>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="163" group_name="ELLIPSIS">"<RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="46 47">.</RegexCharacter></RegexSequence><RegexCharacter character_set="46 47">.</RegexCharacter></RegexSequence><RegexCharacter character_set="46 47">.</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="164" group_name="RIGHT_ASSIGN">"<RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="62 63">></RegexCharacter></RegexSequence><RegexCharacter character_set="62 63">></RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="165" group_name="LEFT_ASSIGN">"<RegexSequence><RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="60 61"><</RegexCharacter></RegexSequence><RegexCharacter character_set="60 61"><</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="166" group_name="ADD_ASSIGN">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="43 44">+</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="167" group_name="SUB_ASSIGN">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="45 46">-</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="168" group_name="MUL_ASSIGN">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="42 43">*</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="169" group_name="DIV_ASSIGN">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="47 48">/</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="170" group_name="MOD_ASSIGN">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="37 38">%</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="171" group_name="AND_ASSIGN">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="38 39">&</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="172" group_name="XOR_ASSIGN">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="94 95">^</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="173" group_name="OR_ASSIGN">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="124 125">|</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="174" group_name="RIGHT_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="62 63">></RegexCharacter></RegexSequence><RegexCharacter character_set="62 63">></RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="175" group_name="LEFT_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="60 61"><</RegexCharacter></RegexSequence><RegexCharacter character_set="60 61"><</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="176" group_name="INC_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="43 44">+</RegexCharacter></RegexSequence><RegexCharacter character_set="43 44">+</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="177" group_name="DEC_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="45 46">-</RegexCharacter></RegexSequence><RegexCharacter character_set="45 46">-</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="178" group_name="PTR_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="45 46">-</RegexCharacter></RegexSequence><RegexCharacter character_set="62 63">></RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="179" group_name="AND_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="38 39">&</RegexCharacter></RegexSequence><RegexCharacter character_set="38 39">&</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="180" group_name="OR_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="124 125">|</RegexCharacter></RegexSequence><RegexCharacter character_set="124 125">|</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="181" group_name="LE_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="60 61"><</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="182" group_name="GE_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="62 63">></RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="183" group_name="EQ_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="184" group_name="NE_OP">"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="33 34">!</RegexCharacter></RegexSequence><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="185" group_name="X_3B">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="59 60">;</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="186" group_name="X_7B"><RegexGroup group_attributes="" group_index="187" group_name="">(<RegexOr>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="123 124">{</RegexCharacter></RegexSequence>"|"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="60 61"><</RegexCharacter></RegexSequence><RegexCharacter character_set="37 38">%</RegexCharacter></RegexSequence>"</RegexOr>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="188" group_name="X_7D"><RegexGroup group_attributes="" group_index="189" group_name="">(<RegexOr>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="125 126">}</RegexCharacter></RegexSequence>"|"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="37 38">%</RegexCharacter></RegexSequence><RegexCharacter character_set="62 63">></RegexCharacter></RegexSequence>"</RegexOr>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="190" group_name="X_2C">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="44 45">,</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="191" group_name="X_3A">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="58 59">:</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="192" group_name="X_3D">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="61 62">=</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="193" group_name="X_28">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="40 41">(</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="194" group_name="X_29">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="41 42">)</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="195" group_name="X_5B"><RegexGroup group_attributes="" group_index="196" group_name="">(<RegexOr>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="91 92">[</RegexCharacter></RegexSequence>"|"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="60 61"><</RegexCharacter></RegexSequence><RegexCharacter character_set="58 59">:</RegexCharacter></RegexSequence>"</RegexOr>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="197" group_name="X_5D"><RegexGroup group_attributes="" group_index="198" group_name="">(<RegexOr>"<RegexSequence><RegexEmpty /><RegexCharacter character_set="93 94">]</RegexCharacter></RegexSequence>"|"<RegexSequence><RegexSequence><RegexEmpty /><RegexCharacter character_set="58 59">:</RegexCharacter></RegexSequence><RegexCharacter character_set="62 63">></RegexCharacter></RegexSequence>"</RegexOr>)</RegexGroup></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="199" group_name="X_2E">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="46 47">.</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="200" group_name="X_26">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="38 39">&</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="201" group_name="X_21">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="33 34">!</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="202" group_name="X_7E">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="126 127">~</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="203" group_name="X_2D">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="45 46">-</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="204" group_name="X_2B">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="43 44">+</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="205" group_name="X_2A">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="42 43">*</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="206" group_name="X_2F">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="47 48">/</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="207" group_name="X_25">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="37 38">%</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="208" group_name="X_3C">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="60 61"><</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="209" group_name="X_3E">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="62 63">></RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="210" group_name="X_5E">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="94 95">^</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="211" group_name="X_7C">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="124 125">|</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="212" group_name="X_3F">"<RegexSequence><RegexEmpty /><RegexCharacter character_set="63 64">?</RegexCharacter></RegexSequence>"</RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="213" group_name=""><RegexRepeat count0="1" count1="-1" non_greedy="false"><RegexGroup group_attributes="" group_index="214" group_name="">([<RegexCharacterOr character_set="9 13 32 33"><RegexCharacterOr character_set="9 12 32 33"><RegexCharacterOr character_set="9 10 11 12 32 33"><RegexCharacterOr character_set="9 10 32 33"><RegexCharacterOr character_set="32 33"><RegexCharacter character_set="" /><RegexCharacter character_set="32 33"> </RegexCharacter></RegexCharacterOr><RegexCharacter character_set="9 10">\t</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="11 12">\v</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="10 11">\n</RegexCharacter></RegexCharacterOr><RegexCharacter character_set="12 13">\f</RegexCharacter></RegexCharacterOr>])</RegexGroup>+</RegexRepeat></RegexGroup> </RegexOr><RegexGroup group_attributes="" group_index="215" group_name=""><RegexCharacter character_set="0 10 11 256">.</RegexCharacter></RegexGroup> </RegexOr></RegexAnd>
-</root>
+++ /dev/null
-IDENTIFIER = 258
-I_CONSTANT = 259
-F_CONSTANT = 260
-STRING_LITERAL = 261
-FUNC_NAME = 262
-SIZEOF = 263
-PTR_OP = 264
-INC_OP = 265
-DEC_OP = 266
-LEFT_OP = 267
-RIGHT_OP = 268
-LE_OP = 269
-GE_OP = 270
-EQ_OP = 271
-NE_OP = 272
-AND_OP = 273
-OR_OP = 274
-MUL_ASSIGN = 275
-DIV_ASSIGN = 276
-MOD_ASSIGN = 277
-ADD_ASSIGN = 278
-SUB_ASSIGN = 279
-LEFT_ASSIGN = 280
-RIGHT_ASSIGN = 281
-AND_ASSIGN = 282
-XOR_ASSIGN = 283
-OR_ASSIGN = 284
-TYPEDEF_NAME = 285
-ENUMERATION_CONSTANT = 286
-TYPEDEF = 287
-EXTERN = 288
-STATIC = 289
-AUTO = 290
-REGISTER = 291
-INLINE = 292
-CONST = 293
-RESTRICT = 294
-VOLATILE = 295
-BOOL = 296
-CHAR = 297
-SHORT = 298
-INT = 299
-LONG = 300
-SIGNED = 301
-UNSIGNED = 302
-FLOAT = 303
-DOUBLE = 304
-VOID = 305
-COMPLEX = 306
-IMAGINARY = 307
-STRUCT = 308
-UNION = 309
-ENUM = 310
-ELLIPSIS = 311
-CASE = 312
-DEFAULT = 313
-IF = 314
-ELSE = 315
-SWITCH = 316
-WHILE = 317
-DO = 318
-FOR = 319
-GOTO = 320
-CONTINUE = 321
-BREAK = 322
-RETURN = 323
-ALIGNAS = 324
-ALIGNOF = 325
-ATOMIC = 326
-GENERIC = 327
-NORETURN = 328
-STATIC_ASSERT = 329
-THREAD_LOCAL = 330
+++ /dev/null
-<root>
- <Grammar associativities="" eof_terminal="256" n_terminals="331" ref="0"><Grammar_Production lhs_nonterminal="0" precedence="-1"><Grammar_Production_NamedSymbol name="block_item_list_opt" nonterminal_set="243 245" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="1" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionIdentifier"><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="2" precedence="-1"><Grammar_Production_NamedSymbol name="constant" nonterminal_set="6 9" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="3" precedence="-1"><Grammar_Production_NamedSymbol name="string" nonterminal_set="10 12" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="4" precedence="-1"><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="expression" nonterminal_set="91 93" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production><Grammar_Production lhs_nonterminal="5" precedence="-1"><Grammar_Production_NamedSymbol name="generic_selection" nonterminal_set="12 13" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="6" precedence="-1"><Grammar_Production_NamedSymbol name="I_CONSTANT" nonterminal_set="" terminal_set="259 260" /></Grammar_Production><Grammar_Production lhs_nonterminal="7" precedence="-1"><Grammar_Production_NamedSymbol name="F_CONSTANT" nonterminal_set="" terminal_set="260 261" /></Grammar_Production><Grammar_Production lhs_nonterminal="8" precedence="-1"><Grammar_Production_NamedSymbol name="ENUMERATION_CONSTANT" nonterminal_set="" terminal_set="286 287" /></Grammar_Production><Grammar_Production lhs_nonterminal="9" precedence="-1"><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production><Grammar_Production lhs_nonterminal="10" precedence="-1"><Grammar_Production_NamedSymbol name="STRING_LITERAL" nonterminal_set="" terminal_set="261 262" /></Grammar_Production><Grammar_Production lhs_nonterminal="11" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionFunctionName"><Grammar_Production_NamedSymbol name="FUNC_NAME" nonterminal_set="" terminal_set="262 263" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="12" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="GenericSelection"><Grammar_Production_NamedSymbol name="GENERIC" nonterminal_set="" terminal_set="327 328" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_Group attributes="" index="1" name="GenericAssociationList"><Grammar_Production_NamedSymbol name="generic_association_list" nonterminal_set="13 15" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="13" precedence="-1"><Grammar_Production_NamedSymbol name="generic_association" nonterminal_set="15 16" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="14" precedence="-1"><Grammar_Production_NamedSymbol name="generic_association_list" nonterminal_set="13 15" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="generic_association" nonterminal_set="15 16" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="15" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="GenericAssociation"><Grammar_Production_NamedSymbol name="type_name_or_default" nonterminal_set="16 18" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="58 59" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="16" precedence="-1"><Grammar_Production_NamedSymbol name="type_name" nonterminal_set="197 198" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="17" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DefaultTypeName"><Grammar_Production_NamedSymbol name="DEFAULT" nonterminal_set="" terminal_set="313 314" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="18" precedence="-1"><Grammar_Production_NamedSymbol name="primary_expression" nonterminal_set="1 6" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="19" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionIndex"><Grammar_Production_NamedSymbol name="postfix_expression" nonterminal_set="18 26" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="91 92" /><Grammar_Production_NamedSymbol name="expression" nonterminal_set="91 93" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="93 94" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="20" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionCall"><Grammar_Production_NamedSymbol name="postfix_expression" nonterminal_set="18 26" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_Group attributes="" index="1" name="ArgumentExpressionList"><Grammar_Production_NamedSymbol name="argument_expression_list_opt" nonterminal_set="26 28" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="21" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionField"><Grammar_Production_NamedSymbol name="postfix_expression" nonterminal_set="18 26" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="46 47" /><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="22" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionFieldDereference"><Grammar_Production_NamedSymbol name="postfix_expression" nonterminal_set="18 26" terminal_set="" /><Grammar_Production_NamedSymbol name="PTR_OP" nonterminal_set="" terminal_set="264 265" /><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="23" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionPostIncrement"><Grammar_Production_NamedSymbol name="postfix_expression" nonterminal_set="18 26" terminal_set="" /><Grammar_Production_NamedSymbol name="INC_OP" nonterminal_set="" terminal_set="265 266" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="24" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionPostDecrement"><Grammar_Production_NamedSymbol name="postfix_expression" nonterminal_set="18 26" terminal_set="" /><Grammar_Production_NamedSymbol name="DEC_OP" nonterminal_set="" terminal_set="266 267" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="25" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionArray"><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="type_name" nonterminal_set="197 198" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="123 124" /><Grammar_Production_Group attributes="" index="1" name="DesignatorInitializerList"><Grammar_Production_NamedSymbol name="designator_initializer_list_comma_opt" nonterminal_set="214 217" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="125 126" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="26" precedence="-1" /><Grammar_Production lhs_nonterminal="27" precedence="-1"><Grammar_Production_NamedSymbol name="argument_expression_list" nonterminal_set="28 30" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="28" precedence="-1"><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="29" precedence="-1"><Grammar_Production_NamedSymbol name="argument_expression_list" nonterminal_set="28 30" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="30" precedence="-1"><Grammar_Production_NamedSymbol name="postfix_expression" nonterminal_set="18 26" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="31" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionPreIncrement"><Grammar_Production_NamedSymbol name="INC_OP" nonterminal_set="" terminal_set="265 266" /><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="32" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionPreDecrement"><Grammar_Production_NamedSymbol name="DEC_OP" nonterminal_set="" terminal_set="266 267" /><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="33" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionAddressOf"><Grammar_Production_Symbol nonterminal_set="" terminal_set="38 39" /><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="34" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionDereference"><Grammar_Production_Symbol nonterminal_set="" terminal_set="42 43" /><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="35" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionPlus"><Grammar_Production_Symbol nonterminal_set="" terminal_set="43 44" /><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="36" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionMinus"><Grammar_Production_Symbol nonterminal_set="" terminal_set="45 46" /><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="37" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionBitwiseNot"><Grammar_Production_Symbol nonterminal_set="" terminal_set="126 127" /><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="38" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionLogicalNot"><Grammar_Production_Symbol nonterminal_set="" terminal_set="33 34" /><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="39" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionSizeOfExpression"><Grammar_Production_NamedSymbol name="SIZEOF" nonterminal_set="" terminal_set="263 264" /><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="40" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionSizeOfType"><Grammar_Production_NamedSymbol name="SIZEOF" nonterminal_set="" terminal_set="263 264" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="type_name" nonterminal_set="197 198" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="41" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionAlignOfType"><Grammar_Production_NamedSymbol name="ALIGNOF" nonterminal_set="" terminal_set="325 326" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="type_name" nonterminal_set="197 198" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="42" precedence="-1"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="43" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionCast"><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="type_name" nonterminal_set="197 198" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="44" precedence="-1"><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="45" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionMultiply"><Grammar_Production_NamedSymbol name="multiplicative_expression" nonterminal_set="44 48" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="42 43" /><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="46" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionDivide"><Grammar_Production_NamedSymbol name="multiplicative_expression" nonterminal_set="44 48" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="47 48" /><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="47" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionModulo"><Grammar_Production_NamedSymbol name="multiplicative_expression" nonterminal_set="44 48" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="37 38" /><Grammar_Production_NamedSymbol name="cast_expression" nonterminal_set="42 44" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="48" precedence="-1"><Grammar_Production_NamedSymbol name="multiplicative_expression" nonterminal_set="44 48" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="49" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionAdd"><Grammar_Production_NamedSymbol name="additive_expression" nonterminal_set="48 51" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="43 44" /><Grammar_Production_NamedSymbol name="multiplicative_expression" nonterminal_set="44 48" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="50" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionSubtract"><Grammar_Production_NamedSymbol name="additive_expression" nonterminal_set="48 51" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="45 46" /><Grammar_Production_NamedSymbol name="multiplicative_expression" nonterminal_set="44 48" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="51" precedence="-1"><Grammar_Production_NamedSymbol name="additive_expression" nonterminal_set="48 51" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="52" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionShiftLeft"><Grammar_Production_NamedSymbol name="shift_expression" nonterminal_set="51 54" terminal_set="" /><Grammar_Production_NamedSymbol name="LEFT_OP" nonterminal_set="" terminal_set="267 268" /><Grammar_Production_NamedSymbol name="additive_expression" nonterminal_set="48 51" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="53" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionShiftRight"><Grammar_Production_NamedSymbol name="shift_expression" nonterminal_set="51 54" terminal_set="" /><Grammar_Production_NamedSymbol name="RIGHT_OP" nonterminal_set="" terminal_set="268 269" /><Grammar_Production_NamedSymbol name="additive_expression" nonterminal_set="48 51" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="54" precedence="-1"><Grammar_Production_NamedSymbol name="shift_expression" nonterminal_set="51 54" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="55" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionLessThan"><Grammar_Production_NamedSymbol name="relational_expression" nonterminal_set="54 59" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="60 61" /><Grammar_Production_NamedSymbol name="shift_expression" nonterminal_set="51 54" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="56" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionGreaterThan"><Grammar_Production_NamedSymbol name="relational_expression" nonterminal_set="54 59" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="62 63" /><Grammar_Production_NamedSymbol name="shift_expression" nonterminal_set="51 54" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="57" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionLessThanOrEqual"><Grammar_Production_NamedSymbol name="relational_expression" nonterminal_set="54 59" terminal_set="" /><Grammar_Production_NamedSymbol name="LE_OP" nonterminal_set="" terminal_set="269 270" /><Grammar_Production_NamedSymbol name="shift_expression" nonterminal_set="51 54" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="58" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionGreaterThanOrEqual"><Grammar_Production_NamedSymbol name="relational_expression" nonterminal_set="54 59" terminal_set="" /><Grammar_Production_NamedSymbol name="GE_OP" nonterminal_set="" terminal_set="270 271" /><Grammar_Production_NamedSymbol name="shift_expression" nonterminal_set="51 54" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="59" precedence="-1"><Grammar_Production_NamedSymbol name="relational_expression" nonterminal_set="54 59" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="60" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionEqual"><Grammar_Production_NamedSymbol name="equality_expression" nonterminal_set="59 62" terminal_set="" /><Grammar_Production_NamedSymbol name="EQ_OP" nonterminal_set="" terminal_set="271 272" /><Grammar_Production_NamedSymbol name="relational_expression" nonterminal_set="54 59" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="61" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionNotEqual"><Grammar_Production_NamedSymbol name="equality_expression" nonterminal_set="59 62" terminal_set="" /><Grammar_Production_NamedSymbol name="NE_OP" nonterminal_set="" terminal_set="272 273" /><Grammar_Production_NamedSymbol name="relational_expression" nonterminal_set="54 59" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="62" precedence="-1"><Grammar_Production_NamedSymbol name="equality_expression" nonterminal_set="59 62" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="63" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionBitwiseAnd"><Grammar_Production_NamedSymbol name="and_expression" nonterminal_set="62 64" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="38 39" /><Grammar_Production_NamedSymbol name="equality_expression" nonterminal_set="59 62" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="64" precedence="-1"><Grammar_Production_NamedSymbol name="and_expression" nonterminal_set="62 64" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="65" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionExclusiveOr"><Grammar_Production_NamedSymbol name="exclusive_or_expression" nonterminal_set="64 66" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="94 95" /><Grammar_Production_NamedSymbol name="and_expression" nonterminal_set="62 64" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="66" precedence="-1"><Grammar_Production_NamedSymbol name="exclusive_or_expression" nonterminal_set="64 66" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="67" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionBitwiseOr"><Grammar_Production_NamedSymbol name="inclusive_or_expression" nonterminal_set="66 68" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="124 125" /><Grammar_Production_NamedSymbol name="exclusive_or_expression" nonterminal_set="64 66" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="68" precedence="-1"><Grammar_Production_NamedSymbol name="inclusive_or_expression" nonterminal_set="66 68" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="69" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionLogicalAnd"><Grammar_Production_NamedSymbol name="logical_and_expression" nonterminal_set="68 70" terminal_set="" /><Grammar_Production_NamedSymbol name="AND_OP" nonterminal_set="" terminal_set="273 274" /><Grammar_Production_NamedSymbol name="inclusive_or_expression" nonterminal_set="66 68" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="70" precedence="-1"><Grammar_Production_NamedSymbol name="logical_and_expression" nonterminal_set="68 70" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="71" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionLogicalOr"><Grammar_Production_NamedSymbol name="logical_or_expression" nonterminal_set="70 72" terminal_set="" /><Grammar_Production_NamedSymbol name="OR_OP" nonterminal_set="" terminal_set="274 275" /><Grammar_Production_NamedSymbol name="logical_and_expression" nonterminal_set="68 70" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="72" precedence="-1"><Grammar_Production_NamedSymbol name="logical_or_expression" nonterminal_set="70 72" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="73" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionConditional"><Grammar_Production_NamedSymbol name="logical_or_expression" nonterminal_set="70 72" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="63 64" /><Grammar_Production_NamedSymbol name="expression" nonterminal_set="91 93" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="58 59" /><Grammar_Production_NamedSymbol name="conditional_expression" nonterminal_set="72 74" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="74" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionEmpty" /></Grammar_Production><Grammar_Production lhs_nonterminal="75" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionAsterisk"><Grammar_Production_Symbol nonterminal_set="" terminal_set="42 43" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="76" precedence="-1"><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="77" precedence="-1"><Grammar_Production_NamedSymbol name="conditional_expression" nonterminal_set="72 74" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="78" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="61 62" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="79" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionMultiplyAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_NamedSymbol name="MUL_ASSIGN" nonterminal_set="" terminal_set="275 276" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="80" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionDivideAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_NamedSymbol name="DIV_ASSIGN" nonterminal_set="" terminal_set="276 277" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="81" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionModuloAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_NamedSymbol name="MOD_ASSIGN" nonterminal_set="" terminal_set="277 278" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="82" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionAddAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_NamedSymbol name="ADD_ASSIGN" nonterminal_set="" terminal_set="278 279" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="83" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionSubtractAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_NamedSymbol name="SUB_ASSIGN" nonterminal_set="" terminal_set="279 280" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="84" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionLeftShiftAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_NamedSymbol name="LEFT_ASSIGN" nonterminal_set="" terminal_set="280 281" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="85" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionRightShiftAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_NamedSymbol name="RIGHT_ASSIGN" nonterminal_set="" terminal_set="281 282" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="86" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionBitwiseAndAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_NamedSymbol name="AND_ASSIGN" nonterminal_set="" terminal_set="282 283" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="87" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionExclusiveOrAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_NamedSymbol name="XOR_ASSIGN" nonterminal_set="" terminal_set="283 284" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="88" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionBitwiseOrAssignment"><Grammar_Production_NamedSymbol name="unary_expression" nonterminal_set="30 42" terminal_set="" /><Grammar_Production_NamedSymbol name="OR_ASSIGN" nonterminal_set="" terminal_set="284 285" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="89" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionEmpty" /></Grammar_Production><Grammar_Production lhs_nonterminal="90" precedence="-1"><Grammar_Production_NamedSymbol name="expression" nonterminal_set="91 93" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="91" precedence="-1"><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="92" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionComma"><Grammar_Production_NamedSymbol name="expression" nonterminal_set="91 93" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="93" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ExpressionEmpty" /></Grammar_Production><Grammar_Production lhs_nonterminal="94" precedence="-1"><Grammar_Production_Symbol nonterminal_set="" terminal_set="61 62" /><Grammar_Production_NamedSymbol name="constant_expression" nonterminal_set="95 96" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="95" precedence="-1"><Grammar_Production_NamedSymbol name="conditional_expression" nonterminal_set="72 74" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="96" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="Declaration"><Grammar_Production_Group attributes="" index="1" name="DeclarationSpecifierList"><Grammar_Production_NamedSymbol name="declaration_specifier_list" nonterminal_set="98 100" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Group attributes="" index="2" name="InitDeclaratorList"><Grammar_Production_NamedSymbol name="init_declarator_list_opt" nonterminal_set="105 107" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="97" precedence="-1"><Grammar_Production_NamedSymbol name="static_assert_declaration" nonterminal_set="226 227" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="98" precedence="-1"><Grammar_Production_NamedSymbol name="declaration_specifier" nonterminal_set="100 105" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="99" precedence="-1"><Grammar_Production_NamedSymbol name="declaration_specifier_list" nonterminal_set="98 100" terminal_set="" /><Grammar_Production_NamedSymbol name="declaration_specifier" nonterminal_set="100 105" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="100" precedence="-1"><Grammar_Production_NamedSymbol name="storage_class_specifier" nonterminal_set="110 116" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="101" precedence="-1"><Grammar_Production_NamedSymbol name="type_specifier" nonterminal_set="116 133" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="102" precedence="-1"><Grammar_Production_NamedSymbol name="type_qualifier" nonterminal_set="168 172" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="103" precedence="-1"><Grammar_Production_NamedSymbol name="function_specifier" nonterminal_set="172 174" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="104" precedence="-1"><Grammar_Production_NamedSymbol name="alignment_specifier" nonterminal_set="174 176" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="105" precedence="-1" /><Grammar_Production lhs_nonterminal="106" precedence="-1"><Grammar_Production_NamedSymbol name="init_declarator_list" nonterminal_set="107 109" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="107" precedence="-1"><Grammar_Production_NamedSymbol name="init_declarator" nonterminal_set="109 110" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="108" precedence="-1"><Grammar_Production_NamedSymbol name="init_declarator_list" nonterminal_set="107 109" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="init_declarator" nonterminal_set="109 110" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="109" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="InitDeclarator"><Grammar_Production_NamedSymbol name="declarator" nonterminal_set="178 180" terminal_set="" /><Grammar_Production_NamedSymbol name="equals_initializer_opt" nonterminal_set="210 212" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="110" precedence="-1"><Grammar_Production_Group attributes="1" index="0" name="StorageClassSpecifier"><Grammar_Production_NamedSymbol name="TYPEDEF" nonterminal_set="" terminal_set="287 288" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="111" precedence="-1"><Grammar_Production_Group attributes="2" index="0" name="StorageClassSpecifier"><Grammar_Production_NamedSymbol name="EXTERN" nonterminal_set="" terminal_set="288 289" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="112" precedence="-1"><Grammar_Production_Group attributes="3" index="0" name="StorageClassSpecifier"><Grammar_Production_NamedSymbol name="STATIC" nonterminal_set="" terminal_set="289 290" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="113" precedence="-1"><Grammar_Production_Group attributes="4" index="0" name="StorageClassSpecifier"><Grammar_Production_NamedSymbol name="THREAD_LOCAL" nonterminal_set="" terminal_set="330 331" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="114" precedence="-1"><Grammar_Production_Group attributes="5" index="0" name="StorageClassSpecifier"><Grammar_Production_NamedSymbol name="AUTO" nonterminal_set="" terminal_set="290 291" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="115" precedence="-1"><Grammar_Production_Group attributes="6" index="0" name="StorageClassSpecifier"><Grammar_Production_NamedSymbol name="REGISTER" nonterminal_set="" terminal_set="291 292" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="116" precedence="-1"><Grammar_Production_Group attributes="7" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="VOID" nonterminal_set="" terminal_set="305 306" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="117" precedence="-1"><Grammar_Production_Group attributes="8" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="CHAR" nonterminal_set="" terminal_set="297 298" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="118" precedence="-1"><Grammar_Production_Group attributes="9" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="SHORT" nonterminal_set="" terminal_set="298 299" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="119" precedence="-1"><Grammar_Production_Group attributes="10" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="INT" nonterminal_set="" terminal_set="299 300" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="120" precedence="-1"><Grammar_Production_Group attributes="11" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="LONG" nonterminal_set="" terminal_set="300 301" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="121" precedence="-1"><Grammar_Production_Group attributes="12" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="FLOAT" nonterminal_set="" terminal_set="303 304" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="122" precedence="-1"><Grammar_Production_Group attributes="13" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="DOUBLE" nonterminal_set="" terminal_set="304 305" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="123" precedence="-1"><Grammar_Production_Group attributes="14" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="SIGNED" nonterminal_set="" terminal_set="301 302" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="124" precedence="-1"><Grammar_Production_Group attributes="15" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="UNSIGNED" nonterminal_set="" terminal_set="302 303" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="125" precedence="-1"><Grammar_Production_Group attributes="16" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="BOOL" nonterminal_set="" terminal_set="296 297" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="126" precedence="-1"><Grammar_Production_Group attributes="17" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="COMPLEX" nonterminal_set="" terminal_set="306 307" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="127" precedence="-1"><Grammar_Production_Group attributes="18" index="0" name="TypeSpecifier"><Grammar_Production_NamedSymbol name="IMAGINARY" nonterminal_set="" terminal_set="307 308" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="128" precedence="-1"><Grammar_Production_NamedSymbol name="atomic_type_specifier" nonterminal_set="161 162" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="129" precedence="-1"><Grammar_Production_NamedSymbol name="struct_specifier" nonterminal_set="133 135" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="130" precedence="-1"><Grammar_Production_NamedSymbol name="union_specifier" nonterminal_set="135 137" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="131" precedence="-1"><Grammar_Production_NamedSymbol name="enum_specifier" nonterminal_set="153 155" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="132" precedence="-1"><Grammar_Production_NamedSymbol name="TYPEDEF_NAME" nonterminal_set="" terminal_set="285 286" /></Grammar_Production><Grammar_Production lhs_nonterminal="133" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StructSpecifier"><Grammar_Production_NamedSymbol name="STRUCT" nonterminal_set="" terminal_set="308 309" /><Grammar_Production_NamedSymbol name="identifier_opt" nonterminal_set="260 262" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="123 124" /><Grammar_Production_Group attributes="" index="1" name="StructDeclarationList"><Grammar_Production_NamedSymbol name="struct_declaration_list_opt" nonterminal_set="137 139" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="125 126" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="134" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StructSpecifier"><Grammar_Production_NamedSymbol name="STRUCT" nonterminal_set="" terminal_set="308 309" /><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="135" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="UnionSpecifier"><Grammar_Production_NamedSymbol name="UNION" nonterminal_set="" terminal_set="309 310" /><Grammar_Production_NamedSymbol name="identifier_opt" nonterminal_set="260 262" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="123 124" /><Grammar_Production_Group attributes="" index="1" name="StructDeclarationList"><Grammar_Production_NamedSymbol name="struct_declaration_list_opt" nonterminal_set="137 139" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="125 126" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="136" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="UnionSpecifier"><Grammar_Production_NamedSymbol name="UNION" nonterminal_set="" terminal_set="309 310" /><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="137" precedence="-1" /><Grammar_Production lhs_nonterminal="138" precedence="-1"><Grammar_Production_NamedSymbol name="struct_declaration_list" nonterminal_set="139 141" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="139" precedence="-1"><Grammar_Production_NamedSymbol name="struct_declaration" nonterminal_set="141 143" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="140" precedence="-1"><Grammar_Production_NamedSymbol name="struct_declaration_list" nonterminal_set="139 141" terminal_set="" /><Grammar_Production_NamedSymbol name="struct_declaration" nonterminal_set="141 143" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="141" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StructDeclaration"><Grammar_Production_Group attributes="" index="1" name="SpecifierQualifierList"><Grammar_Production_NamedSymbol name="specifier_qualifier_list" nonterminal_set="143 145" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Group attributes="" index="2" name="StructDeclaratorList"><Grammar_Production_NamedSymbol name="struct_declarator_list_opt" nonterminal_set="147 149" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="142" precedence="-1"><Grammar_Production_NamedSymbol name="static_assert_declaration" nonterminal_set="226 227" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="143" precedence="-1"><Grammar_Production_NamedSymbol name="specifier_qualifier" nonterminal_set="145 147" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="144" precedence="-1"><Grammar_Production_NamedSymbol name="specifier_qualifier_list" nonterminal_set="143 145" terminal_set="" /><Grammar_Production_NamedSymbol name="specifier_qualifier" nonterminal_set="145 147" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="145" precedence="-1"><Grammar_Production_NamedSymbol name="type_specifier" nonterminal_set="116 133" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="146" precedence="-1"><Grammar_Production_NamedSymbol name="type_qualifier" nonterminal_set="168 172" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="147" precedence="-1" /><Grammar_Production lhs_nonterminal="148" precedence="-1"><Grammar_Production_NamedSymbol name="struct_declarator_list" nonterminal_set="149 151" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="149" precedence="-1"><Grammar_Production_NamedSymbol name="struct_declarator" nonterminal_set="151 153" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="150" precedence="-1"><Grammar_Production_NamedSymbol name="struct_declarator_list" nonterminal_set="149 151" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="struct_declarator" nonterminal_set="151 153" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="151" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StructDeclarator"><Grammar_Production_NamedSymbol name="declarator_opt" nonterminal_set="176 178" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="58 59" /><Grammar_Production_NamedSymbol name="constant_expression" nonterminal_set="95 96" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="152" precedence="-1"><Grammar_Production_NamedSymbol name="declarator" nonterminal_set="178 180" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="153" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="EnumSpecifier"><Grammar_Production_NamedSymbol name="ENUM" nonterminal_set="" terminal_set="310 311" /><Grammar_Production_NamedSymbol name="identifier_opt" nonterminal_set="260 262" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="123 124" /><Grammar_Production_Group attributes="" index="1" name="EnumeratorList"><Grammar_Production_NamedSymbol name="enumerator_list_comma_opt" nonterminal_set="155 158" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="125 126" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="154" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="EnumSpecifier"><Grammar_Production_NamedSymbol name="ENUM" nonterminal_set="" terminal_set="310 311" /><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="155" precedence="-1" /><Grammar_Production lhs_nonterminal="156" precedence="-1"><Grammar_Production_NamedSymbol name="enumerator_list" nonterminal_set="158 160" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="157" precedence="-1"><Grammar_Production_NamedSymbol name="enumerator_list" nonterminal_set="158 160" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /></Grammar_Production><Grammar_Production lhs_nonterminal="158" precedence="-1"><Grammar_Production_NamedSymbol name="enumerator" nonterminal_set="160 161" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="159" precedence="-1"><Grammar_Production_NamedSymbol name="enumerator_list" nonterminal_set="158 160" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="enumerator" nonterminal_set="160 161" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="160" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="Enumerator"><Grammar_Production_NamedSymbol name="enumeration_constant" nonterminal_set="9 10" terminal_set="" /><Grammar_Production_NamedSymbol name="equals_constant_expression_opt" nonterminal_set="93 95" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="161" precedence="-1"><Grammar_Production_NamedSymbol name="ATOMIC" nonterminal_set="" terminal_set="326 327" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="type_name" nonterminal_set="197 198" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production><Grammar_Production lhs_nonterminal="162" precedence="-1" /><Grammar_Production lhs_nonterminal="163" precedence="-1"><Grammar_Production_NamedSymbol name="type_qualifier_or_static_list" nonterminal_set="164 166" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="164" precedence="-1"><Grammar_Production_NamedSymbol name="type_qualifier_or_static" nonterminal_set="166 168" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="165" precedence="-1"><Grammar_Production_NamedSymbol name="type_qualifier_or_static_list" nonterminal_set="164 166" terminal_set="" /><Grammar_Production_NamedSymbol name="type_qualifier_or_static" nonterminal_set="166 168" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="166" precedence="-1"><Grammar_Production_NamedSymbol name="type_qualifier" nonterminal_set="168 172" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="167" precedence="-1"><Grammar_Production_Group attributes="19" index="0" name="StorageClassSpecifier"><Grammar_Production_NamedSymbol name="STATIC" nonterminal_set="" terminal_set="289 290" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="168" precedence="-1"><Grammar_Production_Group attributes="20" index="0" name="TypeQualifier"><Grammar_Production_NamedSymbol name="CONST" nonterminal_set="" terminal_set="293 294" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="169" precedence="-1"><Grammar_Production_Group attributes="21" index="0" name="TypeQualifier"><Grammar_Production_NamedSymbol name="RESTRICT" nonterminal_set="" terminal_set="294 295" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="170" precedence="-1"><Grammar_Production_Group attributes="22" index="0" name="TypeQualifier"><Grammar_Production_NamedSymbol name="VOLATILE" nonterminal_set="" terminal_set="295 296" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="171" precedence="-1"><Grammar_Production_Group attributes="23" index="0" name="TypeQualifier"><Grammar_Production_NamedSymbol name="ATOMIC" nonterminal_set="" terminal_set="326 327" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="172" precedence="-1"><Grammar_Production_Group attributes="24" index="0" name="FunctionSpecifier"><Grammar_Production_NamedSymbol name="INLINE" nonterminal_set="" terminal_set="292 293" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="173" precedence="-1"><Grammar_Production_Group attributes="25" index="0" name="FunctionSpecifier"><Grammar_Production_NamedSymbol name="NORETURN" nonterminal_set="" terminal_set="328 329" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="174" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="AlignAsType"><Grammar_Production_NamedSymbol name="ALIGNAS" nonterminal_set="" terminal_set="324 325" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="type_name" nonterminal_set="197 198" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="175" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="AlignAsExpression"><Grammar_Production_NamedSymbol name="ALIGNAS" nonterminal_set="" terminal_set="324 325" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="constant_expression" nonterminal_set="95 96" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="176" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorEmpty" /></Grammar_Production><Grammar_Production lhs_nonterminal="177" precedence="-1"><Grammar_Production_NamedSymbol name="declarator" nonterminal_set="178 180" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="178" precedence="-1"><Grammar_Production_NamedSymbol name="direct_declarator" nonterminal_set="180 185" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="179" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorPointer"><Grammar_Production_Symbol nonterminal_set="" terminal_set="42 43" /><Grammar_Production_Group attributes="" index="1" name="TypeQualifierList"><Grammar_Production_NamedSymbol name="type_qualifier_list_opt" nonterminal_set="185 187" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="declarator" nonterminal_set="178 180" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="180" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorIdentifier"><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="181" precedence="-1"><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="declarator" nonterminal_set="178 180" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production><Grammar_Production lhs_nonterminal="182" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorArray"><Grammar_Production_NamedSymbol name="direct_declarator" nonterminal_set="180 185" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="91 92" /><Grammar_Production_Group attributes="" index="1" name="TypeQualifierOrStaticList"><Grammar_Production_NamedSymbol name="type_qualifier_or_static_list_opt" nonterminal_set="162 164" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="assignment_expression_or_asterisk_opt" nonterminal_set="74 77" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="93 94" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="183" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorFunctionOldStyle"><Grammar_Production_NamedSymbol name="direct_declarator" nonterminal_set="180 185" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_Group attributes="" index="1" name="IdentifierList"><Grammar_Production_NamedSymbol name="identifier_list_opt" nonterminal_set="193 195" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="184" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorFunction"><Grammar_Production_NamedSymbol name="direct_declarator" nonterminal_set="180 185" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_Group attributes="" index="1" name="ParameterDeclarationList"><Grammar_Production_NamedSymbol name="parameter_declaration_list" nonterminal_set="189 191" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="comma_ellipsis_opt" nonterminal_set="262 264" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="185" precedence="-1" /><Grammar_Production lhs_nonterminal="186" precedence="-1"><Grammar_Production_NamedSymbol name="type_qualifier_list" nonterminal_set="187 189" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="187" precedence="-1"><Grammar_Production_NamedSymbol name="type_qualifier" nonterminal_set="168 172" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="188" precedence="-1"><Grammar_Production_NamedSymbol name="type_qualifier_list" nonterminal_set="187 189" terminal_set="" /><Grammar_Production_NamedSymbol name="type_qualifier" nonterminal_set="168 172" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="189" precedence="-1"><Grammar_Production_NamedSymbol name="parameter_declaration" nonterminal_set="191 193" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="190" precedence="-1"><Grammar_Production_NamedSymbol name="parameter_declaration_list" nonterminal_set="189 191" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="parameter_declaration" nonterminal_set="191 193" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="191" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ParameterDeclaration"><Grammar_Production_Group attributes="" index="1" name="DeclarationSpecifierList"><Grammar_Production_NamedSymbol name="declaration_specifier_list" nonterminal_set="98 100" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="declarator" nonterminal_set="178 180" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="192" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="ParameterDeclaration"><Grammar_Production_Group attributes="" index="1" name="DeclarationSpecifierList"><Grammar_Production_NamedSymbol name="declaration_specifier_list" nonterminal_set="98 100" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="abstract_declarator" nonterminal_set="198 200" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="193" precedence="-1" /><Grammar_Production lhs_nonterminal="194" precedence="-1"><Grammar_Production_NamedSymbol name="identifier_list" nonterminal_set="195 197" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="195" precedence="-1"><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production><Grammar_Production lhs_nonterminal="196" precedence="-1"><Grammar_Production_NamedSymbol name="identifier_list" nonterminal_set="195 197" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production><Grammar_Production lhs_nonterminal="197" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="TypeName"><Grammar_Production_Group attributes="" index="1" name="SpecifierQualifierList"><Grammar_Production_NamedSymbol name="specifier_qualifier_list" nonterminal_set="143 145" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="abstract_declarator" nonterminal_set="198 200" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="198" precedence="-1"><Grammar_Production_NamedSymbol name="direct_abstract_declarator_opt" nonterminal_set="200 202" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="199" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorPointer"><Grammar_Production_Symbol nonterminal_set="" terminal_set="42 43" /><Grammar_Production_Group attributes="" index="1" name="TypeQualifierList"><Grammar_Production_NamedSymbol name="type_qualifier_list_opt" nonterminal_set="185 187" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="abstract_declarator" nonterminal_set="198 200" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="200" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorAbstract" /></Grammar_Production><Grammar_Production lhs_nonterminal="201" precedence="-1"><Grammar_Production_NamedSymbol name="direct_abstract_declarator" nonterminal_set="202 210" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="202" precedence="-1"><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="direct_abstract_declarator" nonterminal_set="202 210" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production><Grammar_Production lhs_nonterminal="203" precedence="-1"><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_Group attributes="" index="0" name="DeclaratorPointer"><Grammar_Production_Symbol nonterminal_set="" terminal_set="42 43" /><Grammar_Production_Group attributes="" index="1" name="TypeQualifierList"><Grammar_Production_NamedSymbol name="type_qualifier_list_opt" nonterminal_set="185 187" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="abstract_declarator" nonterminal_set="198 200" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production><Grammar_Production lhs_nonterminal="204" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorArray"><Grammar_Production_Group attributes="" index="1" name="DeclaratorAbstract" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="91 92" /><Grammar_Production_Group attributes="" index="2" name="TypeQualifierOrStaticList"><Grammar_Production_NamedSymbol name="type_qualifier_or_static_list_opt" nonterminal_set="162 164" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="assignment_expression_or_asterisk_opt" nonterminal_set="74 77" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="93 94" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="205" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorFunction"><Grammar_Production_Group attributes="" index="1" name="DeclaratorAbstract" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_Group attributes="" index="2" name="ParameterDeclarationList" /><Grammar_Production_Group attributes="" index="3" name="CommaEllipsisEmpty" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="206" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorFunction"><Grammar_Production_Group attributes="" index="1" name="DeclaratorAbstract" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_Group attributes="" index="2" name="ParameterDeclarationList"><Grammar_Production_NamedSymbol name="parameter_declaration_list" nonterminal_set="189 191" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="comma_ellipsis_opt" nonterminal_set="262 264" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="207" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorArray"><Grammar_Production_NamedSymbol name="direct_abstract_declarator" nonterminal_set="202 210" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="91 92" /><Grammar_Production_Group attributes="" index="1" name="TypeQualifierOrStaticList"><Grammar_Production_NamedSymbol name="type_qualifier_or_static_list_opt" nonterminal_set="162 164" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="assignment_expression_or_asterisk_opt" nonterminal_set="74 77" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="93 94" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="208" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorFunction"><Grammar_Production_NamedSymbol name="direct_abstract_declarator" nonterminal_set="202 210" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_Group attributes="" index="1" name="ParameterDeclarationList" /><Grammar_Production_Group attributes="" index="2" name="CommaEllipsisEmpty" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="209" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DeclaratorFunction"><Grammar_Production_NamedSymbol name="direct_abstract_declarator" nonterminal_set="202 210" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_Group attributes="" index="1" name="ParameterDeclarationList"><Grammar_Production_NamedSymbol name="parameter_declaration_list" nonterminal_set="189 191" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="comma_ellipsis_opt" nonterminal_set="262 264" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="210" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="EqualsInitializerEmpty" /></Grammar_Production><Grammar_Production lhs_nonterminal="211" precedence="-1"><Grammar_Production_Symbol nonterminal_set="" terminal_set="61 62" /><Grammar_Production_NamedSymbol name="initializer" nonterminal_set="212 214" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="212" precedence="-1"><Grammar_Production_Symbol nonterminal_set="" terminal_set="123 124" /><Grammar_Production_Group attributes="" index="0" name="DesignatorInitializerList"><Grammar_Production_NamedSymbol name="designator_initializer_list_comma_opt" nonterminal_set="214 217" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="125 126" /></Grammar_Production><Grammar_Production lhs_nonterminal="213" precedence="-1"><Grammar_Production_NamedSymbol name="assignment_expression" nonterminal_set="77 89" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="214" precedence="-1" /><Grammar_Production lhs_nonterminal="215" precedence="-1"><Grammar_Production_NamedSymbol name="designator_initializer_list" nonterminal_set="217 219" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="216" precedence="-1"><Grammar_Production_NamedSymbol name="designator_initializer_list" nonterminal_set="217 219" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /></Grammar_Production><Grammar_Production lhs_nonterminal="217" precedence="-1"><Grammar_Production_NamedSymbol name="designator_initializer" nonterminal_set="219 220" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="218" precedence="-1"><Grammar_Production_NamedSymbol name="designator_initializer_list" nonterminal_set="217 219" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="designator_initializer" nonterminal_set="219 220" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="219" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DesignatorInitializer"><Grammar_Production_Group attributes="" index="1" name="DesignatorList"><Grammar_Production_NamedSymbol name="designator_list_equals_opt" nonterminal_set="220 222" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="initializer" nonterminal_set="212 214" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="220" precedence="-1" /><Grammar_Production lhs_nonterminal="221" precedence="-1"><Grammar_Production_NamedSymbol name="designator_list" nonterminal_set="222 224" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="61 62" /></Grammar_Production><Grammar_Production lhs_nonterminal="222" precedence="-1"><Grammar_Production_NamedSymbol name="designator" nonterminal_set="224 226" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="223" precedence="-1"><Grammar_Production_NamedSymbol name="designator_list" nonterminal_set="222 224" terminal_set="" /><Grammar_Production_NamedSymbol name="designator" nonterminal_set="224 226" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="224" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DesignatorIndex"><Grammar_Production_Symbol nonterminal_set="" terminal_set="91 92" /><Grammar_Production_NamedSymbol name="constant_expression" nonterminal_set="95 96" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="93 94" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="225" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="DesignatorField"><Grammar_Production_Symbol nonterminal_set="" terminal_set="46 47" /><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="226" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StaticAssertDeclaration"><Grammar_Production_NamedSymbol name="STATIC_ASSERT" nonterminal_set="" terminal_set="329 330" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="constant_expression" nonterminal_set="95 96" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="STRING_LITERAL" nonterminal_set="" terminal_set="261 262" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="227" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementLabel"><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="58 59" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="228" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementCase"><Grammar_Production_NamedSymbol name="CASE" nonterminal_set="" terminal_set="312 313" /><Grammar_Production_NamedSymbol name="constant_expression" nonterminal_set="95 96" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="58 59" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="229" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementDefault"><Grammar_Production_NamedSymbol name="DEFAULT" nonterminal_set="" terminal_set="313 314" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="58 59" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="230" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementBlock"><Grammar_Production_Symbol nonterminal_set="" terminal_set="123 124" /><Grammar_Production_Group attributes="" index="1" name="BlockItemList"><Grammar_Production_NamedSymbol name="block_item_list_opt" nonterminal_set="243 245" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="125 126" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="231" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementExpression"><Grammar_Production_NamedSymbol name="expression_opt" nonterminal_set="89 91" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="232" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementIfElse"><Grammar_Production_NamedSymbol name="IF" nonterminal_set="" terminal_set="314 315" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="expression" nonterminal_set="91 93" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /><Grammar_Production_NamedSymbol name="ELSE" nonterminal_set="" terminal_set="315 316" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="233" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementIf"><Grammar_Production_NamedSymbol name="IF" nonterminal_set="" terminal_set="314 315" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="expression" nonterminal_set="91 93" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="234" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementSwitch"><Grammar_Production_NamedSymbol name="SWITCH" nonterminal_set="" terminal_set="316 317" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="expression" nonterminal_set="91 93" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="235" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementWhile"><Grammar_Production_NamedSymbol name="WHILE" nonterminal_set="" terminal_set="317 318" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="expression" nonterminal_set="91 93" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="236" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementDoWhile"><Grammar_Production_NamedSymbol name="DO" nonterminal_set="" terminal_set="318 319" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /><Grammar_Production_NamedSymbol name="WHILE" nonterminal_set="" terminal_set="317 318" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="expression" nonterminal_set="91 93" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="237" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementFor"><Grammar_Production_NamedSymbol name="FOR" nonterminal_set="" terminal_set="319 320" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="expression_opt" nonterminal_set="89 91" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /><Grammar_Production_NamedSymbol name="expression_opt" nonterminal_set="89 91" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /><Grammar_Production_NamedSymbol name="expression_opt" nonterminal_set="89 91" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="238" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementFor"><Grammar_Production_NamedSymbol name="FOR" nonterminal_set="" terminal_set="319 320" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="40 41" /><Grammar_Production_NamedSymbol name="declaration" nonterminal_set="96 98" terminal_set="" /><Grammar_Production_NamedSymbol name="expression_opt" nonterminal_set="89 91" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /><Grammar_Production_NamedSymbol name="expression_opt" nonterminal_set="89 91" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="41 42" /><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="239" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementGoto"><Grammar_Production_NamedSymbol name="GOTO" nonterminal_set="" terminal_set="320 321" /><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="240" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementContinue"><Grammar_Production_NamedSymbol name="CONTINUE" nonterminal_set="" terminal_set="321 322" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="241" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementBreak"><Grammar_Production_NamedSymbol name="BREAK" nonterminal_set="" terminal_set="322 323" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="242" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="StatementReturn"><Grammar_Production_NamedSymbol name="RETURN" nonterminal_set="" terminal_set="323 324" /><Grammar_Production_NamedSymbol name="expression_opt" nonterminal_set="89 91" terminal_set="" /><Grammar_Production_Symbol nonterminal_set="" terminal_set="59 60" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="243" precedence="-1" /><Grammar_Production lhs_nonterminal="244" precedence="-1"><Grammar_Production_NamedSymbol name="block_item_list" nonterminal_set="245 247" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="245" precedence="-1"><Grammar_Production_NamedSymbol name="block_item" nonterminal_set="247 249" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="246" precedence="-1"><Grammar_Production_NamedSymbol name="block_item_list" nonterminal_set="245 247" terminal_set="" /><Grammar_Production_NamedSymbol name="block_item" nonterminal_set="247 249" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="247" precedence="-1"><Grammar_Production_NamedSymbol name="declaration" nonterminal_set="96 98" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="248" precedence="-1"><Grammar_Production_NamedSymbol name="statement" nonterminal_set="227 243" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="249" precedence="-1" /><Grammar_Production lhs_nonterminal="250" precedence="-1"><Grammar_Production_NamedSymbol name="translation_unit" nonterminal_set="251 253" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="251" precedence="-1"><Grammar_Production_NamedSymbol name="external_declaration" nonterminal_set="253 255" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="252" precedence="-1"><Grammar_Production_NamedSymbol name="translation_unit" nonterminal_set="251 253" terminal_set="" /><Grammar_Production_NamedSymbol name="external_declaration" nonterminal_set="253 255" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="253" precedence="-1"><Grammar_Production_NamedSymbol name="function_definition" nonterminal_set="255 256" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="254" precedence="-1"><Grammar_Production_NamedSymbol name="declaration" nonterminal_set="96 98" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="255" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="FunctionDefinition"><Grammar_Production_Group attributes="" index="1" name="DeclarationSpecifierList"><Grammar_Production_NamedSymbol name="declaration_specifier_list" nonterminal_set="98 100" terminal_set="" /></Grammar_Production_Group><Grammar_Production_NamedSymbol name="declarator" nonterminal_set="178 180" terminal_set="" /><Grammar_Production_Group attributes="" index="2" name="DeclarationList"><Grammar_Production_NamedSymbol name="declaration_list_opt" nonterminal_set="256 258" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="123 124" /><Grammar_Production_Group attributes="" index="3" name="BlockItemList"><Grammar_Production_NamedSymbol name="block_item_list_opt" nonterminal_set="243 245" terminal_set="" /></Grammar_Production_Group><Grammar_Production_Symbol nonterminal_set="" terminal_set="125 126" /></Grammar_Production_Group></Grammar_Production><Grammar_Production lhs_nonterminal="256" precedence="-1" /><Grammar_Production lhs_nonterminal="257" precedence="-1"><Grammar_Production_NamedSymbol name="declaration_list" nonterminal_set="258 260" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="258" precedence="-1"><Grammar_Production_NamedSymbol name="declaration" nonterminal_set="96 98" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="259" precedence="-1"><Grammar_Production_NamedSymbol name="declaration_list" nonterminal_set="258 260" terminal_set="" /><Grammar_Production_NamedSymbol name="declaration" nonterminal_set="96 98" terminal_set="" /></Grammar_Production><Grammar_Production lhs_nonterminal="260" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="IdentifierEmpty" /></Grammar_Production><Grammar_Production lhs_nonterminal="261" precedence="-1"><Grammar_Production_NamedSymbol name="IDENTIFIER" nonterminal_set="" terminal_set="258 259" /></Grammar_Production><Grammar_Production lhs_nonterminal="262" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="CommaEllipsisEmpty" /></Grammar_Production><Grammar_Production lhs_nonterminal="263" precedence="-1"><Grammar_Production_Group attributes="" index="0" name="CommaEllipsis"><Grammar_Production_Symbol nonterminal_set="" terminal_set="44 45" /><Grammar_Production_NamedSymbol name="ELLIPSIS" nonterminal_set="" terminal_set="311 312" /></Grammar_Production_Group></Grammar_Production></Grammar>
- <Grammar_Production_Group_Attribute name="n" ref="1" value="0" />
- <Grammar_Production_Group_Attribute name="n" ref="2" value="1" />
- <Grammar_Production_Group_Attribute name="n" ref="3" value="2" />
- <Grammar_Production_Group_Attribute name="n" ref="4" value="3" />
- <Grammar_Production_Group_Attribute name="n" ref="5" value="4" />
- <Grammar_Production_Group_Attribute name="n" ref="6" value="5" />
- <Grammar_Production_Group_Attribute name="n" ref="7" value="0" />
- <Grammar_Production_Group_Attribute name="n" ref="8" value="1" />
- <Grammar_Production_Group_Attribute name="n" ref="9" value="2" />
- <Grammar_Production_Group_Attribute name="n" ref="10" value="3" />
- <Grammar_Production_Group_Attribute name="n" ref="11" value="4" />
- <Grammar_Production_Group_Attribute name="n" ref="12" value="5" />
- <Grammar_Production_Group_Attribute name="n" ref="13" value="6" />
- <Grammar_Production_Group_Attribute name="n" ref="14" value="7" />
- <Grammar_Production_Group_Attribute name="n" ref="15" value="8" />
- <Grammar_Production_Group_Attribute name="n" ref="16" value="9" />
- <Grammar_Production_Group_Attribute name="n" ref="17" value="10" />
- <Grammar_Production_Group_Attribute name="n" ref="18" value="11" />
- <Grammar_Production_Group_Attribute name="n" ref="19" value="2" />
- <Grammar_Production_Group_Attribute name="n" ref="20" value="0" />
- <Grammar_Production_Group_Attribute name="n" ref="21" value="1" />
- <Grammar_Production_Group_Attribute name="n" ref="22" value="2" />
- <Grammar_Production_Group_Attribute name="n" ref="23" value="3" />
- <Grammar_Production_Group_Attribute name="n" ref="24" value="0" />
- <Grammar_Production_Group_Attribute name="n" ref="25" value="1" />
-</root>
+++ /dev/null
-%token IDENTIFIER I_CONSTANT F_CONSTANT STRING_LITERAL FUNC_NAME SIZEOF
-%token PTR_OP INC_OP DEC_OP LEFT_OP RIGHT_OP LE_OP GE_OP EQ_OP NE_OP
-%token AND_OP OR_OP MUL_ASSIGN DIV_ASSIGN MOD_ASSIGN ADD_ASSIGN
-%token SUB_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN
-%token XOR_ASSIGN OR_ASSIGN
-%token TYPEDEF_NAME ENUMERATION_CONSTANT
-
-%token TYPEDEF EXTERN STATIC AUTO REGISTER INLINE
-%token CONST RESTRICT VOLATILE
-%token BOOL CHAR SHORT INT LONG SIGNED UNSIGNED FLOAT DOUBLE VOID
-%token COMPLEX IMAGINARY
-%token STRUCT UNION ENUM ELLIPSIS
-
-%token CASE DEFAULT IF ELSE SWITCH WHILE DO FOR GOTO CONTINUE BREAK RETURN
-
-%token ALIGNAS ALIGNOF ATOMIC GENERIC NORETURN STATIC_ASSERT THREAD_LOCAL
-
-%start block_item_list_opt
-
-%%
-
-primary_expression
- : (?<ExpressionIdentifier>IDENTIFIER)
- | constant
- | string
- | '(' expression ')'
- | generic_selection
- ;
-
-constant
- : I_CONSTANT
- | F_CONSTANT
- | ENUMERATION_CONSTANT
- ;
-
-enumeration_constant
- : IDENTIFIER
- ;
-
-string
- : STRING_LITERAL
- | (?<ExpressionFunctionName>FUNC_NAME)
- ;
-
-generic_selection
- : (?<GenericSelection>GENERIC '(' assignment_expression ',' (?<GenericAssociationList>generic_association_list) ')')
- ;
-
-generic_association_list
- : generic_association
- | generic_association_list ',' generic_association
- ;
-
-generic_association
- : (?<GenericAssociation>type_name_or_default ':' assignment_expression)
- ;
-
-type_name_or_default
- : type_name
- | (?<DefaultTypeName>DEFAULT)
- ;
-
-postfix_expression
- : primary_expression
- | (?<ExpressionIndex>postfix_expression '[' expression ']')
- | (?<ExpressionCall>postfix_expression '(' (?<ArgumentExpressionList>argument_expression_list_opt) ')')
- | (?<ExpressionField>postfix_expression '.' IDENTIFIER)
- | (?<ExpressionFieldDereference>postfix_expression PTR_OP IDENTIFIER)
- | (?<ExpressionPostIncrement>postfix_expression INC_OP)
- | (?<ExpressionPostDecrement>postfix_expression DEC_OP)
- | (?<ExpressionArray>'(' type_name ')' '{' (?<DesignatorInitializerList>designator_initializer_list_comma_opt) '}')
- ;
-
-argument_expression_list_opt
- :
- | argument_expression_list
- ;
-
-argument_expression_list
- : assignment_expression
- | argument_expression_list ',' assignment_expression
- ;
-
-unary_expression
- : postfix_expression
- | (?<ExpressionPreIncrement>INC_OP unary_expression)
- | (?<ExpressionPreDecrement>DEC_OP unary_expression)
- | (?<ExpressionAddressOf>'&' cast_expression)
- | (?<ExpressionDereference>'*' cast_expression)
- | (?<ExpressionPlus>'+' cast_expression)
- | (?<ExpressionMinus>'-' cast_expression)
- | (?<ExpressionBitwiseNot>'~' cast_expression)
- | (?<ExpressionLogicalNot>'!' cast_expression)
- | (?<ExpressionSizeOfExpression>SIZEOF unary_expression)
- | (?<ExpressionSizeOfType>SIZEOF '(' type_name ')')
- | (?<ExpressionAlignOfType>ALIGNOF '(' type_name ')')
- ;
-
-cast_expression
- : unary_expression
- | (?<ExpressionCast>'(' type_name ')' cast_expression)
- ;
-
-multiplicative_expression
- : cast_expression
- | (?<ExpressionMultiply>multiplicative_expression '*' cast_expression)
- | (?<ExpressionDivide>multiplicative_expression '/' cast_expression)
- | (?<ExpressionModulo>multiplicative_expression '%' cast_expression)
- ;
-
-additive_expression
- : multiplicative_expression
- | (?<ExpressionAdd>additive_expression '+' multiplicative_expression)
- | (?<ExpressionSubtract>additive_expression '-' multiplicative_expression)
- ;
-
-shift_expression
- : additive_expression
- | (?<ExpressionShiftLeft>shift_expression LEFT_OP additive_expression)
- | (?<ExpressionShiftRight>shift_expression RIGHT_OP additive_expression)
- ;
-
-relational_expression
- : shift_expression
- | (?<ExpressionLessThan>relational_expression '<' shift_expression)
- | (?<ExpressionGreaterThan>relational_expression '>' shift_expression)
- | (?<ExpressionLessThanOrEqual>relational_expression LE_OP shift_expression)
- | (?<ExpressionGreaterThanOrEqual>relational_expression GE_OP shift_expression)
- ;
-
-equality_expression
- : relational_expression
- | (?<ExpressionEqual>equality_expression EQ_OP relational_expression)
- | (?<ExpressionNotEqual>equality_expression NE_OP relational_expression)
- ;
-
-and_expression
- : equality_expression
- | (?<ExpressionBitwiseAnd>and_expression '&' equality_expression)
- ;
-
-exclusive_or_expression
- : and_expression
- | (?<ExpressionExclusiveOr>exclusive_or_expression '^' and_expression)
- ;
-
-inclusive_or_expression
- : exclusive_or_expression
- | (?<ExpressionBitwiseOr>inclusive_or_expression '|' exclusive_or_expression)
- ;
-
-logical_and_expression
- : inclusive_or_expression
- | (?<ExpressionLogicalAnd>logical_and_expression AND_OP inclusive_or_expression)
- ;
-
-logical_or_expression
- : logical_and_expression
- | (?<ExpressionLogicalOr>logical_or_expression OR_OP logical_and_expression)
- ;
-
-conditional_expression
- : logical_or_expression
- | (?<ExpressionConditional>logical_or_expression '?' expression ':' conditional_expression)
- ;
-
-assignment_expression_or_asterisk_opt
- : (?<ExpressionEmpty>)
- | (?<ExpressionAsterisk>'*')
- | assignment_expression
- ;
-
-assignment_expression
- : conditional_expression
- | (?<ExpressionAssignment>unary_expression '=' assignment_expression)
- | (?<ExpressionMultiplyAssignment>unary_expression MUL_ASSIGN assignment_expression)
- | (?<ExpressionDivideAssignment>unary_expression DIV_ASSIGN assignment_expression)
- | (?<ExpressionModuloAssignment>unary_expression MOD_ASSIGN assignment_expression)
- | (?<ExpressionAddAssignment>unary_expression ADD_ASSIGN assignment_expression)
- | (?<ExpressionSubtractAssignment>unary_expression SUB_ASSIGN assignment_expression)
- | (?<ExpressionLeftShiftAssignment>unary_expression LEFT_ASSIGN assignment_expression)
- | (?<ExpressionRightShiftAssignment>unary_expression RIGHT_ASSIGN assignment_expression)
- | (?<ExpressionBitwiseAndAssignment>unary_expression AND_ASSIGN assignment_expression)
- | (?<ExpressionExclusiveOrAssignment>unary_expression XOR_ASSIGN assignment_expression)
- | (?<ExpressionBitwiseOrAssignment>unary_expression OR_ASSIGN assignment_expression)
- ;
-
-expression_opt
- : (?<ExpressionEmpty>)
- | expression
- ;
-
-expression
- : assignment_expression
- | (?<ExpressionComma>expression ',' assignment_expression)
- ;
-
-equals_constant_expression_opt
- : (?<ExpressionEmpty>)
- | '=' constant_expression
- ;
-
-constant_expression
- : conditional_expression
- ;
-
-declaration
- : (?<Declaration>(?<DeclarationSpecifierList>declaration_specifier_list) (?<InitDeclaratorList>init_declarator_list_opt) ';')
- | static_assert_declaration
- ;
-
-declaration_specifier_list
- : declaration_specifier
- | declaration_specifier_list declaration_specifier
- ;
-
-declaration_specifier
- : storage_class_specifier
- | type_specifier
- | type_qualifier
- | function_specifier
- | alignment_specifier
- ;
-
-init_declarator_list_opt
- :
- | init_declarator_list
- ;
-
-init_declarator_list
- : init_declarator
- | init_declarator_list ',' init_declarator
- ;
-
-init_declarator
- : (?<InitDeclarator>declarator equals_initializer_opt)
- ;
-
-storage_class_specifier
- : (?<StorageClassSpecifier n="0">TYPEDEF)
- | (?<StorageClassSpecifier n="1">EXTERN)
- | (?<StorageClassSpecifier n="2">STATIC)
- | (?<StorageClassSpecifier n="3">THREAD_LOCAL)
- | (?<StorageClassSpecifier n="4">AUTO)
- | (?<StorageClassSpecifier n="5">REGISTER)
- ;
-
-type_specifier
- : (?<TypeSpecifier n="0">VOID)
- | (?<TypeSpecifier n="1">CHAR)
- | (?<TypeSpecifier n="2">SHORT)
- | (?<TypeSpecifier n="3">INT)
- | (?<TypeSpecifier n="4">LONG)
- | (?<TypeSpecifier n="5">FLOAT)
- | (?<TypeSpecifier n="6">DOUBLE)
- | (?<TypeSpecifier n="7">SIGNED)
- | (?<TypeSpecifier n="8">UNSIGNED)
- | (?<TypeSpecifier n="9">BOOL)
- | (?<TypeSpecifier n="10">COMPLEX)
- | (?<TypeSpecifier n="11">IMAGINARY)
- | atomic_type_specifier
- | struct_specifier
- | union_specifier
- | enum_specifier
- | TYPEDEF_NAME
- ;
-
-struct_specifier
- : (?<StructSpecifier>STRUCT identifier_opt '{' (?<StructDeclarationList>struct_declaration_list_opt) '}')
- | (?<StructSpecifier>STRUCT IDENTIFIER)
- ;
-
-union_specifier
- : (?<UnionSpecifier>UNION identifier_opt '{' (?<StructDeclarationList>struct_declaration_list_opt) '}')
- | (?<UnionSpecifier>UNION IDENTIFIER)
- ;
-
-struct_declaration_list_opt
- :
- | struct_declaration_list
- ;
-
-struct_declaration_list
- : struct_declaration
- | struct_declaration_list struct_declaration
- ;
-
-struct_declaration
- : (?<StructDeclaration>(?<SpecifierQualifierList>specifier_qualifier_list) (?<StructDeclaratorList>struct_declarator_list_opt) ';')
- | static_assert_declaration
- ;
-
-specifier_qualifier_list
- : specifier_qualifier
- | specifier_qualifier_list specifier_qualifier
- ;
-
-specifier_qualifier
- : type_specifier
- | type_qualifier
- ;
-
-struct_declarator_list_opt
- :
- | struct_declarator_list
- ;
-
-struct_declarator_list
- : struct_declarator
- | struct_declarator_list ',' struct_declarator
- ;
-
-struct_declarator
- : (?<StructDeclarator>declarator_opt ':' constant_expression)
- | declarator
- ;
-
-enum_specifier
- : (?<EnumSpecifier>ENUM identifier_opt '{' (?<EnumeratorList>enumerator_list_comma_opt) '}')
- | (?<EnumSpecifier>ENUM IDENTIFIER)
- ;
-
-enumerator_list_comma_opt
- :
- | enumerator_list
- | enumerator_list ','
- ;
-
-enumerator_list
- : enumerator
- | enumerator_list ',' enumerator
- ;
-
-enumerator
- : (?<Enumerator>enumeration_constant equals_constant_expression_opt)
- ;
-
-atomic_type_specifier
- : ATOMIC '(' type_name ')'
- ;
-
-type_qualifier_or_static_list_opt
- :
- | type_qualifier_or_static_list
- ;
-
-type_qualifier_or_static_list
- : type_qualifier_or_static
- | type_qualifier_or_static_list type_qualifier_or_static
- ;
-
-type_qualifier_or_static
- : type_qualifier
- | (?<StorageClassSpecifier n="2">STATIC)
- ;
-
-type_qualifier
- : (?<TypeQualifier n="0">CONST)
- | (?<TypeQualifier n="1">RESTRICT)
- | (?<TypeQualifier n="2">VOLATILE)
- | (?<TypeQualifier n="3">ATOMIC)
- ;
-
-function_specifier
- : (?<FunctionSpecifier n="0">INLINE)
- | (?<FunctionSpecifier n="1">NORETURN)
- ;
-
-alignment_specifier
- : (?<AlignAsType>ALIGNAS '(' type_name ')')
- | (?<AlignAsExpression>ALIGNAS '(' constant_expression ')')
- ;
-
-declarator_opt
- : (?<DeclaratorEmpty>)
- | declarator
- ;
-
-declarator
- : direct_declarator
- | (?<DeclaratorPointer>'*' (?<TypeQualifierList>type_qualifier_list_opt) declarator)
- ;
-
-direct_declarator
- : (?<DeclaratorIdentifier>IDENTIFIER)
- | '(' declarator ')'
- | (?<DeclaratorArray>direct_declarator '[' (?<TypeQualifierOrStaticList>type_qualifier_or_static_list_opt) assignment_expression_or_asterisk_opt ']')
- | (?<DeclaratorFunctionOldStyle>direct_declarator '(' (?<IdentifierList>identifier_list_opt) ')')
- | (?<DeclaratorFunction>direct_declarator '(' (?<ParameterDeclarationList>parameter_declaration_list) comma_ellipsis_opt ')')
- ;
-
-type_qualifier_list_opt
- :
- | type_qualifier_list
- ;
-
-type_qualifier_list
- : type_qualifier
- | type_qualifier_list type_qualifier
- ;
-
-parameter_declaration_list
- : parameter_declaration
- | parameter_declaration_list ',' parameter_declaration
- ;
-
-parameter_declaration
- : (?<ParameterDeclaration>(?<DeclarationSpecifierList>declaration_specifier_list) declarator)
- | (?<ParameterDeclaration>(?<DeclarationSpecifierList>declaration_specifier_list) abstract_declarator)
- ;
-
-identifier_list_opt
- :
- | identifier_list
- ;
-
-identifier_list
- : IDENTIFIER
- | identifier_list ',' IDENTIFIER
- ;
-
-type_name
- : (?<TypeName>(?<SpecifierQualifierList>specifier_qualifier_list) abstract_declarator)
- ;
-
-abstract_declarator
- : direct_abstract_declarator_opt
- | (?<DeclaratorPointer>'*' (?<TypeQualifierList>type_qualifier_list_opt) abstract_declarator)
- ;
-
-direct_abstract_declarator_opt
- : (?<DeclaratorAbstract>)
- | direct_abstract_declarator
- ;
-
-direct_abstract_declarator
- : '(' direct_abstract_declarator ')'
- | '(' (?<DeclaratorPointer>'*' (?<TypeQualifierList>type_qualifier_list_opt) abstract_declarator) ')'
- | (?<DeclaratorArray>(?<DeclaratorAbstract>)'[' (?<TypeQualifierOrStaticList>type_qualifier_or_static_list_opt) assignment_expression_or_asterisk_opt ']')
- | (?<DeclaratorFunction>(?<DeclaratorAbstract>)'('(?<ParameterDeclarationList>)(?<CommaEllipsisEmpty>) ')')
- | (?<DeclaratorFunction>(?<DeclaratorAbstract>)'(' (?<ParameterDeclarationList>parameter_declaration_list) comma_ellipsis_opt ')')
- | (?<DeclaratorArray>direct_abstract_declarator '[' (?<TypeQualifierOrStaticList>type_qualifier_or_static_list_opt) assignment_expression_or_asterisk_opt ']')
- | (?<DeclaratorFunction>direct_abstract_declarator '('(?<ParameterDeclarationList>)(?<CommaEllipsisEmpty>) ')')
- | (?<DeclaratorFunction>direct_abstract_declarator '(' (?<ParameterDeclarationList>parameter_declaration_list) comma_ellipsis_opt ')')
- ;
-
-equals_initializer_opt
- : (?<EqualsInitializerEmpty>)
- | '=' initializer
- ;
-
-initializer
- : '{' (?<DesignatorInitializerList>designator_initializer_list_comma_opt) '}'
- | assignment_expression
- ;
-
-designator_initializer_list_comma_opt
- :
- | designator_initializer_list
- | designator_initializer_list ','
- ;
-
-designator_initializer_list
- : designator_initializer
- | designator_initializer_list ',' designator_initializer
- ;
-
-designator_initializer
- : (?<DesignatorInitializer>(?<DesignatorList>designator_list_equals_opt) initializer)
- ;
-
-designator_list_equals_opt
- :
- | designator_list '='
- ;
-
-designator_list
- : designator
- | designator_list designator
- ;
-
-designator
- : (?<DesignatorIndex>'[' constant_expression ']')
- | (?<DesignatorField>'.' IDENTIFIER)
- ;
-
-static_assert_declaration
- : (?<StaticAssertDeclaration>STATIC_ASSERT '(' constant_expression ',' STRING_LITERAL ')' ';')
- ;
-
-statement
- : (?<StatementLabel>IDENTIFIER ':' statement)
- | (?<StatementCase>CASE constant_expression ':' statement)
- | (?<StatementDefault>DEFAULT ':' statement)
- | (?<StatementBlock>'{' (?<BlockItemList>block_item_list_opt) '}')
- | (?<StatementExpression>expression_opt ';')
- | (?<StatementIfElse>IF '(' expression ')' statement ELSE statement)
- | (?<StatementIf>IF '(' expression ')' statement)
- | (?<StatementSwitch>SWITCH '(' expression ')' statement)
- | (?<StatementWhile>WHILE '(' expression ')' statement)
- | (?<StatementDoWhile>DO statement WHILE '(' expression ')' ';')
- | (?<StatementFor>FOR '(' expression_opt ';' expression_opt ';' expression_opt ')' statement)
- | (?<StatementFor>FOR '(' declaration expression_opt ';' expression_opt ')' statement)
- | (?<StatementGoto>GOTO IDENTIFIER ';')
- | (?<StatementContinue>CONTINUE ';')
- | (?<StatementBreak>BREAK ';')
- | (?<StatementReturn>RETURN expression_opt ';')
- ;
-
-block_item_list_opt
- :
- | block_item_list
- ;
-
-block_item_list
- : block_item
- | block_item_list block_item
- ;
-
-block_item
- : declaration
- | statement
- ;
-
-translation_unit_opt
- :
- | translation_unit
- ;
-
-translation_unit
- : external_declaration
- | translation_unit external_declaration
- ;
-
-external_declaration
- : function_definition
- | declaration
- ;
-
-function_definition
- : (?<FunctionDefinition>(?<DeclarationSpecifierList>declaration_specifier_list) declarator (?<DeclarationList>declaration_list_opt) '{' (?<BlockItemList>block_item_list_opt) '}')
- ;
-
-declaration_list_opt
- :
- | declaration_list
- ;
-
-declaration_list
- : declaration
- | declaration_list declaration
- ;
-
-identifier_opt
- : (?<IdentifierEmpty>)
- | IDENTIFIER
- ;
-
-comma_ellipsis_opt
- : (?<CommaEllipsisEmpty>)
- | (?<CommaEllipsis>',' ELLIPSIS)
- ;
-
+++ /dev/null
-import dfa
-
-# GENERATE DFA BEGIN
-_dfa = dfa.DFA([('', {}), ('', {}), ('AUTO', {}), ('BREAK', {}), ('CASE', {}),
-('CHAR', {}), ('CONST', {}), ('CONTINUE', {}), ('DEFAULT', {}), ('DO', {}), (
-'DOUBLE', {}), ('ELSE', {}), ('ENUM', {}), ('EXTERN', {}), ('FLOAT', {}), (
-'FOR', {}), ('GOTO', {}), ('IF', {}), ('INLINE', {}), ('INT', {}), ('LONG', {}
-), ('REGISTER', {}), ('RESTRICT', {}), ('RETURN', {}), ('SHORT', {}), (
-'SIGNED', {}), ('SIZEOF', {}), ('STATIC', {}), ('STRUCT', {}), ('SWITCH', {}),
-('TYPEDEF', {}), ('UNION', {}), ('UNSIGNED', {}), ('VOID', {}), ('VOLATILE', {}
-), ('WHILE', {}), ('ALIGNAS', {}), ('ALIGNOF', {}), ('ATOMIC', {}), ('BOOL', {}
-), ('COMPLEX', {}), ('GENERIC', {}), ('IMAGINARY', {}), ('NORETURN', {}), (
-'STATIC_ASSERT', {}), ('THREAD_LOCAL', {}), ('FUNC_NAME', {}), ('TYPEDEF_NAME',
-{}), ('IDENTIFIER', {}), ('Identifier', {}), ('', {}), ('', {}), ('I_CONSTANT',
-{}), ('ExpressionIntLiteral', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('',
-{}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('I_CONSTANT',
-{}), ('ExpressionIntLiteral', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('',
-{}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('I_CONSTANT', {}), (
-'ExpressionIntLiteral', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}),
-('', {}), ('', {}), ('', {}), ('', {}), ('I_CONSTANT', {}), (
-'ExpressionCharConstant', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}
-), ('', {}), ('F_CONSTANT', {}), ('ExpressionFloatLiteral', {}), ('', {}), ('',
-{}), ('', {}), ('', {}), ('', {}), ('', {}), ('F_CONSTANT', {}), (
-'ExpressionFloatLiteral', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}
-), ('', {}), ('', {}), ('F_CONSTANT', {}), ('ExpressionFloatLiteral', {}), ('',
-{}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('F_CONSTANT', {}), (
-'ExpressionFloatLiteral', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}
-), ('', {}), ('', {}), ('', {}), ('F_CONSTANT', {}), ('ExpressionFloatLiteral',
-{}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('',
-{}), ('', {}), ('F_CONSTANT', {}), ('ExpressionFloatLiteral', {}), ('', {}), (
-'', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}), (
-'STRING_LITERAL', {}), ('ExpressionStringLiteral', {}), ('', {}), ('', {}), (
-'', {}), ('Text', {}), ('', {}), ('', {}), ('', {}), ('', {}), ('', {}), (
-'ELLIPSIS', {}), ('RIGHT_ASSIGN', {}), ('LEFT_ASSIGN', {}), ('ADD_ASSIGN', {}),
-('SUB_ASSIGN', {}), ('MUL_ASSIGN', {}), ('DIV_ASSIGN', {}), ('MOD_ASSIGN', {}),
-('AND_ASSIGN', {}), ('XOR_ASSIGN', {}), ('OR_ASSIGN', {}), ('RIGHT_OP', {}), (
-'LEFT_OP', {}), ('INC_OP', {}), ('DEC_OP', {}), ('PTR_OP', {}), ('AND_OP', {}),
-('OR_OP', {}), ('LE_OP', {}), ('GE_OP', {}), ('EQ_OP', {}), ('NE_OP', {}), (
-'X_3B', {}), ('X_7B', {}), ('', {}), ('X_7D', {}), ('', {}), ('X_2C', {}), (
-'X_3A', {}), ('X_3D', {}), ('X_28', {}), ('X_29', {}), ('X_5B', {}), ('', {}),
-('X_5D', {}), ('', {}), ('X_2E', {}), ('X_26', {}), ('X_21', {}), ('X_7E', {}),
-('X_2D', {}), ('X_2B', {}), ('X_2A', {}), ('X_2F', {}), ('X_25', {}), ('X_3C',
-{}), ('X_3E', {}), ('X_5E', {}), ('X_7C', {}), ('X_3F', {}), ('', {}), ('', {}
-), ('', {})], [([256], [0], 0), ([9, 10, 11, 13, 32, 33, 34, 35, 37, 38, 39,
-40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 58, 59, 60, 61, 62, 63, 64, 65, 76, 77,
-85, 86, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
-108, 109, 114, 115, 116, 117, 118, 119, 120, 123, 124, 125, 126, 127, 256], [2,
-3, 4, 3, 2, 3, 5, 6, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-21, 22, 23, 24, 25, 2, 26, 27, 26, 28, 26, 29, 2, 30, 31, 32, 2, 33, 34, 35,
-36, 37, 38, 39, 26, 40, 26, 41, 26, 42, 43, 44, 45, 46, 47, 26, 48, 49, 50, 51,
-2], -1), ([9, 13, 32, 33, 256], [52, 53, 52, 53, 52], 1), ([61, 62, 256], [52,
-54, 52], 1), ([10, 11, 34, 35, 92, 93, 256], [55, 56, 55, 57, 55, 58, 55], 3),
-([61, 62, 63, 256], [59, 60, 61, 59], 2), ([38, 39, 61, 62, 256], [59, 62, 59,
-63, 59], 2), ([10, 11, 39, 40, 92, 93, 256], [64, 59, 64, 59, 64, 65, 64], 2),
-([61, 62, 256], [52, 66, 52], 1), ([43, 44, 61, 62, 256], [59, 67, 59, 68, 59],
-2), ([45, 46, 61, 62, 63, 256], [56, 69, 56, 70, 71, 56], 3), ([46, 47, 48, 58,
-256], [59, 72, 59, 73, 59], 2), ([42, 43, 47, 48, 61, 62, 256], [56, 74, 56,
-75, 56, 76, 56], 3), ([46, 47, 48, 56, 58, 69, 70, 76, 77, 85, 86, 88, 89, 101,
-102, 108, 109, 117, 118, 120, 121, 256], [77, 78, 77, 79, 80, 77, 81, 77, 82,
-77, 83, 77, 84, 77, 81, 77, 85, 77, 86, 77, 84, 77], 17), ([46, 47, 48, 58, 69,
-70, 76, 77, 85, 86, 101, 102, 108, 109, 117, 118, 256], [87, 88, 87, 89, 87,
-90, 87, 91, 87, 92, 87, 90, 87, 93, 87, 94, 87], 13), ([62, 63, 256], [52, 95,
-52], 1), ([37, 38, 58, 59, 60, 61, 62, 256], [96, 97, 96, 98, 96, 99, 100, 96],
-5), ([61, 62, 256], [52, 101, 52], 1), ([61, 62, 63, 256], [56, 102, 103, 56],
-3), ([48, 58, 65, 91, 95, 96, 97, 123, 256], [52, 104, 52, 104, 52, 104, 52,
-104, 52], 1), ([34, 35, 39, 40, 48, 58, 65, 91, 95, 96, 97, 123, 256], [56,
-105, 56, 106, 56, 107, 56, 107, 56, 107, 56, 107, 56], 3), ([61, 62, 256], [52,
-108, 52], 1), ([48, 58, 65, 66, 67, 68, 71, 72, 73, 74, 78, 79, 83, 84, 85, 91,
-95, 96, 97, 123, 256], [109, 110, 109, 111, 112, 113, 110, 114, 110, 115, 110,
-116, 110, 117, 118, 110, 109, 119, 109, 110, 109], 12), ([48, 58, 65, 91, 95,
-96, 97, 117, 118, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 121, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 111, 112, 114, 115, 123, 256], [56, 122,
-56, 122, 56, 122, 56, 122, 123, 122, 124, 122, 56], 3), ([48, 58, 65, 91, 95,
-96, 97, 98, 104, 105, 111, 112, 123, 256], [96, 125, 96, 125, 96, 125, 96, 126,
-125, 127, 125, 128, 125, 96], 5), ([48, 58, 65, 91, 95, 96, 97, 101, 102, 111,
-112, 123, 256], [129, 130, 129, 130, 129, 130, 129, 130, 131, 130, 132, 130,
-129], 4), ([48, 58, 65, 91, 95, 96, 97, 108, 109, 110, 111, 120, 121, 123, 256
-], [129, 130, 129, 130, 129, 130, 129, 130, 133, 130, 134, 130, 135, 130, 129],
-4), ([48, 58, 65, 91, 95, 96, 97, 108, 109, 111, 112, 123, 256], [56, 122, 56,
-122, 56, 122, 56, 122, 136, 122, 137, 122, 56], 3), ([48, 58, 65, 91, 95, 96,
-97, 111, 112, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 138, 120, 59], 2
-), ([48, 58, 65, 91, 95, 96, 97, 102, 103, 110, 111, 123, 256], [129, 130, 129,
-130, 129, 130, 129, 130, 139, 130, 140, 130, 129], 4), ([48, 58, 65, 91, 95,
-96, 97, 111, 112, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 141, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102, 123, 256], [129, 130, 129, 130,
-129, 130, 129, 130, 142, 130, 129], 4), ([48, 58, 65, 91, 95, 96, 97, 99, 100,
-104, 105, 106, 116, 117, 119, 120, 123, 256], [143, 144, 143, 144, 143, 144,
-143, 144, 145, 144, 146, 147, 144, 148, 144, 149, 144, 143], 9), ([48, 58, 65,
-91, 95, 96, 97, 121, 122, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 150,
-120, 59], 2), ([34, 35, 39, 40, 48, 56, 57, 58, 65, 91, 95, 96, 97, 110, 111,
-123, 256], [151, 152, 151, 153, 151, 154, 155, 154, 151, 154, 151, 154, 151,
-154, 156, 154, 151], 6), ([48, 58, 65, 91, 95, 96, 97, 111, 112, 123, 256], [
-56, 122, 56, 122, 56, 122, 56, 122, 157, 122, 56], 3), ([48, 58, 65, 91, 95,
-96, 97, 104, 105, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 158, 120, 59
-], 2), ([61, 62, 124, 125, 256], [59, 159, 59, 160, 59], 2), ([9, 13, 32, 33,
-34, 35, 76, 77, 85, 86, 117, 118, 256], [151, 161, 151, 161, 151, 162, 151,
-163, 151, 164, 151, 165, 151], 6), ([34, 35, 39, 40, 48, 56, 63, 64, 92, 93,
-97, 99, 102, 103, 110, 111, 114, 115, 116, 117, 118, 119, 120, 121, 256], [56,
-166, 56, 166, 56, 167, 56, 166, 56, 166, 56, 166, 56, 166, 56, 166, 56, 166,
-56, 166, 56, 166, 56, 168, 56], 3), ([10, 11, 39, 40, 92, 93, 256], [169, 56,
-169, 170, 169, 171, 169], 3), ([34, 35, 39, 40, 48, 56, 63, 64, 92, 93, 97, 99,
-102, 103, 110, 111, 114, 115, 116, 117, 118, 119, 120, 121, 256], [56, 172, 56,
-172, 56, 173, 56, 172, 56, 172, 56, 172, 56, 172, 56, 172, 56, 172, 56, 172,
-56, 172, 56, 174, 56], 3), ([46, 47, 256], [52, 175, 52], 1), ([48, 58, 69, 70,
-71, 76, 77, 101, 102, 103, 108, 109, 256], [151, 176, 151, 177, 178, 151, 179,
-151, 177, 180, 151, 181, 151], 6), ([10, 11, 256], [182, 52, 182], 1), ([48,
-58, 69, 70, 71, 76, 77, 101, 102, 103, 108, 109, 256], [151, 176, 151, 183,
-184, 151, 185, 151, 183, 186, 151, 187, 151], 6), ([46, 47, 48, 56, 58, 69, 70,
-76, 77, 85, 86, 101, 102, 108, 109, 117, 118, 256], [87, 88, 87, 188, 189, 87,
-90, 87, 190, 87, 191, 87, 90, 87, 192, 87, 193, 87], 13), ([46, 47, 48, 58, 69,
-70, 101, 102, 256], [151, 194, 151, 195, 151, 196, 151, 196, 151], 6), ([43,
-44, 45, 46, 48, 58, 256], [59, 197, 59, 197, 59, 198, 59], 2), ([76, 77, 85,
-86, 117, 118, 256], [56, 199, 56, 200, 56, 201, 56], 3), ([76, 77, 108, 109,
-256], [129, 202, 129, 203, 129], 4), ([46, 47, 48, 58, 65, 71, 97, 103, 256], [
-96, 204, 96, 205, 96, 205, 96, 205, 96], 5), ([85, 86, 108, 109, 117, 118, 256
-], [56, 200, 56, 199, 56, 201, 56], 3), ([76, 77, 85, 86, 117, 118, 256], [56,
-206, 56, 207, 56, 208, 56], 3), ([76, 77, 108, 109, 256], [129, 209, 129, 210,
-129], 4), ([85, 86, 108, 109, 117, 118, 256], [56, 207, 56, 206, 56, 208, 56],
-3), ([61, 62, 256], [52, 211, 52], 1), ([61, 62, 256], [52, 212, 52], 1), ([48,
-58, 65, 91, 95, 96, 97, 108, 109, 116, 117, 123, 256], [129, 130, 129, 130,
-129, 130, 129, 130, 213, 130, 214, 130, 129], 4), ([48, 58, 65, 91, 95, 96, 97,
-111, 112, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 215, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 111, 112, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 216, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 217, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 109, 110, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 218, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 111, 112, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 219, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 116, 117,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 220, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 104, 105, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-221, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 102, 103, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 222, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-116, 117, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 223, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 111, 112, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 224, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 225, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 115, 116, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 226, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 98, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 227, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 110, 111, 123, 256], [56,
-122, 56, 122, 56, 122, 56, 122, 228, 122, 56], 3), ([48, 58, 65, 91, 95, 96,
-97, 102, 103, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 229, 120, 59], 2
-), ([48, 58, 65, 91, 95, 96, 97, 117, 118, 123, 256], [59, 120, 59, 120, 59,
-120, 59, 120, 230, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 115, 116, 123,
-256], [59, 120, 59, 120, 59, 120, 59, 120, 231, 120, 59], 2), ([48, 58, 65, 91,
-95, 96, 97, 117, 118, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 232, 120,
-59], 2), ([48, 58, 65, 91, 95, 96, 97, 116, 117, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 233, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 111, 112,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 234, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 114, 115, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-235, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 116, 117, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 236, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-108, 109, 116, 117, 123, 256], [56, 122, 56, 122, 56, 122, 56, 122, 237, 122,
-238, 122, 56], 3), ([48, 58, 65, 91, 95, 96, 97, 110, 111, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 239, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-103, 104, 115, 116, 117, 123, 256], [129, 130, 129, 130, 129, 130, 129, 130,
-240, 130, 241, 242, 130, 129], 4), ([48, 58, 65, 91, 95, 96, 97, 98, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 243, 120, 59], 2), ([48, 58, 65, 91, 95, 96,
-97, 111, 112, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 244, 120, 59], 2
-), ([48, 58, 65, 91, 95, 96, 97, 103, 104, 122, 123, 256], [129, 130, 129, 130,
-129, 130, 129, 130, 245, 130, 246, 129], 4), ([48, 58, 65, 91, 95, 96, 97, 98,
-114, 115, 123, 256], [56, 122, 56, 122, 56, 122, 56, 247, 122, 248, 122, 56], 3
-), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256], [59, 120, 59, 120, 59,
-120, 59, 120, 249, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 112, 113, 123,
-256], [59, 120, 59, 120, 59, 120, 59, 120, 250, 120, 59], 2), ([34, 35, 48, 58,
-65, 91, 95, 96, 97, 123, 256], [59, 251, 59, 252, 59, 252, 59, 252, 59, 252, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 115, 116, 123, 256], [56, 122,
-56, 122, 56, 122, 56, 122, 253, 122, 254, 122, 56], 3), ([48, 58, 65, 91, 95,
-96, 97, 105, 106, 108, 109, 123, 256], [56, 122, 56, 122, 56, 122, 56, 122,
-255, 122, 256, 122, 56], 3), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 257, 120, 59], 2), ([10, 11, 34, 35, 92,
-93, 256], [258, 56, 258, 259, 258, 260, 258], 3), ([34, 35, 256], [52, 261, 52
-], 1), ([34, 35, 56, 57, 256], [59, 262, 59, 263, 59], 2), ([10, 11, 34, 35,
-48, 56, 92, 93, 256], [264, 129, 264, 265, 264, 266, 264, 267, 264], 4), ([48,
-58, 65, 71, 97, 103, 256], [52, 268, 52, 268, 52, 268, 52], 1), ([34, 35, 39,
-40, 48, 56, 63, 64, 92, 93, 97, 99, 102, 103, 110, 111, 114, 115, 116, 117,
-118, 119, 120, 121, 256], [56, 172, 56, 172, 56, 269, 56, 172, 56, 172, 56,
-172, 56, 172, 56, 172, 56, 172, 56, 172, 56, 172, 56, 270, 56], 3), ([10, 11,
-39, 40, 48, 56, 92, 93, 256], [271, 129, 271, 272, 271, 273, 271, 274, 271], 4
-), ([48, 58, 65, 71, 97, 103, 256], [52, 275, 52, 275, 52, 275, 52], 1), ([43,
-44, 45, 46, 48, 58, 256], [59, 276, 59, 276, 59, 277, 59], 2), ([43, 44, 45,
-46, 48, 58, 256], [59, 278, 59, 278, 59, 279, 59], 2), ([48, 58, 256], [52,
-280, 52], 1), ([48, 58, 70, 71, 76, 77, 102, 103, 108, 109, 256], [96, 281, 96,
-282, 96, 283, 96, 284, 96, 285, 96], 5), ([85, 86, 117, 118, 256], [59, 286,
-59, 287, 59], 2), ([76, 77, 256], [52, 288, 52], 1), ([108, 109, 256], [52,
-288, 52], 1), ([48, 58, 65, 71, 97, 103, 256], [52, 289, 52, 289, 52, 289, 52],
-1), ([46, 47, 48, 58, 65, 71, 76, 77, 80, 81, 85, 86, 97, 103, 108, 109, 112,
-113, 117, 118, 256], [87, 290, 87, 291, 87, 291, 87, 292, 87, 293, 87, 294, 87,
-291, 87, 295, 87, 293, 87, 296, 87], 13), ([85, 86, 117, 118, 256], [59, 297,
-59, 298, 59], 2), ([76, 77, 256], [52, 299, 52], 1), ([108, 109, 256], [52,
-299, 52], 1), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256], [56, 122, 56,
-122, 56, 122, 56, 122, 300, 122, 56], 3), ([48, 58, 65, 91, 95, 96, 97, 111,
-112, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 301, 120, 59], 2), ([48,
-58, 65, 91, 95, 96, 97, 111, 112, 123, 256], [59, 120, 59, 120, 59, 120, 59,
-120, 302, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 109, 110, 123, 256], [59,
-120, 59, 120, 59, 120, 59, 120, 303, 120, 59], 2), ([48, 58, 65, 91, 95, 96,
-97, 110, 111, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 304, 120, 59], 2
-), ([48, 58, 65, 91, 95, 96, 97, 98, 123, 256], [59, 120, 59, 120, 59, 120, 59,
-305, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 114, 115, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 306, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 98,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 307, 120, 59], 2), ([48, 58, 65, 91,
-95, 96, 97, 114, 115, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 308, 120,
-59], 2), ([48, 58, 65, 91, 95, 96, 97, 117, 118, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 309, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 111, 112,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 310, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 108, 109, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-311, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 98, 123, 256], [59, 120, 59,
-120, 59, 120, 59, 312, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 313, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 114, 115, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-314, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 115, 116, 117, 123, 256], [56,
-122, 56, 122, 56, 122, 56, 122, 315, 316, 122, 56], 3), ([48, 58, 65, 91, 95,
-96, 97, 98, 123, 256], [59, 120, 59, 120, 59, 120, 59, 317, 120, 59], 2), ([48,
-58, 65, 91, 95, 96, 97, 98, 99, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-318, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 319, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-109, 110, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 320, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 101, 102, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 321, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 98, 123, 256], [59,
-120, 59, 120, 59, 120, 59, 322, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-111, 112, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 323, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 324, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 103, 104, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 325, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 105, 106, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 326, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 116, 117, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 327, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 117, 118,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 328, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 110, 111, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-329, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 114, 115, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 330, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-110, 111, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 331, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 101, 102, 123, 256], [56, 122, 56, 122, 56, 122,
-56, 122, 332, 122, 56], 3), ([48, 58, 65, 91, 95, 96, 97, 116, 117, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 333, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 117, 118, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 334, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 116, 117, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 335, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 336, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 111, 112, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-337, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 338, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-100, 101, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 339, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 98, 123, 256], [59, 120, 59, 120, 59, 120, 59, 340,
-120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 108, 109, 123, 256], [59, 120, 59,
-120, 59, 120, 59, 120, 341, 120, 59], 2), ([9, 13, 32, 33, 34, 35, 76, 77, 85,
-86, 117, 118, 256], [151, 342, 151, 342, 151, 162, 151, 163, 151, 164, 151,
-165, 151], 6), ([34, 35, 39, 40, 48, 56, 63, 64, 92, 93, 97, 99, 102, 103, 110,
-111, 114, 115, 116, 117, 118, 119, 120, 121, 256], [56, 343, 56, 343, 56, 344,
-56, 343, 56, 343, 56, 343, 56, 343, 56, 343, 56, 343, 56, 343, 56, 343, 56,
-345, 56], 3), ([10, 11, 34, 35, 48, 56, 92, 93, 256], [264, 129, 264, 265, 264,
-346, 264, 267, 264], 4), ([10, 11, 34, 35, 48, 58, 65, 71, 92, 93, 97, 103, 256
-], [264, 129, 264, 265, 264, 347, 264, 347, 264, 267, 264, 347, 264], 4), ([10,
-11, 39, 40, 48, 56, 92, 93, 256], [271, 129, 271, 272, 271, 348, 271, 274, 271
-], 4), ([48, 58, 65, 71, 97, 103, 256], [52, 349, 52, 349, 52, 349, 52], 1), ([
-10, 11, 39, 40, 48, 56, 92, 93, 256], [271, 129, 271, 272, 271, 350, 271, 274,
-271], 4), ([10, 11, 39, 40, 48, 58, 65, 71, 92, 93, 97, 103, 256], [271, 129,
-271, 272, 271, 351, 271, 351, 271, 274, 271, 351, 271], 4), ([48, 58, 256], [
-52, 352, 52], 1), ([48, 58, 70, 71, 76, 77, 102, 103, 108, 109, 256], [96, 353,
-96, 354, 96, 355, 96, 356, 96, 357, 96], 5), ([48, 58, 256], [52, 358, 52], 1),
-([48, 58, 70, 71, 76, 77, 102, 103, 108, 109, 256], [96, 359, 96, 360, 96, 361,
-96, 362, 96, 363, 96], 5), ([48, 58, 65, 71, 80, 81, 97, 103, 112, 113, 256], [
-59, 364, 59, 364, 59, 365, 59, 364, 59, 365, 59], 2), ([48, 58, 65, 71, 80, 81,
-97, 103, 112, 113, 256], [59, 364, 59, 364, 59, 366, 59, 364, 59, 366, 59], 2),
-([76, 77, 85, 86, 117, 118, 256], [56, 367, 56, 368, 56, 369, 56], 3), ([43,
-44, 45, 46, 48, 58, 256], [59, 370, 59, 370, 59, 371, 59], 2), ([76, 77, 108,
-109, 256], [129, 372, 129, 373, 129], 4), ([85, 86, 108, 109, 117, 118, 256], [
-56, 368, 56, 367, 56, 369, 56], 3), ([48, 58, 65, 91, 95, 96, 97, 103, 104,
-123, 256], [56, 122, 56, 122, 56, 122, 56, 122, 374, 122, 56], 3), ([48, 58,
-65, 91, 95, 96, 97, 109, 110, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-375, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 108, 109, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 376, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-112, 113, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 377, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 101, 102, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 378, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 103, 104, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 379, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 101, 102, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 380, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 116, 117, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 381, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 382, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 110, 111, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-383, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 107, 108, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 384, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-116, 117, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 385, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 386, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 117, 118, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 387, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 108, 109, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 388, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 114, 115, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 389, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 116, 117,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 390, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 110, 111, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-391, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 115, 116, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 392, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-114, 115, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 393, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 114, 115, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 394, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 102, 103, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 395, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 116, 117, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 396, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 397, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 111, 112,
-123, 256], [56, 122, 56, 122, 56, 398, 56, 122, 399, 122, 56], 3), ([48, 58,
-65, 91, 95, 96, 97, 105, 106, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-400, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 99, 100, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 401, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 99,
-100, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 402, 120, 59], 2), ([48,
-58, 65, 91, 95, 96, 97, 100, 101, 123, 256], [59, 120, 59, 120, 59, 120, 59,
-120, 403, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 110, 111, 123, 256], [59,
-120, 59, 120, 59, 120, 59, 120, 404, 120, 59], 2), ([48, 58, 65, 91, 95, 96,
-97, 103, 104, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 405, 120, 59], 2
-), ([48, 58, 65, 91, 95, 96, 97, 116, 117, 123, 256], [59, 120, 59, 120, 59,
-120, 59, 120, 406, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102, 123,
-256], [59, 120, 59, 120, 59, 120, 59, 120, 407, 120, 59], 2), ([10, 11, 34, 35,
-48, 56, 92, 93, 256], [408, 129, 408, 409, 408, 410, 408, 411, 408], 4), ([48,
-58, 65, 71, 97, 103, 256], [52, 412, 52, 412, 52, 412, 52], 1), ([10, 11, 39,
-40, 48, 56, 92, 93, 256], [271, 129, 271, 272, 271, 350, 271, 274, 271], 4), ([
-10, 11, 39, 40, 48, 58, 65, 71, 92, 93, 97, 103, 256], [271, 129, 271, 272,
-271, 413, 271, 413, 271, 274, 271, 413, 271], 4), ([43, 44, 45, 46, 48, 58, 256
-], [59, 414, 59, 414, 59, 415, 59], 2), ([43, 44, 45, 46, 48, 58, 256], [59,
-416, 59, 416, 59, 417, 59], 2), ([85, 86, 117, 118, 256], [59, 418, 59, 419, 59
-], 2), ([48, 58, 256], [52, 420, 52], 1), ([48, 58, 70, 71, 76, 77, 102, 103,
-108, 109, 256], [96, 421, 96, 422, 96, 423, 96, 424, 96, 425, 96], 5), ([76,
-77, 256], [52, 426, 52], 1), ([108, 109, 256], [52, 426, 52], 1), ([48, 58, 65,
-91, 95, 96, 97, 110, 111, 123, 256], [56, 122, 56, 122, 56, 122, 56, 122, 427,
-122, 56], 3), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256], [59, 120, 59,
-120, 59, 120, 59, 120, 428, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 108,
-109, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 429, 120, 59], 2), ([48,
-58, 65, 91, 95, 96, 97, 114, 115, 123, 256], [59, 120, 59, 120, 59, 120, 59,
-120, 430, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256], [59,
-120, 59, 120, 59, 120, 59, 120, 431, 120, 59], 2), ([48, 58, 65, 91, 95, 96,
-97, 116, 117, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 432, 120, 59], 2
-), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256], [59, 120, 59, 120, 59,
-120, 59, 120, 433, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 98, 123, 256], [
-59, 120, 59, 120, 59, 120, 59, 434, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-99, 100, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 435, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 110, 111, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 436, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 108, 109, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 437, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 101, 102, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 438, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 110, 111, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 439, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 440, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 116, 117, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-441, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 442, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-110, 111, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 443, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 108, 109, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 444, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 100, 101, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 445, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 116, 117, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 311, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 102, 103, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 446, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 99, 100,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 447, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 116, 117, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-448, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 104, 105, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 449, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-101, 102, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 450, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 110, 111, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 451, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 452, 120, 59], 2), ([10, 11, 34, 35, 48,
-56, 92, 93, 256], [408, 129, 408, 409, 408, 453, 408, 411, 408], 4), ([10, 11,
-34, 35, 48, 58, 65, 71, 92, 93, 97, 103, 256], [408, 129, 408, 409, 408, 454,
-408, 454, 408, 411, 408, 454, 408], 4), ([48, 58, 256], [52, 455, 52], 1), ([
-48, 58, 70, 71, 76, 77, 102, 103, 108, 109, 256], [96, 456, 96, 457, 96, 458,
-96, 459, 96, 460, 96], 5), ([48, 58, 256], [52, 461, 52], 1), ([48, 58, 70, 71,
-76, 77, 102, 103, 108, 109, 256], [96, 462, 96, 463, 96, 464, 96, 465, 96, 466,
-96], 5), ([48, 58, 65, 91, 95, 96, 97, 98, 111, 112, 123, 256], [56, 122, 56,
-122, 56, 122, 56, 467, 122, 468, 122, 56], 3), ([48, 58, 65, 91, 95, 96, 97,
-99, 100, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 469, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 101, 102, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 470, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 105, 106, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 471, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 110, 111, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 472, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 117, 118, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 473, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 99, 100,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 474, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 100, 101, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-475, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 123, 256], [59, 120, 59, 120,
-59, 476, 59, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 117, 118, 123, 256], [
-59, 120, 59, 120, 59, 120, 59, 120, 477, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 116, 117, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 478, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 479, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 99, 100,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 480, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 98, 123, 256], [59, 120, 59, 120, 59, 120, 59, 481, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 102, 103, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 482, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 483, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 108, 109, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-484, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 115, 116, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 485, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-102, 103, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 486, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 120, 121, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 487, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 99, 100, 123, 256], [
-59, 120, 59, 120, 59, 120, 59, 120, 488, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 98, 123, 256], [59, 120, 59, 120, 59, 120, 59, 489, 120, 59], 2), ([48,
-58, 65, 91, 95, 96, 97, 114, 115, 123, 256], [59, 120, 59, 120, 59, 120, 59,
-120, 490, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 123, 256], [59, 120, 59,
-120, 59, 491, 59, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 123, 256], [59,
-120, 59, 120, 59, 492, 59, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 123, 256
-], [59, 120, 59, 120, 59, 493, 59, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-101, 102, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 494, 120, 59], 2), ([
-48, 58, 65, 91, 95, 96, 97, 114, 115, 123, 256], [59, 120, 59, 120, 59, 120,
-59, 120, 495, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 116, 117, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 496, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 103, 104, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 497, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 100, 101, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 498, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 101, 102,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 499, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 114, 115, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-500, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 110, 111, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 501, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 98,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 502, 120, 59], 2), ([48, 58, 65, 91,
-95, 96, 97, 108, 109, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 503, 120,
-59], 2), ([48, 58, 65, 91, 95, 96, 97, 115, 116, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 504, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 121, 122,
-123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 505, 120, 59], 2), ([48, 58,
-65, 91, 95, 96, 97, 115, 116, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120,
-506, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 111, 112, 123, 256], [59, 120,
-59, 120, 59, 120, 59, 120, 507, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97,
-123, 256], [59, 120, 59, 120, 59, 508, 59, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 115, 116, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 509, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 99, 100, 123, 256], [59, 120, 59, 120, 59,
-120, 59, 120, 510, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 116, 117, 123,
-256], [59, 120, 59, 120, 59, 120, 59, 120, 311, 120, 59], 2), ([48, 58, 65, 91,
-95, 96, 97, 101, 102, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 511, 120,
-59], 2), ([48, 58, 65, 91, 95, 96, 97, 98, 123, 256], [59, 120, 59, 120, 59,
-120, 59, 512, 120, 59], 2), ([48, 58, 65, 91, 95, 96, 97, 114, 115, 123, 256],
-[59, 120, 59, 120, 59, 120, 59, 120, 513, 120, 59], 2), ([48, 58, 65, 91, 95,
-96, 97, 108, 109, 123, 256], [59, 120, 59, 120, 59, 120, 59, 120, 514, 120, 59
-], 2), ([48, 58, 65, 91, 95, 96, 97, 116, 117, 123, 256], [59, 120, 59, 120,
-59, 120, 59, 120, 515, 120, 59], 2)], [(0, []), (1, [(1, 1), (1, 1), (1, 1), (
-1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (2, 1, 0), (3, 1), (2, 1, 2), (3, 1), (
-2, 1, 4), (3, 1), (2, 1, 6), (3, 1), (2, 1, 8), (3, 1), (2, 1, 10), (3, 1), (2,
-1, 12), (3, 1), (2, 1, 14), (3, 1), (2, 1, 16), (3, 1), (2, 1, 18), (3, 1), (2,
-1, 20), (3, 1), (2, 1, 22), (3, 1), (2, 1, 24), (3, 1), (2, 1, 26), (3, 1), (2,
-1, 28), (3, 1), (2, 1, 30), (3, 1), (2, 1, 32), (3, 1), (2, 1, 34), (3, 1), (2,
-1, 36), (3, 1), (2, 1, 38), (3, 1), (2, 1, 40), (3, 1), (2, 1, 42), (3, 1), (2,
-1, 44), (3, 1), (2, 1, 46), (3, 1), (2, 1, 48), (3, 1), (2, 1, 50), (3, 1), (2,
-1, 52), (3, 1), (2, 1, 54), (3, 1), (2, 1, 56), (3, 1), (2, 1, 58), (3, 1), (2,
-1, 60), (3, 1), (2, 1, 62), (3, 1), (2, 1, 64), (3, 1), (2, 1, 66), (3, 1), (2,
-1, 68), (3, 1), (2, 1, 70), (3, 1), (2, 1, 72), (3, 1), (2, 1, 74), (3, 1), (2,
-1, 76), (3, 1), (2, 1, 78), (3, 1), (2, 1, 80), (3, 1), (2, 1, 82), (3, 1), (2,
-1, 84), (3, 1), (2, 1, 86), (3, 1), (2, 1, 88), (3, 1), (2, 1, 90), (3, 1), (2,
-1, 92), (3, 1), (2, 1, 94), (1, 1), (1, 1), (3, 1), (3, 1), (3, 1), (2, 1, 96),
-(2, 1, 98), (2, 1, 100), (3, 1), (2, 1, 104), (2, 1, 106), (2, 1, 108), (2, 1,
-110), (3, 1), (2, 1, 130), (2, 1, 132), (2, 1, 134), (3, 1), (2, 1, 154), (2,
-1, 156), (3, 1), (2, 1, 176), (2, 1, 178), (1, 1), (2, 1, 180), (2, 1, 182), (
-1, 1), (1, 1), (3, 1), (3, 1), (3, 1), (3, 1), (2, 1, 192), (2, 1, 194), (2, 1,
-196), (3, 1), (2, 1, 208), (2, 1, 210), (1, 1), (2, 1, 212), (3, 1), (3, 1), (
-2, 1, 226), (2, 1, 228), (2, 1, 230), (3, 1), (2, 1, 242), (2, 1, 244), (2, 1,
-246), (2, 1, 248), (3, 1), (2, 1, 262), (2, 1, 264), (2, 1, 266), (2, 1, 268),
-(3, 1), (2, 1, 284), (2, 1, 286), (2, 1, 288), (2, 1, 290), (3, 1), (2, 1, 304
-), (2, 1, 306), (2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312), (1, 1), (1, 1),
-(1, 1), (3, 1), (3, 1), (3, 1), (3, 1), (3, 1), (2, 1, 326), (3, 1), (2, 1, 328
-), (3, 1), (2, 1, 330), (3, 1), (2, 1, 332), (3, 1), (2, 1, 334), (3, 1), (2,
-1, 336), (3, 1), (2, 1, 338), (3, 1), (2, 1, 340), (3, 1), (2, 1, 342), (3, 1),
-(2, 1, 344), (3, 1), (2, 1, 346), (3, 1), (2, 1, 348), (3, 1), (2, 1, 350), (3,
-1), (2, 1, 352), (3, 1), (2, 1, 354), (3, 1), (2, 1, 356), (3, 1), (2, 1, 358),
-(3, 1), (2, 1, 360), (3, 1), (2, 1, 362), (3, 1), (2, 1, 364), (3, 1), (2, 1,
-366), (3, 1), (2, 1, 368), (3, 1), (2, 1, 370), (3, 1), (2, 1, 372), (2, 1, 374
-), (1, 1), (3, 1), (3, 1), (2, 1, 376), (2, 1, 378), (1, 1), (3, 1), (3, 1), (
-2, 1, 380), (3, 1), (2, 1, 382), (3, 1), (2, 1, 384), (3, 1), (2, 1, 386), (3,
-1), (2, 1, 388), (3, 1), (2, 1, 390), (2, 1, 392), (1, 1), (3, 1), (3, 1), (2,
-1, 394), (2, 1, 396), (1, 1), (3, 1), (3, 1), (2, 1, 398), (3, 1), (2, 1, 400),
-(3, 1), (2, 1, 402), (3, 1), (2, 1, 404), (3, 1), (2, 1, 406), (3, 1), (2, 1,
-408), (3, 1), (2, 1, 410), (3, 1), (2, 1, 412), (3, 1), (2, 1, 414), (3, 1), (
-2, 1, 416), (3, 1), (2, 1, 418), (3, 1), (2, 1, 420), (3, 1), (2, 1, 422), (3,
-1), (2, 1, 424), (3, 1), (2, 1, 426), (2, 1, 428), (3, 1), (2, 1, 430), (3, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1),
-(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (2, 1, 0), (0, 1), (2,
-1, 2), (0, 1), (2, 1, 4), (0, 1), (2, 1, 6), (0, 1), (2, 1, 8), (0, 1), (2, 1,
-10), (0, 1), (2, 1, 12), (0, 1), (2, 1, 14), (0, 1), (2, 1, 16), (0, 1), (2, 1,
-18), (0, 1), (2, 1, 20), (0, 1), (2, 1, 22), (0, 1), (2, 1, 24), (0, 1), (2, 1,
-26), (0, 1), (2, 1, 28), (0, 1), (2, 1, 30), (0, 1), (2, 1, 32), (0, 1), (2, 1,
-34), (0, 1), (2, 1, 36), (0, 1), (2, 1, 38), (0, 1), (2, 1, 40), (0, 1), (2, 1,
-42), (0, 1), (2, 1, 44), (0, 1), (2, 1, 46), (0, 1), (2, 1, 48), (0, 1), (2, 1,
-50), (0, 1), (2, 1, 52), (0, 1), (2, 1, 54), (0, 1), (2, 1, 56), (0, 1), (2, 1,
-58), (0, 1), (2, 1, 60), (0, 1), (2, 1, 62), (0, 1), (2, 1, 64), (0, 1), (2, 1,
-66), (0, 1), (2, 1, 68), (0, 1), (2, 1, 70), (0, 1), (2, 1, 72), (0, 1), (2, 1,
-74), (0, 1), (2, 1, 76), (0, 1), (2, 1, 78), (0, 1), (2, 1, 80), (0, 1), (2, 1,
-82), (0, 1), (2, 1, 84), (0, 1), (2, 1, 86), (0, 1), (2, 1, 88), (0, 1), (2, 1,
-90), (0, 1), (2, 1, 92), (0, 1), (2, 1, 94), (1, 1), (1, 1), (0, 1), (0, 1), (
-0, 1), (2, 1, 96), (2, 1, 98), (2, 1, 100), (0, 1), (2, 1, 104), (2, 1, 106), (
-2, 1, 108), (2, 1, 110), (0, 1), (2, 1, 130), (2, 1, 132), (2, 1, 134), (0, 1),
-(2, 1, 154), (2, 1, 156), (0, 1), (2, 1, 176), (2, 1, 178), (1, 1), (2, 1, 180
-), (2, 1, 182), (1, 1), (1, 1), (0, 1), (0, 1), (0, 1), (0, 1), (2, 1, 192), (
-2, 1, 194), (2, 1, 196), (0, 1), (2, 1, 208), (2, 1, 210), (1, 1), (2, 1, 212),
-(0, 1), (0, 1), (2, 1, 226), (2, 1, 228), (2, 1, 230), (0, 1), (2, 1, 242), (2,
-1, 244), (2, 1, 246), (2, 1, 248), (0, 1), (2, 1, 262), (2, 1, 264), (2, 1, 266
-), (2, 1, 268), (0, 1), (2, 1, 284), (2, 1, 286), (2, 1, 288), (2, 1, 290), (0,
-1), (2, 1, 304), (2, 1, 306), (2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312), (
-1, 1), (1, 1), (1, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (2, 1, 326), (0,
-1), (2, 1, 328), (0, 1), (2, 1, 330), (0, 1), (2, 1, 332), (0, 1), (2, 1, 334),
-(0, 1), (2, 1, 336), (0, 1), (2, 1, 338), (0, 1), (2, 1, 340), (0, 1), (2, 1,
-342), (0, 1), (2, 1, 344), (0, 1), (2, 1, 346), (0, 1), (2, 1, 348), (0, 1), (
-2, 1, 350), (0, 1), (2, 1, 352), (0, 1), (2, 1, 354), (0, 1), (2, 1, 356), (0,
-1), (2, 1, 358), (0, 1), (2, 1, 360), (0, 1), (2, 1, 362), (0, 1), (2, 1, 364),
-(0, 1), (2, 1, 366), (0, 1), (2, 1, 368), (0, 1), (2, 1, 370), (0, 1), (2, 1,
-372), (2, 1, 374), (1, 1), (0, 1), (0, 1), (2, 1, 376), (2, 1, 378), (1, 1), (
-0, 1), (0, 1), (2, 1, 380), (0, 1), (2, 1, 382), (0, 1), (2, 1, 384), (0, 1), (
-2, 1, 386), (0, 1), (2, 1, 388), (0, 1), (2, 1, 390), (2, 1, 392), (1, 1), (0,
-1), (0, 1), (2, 1, 394), (2, 1, 396), (1, 1), (0, 1), (0, 1), (2, 1, 398), (0,
-1), (2, 1, 400), (0, 1), (2, 1, 402), (0, 1), (2, 1, 404), (0, 1), (2, 1, 406),
-(0, 1), (2, 1, 408), (0, 1), (2, 1, 410), (0, 1), (2, 1, 412), (0, 1), (2, 1,
-414), (0, 1), (2, 1, 416), (0, 1), (2, 1, 418), (0, 1), (2, 1, 420), (0, 1), (
-2, 1, 422), (0, 1), (2, 1, 424), (0, 1), (2, 1, 426), (2, 1, 428), (0, 1), (2,
-1, 430), (0, 1)]), (0, [(1, 122), (0, 121), (2, 1, 431), (0, 122), (2, 1, 431),
-(3, 1)]), (2, [(1, 122), (0, 120), (2, 1, 429), (1, 1), (2, 1, 428), (3, 1), (
-2, 1, 427), (0, 1), (2, 1, 431), (0, 121), (2, 1, 429), (1, 1), (2, 1, 428), (
-0, 1), (2, 1, 427), (3, 1), (2, 1, 431), (0, 1)]), (2, [(1, 122), (0, 120), (2,
-1, 429), (1, 1), (2, 1, 428), (3, 1), (2, 1, 427), (0, 122), (2, 1, 429), (1, 1
-), (2, 1, 428), (0, 1), (2, 1, 427), (3, 1), (0, 1)]), (3, [(1, 122), (0, 91),
-(3, 1), (0, 16), (2, 1, 403), (0, 13), (2, 1, 431), (0, 109), (2, 1, 403), (3,
-1), (0, 12), (2, 1, 431), (0, 1)]), (4, [(1, 122), (0, 69), (2, 1, 314), (1, 1
-), (2, 1, 316), (1, 1), (3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315),
-(3, 1), (0, 51), (2, 1, 431), (0, 70), (2, 1, 314), (1, 1), (2, 1, 316), (1, 1
-), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 52), (2, 1, 431),
-(3, 1)]), (5, [(1, 122), (0, 77), (3, 1), (0, 18), (3, 1), (0, 17), (2, 1, 415
-), (0, 7), (2, 1, 431), (0, 115), (2, 1, 415), (3, 1), (0, 6), (2, 1, 431), (0,
-1)]), (6, [(1, 122), (0, 78), (3, 1), (0, 7), (3, 1), (0, 20), (2, 1, 401), (0,
-14), (2, 1, 431), (0, 108), (2, 1, 401), (3, 1), (0, 13), (2, 1, 431), (0, 1)]
-), (7, [(1, 122), (0, 57), (2, 1, 184), (1, 1), (3, 1), (2, 1, 186), (2, 1, 188
-), (3, 1), (0, 63), (2, 1, 431), (0, 58), (2, 1, 184), (1, 1), (0, 1), (2, 1,
-186), (2, 1, 188), (0, 64), (2, 1, 431), (3, 1)]), (0, [(1, 122), (0, 100), (2,
-1, 387), (0, 21), (2, 1, 431), (0, 101), (2, 1, 387), (3, 1), (0, 20), (2, 1,
-431), (0, 1)]), (0, [(1, 122), (0, 101), (2, 1, 389), (0, 20), (2, 1, 431), (0,
-102), (2, 1, 389), (3, 1), (0, 19), (2, 1, 431), (0, 1)]), (8, [(1, 122), (0,
-75), (3, 1), (0, 36), (2, 1, 411), (0, 9), (2, 1, 431), (0, 113), (2, 1, 411),
-(3, 1), (0, 8), (2, 1, 431), (0, 1)]), (9, [(1, 122), (0, 73), (3, 1), (0, 9),
-(3, 1), (0, 27), (2, 1, 409), (0, 10), (2, 1, 431), (0, 112), (2, 1, 409), (3,
-1), (0, 9), (2, 1, 431), (0, 1)]), (0, [(1, 122), (0, 97), (2, 1, 381), (0, 24
-), (2, 1, 431), (0, 98), (2, 1, 381), (3, 1), (0, 23), (2, 1, 431), (0, 1)]), (
-10, [(1, 122), (0, 74), (3, 1), (0, 9), (3, 2), (0, 24), (2, 1, 407), (0, 11),
-(2, 1, 431), (0, 111), (2, 1, 407), (3, 1), (0, 10), (2, 1, 431), (0, 1)]), (
-11, [(1, 122), (0, 60), (2, 1, 214), (3, 1), (0, 9), (3, 1), (0, 35), (2, 1,
-399), (0, 15), (2, 1, 431), (0, 61), (2, 1, 214), (0, 46), (2, 1, 399), (3, 1),
-(0, 14), (2, 1, 431), (0, 1)]), (12, [(1, 122), (3, 2), (0, 74), (3, 1), (0, 36
-), (2, 1, 413), (0, 8), (2, 1, 431), (0, 114), (2, 1, 413), (3, 1), (0, 7), (2,
-1, 431), (0, 1)]), (13, [(1, 122), (0, 51), (3, 1), (0, 1), (1, 1), (2, 1, 158
-), (3, 1), (1, 1), (2, 1, 160), (2, 1, 162), (1, 1), (2, 1, 164), (2, 1, 166),
-(1, 1), (3, 2), (2, 1, 170), (2, 1, 172), (1, 1), (1, 1), (1, 1), (3, 4), (2,
-1, 157), (2, 1, 155), (0, 5), (2, 1, 197), (1, 1), (2, 1, 196), (3, 1), (2, 1,
-198), (2, 1, 200), (3, 1), (2, 1, 213), (1, 1), (2, 1, 212), (3, 2), (0, 1), (
-2, 1, 231), (1, 1), (2, 1, 230), (3, 5), (0, 56), (2, 1, 431), (0, 54), (1, 1),
-(2, 1, 158), (0, 1), (1, 1), (2, 1, 160), (2, 1, 162), (1, 1), (2, 1, 164), (2,
-1, 166), (1, 1), (0, 2), (2, 1, 170), (2, 1, 172), (1, 1), (1, 1), (1, 1), (0,
-4), (2, 1, 157), (2, 1, 155), (3, 1), (0, 4), (2, 1, 197), (1, 1), (2, 1, 196),
-(0, 1), (2, 1, 198), (2, 1, 200), (0, 1), (2, 1, 213), (1, 1), (2, 1, 212), (0,
-3), (2, 1, 231), (1, 1), (2, 1, 230), (0, 61), (2, 1, 431), (0, 1)]), (14, [(1,
-122), (0, 52), (2, 1, 135), (1, 1), (2, 1, 136), (3, 1), (1, 1), (2, 1, 138), (
-2, 1, 140), (1, 1), (2, 1, 142), (2, 1, 144), (1, 1), (3, 2), (2, 1, 148), (2,
-1, 150), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 133), (2, 1, 131), (0, 6), (2,
-1, 197), (1, 1), (2, 1, 196), (3, 1), (2, 1, 198), (2, 1, 200), (3, 1), (2, 1,
-213), (1, 1), (2, 1, 212), (3, 2), (0, 1), (2, 1, 231), (1, 1), (2, 1, 230), (
-3, 2), (0, 59), (2, 1, 431), (0, 53), (2, 1, 135), (1, 1), (2, 1, 136), (0, 1),
-(1, 1), (2, 1, 138), (2, 1, 140), (1, 1), (2, 1, 142), (2, 1, 144), (1, 1), (0,
-2), (2, 1, 148), (2, 1, 150), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 133), (2,
-1, 131), (3, 1), (0, 5), (2, 1, 197), (1, 1), (2, 1, 196), (0, 1), (2, 1, 198),
-(2, 1, 200), (0, 1), (2, 1, 213), (1, 1), (2, 1, 212), (0, 3), (2, 1, 231), (1,
-1), (2, 1, 230), (0, 61), (2, 1, 431), (0, 1)]), (15, [(1, 122), (0, 98), (2,
-1, 383), (0, 7), (3, 1), (0, 15), (2, 1, 431), (0, 99), (2, 1, 383), (3, 1), (
-0, 22), (2, 1, 431), (0, 1)]), (0, [(1, 122), (0, 92), (2, 1, 371), (0, 29), (
-2, 1, 431), (0, 93), (2, 1, 371), (3, 1), (0, 28), (2, 1, 431), (0, 1)]), (16,
-[(1, 122), (0, 72), (3, 1), (0, 9), (3, 1), (0, 5), (3, 1), (0, 5), (3, 1), (0,
-8), (3, 1), (0, 11), (2, 1, 417), (0, 6), (2, 1, 431), (0, 116), (2, 1, 417), (
-3, 1), (0, 5), (2, 1, 431), (0, 1)]), (17, [(1, 122), (0, 90), (3, 1), (0, 8),
-(2, 1, 385), (0, 22), (2, 1, 431), (0, 100), (2, 1, 385), (3, 1), (0, 21), (2,
-1, 431), (0, 1)]), (18, [(1, 122), (0, 71), (3, 1), (0, 9), (3, 1), (0, 7), (3,
-1), (0, 26), (2, 1, 419), (0, 5), (2, 1, 431), (0, 117), (2, 1, 419), (3, 1), (
-0, 4), (2, 1, 431), (0, 1)]), (0, [(1, 122), (0, 119), (2, 1, 425), (0, 2), (2,
-1, 431), (0, 120), (2, 1, 425), (3, 1), (0, 1), (2, 1, 431), (0, 1)]), (19, [(
-1, 122), (0, 50), (2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1,
-97), (0, 71), (2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 70), (2, 1, 431), (0, 1)]), (20, [(1, 122),
-(0, 50), (2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0,
-6), (2, 1, 183), (2, 1, 181), (3, 1), (0, 11), (2, 1, 313), (2, 1, 311), (3, 1
-), (0, 52), (2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (0, 1), (2,
-1, 99), (2, 1, 97), (3, 1), (0, 5), (2, 1, 183), (2, 1, 181), (0, 12), (2, 1,
-313), (2, 1, 311), (0, 53), (2, 1, 431), (0, 1)]), (20, [(1, 122), (0, 50), (2,
-1, 101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 5), (2, 1,
-183), (2, 1, 181), (3, 1), (0, 11), (2, 1, 313), (2, 1, 311), (3, 1), (0, 53),
-(2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2,
-1, 97), (3, 1), (0, 4), (2, 1, 183), (2, 1, 181), (0, 12), (2, 1, 313), (2, 1,
-311), (0, 54), (2, 1, 431), (0, 1)]), (0, [(1, 122), (0, 102), (2, 1, 393), (2,
-1, 391), (0, 19), (2, 1, 431), (0, 103), (2, 1, 393), (2, 1, 391), (3, 1), (0,
-18), (2, 1, 431), (0, 1)]), (0, [(1, 122), (0, 104), (2, 1, 397), (2, 1, 395),
-(0, 17), (2, 1, 431), (0, 105), (2, 1, 397), (2, 1, 395), (3, 1), (0, 16), (2,
-1, 431), (0, 1)]), (21, [(1, 122), (0, 79), (3, 1), (0, 37), (2, 1, 421), (0, 4
-), (2, 1, 431), (0, 118), (2, 1, 421), (3, 1), (0, 3), (2, 1, 431), (0, 1)]), (
-22, [(1, 122), (0, 36), (3, 11), (0, 3), (2, 1, 101), (1, 1), (2, 1, 102), (3,
-1), (2, 1, 99), (2, 1, 97), (0, 71), (2, 1, 431), (0, 51), (2, 1, 101), (1, 1),
-(2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 70), (2, 1, 431), (0,
-1)]), (23, [(1, 122), (0, 2), (3, 1), (0, 47), (2, 1, 101), (1, 1), (2, 1, 102
-), (3, 1), (2, 1, 99), (2, 1, 97), (0, 71), (2, 1, 431), (0, 51), (2, 1, 101),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 70), (2, 1,
-431), (0, 1)]), (24, [(1, 122), (0, 3), (3, 1), (0, 43), (3, 1), (0, 2), (2, 1,
-101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 71), (2, 1, 431
-), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 70), (2, 1, 431), (0, 1)]), (25, [(1, 122), (0, 4), (3, 4), (0, 42),
-(2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 71), (2,
-1, 431), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 70), (2, 1, 431), (0, 1)]), (26, [(1, 122), (0, 8), (3, 3), (
-0, 39), (2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0,
-71), (2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99
-), (2, 1, 97), (3, 1), (0, 70), (2, 1, 431), (0, 1)]), (27, [(1, 122), (0, 11),
-(3, 3), (0, 36), (2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1,
-97), (0, 71), (2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 70), (2, 1, 431), (0, 1)]), (28, [(1, 122),
-(0, 14), (3, 2), (0, 34), (2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99),
-(2, 1, 97), (0, 71), (2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (
-0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 70), (2, 1, 431), (0, 1)]), (29, [(
-1, 122), (0, 16), (3, 1), (0, 33), (2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 71), (2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 70), (2, 1, 431), (0, 1)]
-), (30, [(1, 122), (0, 17), (3, 3), (0, 30), (2, 1, 101), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 71), (2, 1, 431), (0, 51), (2, 1, 101), (1,
-1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 70), (2, 1, 431),
-(0, 1)]), (31, [(1, 122), (0, 20), (3, 1), (0, 29), (2, 1, 101), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 71), (2, 1, 431), (0, 51), (2, 1, 101
-), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 70), (2, 1,
-431), (0, 1)]), (32, [(1, 122), (0, 21), (3, 3), (0, 26), (2, 1, 101), (1, 1),
-(2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 71), (2, 1, 431), (0, 51), (2,
-1, 101), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 70),
-(2, 1, 431), (0, 1)]), (33, [(1, 122), (0, 24), (3, 6), (0, 18), (3, 2), (2, 1,
-101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 71), (2, 1, 431
-), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 70), (2, 1, 431), (0, 1)]), (34, [(1, 122), (0, 30), (3, 1), (0, 19
-), (2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 71), (
-2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2,
-1, 97), (3, 1), (0, 70), (2, 1, 431), (0, 1)]), (35, [(1, 122), (0, 31), (3, 2
-), (0, 17), (2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 4), (2, 1, 183), (2, 1, 181), (3, 1), (0, 10), (3, 1), (2, 1, 313), (2, 1,
-311), (3, 1), (0, 54), (2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 3), (2, 1, 183), (2, 1, 181), (0,
-12), (2, 1, 313), (2, 1, 311), (0, 55), (2, 1, 431), (0, 1)]), (36, [(1, 122),
-(0, 33), (3, 2), (0, 15), (2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99),
-(2, 1, 97), (0, 71), (2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2, 1, 102), (
-0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 70), (2, 1, 431), (0, 1)]), (37, [(
-1, 122), (0, 35), (3, 1), (0, 14), (2, 1, 101), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 71), (2, 1, 431), (0, 51), (2, 1, 101), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 70), (2, 1, 431), (0, 1)]
-), (0, [(1, 122), (0, 93), (2, 1, 375), (2, 1, 373), (0, 28), (2, 1, 431), (0,
-94), (2, 1, 375), (2, 1, 373), (3, 1), (0, 27), (2, 1, 431), (0, 1)]), (38, [(
-1, 122), (0, 80), (3, 1), (0, 6), (3, 1), (0, 30), (2, 1, 423), (0, 3), (2, 1,
-431), (0, 119), (2, 1, 423), (3, 1), (0, 2), (2, 1, 431), (0, 1)]), (0, [(1,
-122), (0, 95), (2, 1, 379), (2, 1, 377), (0, 26), (2, 1, 431), (0, 96), (2, 1,
-379), (2, 1, 377), (3, 1), (0, 25), (2, 1, 431), (0, 1)]), (0, [(1, 122), (0,
-109), (2, 1, 405), (0, 12), (2, 1, 431), (0, 110), (2, 1, 405), (3, 1), (0, 11
-), (2, 1, 431), (0, 1)]), (0, [(1, 1), (0, 2), (3, 1)]), (2, [(1, 1), (2, 1,
-429), (1, 1), (2, 1, 428), (3, 1), (2, 1, 427), (0, 1), (2, 1, 429), (1, 1), (
-2, 1, 428), (0, 1), (2, 1, 427), (3, 1), (0, 1)]), (0, [(1, 1), (2, 1, 369), (
-0, 1), (2, 1, 369), (3, 1), (0, 1)]), (4, [(1, 3), (2, 1, 317), (1, 1), (2, 1,
-316), (1, 1), (3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (
-0, 2), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1,
-320), (0, 1), (2, 1, 315), (0, 3), (3, 1)]), (0, [(1, 3), (0, 6), (3, 1)]), (
-39, [(1, 3), (0, 2), (1, 1), (2, 1, 324), (3, 1), (2, 1, 309), (1, 1), (2, 1,
-308), (1, 1), (2, 1, 310), (2, 1, 312), (1, 1), (1, 1), (1, 1), (3, 5), (2, 1,
-307), (2, 1, 305), (0, 3), (1, 1), (2, 1, 324), (0, 1), (2, 1, 309), (1, 1), (
-2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312), (1, 1), (1, 1), (1, 1), (0, 5), (
-2, 1, 307), (2, 1, 305), (3, 1), (0, 1)]), (40, [(1, 3), (0, 1), (2, 1, 322), (
-1, 1), (1, 1), (3, 3), (0, 2), (2, 1, 322), (1, 1), (1, 1), (0, 4), (3, 1)]), (
-0, [(1, 2), (0, 4), (3, 1)]), (0, [(1, 2), (2, 1, 341), (0, 2), (2, 1, 341), (
-3, 1), (0, 2)]), (0, [(1, 2), (0, 1), (2, 1, 379), (2, 1, 377), (0, 2), (2, 1,
-379), (2, 1, 377), (3, 1), (0, 1)]), (0, [(1, 2), (0, 1), (2, 1, 359), (0, 2),
-(2, 1, 359), (3, 1), (0, 1)]), (0, [(1, 2), (2, 1, 343), (0, 2), (2, 1, 343), (
-3, 1), (0, 2)]), (41, [(1, 2), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (3, 1
-), (2, 1, 186), (2, 1, 188), (3, 2), (0, 1), (2, 1, 185), (1, 1), (2, 1, 184),
-(1, 1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 3), (3, 1)]), (42, [(1, 2), (0, 1
-), (2, 1, 190), (1, 1), (1, 1), (3, 3), (0, 1), (2, 1, 190), (1, 1), (1, 1), (
-0, 3), (3, 1)]), (0, [(1, 1), (2, 1, 337), (0, 1), (2, 1, 337), (3, 1), (0, 1)]
-), (0, [(1, 2), (0, 1), (2, 1, 353), (0, 2), (2, 1, 353), (3, 1), (0, 1)]), (0,
-[(1, 2), (2, 1, 333), (0, 2), (2, 1, 333), (3, 1), (0, 2)]), (0, [(1, 3), (0, 1
-), (2, 1, 355), (0, 3), (2, 1, 355), (3, 1), (0, 2)]), (0, [(1, 3), (2, 1, 335
-), (0, 3), (2, 1, 335), (3, 1), (0, 3)]), (0, [(1, 3), (0, 2), (2, 1, 357), (0,
-3), (2, 1, 357), (3, 1), (0, 1)]), (43, [(1, 2), (0, 1), (3, 1), (0, 2), (3, 1)
-]), (44, [(1, 2), (2, 1, 215), (1, 1), (2, 1, 214), (3, 1), (1, 1), (2, 1, 216
-), (2, 1, 218), (3, 1), (1, 1), (2, 1, 222), (2, 1, 224), (1, 1), (1, 1), (1, 1
-), (3, 4), (2, 1, 211), (2, 1, 209), (0, 2), (2, 1, 215), (1, 1), (2, 1, 214),
-(0, 1), (1, 1), (2, 1, 216), (2, 1, 218), (0, 1), (1, 1), (2, 1, 222), (2, 1,
-224), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 211), (2, 1, 209), (3, 1), (0, 2)]
-), (0, [(1, 3), (2, 1, 1), (0, 3), (2, 1, 1), (3, 1), (0, 3)]), (45, [(1, 3), (
-0, 1), (1, 1), (3, 1), (2, 1, 3), (0, 3), (1, 1), (0, 1), (2, 1, 3), (3, 1), (
-0, 2)]), (0, [(1, 3), (0, 2), (2, 1, 339), (0, 3), (2, 1, 339), (3, 1), (0, 1)]
-), (0, [(1, 17), (0, 34), (3, 1)]), (46, [(1, 17), (0, 11), (2, 1, 214), (3, 1
-), (0, 1), (1, 1), (2, 1, 232), (2, 1, 234), (3, 1), (1, 1), (2, 1, 238), (2,
-1, 240), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 229), (2, 1, 227), (0, 15), (2,
-1, 214), (0, 2), (1, 1), (2, 1, 232), (2, 1, 234), (0, 1), (1, 1), (2, 1, 238),
-(2, 1, 240), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 229), (2, 1, 227), (3, 1),
-(0, 4)]), (47, [(1, 17), (0, 1), (2, 1, 159), (1, 1), (2, 1, 158), (3, 1), (1,
-1), (2, 1, 160), (2, 1, 162), (1, 1), (2, 1, 164), (2, 1, 166), (1, 1), (3, 2),
-(2, 1, 170), (2, 1, 172), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 157), (2, 1,
-155), (0, 7), (2, 1, 197), (1, 1), (2, 1, 196), (3, 1), (2, 1, 198), (2, 1, 200
-), (3, 1), (0, 1), (2, 1, 213), (1, 1), (2, 1, 212), (3, 2), (0, 1), (2, 1, 231
-), (1, 1), (2, 1, 230), (3, 2), (0, 5), (2, 1, 159), (1, 1), (2, 1, 158), (0, 1
-), (1, 1), (2, 1, 160), (2, 1, 162), (1, 1), (2, 1, 164), (2, 1, 166), (1, 1),
-(0, 2), (2, 1, 170), (2, 1, 172), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 157),
-(2, 1, 155), (3, 1), (0, 6), (2, 1, 197), (1, 1), (2, 1, 196), (0, 1), (2, 1,
-198), (2, 1, 200), (0, 2), (2, 1, 213), (1, 1), (2, 1, 212), (0, 3), (2, 1, 231
-), (1, 1), (2, 1, 230), (0, 7)]), (48, [(1, 17), (0, 8), (2, 1, 197), (1, 1), (
-2, 1, 196), (3, 1), (2, 1, 198), (2, 1, 200), (3, 1), (0, 1), (2, 1, 213), (1,
-1), (2, 1, 212), (3, 2), (0, 1), (2, 1, 231), (1, 1), (2, 1, 230), (3, 2), (0,
-12), (2, 1, 197), (1, 1), (2, 1, 196), (0, 1), (2, 1, 198), (2, 1, 200), (0, 2
-), (2, 1, 213), (1, 1), (2, 1, 212), (0, 3), (2, 1, 231), (1, 1), (2, 1, 230),
-(0, 6), (3, 1)]), (49, [(1, 17), (0, 9), (1, 1), (3, 1), (2, 1, 202), (3, 1), (
-0, 16), (1, 1), (0, 1), (2, 1, 202), (0, 8), (3, 1)]), (50, [(1, 17), (0, 5), (
-2, 1, 173), (1, 1), (2, 1, 174), (1, 1), (3, 2), (2, 1, 171), (2, 1, 163), (2,
-1, 161), (2, 1, 157), (2, 1, 155), (0, 2), (3, 1), (0, 14), (2, 1, 173), (1, 1
-), (2, 1, 174), (1, 1), (0, 2), (2, 1, 171), (2, 1, 163), (2, 1, 161), (2, 1,
-157), (2, 1, 155), (3, 1), (0, 12)]), (51, [(1, 17), (0, 3), (2, 1, 167), (1, 1
-), (2, 1, 168), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 165), (2, 1, 163), (2,
-1, 161), (2, 1, 157), (2, 1, 155), (0, 17), (2, 1, 167), (1, 1), (2, 1, 168), (
-1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 165), (2, 1, 163), (2, 1, 161), (2, 1,
-157), (2, 1, 155), (3, 1), (0, 14)]), (52, [(1, 17), (2, 1, 111), (2, 1, 109),
-(2, 1, 112), (3, 1), (0, 13), (2, 1, 249), (2, 1, 247), (2, 1, 250), (3, 1), (
-2, 1, 269), (2, 1, 267), (1, 1), (2, 1, 270), (3, 2), (2, 1, 291), (2, 1, 289),
-(2, 1, 292), (3, 1), (2, 1, 111), (2, 1, 109), (2, 1, 112), (0, 14), (2, 1, 249
-), (2, 1, 247), (2, 1, 250), (0, 1), (2, 1, 269), (2, 1, 267), (1, 1), (2, 1,
-270), (0, 2), (2, 1, 291), (2, 1, 289), (2, 1, 292), (0, 1), (3, 1)]), (53, [(
-1, 17), (0, 4), (2, 1, 173), (1, 1), (2, 1, 174), (1, 1), (3, 2), (2, 1, 171),
-(2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (0, 2), (3, 1), (0, 14), (
-2, 1, 173), (1, 1), (2, 1, 174), (1, 1), (0, 2), (2, 1, 171), (2, 1, 163), (2,
-1, 161), (2, 1, 157), (2, 1, 155), (3, 1), (0, 13)]), (51, [(1, 17), (0, 2), (
-2, 1, 167), (1, 1), (2, 1, 168), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 165), (
-2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (0, 17), (2, 1, 167), (1, 1
-), (2, 1, 168), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 165), (2, 1, 163), (2,
-1, 161), (2, 1, 157), (2, 1, 155), (3, 1), (0, 15)]), (0, [(1, 13), (0, 26), (
-3, 1)]), (46, [(1, 13), (0, 10), (2, 1, 214), (3, 1), (0, 1), (1, 1), (2, 1,
-232), (2, 1, 234), (3, 1), (1, 1), (2, 1, 238), (2, 1, 240), (1, 1), (1, 1), (
-1, 1), (3, 4), (2, 1, 229), (2, 1, 227), (0, 11), (2, 1, 214), (0, 2), (1, 1),
-(2, 1, 232), (2, 1, 234), (0, 1), (1, 1), (2, 1, 238), (2, 1, 240), (1, 1), (1,
-1), (1, 1), (0, 4), (2, 1, 229), (2, 1, 227), (3, 1), (0, 1)]), (14, [(1, 13),
-(2, 1, 137), (1, 1), (2, 1, 136), (3, 1), (1, 1), (2, 1, 138), (2, 1, 140), (1,
-1), (2, 1, 142), (2, 1, 144), (1, 1), (3, 2), (2, 1, 148), (2, 1, 150), (1, 1),
-(1, 1), (1, 1), (3, 4), (2, 1, 133), (2, 1, 131), (0, 7), (2, 1, 197), (1, 1),
-(2, 1, 196), (3, 1), (2, 1, 198), (2, 1, 200), (3, 1), (0, 1), (2, 1, 213), (1,
-1), (2, 1, 212), (3, 2), (0, 1), (2, 1, 231), (1, 1), (2, 1, 230), (3, 2), (0,
-1), (2, 1, 137), (1, 1), (2, 1, 136), (0, 1), (1, 1), (2, 1, 138), (2, 1, 140),
-(1, 1), (2, 1, 142), (2, 1, 144), (1, 1), (0, 2), (2, 1, 148), (2, 1, 150), (1,
-1), (1, 1), (1, 1), (0, 4), (2, 1, 133), (2, 1, 131), (3, 1), (0, 6), (2, 1,
-197), (1, 1), (2, 1, 196), (0, 1), (2, 1, 198), (2, 1, 200), (0, 2), (2, 1, 213
-), (1, 1), (2, 1, 212), (0, 3), (2, 1, 231), (1, 1), (2, 1, 230), (0, 4)]), (
-49, [(1, 13), (0, 8), (1, 1), (3, 1), (2, 1, 202), (3, 1), (0, 12), (1, 1), (0,
-1), (2, 1, 202), (0, 5), (3, 1)]), (54, [(1, 13), (0, 4), (2, 1, 151), (1, 1),
-(2, 1, 152), (1, 1), (3, 2), (2, 1, 149), (2, 1, 141), (2, 1, 139), (2, 1, 133
-), (2, 1, 131), (0, 2), (3, 1), (0, 10), (2, 1, 151), (1, 1), (2, 1, 152), (1,
-1), (0, 2), (2, 1, 149), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (
-3, 1), (0, 9)]), (55, [(1, 13), (0, 2), (2, 1, 145), (1, 1), (2, 1, 146), (1, 1
-), (1, 1), (1, 1), (3, 4), (2, 1, 143), (2, 1, 141), (2, 1, 139), (2, 1, 133),
-(2, 1, 131), (0, 13), (2, 1, 145), (1, 1), (2, 1, 146), (1, 1), (1, 1), (1, 1),
-(0, 4), (2, 1, 143), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (3, 1
-), (0, 11)]), (56, [(1, 13), (0, 3), (2, 1, 151), (1, 1), (2, 1, 152), (1, 1),
-(3, 2), (2, 1, 149), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (0, 2
-), (3, 1), (0, 10), (2, 1, 151), (1, 1), (2, 1, 152), (1, 1), (0, 2), (2, 1,
-149), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (3, 1), (0, 10)]), (
-55, [(1, 13), (0, 1), (2, 1, 145), (1, 1), (2, 1, 146), (1, 1), (1, 1), (1, 1),
-(3, 4), (2, 1, 143), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (0, 13
-), (2, 1, 145), (1, 1), (2, 1, 146), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 143
-), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (3, 1), (0, 12)]), (0, [
-(1, 1), (2, 1, 397), (2, 1, 395), (0, 1), (2, 1, 397), (2, 1, 395), (3, 1), (0,
-1)]), (0, [(1, 5), (0, 10), (3, 1)]), (0, [(1, 5), (0, 3), (2, 1, 375), (2, 1,
-373), (0, 5), (2, 1, 375), (2, 1, 373), (3, 1), (0, 2)]), (0, [(1, 5), (0, 4),
-(2, 1, 393), (2, 1, 391), (0, 5), (2, 1, 393), (2, 1, 391), (3, 1), (0, 1)]), (
-57, [(1, 5), (3, 1), (2, 1, 351), (0, 5), (2, 1, 351), (3, 1), (0, 4)]), (0, [(
-1, 5), (0, 2), (2, 1, 363), (0, 5), (2, 1, 363), (3, 1), (0, 3)]), (0, [(1, 1),
-(2, 1, 367), (0, 1), (2, 1, 367), (3, 1), (0, 1)]), (0, [(1, 3), (0, 2), (2, 1,
-365), (0, 3), (2, 1, 365), (3, 1), (0, 1)]), (58, [(1, 3), (3, 1), (2, 1, 349),
-(0, 3), (2, 1, 349), (3, 1), (0, 2)]), (19, [(1, 1), (2, 1, 103), (1, 1), (2,
-1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (4, [(1, 3), (0, 2), (
-2, 1, 314), (1, 1), (2, 1, 316), (1, 1), (3, 1), (2, 1, 318), (2, 1, 320), (3,
-1), (2, 1, 315), (3, 1), (0, 2), (2, 1, 314), (1, 1), (2, 1, 316), (1, 1), (0,
-1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 1), (3, 1)]), (7, [(1, 3
-), (0, 1), (2, 1, 184), (1, 1), (3, 1), (2, 1, 186), (2, 1, 188), (3, 1), (0, 2
-), (2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 2), (3, 1)]), (
-19, [(1, 3), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97),
-(0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 3)]), (0, [(1, 1), (2, 1, 345), (0, 1), (2, 1, 345), (3, 1), (0, 1)]), (
-0, [(1, 12), (0, 24), (3, 1)]), (19, [(1, 12), (0, 11), (2, 1, 103), (1, 1), (
-2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 12), (2, 1, 103), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (59, [(1, 12), (3, 3
-), (0, 8), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 12), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (60, [(1, 12), (0, 3), (3, 1), (0, 7), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 12), (2, 1, 103), (1, 1), (2, 1, 102
-), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (61, [(1, 12), (0, 4), (3,
-1), (0, 6), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 12), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (62, [(1, 12), (0, 5), (3, 1), (0, 5), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 12), (2, 1, 103), (1, 1), (2, 1, 102
-), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (63, [(1, 12), (0, 6), (3,
-1), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 12), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (64, [(1, 12), (0, 7), (3, 1), (0, 3), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 12), (2, 1, 103), (1, 1), (2, 1, 102
-), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (65, [(1, 12), (0, 8), (3,
-1), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 12), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (66, [(1, 12), (0, 9), (3, 1), (0, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 12), (2, 1, 103), (1, 1), (2, 1, 102
-), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (67, [(1, 12), (0, 10), (
-3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 12
-), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (
-0, 1)]), (19, [(1, 2), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1,
-99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99),
-(2, 1, 97), (3, 1), (0, 1)]), (68, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 3), (0, 2), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (69, [(
-1, 3), (0, 1), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (70, [(1, 3), (3, 1), (0, 1), (2, 1, 103), (1, 1), (2,
-1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1), (2, 1,
-102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 5), (0, 4), (
-2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 5), (2, 1,
-103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (
-71, [(1, 5), (3, 1), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1,
-99), (2, 1, 97), (0, 5), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99),
-(2, 1, 97), (3, 1), (0, 1)]), (72, [(1, 5), (0, 1), (3, 1), (0, 2), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 5), (2, 1, 103), (
-1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (73, [(1,
-5), (0, 2), (3, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2,
-1, 97), (0, 5), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97
-), (3, 1), (0, 1)]), (0, [(1, 4), (0, 8), (3, 1)]), (19, [(1, 4), (0, 3), (2,
-1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 4), (2, 1,
-103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (
-74, [(1, 4), (3, 1), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1,
-99), (2, 1, 97), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99),
-(2, 1, 97), (3, 1), (0, 1)]), (75, [(1, 4), (0, 1), (2, 1, 19), (0, 1), (3, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2,
-1, 19), (3, 1), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (0, 2)]), (76, [(1, 4), (3, 1), (0, 2), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (77, [(1, 4), (0, 1), (3, 1),
-(0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 4
-), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (
-0, 1)]), (78, [(1, 4), (0, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (79, [(1, 3), (3, 1), (0, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (80, [(
-1, 3), (0, 1), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (81, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 4), (2, 1, 35), (0, 3),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2,
-1, 35), (3, 1), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (0, 2)]), (82, [(1, 4), (0, 1), (3, 2), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (83, [(1, 2), (3, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (84, [(
-1, 4), (3, 3), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (0, [(1, 9), (0, 18), (3, 1)]), (19, [(1, 9), (0, 8), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 9), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (85, [(
-1, 9), (0, 6), (3, 1), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1,
-99), (2, 1, 97), (0, 9), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99),
-(2, 1, 97), (3, 1), (0, 1)]), (86, [(1, 9), (3, 1), (0, 7), (2, 1, 103), (1, 1
-), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 9), (2, 1, 103), (1, 1), (
-2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (87, [(1, 9), (0,
-1), (3, 2), (0, 4), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99
-), (2, 1, 97), (0, 9), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (3, 1), (0, 1)]), (88, [(1, 9), (0, 3), (3, 2), (0, 3), (2, 1, 103),
-(1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 9), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (89, [(1, 9),
-(0, 5), (3, 1), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 9), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (90, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (0, [(1, 6), (0, 12), (3, 1)]), (
-4, [(1, 6), (0, 5), (2, 1, 314), (1, 1), (2, 1, 316), (1, 1), (3, 1), (2, 1,
-318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (0, 5), (2, 1, 314), (1, 1), (
-2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0,
-1), (3, 1)]), (7, [(1, 6), (0, 3), (2, 1, 184), (1, 1), (3, 1), (2, 1, 186), (
-2, 1, 188), (3, 1), (0, 5), (2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1,
-188), (0, 3), (3, 1)]), (19, [(1, 6), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 6), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 4)]), (91, [(1, 6), (0, 2), (2, 1, 103),
-(1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 313), (2,
-1, 311), (3, 1), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99),
-(2, 1, 97), (3, 1), (0, 1), (2, 1, 313), (2, 1, 311), (0, 3)]), (92, [(1, 6), (
-3, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 6
-), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (
-0, 4)]), (93, [(1, 3), (3, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1,
-99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99),
-(2, 1, 97), (3, 1), (0, 1)]), (94, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (0, [(1, 2), (2, 1, 347), (0,
-2), (2, 1, 347), (3, 1), (0, 2)]), (0, [(1, 2), (0, 1), (2, 1, 361), (0, 2), (
-2, 1, 361), (3, 1), (0, 1)]), (39, [(1, 6), (2, 1, 325), (1, 1), (2, 1, 324), (
-3, 1), (2, 1, 309), (1, 1), (2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312), (1,
-1), (1, 1), (1, 1), (3, 5), (2, 1, 307), (2, 1, 305), (0, 6), (2, 1, 325), (1,
-1), (2, 1, 324), (0, 1), (2, 1, 309), (1, 1), (2, 1, 308), (1, 1), (2, 1, 310),
-(2, 1, 312), (1, 1), (1, 1), (1, 1), (0, 5), (2, 1, 307), (2, 1, 305), (3, 1),
-(0, 6)]), (95, [(1, 6), (0, 5), (2, 1, 314), (1, 1), (2, 1, 316), (1, 1), (3, 1
-), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (0, 5), (2, 1, 314),
-(1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1,
-315), (0, 1), (3, 1)]), (96, [(1, 6), (0, 4), (2, 1, 313), (2, 1, 311), (3, 1),
-(0, 5), (2, 1, 313), (2, 1, 311), (0, 2), (3, 1)]), (96, [(1, 6), (0, 3), (2,
-1, 313), (2, 1, 311), (3, 1), (0, 5), (2, 1, 313), (2, 1, 311), (0, 3), (3, 1)]
-), (97, [(1, 6), (0, 1), (3, 1), (2, 1, 313), (2, 1, 311), (3, 1), (0, 5), (2,
-1, 313), (2, 1, 311), (0, 4), (3, 1)]), (4, [(1, 3), (2, 1, 323), (2, 1, 321),
-(2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (3, 1), (2, 1, 318), (2,
-1, 320), (3, 1), (2, 1, 315), (3, 1), (0, 2), (2, 1, 323), (2, 1, 321), (2, 1,
-319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320
-), (0, 1), (2, 1, 315), (0, 3), (3, 1)]), (98, [(1, 3), (0, 1), (1, 1), (3, 1),
-(2, 1, 323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1
-), (3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (0, 2), (1, 1
-), (0, 1), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1,
-316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 2), (
-3, 1)]), (99, [(1, 3), (0, 2), (3, 1), (0, 3), (3, 1)]), (41, [(1, 3), (2, 1,
-185), (1, 1), (2, 1, 184), (1, 1), (3, 1), (2, 1, 186), (2, 1, 188), (3, 2), (
-0, 2), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1,
-188), (0, 4), (3, 1)]), (0, [(1, 3), (0, 2), (2, 1, 179), (2, 1, 177), (0, 3),
-(2, 1, 179), (2, 1, 177), (3, 1), (0, 1)]), (100, [(1, 3), (0, 1), (2, 1, 190),
-(1, 1), (1, 1), (3, 3), (0, 2), (2, 1, 190), (1, 1), (1, 1), (0, 4), (3, 1)]),
-(41, [(1, 3), (2, 1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2,
-1, 184), (1, 1), (3, 1), (2, 1, 186), (2, 1, 188), (3, 2), (0, 2), (2, 1, 191),
-(2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2,
-1, 186), (2, 1, 188), (0, 4), (3, 1)]), (101, [(1, 3), (0, 1), (1, 1), (3, 1),
-(2, 1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1
-), (3, 1), (2, 1, 186), (2, 1, 188), (3, 2), (0, 2), (1, 1), (0, 1), (2, 1, 191
-), (2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1),
-(2, 1, 186), (2, 1, 188), (0, 3), (3, 1)]), (102, [(1, 3), (0, 2), (3, 1), (0,
-3), (3, 1)]), (0, [(1, 1), (2, 1, 327), (0, 1), (2, 1, 327), (3, 1), (0, 1)]),
-(44, [(1, 6), (2, 1, 215), (1, 1), (2, 1, 214), (3, 1), (1, 1), (2, 1, 216), (
-2, 1, 218), (3, 1), (1, 1), (2, 1, 222), (2, 1, 224), (1, 1), (1, 1), (1, 1), (
-3, 4), (2, 1, 211), (2, 1, 209), (0, 6), (2, 1, 215), (1, 1), (2, 1, 214), (0,
-1), (1, 1), (2, 1, 216), (2, 1, 218), (0, 1), (1, 1), (2, 1, 222), (2, 1, 224),
-(1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 211), (2, 1, 209), (3, 1), (0, 6)]), (
-103, [(1, 6), (0, 1), (1, 1), (3, 1), (2, 1, 220), (3, 1), (0, 5), (1, 1), (0,
-1), (2, 1, 220), (0, 5), (3, 1)]), (0, [(1, 6), (0, 3), (2, 1, 225), (2, 1, 223
-), (2, 1, 211), (2, 1, 209), (0, 6), (2, 1, 225), (2, 1, 223), (2, 1, 211), (2,
-1, 209), (3, 1), (0, 3)]), (0, [(1, 6), (0, 5), (2, 1, 225), (2, 1, 223), (2,
-1, 211), (2, 1, 209), (0, 6), (2, 1, 225), (2, 1, 223), (2, 1, 211), (2, 1, 209
-), (3, 1), (0, 1)]), (0, [(1, 6), (0, 2), (2, 1, 225), (2, 1, 223), (2, 1, 211
-), (2, 1, 209), (0, 6), (2, 1, 225), (2, 1, 223), (2, 1, 211), (2, 1, 209), (3,
-1), (0, 4)]), (0, [(1, 6), (0, 4), (2, 1, 225), (2, 1, 223), (2, 1, 211), (2,
-1, 209), (0, 6), (2, 1, 225), (2, 1, 223), (2, 1, 211), (2, 1, 209), (3, 1), (
-0, 2)]), (45, [(1, 1), (1, 1), (3, 1), (2, 1, 3), (0, 1), (1, 1), (0, 1), (2,
-1, 3), (3, 1), (0, 1)]), (104, [(1, 6), (0, 1), (1, 1), (3, 1), (2, 1, 236), (
-3, 1), (0, 5), (1, 1), (0, 1), (2, 1, 236), (0, 5), (3, 1)]), (0, [(1, 6), (0,
-3), (2, 1, 241), (2, 1, 239), (2, 1, 229), (2, 1, 227), (0, 6), (2, 1, 241), (
-2, 1, 239), (2, 1, 229), (2, 1, 227), (3, 1), (0, 3)]), (0, [(1, 6), (0, 5), (
-2, 1, 241), (2, 1, 239), (2, 1, 229), (2, 1, 227), (0, 6), (2, 1, 241), (2, 1,
-239), (2, 1, 229), (2, 1, 227), (3, 1), (0, 1)]), (0, [(1, 6), (0, 2), (2, 1,
-241), (2, 1, 239), (2, 1, 229), (2, 1, 227), (0, 6), (2, 1, 241), (2, 1, 239),
-(2, 1, 229), (2, 1, 227), (3, 1), (0, 4)]), (0, [(1, 6), (0, 4), (2, 1, 241), (
-2, 1, 239), (2, 1, 229), (2, 1, 227), (0, 6), (2, 1, 241), (2, 1, 239), (2, 1,
-229), (2, 1, 227), (3, 1), (0, 2)]), (47, [(1, 13), (2, 1, 159), (1, 1), (2, 1,
-158), (3, 1), (1, 1), (2, 1, 160), (2, 1, 162), (1, 1), (2, 1, 164), (2, 1, 166
-), (1, 1), (3, 2), (2, 1, 170), (2, 1, 172), (1, 1), (1, 1), (1, 1), (3, 4), (
-2, 1, 157), (2, 1, 155), (0, 7), (2, 1, 197), (1, 1), (2, 1, 196), (3, 1), (2,
-1, 198), (2, 1, 200), (3, 1), (0, 1), (2, 1, 213), (1, 1), (2, 1, 212), (3, 2),
-(0, 1), (2, 1, 231), (1, 1), (2, 1, 230), (3, 2), (0, 1), (2, 1, 159), (1, 1),
-(2, 1, 158), (0, 1), (1, 1), (2, 1, 160), (2, 1, 162), (1, 1), (2, 1, 164), (2,
-1, 166), (1, 1), (0, 2), (2, 1, 170), (2, 1, 172), (1, 1), (1, 1), (1, 1), (0,
-4), (2, 1, 157), (2, 1, 155), (3, 1), (0, 6), (2, 1, 197), (1, 1), (2, 1, 196),
-(0, 1), (2, 1, 198), (2, 1, 200), (0, 2), (2, 1, 213), (1, 1), (2, 1, 212), (0,
-3), (2, 1, 231), (1, 1), (2, 1, 230), (0, 4)]), (48, [(1, 13), (0, 7), (2, 1,
-197), (1, 1), (2, 1, 196), (3, 1), (2, 1, 198), (2, 1, 200), (3, 1), (0, 1), (
-2, 1, 213), (1, 1), (2, 1, 212), (3, 2), (0, 1), (2, 1, 231), (1, 1), (2, 1,
-230), (3, 2), (0, 8), (2, 1, 197), (1, 1), (2, 1, 196), (0, 1), (2, 1, 198), (
-2, 1, 200), (0, 2), (2, 1, 213), (1, 1), (2, 1, 212), (0, 3), (2, 1, 231), (1,
-1), (2, 1, 230), (0, 3), (3, 1)]), (50, [(1, 13), (0, 4), (2, 1, 173), (1, 1),
-(2, 1, 174), (1, 1), (3, 2), (2, 1, 171), (2, 1, 163), (2, 1, 161), (2, 1, 157
-), (2, 1, 155), (0, 2), (3, 1), (0, 10), (2, 1, 173), (1, 1), (2, 1, 174), (1,
-1), (0, 2), (2, 1, 171), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (
-3, 1), (0, 9)]), (51, [(1, 13), (0, 2), (2, 1, 167), (1, 1), (2, 1, 168), (1, 1
-), (1, 1), (1, 1), (3, 4), (2, 1, 165), (2, 1, 163), (2, 1, 161), (2, 1, 157),
-(2, 1, 155), (0, 13), (2, 1, 167), (1, 1), (2, 1, 168), (1, 1), (1, 1), (1, 1),
-(0, 4), (2, 1, 165), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (3, 1
-), (0, 11)]), (53, [(1, 13), (0, 3), (2, 1, 173), (1, 1), (2, 1, 174), (1, 1),
-(3, 2), (2, 1, 171), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (0, 2
-), (3, 1), (0, 10), (2, 1, 173), (1, 1), (2, 1, 174), (1, 1), (0, 2), (2, 1,
-171), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (3, 1), (0, 10)]), (
-51, [(1, 13), (0, 1), (2, 1, 167), (1, 1), (2, 1, 168), (1, 1), (1, 1), (1, 1),
-(3, 4), (2, 1, 165), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (0, 13
-), (2, 1, 167), (1, 1), (2, 1, 168), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 165
-), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (3, 1), (0, 12)]), (46,
-[(1, 6), (0, 3), (2, 1, 214), (3, 1), (0, 1), (1, 1), (2, 1, 232), (2, 1, 234),
-(3, 1), (1, 1), (2, 1, 238), (2, 1, 240), (1, 1), (1, 1), (1, 1), (3, 4), (2,
-1, 229), (2, 1, 227), (0, 4), (2, 1, 214), (0, 2), (1, 1), (2, 1, 232), (2, 1,
-234), (0, 1), (1, 1), (2, 1, 238), (2, 1, 240), (1, 1), (1, 1), (1, 1), (0, 4),
-(2, 1, 229), (2, 1, 227), (3, 1), (0, 1)]), (48, [(1, 6), (2, 1, 197), (1, 1),
-(2, 1, 196), (3, 1), (2, 1, 198), (2, 1, 200), (3, 1), (0, 1), (2, 1, 213), (1,
-1), (2, 1, 212), (3, 2), (0, 1), (2, 1, 231), (1, 1), (2, 1, 230), (3, 2), (0,
-1), (2, 1, 197), (1, 1), (2, 1, 196), (0, 1), (2, 1, 198), (2, 1, 200), (0, 2),
-(2, 1, 213), (1, 1), (2, 1, 212), (0, 3), (2, 1, 231), (1, 1), (2, 1, 230), (0,
-3), (3, 1)]), (49, [(1, 6), (0, 1), (1, 1), (3, 1), (2, 1, 202), (3, 1), (0, 5
-), (1, 1), (0, 1), (2, 1, 202), (0, 5), (3, 1)]), (105, [(1, 2), (2, 1, 202), (
-3, 1), (0, 1), (2, 1, 202), (0, 2), (3, 1)]), (106, [(1, 2), (0, 1), (2, 1, 203
-), (1, 1), (2, 1, 202), (3, 1), (2, 1, 201), (2, 1, 199), (1, 1), (2, 1, 204),
-(2, 1, 206), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 195), (2, 1, 193), (0, 2),
-(2, 1, 203), (1, 1), (2, 1, 202), (0, 1), (2, 1, 201), (2, 1, 199), (1, 1), (2,
-1, 204), (2, 1, 206), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 195), (2, 1, 193),
-(3, 1), (0, 1)]), (107, [(1, 3), (0, 2), (2, 1, 173), (1, 1), (2, 1, 174), (1,
-1), (3, 2), (2, 1, 171), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (
-0, 3), (2, 1, 173), (1, 1), (2, 1, 174), (1, 1), (0, 2), (2, 1, 171), (2, 1,
-163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (3, 1), (0, 1)]), (0, [(1, 3), (0,
-1), (2, 1, 175), (2, 1, 171), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155
-), (0, 3), (2, 1, 175), (2, 1, 171), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2,
-1, 155), (3, 1), (0, 2)]), (0, [(1, 3), (2, 1, 175), (2, 1, 171), (2, 1, 163),
-(2, 1, 161), (2, 1, 157), (2, 1, 155), (0, 3), (2, 1, 175), (2, 1, 171), (2, 1,
-163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (3, 1), (0, 3)]), (108, [(1, 4), (
-0, 1), (2, 1, 169), (2, 1, 165), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1,
-155), (0, 2), (3, 1), (0, 1), (2, 1, 169), (2, 1, 165), (2, 1, 163), (2, 1, 161
-), (2, 1, 157), (2, 1, 155), (3, 1), (0, 3)]), (109, [(1, 4), (2, 1, 169), (2,
-1, 165), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (0, 2), (3, 1), (
-0, 1), (2, 1, 169), (2, 1, 165), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1,
-155), (3, 1), (0, 4)]), (110, [(1, 5), (0, 3), (2, 1, 272), (3, 1), (0, 4), (2,
-1, 272), (0, 2), (3, 1)]), (111, [(1, 5), (2, 1, 113), (1, 1), (2, 1, 112), (3,
-1), (1, 1), (2, 1, 114), (2, 1, 116), (1, 1), (2, 1, 118), (2, 1, 120), (1, 1),
-(3, 2), (2, 1, 124), (2, 1, 126), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 107),
-(2, 1, 105), (0, 1), (2, 1, 251), (1, 1), (2, 1, 250), (3, 1), (2, 1, 252), (2,
-1, 254), (3, 1), (2, 1, 271), (1, 1), (2, 1, 270), (3, 2), (0, 1), (2, 1, 293),
-(1, 1), (2, 1, 292), (3, 2), (2, 1, 113), (1, 1), (2, 1, 112), (0, 1), (1, 1),
-(2, 1, 114), (2, 1, 116), (1, 1), (2, 1, 118), (2, 1, 120), (1, 1), (0, 2), (2,
-1, 124), (2, 1, 126), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 107), (2, 1, 105),
-(3, 1), (2, 1, 251), (1, 1), (2, 1, 250), (0, 1), (2, 1, 252), (2, 1, 254), (0,
-1), (2, 1, 271), (1, 1), (2, 1, 270), (0, 3), (2, 1, 293), (1, 1), (2, 1, 292),
-(0, 3)]), (112, [(1, 3), (0, 2), (2, 1, 151), (1, 1), (2, 1, 152), (1, 1), (3,
-2), (2, 1, 149), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (0, 3), (
-2, 1, 151), (1, 1), (2, 1, 152), (1, 1), (0, 2), (2, 1, 149), (2, 1, 141), (2,
-1, 139), (2, 1, 133), (2, 1, 131), (3, 1), (0, 1)]), (0, [(1, 3), (0, 1), (2,
-1, 153), (2, 1, 149), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (0, 3
-), (2, 1, 153), (2, 1, 149), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131
-), (3, 1), (0, 2)]), (0, [(1, 3), (2, 1, 153), (2, 1, 149), (2, 1, 141), (2, 1,
-139), (2, 1, 133), (2, 1, 131), (0, 3), (2, 1, 153), (2, 1, 149), (2, 1, 141),
-(2, 1, 139), (2, 1, 133), (2, 1, 131), (3, 1), (0, 3)]), (113, [(1, 4), (0, 1),
-(2, 1, 147), (2, 1, 143), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (
-0, 2), (3, 1), (0, 1), (2, 1, 147), (2, 1, 143), (2, 1, 141), (2, 1, 139), (2,
-1, 133), (2, 1, 131), (3, 1), (0, 3)]), (114, [(1, 4), (2, 1, 147), (2, 1, 143
-), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (0, 2), (3, 1), (0, 1),
-(2, 1, 147), (2, 1, 143), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (
-3, 1), (0, 4)]), (0, [(1, 1), (2, 1, 331), (0, 1), (2, 1, 331), (3, 1), (0, 1)]
-), (0, [(1, 1), (2, 1, 329), (0, 1), (2, 1, 329), (3, 1), (0, 1)]), (115, [(1,
-4), (3, 2), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2,
-1, 97), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97
-), (3, 1), (0, 1)]), (116, [(1, 4), (0, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (117, [(1, 2), (3, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (118, [(
-1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (119, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (120, [(1, 2), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (121, [(1, 2
-), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (122, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (123, [(1, 2), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (124, [(1, 2), (3, 1
-), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (
-2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)
-]), (125, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99
-), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (3, 1), (0, 1)]), (126, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (127, [(1, 2), (3, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (128, [(
-1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (129, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (130, [(1, 3), (3, 2), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (131, [(1, 2
-), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (132, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (133, [(1, 2), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (134, [(1, 2), (3, 1
-), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (
-2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)
-]), (135, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99
-), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (3, 1), (0, 1)]), (136, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 31), (0,
-1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (
-2, 1, 31), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (0, 2)]), (137, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1),
-(2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2,
-1, 99), (2, 1, 97), (3, 1), (0, 1)]), (138, [(1, 3), (3, 1), (0, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (
-1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1,
-3), (0, 1), (2, 1, 39), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2,
-1, 99), (2, 1, 97), (0, 2), (2, 1, 39), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102
-), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (139, [(1, 2), (3, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (
-1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (140, [(
-1, 4), (3, 1), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (141, [(1, 4), (0, 1), (3, 1), (0, 1), (2, 1, 103), (1,
-1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 4), (2, 1, 103), (1, 1), (
-2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (142, [(1, 4), (
-0, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (143, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (144, [(1, 2), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (145, [(1, 4
-), (3, 1), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1,
-97), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97),
-(3, 1), (0, 1)]), (146, [(1, 4), (0, 1), (3, 2), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 4), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (147, [(1, 3), (3, 1), (0, 1
-), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (
-2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)
-]), (148, [(1, 3), (0, 1), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (149, [(1, 2), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (150, [(1, 2), (3, 1
-), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (
-2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)
-]), (4, [(1, 2), (0, 1), (2, 1, 314), (1, 1), (2, 1, 316), (1, 1), (3, 1), (2,
-1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (0, 1), (2, 1, 314), (1, 1),
-(2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0,
-1), (3, 1)]), (19, [(1, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99
-), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (3, 1), (0, 2)]), (151, [(1, 3), (3, 1), (0, 1), (2, 1, 103), (1, 1
-), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1), (
-2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (152, [(1, 3), (
-0, 1), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (153, [(1, 3), (3, 1), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102
-), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (
-0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (154, [(1, 3), (0, 1), (3, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2,
-1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]),
-(155, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (95, [(1, 3), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1),
-(3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (0, 2), (2, 1,
-317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (
-2, 1, 315), (0, 3), (3, 1)]), (156, [(1, 3), (0, 2), (1, 1), (2, 1, 324), (3, 1
-), (2, 1, 309), (1, 1), (2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312), (1, 1),
-(1, 1), (1, 1), (3, 5), (2, 1, 307), (2, 1, 305), (0, 3), (1, 1), (2, 1, 324),
-(0, 1), (2, 1, 309), (1, 1), (2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312), (1,
-1), (1, 1), (1, 1), (0, 5), (2, 1, 307), (2, 1, 305), (3, 1), (0, 1)]), (157, [
-(1, 3), (0, 1), (2, 1, 322), (1, 1), (1, 1), (3, 3), (0, 2), (2, 1, 322), (1, 1
-), (1, 1), (0, 4), (3, 1)]), (95, [(1, 1), (2, 1, 314), (1, 1), (2, 1, 316), (
-1, 1), (3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (2, 1,
-314), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (
-2, 1, 315), (0, 1), (3, 1)]), (95, [(1, 2), (0, 1), (2, 1, 314), (1, 1), (2, 1,
-316), (1, 1), (3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (
-0, 1), (2, 1, 314), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1,
-320), (0, 1), (2, 1, 315), (0, 1), (3, 1)]), (96, [(1, 2), (2, 1, 313), (2, 1,
-311), (3, 1), (0, 1), (2, 1, 313), (2, 1, 311), (0, 2), (3, 1)]), (4, [(1, 4),
-(0, 1), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (3, 1), (2, 1, 318), (2, 1,
-320), (3, 1), (2, 1, 315), (3, 1), (0, 3), (2, 1, 317), (1, 1), (2, 1, 316), (
-1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 3), (3, 1)]),
-(39, [(1, 4), (0, 3), (1, 1), (2, 1, 324), (3, 1), (2, 1, 309), (1, 1), (2, 1,
-308), (1, 1), (2, 1, 310), (2, 1, 312), (1, 1), (1, 1), (1, 1), (3, 5), (2, 1,
-307), (2, 1, 305), (0, 4), (1, 1), (2, 1, 324), (0, 1), (2, 1, 309), (1, 1), (
-2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312), (1, 1), (1, 1), (1, 1), (0, 5), (
-2, 1, 307), (2, 1, 305), (3, 1), (0, 1)]), (158, [(1, 4), (1, 1), (3, 1), (2,
-1, 323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (
-3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (2, 1, 317), (1,
-1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315),
-(0, 3), (1, 1), (0, 1), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1,
-1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315),
-(0, 1), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1,
-320), (0, 1), (2, 1, 315), (0, 3), (3, 1)]), (40, [(1, 4), (0, 2), (2, 1, 322),
-(1, 1), (1, 1), (3, 3), (0, 3), (2, 1, 322), (1, 1), (1, 1), (0, 4), (3, 1)]),
-(159, [(1, 1), (1, 1), (3, 1), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2, 1,
-317), (1, 1), (2, 1, 316), (1, 1), (3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (
-2, 1, 315), (3, 1), (1, 1), (0, 1), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2,
-1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1),
-(2, 1, 315), (0, 1), (3, 1)]), (160, [(1, 3), (0, 1), (1, 1), (3, 1), (2, 1,
-191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (3, 1
-), (2, 1, 186), (2, 1, 188), (3, 2), (0, 2), (1, 1), (0, 1), (2, 1, 191), (2,
-1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2, 1,
-186), (2, 1, 188), (0, 3), (3, 1)]), (161, [(1, 3), (0, 2), (3, 1), (0, 3), (3,
-1)]), (41, [(1, 4), (0, 1), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (3, 1), (
-2, 1, 186), (2, 1, 188), (3, 2), (0, 3), (2, 1, 185), (1, 1), (2, 1, 184), (1,
-1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 4), (3, 1)]), (0, [(1, 4), (0, 3), (
-2, 1, 179), (2, 1, 177), (0, 4), (2, 1, 179), (2, 1, 177), (3, 1), (0, 1)]), (
-162, [(1, 4), (1, 1), (3, 1), (2, 1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185
-), (1, 1), (2, 1, 184), (1, 1), (3, 1), (2, 1, 186), (2, 1, 188), (3, 2), (2,
-1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 4),
-(1, 1), (0, 1), (2, 1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2,
-1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 2), (2, 1, 185), (1, 1),
-(2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 4), (3, 1)]), (100,
-[(1, 4), (0, 2), (2, 1, 190), (1, 1), (1, 1), (3, 3), (0, 3), (2, 1, 190), (1,
-1), (1, 1), (0, 4), (3, 1)]), (163, [(1, 1), (1, 1), (3, 1), (2, 1, 191), (2,
-1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (3, 1), (2, 1,
-186), (2, 1, 188), (3, 2), (1, 1), (0, 1), (2, 1, 191), (2, 1, 189), (2, 1, 187
-), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188),
-(0, 2), (3, 1)]), (164, [(1, 2), (2, 1, 220), (3, 1), (0, 1), (2, 1, 220), (0,
-2), (3, 1)]), (165, [(1, 2), (0, 1), (2, 1, 221), (1, 1), (2, 1, 220), (3, 1),
-(2, 1, 219), (2, 1, 217), (1, 1), (2, 1, 222), (2, 1, 224), (1, 1), (1, 1), (1,
-1), (3, 4), (2, 1, 211), (2, 1, 209), (0, 2), (2, 1, 221), (1, 1), (2, 1, 220),
-(0, 1), (2, 1, 219), (2, 1, 217), (1, 1), (2, 1, 222), (2, 1, 224), (1, 1), (1,
-1), (1, 1), (0, 4), (2, 1, 211), (2, 1, 209), (3, 1), (0, 1)]), (166, [(1, 2),
-(2, 1, 236), (3, 1), (0, 1), (2, 1, 236), (0, 2), (3, 1)]), (167, [(1, 2), (0,
-1), (2, 1, 237), (1, 1), (2, 1, 236), (3, 1), (2, 1, 235), (2, 1, 233), (1, 1),
-(2, 1, 238), (2, 1, 240), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 229), (2, 1,
-227), (0, 2), (2, 1, 237), (1, 1), (2, 1, 236), (0, 1), (2, 1, 235), (2, 1, 233
-), (1, 1), (2, 1, 238), (2, 1, 240), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 229
-), (2, 1, 227), (3, 1), (0, 1)]), (106, [(1, 1), (2, 1, 203), (1, 1), (2, 1,
-202), (3, 1), (2, 1, 201), (2, 1, 199), (1, 1), (2, 1, 204), (2, 1, 206), (1, 1
-), (1, 1), (1, 1), (3, 4), (2, 1, 195), (2, 1, 193), (0, 1), (2, 1, 203), (1, 1
-), (2, 1, 202), (0, 1), (2, 1, 201), (2, 1, 199), (1, 1), (2, 1, 204), (2, 1,
-206), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 195), (2, 1, 193), (3, 1), (0, 1)]
-), (106, [(1, 5), (2, 1, 203), (1, 1), (2, 1, 202), (3, 1), (2, 1, 201), (2, 1,
-199), (1, 1), (2, 1, 204), (2, 1, 206), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1,
-195), (2, 1, 193), (0, 5), (2, 1, 203), (1, 1), (2, 1, 202), (0, 1), (2, 1, 201
-), (2, 1, 199), (1, 1), (2, 1, 204), (2, 1, 206), (1, 1), (1, 1), (1, 1), (0, 4
-), (2, 1, 195), (2, 1, 193), (3, 1), (0, 5)]), (0, [(1, 5), (0, 2), (2, 1, 207
-), (2, 1, 205), (2, 1, 195), (2, 1, 193), (0, 5), (2, 1, 207), (2, 1, 205), (2,
-1, 195), (2, 1, 193), (3, 1), (0, 3)]), (0, [(1, 5), (0, 4), (2, 1, 207), (2,
-1, 205), (2, 1, 195), (2, 1, 193), (0, 5), (2, 1, 207), (2, 1, 205), (2, 1, 195
-), (2, 1, 193), (3, 1), (0, 1)]), (0, [(1, 5), (0, 1), (2, 1, 207), (2, 1, 205
-), (2, 1, 195), (2, 1, 193), (0, 5), (2, 1, 207), (2, 1, 205), (2, 1, 195), (2,
-1, 193), (3, 1), (0, 4)]), (0, [(1, 5), (0, 3), (2, 1, 207), (2, 1, 205), (2,
-1, 195), (2, 1, 193), (0, 5), (2, 1, 207), (2, 1, 205), (2, 1, 195), (2, 1, 193
-), (3, 1), (0, 2)]), (0, [(1, 2), (0, 1), (2, 1, 175), (2, 1, 171), (2, 1, 163
-), (2, 1, 161), (2, 1, 157), (2, 1, 155), (0, 2), (2, 1, 175), (2, 1, 171), (2,
-1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (3, 1), (0, 1)]), (0, [(1, 2),
-(2, 1, 175), (2, 1, 171), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1, 155), (
-0, 2), (2, 1, 175), (2, 1, 171), (2, 1, 163), (2, 1, 161), (2, 1, 157), (2, 1,
-155), (3, 1), (0, 2)]), (0, [(1, 1), (2, 1, 169), (2, 1, 165), (2, 1, 163), (2,
-1, 161), (2, 1, 157), (2, 1, 155), (0, 1), (2, 1, 169), (2, 1, 165), (2, 1, 163
-), (2, 1, 161), (2, 1, 157), (2, 1, 155), (3, 1), (0, 1)]), (168, [(1, 1), (2,
-1, 273), (1, 1), (2, 1, 272), (3, 1), (2, 1, 274), (2, 1, 276), (3, 1), (2, 1,
-273), (1, 1), (2, 1, 272), (0, 1), (2, 1, 274), (2, 1, 276), (0, 1), (3, 1)]),
-(169, [(1, 13), (0, 10), (2, 1, 272), (3, 1), (0, 1), (2, 1, 294), (2, 1, 296),
-(3, 1), (0, 10), (2, 1, 272), (0, 2), (2, 1, 294), (2, 1, 296), (0, 1), (3, 1)]
-), (111, [(1, 13), (2, 1, 113), (1, 1), (2, 1, 112), (3, 1), (1, 1), (2, 1, 114
-), (2, 1, 116), (1, 1), (2, 1, 118), (2, 1, 120), (1, 1), (3, 2), (2, 1, 124),
-(2, 1, 126), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 107), (2, 1, 105), (0, 7),
-(2, 1, 251), (1, 1), (2, 1, 250), (3, 1), (2, 1, 252), (2, 1, 254), (3, 1), (0,
-1), (2, 1, 271), (1, 1), (2, 1, 270), (3, 2), (0, 1), (2, 1, 293), (1, 1), (2,
-1, 292), (3, 2), (0, 1), (2, 1, 113), (1, 1), (2, 1, 112), (0, 1), (1, 1), (2,
-1, 114), (2, 1, 116), (1, 1), (2, 1, 118), (2, 1, 120), (1, 1), (0, 2), (2, 1,
-124), (2, 1, 126), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 107), (2, 1, 105), (
-3, 1), (0, 6), (2, 1, 251), (1, 1), (2, 1, 250), (0, 1), (2, 1, 252), (2, 1,
-254), (0, 2), (2, 1, 271), (1, 1), (2, 1, 270), (0, 3), (2, 1, 293), (1, 1), (
-2, 1, 292), (0, 4)]), (170, [(1, 13), (0, 4), (2, 1, 127), (1, 1), (2, 1, 128),
-(1, 1), (3, 2), (2, 1, 125), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105
-), (0, 2), (3, 1), (0, 10), (2, 1, 127), (1, 1), (2, 1, 128), (1, 1), (0, 2), (
-2, 1, 125), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105), (3, 1), (0, 9)]
-), (171, [(1, 13), (0, 8), (1, 1), (3, 1), (2, 1, 256), (3, 1), (0, 12), (1, 1
-), (0, 1), (2, 1, 256), (0, 5), (3, 1)]), (172, [(1, 13), (0, 2), (2, 1, 121),
-(1, 1), (2, 1, 122), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 119), (2, 1, 117),
-(2, 1, 115), (2, 1, 107), (2, 1, 105), (0, 13), (2, 1, 121), (1, 1), (2, 1, 122
-), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 119), (2, 1, 117), (2, 1, 115), (2,
-1, 107), (2, 1, 105), (3, 1), (0, 11)]), (173, [(1, 13), (0, 3), (2, 1, 127), (
-1, 1), (2, 1, 128), (1, 1), (3, 2), (2, 1, 125), (2, 1, 117), (2, 1, 115), (2,
-1, 107), (2, 1, 105), (0, 2), (3, 1), (0, 10), (2, 1, 127), (1, 1), (2, 1, 128
-), (1, 1), (0, 2), (2, 1, 125), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1,
-105), (3, 1), (0, 10)]), (172, [(1, 13), (0, 1), (2, 1, 121), (1, 1), (2, 1,
-122), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 119), (2, 1, 117), (2, 1, 115), (
-2, 1, 107), (2, 1, 105), (0, 13), (2, 1, 121), (1, 1), (2, 1, 122), (1, 1), (1,
-1), (1, 1), (0, 4), (2, 1, 119), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1,
-105), (3, 1), (0, 12)]), (0, [(1, 2), (0, 1), (2, 1, 153), (2, 1, 149), (2, 1,
-141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (0, 2), (2, 1, 153), (2, 1, 149),
-(2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (3, 1), (0, 1)]), (0, [(1,
-2), (2, 1, 153), (2, 1, 149), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2, 1, 131
-), (0, 2), (2, 1, 153), (2, 1, 149), (2, 1, 141), (2, 1, 139), (2, 1, 133), (2,
-1, 131), (3, 1), (0, 2)]), (0, [(1, 1), (2, 1, 147), (2, 1, 143), (2, 1, 141),
-(2, 1, 139), (2, 1, 133), (2, 1, 131), (0, 1), (2, 1, 147), (2, 1, 143), (2, 1,
-141), (2, 1, 139), (2, 1, 133), (2, 1, 131), (3, 1), (0, 1)]), (174, [(1, 3), (
-3, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3
-), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (
-0, 1)]), (175, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2,
-1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99
-), (2, 1, 97), (3, 1), (0, 1)]), (176, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (
-2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1,
-102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (177, [(1, 2), (3, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2,
-1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]),
-(178, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (179, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (180, [(1, 2), (3, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (
-1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (181, [(
-1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (182, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (183, [(1, 2), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2),
-(2, 1, 5), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1,
-97), (0, 1), (2, 1, 5), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2,
-1, 99), (2, 1, 97), (0, 2)]), (19, [(1, 2), (2, 1, 95), (0, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 95), (3, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (
-184, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2,
-1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97
-), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 9), (0, 1), (2, 1, 103), (1, 1), (2,
-1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 9), (3, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (19, [(1, 2),
-(2, 1, 11), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2,
-1, 97), (0, 1), (2, 1, 11), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (0, 2)]), (185, [(1, 3), (3, 1), (0, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (186, [(1, 3
-), (0, 1), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1,
-97), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97),
-(3, 1), (0, 1)]), (187, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3,
-1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (188, [(1, 2), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2),
-(2, 1, 23), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2,
-1, 97), (0, 1), (2, 1, 23), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (0, 2)]), (19, [(1, 2), (2, 1, 25), (0, 1), (2, 1, 103),
-(1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 25), (3, 1
-), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]),
-(189, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (190, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 33), (0, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2,
-1, 33), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97
-), (0, 2)]), (191, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 41), (0, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 41), (3,
-1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]),
-(192, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (193, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (194, [(1, 2), (3, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (
-1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (195, [(
-1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (196, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (197, [(1, 2), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (198, [(1, 3
-), (3, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (199, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (200, [(1, 2), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (201, [(1, 2), (3, 1
-), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (
-2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)
-]), (202, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99
-), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (3, 1), (0, 1)]), (203, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (204, [(1, 2), (3, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(
-1, 2), (2, 1, 67), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99
-), (2, 1, 97), (0, 1), (2, 1, 67), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (
-0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (205, [(1, 2), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (206, [(1, 2
-), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (156, [(1, 6), (2, 1, 325), (1, 1), (2, 1, 324), (3, 1), (2, 1,
-309), (1, 1), (2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312), (1, 1), (1, 1), (
-1, 1), (3, 5), (2, 1, 307), (2, 1, 305), (0, 6), (2, 1, 325), (1, 1), (2, 1,
-324), (0, 1), (2, 1, 309), (1, 1), (2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312
-), (1, 1), (1, 1), (1, 1), (0, 5), (2, 1, 307), (2, 1, 305), (3, 1), (0, 6)]),
-(95, [(1, 3), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2,
-1, 316), (1, 1), (3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1),
-(0, 2), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316
-), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 3), (3, 1
-)]), (207, [(1, 3), (0, 1), (1, 1), (3, 1), (2, 1, 323), (2, 1, 321), (2, 1,
-319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (3, 1), (2, 1, 318), (2, 1, 320
-), (3, 1), (2, 1, 315), (3, 1), (0, 2), (1, 1), (0, 1), (2, 1, 323), (2, 1, 321
-), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318),
-(2, 1, 320), (0, 1), (2, 1, 315), (0, 2), (3, 1)]), (208, [(1, 3), (0, 2), (3,
-1), (0, 3), (3, 1)]), (4, [(1, 4), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2,
-1, 317), (1, 1), (2, 1, 316), (1, 1), (3, 1), (2, 1, 318), (2, 1, 320), (3, 1),
-(2, 1, 315), (3, 1), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1,
-318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 3), (2, 1, 323), (2, 1, 321), (2,
-1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1,
-320), (0, 1), (2, 1, 315), (0, 1), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (
-0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 3), (3, 1)]), (159, [
-(1, 4), (1, 1), (3, 1), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1,
-1), (2, 1, 316), (1, 1), (3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315),
-(3, 1), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1,
-320), (0, 1), (2, 1, 315), (0, 3), (1, 1), (0, 1), (2, 1, 323), (2, 1, 321), (
-2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2,
-1, 320), (0, 1), (2, 1, 315), (0, 1), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1),
-(0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 3), (3, 1)]), (209,
-[(1, 4), (1, 1), (3, 1), (2, 1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (
-1, 1), (2, 1, 184), (1, 1), (3, 1), (2, 1, 186), (2, 1, 188), (3, 2), (2, 1,
-185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 4), (
-1, 1), (0, 1), (2, 1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2,
-1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 2), (2, 1, 185), (1, 1),
-(2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 4), (3, 1)]), (210,
-[(1, 1), (1, 1), (3, 1), (2, 1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (
-1, 1), (2, 1, 184), (1, 1), (3, 1), (2, 1, 186), (2, 1, 188), (3, 2), (1, 1), (
-0, 1), (2, 1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1, 184),
-(1, 1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 2), (3, 1)]), (41, [(1, 4), (2,
-1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (
-3, 1), (2, 1, 186), (2, 1, 188), (3, 2), (2, 1, 185), (1, 1), (2, 1, 184), (1,
-1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 4), (2, 1, 191), (2, 1, 189), (2, 1,
-187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188
-), (0, 2), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2,
-1, 188), (0, 4), (3, 1)]), (163, [(1, 4), (1, 1), (3, 1), (2, 1, 191), (2, 1,
-189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (3, 1), (2, 1, 186
-), (2, 1, 188), (3, 2), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2,
-1, 186), (2, 1, 188), (0, 4), (1, 1), (0, 1), (2, 1, 191), (2, 1, 189), (2, 1,
-187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188
-), (0, 2), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2,
-1, 188), (0, 4), (3, 1)]), (165, [(1, 1), (2, 1, 221), (1, 1), (2, 1, 220), (3,
-1), (2, 1, 219), (2, 1, 217), (1, 1), (2, 1, 222), (2, 1, 224), (1, 1), (1, 1),
-(1, 1), (3, 4), (2, 1, 211), (2, 1, 209), (0, 1), (2, 1, 221), (1, 1), (2, 1,
-220), (0, 1), (2, 1, 219), (2, 1, 217), (1, 1), (2, 1, 222), (2, 1, 224), (1, 1
-), (1, 1), (1, 1), (0, 4), (2, 1, 211), (2, 1, 209), (3, 1), (0, 1)]), (165, [(
-1, 5), (2, 1, 221), (1, 1), (2, 1, 220), (3, 1), (2, 1, 219), (2, 1, 217), (1,
-1), (2, 1, 222), (2, 1, 224), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 211), (2,
-1, 209), (0, 5), (2, 1, 221), (1, 1), (2, 1, 220), (0, 1), (2, 1, 219), (2, 1,
-217), (1, 1), (2, 1, 222), (2, 1, 224), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1,
-211), (2, 1, 209), (3, 1), (0, 5)]), (0, [(1, 5), (0, 2), (2, 1, 225), (2, 1,
-223), (2, 1, 211), (2, 1, 209), (0, 5), (2, 1, 225), (2, 1, 223), (2, 1, 211),
-(2, 1, 209), (3, 1), (0, 3)]), (0, [(1, 5), (0, 4), (2, 1, 225), (2, 1, 223), (
-2, 1, 211), (2, 1, 209), (0, 5), (2, 1, 225), (2, 1, 223), (2, 1, 211), (2, 1,
-209), (3, 1), (0, 1)]), (0, [(1, 5), (0, 1), (2, 1, 225), (2, 1, 223), (2, 1,
-211), (2, 1, 209), (0, 5), (2, 1, 225), (2, 1, 223), (2, 1, 211), (2, 1, 209),
-(3, 1), (0, 4)]), (0, [(1, 5), (0, 3), (2, 1, 225), (2, 1, 223), (2, 1, 211), (
-2, 1, 209), (0, 5), (2, 1, 225), (2, 1, 223), (2, 1, 211), (2, 1, 209), (3, 1),
-(0, 2)]), (167, [(1, 1), (2, 1, 237), (1, 1), (2, 1, 236), (3, 1), (2, 1, 235),
-(2, 1, 233), (1, 1), (2, 1, 238), (2, 1, 240), (1, 1), (1, 1), (1, 1), (3, 4),
-(2, 1, 229), (2, 1, 227), (0, 1), (2, 1, 237), (1, 1), (2, 1, 236), (0, 1), (2,
-1, 235), (2, 1, 233), (1, 1), (2, 1, 238), (2, 1, 240), (1, 1), (1, 1), (1, 1),
-(0, 4), (2, 1, 229), (2, 1, 227), (3, 1), (0, 1)]), (167, [(1, 5), (2, 1, 237),
-(1, 1), (2, 1, 236), (3, 1), (2, 1, 235), (2, 1, 233), (1, 1), (2, 1, 238), (2,
-1, 240), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 229), (2, 1, 227), (0, 5), (2,
-1, 237), (1, 1), (2, 1, 236), (0, 1), (2, 1, 235), (2, 1, 233), (1, 1), (2, 1,
-238), (2, 1, 240), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 229), (2, 1, 227), (
-3, 1), (0, 5)]), (0, [(1, 5), (0, 2), (2, 1, 241), (2, 1, 239), (2, 1, 229), (
-2, 1, 227), (0, 5), (2, 1, 241), (2, 1, 239), (2, 1, 229), (2, 1, 227), (3, 1),
-(0, 3)]), (0, [(1, 5), (0, 4), (2, 1, 241), (2, 1, 239), (2, 1, 229), (2, 1,
-227), (0, 5), (2, 1, 241), (2, 1, 239), (2, 1, 229), (2, 1, 227), (3, 1), (0, 1
-)]), (0, [(1, 5), (0, 1), (2, 1, 241), (2, 1, 239), (2, 1, 229), (2, 1, 227), (
-0, 5), (2, 1, 241), (2, 1, 239), (2, 1, 229), (2, 1, 227), (3, 1), (0, 4)]), (
-0, [(1, 5), (0, 3), (2, 1, 241), (2, 1, 239), (2, 1, 229), (2, 1, 227), (0, 5),
-(2, 1, 241), (2, 1, 239), (2, 1, 229), (2, 1, 227), (3, 1), (0, 2)]), (168, [(
-1, 2), (2, 1, 273), (1, 1), (2, 1, 272), (3, 1), (2, 1, 274), (2, 1, 276), (3,
-1), (0, 1), (2, 1, 273), (1, 1), (2, 1, 272), (0, 1), (2, 1, 274), (2, 1, 276),
-(0, 2), (3, 1)]), (211, [(1, 2), (0, 1), (1, 1), (3, 1), (2, 1, 278), (3, 1), (
-0, 1), (1, 1), (0, 1), (2, 1, 278), (0, 1), (3, 1)]), (212, [(1, 2), (0, 1), (
-1, 1), (3, 1), (2, 1, 298), (3, 1), (0, 1), (1, 1), (0, 1), (2, 1, 298), (0, 1
-), (3, 1)]), (213, [(1, 3), (0, 2), (2, 1, 127), (1, 1), (2, 1, 128), (1, 1), (
-3, 2), (2, 1, 125), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105), (0, 3),
-(2, 1, 127), (1, 1), (2, 1, 128), (1, 1), (0, 2), (2, 1, 125), (2, 1, 117), (2,
-1, 115), (2, 1, 107), (2, 1, 105), (3, 1), (0, 1)]), (0, [(1, 3), (0, 1), (2,
-1, 129), (2, 1, 125), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105), (0, 3
-), (2, 1, 129), (2, 1, 125), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105
-), (3, 1), (0, 2)]), (0, [(1, 3), (2, 1, 129), (2, 1, 125), (2, 1, 117), (2, 1,
-115), (2, 1, 107), (2, 1, 105), (0, 3), (2, 1, 129), (2, 1, 125), (2, 1, 117),
-(2, 1, 115), (2, 1, 107), (2, 1, 105), (3, 1), (0, 3)]), (214, [(1, 2), (2, 1,
-256), (3, 1), (0, 1), (2, 1, 256), (0, 2), (3, 1)]), (215, [(1, 2), (0, 1), (2,
-1, 257), (1, 1), (2, 1, 256), (3, 1), (2, 1, 255), (2, 1, 253), (1, 1), (2, 1,
-258), (2, 1, 260), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 245), (2, 1, 243), (
-0, 2), (2, 1, 257), (1, 1), (2, 1, 256), (0, 1), (2, 1, 255), (2, 1, 253), (1,
-1), (2, 1, 258), (2, 1, 260), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 245), (2,
-1, 243), (3, 1), (0, 1)]), (216, [(1, 4), (0, 1), (2, 1, 123), (2, 1, 119), (2,
-1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105), (0, 2), (3, 1), (0, 1), (2, 1,
-123), (2, 1, 119), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105), (3, 1),
-(0, 3)]), (217, [(1, 4), (2, 1, 123), (2, 1, 119), (2, 1, 117), (2, 1, 115), (
-2, 1, 107), (2, 1, 105), (0, 2), (3, 1), (0, 1), (2, 1, 123), (2, 1, 119), (2,
-1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105), (3, 1), (0, 4)]), (218, [(1, 3
-), (3, 2), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (219, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 79), (0, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 79), (3,
-1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]),
-(220, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (221, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (222, [(1, 2), (3, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (
-1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (223, [(
-1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (224, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (225, [(1, 2), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (226, [(1, 2
-), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (19, [(1, 2), (2, 1, 7), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 7), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (19, [(1, 2), (2, 1, 13
-), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 1), (2, 1, 13), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99
-), (2, 1, 97), (0, 2)]), (227, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102
-), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (
-0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (228, [(1, 2), (3, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (229, [(
-1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (230, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 29), (0, 1), (2,
-1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 29
-), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-0, 2)]), (231, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2,
-1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99
-), (2, 1, 97), (3, 1), (0, 1)]), (232, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (
-2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1,
-102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (233, [(1, 2), (3, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2,
-1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]),
-(234, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (235, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 49), (0, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2,
-1, 49), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97
-), (0, 2)]), (236, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (237, [(1, 3), (0, 1), (3, 1), (2, 1, 103),
-(1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (238, [(1, 3
-), (3, 1), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1,
-97), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97),
-(3, 1), (0, 1)]), (239, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3,
-1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (240, [(1, 2), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (241, [(1, 2
-), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (242, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 63), (0, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 63), (3,
-1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]),
-(243, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (244, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 71), (0, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2,
-1, 71), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97
-), (0, 2)]), (95, [(1, 4), (0, 1), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (
-3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (0, 3), (2, 1,
-317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (
-2, 1, 315), (0, 3), (3, 1)]), (156, [(1, 4), (0, 3), (1, 1), (2, 1, 324), (3, 1
-), (2, 1, 309), (1, 1), (2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312), (1, 1),
-(1, 1), (1, 1), (3, 5), (2, 1, 307), (2, 1, 305), (0, 4), (1, 1), (2, 1, 324),
-(0, 1), (2, 1, 309), (1, 1), (2, 1, 308), (1, 1), (2, 1, 310), (2, 1, 312), (1,
-1), (1, 1), (1, 1), (0, 5), (2, 1, 307), (2, 1, 305), (3, 1), (0, 1)]), (245, [
-(1, 4), (1, 1), (3, 1), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1,
-1), (2, 1, 316), (1, 1), (3, 1), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315),
-(3, 1), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1,
-320), (0, 1), (2, 1, 315), (0, 3), (1, 1), (0, 1), (2, 1, 323), (2, 1, 321), (
-2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2,
-1, 320), (0, 1), (2, 1, 315), (0, 1), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1),
-(0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 3), (3, 1)]), (157,
-[(1, 4), (0, 2), (2, 1, 322), (1, 1), (1, 1), (3, 3), (0, 3), (2, 1, 322), (1,
-1), (1, 1), (0, 4), (3, 1)]), (246, [(1, 1), (1, 1), (3, 1), (2, 1, 323), (2,
-1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (3, 1), (2, 1,
-318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (1, 1), (0, 1), (2, 1, 323), (
-2, 1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2,
-1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 1), (3, 1)]), (210, [(1, 4), (1,
-1), (3, 1), (2, 1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1,
-184), (1, 1), (3, 1), (2, 1, 186), (2, 1, 188), (3, 2), (2, 1, 185), (1, 1), (
-2, 1, 184), (1, 1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 4), (1, 1), (0, 1), (
-2, 1, 191), (2, 1, 189), (2, 1, 187), (2, 1, 185), (1, 1), (2, 1, 184), (1, 1),
-(0, 1), (2, 1, 186), (2, 1, 188), (0, 2), (2, 1, 185), (1, 1), (2, 1, 184), (1,
-1), (0, 1), (2, 1, 186), (2, 1, 188), (0, 4), (3, 1)]), (247, [(1, 2), (2, 1,
-278), (3, 1), (0, 1), (2, 1, 278), (0, 2), (3, 1)]), (248, [(1, 2), (0, 1), (2,
-1, 279), (1, 1), (2, 1, 278), (3, 1), (2, 1, 277), (2, 1, 275), (1, 1), (2, 1,
-280), (2, 1, 282), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 265), (2, 1, 263), (
-0, 2), (2, 1, 279), (1, 1), (2, 1, 278), (0, 1), (2, 1, 277), (2, 1, 275), (1,
-1), (2, 1, 280), (2, 1, 282), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 265), (2,
-1, 263), (3, 1), (0, 1)]), (249, [(1, 2), (2, 1, 298), (3, 1), (0, 1), (2, 1,
-298), (0, 2), (3, 1)]), (250, [(1, 2), (0, 1), (2, 1, 299), (1, 1), (2, 1, 298
-), (3, 1), (2, 1, 297), (2, 1, 295), (1, 1), (2, 1, 300), (2, 1, 302), (1, 1),
-(1, 1), (1, 1), (3, 4), (2, 1, 287), (2, 1, 285), (0, 2), (2, 1, 299), (1, 1),
-(2, 1, 298), (0, 1), (2, 1, 297), (2, 1, 295), (1, 1), (2, 1, 300), (2, 1, 302
-), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 287), (2, 1, 285), (3, 1), (0, 1)]),
-(0, [(1, 2), (0, 1), (2, 1, 129), (2, 1, 125), (2, 1, 117), (2, 1, 115), (2, 1,
-107), (2, 1, 105), (0, 2), (2, 1, 129), (2, 1, 125), (2, 1, 117), (2, 1, 115),
-(2, 1, 107), (2, 1, 105), (3, 1), (0, 1)]), (0, [(1, 2), (2, 1, 129), (2, 1,
-125), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105), (0, 2), (2, 1, 129),
-(2, 1, 125), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105), (3, 1), (0, 2)
-]), (215, [(1, 1), (2, 1, 257), (1, 1), (2, 1, 256), (3, 1), (2, 1, 255), (2,
-1, 253), (1, 1), (2, 1, 258), (2, 1, 260), (1, 1), (1, 1), (1, 1), (3, 4), (2,
-1, 245), (2, 1, 243), (0, 1), (2, 1, 257), (1, 1), (2, 1, 256), (0, 1), (2, 1,
-255), (2, 1, 253), (1, 1), (2, 1, 258), (2, 1, 260), (1, 1), (1, 1), (1, 1), (
-0, 4), (2, 1, 245), (2, 1, 243), (3, 1), (0, 1)]), (215, [(1, 5), (2, 1, 257),
-(1, 1), (2, 1, 256), (3, 1), (2, 1, 255), (2, 1, 253), (1, 1), (2, 1, 258), (2,
-1, 260), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 245), (2, 1, 243), (0, 5), (2,
-1, 257), (1, 1), (2, 1, 256), (0, 1), (2, 1, 255), (2, 1, 253), (1, 1), (2, 1,
-258), (2, 1, 260), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 245), (2, 1, 243), (
-3, 1), (0, 5)]), (0, [(1, 5), (0, 2), (2, 1, 261), (2, 1, 259), (2, 1, 245), (
-2, 1, 243), (0, 5), (2, 1, 261), (2, 1, 259), (2, 1, 245), (2, 1, 243), (3, 1),
-(0, 3)]), (0, [(1, 5), (0, 4), (2, 1, 261), (2, 1, 259), (2, 1, 245), (2, 1,
-243), (0, 5), (2, 1, 261), (2, 1, 259), (2, 1, 245), (2, 1, 243), (3, 1), (0, 1
-)]), (0, [(1, 5), (0, 1), (2, 1, 261), (2, 1, 259), (2, 1, 245), (2, 1, 243), (
-0, 5), (2, 1, 261), (2, 1, 259), (2, 1, 245), (2, 1, 243), (3, 1), (0, 4)]), (
-0, [(1, 5), (0, 3), (2, 1, 261), (2, 1, 259), (2, 1, 245), (2, 1, 243), (0, 5),
-(2, 1, 261), (2, 1, 259), (2, 1, 245), (2, 1, 243), (3, 1), (0, 2)]), (0, [(1,
-1), (2, 1, 123), (2, 1, 119), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2, 1, 105
-), (0, 1), (2, 1, 123), (2, 1, 119), (2, 1, 117), (2, 1, 115), (2, 1, 107), (2,
-1, 105), (3, 1), (0, 1)]), (251, [(1, 3), (3, 2), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (252, [(1, 2), (3, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (253, [(
-1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (254, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (255, [(1, 2), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (256, [(1, 2
-), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (257, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (258, [(1, 2), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (259, [(1, 2), (3, 1
-), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (
-2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)
-]), (260, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99
-), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (3, 1), (0, 1)]), (261, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 21), (0,
-1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (
-2, 1, 21), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (0, 2)]), (19, [(1, 2), (2, 1, 27), (0, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 27), (3, 1), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (19, [(1, 2), (
-2, 1, 37), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1,
-97), (0, 1), (2, 1, 37), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2,
-1, 99), (2, 1, 97), (0, 2)]), (262, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2,
-1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1,
-102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (263, [(1, 2), (3, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2,
-1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]),
-(19, [(1, 2), (2, 1, 47), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2,
-1, 99), (2, 1, 97), (0, 1), (2, 1, 47), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102
-), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (264, [(1, 2), (3, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (
-1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1,
-2), (2, 1, 51), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 1), (2, 1, 51), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (0, 2)]), (19, [(1, 2), (2, 1, 53), (0, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 53),
-(3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2
-)]), (19, [(1, 2), (2, 1, 55), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 55), (3, 1), (2, 1, 103), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (19, [(1, 2), (2, 1, 57), (
-0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1
-), (2, 1, 57), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (0, 2)]), (19, [(1, 2), (2, 1, 59), (0, 1), (2, 1, 103), (1, 1), (2,
-1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 59), (3, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (265, [(1, 2
-), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (266, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (267, [(1, 2), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (95, [(1, 4), (2, 1,
-323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (3, 1
-), (2, 1, 318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (2, 1, 317), (1, 1),
-(2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0,
-3), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (
-1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 1), (2, 1,
-317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (
-2, 1, 315), (0, 3), (3, 1)]), (246, [(1, 4), (1, 1), (3, 1), (2, 1, 323), (2,
-1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (3, 1), (2, 1,
-318), (2, 1, 320), (3, 1), (2, 1, 315), (3, 1), (2, 1, 317), (1, 1), (2, 1, 316
-), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 3), (1, 1
-), (0, 1), (2, 1, 323), (2, 1, 321), (2, 1, 319), (2, 1, 317), (1, 1), (2, 1,
-316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0, 1), (2, 1, 315), (0, 1), (
-2, 1, 317), (1, 1), (2, 1, 316), (1, 1), (0, 1), (2, 1, 318), (2, 1, 320), (0,
-1), (2, 1, 315), (0, 3), (3, 1)]), (248, [(1, 1), (2, 1, 279), (1, 1), (2, 1,
-278), (3, 1), (2, 1, 277), (2, 1, 275), (1, 1), (2, 1, 280), (2, 1, 282), (1, 1
-), (1, 1), (1, 1), (3, 4), (2, 1, 265), (2, 1, 263), (0, 1), (2, 1, 279), (1, 1
-), (2, 1, 278), (0, 1), (2, 1, 277), (2, 1, 275), (1, 1), (2, 1, 280), (2, 1,
-282), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 265), (2, 1, 263), (3, 1), (0, 1)]
-), (248, [(1, 5), (2, 1, 279), (1, 1), (2, 1, 278), (3, 1), (2, 1, 277), (2, 1,
-275), (1, 1), (2, 1, 280), (2, 1, 282), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1,
-265), (2, 1, 263), (0, 5), (2, 1, 279), (1, 1), (2, 1, 278), (0, 1), (2, 1, 277
-), (2, 1, 275), (1, 1), (2, 1, 280), (2, 1, 282), (1, 1), (1, 1), (1, 1), (0, 4
-), (2, 1, 265), (2, 1, 263), (3, 1), (0, 5)]), (0, [(1, 5), (0, 2), (2, 1, 283
-), (2, 1, 281), (2, 1, 265), (2, 1, 263), (0, 5), (2, 1, 283), (2, 1, 281), (2,
-1, 265), (2, 1, 263), (3, 1), (0, 3)]), (0, [(1, 5), (0, 4), (2, 1, 283), (2,
-1, 281), (2, 1, 265), (2, 1, 263), (0, 5), (2, 1, 283), (2, 1, 281), (2, 1, 265
-), (2, 1, 263), (3, 1), (0, 1)]), (0, [(1, 5), (0, 1), (2, 1, 283), (2, 1, 281
-), (2, 1, 265), (2, 1, 263), (0, 5), (2, 1, 283), (2, 1, 281), (2, 1, 265), (2,
-1, 263), (3, 1), (0, 4)]), (0, [(1, 5), (0, 3), (2, 1, 283), (2, 1, 281), (2,
-1, 265), (2, 1, 263), (0, 5), (2, 1, 283), (2, 1, 281), (2, 1, 265), (2, 1, 263
-), (3, 1), (0, 2)]), (250, [(1, 1), (2, 1, 299), (1, 1), (2, 1, 298), (3, 1), (
-2, 1, 297), (2, 1, 295), (1, 1), (2, 1, 300), (2, 1, 302), (1, 1), (1, 1), (1,
-1), (3, 4), (2, 1, 287), (2, 1, 285), (0, 1), (2, 1, 299), (1, 1), (2, 1, 298),
-(0, 1), (2, 1, 297), (2, 1, 295), (1, 1), (2, 1, 300), (2, 1, 302), (1, 1), (1,
-1), (1, 1), (0, 4), (2, 1, 287), (2, 1, 285), (3, 1), (0, 1)]), (250, [(1, 5),
-(2, 1, 299), (1, 1), (2, 1, 298), (3, 1), (2, 1, 297), (2, 1, 295), (1, 1), (2,
-1, 300), (2, 1, 302), (1, 1), (1, 1), (1, 1), (3, 4), (2, 1, 287), (2, 1, 285),
-(0, 5), (2, 1, 299), (1, 1), (2, 1, 298), (0, 1), (2, 1, 297), (2, 1, 295), (1,
-1), (2, 1, 300), (2, 1, 302), (1, 1), (1, 1), (1, 1), (0, 4), (2, 1, 287), (2,
-1, 285), (3, 1), (0, 5)]), (0, [(1, 5), (0, 2), (2, 1, 303), (2, 1, 301), (2,
-1, 287), (2, 1, 285), (0, 5), (2, 1, 303), (2, 1, 301), (2, 1, 287), (2, 1, 285
-), (3, 1), (0, 3)]), (0, [(1, 5), (0, 4), (2, 1, 303), (2, 1, 301), (2, 1, 287
-), (2, 1, 285), (0, 5), (2, 1, 303), (2, 1, 301), (2, 1, 287), (2, 1, 285), (3,
-1), (0, 1)]), (0, [(1, 5), (0, 1), (2, 1, 303), (2, 1, 301), (2, 1, 287), (2,
-1, 285), (0, 5), (2, 1, 303), (2, 1, 301), (2, 1, 287), (2, 1, 285), (3, 1), (
-0, 4)]), (0, [(1, 5), (0, 3), (2, 1, 303), (2, 1, 301), (2, 1, 287), (2, 1, 285
-), (0, 5), (2, 1, 303), (2, 1, 301), (2, 1, 287), (2, 1, 285), (3, 1), (0, 2)]
-), (268, [(1, 3), (3, 1), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2,
-1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99
-), (2, 1, 97), (3, 1), (0, 1)]), (269, [(1, 3), (0, 1), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 3), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2),
-(2, 1, 77), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2,
-1, 97), (0, 1), (2, 1, 77), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (0, 2)]), (270, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (
-2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1,
-102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (271, [(1, 2), (3, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2,
-1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]),
-(272, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (273, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102),
-(3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (274, [(1, 2), (3, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (
-1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (275, [(
-1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (276, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (277, [(1, 2), (3, 1), (2, 1, 103), (
-1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1
-), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2),
-(2, 1, 17), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2,
-1, 97), (0, 1), (2, 1, 17), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (0, 2)]), (278, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (
-2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1,
-102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (279, [(1, 2), (3, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2,
-1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]),
-(280, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (
-2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 61), (0, 1), (2, 1, 103), (1, 1), (
-2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 61), (3, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (281, [(1,
-2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1
-), (0, 1)]), (282, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 73), (0, 1), (2, 1, 103
-), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 73), (3,
-1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]),
-(19, [(1, 2), (2, 1, 75), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2,
-1, 99), (2, 1, 97), (0, 1), (2, 1, 75), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102
-), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (19, [(1, 2), (2, 1, 81), (0, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2,
-1, 81), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97
-), (0, 2)]), (19, [(1, 2), (2, 1, 83), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102
-), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 83), (3, 1), (2, 1, 103), (1,
-1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (283, [(1, 2), (3, 1
-), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (
-2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)
-]), (284, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99
-), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (3, 1), (0, 1)]), (285, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (286, [(1, 2), (3, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(
-1, 2), (2, 1, 93), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99
-), (2, 1, 97), (0, 1), (2, 1, 93), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (
-0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (19, [(1, 2), (2, 1, 15), (0, 1), (2,
-1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 15
-), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-0, 2)]), (19, [(1, 2), (2, 1, 43), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (
-3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 43), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (19, [(1, 2), (2, 1, 45
-), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (
-0, 1), (2, 1, 45), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99
-), (2, 1, 97), (0, 2)]), (287, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102
-), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (
-0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 65), (0,
-1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (
-2, 1, 65), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1,
-97), (0, 2)]), (19, [(1, 2), (2, 1, 69), (0, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 69), (3, 1), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (288, [(1, 2), (
-3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2
-), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (
-0, 1)]), (19, [(1, 2), (2, 1, 87), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (
-3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 87), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)]), (289, [(1, 2), (3, 1), (
-2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1,
-103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (
-290, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2,
-1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97
-), (3, 1), (0, 1)]), (291, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (
-3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1
-), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 85), (0, 1),
-(2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2,
-1, 85), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97
-), (0, 2)]), (292, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (
-2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1,
-99), (2, 1, 97), (3, 1), (0, 1)]), (293, [(1, 2), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2,
-1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (294, [(1, 2), (3, 1
-), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (
-2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)
-]), (295, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99
-), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (
-2, 1, 97), (3, 1), (0, 1)]), (296, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1,
-102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102),
-(0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (297, [(1, 2), (3, 1), (2, 1,
-103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103),
-(1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (298, [(
-1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97
-), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-3, 1), (0, 1)]), (299, [(1, 2), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (3, 1
-), (2, 1, 99), (2, 1, 97), (0, 2), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (
-2, 1, 99), (2, 1, 97), (3, 1), (0, 1)]), (19, [(1, 2), (2, 1, 91), (0, 1), (2,
-1, 103), (1, 1), (2, 1, 102), (3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 91
-), (3, 1), (2, 1, 103), (1, 1), (2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (
-0, 2)]), (19, [(1, 2), (2, 1, 89), (0, 1), (2, 1, 103), (1, 1), (2, 1, 102), (
-3, 1), (2, 1, 99), (2, 1, 97), (0, 1), (2, 1, 89), (3, 1), (2, 1, 103), (1, 1),
-(2, 1, 102), (0, 1), (2, 1, 99), (2, 1, 97), (0, 2)])], [1])
-# GENERATE END
-
-# GENERATE TOKENS BEGIN
-tokens = [-1, -1, 290, 322, 312, 297, 293, 321, 313, 318, 304, 315, 310, 288,
-303, 319, 320, 314, 292, 299, 300, 291, 294, 323, 298, 301, 263, 289, 308, 316,
-287, 309, 302, 305, 295, 317, 324, 325, 326, 296, 306, 327, 307, 328, 329, 330,
-262, 285, 258, -1, -1, -1, 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 259, -1, -1, -1, -1, -1, -1,
--1, -1, -1, -1, 259, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, -1, -1, -1,
--1, 260, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, -1, -1, -1, -1, 260,
--1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, -1, -1, -1, -1, -1, -1,
--1, 260, -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1,
--1, -1, -1, 311, 281, 280, 278, 279, 275, 276, 277, 282, 283, 284, 268, 267,
-265, 266, 264, 273, 274, 269, 270, 271, 272, 59, 123, -1, 125, -1, 44, 58, 61,
-40, 41, 91, -1, 93, -1, 46, 38, 33, 126, 45, 43, 42, 47, 37, 60, 62, 94, 124,
-63, -1, -1, -1]
-# GENERATE END
-
-def yylex(root, pos, off, factory, yychunk_iter):
- for end_pos, end_off, group_index in (
- _dfa.yylex(root, pos, off, factory, yychunk_iter)
- ):
- token = tokens[group_index]
- #print('end_pos', end_pos, 'end_off', end_off, 'group_index', group_index, 'token', token)
- if token != -1:
- yield end_pos, end_off, token
-
-if __name__ == '__main__':
- import ast
- import element
- import sys
- import work
- import xml.etree.ElementTree
-
- root = element.Element('root')
- pos = 0
- off = 0
- for end_pos, end_off, group_index in _dfa.yylex(
- root,
- pos,
- off,
- ast.factory,
- work.yychunk_line(root, sys.stdin)
- ):
- tag, kwargs = _dfa.groups[group_index]
- if tag != '':
- work.apply_markup(
- root,
- pos,
- off,
- end_pos,
- end_off,
- ast.factory,
- tag,
- **kwargs
- )
- pos, off = element.to_start_relative(root, end_pos, end_off)
- xml.etree.ElementTree.dump(root)
+++ /dev/null
-#!/bin/sh
-if ../plex.git/plex.py ansi_c_lex.l ansi_c_tokens.py <ansi_c_yylex.py >ansi_c_yylex.py.new && ! diff -q ansi_c_yylex.py ansi_c_yylex.py.new
- then
- mv ansi_c_yylex.py.new ansi_c_yylex.py
-else
- rm -f ansi_c_yylex.py.new
-fi
+++ /dev/null
-import lr1dfa
-
-# GENERATE LALR1 BEGIN
-lalr1 = lr1dfa.LR1DFA([([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 59, 60,
-123, 124, 126, 127, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
-285, 286, 287, 288, 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, 325, 326, 327, 328, 329, 330, 331], [
--1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 179, -1, 14, -1, 16, -1, 487, -1,
-18, 20, 22, 24, 26, 28, -1, 30, 32, -1, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52,
-54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1, 86, 88, 90,
--1, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120], [1,
-6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72,
-74, 77, 89, 91, 93, 96, 98, 100, 105, 110, 116, 133, 135, 137, 153, 155, 161,
-162, 168, 172, 174, 176, 226, 227, 243, 245, 247, 249, 264], [-1, 61, 62, -1,
-63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79,
-80, 81, -1, 82, 83, 84, -1, 85, 86, 87, 88, -1, 89, -1, 90, -1, 91, 92, 93, -1,
-94, 95, 96, 97, 98, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126,
-127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327,
-328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22,
-24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13,
-18, 26, 30, 42, 44, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 101, -1]),
-([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261,
-262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1,
-4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 264],
-[-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 102, -1]), ([33, 34, 38, 39, 40, 41,
-42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
-285, 286, 287, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
-306, 307, 308, 309, 310, 311, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6,
--1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 34, 36,
--1, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1,
-110, 112, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59,
-62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 116, 133, 135, 137, 143, 145, 147,
-153, 155, 161, 162, 168, 172, 197, 198, 264], [-1, 61, 62, -1, 63, 64, -1, 65,
--1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79, -1, 103, -1,
-104, 87, 88, -1, 105, 106, -1, 89, -1, 90, -1, 107, -1, 108, -1]), ([33, 34,
-38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6,
--1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1,
-110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 264], [-1, 61, 62,
--1, 63, 64, -1, 65, -1, 100, 109, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44,
-45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287,
-325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1,
-198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9,
-10, 12, 13, 18, 26, 30, 42, 44, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100,
-110, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259,
-260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [
--1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28,
--1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30,
-42, 44, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 111, -1]), ([33, 34,
-38, 39, 40, 41, 42, 43, 44, 45, 46, 59, 60, 123, 124, 125, 126, 127, 258, 259,
-260, 261, 262, 263, 264, 265, 266, 267, 285, 286, 287, 288, 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,
-325, 326, 327, 328, 329, 330, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12,
--1, 179, -1, 14, -1, 487, 16, -1, 18, 20, 22, 24, 26, 28, -1, 30, 32, -1, 34,
-36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74,
-76, 78, 80, 82, 84, -1, 86, 88, 90, -1, 92, 94, 96, 98, 100, 102, 104, 106,
-108, 110, 112, 114, 116, 118, 120], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44,
-48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 96, 98, 100, 105,
-110, 116, 133, 135, 137, 153, 155, 161, 162, 168, 172, 174, 176, 226, 227, 243,
-245, 247, 249, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70,
-71, 72, 73, 74, 75, 76, 77, 78, -1, 79, 80, 81, -1, 82, 83, 84, -1, 85, 86, 87,
-88, -1, 89, -1, 90, -1, 91, 92, 93, -1, 94, 95, 112, 97, 98, -1]), ([33, 34,
-38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6,
--1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1,
-110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 264], [-1, 61, 62,
--1, 63, 64, -1, 65, -1, 100, 113, -1]), ([37, 39, 40, 41, 42, 48, 58, 59, 64,
-91, 92, 94, 95, 124, 125, 264, 285, 331], [-1, 3, -1, 3, -1, 3, -1, 228, 3, -1,
-3, -1, 3, -1, 3, -1, 3, -1], [264], [-1]), ([37, 39, 40, 48, 58, 64, 91, 92,
-93, 95, 124, 126, 264, 285, 331], [-1, 13, -1, 13, -1, 13, -1, 13, -1, 13, -1,
-13, -1, 13, -1], [264], [-1]), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95, 124,
-126, 264, 285, 331], [-1, 15, -1, 15, -1, 15, -1, 15, -1, 15, -1, 15, -1, 15,
--1], [264], [-1]), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95, 124, 126, 264,
-285, 331], [-1, 21, -1, 21, -1, 21, -1, 21, -1, 21, -1, 21, -1, 21, -1], [264],
-[-1]), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 285, 331], [-1,
-23, -1, 23, -1, 23, -1, 23, -1, 23, -1, 23, -1, 23, -1], [264], [-1]), ([33,
-34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 230,
--1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1,
-110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 264], [-1, 61, 62, -1,
-63, 64, -1, 65, -1, 116, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326,
-327, 328, 331], [-1, 2, -1, 4, -1, 234, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20,
-22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12,
-13, 18, 26, 30, 42, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 118, -1]), ([33,
-34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 234,
--1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1,
-110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 264], [-1, 61, 62, -1,
-63, 64, -1, 65, -1, 119, -1]), ([40, 43, 44, 45, 58, 60, 91, 92, 258, 259, 285,
-286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 265, -1, 265, -1,
-265, -1, 265, -1, 265, -1, 265, -1, 265, -1, 265, -1, 265, -1, 265, -1, 265], [
-264], [-1]), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 285, 331
-], [-1, 17, -1, 17, -1, 17, -1, 17, -1, 17, -1, 17, -1, 17, -1], [264], [-1]),
-([40, 43, 44, 45, 59, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326,
-327, 328, 329, 330, 331], [-1, 221, -1, 221, -1, 221, -1, 221, -1, 221, -1,
-221, -1, 221, -1, 221, -1, 221, -1, 221, -1, 221], [264], [-1]), ([40, 43, 44,
-45, 59, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329,
-330, 331], [-1, 223, -1, 223, -1, 223, -1, 223, -1, 223, -1, 223, -1, 223, -1,
-223, -1, 223, -1, 223, -1, 223], [264], [-1]), ([40, 43, 44, 45, 59, 60, 91,
-92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1,
-225, -1, 225, -1, 225, -1, 225, -1, 225, -1, 225, -1, 225, -1, 225, -1, 225,
--1, 225, -1, 225], [264], [-1]), ([40, 43, 44, 45, 59, 60, 91, 92, 258, 259,
-285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 229, -1, 229,
--1, 229, -1, 229, -1, 229, -1, 229, -1, 229, -1, 229, -1, 229, -1, 229, -1, 229
-], [264], [-1]), ([40, 43, 44, 45, 59, 60, 91, 92, 258, 259, 285, 286, 287,
-311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 231, -1, 231, -1, 231, -1,
-231, -1, 231, -1, 231, -1, 231, -1, 231, -1, 231, -1, 231, -1, 231], [264], [-1
-]), ([40, 43, 44, 45, 59, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325,
-326, 327, 328, 329, 330, 331], [-1, 345, -1, 345, -1, 345, -1, 345, -1, 345,
--1, 345, -1, 345, -1, 345, -1, 345, -1, 345, -1, 345], [264], [-1]), ([33, 34,
-38, 39, 40, 46, 58, 60, 91, 92, 93, 94, 126, 127, 258, 264, 265, 267, 285, 311,
-324, 329, 330, 331], [-1, 337, -1, 337, -1, 337, -1, 337, -1, 337, -1, 337, -1,
-337, -1, 337, -1, 337, -1, 337, -1, 337, -1, 337], [264], [-1]), ([33, 34, 38,
-39, 40, 46, 58, 60, 91, 92, 93, 94, 126, 127, 258, 264, 265, 267, 285, 311,
-324, 329, 330, 331], [-1, 339, -1, 339, -1, 339, -1, 339, -1, 339, -1, 339, -1,
-339, -1, 339, -1, 339, -1, 339, -1, 339, -1, 339], [264], [-1]), ([33, 34, 38,
-39, 40, 46, 58, 60, 91, 92, 93, 94, 126, 127, 258, 264, 265, 267, 285, 311,
-324, 329, 330, 331], [-1, 341, -1, 341, -1, 341, -1, 341, -1, 341, -1, 341, -1,
-341, -1, 341, -1, 341, -1, 341, -1, 341, -1, 341], [264], [-1]), ([40, 43, 44,
-45, 58, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329,
-330, 331], [-1, 251, -1, 251, -1, 251, -1, 251, -1, 251, -1, 251, -1, 251, -1,
-251, -1, 251, -1, 251, -1, 251], [264], [-1]), ([40, 43, 44, 45, 58, 60, 91,
-92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1,
-235, -1, 235, -1, 235, -1, 235, -1, 235, -1, 235, -1, 235, -1, 235, -1, 235,
--1, 235, -1, 235], [264], [-1]), ([40, 43, 44, 45, 58, 60, 91, 92, 258, 259,
-285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 237, -1, 237,
--1, 237, -1, 237, -1, 237, -1, 237, -1, 237, -1, 237, -1, 237, -1, 237, -1, 237
-], [264], [-1]), ([40, 43, 44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287,
-311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 239, -1, 239, -1, 239, -1,
-239, -1, 239, -1, 239, -1, 239, -1, 239, -1, 239, -1, 239, -1, 239], [264], [-1
-]), ([40, 43, 44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325,
-326, 327, 328, 329, 330, 331], [-1, 241, -1, 241, -1, 241, -1, 241, -1, 241,
--1, 241, -1, 241, -1, 241, -1, 241, -1, 241, -1, 241], [264], [-1]), ([40, 43,
-44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328,
-329, 330, 331], [-1, 247, -1, 247, -1, 247, -1, 247, -1, 247, -1, 247, -1, 247,
--1, 247, -1, 247, -1, 247, -1, 247], [264], [-1]), ([40, 43, 44, 45, 58, 60,
-91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331],
-[-1, 249, -1, 249, -1, 249, -1, 249, -1, 249, -1, 249, -1, 249, -1, 249, -1,
-249, -1, 249, -1, 249], [264], [-1]), ([40, 43, 44, 45, 58, 60, 91, 92, 258,
-259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 243, -1,
-243, -1, 243, -1, 243, -1, 243, -1, 243, -1, 243, -1, 243, -1, 243, -1, 243,
--1, 243], [264], [-1]), ([40, 43, 44, 45, 58, 60, 91, 92, 258, 259, 285, 286,
-287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 245, -1, 245, -1, 245,
--1, 245, -1, 245, -1, 245, -1, 245, -1, 245, -1, 245, -1, 245, -1, 245], [264],
-[-1]), ([40, 43, 44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324,
-325, 326, 327, 328, 329, 330, 331], [-1, 233, -1, 233, -1, 233, -1, 233, -1,
-233, -1, 233, -1, 233, -1, 233, -1, 233, -1, 233, -1, 233], [264], [-1]), ([40,
-43, 44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327,
-328, 329, 330, 331], [-1, 253, -1, 253, -1, 253, -1, 253, -1, 253, -1, 253, -1,
-253, -1, 253, -1, 253, -1, 253, -1, 253], [264], [-1]), ([40, 43, 44, 45, 58,
-60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330,
-331], [-1, 255, -1, 255, -1, 255, -1, 255, -1, 255, -1, 255, -1, 255, -1, 255,
--1, 255, -1, 255, -1, 255], [264], [-1]), ([123, 124, 258, 259, 331], [-1, 521,
--1, 240, -1], [260, 262, 264], [-1, 121, -1]), ([123, 124, 258, 259, 331], [-1,
-521, -1, 244, -1], [260, 262, 264], [-1, 123, -1]), ([123, 124, 258, 259, 331],
-[-1, 521, -1, 248, -1], [260, 262, 264], [-1, 125, -1]), ([33, 34, 38, 39, 40,
-41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266,
-267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1,
-12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114,
--1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68,
-70, 72, 74, 95, 96, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67, 68, 69,
-70, 71, 72, 73, 74, 75, 76, 77, 126, -1, 127, -1]), ([58, 59, 331], [-1, 256,
--1], [264], [-1]), ([40, 41, 331], [-1, 258, -1], [264], [-1]), ([40, 41, 331],
-[-1, 260, -1], [264], [-1]), ([40, 41, 331], [-1, 262, -1], [264], [-1]), ([33,
-34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 59, 60, 123, 124, 126, 127, 258, 259,
-260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 312, 313, 314, 315, 316, 317,
-318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1,
-6, -1, 8, 10, -1, 12, -1, 179, -1, 14, -1, 16, -1, 18, 20, 22, 24, 26, 28, -1,
-30, 32, -1, 36, -1, 86, 88, 90, -1, 92, 94, 96, 98, 100, 102, 104, 106, -1,
-110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59,
-62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 227, 243, 264], [-1, 61, 62, -1,
-63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79,
-80, 81, -1, 132, -1]), ([40, 41, 331], [-1, 266, -1], [264], [-1]), ([258, 259,
-331], [-1, 268, -1], [264], [-1]), ([59, 60, 331], [-1, 270, -1], [264], [-1]),
-([59, 60, 331], [-1, 272, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43,
-44, 45, 46, 59, 60, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
-286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12,
--1, 179, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1,
-114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66,
-68, 70, 72, 74, 77, 89, 91, 93, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66,
-67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79, 137, 81, -1]), ([40,
-41, 331], [-1, 276, -1], [264], [-1]), ([40, 41, 331], [-1, 278, -1], [264], [
--1]), ([40, 41, 43, 44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324,
-325, 326, 327, 328, 329, 330, 331], [-1, 280, 343, -1, 343, -1, 343, -1, 343,
--1, 343, -1, 343, -1, 343, -1, 343, -1, 343, -1, 343, -1, 343], [264], [-1]), (
-[40, 41, 331], [-1, 282, -1], [264], [-1]), ([40, 43, 44, 45, 59, 60, 91, 92,
-258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1,
-347, -1, 347, -1, 347, -1, 347, -1, 347, -1, 347, -1, 347, -1, 347, -1, 347,
--1, 347, -1, 347], [264], [-1]), ([40, 41, 331], [-1, 284, -1], [264], [-1]), (
-[40, 43, 44, 45, 59, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326,
-327, 328, 329, 330, 331], [-1, 227, -1, 227, -1, 227, -1, 227, -1, 227, -1,
-227, -1, 227, -1, 227, -1, 227, -1, 227, -1, 227], [264], [-1]), ([37, 39, 40,
-48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 285, 331], [-1, 37, -1, 37, -1, 37,
--1, 37, -1, 37, -1, 37, -1, 37, -1], [264], [-1]), ([37, 39, 40, 48, 58, 64,
-91, 92, 93, 95, 124, 126, 264, 285, 331], [-1, 5, -1, 5, -1, 5, -1, 5, -1, 5,
--1, 5, -1, 5, -1], [264], [-1]), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95, 124,
-126, 264, 285, 331], [-1, 7, -1, 7, -1, 7, -1, 7, -1, 7, -1, 7, -1, 7, -1], [
-264], [-1]), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 285, 331
-], [-1, 11, -1, 11, -1, 11, -1, 11, -1, 11, -1, 11, -1, 11, -1], [264], [-1]),
-([37, 39, 40, 41, 46, 47, 48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 265, 266,
-267, 285, 331], [-1, 61, -1, 286, 61, 288, 61, -1, 61, -1, 290, -1, 61, -1, 61,
--1, 292, 294, 296, 61, -1], [264], [-1]), ([37, 39, 41, 46, 47, 48, 58, 61, 62,
-64, 93, 95, 124, 126, 267, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
-285, 331], [-1, 85, -1, 85, -1, 85, -1, 85, 298, 85, -1, 85, -1, 85, -1, 85,
-300, 302, 304, 306, 308, 310, 312, 314, 316, 318, -1], [264], [-1]), ([37, 39,
-41, 46, 47, 48, 58, 61, 62, 64, 93, 95, 124, 126, 267, 275, 331], [-1, 89, -1,
-89, -1, 89, -1, 89, -1, 89, -1, 89, -1, 89, -1, 89, -1], [264], [-1]), ([37,
-38, 39, 41, 42, 43, 46, 47, 48, 58, 61, 62, 64, 93, 95, 124, 126, 267, 275, 331
-], [-1, 320, 97, -1, 97, 322, 97, -1, 324, -1, 97, -1, 97, -1, 97, -1, 97, -1,
-97, -1], [264], [-1]), ([38, 39, 41, 42, 43, 44, 45, 46, 58, 61, 62, 64, 93,
-95, 124, 126, 267, 275, 331], [-1, 103, -1, 103, -1, 326, 103, 328, -1, 103,
--1, 103, -1, 103, -1, 103, -1, 103, -1], [264], [-1]), ([38, 39, 41, 42, 44,
-45, 58, 61, 62, 64, 93, 95, 124, 126, 267, 268, 269, 275, 331], [-1, 109, -1,
-109, -1, 109, -1, 109, -1, 109, -1, 109, -1, 109, -1, 330, 332, 109, -1], [264
-], [-1]), ([38, 39, 41, 42, 44, 45, 58, 60, 61, 62, 63, 64, 93, 95, 124, 126,
-269, 270, 271, 275, 331], [-1, 119, -1, 119, -1, 119, -1, 119, 334, -1, 336,
-119, -1, 119, -1, 119, -1, 338, 340, 119, -1], [264], [-1]), ([38, 39, 41, 42,
-44, 45, 58, 60, 63, 64, 93, 95, 124, 126, 271, 272, 273, 275, 331], [-1, 125,
--1, 125, -1, 125, -1, 125, -1, 125, -1, 125, -1, 125, -1, 342, 344, 125, -1], [
-264], [-1]), ([38, 39, 41, 42, 44, 45, 58, 60, 63, 64, 93, 95, 124, 126, 273,
-275, 331], [-1, 346, -1, 129, -1, 129, -1, 129, -1, 129, -1, 129, -1, 129, -1,
-129, -1], [264], [-1]), ([41, 42, 44, 45, 58, 60, 63, 64, 93, 94, 95, 124, 126,
-273, 275, 331], [-1, 133, -1, 133, -1, 133, -1, 133, -1, 133, 348, -1, 133, -1,
-133, -1], [264], [-1]), ([41, 42, 44, 45, 58, 60, 63, 64, 93, 94, 124, 125,
-126, 273, 275, 331], [-1, 137, -1, 137, -1, 137, -1, 137, -1, 137, -1, 350,
-137, -1, 137, -1], [264], [-1]), ([41, 42, 44, 45, 58, 60, 63, 64, 93, 94, 125,
-126, 273, 274, 275, 331], [-1, 141, -1, 141, -1, 141, -1, 141, -1, 141, -1,
-141, -1, 352, 141, -1], [264], [-1]), ([41, 42, 44, 45, 58, 60, 63, 64, 93, 94,
-125, 126, 274, 275, 331], [-1, 145, -1, 145, -1, 145, -1, 354, -1, 145, -1,
-145, -1, 356, -1], [264], [-1]), ([41, 42, 44, 45, 58, 60, 93, 94, 125, 126,
-331], [-1, 155, -1, 155, -1, 155, -1, 155, -1, 155, -1], [264], [-1]), ([41,
-42, 44, 45, 58, 60, 93, 94, 331], [-1, 183, -1, 183, -1, 183, -1, 183, -1], [
-264], [-1]), ([59, 60, 331], [-1, 358, -1], [264], [-1]), ([41, 42, 44, 45, 59,
-60, 331], [-1, 181, -1, 360, -1, 181, -1], [264], [-1]), ([33, 34, 38, 39, 40,
-41, 42, 44, 45, 46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267,
-285, 311, 312, 315, 316, 331], [-1, 495, -1, 495, -1, 495, -1, 495, -1, 495,
--1, 495, -1, 495, -1, 495, -1, 495, -1, 495, -1, 495, -1, 495, -1, 495, -1, 495
-], [264], [-1]), ([40, 41, 42, 43, 59, 60, 258, 259, 285, 286, 287, 288, 289,
-290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
-306, 307, 308, 309, 310, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1,
-362, -1, 364, -1, 211, -1, 366, -1, 34, -1, 38, 40, 42, 44, 46, 48, 50, 52, 54,
-56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1, 108, -1, 112,
--1, 116, -1, 120], [100, 105, 107, 109, 110, 116, 133, 135, 137, 153, 155, 161,
-162, 168, 172, 174, 176, 178, 180, 185, 264], [-1, 184, 185, 186, 187, 85, 86,
-87, 88, -1, 89, -1, 90, -1, 91, 92, 93, -1, 188, 189, -1]), ([40, 43, 44, 45,
-59, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329,
-330, 331], [-1, 197, -1, 197, -1, 197, -1, 197, -1, 197, -1, 197, -1, 197, -1,
-197, -1, 197, -1, 197, -1, 197], [264], [-1]), ([40, 43, 44, 45, 59, 60, 91,
-92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1,
-201, -1, 201, -1, 201, -1, 201, -1, 201, -1, 201, -1, 201, -1, 201, -1, 201,
--1, 201, -1, 201], [264], [-1]), ([40, 43, 44, 45, 59, 60, 91, 92, 258, 259,
-285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 203, -1, 203,
--1, 203, -1, 203, -1, 203, -1, 203, -1, 203, -1, 203, -1, 203, -1, 203, -1, 203
-], [264], [-1]), ([40, 43, 44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287,
-311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 259, -1, 259, -1, 259, -1,
-259, -1, 259, -1, 259, -1, 259, -1, 259, -1, 259, -1, 259, -1, 259], [264], [-1
-]), ([40, 43, 44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325,
-326, 327, 328, 329, 330, 331], [-1, 261, -1, 261, -1, 261, -1, 261, -1, 261,
--1, 261, -1, 261, -1, 261, -1, 261, -1, 261, -1, 261], [264], [-1]), ([40, 43,
-44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328,
-329, 330, 331], [-1, 263, -1, 263, -1, 263, -1, 263, -1, 263, -1, 263, -1, 263,
--1, 263, -1, 263, -1, 263, -1, 263], [264], [-1]), ([40, 43, 44, 45, 58, 60,
-91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331],
-[-1, 257, -1, 257, -1, 257, -1, 257, -1, 257, -1, 257, -1, 257, -1, 257, -1,
-257, -1, 257, -1, 257], [264], [-1]), ([40, 43, 44, 45, 59, 60, 91, 92, 258,
-259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 205, -1,
-205, -1, 205, -1, 205, -1, 205, -1, 205, -1, 205, -1, 205, -1, 205, -1, 205,
--1, 205], [264], [-1]), ([40, 43, 44, 45, 59, 60, 91, 92, 258, 259, 285, 286,
-287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 207, -1, 207, -1, 207,
--1, 207, -1, 207, -1, 207, -1, 207, -1, 207, -1, 207, -1, 207, -1, 207], [264],
-[-1]), ([40, 43, 44, 45, 59, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324,
-325, 326, 327, 328, 329, 330, 331], [-1, 209, -1, 209, -1, 209, -1, 209, -1,
-209, -1, 209, -1, 209, -1, 209, -1, 209, -1, 209, -1, 209], [264], [-1]), ([33,
-34, 38, 39, 40, 41, 42, 44, 45, 46, 59, 60, 123, 124, 125, 127, 256, 257, 258,
-264, 265, 267, 285, 311, 312, 315, 316, 331], [-1, 195, -1, 195, -1, 195, -1,
-195, -1, 195, -1, 195, -1, 195, -1, 195, -1, 195, -1, 195, -1, 195, -1, 195,
--1, 195, -1, 195], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59,
-60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311, 312, 315, 316,
-331], [-1, 497, -1, 497, -1, 497, -1, 497, -1, 497, -1, 497, -1, 497, -1, 497,
--1, 497, -1, 497, -1, 497, -1, 497, -1, 497, -1, 497], [264], [-1]), ([256,
-257, 331], [-1, 1, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45,
-46, 59, 60, 123, 124, 125, 126, 127, 256, 257, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 285, 286, 287, 288, 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, 325, 326, 327, 328,
-329, 330, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 179, -1, 14, -1,
-489, 16, -1, 489, -1, 18, 20, 22, 24, 26, 28, -1, 30, 32, -1, 34, 36, 38, 40,
-42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80,
-82, 84, -1, 86, 88, 90, -1, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112,
-114, 116, 118, 120], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59,
-62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 96, 98, 100, 105, 110, 116, 133,
-135, 137, 153, 155, 161, 162, 168, 172, 174, 176, 226, 227, 243, 247, 249, 264
-], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
-76, 77, 78, -1, 79, 80, 81, -1, 82, 83, 84, -1, 85, 86, 87, 88, -1, 89, -1, 90,
--1, 91, 92, 93, -1, 94, 95, -1, 190, -1]), ([33, 34, 38, 39, 40, 41, 42, 44,
-45, 46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311,
-312, 315, 316, 331], [-1, 491, -1, 491, -1, 491, -1, 491, -1, 491, -1, 491, -1,
-491, -1, 491, -1, 491, -1, 491, -1, 491, -1, 491, -1, 491, -1, 491], [264], [-1
-]), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 285, 331], [-1, 3,
--1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1], [264], [-1]), ([37, 39, 41, 46,
-47, 48, 58, 64, 93, 95, 124, 126, 267, 285, 331], [-1, 85, -1, 85, -1, 85, -1,
-85, -1, 85, -1, 85, -1, 85, -1], [264], [-1]), ([37, 39, 41, 46, 47, 48, 58,
-64, 93, 95, 124, 126, 267, 285, 331], [-1, 77, -1, 77, -1, 77, -1, 77, -1, 77,
--1, 77, -1, 77, -1], [264], [-1]), ([37, 39, 41, 46, 47, 48, 58, 64, 93, 95,
-124, 126, 267, 285, 331], [-1, 67, -1, 67, -1, 67, -1, 67, -1, 67, -1, 67, -1,
-67, -1], [264], [-1]), ([41, 42, 44, 45, 331], [-1, 382, -1, 360, -1], [264], [
--1]), ([40, 43, 58, 60, 91, 92, 258, 259, 285, 286, 293, 311, 326, 327, 331], [
--1, 291, -1, 291, -1, 291, -1, 291, -1, 291, -1, 291, -1, 291, -1], [264], [-1]
-), ([40, 41, 42, 43, 58, 59, 91, 92, 285, 286, 293, 294, 295, 296, 297, 298,
-299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 326, 327, 331
-], [-1, 384, 401, 386, -1, 401, -1, 388, -1, 34, -1, 50, 52, 54, 56, 58, 60,
-62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1, 112, -1], [116, 133, 135,
-137, 145, 147, 153, 155, 161, 162, 168, 172, 198, 200, 202, 210, 264], [-1,
-104, 87, 88, -1, 195, -1, 89, -1, 90, -1, 107, -1, 196, 197, 198, -1]), ([40,
-43, 58, 60, 91, 92, 258, 259, 285, 286, 293, 311, 326, 327, 331], [-1, 287, -1,
-287, -1, 287, -1, 287, -1, 287, -1, 287, -1, 287, -1], [264], [-1]), ([40, 43,
-58, 60, 91, 92, 258, 259, 285, 286, 293, 311, 326, 327, 331], [-1, 293, -1,
-293, -1, 293, -1, 293, -1, 293, -1, 293, -1, 293, -1], [264], [-1]), ([41, 42,
-331], [-1, 398, -1], [264], [-1]), ([37, 39, 41, 46, 47, 48, 58, 64, 93, 95,
-124, 126, 267, 285, 331], [-1, 69, -1, 69, -1, 69, -1, 69, -1, 69, -1, 69, -1,
-69, -1], [264], [-1]), ([37, 39, 41, 46, 47, 48, 58, 64, 93, 95, 124, 126, 267,
-285, 331], [-1, 71, -1, 71, -1, 71, -1, 71, -1, 71, -1, 71, -1, 71, -1], [264],
-[-1]), ([37, 39, 41, 46, 47, 48, 58, 64, 93, 95, 124, 126, 267, 285, 331], [-1,
-73, -1, 73, -1, 73, -1, 73, -1, 73, -1, 73, -1, 73, -1], [264], [-1]), ([125,
-126, 331], [-1, 400, -1], [264], [-1]), ([37, 39, 41, 46, 47, 48, 58, 64, 93,
-95, 124, 126, 267, 285, 331], [-1, 75, -1, 75, -1, 75, -1, 75, -1, 75, -1, 75,
--1, 75, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 59,
-60, 123, 124, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286,
-287, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
-327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 179, -1, 14, -1,
-16, -1, 18, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 86, 88, 90, -1, 92, 94,
-96, 98, 100, 102, 104, 106, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18,
-26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93,
-227, 243, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71,
-72, 73, 74, 75, 76, 77, 78, -1, 79, 80, 81, -1, 201, -1]), ([33, 34, 38, 39,
-40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265,
-266, 267, 285, 286, 287, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
-304, 305, 306, 307, 308, 309, 310, 311, 325, 326, 327, 328, 331], [-1, 2, -1,
-4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 34, 36, -1, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80,
-82, 84, -1, 110, 112, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48,
-51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 116, 133, 135, 137,
-143, 145, 147, 153, 155, 161, 162, 168, 172, 197, 198, 264], [-1, 61, 62, -1,
-63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79,
--1, 103, -1, 104, 87, 88, -1, 105, 106, -1, 89, -1, 90, -1, 107, -1, 202, -1]),
-([37, 39, 41, 46, 47, 48, 58, 64, 93, 95, 124, 126, 267, 285, 331], [-1, 79,
--1, 79, -1, 79, -1, 79, -1, 79, -1, 79, -1, 79, -1], [264], [-1]), ([33, 34,
-38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 285, 286, 287, 293, 294, 295, 296, 297, 298, 299, 300, 301,
-302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 325, 326, 327, 328, 331], [
--1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28,
--1, 30, 32, -1, 34, 36, -1, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74,
-76, 78, 80, 82, 84, -1, 110, 112, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30,
-42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 116, 133,
-135, 137, 143, 145, 147, 153, 155, 161, 162, 168, 172, 197, 198, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 79, -1, 103, -1, 104, 87, 88, -1, 105, 106, -1, 89, -1, 90, -1, 107, -1,
-203, -1]), ([37, 39, 41, 46, 47, 48, 58, 64, 93, 95, 124, 126, 267, 285, 331],
-[-1, 63, -1, 63, -1, 63, -1, 63, -1, 63, -1, 63, -1, 63, -1], [264], [-1]), ([
-37, 39, 41, 46, 47, 48, 58, 64, 93, 95, 124, 126, 267, 285, 331], [-1, 65, -1,
-65, -1, 65, -1, 65, -1, 65, -1, 65, -1, 65, -1], [264], [-1]), ([40, 43, 44,
-45, 58, 60, 91, 92, 123, 124, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327,
-328, 329, 330, 331], [-1, 269, -1, 269, -1, 269, -1, 269, -1, 523, -1, 269, -1,
-269, -1, 269, -1, 269, -1, 269, -1, 269, -1, 269], [264], [-1]), ([123, 124,
-331], [-1, 408, -1], [264], [-1]), ([40, 43, 44, 45, 58, 60, 91, 92, 123, 124,
-258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1,
-273, -1, 273, -1, 273, -1, 273, -1, 523, -1, 273, -1, 273, -1, 273, -1, 273,
--1, 273, -1, 273, -1, 273], [264], [-1]), ([123, 124, 331], [-1, 410, -1], [264
-], [-1]), ([40, 43, 44, 45, 58, 60, 91, 92, 123, 124, 258, 259, 285, 286, 287,
-311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 309, -1, 309, -1, 309, -1,
-309, -1, 523, -1, 309, -1, 309, -1, 309, -1, 309, -1, 309, -1, 309, -1, 309], [
-264], [-1]), ([123, 124, 331], [-1, 412, -1], [264], [-1]), ([41, 42, 44, 45,
-58, 60, 93, 94, 125, 126, 331], [-1, 191, -1, 191, -1, 191, -1, 191, -1, 191,
--1], [264], [-1]), ([58, 59, 331], [-1, 414, -1], [264], [-1]), ([33, 34, 38,
-39, 40, 41, 42, 43, 44, 45, 46, 59, 60, 123, 124, 126, 127, 258, 259, 260, 261,
-262, 263, 264, 265, 266, 267, 286, 287, 312, 313, 314, 315, 316, 317, 318, 319,
-320, 321, 322, 323, 324, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8,
-10, -1, 12, -1, 179, -1, 14, -1, 16, -1, 18, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 36, -1, 86, 88, 90, -1, 92, 94, 96, 98, 100, 102, 104, 106, -1, 110, -1,
-114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66,
-68, 70, 72, 74, 77, 89, 91, 93, 227, 243, 264], [-1, 61, 62, -1, 63, 64, -1,
-65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79, 80, 81, -1,
-208, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259,
-260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [
--1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28,
--1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30,
-42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 264], [-1,
-61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
-78, -1, 79, -1, 209, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126,
-127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327,
-328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22,
-24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13,
-18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93,
-264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
-75, 76, 77, 78, -1, 79, -1, 210, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44,
-45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287,
-325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1,
-198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9,
-10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77,
-89, 91, 93, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71,
-72, 73, 74, 75, 76, 77, 78, -1, 79, -1, 211, -1]), ([317, 318, 331], [-1, 424,
--1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 59, 60, 126,
-127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 285, 286, 287, 288, 289,
-290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
-306, 307, 308, 309, 310, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 2,
--1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 179, -1, 16, -1, 198, 20, 22, 24, 26, 28,
--1, 30, 32, -1, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64,
-66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1, 108, 110, 112, 114, 116, 118, 120],
-[1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70,
-72, 74, 77, 89, 91, 93, 96, 98, 100, 105, 110, 116, 133, 135, 137, 153, 155,
-161, 162, 168, 172, 174, 176, 226, 227, 264], [-1, 61, 62, -1, 63, 64, -1, 65,
--1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79, 213, 81, -1,
-214, 83, 84, -1, 85, 86, 87, 88, -1, 89, -1, 90, -1, 91, 92, 93, -1, 94, -1]),
-([59, 60, 331], [-1, 430, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 44,
-45, 46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311,
-312, 331], [-1, 481, -1, 481, -1, 481, -1, 481, -1, 481, -1, 481, -1, 481, -1,
-481, -1, 481, -1, 481, -1, 481, -1, 481, -1, 481], [264], [-1]), ([33, 34, 38,
-39, 40, 41, 42, 44, 45, 46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264,
-265, 267, 285, 311, 312, 331], [-1, 483, -1, 483, -1, 483, -1, 483, -1, 483,
--1, 483, -1, 483, -1, 483, -1, 483, -1, 483, -1, 483, -1, 483, -1, 483], [264],
-[-1]), ([59, 60, 331], [-1, 432, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41,
-42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
-285, 286, 287, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
-306, 307, 308, 309, 310, 311, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6,
--1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 34, 36,
--1, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1,
-110, 112, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59,
-62, 64, 66, 68, 70, 72, 74, 95, 96, 116, 133, 135, 137, 143, 145, 147, 153,
-155, 161, 162, 168, 172, 197, 198, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1,
-100, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 126, -1, 217, -1, 104, 87, 88,
--1, 105, 106, -1, 89, -1, 90, -1, 107, -1, 218, -1]), ([285, 286, 293, 294,
-295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
-311, 326, 327, 331], [-1, 34, -1, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70,
-72, 74, 76, 78, 80, 82, 84, -1, 112, -1], [116, 133, 135, 137, 143, 145, 147,
-153, 155, 161, 162, 168, 172, 197, 198, 264], [-1, 104, 87, 88, -1, 105, 106,
--1, 89, -1, 90, -1, 107, -1, 219, -1]), ([285, 286, 293, 294, 295, 296, 297,
-298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 326, 327,
-331], [-1, 34, -1, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
-80, 82, 84, -1, 112, -1], [116, 133, 135, 137, 143, 145, 147, 153, 155, 161,
-162, 168, 172, 197, 198, 264], [-1, 104, 87, 88, -1, 105, 106, -1, 89, -1, 90,
--1, 107, -1, 220, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127,
-258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328,
-331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 221, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 95, 96, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 100, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
-126, -1, 222, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127,
-258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328,
-331], [-1, 2, -1, 4, -1, 6, 53, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-28, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1,
-61, 62, -1, 63, 64, -1, 65, 223, 224, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
-76, 77, 78, -1, 225, -1]), ([258, 259, 331], [-1, 452, -1], [264], [-1]), ([33,
-34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6,
--1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1,
-110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59,
-62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 264], [-1, 61, 62, -1, 63, 64, -1,
-65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79, -1, 227, -1
-]), ([258, 259, 331], [-1, 456, -1], [264], [-1]), ([37, 39, 40, 48, 58, 64,
-91, 92, 93, 95, 124, 126, 264, 285, 331], [-1, 47, -1, 47, -1, 47, -1, 47, -1,
-47, -1, 47, -1, 47, -1], [264], [-1]), ([37, 39, 40, 48, 58, 64, 91, 92, 93,
-95, 124, 126, 264, 285, 331], [-1, 49, -1, 49, -1, 49, -1, 49, -1, 49, -1, 49,
--1, 49, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126,
-127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327,
-328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22,
-24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13,
-18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [
--1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
-77, 78, -1, 229, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127,
-258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328,
-331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 230, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 231, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 232, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 233, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 234, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 235, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 236, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 237, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 238, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 239, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 240, -1]), ([33,
-34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6,
--1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1,
-110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 264], [-1, 61, 62,
--1, 63, 64, -1, 65, -1, 100, 241, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44,
-45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287,
-325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1,
-198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9,
-10, 12, 13, 18, 26, 30, 42, 44, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100,
-242, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259,
-260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [
--1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28,
--1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30,
-42, 44, 48, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67, 243, -1]), ([
-33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262,
-263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1,
-6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36,
--1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 264], [-1,
-61, 62, -1, 63, 64, -1, 65, -1, 100, 67, 244, -1]), ([33, 34, 38, 39, 40, 41,
-42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
-286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12,
--1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1],
-[1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 264], [-1, 61, 62, -1, 63,
-64, -1, 65, -1, 100, 67, 68, 245, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44,
-45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287,
-325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1,
-198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9,
-10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 264], [-1, 61, 62, -1, 63, 64, -1, 65,
--1, 100, 67, 68, 246, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126,
-127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327,
-328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22,
-24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13,
-18, 26, 30, 42, 44, 48, 51, 54, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100,
-67, 68, 69, 247, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127,
-258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328,
-331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67, 68,
-69, 248, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67, 68,
-69, 249, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67, 68,
-69, 250, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67,
-68, 69, 70, 251, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127,
-258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328,
-331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67,
-68, 69, 70, 252, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127,
-258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328,
-331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100,
-67, 68, 69, 70, 71, 253, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326,
-327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20,
-22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12,
-13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 264], [-1, 61, 62, -1, 63, 64,
--1, 65, -1, 100, 67, 68, 69, 70, 71, 72, 254, -1]), ([33, 34, 38, 39, 40, 41,
-42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
-286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12,
--1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1],
-[1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 264], [
--1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67, 68, 69, 70, 71, 72, 73, 255, -1]),
-([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261,
-262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1,
-4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48,
-51, 54, 59, 62, 64, 66, 68, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67,
-68, 69, 70, 71, 72, 73, 74, 256, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44,
-45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287,
-325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1,
-198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9,
-10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77,
-89, 91, 93, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71,
-72, 73, 74, 75, 76, 77, 78, -1, 79, -1, 257, -1]), ([33, 34, 38, 39, 40, 41,
-42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
-286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12,
--1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1],
-[1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70,
-264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67, 68, 69, 70, 71, 72, 73, 74,
-75, 258, -1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59, 60, 123, 124, 125,
-127, 256, 257, 258, 264, 265, 267, 285, 311, 312, 331], [-1, 463, -1, 463, -1,
-463, -1, 463, -1, 463, -1, 463, -1, 463, -1, 463, -1, 463, -1, 463, -1, 463,
--1, 463, -1, 463], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326,
-327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20,
-22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12,
-13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264
-], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
-76, 77, 78, -1, 259, -1]), ([40, 41, 42, 43, 258, 259, 331], [-1, 362, -1, 364,
--1, 366, -1], [178, 180, 185, 264], [-1, 260, 189, -1]), ([40, 41, 42, 43, 258,
-259, 293, 294, 295, 296, 326, 327, 331], [-1, 371, -1, 371, -1, 371, -1, 50,
-52, 54, -1, 522, -1], [168, 172, 185, 187, 189, 264], [-1, 262, -1, 263, 264,
--1]), ([40, 42, 44, 45, 58, 60, 61, 62, 91, 92, 331], [-1, 361, -1, 361, -1,
-361, -1, 361, -1, 361, -1], [264], [-1]), ([40, 43, 44, 45, 59, 60, 91, 92,
-258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1,
-199, -1, 199, -1, 199, -1, 199, -1, 199, -1, 199, -1, 199, -1, 199, -1, 199,
--1, 199, -1, 199], [264], [-1]), ([59, 60, 331], [-1, 530, -1], [264], [-1]), (
-[44, 45, 59, 60, 331], [-1, 532, -1, 213, -1], [264], [-1]), ([44, 45, 59, 60,
-331], [-1, 215, -1, 215, -1], [264], [-1]), ([44, 45, 59, 60, 61, 62, 331], [
--1, 421, -1, 421, -1, 534, -1], [210, 212, 264], [-1, 268, -1]), ([40, 41, 42,
-44, 45, 58, 60, 61, 62, 91, 92, 331], [-1, 538, 357, -1, 357, -1, 357, -1, 357,
--1, 540, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59, 60,
-123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311, 312, 315, 316, 331
-], [-1, 493, -1, 493, -1, 493, -1, 493, -1, 493, -1, 493, -1, 493, -1, 493, -1,
-493, -1, 493, -1, 493, -1, 493, -1, 493, -1, 493], [264], [-1]), ([37, 39, 40,
-48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 285, 331], [-1, 9, -1, 9, -1, 9, -1,
-9, -1, 9, -1, 9, -1, 9, -1], [264], [-1]), ([40, 41, 42, 43, 91, 92, 285, 286,
-287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
-303, 304, 305, 306, 307, 308, 309, 310, 311, 324, 325, 326, 327, 328, 329, 330,
-331], [-1, 384, 542, 544, -1, 388, -1, 34, -1, 38, 40, 42, 44, 46, 48, 50, 52,
-54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1, 108, -1,
-112, -1, 116, -1, 120], [98, 100, 105, 110, 116, 133, 135, 137, 153, 155, 161,
-162, 168, 172, 174, 176, 189, 191, 193, 202, 210, 264], [-1, 273, 84, -1, 85,
-86, 87, 88, -1, 89, -1, 90, -1, 91, 92, 93, -1, 274, 275, -1, 276, -1]), ([40,
-43, 58, 59, 91, 92, 293, 294, 295, 296, 326, 327, 331], [-1, 371, -1, 371, -1,
-371, -1, 50, 52, 54, -1, 522, -1], [168, 172, 185, 187, 189, 264], [-1, 262,
--1, 277, 264, -1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 93, 94, 126, 127,
-258, 264, 265, 267, 286, 287, 289, 290, 293, 294, 295, 296, 325, 326, 327, 328,
-331], [-1, 325, -1, 325, -1, 325, -1, 325, -1, 325, -1, 325, -1, 325, -1, 325,
--1, 325, -1, 325, -1, 556, -1, 50, 52, 54, -1, 325, 522, 325, -1], [162, 164,
-166, 168, 172, 264], [-1, 279, 280, 281, 282, -1]), ([40, 43, 58, 60, 91, 92,
-258, 259, 285, 286, 293, 311, 326, 327, 331], [-1, 289, -1, 289, -1, 289, -1,
-289, -1, 289, -1, 289, -1, 289, -1], [264], [-1]), ([41, 42, 58, 59, 331], [-1,
-395, -1, 395, -1], [264], [-1]), ([41, 42, 44, 45, 58, 59, 331], [-1, 397, -1,
-397, -1, 397, -1], [264], [-1]), ([40, 41, 42, 44, 45, 58, 59, 91, 92, 331], [
--1, 566, 403, -1, 403, -1, 403, -1, 568, -1], [264], [-1]), ([33, 34, 38, 39,
-40, 41, 42, 43, 44, 45, 46, 123, 124, 126, 127, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6,
--1, 8, 10, -1, 12, -1, 570, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 264],
-[-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 286, -1]), ([33, 34, 38, 39, 40, 41,
-42, 44, 45, 46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285,
-311, 312, 331], [-1, 461, -1, 461, -1, 461, -1, 461, -1, 461, -1, 461, -1, 461,
--1, 461, -1, 461, -1, 461, -1, 461, -1, 461, -1, 461], [264], [-1]), ([33, 34,
-38, 39, 40, 41, 42, 44, 45, 46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264,
-265, 267, 285, 311, 312, 331], [-1, 455, -1, 455, -1, 455, -1, 455, -1, 455,
--1, 455, -1, 455, -1, 455, -1, 455, -1, 455, -1, 455, -1, 455, -1, 455], [264],
-[-1]), ([41, 42, 331], [-1, 574, -1], [264], [-1]), ([41, 42, 331], [-1, 576,
--1], [264], [-1]), ([125, 126, 285, 286, 293, 294, 295, 296, 297, 298, 299,
-300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 326, 327, 329, 330,
-331], [-1, 275, -1, 34, -1, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74,
-76, 78, 80, 82, 84, -1, 112, -1, 118, -1], [116, 133, 135, 137, 139, 141, 143,
-145, 147, 153, 155, 161, 162, 168, 172, 226, 227, 264], [-1, 104, 87, 88, 289,
-290, 291, 292, 106, -1, 89, -1, 90, -1, 107, -1, 293, -1]), ([125, 126, 285,
-286, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
-308, 309, 310, 311, 326, 327, 329, 330, 331], [-1, 275, -1, 34, -1, 50, 52, 54,
-56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1, 112, -1, 118,
--1], [116, 133, 135, 137, 139, 141, 143, 145, 147, 153, 155, 161, 162, 168,
-172, 226, 227, 264], [-1, 104, 87, 88, 294, 290, 291, 292, 106, -1, 89, -1, 90,
--1, 107, -1, 293, -1]), ([125, 126, 258, 259, 331], [-1, 311, -1, 590, -1], [9,
-10, 155, 158, 160, 161, 264], [-1, 296, -1, 297, 298, 299, -1]), ([33, 34, 38,
-39, 40, 41, 42, 43, 44, 45, 46, 59, 60, 123, 124, 126, 127, 258, 259, 260, 261,
-262, 263, 264, 265, 266, 267, 286, 287, 312, 313, 314, 315, 316, 317, 318, 319,
-320, 321, 322, 323, 324, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8,
-10, -1, 12, -1, 179, -1, 14, -1, 16, -1, 18, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 36, -1, 86, 88, 90, -1, 92, 94, 96, 98, 100, 102, 104, 106, -1, 110, -1,
-114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66,
-68, 70, 72, 74, 77, 89, 91, 93, 227, 243, 264], [-1, 61, 62, -1, 63, 64, -1,
-65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79, 80, 81, -1,
-300, -1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59, 60, 123, 124, 125,
-127, 256, 257, 258, 264, 265, 267, 285, 311, 312, 331], [-1, 459, -1, 459, -1,
-459, -1, 459, -1, 459, -1, 459, -1, 459, -1, 459, -1, 459, -1, 459, -1, 459,
--1, 459, -1, 459], [264], [-1]), ([41, 42, 44, 45, 331], [-1, 602, -1, 360, -1
-], [264], [-1]), ([41, 42, 44, 45, 331], [-1, 604, -1, 360, -1], [264], [-1]),
-([41, 42, 44, 45, 331], [-1, 606, -1, 360, -1], [264], [-1]), ([40, 41, 331], [
--1, 608, -1], [264], [-1]), ([59, 60, 331], [-1, 610, -1], [264], [-1]), ([33,
-34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 59, 60, 126, 127, 258, 259, 260, 261,
-262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1,
-4, -1, 6, -1, 8, 10, -1, 12, -1, 179, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1,
-30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42,
-44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 79, 306, 81, -1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59, 60, 123,
-124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311, 312, 331], [-1, 479, -1,
-479, -1, 479, -1, 479, -1, 479, -1, 479, -1, 479, -1, 479, -1, 479, -1, 479,
--1, 479, -1, 479, -1, 479], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45,
-46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311, 312,
-331], [-1, 485, -1, 485, -1, 485, -1, 485, -1, 485, -1, 485, -1, 485, -1, 485,
--1, 485, -1, 485, -1, 485, -1, 485, -1, 485], [264], [-1]), ([41, 42, 331], [
--1, 614, -1], [264], [-1]), ([41, 42, 331], [-1, 616, -1], [264], [-1]), ([41,
-42, 331], [-1, 618, -1], [264], [-1]), ([41, 42, 331], [-1, 620, -1], [264], [
--1]), ([44, 45, 331], [-1, 622, -1], [264], [-1]), ([44, 45, 331], [-1, 624, -1
-], [264], [-1]), ([41, 42, 331], [-1, 626, -1], [264], [-1]), ([41, 42, 44, 45,
-331], [-1, 55, -1, 628, -1], [264], [-1]), ([41, 42, 44, 45, 331], [-1, 57, -1,
-57, -1], [264], [-1]), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95, 124, 126, 264,
-285, 331], [-1, 43, -1, 43, -1, 43, -1, 43, -1, 43, -1, 43, -1, 43, -1], [264],
-[-1]), ([44, 45, 93, 94, 331], [-1, 360, -1, 630, -1], [264], [-1]), ([37, 39,
-40, 48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 285, 331], [-1, 45, -1, 45, -1,
-45, -1, 45, -1, 45, -1, 45, -1, 45, -1], [264], [-1]), ([41, 42, 44, 45, 58,
-60, 93, 94, 125, 126, 331], [-1, 157, -1, 157, -1, 157, -1, 157, -1, 157, -1],
-[264], [-1]), ([41, 42, 44, 45, 58, 60, 93, 94, 125, 126, 331], [-1, 159, -1,
-159, -1, 159, -1, 159, -1, 159, -1], [264], [-1]), ([41, 42, 44, 45, 58, 60,
-93, 94, 125, 126, 331], [-1, 161, -1, 161, -1, 161, -1, 161, -1, 161, -1], [264
-], [-1]), ([41, 42, 44, 45, 58, 60, 93, 94, 125, 126, 331], [-1, 163, -1, 163,
--1, 163, -1, 163, -1, 163, -1], [264], [-1]), ([41, 42, 44, 45, 58, 60, 93, 94,
-125, 126, 331], [-1, 165, -1, 165, -1, 165, -1, 165, -1, 165, -1], [264], [-1]
-), ([41, 42, 44, 45, 58, 60, 93, 94, 125, 126, 331], [-1, 167, -1, 167, -1,
-167, -1, 167, -1, 167, -1], [264], [-1]), ([41, 42, 44, 45, 58, 60, 93, 94,
-125, 126, 331], [-1, 169, -1, 169, -1, 169, -1, 169, -1, 169, -1], [264], [-1]
-), ([41, 42, 44, 45, 58, 60, 93, 94, 125, 126, 331], [-1, 171, -1, 171, -1,
-171, -1, 171, -1, 171, -1], [264], [-1]), ([41, 42, 44, 45, 58, 60, 93, 94,
-125, 126, 331], [-1, 173, -1, 173, -1, 173, -1, 173, -1, 173, -1], [264], [-1]
-), ([41, 42, 44, 45, 58, 60, 93, 94, 125, 126, 331], [-1, 175, -1, 175, -1,
-175, -1, 175, -1, 175, -1], [264], [-1]), ([41, 42, 44, 45, 58, 60, 93, 94,
-125, 126, 331], [-1, 177, -1, 177, -1, 177, -1, 177, -1, 177, -1], [264], [-1]
-), ([37, 39, 41, 46, 47, 48, 58, 61, 62, 64, 93, 95, 124, 126, 267, 275, 331],
-[-1, 95, -1, 95, -1, 95, -1, 95, -1, 95, -1, 95, -1, 95, -1, 95, -1], [264], [
--1]), ([37, 39, 41, 46, 47, 48, 58, 61, 62, 64, 93, 95, 124, 126, 267, 275, 331
-], [-1, 91, -1, 91, -1, 91, -1, 91, -1, 91, -1, 91, -1, 91, -1, 91, -1], [264],
-[-1]), ([37, 39, 41, 46, 47, 48, 58, 61, 62, 64, 93, 95, 124, 126, 267, 275,
-331], [-1, 93, -1, 93, -1, 93, -1, 93, -1, 93, -1, 93, -1, 93, -1, 93, -1], [
-264], [-1]), ([37, 38, 39, 41, 42, 43, 46, 47, 48, 58, 61, 62, 64, 93, 95, 124,
-126, 267, 275, 331], [-1, 320, 99, -1, 99, 322, 99, -1, 324, -1, 99, -1, 99,
--1, 99, -1, 99, -1, 99, -1], [264], [-1]), ([37, 38, 39, 41, 42, 43, 46, 47,
-48, 58, 61, 62, 64, 93, 95, 124, 126, 267, 275, 331], [-1, 320, 101, -1, 101,
-322, 101, -1, 324, -1, 101, -1, 101, -1, 101, -1, 101, -1, 101, -1], [264], [-1
-]), ([38, 39, 41, 42, 43, 44, 45, 46, 58, 61, 62, 64, 93, 95, 124, 126, 267,
-275, 331], [-1, 105, -1, 105, -1, 326, 105, 328, -1, 105, -1, 105, -1, 105, -1,
-105, -1, 105, -1], [264], [-1]), ([38, 39, 41, 42, 43, 44, 45, 46, 58, 61, 62,
-64, 93, 95, 124, 126, 267, 275, 331], [-1, 107, -1, 107, -1, 326, 107, 328, -1,
-107, -1, 107, -1, 107, -1, 107, -1, 107, -1], [264], [-1]), ([38, 39, 41, 42,
-44, 45, 58, 61, 62, 64, 93, 95, 124, 126, 267, 268, 269, 275, 331], [-1, 111,
--1, 111, -1, 111, -1, 111, -1, 111, -1, 111, -1, 111, -1, 330, 332, 111, -1], [
-264], [-1]), ([38, 39, 41, 42, 44, 45, 58, 61, 62, 64, 93, 95, 124, 126, 267,
-268, 269, 275, 331], [-1, 113, -1, 113, -1, 113, -1, 113, -1, 113, -1, 113, -1,
-113, -1, 330, 332, 113, -1], [264], [-1]), ([38, 39, 41, 42, 44, 45, 58, 61,
-62, 64, 93, 95, 124, 126, 267, 268, 269, 275, 331], [-1, 115, -1, 115, -1, 115,
--1, 115, -1, 115, -1, 115, -1, 115, -1, 330, 332, 115, -1], [264], [-1]), ([38,
-39, 41, 42, 44, 45, 58, 61, 62, 64, 93, 95, 124, 126, 267, 268, 269, 275, 331],
-[-1, 117, -1, 117, -1, 117, -1, 117, -1, 117, -1, 117, -1, 117, -1, 330, 332,
-117, -1], [264], [-1]), ([38, 39, 41, 42, 44, 45, 58, 60, 61, 62, 63, 64, 93,
-95, 124, 126, 269, 270, 271, 275, 331], [-1, 121, -1, 121, -1, 121, -1, 121,
-334, -1, 336, 121, -1, 121, -1, 121, -1, 338, 340, 121, -1], [264], [-1]), ([
-38, 39, 41, 42, 44, 45, 58, 60, 61, 62, 63, 64, 93, 95, 124, 126, 269, 270,
-271, 275, 331], [-1, 123, -1, 123, -1, 123, -1, 123, 334, -1, 336, 123, -1,
-123, -1, 123, -1, 338, 340, 123, -1], [264], [-1]), ([38, 39, 41, 42, 44, 45,
-58, 60, 63, 64, 93, 95, 124, 126, 271, 272, 273, 275, 331], [-1, 127, -1, 127,
--1, 127, -1, 127, -1, 127, -1, 127, -1, 127, -1, 342, 344, 127, -1], [264], [-1
-]), ([38, 39, 41, 42, 44, 45, 58, 60, 63, 64, 93, 95, 124, 126, 273, 275, 331],
-[-1, 346, -1, 131, -1, 131, -1, 131, -1, 131, -1, 131, -1, 131, -1, 131, -1], [
-264], [-1]), ([41, 42, 44, 45, 58, 60, 63, 64, 93, 94, 95, 124, 126, 273, 275,
-331], [-1, 135, -1, 135, -1, 135, -1, 135, -1, 135, 348, -1, 135, -1, 135, -1],
-[264], [-1]), ([41, 42, 44, 45, 58, 60, 63, 64, 93, 94, 124, 125, 126, 273,
-275, 331], [-1, 139, -1, 139, -1, 139, -1, 139, -1, 139, -1, 350, 139, -1, 139,
--1], [264], [-1]), ([44, 45, 58, 59, 331], [-1, 360, -1, 632, -1], [264], [-1]
-), ([41, 42, 44, 45, 58, 60, 63, 64, 93, 94, 125, 126, 273, 274, 275, 331], [
--1, 143, -1, 143, -1, 143, -1, 143, -1, 143, -1, 143, -1, 352, 143, -1], [264],
-[-1]), ([41, 42, 44, 45, 58, 60, 93, 94, 331], [-1, 185, -1, 185, -1, 185, -1,
-185, -1], [264], [-1]), ([41, 42, 331], [-1, 634, -1], [264], [-1]), ([33, 34,
-38, 39, 40, 46, 58, 59, 91, 92, 93, 94, 126, 127, 258, 264, 265, 267, 286, 287,
-289, 290, 293, 296, 325, 328, 331], [-1, 343, -1, 343, -1, 343, -1, 343, -1,
-343, -1, 343, -1, 343, -1, 343, -1, 343, -1, 343, -1, 343, -1, 343, -1, 343, -1
-], [264], [-1]), ([40, 43, 44, 45, 58, 59, 91, 92, 258, 259, 293, 296, 326,
-327, 331], [-1, 375, -1, 375, -1, 375, -1, 375, -1, 375, -1, 375, -1, 375, -1],
-[264], [-1]), ([40, 41, 42, 43, 258, 259, 331], [-1, 362, -1, 364, -1, 366, -1
-], [178, 180, 185, 264], [-1, 318, 189, -1]), ([40, 43, 44, 45, 58, 59, 91, 92,
-258, 259, 293, 294, 295, 296, 326, 327, 331], [-1, 373, -1, 373, -1, 373, -1,
-373, -1, 373, -1, 50, 52, 54, -1, 522, -1], [168, 172, 264], [-1, 319, -1]), ([
-33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59, 60, 123, 124, 125, 127, 256, 257,
-258, 264, 265, 267, 285, 311, 312, 315, 316, 331], [-1, 193, -1, 193, -1, 193,
--1, 193, -1, 193, -1, 193, -1, 193, -1, 193, -1, 193, -1, 193, -1, 193, -1,
-193, -1, 193, -1, 193], [264], [-1]), ([40, 41, 42, 43, 258, 259, 331], [-1,
-362, -1, 364, -1, 366, -1], [109, 110, 178, 180, 185, 264], [-1, 320, -1, 188,
-189, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 123, 124, 126, 127,
-258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328,
-331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 642, -1, 16, -1, 198, 20,
-22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12,
-13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89,
-212, 214, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71,
-72, 73, 74, 75, 76, 77, 78, -1, 322, -1, 323, -1]), ([44, 45, 59, 60, 331], [
--1, 219, -1, 219, -1], [264], [-1]), ([41, 42, 258, 259, 285, 286, 287, 288,
-289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
-305, 306, 307, 308, 309, 310, 311, 324, 325, 326, 327, 328, 329, 330, 331], [
--1, 387, -1, 648, -1, 34, -1, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
-62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1, 108, -1, 112, -1, 116, -1,
-120], [98, 100, 105, 110, 116, 133, 135, 137, 153, 155, 161, 162, 168, 172,
-174, 176, 189, 191, 193, 195, 197, 264], [-1, 273, 84, -1, 85, 86, 87, 88, -1,
-89, -1, 90, -1, 91, 92, 93, -1, 325, 275, 326, 327, -1]), ([33, 34, 38, 39, 40,
-41, 42, 44, 45, 46, 93, 94, 126, 127, 258, 264, 265, 267, 286, 287, 289, 290,
-293, 294, 295, 296, 325, 326, 327, 328, 331], [-1, 325, -1, 325, -1, 325, -1,
-325, -1, 325, -1, 325, -1, 325, -1, 325, -1, 325, -1, 325, -1, 556, -1, 50, 52,
-54, -1, 325, 522, 325, -1], [162, 164, 166, 168, 172, 264], [-1, 328, 280, 281,
-282, -1]), ([40, 42, 44, 45, 58, 59, 91, 92, 331], [-1, 411, -1, 411, -1, 411,
--1, 411, -1], [264], [-1]), ([40, 43, 91, 92, 293, 294, 295, 296, 326, 327, 331
-], [-1, 371, -1, 371, -1, 50, 52, 54, -1, 522, -1], [168, 172, 185, 187, 189,
-264], [-1, 262, -1, 329, 264, -1]), ([40, 41, 42, 43, 44, 45, 91, 92, 258, 259,
-285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
-301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 324, 325, 326, 327, 328,
-329, 330, 331], [-1, 660, 401, 662, -1, 401, -1, 388, -1, 366, -1, 34, -1, 38,
-40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
-80, 82, 84, -1, 108, -1, 112, -1, 116, -1, 120], [100, 105, 110, 116, 133, 135,
-137, 153, 155, 161, 162, 168, 172, 174, 176, 178, 180, 185, 198, 200, 202, 210,
-264], [-1, 184, -1, 85, 86, 87, 88, -1, 89, -1, 90, -1, 91, 92, 93, -1, 332,
-189, -1, 333, 197, 198, -1]), ([41, 42, 44, 45, 331], [-1, 525, -1, 668, -1], [
-262, 264], [-1, 335]), ([41, 42, 44, 45, 331], [-1, 379, -1, 379, -1], [264], [
--1]), ([40, 41, 42, 91, 92, 331], [-1, 566, 672, -1, 568, -1], [264], [-1]), ([
-40, 41, 42, 43, 58, 59, 91, 92, 331], [-1, 384, 401, 386, -1, 401, -1, 388, -1
-], [198, 200, 202, 210, 264], [-1, 337, 197, 198, -1]), ([33, 34, 38, 39, 40,
-41, 42, 44, 45, 46, 93, 94, 126, 127, 258, 264, 265, 267, 286, 287, 289, 290,
-293, 296, 325, 328, 331], [-1, 335, -1, 335, -1, 335, -1, 335, -1, 335, -1,
-335, -1, 335, -1, 335, -1, 335, -1, 335, -1, 335, -1, 335, -1, 335, -1], [264],
-[-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 93, 94, 126, 127, 258,
-259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331
-], [-1, 2, -1, 4, -1, 6, -1, 676, 10, -1, 12, -1, 149, -1, 16, -1, 198, 20, 22,
-24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13,
-18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [
--1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
-77, 78, 339, 340, -1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 93, 94, 126,
-127, 258, 264, 265, 267, 286, 287, 289, 290, 293, 294, 295, 296, 325, 326, 327,
-328, 331], [-1, 327, -1, 327, -1, 327, -1, 327, -1, 327, -1, 327, -1, 327, -1,
-327, -1, 327, -1, 327, -1, 556, -1, 50, 52, 54, -1, 327, 522, 327, -1], [166,
-168, 172, 264], [-1, 341, 282, -1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46,
-93, 94, 126, 127, 258, 264, 265, 267, 286, 287, 289, 290, 293, 296, 325, 328,
-331], [-1, 329, -1, 329, -1, 329, -1, 329, -1, 329, -1, 329, -1, 329, -1, 329,
--1, 329, -1, 329, -1, 329, -1, 329, -1, 329, -1], [264], [-1]), ([33, 34, 38,
-39, 40, 41, 42, 44, 45, 46, 93, 94, 126, 127, 258, 264, 265, 267, 286, 287,
-289, 290, 293, 296, 325, 328, 331], [-1, 333, -1, 333, -1, 333, -1, 333, -1,
-333, -1, 333, -1, 333, -1, 333, -1, 333, -1, 333, -1, 333, -1, 333, -1, 333, -1
-], [264], [-1]), ([41, 42, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
-295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
-311, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 684, -1, 34, -1, 38, 40, 42,
-44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82,
-84, -1, 108, -1, 112, -1, 116, -1, 120], [98, 100, 105, 110, 116, 133, 135,
-137, 153, 155, 161, 162, 168, 172, 174, 176, 189, 191, 193, 264], [-1, 273, 84,
--1, 85, 86, 87, 88, -1, 89, -1, 90, -1, 91, 92, 93, -1, 343, 275, -1]), ([33,
-34, 38, 39, 40, 41, 42, 44, 45, 46, 93, 94, 126, 127, 258, 264, 265, 267, 286,
-287, 289, 290, 293, 294, 295, 296, 325, 326, 327, 328, 331], [-1, 325, -1, 325,
--1, 325, -1, 325, -1, 325, -1, 325, -1, 325, -1, 325, -1, 325, -1, 325, -1,
-556, -1, 50, 52, 54, -1, 325, 522, 325, -1], [162, 164, 166, 168, 172, 264], [
--1, 344, 280, 281, 282, -1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 47, 91,
-92, 123, 124, 125, 126, 127, 258, 264, 265, 267, 286, 287, 325, 326, 327, 328,
-331], [-1, 441, -1, 441, -1, 441, -1, 441, -1, 441, 690, -1, 692, -1, 441, -1,
-429, 441, -1, 441, -1, 441, -1, 441, -1, 441, -1, 441, -1], [214, 217, 219,
-220, 222, 224, 226, 264], [-1, 347, 348, 349, 350, 351, 352, -1]), ([37, 39,
-41, 46, 47, 48, 58, 64, 93, 95, 124, 126, 267, 285, 331], [-1, 87, -1, 87, -1,
-87, -1, 87, -1, 87, -1, 87, -1, 87, -1], [264], [-1]), ([37, 39, 41, 46, 47,
-48, 58, 64, 93, 95, 123, 124, 126, 267, 285, 331], [-1, 81, -1, 81, -1, 81, -1,
-81, -1, 81, -1, 570, 81, -1, 81, -1], [264], [-1]), ([123, 124, 331], [-1, 570,
--1], [264], [-1]), ([125, 126, 331], [-1, 706, -1], [264], [-1]), ([125, 126,
-285, 286, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
-307, 308, 309, 310, 311, 326, 327, 329, 330, 331], [-1, 277, -1, 34, -1, 50,
-52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1, 112,
--1, 118, -1], [116, 133, 135, 137, 141, 143, 145, 147, 153, 155, 161, 162, 168,
-172, 226, 227, 264], [-1, 104, 87, 88, -1, 354, 292, 106, -1, 89, -1, 90, -1,
-107, -1, 293, -1]), ([125, 126, 285, 286, 293, 311, 326, 327, 329, 330, 331], [
--1, 279, -1, 279, -1, 279, -1, 279, -1, 279, -1], [264], [-1]), ([40, 41, 42,
-43, 58, 59, 60, 258, 259, 285, 286, 293, 294, 295, 296, 297, 298, 299, 300,
-301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 326, 327, 331], [-1,
-362, -1, 364, -1, 353, 295, -1, 366, -1, 34, -1, 50, 52, 54, 56, 58, 60, 62,
-64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, -1, 112, -1], [116, 133, 135, 137,
-145, 147, 149, 151, 153, 155, 161, 162, 168, 172, 176, 178, 180, 185, 264], [
--1, 104, 87, 88, -1, 195, 355, 356, 357, 89, -1, 90, -1, 107, -1, 358, 359,
-189, -1]), ([125, 126, 285, 286, 293, 311, 326, 327, 329, 330, 331], [-1, 285,
--1, 285, -1, 285, -1, 285, -1, 285, -1], [264], [-1]), ([125, 126, 331], [-1,
-720, -1], [264], [-1]), ([44, 45, 61, 62, 125, 126, 331], [-1, 19, -1, 19, -1,
-19, -1], [264], [-1]), ([44, 45, 61, 62, 125, 126, 331], [-1, 187, -1, 722, -1,
-187, -1], [93, 95, 264], [-1, 362, -1]), ([125, 126, 331], [-1, 726, -1], [264
-], [-1]), ([44, 45, 125, 126, 331], [-1, 728, -1, 313, -1], [264], [-1]), ([44,
-45, 125, 126, 331], [-1, 317, -1, 317, -1], [264], [-1]), ([33, 34, 38, 39, 40,
-41, 42, 44, 45, 46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267,
-285, 311, 312, 331], [-1, 457, -1, 457, -1, 457, -1, 457, -1, 457, -1, 457, -1,
-457, -1, 457, -1, 457, -1, 457, -1, 457, -1, 457, -1, 457], [264], [-1]), ([33,
-34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 59, 60, 123, 124, 126, 127, 258, 259,
-260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 312, 313, 314, 315, 316, 317,
-318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1,
-6, -1, 8, 10, -1, 12, -1, 179, -1, 14, -1, 16, -1, 18, 20, 22, 24, 26, 28, -1,
-30, 32, -1, 36, -1, 86, 88, 90, -1, 92, 94, 96, 98, 100, 102, 104, 106, -1,
-110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59,
-62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 227, 243, 264], [-1, 61, 62, -1,
-63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79,
-80, 81, -1, 365, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 59, 60,
-123, 124, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287,
-312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
-328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 179, -1, 14, -1, 16,
--1, 18, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 86, 88, 90, -1, 92, 94, 96,
-98, 100, 102, 104, 106, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 227,
-243, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73,
-74, 75, 76, 77, 78, -1, 79, 80, 81, -1, 366, -1]), ([33, 34, 38, 39, 40, 41,
-42, 43, 44, 45, 46, 59, 60, 123, 124, 126, 127, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 286, 287, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
-322, 323, 324, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1,
-12, -1, 179, -1, 14, -1, 16, -1, 18, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36,
--1, 86, 88, 90, -1, 92, 94, 96, 98, 100, 102, 104, 106, -1, 110, -1, 114, -1],
-[1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70,
-72, 74, 77, 89, 91, 93, 227, 243, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1,
-66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79, 80, 81, -1, 367, -1
-]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261,
-262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1,
-4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48,
-51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 264], [-1, 61, 62, -1,
-63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79,
--1, 368, -1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 59, 60, 126, 127,
-258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328,
-331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 179, -1, 16, -1, 198, 20,
-22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12,
-13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91,
-93, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73,
-74, 75, 76, 77, 78, -1, 79, 369, 81, -1]), ([59, 60, 331], [-1, 740, -1], [264
-], [-1]), ([40, 43, 44, 45, 59, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324,
-325, 326, 327, 328, 329, 330, 331], [-1, 351, -1, 351, -1, 351, -1, 351, -1,
-351, -1, 351, -1, 351, -1, 351, -1, 351, -1, 351, -1, 351], [264], [-1]), ([40,
-43, 44, 45, 59, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327,
-328, 329, 330, 331], [-1, 349, -1, 349, -1, 349, -1, 349, -1, 349, -1, 349, -1,
-349, -1, 349, -1, 349, -1, 349, -1, 349], [264], [-1]), ([37, 39, 41, 46, 47,
-48, 58, 64, 93, 95, 124, 126, 267, 285, 331], [-1, 83, -1, 83, -1, 83, -1, 83,
--1, 83, -1, 83, -1, 83, -1], [264], [-1]), ([40, 43, 44, 45, 58, 60, 91, 92,
-258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331], [-1,
-323, -1, 323, -1, 323, -1, 323, -1, 323, -1, 323, -1, 323, -1, 323, -1, 323,
--1, 323, -1, 323], [264], [-1]), ([285, 286, 293, 294, 295, 296, 297, 298, 299,
-300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 313, 314, 326, 327,
-331], [-1, 34, -1, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
-80, 82, 84, -1, 742, -1, 112, -1], [13, 15, 16, 18, 116, 133, 135, 137, 143,
-145, 147, 153, 155, 161, 162, 168, 172, 197, 198, 264], [-1, 372, 373, 374, -1,
-104, 87, 88, -1, 105, 106, -1, 89, -1, 90, -1, 107, -1, 375, -1]), ([261, 262,
-331], [-1, 752, -1], [264], [-1]), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95,
-124, 126, 264, 285, 331], [-1, 41, -1, 41, -1, 41, -1, 41, -1, 41, -1, 41, -1,
-41, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127,
-258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328,
-331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26,
-28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26,
-30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61,
-62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
--1, 377, -1]), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 285,
-331], [-1, 39, -1, 39, -1, 39, -1, 39, -1, 39, -1, 39, -1, 39, -1], [264], [-1]
-), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261,
-262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1,
-4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48,
-51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 264], [-1, 61, 62, -1, 63, 64, -1, 65,
--1, 100, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 378, -1]), ([40, 42, 44,
-45, 58, 60, 61, 62, 91, 92, 331], [-1, 363, -1, 363, -1, 363, -1, 363, -1, 363,
--1], [264], [-1]), ([41, 42, 44, 45, 58, 60, 61, 62, 331], [-1, 359, -1, 359,
--1, 359, -1, 359, -1], [264], [-1]), ([40, 43, 44, 45, 58, 59, 91, 92, 258,
-259, 293, 296, 326, 327, 331], [-1, 377, -1, 377, -1, 377, -1, 377, -1, 377,
--1, 377, -1, 377, -1], [264], [-1]), ([44, 45, 59, 60, 331], [-1, 217, -1, 217,
--1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 47, 91, 92, 123,
-124, 125, 126, 127, 258, 264, 265, 267, 286, 287, 325, 326, 327, 328, 331], [
--1, 441, -1, 441, -1, 441, -1, 441, -1, 441, 690, -1, 692, -1, 441, -1, 429,
-441, -1, 441, -1, 441, -1, 441, -1, 441, -1, 441, -1], [214, 217, 219, 220,
-222, 224, 226, 264], [-1, 379, 348, 349, 350, 351, 352, -1]), ([44, 45, 59, 60,
-125, 126, 331], [-1, 427, -1, 427, -1, 427, -1], [264], [-1]), ([44, 45, 59,
-60, 331], [-1, 423, -1, 423, -1], [264], [-1]), ([41, 42, 44, 45, 331], [-1,
-391, -1, 391, -1], [264], [-1]), ([41, 42, 44, 45, 331], [-1, 525, -1, 668, -1
-], [262, 264], [-1, 380]), ([41, 42, 331], [-1, 762, -1], [264], [-1]), ([41,
-42, 44, 45, 331], [-1, 389, -1, 764, -1], [264], [-1]), ([33, 34, 38, 39, 40,
-41, 42, 43, 44, 45, 46, 93, 94, 126, 127, 258, 259, 260, 261, 262, 263, 264,
-265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1,
-676, 10, -1, 12, -1, 149, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1,
-36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51,
-54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61, 62, -1, 63, 64, -1,
-65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 383, 340, -1]), ([
-40, 41, 42, 43, 91, 92, 331], [-1, 384, 401, 386, -1, 388, -1], [198, 200, 202,
-210, 264], [-1, 384, 197, 198, -1]), ([40, 41, 42, 43, 91, 92, 258, 259, 285,
-286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
-302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 324, 325, 326, 327, 328, 329,
-330, 331], [-1, 660, 542, 770, -1, 388, -1, 366, -1, 34, -1, 38, 40, 42, 44,
-46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84,
--1, 108, -1, 112, -1, 116, -1, 120], [98, 100, 105, 110, 116, 133, 135, 137,
-153, 155, 161, 162, 168, 172, 174, 176, 178, 180, 185, 189, 191, 193, 202, 210,
-264], [-1, 273, 84, -1, 85, 86, 87, 88, -1, 89, -1, 90, -1, 91, 92, 93, -1,
-260, 189, -1, 274, 275, -1, 276, -1]), ([40, 43, 44, 45, 91, 92, 258, 259, 293,
-294, 295, 296, 326, 327, 331], [-1, 371, -1, 371, -1, 371, -1, 371, -1, 50, 52,
-54, -1, 522, -1], [168, 172, 185, 187, 189, 264], [-1, 262, -1, 386, 264, -1]),
-([41, 42, 44, 45, 331], [-1, 383, -1, 383, -1], [264], [-1]), ([41, 42, 44, 45,
-331], [-1, 385, -1, 385, -1], [264], [-1]), ([285, 286, 287, 288, 289, 290,
-291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
-307, 308, 309, 310, 311, 312, 324, 325, 326, 327, 328, 329, 330, 331], [-1, 34,
--1, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74,
-76, 78, 80, 82, 84, 774, -1, 108, -1, 112, -1, 116, -1, 120], [98, 100, 105,
-110, 116, 133, 135, 137, 153, 155, 161, 162, 168, 172, 174, 176, 191, 193, 264
-], [-1, 273, 84, -1, 85, 86, 87, 88, -1, 89, -1, 90, -1, 91, 92, 93, -1, 388,
--1]), ([41, 42, 331], [-1, 778, -1], [264], [-1]), ([40, 42, 44, 45, 58, 59,
-91, 92, 331], [-1, 405, -1, 405, -1, 405, -1, 405, -1], [264], [-1]), ([41, 42,
-44, 45, 58, 59, 331], [-1, 399, -1, 399, -1, 399, -1], [264], [-1]), ([33, 34,
-38, 39, 40, 41, 42, 43, 44, 45, 46, 93, 94, 126, 127, 258, 259, 260, 261, 262,
-263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1,
-6, -1, 8, 10, -1, 12, -1, 151, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 264],
-[-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 109, -1]), ([93, 94, 331], [-1, 780,
--1], [264], [-1]), ([93, 94, 331], [-1, 153, -1], [264], [-1]), ([33, 34, 38,
-39, 40, 41, 42, 44, 45, 46, 93, 94, 126, 127, 258, 264, 265, 267, 286, 287,
-289, 290, 293, 296, 325, 328, 331], [-1, 331, -1, 331, -1, 331, -1, 331, -1,
-331, -1, 331, -1, 331, -1, 331, -1, 331, -1, 331, -1, 331, -1, 331, -1, 331, -1
-], [264], [-1]), ([40, 42, 44, 45, 58, 59, 91, 92, 331], [-1, 417, -1, 417, -1,
-417, -1, 417, -1], [264], [-1]), ([41, 42, 44, 45, 331], [-1, 525, -1, 668, -1
-], [262, 264], [-1, 391]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 93,
-94, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325,
-326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 676, 10, -1, 12, -1, 149, -1,
-16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1,
-6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72,
-74, 77, 89, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71,
-72, 73, 74, 75, 76, 77, 78, 392, 340, -1]), ([258, 259, 331], [-1, 786, -1], [
-264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259,
-260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [
--1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28,
--1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30,
-42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 95, 96, 264], [-1, 61, 62,
--1, 63, 64, -1, 65, -1, 100, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 126,
--1, 394, -1]), ([125, 126, 331], [-1, 790, -1], [264], [-1]), ([44, 45, 125,
-126, 331], [-1, 792, -1, 431, -1], [264], [-1]), ([44, 45, 125, 126, 331], [-1,
-435, -1, 435, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-123, 124, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287,
-325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 642, -1,
-16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1,
-6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72,
-74, 77, 89, 212, 214, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68,
-69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 322, -1, 397, -1]), ([46, 47, 61,
-62, 91, 92, 331], [-1, 690, -1, 796, -1, 692, -1], [224, 226, 264], [-1, 399,
--1]), ([46, 47, 61, 62, 91, 92, 331], [-1, 445, -1, 445, -1, 445, -1], [264], [
--1]), ([40, 43, 44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325,
-326, 327, 328, 329, 330, 331], [-1, 267, -1, 267, -1, 267, -1, 267, -1, 267,
--1, 267, -1, 267, -1, 267, -1, 267, -1, 267, -1, 267], [264], [-1]), ([125,
-126, 285, 286, 293, 311, 326, 327, 329, 330, 331], [-1, 281, -1, 281, -1, 281,
--1, 281, -1, 281, -1], [264], [-1]), ([59, 60, 331], [-1, 800, -1], [264], [-1]
-), ([44, 45, 59, 60, 331], [-1, 802, -1, 297, -1], [264], [-1]), ([44, 45, 59,
-60, 331], [-1, 299, -1, 299, -1], [264], [-1]), ([58, 59, 331], [-1, 804, -1],
-[264], [-1]), ([44, 45, 58, 59, 60, 331], [-1, 305, -1, 355, 305, -1], [264], [
--1]), ([40, 43, 44, 45, 58, 60, 91, 92, 258, 259, 285, 286, 287, 311, 324, 325,
-326, 327, 328, 329, 330, 331], [-1, 271, -1, 271, -1, 271, -1, 271, -1, 271,
--1, 271, -1, 271, -1, 271, -1, 271, -1, 271, -1, 271], [264], [-1]), ([33, 34,
-38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263,
-264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6,
--1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1,
-110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59,
-62, 64, 66, 68, 70, 72, 74, 95, 96, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1,
-100, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 126, -1, 403, -1]), ([44, 45,
-125, 126, 331], [-1, 321, -1, 321, -1], [264], [-1]), ([40, 43, 44, 45, 58, 60,
-91, 92, 258, 259, 285, 286, 287, 311, 324, 325, 326, 327, 328, 329, 330, 331],
-[-1, 307, -1, 307, -1, 307, -1, 307, -1, 307, -1, 307, -1, 307, -1, 307, -1,
-307, -1, 307, -1, 307], [264], [-1]), ([125, 126, 258, 259, 331], [-1, 315, -1,
-590, -1], [9, 10, 160, 161, 264], [-1, 296, -1, 404, -1]), ([33, 34, 38, 39,
-40, 41, 42, 44, 45, 46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264, 265,
-267, 285, 311, 312, 315, 316, 331], [-1, 467, -1, 467, -1, 467, -1, 467, -1,
-467, -1, 467, -1, 467, -1, 467, -1, 467, -1, 467, -1, 467, -1, 467, -1, 467,
-810, 467], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59, 60, 123,
-124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311, 312, 331], [-1, 469, -1,
-469, -1, 469, -1, 469, -1, 469, -1, 469, -1, 469, -1, 469, -1, 469, -1, 469,
--1, 469, -1, 469, -1, 469], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45,
-46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311, 312,
-331], [-1, 471, -1, 471, -1, 471, -1, 471, -1, 471, -1, 471, -1, 471, -1, 471,
--1, 471, -1, 471, -1, 471, -1, 471, -1, 471], [264], [-1]), ([41, 42, 44, 45,
-331], [-1, 812, -1, 360, -1], [264], [-1]), ([59, 60, 331], [-1, 814, -1], [264
-], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259,
-260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [
--1, 2, -1, 4, -1, 6, 179, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28,
--1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30,
-42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 264], [-1,
-61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
-78, -1, 79, 408, 81, -1]), ([58, 59, 331], [-1, 35, -1], [264], [-1]), ([41,
-42, 44, 45, 331], [-1, 818, -1, 820, -1], [264], [-1]), ([41, 42, 44, 45, 331],
-[-1, 27, -1, 27, -1], [264], [-1]), ([58, 59, 331], [-1, 822, -1], [264], [-1]
-), ([58, 59, 331], [-1, 33, -1], [264], [-1]), ([41, 42, 331], [-1, 824, -1], [
-264], [-1]), ([41, 42, 44, 45, 331], [-1, 59, -1, 59, -1], [264], [-1]), ([41,
-42, 44, 45, 58, 60, 93, 94, 125, 126, 331], [-1, 147, -1, 147, -1, 147, -1,
-147, -1, 147, -1], [264], [-1]), ([125, 126, 331], [-1, 826, -1], [264], [-1]),
-([41, 42, 331], [-1, 828, -1], [264], [-1]), ([40, 42, 44, 45, 58, 60, 61, 62,
-91, 92, 331], [-1, 367, -1, 367, -1, 367, -1, 367, -1, 367, -1], [264], [-1]),
-([258, 259, 331], [-1, 830, -1], [264], [-1]), ([93, 94, 331], [-1, 832, -1], [
-264], [-1]), ([41, 42, 331], [-1, 834, -1], [264], [-1]), ([40, 43, 91, 92,
-258, 259, 293, 294, 295, 296, 326, 327, 331], [-1, 371, -1, 371, -1, 371, -1,
-50, 52, 54, -1, 522, -1], [168, 172, 185, 187, 189, 264], [-1, 262, -1, 418,
-264, -1]), ([40, 41, 42, 43, 44, 45, 91, 92, 258, 259, 331], [-1, 660, 401,
-662, -1, 401, -1, 388, -1, 366, -1], [178, 180, 185, 198, 200, 202, 210, 264],
-[-1, 318, 189, -1, 337, 197, 198, -1]), ([41, 42, 331], [-1, 527, -1], [264], [
--1]), ([41, 42, 44, 45, 331], [-1, 381, -1, 381, -1], [264], [-1]), ([40, 42,
-44, 45, 58, 59, 91, 92, 331], [-1, 413, -1, 413, -1, 413, -1, 413, -1], [264],
-[-1]), ([40, 42, 44, 45, 58, 59, 91, 92, 331], [-1, 409, -1, 409, -1, 409, -1,
-409, -1], [264], [-1]), ([41, 42, 331], [-1, 838, -1], [264], [-1]), ([93, 94,
-331], [-1, 840, -1], [264], [-1]), ([46, 47, 61, 62, 91, 92, 331], [-1, 451,
--1, 451, -1, 451, -1], [264], [-1]), ([93, 94, 331], [-1, 842, -1], [264], [-1]
-), ([37, 39, 40, 48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 285, 331], [-1, 51,
--1, 51, -1, 51, -1, 51, -1, 51, -1, 51, -1, 51, -1], [264], [-1]), ([33, 34,
-38, 39, 40, 41, 42, 44, 45, 46, 47, 91, 92, 123, 124, 125, 126, 127, 258, 264,
-265, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 441, -1, 441, -1, 441, -1,
-441, -1, 441, 690, -1, 692, -1, 441, -1, 433, 441, -1, 441, -1, 441, -1, 441,
--1, 441, -1, 441, -1], [219, 220, 222, 224, 226, 264], [-1, 422, 350, 351, 352,
--1]), ([44, 45, 125, 126, 331], [-1, 439, -1, 439, -1], [264], [-1]), ([33, 34,
-38, 39, 40, 41, 42, 44, 45, 46, 123, 124, 126, 127, 258, 264, 265, 267, 286,
-287, 325, 326, 327, 328, 331], [-1, 443, -1, 443, -1, 443, -1, 443, -1, 443,
--1, 443, -1, 443, -1, 443, -1, 443, -1, 443, -1, 443, -1, 443, -1], [264], [-1]
-), ([46, 47, 61, 62, 91, 92, 331], [-1, 447, -1, 447, -1, 447, -1], [264], [-1]
-), ([125, 126, 285, 286, 293, 311, 326, 327, 329, 330, 331], [-1, 283, -1, 283,
--1, 283, -1, 283, -1, 283, -1], [264], [-1]), ([40, 41, 42, 43, 58, 59, 258,
-259, 331], [-1, 362, -1, 364, -1, 353, -1, 366, -1], [151, 153, 176, 178, 180,
-185, 264], [-1, 423, -1, 358, 359, 189, -1]), ([33, 34, 38, 39, 40, 41, 42, 43,
-44, 45, 46, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286,
-287, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 16,
--1, 198, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 110, -1, 114, -1], [1, 6,
-9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74,
-95, 96, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 100, 67, 68, 69, 70, 71, 72,
-73, 74, 75, 76, 77, 126, -1, 424, -1]), ([44, 45, 125, 126, 331], [-1, 189, -1,
-189, -1], [264], [-1]), ([44, 45, 125, 126, 331], [-1, 319, -1, 319, -1], [264
-], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 59, 60, 123, 124, 126,
-127, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 286, 287, 312, 313, 314,
-315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 331], [
--1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 179, -1, 14, -1, 16, -1, 18, 20,
-22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 86, 88, 90, -1, 92, 94, 96, 98, 100,
-102, 104, 106, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44,
-48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 227, 243, 264], [
--1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
-77, 78, -1, 79, 80, 81, -1, 425, -1]), ([59, 60, 331], [-1, 852, -1], [264], [
--1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260,
-261, 262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2,
--1, 4, -1, 6, 179, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30,
-32, -1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44,
-48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91, 93, 264], [-1, 61, 62,
--1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1,
-79, 427, 81, -1]), ([41, 42, 331], [-1, 856, -1], [264], [-1]), ([37, 39, 40,
-48, 58, 64, 91, 92, 93, 95, 124, 126, 264, 285, 331], [-1, 25, -1, 25, -1, 25,
--1, 25, -1, 25, -1, 25, -1, 25, -1], [264], [-1]), ([285, 286, 293, 294, 295,
-296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
-313, 314, 326, 327, 331], [-1, 34, -1, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68,
-70, 72, 74, 76, 78, 80, 82, 84, -1, 742, -1, 112, -1], [15, 16, 18, 116, 133,
-135, 137, 143, 145, 147, 153, 155, 161, 162, 168, 172, 197, 198, 264], [-1,
-429, 374, -1, 104, 87, 88, -1, 105, 106, -1, 89, -1, 90, -1, 107, -1, 375, -1]
-), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 126, 127, 258, 259, 260, 261,
-262, 263, 264, 265, 266, 267, 286, 287, 325, 326, 327, 328, 331], [-1, 2, -1,
-4, -1, 6, -1, 8, 10, -1, 12, -1, 16, -1, 198, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 36, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48,
-51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 264], [-1, 61, 62, -1, 63, 64,
--1, 65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 430, -1]),
-([59, 60, 331], [-1, 862, -1], [264], [-1]), ([44, 45, 59, 60, 125, 126, 331],
-[-1, 425, -1, 425, -1, 425, -1], [264], [-1]), ([40, 42, 44, 45, 58, 60, 61,
-62, 91, 92, 331], [-1, 369, -1, 369, -1, 369, -1, 369, -1, 369, -1], [264], [-1
-]), ([41, 42, 44, 45, 331], [-1, 393, -1, 393, -1], [264], [-1]), ([40, 42, 44,
-45, 58, 60, 61, 62, 91, 92, 331], [-1, 365, -1, 365, -1, 365, -1, 365, -1, 365,
--1], [264], [-1]), ([40, 42, 44, 45, 58, 59, 91, 92, 331], [-1, 407, -1, 407,
--1, 407, -1, 407, -1], [264], [-1]), ([40, 41, 42, 43, 91, 92, 258, 259, 331],
-[-1, 660, 401, 662, -1, 388, -1, 366, -1], [178, 180, 185, 198, 200, 202, 210,
-264], [-1, 318, 189, -1, 384, 197, 198, -1]), ([40, 42, 44, 45, 58, 59, 91, 92,
-331], [-1, 419, -1, 419, -1, 419, -1, 419, -1], [264], [-1]), ([40, 42, 44, 45,
-58, 59, 91, 92, 331], [-1, 415, -1, 415, -1, 415, -1, 415, -1], [264], [-1]), (
-[46, 47, 61, 62, 91, 92, 331], [-1, 449, -1, 449, -1, 449, -1], [264], [-1]), (
-[44, 45, 125, 126, 331], [-1, 437, -1, 437, -1], [264], [-1]), ([44, 45, 59,
-60, 331], [-1, 301, -1, 301, -1], [264], [-1]), ([44, 45, 59, 60, 331], [-1,
-303, -1, 303, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59,
-60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311, 312, 331], [-1,
-465, -1, 465, -1, 465, -1, 465, -1, 465, -1, 465, -1, 465, -1, 465, -1, 465,
--1, 465, -1, 465, -1, 465, -1, 465], [264], [-1]), ([33, 34, 38, 39, 40, 41,
-42, 44, 45, 46, 59, 60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285,
-311, 312, 331], [-1, 473, -1, 473, -1, 473, -1, 473, -1, 473, -1, 473, -1, 473,
--1, 473, -1, 473, -1, 473, -1, 473, -1, 473, -1, 473], [264], [-1]), ([41, 42,
-331], [-1, 864, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 43, 44, 45,
-46, 59, 60, 123, 124, 126, 127, 258, 259, 260, 261, 262, 263, 264, 265, 266,
-267, 286, 287, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
-325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8, 10, -1, 12, -1, 179, -1,
-14, -1, 16, -1, 18, 20, 22, 24, 26, 28, -1, 30, 32, -1, 36, -1, 86, 88, 90, -1,
-92, 94, 96, 98, 100, 102, 104, 106, -1, 110, -1, 114, -1], [1, 6, 9, 10, 12,
-13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 77, 89, 91,
-93, 227, 243, 264], [-1, 61, 62, -1, 63, 64, -1, 65, -1, 66, 67, 68, 69, 70,
-71, 72, 73, 74, 75, 76, 77, 78, -1, 79, 80, 81, -1, 433, -1]), ([41, 42, 44,
-45, 331], [-1, 29, -1, 29, -1], [264], [-1]), ([41, 42, 44, 45, 331], [-1, 31,
--1, 31, -1], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59, 60,
-123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311, 312, 315, 316, 331
-], [-1, 453, -1, 453, -1, 453, -1, 453, -1, 453, -1, 453, -1, 453, -1, 453, -1,
-453, -1, 453, -1, 453, -1, 453, -1, 453, -1, 453], [264], [-1]), ([33, 34, 38,
-39, 40, 41, 42, 43, 44, 45, 46, 59, 60, 123, 124, 126, 127, 258, 259, 260, 261,
-262, 263, 264, 265, 266, 267, 286, 287, 312, 313, 314, 315, 316, 317, 318, 319,
-320, 321, 322, 323, 324, 325, 326, 327, 328, 331], [-1, 2, -1, 4, -1, 6, -1, 8,
-10, -1, 12, -1, 179, -1, 14, -1, 16, -1, 18, 20, 22, 24, 26, 28, -1, 30, 32,
--1, 36, -1, 86, 88, 90, -1, 92, 94, 96, 98, 100, 102, 104, 106, -1, 110, -1,
-114, -1], [1, 6, 9, 10, 12, 13, 18, 26, 30, 42, 44, 48, 51, 54, 59, 62, 64, 66,
-68, 70, 72, 74, 77, 89, 91, 93, 227, 243, 264], [-1, 61, 62, -1, 63, 64, -1,
-65, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 79, 80, 81, -1,
-434, -1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59, 60, 123, 124, 125,
-127, 256, 257, 258, 264, 265, 267, 285, 311, 312, 331], [-1, 477, -1, 477, -1,
-477, -1, 477, -1, 477, -1, 477, -1, 477, -1, 477, -1, 477, -1, 477, -1, 477,
--1, 477, -1, 477], [264], [-1]), ([33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 59,
-60, 123, 124, 125, 127, 256, 257, 258, 264, 265, 267, 285, 311, 312, 331], [-1,
-475, -1, 475, -1, 475, -1, 475, -1, 475, -1, 475, -1, 475, -1, 475, -1, 475,
--1, 475, -1, 475, -1, 475, -1, 475], [264], [-1])], [(1, []), (1, [(0, 1,
-'ExpressionIdentifier', {})]), (1, []), (1, []), (3, []), (1, []), (1, []), (1,
-[]), (1, []), (1, []), (1, []), (1, [(0, 1, 'ExpressionFunctionName', {})]), (
-6, [(0, 6, 'GenericSelection', {}), (4, 1, 'GenericAssociationList', {})]), (1,
-[]), (3, []), (3, [(0, 3, 'GenericAssociation', {})]), (1, []), (1, [(0, 1,
-'DefaultTypeName', {})]), (1, []), (4, [(0, 4, 'ExpressionIndex', {})]), (4, [(
-0, 4, 'ExpressionCall', {}), (2, 1, 'ArgumentExpressionList', {})]), (3, [(0,
-3, 'ExpressionField', {})]), (3, [(0, 3, 'ExpressionFieldDereference', {})]), (
-2, [(0, 2, 'ExpressionPostIncrement', {})]), (2, [(0, 2,
-'ExpressionPostDecrement', {})]), (6, [(0, 6, 'ExpressionArray', {}), (4, 1,
-'DesignatorInitializerList', {})]), (0, []), (1, []), (1, []), (3, []), (1, []
-), (2, [(0, 2, 'ExpressionPreIncrement', {})]), (2, [(0, 2,
-'ExpressionPreDecrement', {})]), (2, [(0, 2, 'ExpressionAddressOf', {})]), (2,
-[(0, 2, 'ExpressionDereference', {})]), (2, [(0, 2, 'ExpressionPlus', {})]), (
-2, [(0, 2, 'ExpressionMinus', {})]), (2, [(0, 2, 'ExpressionBitwiseNot', {})]),
-(2, [(0, 2, 'ExpressionLogicalNot', {})]), (2, [(0, 2,
-'ExpressionSizeOfExpression', {})]), (4, [(0, 4, 'ExpressionSizeOfType', {})]),
-(4, [(0, 4, 'ExpressionAlignOfType', {})]), (1, []), (4, [(0, 4,
-'ExpressionCast', {})]), (1, []), (3, [(0, 3, 'ExpressionMultiply', {})]), (3,
-[(0, 3, 'ExpressionDivide', {})]), (3, [(0, 3, 'ExpressionModulo', {})]), (1, [
-]), (3, [(0, 3, 'ExpressionAdd', {})]), (3, [(0, 3, 'ExpressionSubtract', {})]
-), (1, []), (3, [(0, 3, 'ExpressionShiftLeft', {})]), (3, [(0, 3,
-'ExpressionShiftRight', {})]), (1, []), (3, [(0, 3, 'ExpressionLessThan', {})]
-), (3, [(0, 3, 'ExpressionGreaterThan', {})]), (3, [(0, 3,
-'ExpressionLessThanOrEqual', {})]), (3, [(0, 3, 'ExpressionGreaterThanOrEqual',
-{})]), (1, []), (3, [(0, 3, 'ExpressionEqual', {})]), (3, [(0, 3,
-'ExpressionNotEqual', {})]), (1, []), (3, [(0, 3, 'ExpressionBitwiseAnd', {})]
-), (1, []), (3, [(0, 3, 'ExpressionExclusiveOr', {})]), (1, []), (3, [(0, 3,
-'ExpressionBitwiseOr', {})]), (1, []), (3, [(0, 3, 'ExpressionLogicalAnd', {})]
-), (1, []), (3, [(0, 3, 'ExpressionLogicalOr', {})]), (1, []), (5, [(0, 5,
-'ExpressionConditional', {})]), (0, [(0, 0, 'ExpressionEmpty', {})]), (1, [(0,
-1, 'ExpressionAsterisk', {})]), (1, []), (1, []), (3, [(0, 3,
-'ExpressionAssignment', {})]), (3, [(0, 3, 'ExpressionMultiplyAssignment', {})]
-), (3, [(0, 3, 'ExpressionDivideAssignment', {})]), (3, [(0, 3,
-'ExpressionModuloAssignment', {})]), (3, [(0, 3, 'ExpressionAddAssignment', {})
-]), (3, [(0, 3, 'ExpressionSubtractAssignment', {})]), (3, [(0, 3,
-'ExpressionLeftShiftAssignment', {})]), (3, [(0, 3,
-'ExpressionRightShiftAssignment', {})]), (3, [(0, 3,
-'ExpressionBitwiseAndAssignment', {})]), (3, [(0, 3,
-'ExpressionExclusiveOrAssignment', {})]), (3, [(0, 3,
-'ExpressionBitwiseOrAssignment', {})]), (0, [(0, 0, 'ExpressionEmpty', {})]), (
-1, []), (1, []), (3, [(0, 3, 'ExpressionComma', {})]), (0, [(0, 0,
-'ExpressionEmpty', {})]), (2, []), (1, []), (3, [(0, 3, 'Declaration', {}), (0,
-1, 'DeclarationSpecifierList', {}), (1, 1, 'InitDeclaratorList', {})]), (1, []
-), (1, []), (2, []), (1, []), (1, []), (1, []), (1, []), (1, []), (0, []), (1,
-[]), (1, []), (3, []), (2, [(0, 2, 'InitDeclarator', {})]), (1, [(0, 1,
-'StorageClassSpecifier', {'n': '0'})]), (1, [(0, 1, 'StorageClassSpecifier', {
-'n': '1'})]), (1, [(0, 1, 'StorageClassSpecifier', {'n': '2'})]), (1, [(0, 1,
-'StorageClassSpecifier', {'n': '3'})]), (1, [(0, 1, 'StorageClassSpecifier', {
-'n': '4'})]), (1, [(0, 1, 'StorageClassSpecifier', {'n': '5'})]), (1, [(0, 1,
-'TypeSpecifier', {'n': '0'})]), (1, [(0, 1, 'TypeSpecifier', {'n': '1'})]), (1,
-[(0, 1, 'TypeSpecifier', {'n': '2'})]), (1, [(0, 1, 'TypeSpecifier', {'n': '3'}
-)]), (1, [(0, 1, 'TypeSpecifier', {'n': '4'})]), (1, [(0, 1, 'TypeSpecifier', {
-'n': '5'})]), (1, [(0, 1, 'TypeSpecifier', {'n': '6'})]), (1, [(0, 1,
-'TypeSpecifier', {'n': '7'})]), (1, [(0, 1, 'TypeSpecifier', {'n': '8'})]), (1,
-[(0, 1, 'TypeSpecifier', {'n': '9'})]), (1, [(0, 1, 'TypeSpecifier', {'n': '10'
-})]), (1, [(0, 1, 'TypeSpecifier', {'n': '11'})]), (1, []), (1, []), (1, []), (
-1, []), (1, []), (5, [(0, 5, 'StructSpecifier', {}), (3, 1,
-'StructDeclarationList', {})]), (2, [(0, 2, 'StructSpecifier', {})]), (5, [(0,
-5, 'UnionSpecifier', {}), (3, 1, 'StructDeclarationList', {})]), (2, [(0, 2,
-'UnionSpecifier', {})]), (0, []), (1, []), (1, []), (2, []), (3, [(0, 3,
-'StructDeclaration', {}), (0, 1, 'SpecifierQualifierList', {}), (1, 1,
-'StructDeclaratorList', {})]), (1, []), (1, []), (2, []), (1, []), (1, []), (0,
-[]), (1, []), (1, []), (3, []), (3, [(0, 3, 'StructDeclarator', {})]), (1, []),
-(5, [(0, 5, 'EnumSpecifier', {}), (3, 1, 'EnumeratorList', {})]), (2, [(0, 2,
-'EnumSpecifier', {})]), (0, []), (1, []), (2, []), (1, []), (3, []), (2, [(0,
-2, 'Enumerator', {})]), (4, []), (0, []), (1, []), (1, []), (2, []), (1, []), (
-1, [(0, 1, 'StorageClassSpecifier', {'n': '2'})]), (1, [(0, 1, 'TypeQualifier',
-{'n': '0'})]), (1, [(0, 1, 'TypeQualifier', {'n': '1'})]), (1, [(0, 1,
-'TypeQualifier', {'n': '2'})]), (1, [(0, 1, 'TypeQualifier', {'n': '3'})]), (1,
-[(0, 1, 'FunctionSpecifier', {'n': '0'})]), (1, [(0, 1, 'FunctionSpecifier', {
-'n': '1'})]), (4, [(0, 4, 'AlignAsType', {})]), (4, [(0, 4,
-'AlignAsExpression', {})]), (0, [(0, 0, 'DeclaratorEmpty', {})]), (1, []), (1,
-[]), (3, [(0, 3, 'DeclaratorPointer', {}), (1, 1, 'TypeQualifierList', {})]), (
-1, [(0, 1, 'DeclaratorIdentifier', {})]), (3, []), (5, [(0, 5,
-'DeclaratorArray', {}), (2, 1, 'TypeQualifierOrStaticList', {})]), (4, [(0, 4,
-'DeclaratorFunctionOldStyle', {}), (2, 1, 'IdentifierList', {})]), (5, [(0, 5,
-'DeclaratorFunction', {}), (2, 1, 'ParameterDeclarationList', {})]), (0, []), (
-1, []), (1, []), (2, []), (1, []), (3, []), (2, [(0, 2, 'ParameterDeclaration',
-{}), (0, 1, 'DeclarationSpecifierList', {})]), (2, [(0, 2,
-'ParameterDeclaration', {}), (0, 1, 'DeclarationSpecifierList', {})]), (0, []),
-(1, []), (1, []), (3, []), (2, [(0, 2, 'TypeName', {}), (0, 1,
-'SpecifierQualifierList', {})]), (1, []), (3, [(0, 3, 'DeclaratorPointer', {}),
-(1, 1, 'TypeQualifierList', {})]), (0, [(0, 0, 'DeclaratorAbstract', {})]), (1,
-[]), (3, []), (5, [(1, 3, 'DeclaratorPointer', {}), (2, 1, 'TypeQualifierList',
-{})]), (4, [(0, 5, 'DeclaratorArray', {}), (0, 0, 'DeclaratorAbstract', {}), (
-1, 1, 'TypeQualifierOrStaticList', {})]), (2, [(0, 5, 'DeclaratorFunction', {}
-), (0, 0, 'DeclaratorAbstract', {}), (1, 0, 'ParameterDeclarationList', {}), (
-1, 0, 'CommaEllipsisEmpty', {})]), (4, [(0, 5, 'DeclaratorFunction', {}), (0,
-0, 'DeclaratorAbstract', {}), (1, 1, 'ParameterDeclarationList', {})]), (5, [(
-0, 5, 'DeclaratorArray', {}), (2, 1, 'TypeQualifierOrStaticList', {})]), (3, [(
-0, 5, 'DeclaratorFunction', {}), (2, 0, 'ParameterDeclarationList', {}), (2, 0,
-'CommaEllipsisEmpty', {})]), (5, [(0, 5, 'DeclaratorFunction', {}), (2, 1,
-'ParameterDeclarationList', {})]), (0, [(0, 0, 'EqualsInitializerEmpty', {})]),
-(2, []), (3, [(1, 1, 'DesignatorInitializerList', {})]), (1, []), (0, []), (1,
-[]), (2, []), (1, []), (3, []), (2, [(0, 2, 'DesignatorInitializer', {}), (0,
-1, 'DesignatorList', {})]), (0, []), (2, []), (1, []), (2, []), (3, [(0, 3,
-'DesignatorIndex', {})]), (2, [(0, 2, 'DesignatorField', {})]), (7, [(0, 7,
-'StaticAssertDeclaration', {})]), (3, [(0, 3, 'StatementLabel', {})]), (4, [(0,
-4, 'StatementCase', {})]), (3, [(0, 3, 'StatementDefault', {})]), (3, [(0, 3,
-'StatementBlock', {}), (1, 1, 'BlockItemList', {})]), (2, [(0, 2,
-'StatementExpression', {})]), (7, [(0, 7, 'StatementIfElse', {})]), (5, [(0, 5,
-'StatementIf', {})]), (5, [(0, 5, 'StatementSwitch', {})]), (5, [(0, 5,
-'StatementWhile', {})]), (7, [(0, 7, 'StatementDoWhile', {})]), (9, [(0, 9,
-'StatementFor', {})]), (8, [(0, 8, 'StatementFor', {})]), (3, [(0, 3,
-'StatementGoto', {})]), (2, [(0, 2, 'StatementContinue', {})]), (2, [(0, 2,
-'StatementBreak', {})]), (3, [(0, 3, 'StatementReturn', {})]), (0, []), (1, []
-), (1, []), (2, []), (1, []), (1, []), (0, []), (1, []), (1, []), (2, []), (1,
-[]), (1, []), (6, [(0, 6, 'FunctionDefinition', {}), (0, 1,
-'DeclarationSpecifierList', {}), (2, 1, 'DeclarationList', {}), (4, 1,
-'BlockItemList', {})]), (0, []), (1, []), (1, []), (2, []), (0, [(0, 0,
-'IdentifierEmpty', {})]), (1, []), (0, [(0, 0, 'CommaEllipsisEmpty', {})]), (2,
-[(0, 2, 'CommaEllipsis', {})])], 331, 256)
-# GENERATE END
-
-def yyparse(root, pos, off, factory, yylex_iter):
- lalr1.yyparse(root, pos, off, factory, yylex_iter)
-
-if __name__ == '__main__':
- import ast
- import ansi_c_yylex
- import element
- import work
- import sys
- import xml.etree.ElementTree
-
- root = element.Element('root')
- yyparse(
- root,
- 0,
- 0,
- ast.factory,
- ansi_c_yylex.yylex(
- root,
- 0,
- 0,
- ast.factory,
- work.yychunk_line(root, sys.stdin)
- )
- )
- xml.etree.ElementTree.dump(root)
+++ /dev/null
-#!/bin/sh
-if ../pyacc.git/pyacc.py ansi_c_yacc.y ansi_c_tokens.py <ansi_c_yyparse.py >ansi_c_yyparse.py.new && ! diff -q ansi_c_yyparse.py ansi_c_yyparse.py.new
- then
- mv ansi_c_yyparse.py.new ansi_c_yyparse.py
-else
- rm -f ansi_c_yyparse.py.new
-fi
self.initial = initial # whether to add declared identifiers as 'self.'
self.translate_identifier = translate_identifier
-class Element(element.Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'Element',
- attrib = {},
- text = '',
- children = []
- ):
- element.Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = element.Element.copy(
- self,
- Element if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.Element({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- for i in self:
- i.translate(context)
- prev_empty = True
- for i in range(len(self) + 1):
- text = element.get_text(self, i).strip()
- next_empty = (
- i >= len(self) or
- (len(self[i]) == 0 and len(element.get_text(self[i], 0)) == 0)
- )
- if len(text) == 0:
- if prev_empty:
- text = ''
- prev_empty = next_empty
- elif next_empty:
- text = ''
- prev_empty = False
+class AST(element.Element):
+ class Element(element.Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_Element',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ element.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = element.Element.copy(
+ self,
+ Element if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.Element({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ for i in self:
+ i.translate(context)
+ prev_empty = True
+ for i in range(len(self) + 1):
+ text = element.get_text(self, i).strip()
+ next_empty = (
+ i >= len(self) or
+ (len(self[i]) == 0 and len(element.get_text(self[i], 0)) == 0)
+ )
+ if len(text) == 0:
+ if prev_empty:
+ text = ''
+ prev_empty = next_empty
+ elif next_empty:
+ text = ''
+ prev_empty = False
+ else:
+ text = ' '
else:
- text = ' '
- else:
- if prev_empty:
- prev_empty = False
- elif text[0] not in ',;)}]':
- text = ' ' + text
- if next_empty:
- prev_empty = text[-1] in '({['
- elif text[0] not in '({[':
- text = text + ' '
- element.set_text(self, i, text)
-
-class DeclarationOrStatement(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DeclarationOrStatement',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- DeclarationOrStatement if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DeclarationOrStatement({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- Element.translate(self, context)
- element.set_text(
- self,
- 0,
- '{0:s}{1:s}'.format(context.indent, element.get_text(self, 0))
- )
- text = element.get_text(self, len(self))
- if text[-1:] == ';':
- text = text[:-1]
- element.set_text(self, len(self), '{0:s}\n'.format(text))
-
-class AlignAsExpression(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'AlignAsExpression',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- AlignAsExpression if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AlignAsExpression({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class AlignAsType(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'AlignAsType',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- AlignAsType if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AlignAsType({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ArgumentExpressionList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ArgumentExpressionList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- ArgumentExpressionList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ArgumentExpressionList({0:s})'.format(', '.join(params))
- # GENERATE END
+ if prev_empty:
+ prev_empty = False
+ elif text[0] not in ',;)}]':
+ text = ' ' + text
+ if next_empty:
+ prev_empty = text[-1] in '({['
+ elif text[0] not in '({[':
+ text = text + ' '
+ element.set_text(self, i, text)
+
+ class DeclarationOrStatement(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DeclarationOrStatement',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ DeclarationOrStatement if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DeclarationOrStatement({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ Element.translate(self, context)
+ element.set_text(
+ self,
+ 0,
+ '{0:s}{1:s}'.format(context.indent, element.get_text(self, 0))
+ )
+ text = element.get_text(self, len(self))
+ if text[-1:] == ';':
+ text = text[:-1]
+ element.set_text(self, len(self), '{0:s}\n'.format(text))
+
+ class AlignAsExpression(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_AlignAsExpression',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ AlignAsExpression if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.AlignAsExpression({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class AlignAsType(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_AlignAsType',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ AlignAsType if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.AlignAsType({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ArgumentExpressionList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ArgumentExpressionList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ ArgumentExpressionList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ArgumentExpressionList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class BlockItemList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_BlockItemList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ BlockItemList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.BlockItemList({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ for i in self:
+ i.translate(context)
+ for i in range(len(self) + 1):
+ element.set_text(self, i, '')
+
+ class CommaEllipsis(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_CommaEllipsis',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ CommaEllipsis if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.CommaEllipsis({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class CommaEllipsisEmpty(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_CommaEllipsisEmpty',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ CommaEllipsisEmpty if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.CommaEllipsisEmpty({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class Declaration(DeclarationOrStatement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_Declaration',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.DeclarationOrStatement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.DeclarationOrStatement.copy(
+ self,
+ Declaration if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.Declaration({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class DeclarationList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DeclarationList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ DeclarationList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DeclarationList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class DeclarationSpecifierList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DeclarationSpecifierList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ DeclarationSpecifierList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DeclarationSpecifierList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class Declarator(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_Declarator',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ Declarator if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.Declarator({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class DeclaratorAbstract(Declarator):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DeclaratorAbstract',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Declarator.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Declarator.copy(
+ self,
+ DeclaratorAbstract if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DeclaratorAbstract({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class DeclaratorArray(Declarator):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DeclaratorArray',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Declarator.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Declarator.copy(
+ self,
+ DeclaratorArray if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DeclaratorArray({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 3
+ self[0].translate(context)
+ self[1].translate(context)
+ self[2].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, '[')
+ element.set_text(
+ self,
+ 2,
+ ' ' if len(self[1]) or len(element.get_text(self[1], 0)) else ''
+ )
+ element.set_text(self, 3, ']')
+
+ class DeclaratorEmpty(Declarator):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DeclaratorEmpty',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Declarator.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Declarator.copy(
+ self,
+ DeclaratorEmpty if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DeclaratorEmpty({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class DeclaratorFunction(Declarator):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DeclaratorFunction',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Declarator.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Declarator.copy(
+ self,
+ DeclaratorFunction if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DeclaratorFunction({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 3
+ self[0].translate(context)
+ initial_save = context.initial
+ context.initial = False
+ self[1].translate(context)
+ self[2].translate(context)
+ context.initial = initial_save
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, '(')
+ element.set_text(self, 2, '')
+ element.set_text(self, 3, ')')
+
+ class DeclaratorFunctionOldStyle(Declarator):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DeclaratorFunctionOldStyle',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Declarator.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Declarator.copy(
+ self,
+ DeclaratorFunctionOldStyle if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DeclaratorFunctionOldStyle({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 2
+ self[0].translate(context)
+ initial_save = context.initial
+ context.initial = False
+ self[1].translate(context)
+ context.initial = initial_save
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, '(')
+ element.set_text(self, 2, ')')
+
+ class DeclaratorIdentifier(Declarator):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DeclaratorIdentifier',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Declarator.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Declarator.copy(
+ self,
+ DeclaratorIdentifier if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DeclaratorIdentifier({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ if context.initial:
+ text = element.get_text(self[0], 0)
+ assert text not in context.translate_identifier
+ context.translate_identifier[text] = 'self.{0:s}'.format(text)
+ Declarator.translate(self, context)
+
+ class DeclaratorPointer(Declarator):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DeclaratorPointer',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Declarator.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Declarator.copy(
+ self,
+ DeclaratorPointer if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DeclaratorPointer({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 2
+ self[0].translate(context)
+ self[1].translate(context)
+ element.set_text(self, 0, '*')
+ element.set_text(
+ self,
+ 1,
+ ' ' if len(self[0]) or len(element.get_text(self[0], 0)) else ''
+ )
-class BlockItemList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'BlockItemList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- BlockItemList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.BlockItemList({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- for i in self:
- i.translate(context)
- for i in range(len(self) + 1):
- element.set_text(self, i, '')
-
-class CommaEllipsis(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'CommaEllipsis',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
+ class DefaultTypeName(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
self,
- CommaEllipsis if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.CommaEllipsis({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class CommaEllipsisEmpty(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'CommaEllipsisEmpty',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- CommaEllipsisEmpty if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.CommaEllipsisEmpty({0:s})'.format(', '.join(params))
- # GENERATE END
+ tag = 'AST_DefaultTypeName',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ DefaultTypeName if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DefaultTypeName({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class DesignatorField(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DesignatorField',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ DesignatorField if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DesignatorField({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class DesignatorIndex(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DesignatorIndex',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ DesignatorIndex if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DesignatorIndex({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class DesignatorInitializer(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DesignatorInitializer',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ DesignatorInitializer if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DesignatorInitializer({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class DesignatorInitializerList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DesignatorInitializerList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ DesignatorInitializerList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DesignatorInitializerList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class DesignatorList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_DesignatorList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ DesignatorList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.DesignatorList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class EnumSpecifier(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_EnumSpecifier',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ EnumSpecifier if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.EnumSpecifier({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class Enumerator(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_Enumerator',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ Enumerator if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.Enumerator({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class EnumeratorList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_EnumeratorList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ EnumeratorList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.EnumeratorList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class EqualsInitializerEmpty(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_EqualsInitializerEmpty',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ EqualsInitializerEmpty if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.EqualsInitializerEmpty({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class Expression(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_Expression',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ Expression if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.Expression({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionAdd(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionAdd',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionAdd if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionAdd({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionAddAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionAddAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionAddAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionAddAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionAddressOf(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionAddressOf',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionAddressOf if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionAddressOf({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, '&')
+ element.set_text(self, 1, '')
+
+ class ExpressionAlignOfType(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionAlignOfType',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionAlignOfType if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionAlignOfType({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionArray(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionArray',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionArray if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionArray({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionAsterisk(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionAsterisk',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionAsterisk if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionAsterisk({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionBitwiseAnd(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionBitwiseAnd',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionBitwiseAnd if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionBitwiseAnd({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionBitwiseAndAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionBitwiseAndAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionBitwiseAndAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionBitwiseAndAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionBitwiseNot(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionBitwiseNot',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionBitwiseNot if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionBitwiseNot({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, '~')
+ element.set_text(self, 1, '')
+
+ class ExpressionBitwiseOr(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionBitwiseOr',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionBitwiseOr if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionBitwiseOr({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionBitwiseOrAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionBitwiseOrAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionBitwiseOrAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionBitwiseOrAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionCall(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionCall',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionCall if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionCall({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 2
+ self[0].translate(context)
+ self[1].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, '(')
+ element.set_text(self, 2, ')')
+
+ class ExpressionCast(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionCast',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionCast if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionCast({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 2
+ self[0].translate(context)
+ self[1].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, '(')
+ element.set_text(self, 2, ')')
+
+ class ExpressionCharConstant(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionCharConstant',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionCharConstant if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionCharConstant({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 0
+ element.set_text(
+ self,
+ 0,
+ 'ord({0:s})'.format(element.get_text(self, 0).strip())
+ )
-class Declaration(DeclarationOrStatement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'Declaration',
- attrib = {},
- text = '',
- children = []
- ):
- DeclarationOrStatement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = DeclarationOrStatement.copy(
+ class ExpressionComma(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
self,
- Declaration if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.Declaration({0:s})'.format(', '.join(params))
- # GENERATE END
+ tag = 'AST_ExpressionComma',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionComma if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionComma({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionConditional(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionConditional',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionConditional if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionConditional({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ #xml.etree.ElementTree.dump(self)
+ assert len(self) == 3
+ self[0].translate(context)
+ self[1].translate(context)
+ self[2].translate(context)
+ self[0], self[1] = self[1], self[0]
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, ' if ')
+ element.set_text(self, 2, ' else ')
+ element.set_text(self, 3, '')
+
+ class ExpressionDereference(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionDereference',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionDereference if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionDereference({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, '*')
+ element.set_text(self, 1, '')
+
+ class ExpressionDivide(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionDivide',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionDivide if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionDivide({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionDivideAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionDivideAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionDivideAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionDivideAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionEmpty(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionEmpty',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionEmpty if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionEmpty({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionEqual(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionEqual',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionEqual if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionEqual({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionExclusiveOr(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionExclusiveOr',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionExclusiveOr if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionExclusiveOr({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionExclusiveOrAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionExclusiveOrAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionExclusiveOrAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionExclusiveOrAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionField(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionField',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionField if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionField({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionFieldDereference(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionFieldDereference',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionFieldDereference if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionFieldDereference({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionFloatLiteral(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionFloatLiteral',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionFloatLiteral if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionFloatLiteral({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionFunctionName(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionFunctionName',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionFunctionName if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionFunctionName({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionGreaterThan(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionGreaterThan',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionGreaterThan if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionGreaterThan({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionGreaterThanOrEqual(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionGreaterThanOrEqual',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionGreaterThanOrEqual if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionGreaterThanOrEqual({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionIdentifier(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionIdentifier',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionIdentifier if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionIdentifier({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionIndex(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionIndex',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionIndex if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionIndex({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 2
+ self[0].translate(context)
+ self[1].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, '[')
+ element.set_text(self, 2, ']')
+
+ class ExpressionIntLiteral(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionIntLiteral',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionIntLiteral if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionIntLiteral({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class Identifier(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_Identifier',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ Identifier if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.Identifier({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 0
+ text = element.get_text(self, 0)
+ element.set_text(
+ self,
+ 0,
+ context.translate_identifier.get(text, text)
+ )
-class DeclarationList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DeclarationList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
+ class ExpressionLeftShiftAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- DeclarationList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DeclarationList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class DeclarationSpecifierList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DeclarationSpecifierList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- DeclarationSpecifierList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DeclarationSpecifierList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class Declarator(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'Declarator',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- Declarator if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.Declarator({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class DeclaratorAbstract(Declarator):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DeclaratorAbstract',
- attrib = {},
- text = '',
- children = []
- ):
- Declarator.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Declarator.copy(
- self,
- DeclaratorAbstract if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DeclaratorAbstract({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class DeclaratorArray(Declarator):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DeclaratorArray',
- attrib = {},
- text = '',
- children = []
- ):
- Declarator.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Declarator.copy(
- self,
- DeclaratorArray if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DeclaratorArray({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 3
- self[0].translate(context)
- self[1].translate(context)
- self[2].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, '[')
- element.set_text(
- self,
- 2,
- ' ' if len(self[1]) or len(element.get_text(self[1], 0)) else ''
- )
- element.set_text(self, 3, ']')
-
-class DeclaratorEmpty(Declarator):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DeclaratorEmpty',
- attrib = {},
- text = '',
- children = []
- ):
- Declarator.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Declarator.copy(
- self,
- DeclaratorEmpty if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DeclaratorEmpty({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class DeclaratorFunction(Declarator):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DeclaratorFunction',
- attrib = {},
- text = '',
- children = []
- ):
- Declarator.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Declarator.copy(
- self,
- DeclaratorFunction if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DeclaratorFunction({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 3
- self[0].translate(context)
- initial_save = context.initial
- context.initial = False
- self[1].translate(context)
- self[2].translate(context)
- context.initial = initial_save
- element.set_text(self, 0, '')
- element.set_text(self, 1, '(')
- element.set_text(self, 2, '')
- element.set_text(self, 3, ')')
-
-class DeclaratorFunctionOldStyle(Declarator):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DeclaratorFunctionOldStyle',
- attrib = {},
- text = '',
- children = []
- ):
- Declarator.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Declarator.copy(
- self,
- DeclaratorFunctionOldStyle if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DeclaratorFunctionOldStyle({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 2
- self[0].translate(context)
- initial_save = context.initial
- context.initial = False
- self[1].translate(context)
- context.initial = initial_save
- element.set_text(self, 0, '')
- element.set_text(self, 1, '(')
- element.set_text(self, 2, ')')
-
-class DeclaratorIdentifier(Declarator):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DeclaratorIdentifier',
- attrib = {},
- text = '',
- children = []
- ):
- Declarator.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Declarator.copy(
- self,
- DeclaratorIdentifier if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DeclaratorIdentifier({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- if context.initial:
- text = element.get_text(self[0], 0)
- assert text not in context.translate_identifier
- context.translate_identifier[text] = 'self.{0:s}'.format(text)
- Declarator.translate(self, context)
-
-class DeclaratorPointer(Declarator):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DeclaratorPointer',
- attrib = {},
- text = '',
- children = []
- ):
- Declarator.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Declarator.copy(
- self,
- DeclaratorPointer if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DeclaratorPointer({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 2
- self[0].translate(context)
- self[1].translate(context)
- element.set_text(self, 0, '*')
- element.set_text(
- self,
- 1,
- ' ' if len(self[0]) or len(element.get_text(self[0], 0)) else ''
- )
-
-class DefaultTypeName(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DefaultTypeName',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- DefaultTypeName if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DefaultTypeName({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class DesignatorField(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DesignatorField',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- DesignatorField if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DesignatorField({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class DesignatorIndex(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DesignatorIndex',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- DesignatorIndex if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DesignatorIndex({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class DesignatorInitializer(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DesignatorInitializer',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- DesignatorInitializer if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DesignatorInitializer({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class DesignatorInitializerList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DesignatorInitializerList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- DesignatorInitializerList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DesignatorInitializerList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class DesignatorList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'DesignatorList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- DesignatorList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.DesignatorList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class EnumSpecifier(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'EnumSpecifier',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- EnumSpecifier if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.EnumSpecifier({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class Enumerator(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'Enumerator',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- Enumerator if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.Enumerator({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class EnumeratorList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'EnumeratorList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- EnumeratorList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.EnumeratorList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class EqualsInitializerEmpty(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'EqualsInitializerEmpty',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- EqualsInitializerEmpty if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.EqualsInitializerEmpty({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class Expression(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'Expression',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- Expression if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.Expression({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionAdd(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionAdd',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionAdd if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionAdd({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionAddAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionAddAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionAddAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionAddAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionAddressOf(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionAddressOf',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionAddressOf if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionAddressOf({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, '&')
- element.set_text(self, 1, '')
-
-class ExpressionAlignOfType(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionAlignOfType',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionAlignOfType if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionAlignOfType({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionArray(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionArray',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionArray if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionArray({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionAsterisk(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionAsterisk',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionAsterisk if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionAsterisk({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionBitwiseAnd(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionBitwiseAnd',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionBitwiseAnd if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionBitwiseAnd({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionBitwiseAndAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionBitwiseAndAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionBitwiseAndAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionBitwiseAndAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionBitwiseNot(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionBitwiseNot',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionBitwiseNot if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionBitwiseNot({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, '~')
- element.set_text(self, 1, '')
-
-class ExpressionBitwiseOr(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionBitwiseOr',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionBitwiseOr if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionBitwiseOr({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionBitwiseOrAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionBitwiseOrAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionBitwiseOrAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionBitwiseOrAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionCall(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionCall',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionCall if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionCall({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 2
- self[0].translate(context)
- self[1].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, '(')
- element.set_text(self, 2, ')')
-
-class ExpressionCast(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionCast',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionCast if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionCast({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 2
- self[0].translate(context)
- self[1].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, '(')
- element.set_text(self, 2, ')')
-
-class ExpressionCharConstant(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionCharConstant',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionCharConstant if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionCharConstant({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 0
- element.set_text(
- self,
- 0,
- 'ord({0:s})'.format(element.get_text(self, 0).strip())
- )
-
-class ExpressionComma(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionComma',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionComma if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionComma({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionConditional(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionConditional',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionConditional if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionConditional({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- #xml.etree.ElementTree.dump(self)
- assert len(self) == 3
- self[0].translate(context)
- self[1].translate(context)
- self[2].translate(context)
- self[0], self[1] = self[1], self[0]
- element.set_text(self, 0, '')
- element.set_text(self, 1, ' if ')
- element.set_text(self, 2, ' else ')
- element.set_text(self, 3, '')
-
-class ExpressionDereference(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionDereference',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionDereference if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionDereference({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, '*')
- element.set_text(self, 1, '')
-
-class ExpressionDivide(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionDivide',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionDivide if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionDivide({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionDivideAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionDivideAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionDivideAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionDivideAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionEmpty(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionEmpty',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionEmpty if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionEmpty({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionEqual(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionEqual',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionEqual if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionEqual({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionExclusiveOr(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionExclusiveOr',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionExclusiveOr if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionExclusiveOr({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionExclusiveOrAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionExclusiveOrAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionExclusiveOrAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionExclusiveOrAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionField(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionField',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionField if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionField({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionFieldDereference(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionFieldDereference',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionFieldDereference if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionFieldDereference({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionFloatLiteral(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionFloatLiteral',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionFloatLiteral if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionFloatLiteral({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionFunctionName(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionFunctionName',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionFunctionName if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionFunctionName({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionGreaterThan(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionGreaterThan',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionGreaterThan if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionGreaterThan({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionGreaterThanOrEqual(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionGreaterThanOrEqual',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionGreaterThanOrEqual if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionGreaterThanOrEqual({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionIdentifier(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionIdentifier',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionIdentifier if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionIdentifier({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionIndex(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionIndex',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionIndex if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionIndex({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 2
- self[0].translate(context)
- self[1].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, '[')
- element.set_text(self, 2, ']')
-
-class ExpressionIntLiteral(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionIntLiteral',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionIntLiteral if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionIntLiteral({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class Identifier(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'Identifier',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- Identifier if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.Identifier({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 0
- text = element.get_text(self, 0)
- element.set_text(
- self,
- 0,
- context.translate_identifier.get(text, text)
- )
-
-class ExpressionLeftShiftAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionLeftShiftAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionLeftShiftAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionLeftShiftAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionLessThan(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionLessThan',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionLessThan if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionLessThan({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionLessThanOrEqual(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionLessThanOrEqual',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionLessThanOrEqual if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionLessThanOrEqual({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionLogicalAnd(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionLogicalAnd',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionLogicalAnd if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionLogicalAnd({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 2
- self[0].translate(context)
- self[1].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, ' and ')
- element.set_text(self, 2, '')
-
-class ExpressionLogicalNot(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionLogicalNot',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionLogicalNot if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionLogicalNot({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, 'not ')
- element.set_text(self, 1, '')
-
-class ExpressionLogicalOr(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionLogicalOr',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionLogicalOr if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionLogicalOr({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 2
- self[0].translate(context)
- self[1].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, ' or ')
- element.set_text(self, 2, '')
-
-class ExpressionMinus(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionMinus',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionMinus if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionMinus({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, '-')
- element.set_text(self, 1, '')
-
-class ExpressionModulo(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionModulo',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionModulo if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionModulo({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionModuloAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionModuloAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionModuloAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionModuloAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionMultiply(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionMultiply',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionMultiply if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionMultiply({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionMultiplyAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionMultiplyAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionMultiplyAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionMultiplyAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionNotEqual(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionNotEqual',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionNotEqual if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionNotEqual({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionPlus(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionPlus',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionPlus if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionPlus({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, '+')
- element.set_text(self, 1, '')
-
-class ExpressionPostDecrement(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionPostDecrement',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionPostDecrement if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionPostDecrement({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, ' -= 1')
-
-class ExpressionPostIncrement(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionPostIncrement',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionPostIncrement if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionPostIncrement({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, ' += 1')
-
-class ExpressionPreDecrement(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionPreDecrement',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionPreDecrement if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionPreDecrement({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, ' -= 1')
-
-class ExpressionPreIncrement(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionPreIncrement',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionPreIncrement if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionPreIncrement({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, ' += 1')
-
-class ExpressionRightShiftAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionRightShiftAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionRightShiftAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionRightShiftAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionShiftLeft(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionShiftLeft',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionShiftLeft if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionShiftLeft({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionShiftRight(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionShiftRight',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionShiftRight if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionShiftRight({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionSizeOfExpression(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionSizeOfExpression',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionSizeOfExpression if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionSizeOfExpression({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionSizeOfType(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionSizeOfType',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionSizeOfType if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionSizeOfType({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionStringLiteral(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionStringLiteral',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionStringLiteral if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionStringLiteral({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- element.set_text(self, 0, '"')
- for i in range(1, len(self)):
- element.set_text(self, i, '')
- element.set_text(self, len(self), '"')
-
-class ExpressionSubtract(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionSubtract',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionSubtract if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionSubtract({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ExpressionSubtractAssignment(Expression):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ExpressionSubtractAssignment',
- attrib = {},
- text = '',
- children = []
- ):
- Expression.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Expression.copy(
- self,
- ExpressionSubtractAssignment if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ExpressionSubtractAssignment({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class FunctionDefinition(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'FunctionDefinition',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- FunctionDefinition if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.FunctionDefinition({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class FunctionSpecifier(Element):
- # GENERATE ELEMENT(int n) BEGIN
- def __init__(
- self,
- tag = 'FunctionSpecifier',
- attrib = {},
- text = '',
- children = [],
- n = -1
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.n = (
- element.deserialize_int(n)
- if isinstance(n, str) else
- n
- )
- def serialize(self, ref_list):
- Element.serialize(self, ref_list)
- self.set('n', element.serialize_int(self.n))
- def deserialize(self, ref_list):
- Element.deserialize(self, ref_list)
- self.n = element.deserialize_int(self.get('n', '-1'))
- def copy(self, factory = None):
- result = Element.copy(
- self,
- FunctionSpecifier if factory is None else factory
- )
- result.n = self.n
- return result
- def repr_serialize(self, params):
- Element.repr_serialize(self, params)
- if self.n != -1:
- params.append(
- 'n = {0:s}'.format(repr(self.n))
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.FunctionSpecifier({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class GenericAssociation(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'GenericAssociation',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- GenericAssociation if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.GenericAssociation({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class GenericAssociationList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'GenericAssociationList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- GenericAssociationList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.GenericAssociationList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class GenericSelection(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'GenericSelection',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- GenericSelection if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.GenericSelection({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class IdentifierEmpty(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'IdentifierEmpty',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- IdentifierEmpty if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.IdentifierEmpty({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class IdentifierList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'IdentifierList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- IdentifierList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.IdentifierList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class InitDeclarator(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'InitDeclarator',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- InitDeclarator if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.InitDeclarator({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class InitDeclaratorList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'InitDeclaratorList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- InitDeclaratorList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.InitDeclaratorList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ParameterDeclaration(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ParameterDeclaration',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- ParameterDeclaration if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ParameterDeclaration({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class ParameterDeclarationList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'ParameterDeclarationList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- ParameterDeclarationList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.ParameterDeclarationList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class SpecifierQualifierList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'SpecifierQualifierList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- SpecifierQualifierList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.SpecifierQualifierList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class Statement(DeclarationOrStatement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'Statement',
- attrib = {},
- text = '',
- children = []
- ):
- DeclarationOrStatement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = DeclarationOrStatement.copy(
- self,
- Statement if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.Statement({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StatementBlock(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementBlock',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementBlock if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementBlock({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 1
- self[0].translate(context)
- element.set_text(self, 0, '')
- element.set_text(self, 1, '')
-
-class StatementBreak(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementBreak',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementBreak if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementBreak({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StatementCase(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementCase',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementCase if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementCase({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StatementContinue(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementContinue',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementContinue if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementContinue({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 0
- if isinstance(enclosing_loop, StatementDoWhile):
- self.append(enclosing_loop[1].copy())
- indent_save = context.indent
- context.indent += ' '
- self[0].translate(context)
- context.indent = indent_save
- element.set_text(self, 0, '{0:s}if '.format(context.indent))
- element.set_text(
- self,
- 0,
- ':\n{0:s} continue\n{1:s}break\n'.format(
- context.indent,
- context.indent
- )
- )
- elif isinstance(enclosing_loop, StatementFor):
- self.append(enclosing_loop[2].copy())
- indent_save = context.indent
- context.indent += ' '
- self[0].translate(context)
- context.indent = indent_save
- element.set_text(self, 0, '')
- element.set_text(self, 1, '{0:s}continue\n'.format(context.indent))
- else:
- element.set_text(self, 0, '{0:s}continue\n'.format(context.indent))
-
-class StatementDefault(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementDefault',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementDefault if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementDefault({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StatementDoWhile(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementDoWhile',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementDoWhile if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementDoWhile({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 2
- indent_save = context.indent
- context.indent += ' '
- enclosing_loop_save = context.enclosing_loop
- context.enclosing_loop = self
- self[0].translate(context)
- context.enclosing_loop = enclosing_loop_save
- self[1].translate(context)
- context.indent = indent_save
- element.set_text(self, 0, '{0:s}while True:\n'.format(context.indent))
- element.set_text(self, 1, '{0:s} if not ('.format(context.indent))
- element.set_text(self, 2, '):\n{0:s} break\n'.format(context.indent))
-
-class StatementExpression(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementExpression',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementExpression if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementExpression({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StatementFor(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementFor',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementFor if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementFor({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StatementGoto(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementGoto',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementGoto if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementGoto({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StatementIf(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementIf',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementIf if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementIf({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 2
- indent_save = context.indent
- context.indent += ' '
- self[0].translate(context)
- self[1].translate(context)
- context.indent = indent_save
- element.set_text(self, 0, '{0:s}if '.format(context.indent))
- element.set_text(self, 1, ':\n')
- element.set_text(self, 2, '')
-
-class StatementIfElse(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementIfElse',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementIfElse if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementIfElse({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 3
- indent_save = context.indent
- context.indent += ' '
- self[0].translate(context)
- self[1].translate(context)
- self[2].translate(context)
- context.indent = indent_save
- element.set_text(self, 0, '{0:s}if '.format(context.indent))
- element.set_text(self, 1, ':\n')
- element.set_text(self, 2, '{0:s}else:\n'.format(context.indent))
- element.set_text(self, 3, '')
-
-class StatementLabel(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementLabel',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementLabel if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementLabel({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StatementReturn(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementReturn',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementReturn if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementReturn({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StatementSwitch(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementSwitch',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementSwitch if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementSwitch({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StatementWhile(Statement):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StatementWhile',
- attrib = {},
- text = '',
- children = []
- ):
- Statement.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Statement.copy(
- self,
- StatementWhile if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StatementWhile({0:s})'.format(', '.join(params))
- # GENERATE END
- def translate(self, context):
- assert len(self) == 2
- indent_save = context.indent
- context.indent += ' '
- self[0].translate(context)
- enclosing_loop_save = context.enclosing_loop
- context.enclosing_loop = self
- self[1].translate(context)
- context.enclosing_loop = enclosing_loop_save
- context.indent = indent_save
- element.set_text(self, 0, '{0:s}while '.format(context.indent))
- element.set_text(self, 1, ':\n')
- element.set_text(self, 2, '')
-
-class StaticAssertDeclaration(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StaticAssertDeclaration',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- StaticAssertDeclaration if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StaticAssertDeclaration({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StorageClassSpecifier(Element):
- # GENERATE ELEMENT(int n) BEGIN
- def __init__(
- self,
- tag = 'StorageClassSpecifier',
- attrib = {},
- text = '',
- children = [],
- n = -1
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.n = (
- element.deserialize_int(n)
- if isinstance(n, str) else
- n
- )
- def serialize(self, ref_list):
- Element.serialize(self, ref_list)
- self.set('n', element.serialize_int(self.n))
- def deserialize(self, ref_list):
- Element.deserialize(self, ref_list)
- self.n = element.deserialize_int(self.get('n', '-1'))
- def copy(self, factory = None):
- result = Element.copy(
- self,
- StorageClassSpecifier if factory is None else factory
- )
- result.n = self.n
- return result
- def repr_serialize(self, params):
- Element.repr_serialize(self, params)
- if self.n != -1:
- params.append(
- 'n = {0:s}'.format(repr(self.n))
+ tag = 'AST_ExpressionLeftShiftAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionLeftShiftAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionLeftShiftAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionLessThan(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionLessThan',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionLessThan if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionLessThan({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionLessThanOrEqual(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionLessThanOrEqual',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionLessThanOrEqual if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionLessThanOrEqual({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionLogicalAnd(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionLogicalAnd',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionLogicalAnd if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionLogicalAnd({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 2
+ self[0].translate(context)
+ self[1].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, ' and ')
+ element.set_text(self, 2, '')
+
+ class ExpressionLogicalNot(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionLogicalNot',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionLogicalNot if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionLogicalNot({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, 'not ')
+ element.set_text(self, 1, '')
+
+ class ExpressionLogicalOr(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionLogicalOr',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionLogicalOr if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionLogicalOr({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 2
+ self[0].translate(context)
+ self[1].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, ' or ')
+ element.set_text(self, 2, '')
+
+ class ExpressionMinus(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionMinus',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionMinus if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionMinus({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, '-')
+ element.set_text(self, 1, '')
+
+ class ExpressionModulo(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionModulo',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionModulo if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionModulo({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionModuloAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionModuloAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionModuloAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionModuloAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionMultiply(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionMultiply',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionMultiply if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionMultiply({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionMultiplyAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionMultiplyAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionMultiplyAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionMultiplyAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionNotEqual(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionNotEqual',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionNotEqual if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionNotEqual({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionPlus(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionPlus',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionPlus if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionPlus({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, '+')
+ element.set_text(self, 1, '')
+
+ class ExpressionPostDecrement(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionPostDecrement',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionPostDecrement if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionPostDecrement({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, ' -= 1')
+
+ class ExpressionPostIncrement(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionPostIncrement',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionPostIncrement if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionPostIncrement({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, ' += 1')
+
+ class ExpressionPreDecrement(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionPreDecrement',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionPreDecrement if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionPreDecrement({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, ' -= 1')
+
+ class ExpressionPreIncrement(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionPreIncrement',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionPreIncrement if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionPreIncrement({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, ' += 1')
+
+ class ExpressionRightShiftAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionRightShiftAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionRightShiftAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionRightShiftAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionShiftLeft(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionShiftLeft',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionShiftLeft if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionShiftLeft({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionShiftRight(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionShiftRight',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionShiftRight if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionShiftRight({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionSizeOfExpression(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionSizeOfExpression',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionSizeOfExpression if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionSizeOfExpression({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionSizeOfType(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionSizeOfType',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionSizeOfType if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionSizeOfType({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionStringLiteral(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionStringLiteral',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionStringLiteral if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionStringLiteral({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ element.set_text(self, 0, '"')
+ for i in range(1, len(self)):
+ element.set_text(self, i, '')
+ element.set_text(self, len(self), '"')
+
+ class ExpressionSubtract(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionSubtract',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionSubtract if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionSubtract({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ExpressionSubtractAssignment(Expression):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ExpressionSubtractAssignment',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Expression.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Expression.copy(
+ self,
+ ExpressionSubtractAssignment if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ExpressionSubtractAssignment({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class FunctionDefinition(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_FunctionDefinition',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ FunctionDefinition if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.FunctionDefinition({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class FunctionSpecifier(Element):
+ # GENERATE ELEMENT(int n) BEGIN
+ def __init__(
+ self,
+ tag = 'AST_FunctionSpecifier',
+ attrib = {},
+ text = '',
+ children = [],
+ n = -1
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ self.n = (
+ element.deserialize_int(n)
+ if isinstance(n, str) else
+ n
+ )
+ def serialize(self, ref_list):
+ AST.Element.serialize(self, ref_list)
+ self.set('n', element.serialize_int(self.n))
+ def deserialize(self, ref_list):
+ AST.Element.deserialize(self, ref_list)
+ self.n = element.deserialize_int(self.get('n', '-1'))
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ FunctionSpecifier if factory is None else factory
+ )
+ result.n = self.n
+ return result
+ def repr_serialize(self, params):
+ AST.Element.repr_serialize(self, params)
+ if self.n != -1:
+ params.append(
+ 'n = {0:s}'.format(repr(self.n))
+ )
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.FunctionSpecifier({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class GenericAssociation(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_GenericAssociation',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ GenericAssociation if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.GenericAssociation({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class GenericAssociationList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_GenericAssociationList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ GenericAssociationList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.GenericAssociationList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class GenericSelection(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_GenericSelection',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ GenericSelection if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.GenericSelection({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class IdentifierEmpty(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_IdentifierEmpty',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ IdentifierEmpty if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.IdentifierEmpty({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class IdentifierList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_IdentifierList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ IdentifierList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.IdentifierList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class InitDeclarator(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_InitDeclarator',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ InitDeclarator if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.InitDeclarator({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class InitDeclaratorList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_InitDeclaratorList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ InitDeclaratorList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.InitDeclaratorList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ParameterDeclaration(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ParameterDeclaration',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ ParameterDeclaration if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ParameterDeclaration({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class ParameterDeclarationList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_ParameterDeclarationList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ ParameterDeclarationList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.ParameterDeclarationList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class SpecifierQualifierList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_SpecifierQualifierList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ SpecifierQualifierList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.SpecifierQualifierList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class Statement(DeclarationOrStatement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_Statement',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.DeclarationOrStatement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.DeclarationOrStatement.copy(
+ self,
+ Statement if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.Statement({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StatementBlock(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementBlock',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementBlock if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementBlock({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 1
+ self[0].translate(context)
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, '')
+
+ class StatementBreak(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementBreak',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementBreak if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementBreak({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StatementCase(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementCase',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementCase if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementCase({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StatementContinue(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementContinue',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementContinue if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementContinue({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 0
+ if isinstance(enclosing_loop, StatementDoWhile):
+ self.append(enclosing_loop[1].copy())
+ indent_save = context.indent
+ context.indent += ' '
+ self[0].translate(context)
+ context.indent = indent_save
+ element.set_text(self, 0, '{0:s}if '.format(context.indent))
+ element.set_text(
+ self,
+ 0,
+ ':\n{0:s} continue\n{1:s}break\n'.format(
+ context.indent,
+ context.indent
+ )
+ )
+ elif isinstance(enclosing_loop, StatementFor):
+ self.append(enclosing_loop[2].copy())
+ indent_save = context.indent
+ context.indent += ' '
+ self[0].translate(context)
+ context.indent = indent_save
+ element.set_text(self, 0, '')
+ element.set_text(self, 1, '{0:s}continue\n'.format(context.indent))
+ else:
+ element.set_text(self, 0, '{0:s}continue\n'.format(context.indent))
+
+ class StatementDefault(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementDefault',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementDefault if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementDefault({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StatementDoWhile(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementDoWhile',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementDoWhile if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementDoWhile({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 2
+ indent_save = context.indent
+ context.indent += ' '
+ enclosing_loop_save = context.enclosing_loop
+ context.enclosing_loop = self
+ self[0].translate(context)
+ context.enclosing_loop = enclosing_loop_save
+ self[1].translate(context)
+ context.indent = indent_save
+ element.set_text(self, 0, '{0:s}while True:\n'.format(context.indent))
+ element.set_text(self, 1, '{0:s} if not ('.format(context.indent))
+ element.set_text(self, 2, '):\n{0:s} break\n'.format(context.indent))
+
+ class StatementExpression(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementExpression',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementExpression if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementExpression({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StatementFor(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementFor',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementFor if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementFor({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StatementGoto(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementGoto',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementGoto if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementGoto({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StatementIf(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementIf',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementIf if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementIf({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 2
+ indent_save = context.indent
+ context.indent += ' '
+ self[0].translate(context)
+ self[1].translate(context)
+ context.indent = indent_save
+ element.set_text(self, 0, '{0:s}if '.format(context.indent))
+ element.set_text(self, 1, ':\n')
+ element.set_text(self, 2, '')
+
+ class StatementIfElse(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementIfElse',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementIfElse if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementIfElse({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 3
+ indent_save = context.indent
+ context.indent += ' '
+ self[0].translate(context)
+ self[1].translate(context)
+ self[2].translate(context)
+ context.indent = indent_save
+ element.set_text(self, 0, '{0:s}if '.format(context.indent))
+ element.set_text(self, 1, ':\n')
+ element.set_text(self, 2, '{0:s}else:\n'.format(context.indent))
+ element.set_text(self, 3, '')
+
+ class StatementLabel(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementLabel',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementLabel if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementLabel({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StatementReturn(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementReturn',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementReturn if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementReturn({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StatementSwitch(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementSwitch',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementSwitch if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementSwitch({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StatementWhile(Statement):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StatementWhile',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Statement.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Statement.copy(
+ self,
+ StatementWhile if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StatementWhile({0:s})'.format(', '.join(params))
+ # GENERATE END
+ def translate(self, context):
+ assert len(self) == 2
+ indent_save = context.indent
+ context.indent += ' '
+ self[0].translate(context)
+ enclosing_loop_save = context.enclosing_loop
+ context.enclosing_loop = self
+ self[1].translate(context)
+ context.enclosing_loop = enclosing_loop_save
+ context.indent = indent_save
+ element.set_text(self, 0, '{0:s}while '.format(context.indent))
+ element.set_text(self, 1, ':\n')
+ element.set_text(self, 2, '')
+
+ class StaticAssertDeclaration(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StaticAssertDeclaration',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ StaticAssertDeclaration if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StaticAssertDeclaration({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StorageClassSpecifier(Element):
+ # GENERATE ELEMENT(int n) BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StorageClassSpecifier',
+ attrib = {},
+ text = '',
+ children = [],
+ n = -1
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ self.n = (
+ element.deserialize_int(n)
+ if isinstance(n, str) else
+ n
+ )
+ def serialize(self, ref_list):
+ AST.Element.serialize(self, ref_list)
+ self.set('n', element.serialize_int(self.n))
+ def deserialize(self, ref_list):
+ AST.Element.deserialize(self, ref_list)
+ self.n = element.deserialize_int(self.get('n', '-1'))
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ StorageClassSpecifier if factory is None else factory
+ )
+ result.n = self.n
+ return result
+ def repr_serialize(self, params):
+ AST.Element.repr_serialize(self, params)
+ if self.n != -1:
+ params.append(
+ 'n = {0:s}'.format(repr(self.n))
+ )
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StorageClassSpecifier({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StructDeclaration(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StructDeclaration',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ StructDeclaration if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StructDeclaration({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StructDeclarationList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StructDeclarationList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ StructDeclarationList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StructDeclarationList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StructDeclarator(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StructDeclarator',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ StructDeclarator if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StructDeclarator({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StructDeclaratorList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StructDeclaratorList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
)
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StorageClassSpecifier({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StructDeclaration(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StructDeclaration',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- StructDeclaration if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StructDeclaration({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StructDeclarationList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StructDeclarationList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- StructDeclarationList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StructDeclarationList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StructDeclarator(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StructDeclarator',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- StructDeclarator if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StructDeclarator({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StructDeclaratorList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StructDeclaratorList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- StructDeclaratorList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StructDeclaratorList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class StructSpecifier(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'StructSpecifier',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- StructSpecifier if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.StructSpecifier({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class TypeName(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'TypeName',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- TypeName if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.TypeName({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class TypeQualifier(Element):
- # GENERATE ELEMENT(int n) BEGIN
- def __init__(
- self,
- tag = 'TypeQualifier',
- attrib = {},
- text = '',
- children = [],
- n = -1
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.n = (
- element.deserialize_int(n)
- if isinstance(n, str) else
- n
- )
- def serialize(self, ref_list):
- Element.serialize(self, ref_list)
- self.set('n', element.serialize_int(self.n))
- def deserialize(self, ref_list):
- Element.deserialize(self, ref_list)
- self.n = element.deserialize_int(self.get('n', '-1'))
- def copy(self, factory = None):
- result = Element.copy(
- self,
- TypeQualifier if factory is None else factory
- )
- result.n = self.n
- return result
- def repr_serialize(self, params):
- Element.repr_serialize(self, params)
- if self.n != -1:
- params.append(
- 'n = {0:s}'.format(repr(self.n))
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ StructDeclaratorList if factory is None else factory
)
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.TypeQualifier({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class TypeQualifierList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'TypeQualifierList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- TypeQualifierList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.TypeQualifierList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class TypeQualifierOrStaticList(Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'TypeQualifierOrStaticList',
- attrib = {},
- text = '',
- children = []
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Element.copy(
- self,
- TypeQualifierOrStaticList if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.TypeQualifierOrStaticList({0:s})'.format(', '.join(params))
- # GENERATE END
-
-class TypeSpecifier(Element):
- # GENERATE ELEMENT(int n) BEGIN
- def __init__(
- self,
- tag = 'TypeSpecifier',
- attrib = {},
- text = '',
- children = [],
- n = -1
- ):
- Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.n = (
- element.deserialize_int(n)
- if isinstance(n, str) else
- n
- )
- def serialize(self, ref_list):
- Element.serialize(self, ref_list)
- self.set('n', element.serialize_int(self.n))
- def deserialize(self, ref_list):
- Element.deserialize(self, ref_list)
- self.n = element.deserialize_int(self.get('n', '-1'))
- def copy(self, factory = None):
- result = Element.copy(
- self,
- TypeSpecifier if factory is None else factory
- )
- result.n = self.n
- return result
- def repr_serialize(self, params):
- Element.repr_serialize(self, params)
- if self.n != -1:
- params.append(
- 'n = {0:s}'.format(repr(self.n))
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StructDeclaratorList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class StructSpecifier(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_StructSpecifier',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
)
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.TypeSpecifier({0:s})'.format(', '.join(params))
- # GENERATE END
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ StructSpecifier if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.StructSpecifier({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class TypeName(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_TypeName',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ TypeName if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.TypeName({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class TypeQualifier(Element):
+ # GENERATE ELEMENT(int n) BEGIN
+ def __init__(
+ self,
+ tag = 'AST_TypeQualifier',
+ attrib = {},
+ text = '',
+ children = [],
+ n = -1
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ self.n = (
+ element.deserialize_int(n)
+ if isinstance(n, str) else
+ n
+ )
+ def serialize(self, ref_list):
+ AST.Element.serialize(self, ref_list)
+ self.set('n', element.serialize_int(self.n))
+ def deserialize(self, ref_list):
+ AST.Element.deserialize(self, ref_list)
+ self.n = element.deserialize_int(self.get('n', '-1'))
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ TypeQualifier if factory is None else factory
+ )
+ result.n = self.n
+ return result
+ def repr_serialize(self, params):
+ AST.Element.repr_serialize(self, params)
+ if self.n != -1:
+ params.append(
+ 'n = {0:s}'.format(repr(self.n))
+ )
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.TypeQualifier({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class TypeQualifierList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_TypeQualifierList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ TypeQualifierList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.TypeQualifierList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class TypeQualifierOrStaticList(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_TypeQualifierOrStaticList',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ TypeQualifierOrStaticList if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.TypeQualifierOrStaticList({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class TypeSpecifier(Element):
+ # GENERATE ELEMENT(int n) BEGIN
+ def __init__(
+ self,
+ tag = 'AST_TypeSpecifier',
+ attrib = {},
+ text = '',
+ children = [],
+ n = -1
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ self.n = (
+ element.deserialize_int(n)
+ if isinstance(n, str) else
+ n
+ )
+ def serialize(self, ref_list):
+ AST.Element.serialize(self, ref_list)
+ self.set('n', element.serialize_int(self.n))
+ def deserialize(self, ref_list):
+ AST.Element.deserialize(self, ref_list)
+ self.n = element.deserialize_int(self.get('n', '-1'))
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ TypeSpecifier if factory is None else factory
+ )
+ result.n = self.n
+ return result
+ def repr_serialize(self, params):
+ AST.Element.repr_serialize(self, params)
+ if self.n != -1:
+ params.append(
+ 'n = {0:s}'.format(repr(self.n))
+ )
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.TypeSpecifier({0:s})'.format(', '.join(params))
+ # GENERATE END
+
+ class UnionSpecifier(Element):
+ # GENERATE ELEMENT() BEGIN
+ def __init__(
+ self,
+ tag = 'AST_UnionSpecifier',
+ attrib = {},
+ text = '',
+ children = []
+ ):
+ AST.Element.__init__(
+ self,
+ tag,
+ attrib,
+ text,
+ children
+ )
+ def copy(self, factory = None):
+ result = AST.Element.copy(
+ self,
+ UnionSpecifier if factory is None else factory
+ )
+ return result
+ def __repr__(self):
+ params = []
+ self.repr_serialize(params)
+ return 'ast.AST.UnionSpecifier({0:s})'.format(', '.join(params))
+ # GENERATE END
-class UnionSpecifier(Element):
# GENERATE ELEMENT() BEGIN
def __init__(
self,
- tag = 'UnionSpecifier',
+ tag = 'AST',
attrib = {},
text = '',
children = []
):
- Element.__init__(
+ element.Element.__init__(
self,
tag,
attrib,
children
)
def copy(self, factory = None):
- result = Element.copy(
+ result = element.Element.copy(
self,
- UnionSpecifier if factory is None else factory
+ AST if factory is None else factory
)
return result
def __repr__(self):
params = []
self.repr_serialize(params)
- return 'ast.UnionSpecifier({0:s})'.format(', '.join(params))
+ return 'ast.AST({0:s})'.format(', '.join(params))
# GENERATE END
# GENERATE FACTORY(element.Element) BEGIN
tag_to_class = {
- 'Element': Element,
- 'DeclarationOrStatement': DeclarationOrStatement,
- 'AlignAsExpression': AlignAsExpression,
- 'AlignAsType': AlignAsType,
- 'ArgumentExpressionList': ArgumentExpressionList,
- 'BlockItemList': BlockItemList,
- 'CommaEllipsis': CommaEllipsis,
- 'CommaEllipsisEmpty': CommaEllipsisEmpty,
- 'Declaration': Declaration,
- 'DeclarationList': DeclarationList,
- 'DeclarationSpecifierList': DeclarationSpecifierList,
- 'Declarator': Declarator,
- 'DeclaratorAbstract': DeclaratorAbstract,
- 'DeclaratorArray': DeclaratorArray,
- 'DeclaratorEmpty': DeclaratorEmpty,
- 'DeclaratorFunction': DeclaratorFunction,
- 'DeclaratorFunctionOldStyle': DeclaratorFunctionOldStyle,
- 'DeclaratorIdentifier': DeclaratorIdentifier,
- 'DeclaratorPointer': DeclaratorPointer,
- 'DefaultTypeName': DefaultTypeName,
- 'DesignatorField': DesignatorField,
- 'DesignatorIndex': DesignatorIndex,
- 'DesignatorInitializer': DesignatorInitializer,
- 'DesignatorInitializerList': DesignatorInitializerList,
- 'DesignatorList': DesignatorList,
- 'EnumSpecifier': EnumSpecifier,
- 'Enumerator': Enumerator,
- 'EnumeratorList': EnumeratorList,
- 'EqualsInitializerEmpty': EqualsInitializerEmpty,
- 'Expression': Expression,
- 'ExpressionAdd': ExpressionAdd,
- 'ExpressionAddAssignment': ExpressionAddAssignment,
- 'ExpressionAddressOf': ExpressionAddressOf,
- 'ExpressionAlignOfType': ExpressionAlignOfType,
- 'ExpressionArray': ExpressionArray,
- 'ExpressionAssignment': ExpressionAssignment,
- 'ExpressionAsterisk': ExpressionAsterisk,
- 'ExpressionBitwiseAnd': ExpressionBitwiseAnd,
- 'ExpressionBitwiseAndAssignment': ExpressionBitwiseAndAssignment,
- 'ExpressionBitwiseNot': ExpressionBitwiseNot,
- 'ExpressionBitwiseOr': ExpressionBitwiseOr,
- 'ExpressionBitwiseOrAssignment': ExpressionBitwiseOrAssignment,
- 'ExpressionCall': ExpressionCall,
- 'ExpressionCast': ExpressionCast,
- 'ExpressionCharConstant': ExpressionCharConstant,
- 'ExpressionComma': ExpressionComma,
- 'ExpressionConditional': ExpressionConditional,
- 'ExpressionDereference': ExpressionDereference,
- 'ExpressionDivide': ExpressionDivide,
- 'ExpressionDivideAssignment': ExpressionDivideAssignment,
- 'ExpressionEmpty': ExpressionEmpty,
- 'ExpressionEqual': ExpressionEqual,
- 'ExpressionExclusiveOr': ExpressionExclusiveOr,
- 'ExpressionExclusiveOrAssignment': ExpressionExclusiveOrAssignment,
- 'ExpressionField': ExpressionField,
- 'ExpressionFieldDereference': ExpressionFieldDereference,
- 'ExpressionFloatLiteral': ExpressionFloatLiteral,
- 'ExpressionFunctionName': ExpressionFunctionName,
- 'ExpressionGreaterThan': ExpressionGreaterThan,
- 'ExpressionGreaterThanOrEqual': ExpressionGreaterThanOrEqual,
- 'ExpressionIdentifier': ExpressionIdentifier,
- 'ExpressionIndex': ExpressionIndex,
- 'ExpressionIntLiteral': ExpressionIntLiteral,
- 'Identifier': Identifier,
- 'ExpressionLeftShiftAssignment': ExpressionLeftShiftAssignment,
- 'ExpressionLessThan': ExpressionLessThan,
- 'ExpressionLessThanOrEqual': ExpressionLessThanOrEqual,
- 'ExpressionLogicalAnd': ExpressionLogicalAnd,
- 'ExpressionLogicalNot': ExpressionLogicalNot,
- 'ExpressionLogicalOr': ExpressionLogicalOr,
- 'ExpressionMinus': ExpressionMinus,
- 'ExpressionModulo': ExpressionModulo,
- 'ExpressionModuloAssignment': ExpressionModuloAssignment,
- 'ExpressionMultiply': ExpressionMultiply,
- 'ExpressionMultiplyAssignment': ExpressionMultiplyAssignment,
- 'ExpressionNotEqual': ExpressionNotEqual,
- 'ExpressionPlus': ExpressionPlus,
- 'ExpressionPostDecrement': ExpressionPostDecrement,
- 'ExpressionPostIncrement': ExpressionPostIncrement,
- 'ExpressionPreDecrement': ExpressionPreDecrement,
- 'ExpressionPreIncrement': ExpressionPreIncrement,
- 'ExpressionRightShiftAssignment': ExpressionRightShiftAssignment,
- 'ExpressionShiftLeft': ExpressionShiftLeft,
- 'ExpressionShiftRight': ExpressionShiftRight,
- 'ExpressionSizeOfExpression': ExpressionSizeOfExpression,
- 'ExpressionSizeOfType': ExpressionSizeOfType,
- 'ExpressionStringLiteral': ExpressionStringLiteral,
- 'ExpressionSubtract': ExpressionSubtract,
- 'ExpressionSubtractAssignment': ExpressionSubtractAssignment,
- 'FunctionDefinition': FunctionDefinition,
- 'FunctionSpecifier': FunctionSpecifier,
- 'GenericAssociation': GenericAssociation,
- 'GenericAssociationList': GenericAssociationList,
- 'GenericSelection': GenericSelection,
- 'IdentifierEmpty': IdentifierEmpty,
- 'IdentifierList': IdentifierList,
- 'InitDeclarator': InitDeclarator,
- 'InitDeclaratorList': InitDeclaratorList,
- 'ParameterDeclaration': ParameterDeclaration,
- 'ParameterDeclarationList': ParameterDeclarationList,
- 'SpecifierQualifierList': SpecifierQualifierList,
- 'Statement': Statement,
- 'StatementBlock': StatementBlock,
- 'StatementBreak': StatementBreak,
- 'StatementCase': StatementCase,
- 'StatementContinue': StatementContinue,
- 'StatementDefault': StatementDefault,
- 'StatementDoWhile': StatementDoWhile,
- 'StatementExpression': StatementExpression,
- 'StatementFor': StatementFor,
- 'StatementGoto': StatementGoto,
- 'StatementIf': StatementIf,
- 'StatementIfElse': StatementIfElse,
- 'StatementLabel': StatementLabel,
- 'StatementReturn': StatementReturn,
- 'StatementSwitch': StatementSwitch,
- 'StatementWhile': StatementWhile,
- 'StaticAssertDeclaration': StaticAssertDeclaration,
- 'StorageClassSpecifier': StorageClassSpecifier,
- 'StructDeclaration': StructDeclaration,
- 'StructDeclarationList': StructDeclarationList,
- 'StructDeclarator': StructDeclarator,
- 'StructDeclaratorList': StructDeclaratorList,
- 'StructSpecifier': StructSpecifier,
- 'TypeName': TypeName,
- 'TypeQualifier': TypeQualifier,
- 'TypeQualifierList': TypeQualifierList,
- 'TypeQualifierOrStaticList': TypeQualifierOrStaticList,
- 'TypeSpecifier': TypeSpecifier,
- 'UnionSpecifier': UnionSpecifier
+ 'AST': AST,
+ 'AST_Element': AST.Element,
+ 'AST_DeclarationOrStatement': AST.DeclarationOrStatement,
+ 'AST_AlignAsExpression': AST.AlignAsExpression,
+ 'AST_AlignAsType': AST.AlignAsType,
+ 'AST_ArgumentExpressionList': AST.ArgumentExpressionList,
+ 'AST_BlockItemList': AST.BlockItemList,
+ 'AST_CommaEllipsis': AST.CommaEllipsis,
+ 'AST_CommaEllipsisEmpty': AST.CommaEllipsisEmpty,
+ 'AST_Declaration': AST.Declaration,
+ 'AST_DeclarationList': AST.DeclarationList,
+ 'AST_DeclarationSpecifierList': AST.DeclarationSpecifierList,
+ 'AST_Declarator': AST.Declarator,
+ 'AST_DeclaratorAbstract': AST.DeclaratorAbstract,
+ 'AST_DeclaratorArray': AST.DeclaratorArray,
+ 'AST_DeclaratorEmpty': AST.DeclaratorEmpty,
+ 'AST_DeclaratorFunction': AST.DeclaratorFunction,
+ 'AST_DeclaratorFunctionOldStyle': AST.DeclaratorFunctionOldStyle,
+ 'AST_DeclaratorIdentifier': AST.DeclaratorIdentifier,
+ 'AST_DeclaratorPointer': AST.DeclaratorPointer,
+ 'AST_DefaultTypeName': AST.DefaultTypeName,
+ 'AST_DesignatorField': AST.DesignatorField,
+ 'AST_DesignatorIndex': AST.DesignatorIndex,
+ 'AST_DesignatorInitializer': AST.DesignatorInitializer,
+ 'AST_DesignatorInitializerList': AST.DesignatorInitializerList,
+ 'AST_DesignatorList': AST.DesignatorList,
+ 'AST_EnumSpecifier': AST.EnumSpecifier,
+ 'AST_Enumerator': AST.Enumerator,
+ 'AST_EnumeratorList': AST.EnumeratorList,
+ 'AST_EqualsInitializerEmpty': AST.EqualsInitializerEmpty,
+ 'AST_Expression': AST.Expression,
+ 'AST_ExpressionAdd': AST.ExpressionAdd,
+ 'AST_ExpressionAddAssignment': AST.ExpressionAddAssignment,
+ 'AST_ExpressionAddressOf': AST.ExpressionAddressOf,
+ 'AST_ExpressionAlignOfType': AST.ExpressionAlignOfType,
+ 'AST_ExpressionArray': AST.ExpressionArray,
+ 'AST_ExpressionAssignment': AST.ExpressionAssignment,
+ 'AST_ExpressionAsterisk': AST.ExpressionAsterisk,
+ 'AST_ExpressionBitwiseAnd': AST.ExpressionBitwiseAnd,
+ 'AST_ExpressionBitwiseAndAssignment': AST.ExpressionBitwiseAndAssignment,
+ 'AST_ExpressionBitwiseNot': AST.ExpressionBitwiseNot,
+ 'AST_ExpressionBitwiseOr': AST.ExpressionBitwiseOr,
+ 'AST_ExpressionBitwiseOrAssignment': AST.ExpressionBitwiseOrAssignment,
+ 'AST_ExpressionCall': AST.ExpressionCall,
+ 'AST_ExpressionCast': AST.ExpressionCast,
+ 'AST_ExpressionCharConstant': AST.ExpressionCharConstant,
+ 'AST_ExpressionComma': AST.ExpressionComma,
+ 'AST_ExpressionConditional': AST.ExpressionConditional,
+ 'AST_ExpressionDereference': AST.ExpressionDereference,
+ 'AST_ExpressionDivide': AST.ExpressionDivide,
+ 'AST_ExpressionDivideAssignment': AST.ExpressionDivideAssignment,
+ 'AST_ExpressionEmpty': AST.ExpressionEmpty,
+ 'AST_ExpressionEqual': AST.ExpressionEqual,
+ 'AST_ExpressionExclusiveOr': AST.ExpressionExclusiveOr,
+ 'AST_ExpressionExclusiveOrAssignment': AST.ExpressionExclusiveOrAssignment,
+ 'AST_ExpressionField': AST.ExpressionField,
+ 'AST_ExpressionFieldDereference': AST.ExpressionFieldDereference,
+ 'AST_ExpressionFloatLiteral': AST.ExpressionFloatLiteral,
+ 'AST_ExpressionFunctionName': AST.ExpressionFunctionName,
+ 'AST_ExpressionGreaterThan': AST.ExpressionGreaterThan,
+ 'AST_ExpressionGreaterThanOrEqual': AST.ExpressionGreaterThanOrEqual,
+ 'AST_ExpressionIdentifier': AST.ExpressionIdentifier,
+ 'AST_ExpressionIndex': AST.ExpressionIndex,
+ 'AST_ExpressionIntLiteral': AST.ExpressionIntLiteral,
+ 'AST_Identifier': AST.Identifier,
+ 'AST_ExpressionLeftShiftAssignment': AST.ExpressionLeftShiftAssignment,
+ 'AST_ExpressionLessThan': AST.ExpressionLessThan,
+ 'AST_ExpressionLessThanOrEqual': AST.ExpressionLessThanOrEqual,
+ 'AST_ExpressionLogicalAnd': AST.ExpressionLogicalAnd,
+ 'AST_ExpressionLogicalNot': AST.ExpressionLogicalNot,
+ 'AST_ExpressionLogicalOr': AST.ExpressionLogicalOr,
+ 'AST_ExpressionMinus': AST.ExpressionMinus,
+ 'AST_ExpressionModulo': AST.ExpressionModulo,
+ 'AST_ExpressionModuloAssignment': AST.ExpressionModuloAssignment,
+ 'AST_ExpressionMultiply': AST.ExpressionMultiply,
+ 'AST_ExpressionMultiplyAssignment': AST.ExpressionMultiplyAssignment,
+ 'AST_ExpressionNotEqual': AST.ExpressionNotEqual,
+ 'AST_ExpressionPlus': AST.ExpressionPlus,
+ 'AST_ExpressionPostDecrement': AST.ExpressionPostDecrement,
+ 'AST_ExpressionPostIncrement': AST.ExpressionPostIncrement,
+ 'AST_ExpressionPreDecrement': AST.ExpressionPreDecrement,
+ 'AST_ExpressionPreIncrement': AST.ExpressionPreIncrement,
+ 'AST_ExpressionRightShiftAssignment': AST.ExpressionRightShiftAssignment,
+ 'AST_ExpressionShiftLeft': AST.ExpressionShiftLeft,
+ 'AST_ExpressionShiftRight': AST.ExpressionShiftRight,
+ 'AST_ExpressionSizeOfExpression': AST.ExpressionSizeOfExpression,
+ 'AST_ExpressionSizeOfType': AST.ExpressionSizeOfType,
+ 'AST_ExpressionStringLiteral': AST.ExpressionStringLiteral,
+ 'AST_ExpressionSubtract': AST.ExpressionSubtract,
+ 'AST_ExpressionSubtractAssignment': AST.ExpressionSubtractAssignment,
+ 'AST_FunctionDefinition': AST.FunctionDefinition,
+ 'AST_FunctionSpecifier': AST.FunctionSpecifier,
+ 'AST_GenericAssociation': AST.GenericAssociation,
+ 'AST_GenericAssociationList': AST.GenericAssociationList,
+ 'AST_GenericSelection': AST.GenericSelection,
+ 'AST_IdentifierEmpty': AST.IdentifierEmpty,
+ 'AST_IdentifierList': AST.IdentifierList,
+ 'AST_InitDeclarator': AST.InitDeclarator,
+ 'AST_InitDeclaratorList': AST.InitDeclaratorList,
+ 'AST_ParameterDeclaration': AST.ParameterDeclaration,
+ 'AST_ParameterDeclarationList': AST.ParameterDeclarationList,
+ 'AST_SpecifierQualifierList': AST.SpecifierQualifierList,
+ 'AST_Statement': AST.Statement,
+ 'AST_StatementBlock': AST.StatementBlock,
+ 'AST_StatementBreak': AST.StatementBreak,
+ 'AST_StatementCase': AST.StatementCase,
+ 'AST_StatementContinue': AST.StatementContinue,
+ 'AST_StatementDefault': AST.StatementDefault,
+ 'AST_StatementDoWhile': AST.StatementDoWhile,
+ 'AST_StatementExpression': AST.StatementExpression,
+ 'AST_StatementFor': AST.StatementFor,
+ 'AST_StatementGoto': AST.StatementGoto,
+ 'AST_StatementIf': AST.StatementIf,
+ 'AST_StatementIfElse': AST.StatementIfElse,
+ 'AST_StatementLabel': AST.StatementLabel,
+ 'AST_StatementReturn': AST.StatementReturn,
+ 'AST_StatementSwitch': AST.StatementSwitch,
+ 'AST_StatementWhile': AST.StatementWhile,
+ 'AST_StaticAssertDeclaration': AST.StaticAssertDeclaration,
+ 'AST_StorageClassSpecifier': AST.StorageClassSpecifier,
+ 'AST_StructDeclaration': AST.StructDeclaration,
+ 'AST_StructDeclarationList': AST.StructDeclarationList,
+ 'AST_StructDeclarator': AST.StructDeclarator,
+ 'AST_StructDeclaratorList': AST.StructDeclaratorList,
+ 'AST_StructSpecifier': AST.StructSpecifier,
+ 'AST_TypeName': AST.TypeName,
+ 'AST_TypeQualifier': AST.TypeQualifier,
+ 'AST_TypeQualifierList': AST.TypeQualifierList,
+ 'AST_TypeQualifierOrStaticList': AST.TypeQualifierOrStaticList,
+ 'AST_TypeSpecifier': AST.TypeSpecifier,
+ 'AST_UnionSpecifier': AST.UnionSpecifier
}
def factory(tag, attrib = {}, *args, **kwargs):
return tag_to_class.get(tag, element.Element)(tag, attrib, *args, **kwargs)
#!/bin/sh
-if ./generate.py ast <ast.py >ast.py.new && ! diff -q ast.py ast.py.new
+if ./generate_ast.py ast <ast.py >ast.py.new && ! diff -q ast.py ast.py.new
then
mv ast.py.new ast.py
else
+++ /dev/null
-# defines the alphabet size, set this to 0x11000 for unicode
-n_characters = 0x100
-
-def bisect_set_or(character_set0, character_set1):
- # calculate union of the child sets
- # we do this by calculating a series of breakpoints, at each breakpoint
- # evaluating the "or" (max) of the even/odd truth values of each child,
- # then making the output truth value even/odd by outputting if necessary
- result = []
- i = 0
- j = 0
- while True:
- if i < len(character_set0):
- k = character_set0[i]
- if j < len(character_set1):
- k = min(k, character_set1[j])
- elif j < len(character_set1):
- k = character_set1[j]
- else:
- break
- if i < len(character_set0) and character_set0[i] == k:
- i += 1
- if j < len(character_set1) and character_set1[j] == k:
- j += 1
- if (len(result) & 1) != max(i & 1, j & 1):
- result.append(k)
- assert (i & 1) == 0 and (j & 1) == 0
- return result
-
-def bisect_set_and(character_set0, character_set1):
- # calculate intersection of the child sets
- # we do this by calculating a series of breakpoints, at each breakpoint
- # evaluating the "and" (min) of the even/odd truth values of each child,
- # then making the output truth value even/odd by outputting if necessary
- result = []
- i = 0
- j = 0
- while True:
- if i < len(character_set0):
- k = character_set0[i]
- if j < len(character_set1):
- k = min(k, character_set1[j])
- elif j < len(character_set1):
- k = character_set1[j]
- else:
- break
- if i < len(character_set0) and character_set0[i] == k:
- i += 1
- if j < len(character_set1) and character_set1[j] == k:
- j += 1
- if (len(result) & 1) != min(i & 1, j & 1):
- result.append(k)
- assert (i & 1) == 0 and (j & 1) == 0
- return result
-
-def bisect_set_not(character_set):
- # calculate complement of the child set
- # if child set begins with [0], remove it, otherwise add [0] prefix
- # if child set ends with [n_characters], remove it, otherwise add [n_characters] suffix
- # the suffix part is not totally necessary, but makes sure length is even
- # (the evenness is so that single character sets can always be [c, c + 1])
- result = list(character_set)
- if result[:1] == [0]:
- del result[:1]
- else:
- result[:0] = [0]
- if result[-1:] == [n_characters]:
- del result[-1:]
- else:
- result.append(n_characters)
- return result
+++ /dev/null
-import bisect
-import element
-import work
-import sys
-
-# defines the alphabet size, set this to 0x11000 for unicode
-n_characters = 0x100
-
-class DFA:
- # transition classes:
- # instructions to transform thread list from a multistate to next multistate
- # (TRANSITION_POP, n) j += n
- # (TRANSITION_DUP, n) threads0[j - n:j] = threads0[j:j + n]
- # j -= n
- # (TRANSITION_MARK, n, mark_value) threads0[j:j + n] = [
- # (i, mark, thread)
- # for thread in threads0[j:j + n]
- # ]
- # (TRANSITION_MOVE, n) threads1.extend(threads0[j:j + n])
- # j += n
- # (TRANSITION_DEL, n) del threads1[-n:]
-
- TRANSITION_POP = 0
- TRANSITION_DUP = 1
- TRANSITION_MARK = 2
- TRANSITION_MOVE = 3
- #TRANSITION_DEL = 4
-
- def __init__(
- self,
- groups = [],
- states = [([n_characters], [0], 0)],
- actions = [(0, [])],
- start_action = [] # can have multiple DFAs in same container
- ):
- # groups: list of group_desc
- # group_desc: (tag, kwargs)
- # tag, kwargs will be passed to apply_markup() hence factory()
- # states: list of state_desc
- # state_desc: (list of breaks, list of action to do, accept_thread)
- # actions: list of action_desc
- # action_desc: (state to go to next, compiled transition to do first)
- # accept_thread: which thread of thread list to use, -1 don't accept
- self.groups = groups
- self.states = states
- self.actions = actions
- self.start_action = start_action
-
- def match_text(self, text, i, start_index = 0):
- def transit(transition):
- nonlocal threads0, threads1, prefix_slop # note: also uses i
- j = prefix_slop
- for trans in transition:
- if trans[0] == DFA.TRANSITION_POP:
- j += trans[1]
- elif trans[0] == DFA.TRANSITION_DUP:
- while j < trans[1]:
- threads0[:0] = [None] * prefix_slop
- threads1[:0] = [None] * prefix_slop
- j += prefix_slop
- prefix_slop *= 2
- threads0[j - trans[1]:j] = threads0[j:j + trans[1]]
- j -= trans[1]
- elif trans[0] == DFA.TRANSITION_MARK:
- threads0[j:j + trans[1]] = [
- (i, trans[2], thread)
- for thread in threads0[j:j + trans[1]]
- ]
- elif trans[0] == DFA.TRANSITION_MOVE:
- threads1.extend(threads0[j:j + trans[1]])
- j += trans[1]
- #elif trans[0] == DFA.TRANSITION_DEL:
- # del threads1[-trans[1]:]
- else:
- assert False
- assert j == len(threads0)
- threads0, threads1 = threads1, threads0
- del threads1[prefix_slop:]
-
- threads0 = [None, None]
- threads1 = [None]
- prefix_slop = 1
-
- action = self.start_action[start_index]
- while action != -1:
- state, transition = self.actions[action]
- #print('i', i, 'action', action, 'state', state, 'transition', transition)
- transit(transition)
- if state == 0:
- # there is only one match, which is complete
- assert len(threads0) == prefix_slop + 1
- return threads0[prefix_slop]
- if i >= len(text):
- # return best match we have, but not incomplete match
- i = self.states[state][2]
- return (None if i == -1 else threads0[prefix_slop + i])
- action = self.states[state][1][
- bisect.bisect_right(self.states[state][0], ord(text[i]))
- ]
- i += 1
- return None
-
- def match_yychunk(self, root, pos, off, yychunk_iter, start_index = 0):
- if pos < 0:
- pos, off = element.to_start_relative(root, pos, off)
-
- def transit(transition):
- nonlocal threads0, threads1, prefix_slop # note: also uses pos, off
- j = prefix_slop
- for trans in transition:
- if trans[0] == DFA.TRANSITION_POP:
- j += trans[1]
- elif trans[0] == DFA.TRANSITION_DUP:
- while j < trans[1]:
- threads0[:0] = [None] * prefix_slop
- threads1[:0] = [None] * prefix_slop
- j += prefix_slop
- prefix_slop *= 2
- threads0[j - trans[1]:j] = threads0[j:j + trans[1]]
- j -= trans[1]
- elif trans[0] == DFA.TRANSITION_MARK:
- threads0[j:j + trans[1]] = [
- (pos, off, trans[2], thread)
- for thread in threads0[j:j + trans[1]]
- ]
- elif trans[0] == DFA.TRANSITION_MOVE:
- threads1.extend(threads0[j:j + trans[1]])
- j += trans[1]
- #elif trans[0] == DFA.TRANSITION_DEL:
- # del threads1[-trans[1]:]
- else:
- assert False
- assert j == len(threads0)
- threads0, threads1 = threads1, threads0
- del threads1[prefix_slop:]
-
- threads0 = [None, None]
- threads1 = [None]
- prefix_slop = 1
-
- action = self.start_action[start_index]
- text = element.get_text(root, pos)
- while action != -1:
- state, transition = self.actions[action]
- transit(transition)
- if state == 0:
- # there is only one match, which is complete
- assert len(threads0) == prefix_slop + 1
- return threads0[prefix_slop]
- while off >= len(text):
- if pos < len(root):
- pos += 1
- off = 0
- else:
- try:
- next(yychunk_iter)
- except StopIteration:
- # return best match we have, but not incomplete match
- i = self.states[state][2]
- return (None if i == -1 else threads0[prefix_slop + i])
- text = element.get_text(root, pos)
- #print(
- # 'state {0:d} pos {1:d} off {2:d} text "{3:s}"'.format(
- # state,
- # pos,
- # off,
- # text.replace('\n', '$')
- # )
- #)
- action = self.states[state][1][
- bisect.bisect_right(self.states[state][0], ord(text[off]))
- ]
- off += 1
- return None
-
- def yylex(self, root, pos, off, factory, yychunk_iter):
- if pos < 0:
- pos, off = element.to_start_relative(root, pos, off)
-
- while True:
- # note: pointers must be kept start relative during the below call,
- # because it extends the following text by calling the yychunk_iter
- thread = self.match_yychunk(root, pos, off, yychunk_iter)
- if thread is None:
- break
- stack = []
- while True:
- pos, off, mark_value, thread = thread
- group_index = mark_value >> 1
- if (mark_value & 1) != 0:
- end_pos, end_off = element.to_end_relative(root, pos, off)
- stack.append((end_pos, end_off, group_index))
- else:
- end_pos, end_off, temp = stack.pop()
- assert temp == group_index
- if len(stack) == 0:
- break
- tag, kwargs = self.groups[group_index]
- if tag != '':
- work.apply_markup(
- root,
- pos,
- off,
- end_pos,
- end_off,
- factory,
- tag,
- **kwargs
- )
- # note: pointers must be kept end relative during the below call,
- # because it modifies the preceding text by calling apply_markup()
- yield end_pos, end_off, group_index
- pos, off = element.to_start_relative(root, end_pos, end_off)
-
- def __repr__(self):
- return 'dfa.DFA({0:s}, {1:s}, {2:s}, {3:s})'.format(
- repr(self.groups),
- repr(self.states),
- repr(self.actions),
- repr(self.start_action)
- )
+# Copyright (C) 2018 Nick Downing <nick@ndcode.org>
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
import xml.etree.ElementTree
class Element(xml.etree.ElementTree._Element_Py):
else:
root[i - 1].tail = text
-def to_end_relative(root, pos, off):
- assert pos >= 0 and off >= 0
- off -= len(get_text(root, pos))
- pos -= len(root) + 1
- return pos, off
-
-def to_start_relative(root, pos, off):
- assert pos < 0 and off <= 0
- pos += len(root) + 1
- off += len(get_text(root, pos))
- return pos, off
-
-def to_text(root):
- return ''.join(
- [
- j
- for i in range(len(root))
- for j in [get_text(root, i), to_text(root[i])]
- ] +
- [get_text(root, len(root))]
- )
+def concatenate(children, factory = Element, *args, **kwargs):
+ root = factory(*args, **kwargs)
+ for child in children:
+ i = len(root)
+ set_text(root, i, get_text(root, i) + get_text(child, 0))
+ root[i:] = child[:]
+ return root
#!/usr/bin/env python3
+# Copyright (C) 2018 Nick Downing <nick@ndcode.org>
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
import re
import sys
+++ /dev/null
-import bisect
-import bisect_set
-import element
-import lr1
-import sys
-
-# defines the alphabet size, set this to 0x11000 for unicode
-n_characters = 0x100
-
-class Grammar(element.Element):
- class Production(element.Element):
- class Item(element.Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'Grammar_Production_Item',
- attrib = {},
- text = '',
- children = []
- ):
- element.Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = element.Element.copy(
- self,
- Item if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'grammar.Grammar.Production.Item({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, name_to_character_sets, group_index):
- raise NotImplementedException
- def add_to_groups(self, groups):
- raise NotImplementedException
- def add_to_lr1_symbols(self, symbols, group_bounds):
- raise NotImplementedException
-
- class Group(Item):
- class Attribute(element.Element):
- # GENERATE ELEMENT(str name, str value) BEGIN
- def __init__(
- self,
- tag = 'Grammar_Production_Group_Attribute',
- attrib = {},
- text = '',
- children = [],
- name = '',
- value = ''
- ):
- element.Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.name = name
- self.value = value
- def serialize(self, ref_list):
- element.Element.serialize(self, ref_list)
- self.set('name', element.serialize_str(self.name))
- self.set('value', element.serialize_str(self.value))
- def deserialize(self, ref_list):
- element.Element.deserialize(self, ref_list)
- self.name = element.deserialize_str(self.get('name', ''))
- self.value = element.deserialize_str(self.get('value', ''))
- def copy(self, factory = None):
- result = element.Element.copy(
- self,
- Attribute if factory is None else factory
- )
- result.name = self.name
- result.value = self.value
- return result
- def repr_serialize(self, params):
- element.Element.repr_serialize(self, params)
- if self.name != '':
- params.append(
- 'name = {0:s}'.format(repr(self.name))
- )
- if self.value != '':
- params.append(
- 'value = {0:s}'.format(repr(self.value))
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'grammar.Grammar.Production.Group.Attribute({0:s})'.format(', '.join(params))
- # GENERATE END
-
- # GENERATE ELEMENT(int index, str name, list(ref) attributes) BEGIN
- def __init__(
- self,
- tag = 'Grammar_Production_Group',
- attrib = {},
- text = '',
- children = [],
- index = -1,
- name = '',
- attributes = []
- ):
- Grammar.Production.Item.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.index = (
- element.deserialize_int(index)
- if isinstance(index, str) else
- index
- )
- self.name = name
- self.attributes = attributes
- def serialize(self, ref_list):
- Grammar.Production.Item.serialize(self, ref_list)
- self.set('index', element.serialize_int(self.index))
- self.set('name', element.serialize_str(self.name))
- self.set(
- 'attributes',
- ' '.join([element.serialize_ref(i, ref_list) for i in self.attributes])
- )
- def deserialize(self, ref_list):
- Grammar.Production.Item.deserialize(self, ref_list)
- self.index = element.deserialize_int(self.get('index', '-1'))
- self.name = element.deserialize_str(self.get('name', ''))
- self.attributes = [
- element.deserialize_ref(i, ref_list)
- for i in self.get('attributes', '').split()
- ]
- def copy(self, factory = None):
- result = Grammar.Production.Item.copy(
- self,
- Group if factory is None else factory
- )
- result.index = self.index
- result.name = self.name
- result.attributes = self.attributes
- return result
- def repr_serialize(self, params):
- Grammar.Production.Item.repr_serialize(self, params)
- if self.index != -1:
- params.append(
- 'index = {0:s}'.format(repr(self.index))
- )
- if self.name != '':
- params.append(
- 'name = {0:s}'.format(repr(self.name))
- )
- if len(self.attributes):
- params.append(
- 'attributes = [{0:s}]'.format(
- ', '.join([repr(i) for i in self.attributes])
- )
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'grammar.Grammar.Production.Group({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, name_to_character_sets, group_index):
- self.index = group_index
- group_index += 1
- for i in self:
- group_index = i.post_process(name_to_character_sets, group_index)
- return group_index
- def add_to_groups(self, groups):
- assert len(groups) == self.index
- groups.append(
- (self.name, {i.name: i.value for i in self.attributes})
- )
- for i in self:
- i.add_to_groups(groups)
- def add_to_lr1_symbols(self, symbols, group_bounds):
- group_start = len(symbols)
- assert len(group_bounds) == self.index
- group_bounds.append(None)
- group_count = 0
- for i in self:
- group_count += (
- i.add_to_lr1_symbols(symbols, group_bounds)
- )
- group_bounds[self.index] = (
- group_start,
- group_count,
- self.name,
- {i.name: i.value for i in self.attributes}
- )
- return 1 # count of groups or ungrouped characters
-
- class Symbol(element.Element):
- # GENERATE ELEMENT(list(int) terminal_set, list(int) nonterminal_set) BEGIN
- def __init__(
- self,
- tag = 'Grammar_Production_Symbol',
- attrib = {},
- text = '',
- children = [],
- terminal_set = [],
- nonterminal_set = []
- ):
- element.Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.terminal_set = (
- [element.deserialize_int(i) for i in terminal_set.split()]
- if isinstance(terminal_set, str) else
- terminal_set
- )
- self.nonterminal_set = (
- [element.deserialize_int(i) for i in nonterminal_set.split()]
- if isinstance(nonterminal_set, str) else
- nonterminal_set
- )
- def serialize(self, ref_list):
- element.Element.serialize(self, ref_list)
- self.set(
- 'terminal_set',
- ' '.join([element.serialize_int(i) for i in self.terminal_set])
- )
- self.set(
- 'nonterminal_set',
- ' '.join([element.serialize_int(i) for i in self.nonterminal_set])
- )
- def deserialize(self, ref_list):
- element.Element.deserialize(self, ref_list)
- self.terminal_set = [
- element.deserialize_int(i)
- for i in self.get('terminal_set', '').split()
- ]
- self.nonterminal_set = [
- element.deserialize_int(i)
- for i in self.get('nonterminal_set', '').split()
- ]
- def copy(self, factory = None):
- result = element.Element.copy(
- self,
- Symbol if factory is None else factory
- )
- result.terminal_set = self.terminal_set
- result.nonterminal_set = self.nonterminal_set
- return result
- def repr_serialize(self, params):
- element.Element.repr_serialize(self, params)
- if len(self.terminal_set):
- params.append(
- 'terminal_set = [{0:s}]'.format(
- ', '.join([repr(i) for i in self.terminal_set])
- )
- )
- if len(self.nonterminal_set):
- params.append(
- 'nonterminal_set = [{0:s}]'.format(
- ', '.join([repr(i) for i in self.nonterminal_set])
- )
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'grammar.Grammar.Production.Symbol({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, name_to_character_sets, group_index):
- return group_index
- def add_to_groups(self, groups):
- pass
- def add_to_lr1_symbols(self, symbols, group_bounds):
- symbols.append((self.terminal_set, self.nonterminal_set))
- return 1 # count of groups or ungrouped characters
-
- class NamedSymbol(Symbol):
- # GENERATE ELEMENT(str name) BEGIN
- def __init__(
- self,
- tag = 'Grammar_Production_NamedSymbol',
- attrib = {},
- text = '',
- children = [],
- terminal_set = [],
- nonterminal_set = [],
- name = ''
- ):
- Grammar.Production.Symbol.__init__(
- self,
- tag,
- attrib,
- text,
- children,
- terminal_set,
- nonterminal_set
- )
- self.name = name
- def serialize(self, ref_list):
- Grammar.Production.Symbol.serialize(self, ref_list)
- self.set('name', element.serialize_str(self.name))
- def deserialize(self, ref_list):
- Grammar.Production.Symbol.deserialize(self, ref_list)
- self.name = element.deserialize_str(self.get('name', ''))
- def copy(self, factory = None):
- result = Grammar.Production.Symbol.copy(
- self,
- NamedSymbol if factory is None else factory
- )
- result.name = self.name
- return result
- def repr_serialize(self, params):
- Grammar.Production.Symbol.repr_serialize(self, params)
- if self.name != '':
- params.append(
- 'name = {0:s}'.format(repr(self.name))
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'grammar.Grammar.Production.NamedSymbol({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, name_to_character_sets, group_index):
- self.terminal_set, self.nonterminal_set = (
- name_to_character_sets[self.name]
- )
- return group_index
-
- # GENERATE ELEMENT(int lhs_nonterminal, int precedence) BEGIN
- def __init__(
- self,
- tag = 'Grammar_Production',
- attrib = {},
- text = '',
- children = [],
- lhs_nonterminal = -1,
- precedence = -1
- ):
- element.Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.lhs_nonterminal = (
- element.deserialize_int(lhs_nonterminal)
- if isinstance(lhs_nonterminal, str) else
- lhs_nonterminal
- )
- self.precedence = (
- element.deserialize_int(precedence)
- if isinstance(precedence, str) else
- precedence
- )
- def serialize(self, ref_list):
- element.Element.serialize(self, ref_list)
- self.set('lhs_nonterminal', element.serialize_int(self.lhs_nonterminal))
- self.set('precedence', element.serialize_int(self.precedence))
- def deserialize(self, ref_list):
- element.Element.deserialize(self, ref_list)
- self.lhs_nonterminal = element.deserialize_int(self.get('lhs_nonterminal', '-1'))
- self.precedence = element.deserialize_int(self.get('precedence', '-1'))
- def copy(self, factory = None):
- result = element.Element.copy(
- self,
- Production if factory is None else factory
- )
- result.lhs_nonterminal = self.lhs_nonterminal
- result.precedence = self.precedence
- return result
- def repr_serialize(self, params):
- element.Element.repr_serialize(self, params)
- if self.lhs_nonterminal != -1:
- params.append(
- 'lhs_nonterminal = {0:s}'.format(repr(self.lhs_nonterminal))
- )
- if self.precedence != -1:
- params.append(
- 'precedence = {0:s}'.format(repr(self.precedence))
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'grammar.Grammar.Production({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, lhs_nonterminal, name_to_character_sets):
- self.lhs_nonterminal = lhs_nonterminal
- group_index = 0
- for i in self:
- group_index = i.post_process(name_to_character_sets, group_index)
- def add_to_lr1(self, _lr1):
- symbols = []
- group_bounds = []
- for i in self:
- i.add_to_lr1_symbols(symbols, group_bounds)
- _lr1.productions.append(
- (
- # symbols
- symbols,
- # lookaheads (list of initial_set, can_be_empty)
- [([], False) for i in range(len(symbols))] + [([], True)],
- # group_bounds
- group_bounds
- )
- )
-
- # GENERATE ELEMENT(list(int) associativities, int n_terminals, int eof_terminal) BEGIN
- def __init__(
- self,
- tag = 'Grammar',
- attrib = {},
- text = '',
- children = [],
- associativities = [],
- n_terminals = -1,
- eof_terminal = -1
- ):
- element.Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.associativities = (
- [element.deserialize_int(i) for i in associativities.split()]
- if isinstance(associativities, str) else
- associativities
- )
- self.n_terminals = (
- element.deserialize_int(n_terminals)
- if isinstance(n_terminals, str) else
- n_terminals
- )
- self.eof_terminal = (
- element.deserialize_int(eof_terminal)
- if isinstance(eof_terminal, str) else
- eof_terminal
- )
- def serialize(self, ref_list):
- element.Element.serialize(self, ref_list)
- self.set(
- 'associativities',
- ' '.join([element.serialize_int(i) for i in self.associativities])
- )
- self.set('n_terminals', element.serialize_int(self.n_terminals))
- self.set('eof_terminal', element.serialize_int(self.eof_terminal))
- def deserialize(self, ref_list):
- element.Element.deserialize(self, ref_list)
- self.associativities = [
- element.deserialize_int(i)
- for i in self.get('associativities', '').split()
- ]
- self.n_terminals = element.deserialize_int(self.get('n_terminals', '-1'))
- self.eof_terminal = element.deserialize_int(self.get('eof_terminal', '-1'))
- def copy(self, factory = None):
- result = element.Element.copy(
- self,
- Grammar if factory is None else factory
- )
- result.associativities = self.associativities
- result.n_terminals = self.n_terminals
- result.eof_terminal = self.eof_terminal
- return result
- def repr_serialize(self, params):
- element.Element.repr_serialize(self, params)
- if len(self.associativities):
- params.append(
- 'associativities = [{0:s}]'.format(
- ', '.join([repr(i) for i in self.associativities])
- )
- )
- if self.n_terminals != -1:
- params.append(
- 'n_terminals = {0:s}'.format(repr(self.n_terminals))
- )
- if self.eof_terminal != -1:
- params.append(
- 'eof_terminal = {0:s}'.format(repr(self.eof_terminal))
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'grammar.Grammar({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, name_to_character_sets):
- for i in range(len(self)):
- self[i].post_process(i, name_to_character_sets)
- def to_lr1(self):
- _lr1 = lr1.LR1(
- # productions
- [],
- # precedences
- ([self.n_terminals], [-1], [1 + len(self)], [-1]),
- # associativities
- self.associativities,
- # n_terminals
- self.n_terminals,
- # eof_terminal
- self.eof_terminal)
-
- # compute productions and (eventually) nonterminals precedence table
- for i in self:
- i.add_to_lr1(_lr1)
-
- # propagate lookaheads
- modified = True
- while modified:
- modified = False
- for symbols, lookaheads, _ in _lr1.productions:
- for i in range(len(symbols) - 1, -1, -1):
- initial_set, nonterminal_set = symbols[i]
- can_be_empty = False
- for j in range(0, len(nonterminal_set), 2):
- for k in range(nonterminal_set[j], nonterminal_set[j + 1]):
- child_initial_set, child_can_be_empty = _lr1.productions[k][1][0]
- initial_set = bisect_set.bisect_set_or(
- initial_set,
- child_initial_set
- )
- can_be_empty = can_be_empty or child_can_be_empty
- # at this point can_be_empty refers to current symbol only
- if can_be_empty:
- next_initial_set, can_be_empty = lookaheads[i + 1]
- initial_set = bisect_set.bisect_set_or(
- initial_set,
- next_initial_set
- )
- # at this point can_be_empty refers to all remaining symbols
- if (initial_set, can_be_empty) != lookaheads[i]:
- lookaheads[i] = (initial_set, can_be_empty)
- modified = True
-
- return _lr1
-
-# GENERATE FACTORY(element.Element) BEGIN
-tag_to_class = {
- 'Grammar': Grammar,
- 'Grammar_Production': Grammar.Production,
- 'Grammar_Production_Item': Grammar.Production.Item,
- 'Grammar_Production_Group': Grammar.Production.Group,
- 'Grammar_Production_Group_Attribute': Grammar.Production.Group.Attribute,
- 'Grammar_Production_Symbol': Grammar.Production.Symbol,
- 'Grammar_Production_NamedSymbol': Grammar.Production.NamedSymbol
-}
-def factory(tag, attrib = {}, *args, **kwargs):
- return tag_to_class.get(tag, element.Element)(tag, attrib, *args, **kwargs)
-# GENERATE END
+++ /dev/null
-#!/bin/sh
-if ./generate.py grammar <grammar.py >grammar.py.new && ! diff -q grammar.py grammar.py.new
-then
- mv grammar.py.new grammar.py
-else
- rm -f grammar.py.new
-fi
+++ /dev/null
-
-#line 2 "lex.yy.c"
-
-#define YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 6
-#define YY_FLEX_SUBMINOR_VERSION 4
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types.
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t;
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX (4294967295U)
-#endif
-
-#ifndef SIZE_MAX
-#define SIZE_MAX (~(size_t)0)
-#endif
-
-#endif /* ! C99 */
-
-#endif /* ! FLEXINT_H */
-
-/* begin standard C++ headers. */
-
-/* TODO: this is always defined, so inline it */
-#define yyconst const
-
-#if defined(__GNUC__) && __GNUC__ >= 3
-#define yynoreturn __attribute__((__noreturn__))
-#else
-#define yynoreturn
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an
- * integer in range [0..255] for use as an array index.
- */
-#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
-
-/* Enter a start condition. This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN (yy_start) = 1 + 2 *
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state. The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START (((yy_start) - 1) / 2)
-#define YYSTATE YY_START
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin )
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
-#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-extern int yyleng;
-
-extern FILE *yyin, *yyout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
- #define YY_LESS_LINENO(n)
- #define YY_LINENO_REWIND_TO(ptr)
-
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- int yyless_macro_arg = (n); \
- YY_LESS_LINENO(yyless_macro_arg);\
- *yy_cp = (yy_hold_char); \
- YY_RESTORE_YY_MORE_OFFSET \
- (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
- YY_DO_BEFORE_ACTION; /* set up yytext again */ \
- } \
- while ( 0 )
-#define unput(c) yyunput( c, (yytext_ptr) )
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
- {
- FILE *yy_input_file;
-
- char *yy_ch_buf; /* input buffer */
- char *yy_buf_pos; /* current position in input buffer */
-
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
- */
- int yy_buf_size;
-
- /* Number of characters read into yy_ch_buf, not including EOB
- * characters.
- */
- int yy_n_chars;
-
- /* Whether we "own" the buffer - i.e., we know we created it,
- * and can realloc() it to grow it, and should free() it to
- * delete it.
- */
- int yy_is_our_buffer;
-
- /* Whether this is an "interactive" input source; if so, and
- * if we're using stdio for input, then we want to use getc()
- * instead of fread(), to make sure we stop fetching input after
- * each newline.
- */
- int yy_is_interactive;
-
- /* Whether we're considered to be at the beginning of a line.
- * If so, '^' rules will be active on the next match, otherwise
- * not.
- */
- int yy_at_bol;
-
- int yy_bs_lineno; /**< The line count. */
- int yy_bs_column; /**< The column count. */
-
- /* Whether to try to fill the input buffer when we reach the
- * end of it.
- */
- int yy_fill_buffer;
-
- int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
- /* When an EOF's been seen but there's still some text to process
- * then we mark the buffer as YY_EOF_PENDING, to indicate that we
- * shouldn't try reading from the input source any more. We might
- * still have a bunch of tokens to match, though, because of
- * possible backing-up.
- *
- * When we actually see the EOF, we change the status to "new"
- * (via yyrestart()), so that the user can continue scanning by
- * just pointing yyin at a new input file.
- */
-#define YY_BUFFER_EOF_PENDING 2
-
- };
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
- ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
- : NULL)
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
-/* yy_hold_char holds the character lost when yytext is formed. */
-static char yy_hold_char;
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
-int yyleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = NULL;
-static int yy_init = 0; /* whether we need to initialize */
-static int yy_start = 0; /* start state number */
-
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin. A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void yyrestart ( FILE *input_file );
-void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
-YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
-void yy_delete_buffer ( YY_BUFFER_STATE b );
-void yy_flush_buffer ( YY_BUFFER_STATE b );
-void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
-void yypop_buffer_state ( void );
-
-static void yyensure_buffer_stack ( void );
-static void yy_load_buffer_state ( void );
-static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
-#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
-YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
-YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
-
-void *yyalloc ( yy_size_t );
-void *yyrealloc ( void *, yy_size_t );
-void yyfree ( void * );
-
-#define yy_new_buffer yy_create_buffer
-#define yy_set_interactive(is_interactive) \
- { \
- if ( ! YY_CURRENT_BUFFER ){ \
- yyensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
- yy_create_buffer( yyin, YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
- }
-#define yy_set_bol(at_bol) \
- { \
- if ( ! YY_CURRENT_BUFFER ){\
- yyensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
- yy_create_buffer( yyin, YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
- }
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-typedef flex_uint8_t YY_CHAR;
-
-FILE *yyin = NULL, *yyout = NULL;
-
-typedef int yy_state_type;
-
-extern int yylineno;
-int yylineno = 1;
-
-extern char *yytext;
-#ifdef yytext_ptr
-#undef yytext_ptr
-#endif
-#define yytext_ptr yytext
-
-static yy_state_type yy_get_previous_state ( void );
-static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
-static int yy_get_next_buffer ( void );
-static void yynoreturn yy_fatal_error ( const char* msg );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
- (yytext_ptr) = yy_bp; \
- yyleng = (int) (yy_cp - yy_bp); \
- (yy_hold_char) = *yy_cp; \
- *yy_cp = '\0'; \
- (yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 253
-#define YY_END_OF_BUFFER 254
-/* This struct is not used in this scanner,
- but its presence is necessary. */
-struct yy_trans_info
- {
- flex_int32_t yy_verify;
- flex_int32_t yy_nxt;
- };
-static const flex_int16_t yy_accept[1114] =
- { 0,
- 0, 0, 0, 0, 0, 0, 246, 246, 40, 40,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 21, 21,
- 239, 239, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 21, 21,
- 250, 250, 239, 239, 254, 252, 9, 20, 252, 18,
- 1, 19, 252, 252, 252, 252, 17, 163, 148, 149,
- 163, 141, 163, 160, 161, 162, 162, 163, 163, 163,
- 162, 147, 137, 163, 163, 139, 140, 135, 136, 135,
- 134, 133, 134, 246, 247, 247, 40, 42, 40, 41,
-
- 40, 40, 41, 41, 41, 50, 49, 51, 252, 169,
- 169, 164, 169, 165, 166, 168, 170, 218, 219, 218,
- 216, 215, 217, 171, 173, 171, 172, 171, 185, 185,
- 185, 185, 187, 189, 187, 187, 187, 187, 188, 228,
- 233, 228, 232, 231, 234, 229, 229, 229, 234, 234,
- 226, 227, 252, 130, 252, 21, 23, 21, 22, 22,
- 22, 235, 241, 235, 236, 242, 242, 242, 224, 224,
- 225, 224, 224, 224, 224, 224, 224, 224, 129, 53,
- 52, 129, 129, 129, 129, 54, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
-
- 129, 129, 129, 129, 129, 129, 129, 36, 33, 36,
- 34, 48, 45, 252, 48, 48, 44, 43, 175, 174,
- 176, 177, 178, 179, 180, 181, 182, 31, 32, 31,
- 30, 28, 29, 28, 27, 22, 250, 251, 251, 237,
- 237, 238, 9, 20, 0, 18, 1, 19, 0, 0,
- 0, 16, 10, 0, 0, 0, 0, 4, 16, 5,
- 0, 2, 17, 148, 149, 0, 0, 0, 143, 0,
- 159, 157, 0, 153, 153, 0, 243, 243, 243, 0,
- 0, 142, 0, 147, 137, 0, 0, 0, 139, 140,
- 152, 138, 0, 136, 134, 133, 131, 132, 246, 244,
-
- 245, 40, 42, 40, 40, 37, 38, 0, 50, 49,
- 51, 0, 164, 0, 164, 167, 168, 219, 215, 173,
- 0, 183, 184, 189, 186, 228, 233, 0, 0, 221,
- 229, 229, 229, 0, 130, 0, 21, 23, 24, 235,
- 241, 240, 239, 240, 0, 0, 225, 220, 0, 0,
- 53, 52, 0, 128, 0, 0, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 55, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 0, 35,
- 34, 48, 45, 46, 47, 31, 32, 29, 26, 25,
-
- 250, 248, 249, 237, 0, 16, 10, 0, 14, 0,
- 0, 0, 0, 0, 4, 16, 5, 0, 6, 0,
- 144, 0, 145, 0, 158, 0, 153, 153, 0, 153,
- 153, 153, 243, 243, 155, 154, 0, 156, 138, 146,
- 0, 152, 0, 131, 132, 40, 40, 0, 39, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 230, 229, 229, 0, 0, 220, 0, 0,
- 0, 0, 129, 129, 129, 129, 129, 129, 65, 129,
- 129, 129, 70, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
-
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 0, 0,
- 0, 0, 14, 0, 0, 0, 0, 0, 0, 4,
- 8, 5, 0, 153, 153, 153, 153, 153, 153, 153,
- 243, 156, 0, 0, 40, 40, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 229, 229,
- 0, 0, 56, 57, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 71, 72, 129, 129, 129, 129,
- 77, 78, 129, 129, 129, 129, 129, 129, 129, 83,
-
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 92,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 0,
- 0, 0, 0, 15, 0, 0, 0, 0, 0, 8,
- 8, 8, 0, 153, 153, 153, 153, 153, 153, 153,
- 0, 0, 40, 40, 214, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 229, 229,
- 0, 0, 58, 129, 60, 129, 62, 129, 129, 129,
- 129, 68, 129, 129, 129, 73, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 86, 129, 129,
-
- 129, 129, 90, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 0, 0, 0, 0, 3, 0, 0,
- 0, 8, 7, 8, 0, 153, 153, 153, 0, 0,
- 40, 40, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 222, 223, 222, 223,
- 129, 61, 129, 129, 129, 129, 129, 129, 129, 125,
- 129, 129, 129, 129, 129, 129, 129, 129, 123, 129,
- 85, 129, 88, 129, 89, 129, 129, 129, 104, 0,
- 129, 94, 129, 0, 95, 0, 0, 0, 0, 0,
-
- 12, 0, 13, 0, 151, 0, 150, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 129, 129, 129, 129, 129, 66, 129, 69, 129,
- 129, 129, 129, 129, 129, 122, 129, 82, 129, 129,
- 87, 129, 91, 102, 124, 0, 0, 0, 0, 0,
- 0, 129, 129, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 150, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 129, 129,
-
- 129, 129, 129, 67, 129, 129, 129, 129, 79, 129,
- 129, 129, 129, 129, 129, 0, 0, 113, 0, 0,
- 0, 0, 0, 0, 93, 129, 0, 0, 114, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 11, 0,
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 84, 129, 129, 0,
- 0, 0, 0, 0, 0, 115, 0, 103, 0, 0,
- 0, 0, 0, 116, 0, 0, 0, 0, 0, 201,
-
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 0, 129, 129, 129, 129, 129, 121, 129, 129,
- 75, 129, 129, 129, 129, 129, 0, 0, 109, 0,
- 119, 117, 110, 0, 0, 0, 120, 118, 0, 0,
- 0, 0, 0, 0, 213, 129, 129, 129, 129, 129,
- 125, 74, 129, 81, 129, 126, 129, 105, 107, 0,
- 106, 108, 0, 0, 0, 0, 0, 0, 0, 129,
- 63, 129, 129, 129, 129, 76, 129, 111, 112, 97,
- 0, 0, 0, 0, 98, 129, 129, 129, 129, 129,
- 127, 96, 0, 100, 0, 129, 129, 129, 66, 129,
-
- 99, 101, 129, 64, 129, 129, 129, 67, 129, 129,
- 80, 59, 0
- } ;
-
-static const YY_CHAR yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 6, 7, 8, 9, 1, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 19, 19,
- 19, 19, 19, 19, 20, 21, 22, 23, 1, 24,
- 25, 26, 27, 1, 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, 44,
- 53, 54, 55, 56, 57, 1, 58, 59, 60, 61,
-
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 44, 74, 75, 76, 77, 78, 79, 80,
- 81, 44, 82, 83, 84, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1
- } ;
-
-static const YY_CHAR yy_meta[85] =
- { 0,
- 1, 1, 2, 1, 3, 4, 1, 1, 5, 6,
- 1, 7, 8, 9, 1, 10, 1, 11, 12, 12,
- 12, 12, 13, 1, 1, 1, 1, 14, 14, 14,
- 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 16, 17, 18, 1, 19, 14, 14, 14,
- 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 20, 1, 21
- } ;
-
-static const flex_int16_t yy_base[1221] =
- { 0,
- 0, 84, 167, 250, 171, 184, 135, 142, 220, 231,
- 196, 200, 334, 0, 3627, 3625, 211, 416, 203, 212,
- 189, 225, 266, 417, 500, 0, 207, 208, 234, 421,
- 424, 436, 583, 588, 669, 0, 294, 304, 584, 751,
- 579, 580, 417, 576, 287, 306, 241, 441, 595, 608,
- 169, 238, 440, 754, 3680, 4511, 325, 4511, 3676, 0,
- 446, 4511, 3673, 430, 827, 3661, 0, 4511, 758, 4511,
- 3650, 4511, 453, 3621, 4511, 4511, 3619, 3584, 129, 746,
- 445, 766, 4511, 3604, 198, 3582, 4511, 4511, 4511, 3600,
- 0, 3599, 214, 0, 3506, 3483, 0, 4511, 3532, 4511,
-
- 420, 119, 3481, 3478, 3446, 0, 3526, 4511, 3520, 4511,
- 482, 3520, 3518, 4511, 3455, 0, 4511, 4511, 4511, 3504,
- 4511, 598, 4511, 4511, 4511, 3499, 4511, 754, 4511, 3477,
- 759, 180, 4511, 4511, 3467, 0, 3442, 762, 4511, 0,
- 4511, 3459, 4511, 3406, 3434, 0, 562, 167, 3393, 3370,
- 4511, 4511, 326, 4511, 420, 0, 4511, 3418, 3402, 3366,
- 3342, 0, 4511, 3368, 4511, 3317, 444, 3314, 4511, 471,
- 4511, 3354, 3271, 3337, 572, 189, 3295, 3285, 4511, 3332,
- 4511, 3307, 3303, 585, 594, 4511, 746, 734, 744, 754,
- 763, 770, 0, 755, 748, 763, 818, 789, 240, 822,
-
- 762, 381, 802, 791, 813, 824, 577, 4511, 4511, 3302,
- 871, 0, 4511, 3302, 3250, 3231, 4511, 4511, 4511, 4511,
- 4511, 4511, 4511, 4511, 4511, 4511, 4511, 0, 4511, 3279,
- 4511, 4511, 4511, 3276, 3260, 3259, 0, 3221, 3214, 0,
- 3264, 4511, 835, 4511, 3262, 0, 903, 4511, 3257, 842,
- 817, 0, 0, 910, 914, 918, 922, 0, 814, 0,
- 457, 4511, 0, 943, 4511, 3241, 3141, 483, 4511, 3217,
- 3212, 4511, 826, 556, 903, 930, 4511, 757, 0, 3134,
- 3131, 4511, 3129, 964, 4511, 3190, 3110, 3174, 3161, 4511,
- 0, 4511, 896, 4511, 0, 3172, 0, 0, 0, 4511,
-
- 4511, 0, 4511, 910, 913, 4511, 4511, 602, 0, 3169,
- 4511, 957, 3164, 3161, 3127, 4511, 0, 4511, 976, 4511,
- 1020, 4511, 4511, 4511, 4511, 0, 4511, 3116, 0, 4511,
- 0, 926, 930, 644, 4511, 662, 0, 4511, 4511, 0,
- 4511, 4511, 3071, 3121, 794, 3037, 4511, 0, 934, 932,
- 3117, 4511, 3091, 4511, 938, 939, 0, 940, 738, 956,
- 802, 3059, 876, 978, 933, 933, 939, 948, 964, 1030,
- 938, 958, 976, 968, 0, 996, 4511, 999, 1057, 1068,
- 981, 1079, 1077, 1080, 1074, 1068, 1070, 1120, 3062, 4511,
- 1014, 0, 4511, 4511, 4511, 0, 4511, 4511, 4511, 4511,
-
- 0, 4511, 4511, 0, 1078, 0, 0, 1153, 4511, 3063,
- 1166, 1077, 1076, 1091, 0, 1089, 0, 1018, 4511, 1022,
- 4511, 1025, 4511, 1035, 4511, 1091, 1067, 1138, 1162, 1242,
- 1177, 1308, 1105, 0, 4511, 4511, 2954, 1198, 4511, 4511,
- 1144, 0, 1137, 0, 0, 1161, 1156, 1123, 4511, 1202,
- 1308, 1309, 1310, 1319, 3013, 1312, 1311, 1327, 1320, 1321,
- 1323, 1382, 4511, 1172, 1166, 2589, 2537, 0, 1178, 1169,
- 1169, 1298, 1315, 1324, 1330, 1321, 1330, 1323, 0, 1341,
- 1332, 1348, 0, 1346, 1350, 1348, 1361, 1350, 1367, 2573,
- 1370, 1366, 1380, 1382, 1382, 1385, 1378, 1387, 1391, 1400,
-
- 1393, 1403, 1406, 1414, 1400, 1401, 1404, 1429, 1419, 1424,
- 1428, 1425, 1436, 1435, 1430, 1441, 1442, 1432, 1432, 1450,
- 1209, 1508, 4511, 1215, 1512, 1219, 1461, 1455, 1451, 0,
- 1143, 0, 1461, 1534, 1600, 1636, 204, 2525, 1606, 1681,
- 4511, 4511, 1453, 1463, 1591, 1442, 2524, 1599, 1604, 1600,
- 1607, 1605, 1611, 1608, 1650, 1620, 1606, 1614, 1613, 1654,
- 1663, 1652, 1661, 1666, 1682, 1664, 1693, 1694, 1655, 1674,
- 1662, 1675, 4511, 4511, 1683, 1676, 1677, 1683, 1697, 1692,
- 1731, 1711, 1702, 1718, 0, 0, 1719, 1706, 1716, 1735,
- 0, 0, 2553, 1722, 1732, 2540, 1725, 1722, 1733, 0,
-
- 1727, 1747, 1740, 1739, 1735, 1752, 1739, 1740, 1746, 0,
- 1750, 1763, 1760, 1750, 1752, 1759, 1777, 1762, 1778, 1769,
- 1783, 1778, 2514, 4511, 1224, 1230, 1772, 1783, 1780, 0,
- 1507, 1234, 2364, 732, 2273, 1809, 1845, 1430, 1076, 1585,
- 1797, 2286, 1785, 1807, 4511, 1811, 1814, 1829, 1835, 1821,
- 1808, 1822, 1845, 1859, 1860, 1862, 1868, 1869, 1870, 1825,
- 1888, 1890, 1876, 1891, 1874, 1902, 1894, 1898, 1795, 1891,
- 1882, 1899, 0, 1887, 0, 1892, 0, 2260, 1900, 1891,
- 1909, 0, 1904, 2253, 1902, 0, 1916, 1907, 1918, 2227,
- 1912, 1909, 1924, 2201, 1908, 1918, 1922, 0, 1934, 1925,
-
- 1931, 1947, 0, 1936, 1942, 1941, 1953, 2103, 1957, 1958,
- 1952, 2085, 1950, 1951, 1950, 1969, 1956, 2133, 1515, 1961,
- 1971, 2002, 4511, 2117, 2038, 1981, 1592, 1842, 2025, 1983,
- 0, 0, 1972, 1990, 1999, 1987, 1994, 2008, 2005, 2007,
- 2015, 2023, 2016, 2021, 2017, 2024, 2022, 2026, 2030, 2029,
- 2037, 2035, 2045, 2051, 2054, 2061, 0, 0, 4511, 4511,
- 1922, 0, 2049, 2039, 2050, 2053, 2051, 2051, 2054, 1831,
- 2073, 2064, 2077, 2073, 2081, 2082, 2072, 2085, 0, 2091,
- 0, 2074, 0, 1824, 0, 2091, 2094, 2082, 0, 2116,
- 2088, 0, 2092, 2133, 0, 1728, 2097, 2095, 1714, 1678,
-
- 4511, 2135, 4511, 2096, 4511, 1726, 4511, 1703, 1612, 1601,
- 1514, 1500, 1477, 1377, 1373, 1333, 1274, 1203, 2133, 2128,
- 2148, 2151, 2144, 2150, 2156, 2158, 2161, 2163, 2184, 2167,
- 2164, 2157, 2151, 2159, 2158, 2173, 0, 2165, 0, 2166,
- 2182, 2173, 2179, 2178, 2186, 0, 2185, 0, 2187, 2193,
- 0, 2202, 0, 0, 0, 2204, 2187, 2201, 2224, 2200,
- 2222, 2213, 2219, 2230, 2199, 2227, 2239, 2222, 2225, 1162,
- 1158, 2228, 2278, 4511, 1112, 1109, 1081, 1063, 1057, 984,
- 976, 969, 923, 913, 910, 931, 895, 891, 887, 881,
- 874, 856, 848, 843, 840, 804, 788, 2259, 2248, 2258,
-
- 2265, 2264, 2241, 0, 2254, 2265, 2268, 2279, 0, 2262,
- 2268, 2271, 2266, 2278, 2283, 2289, 2273, 4511, 2280, 2281,
- 2281, 2300, 2283, 2281, 0, 2303, 2307, 2292, 4511, 2302,
- 2304, 2319, 2303, 2307, 2309, 2328, 2309, 2357, 4511, 2362,
- 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
- 4511, 746, 725, 597, 577, 441, 426, 420, 267, 253,
- 247, 230, 183, 181, 2317, 2338, 2342, 2330, 2336, 2343,
- 2339, 2331, 2334, 2350, 2341, 2345, 0, 2350, 2346, 2344,
- 2349, 2361, 2364, 2367, 2359, 4511, 2357, 0, 2358, 2362,
- 2379, 2383, 2375, 4511, 2388, 2375, 2382, 2377, 2389, 4511,
-
- 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
- 4511, 122, 2399, 2398, 2382, 2391, 2391, 0, 2407, 2408,
- 0, 2397, 2398, 2420, 2417, 2414, 2418, 2426, 4511, 2414,
- 4511, 4511, 4511, 2422, 2429, 2419, 4511, 4511, 2417, 2437,
- 2435, 2425, 2428, 2428, 4511, 2431, 2445, 2445, 2447, 2452,
- 0, 0, 2461, 0, 2444, 0, 2459, 4511, 4511, 2452,
- 4511, 4511, 2454, 2465, 2452, 2467, 2471, 2470, 2476, 2481,
- 0, 2468, 2465, 2465, 2485, 0, 2465, 4511, 4511, 4511,
- 2489, 2491, 2479, 2488, 4511, 2501, 2491, 2498, 2503, 2490,
- 0, 4511, 2497, 4511, 2510, 2500, 2502, 2500, 0, 2514,
-
- 4511, 4511, 2516, 0, 2523, 2508, 2509, 0, 2528, 2531,
- 0, 0, 4511, 2593, 2614, 2635, 2656, 2677, 2698, 2719,
- 2740, 2761, 2782, 2803, 2824, 2845, 2866, 2887, 2908, 2929,
- 2950, 2971, 2992, 3013, 3025, 3044, 3055, 3074, 3095, 3108,
- 3127, 3148, 3169, 3190, 3202, 3221, 3242, 3263, 3280, 3292,
- 3311, 3332, 3353, 3374, 3395, 3408, 2553, 3423, 3444, 3463,
- 3484, 3505, 3517, 3536, 3557, 2569, 3057, 3578, 3590, 3609,
- 3630, 3651, 2558, 3663, 3684, 3705, 3726, 3747, 3768, 3789,
- 3810, 3831, 3843, 3862, 3879, 3891, 3910, 3931, 3952, 3973,
- 3994, 4007, 4022, 4043, 4062, 4083, 4104, 4125, 4146, 4167,
-
- 4179, 4189, 4208, 4229, 4250, 2561, 4262, 4283, 4304, 4325,
- 4346, 4367, 3028, 4379, 4398, 4419, 4432, 4447, 4468, 4489
- } ;
-
-static const flex_int16_t yy_def[1221] =
- { 0,
- 1113, 1113, 1114, 1114, 1115, 1116, 1117, 1117, 1118, 1118,
- 1119, 1119, 1113, 13, 1120, 1120, 1121, 1121, 1122, 1122,
- 1123, 1123, 1124, 1124, 1113, 25, 1125, 1125, 1126, 1126,
- 1127, 1127, 1128, 1128, 1113, 35, 1129, 1129, 1130, 1130,
- 1120, 1120, 1120, 1120, 1131, 1131, 1132, 1132, 1126, 1126,
- 1133, 1133, 1134, 1134, 1113, 1113, 1113, 1113, 1113, 1135,
- 1113, 1113, 1113, 1113, 1136, 1113, 1137, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1138, 1139,
- 1140, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1141, 1113, 1141, 1142, 1113, 1113, 1143, 1113, 1143, 1113,
-
- 1143, 1143, 1113, 1113, 1113, 1144, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1145, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1139, 1113, 1113,
- 1139, 1146, 1113, 1113, 1113, 1147, 1113, 1139, 1113, 1148,
- 1113, 1148, 1113, 1149, 1113, 1150, 1150, 1150, 1113, 1113,
- 1113, 1113, 1151, 1113, 1151, 1152, 1113, 1152, 1113, 1113,
- 1113, 1153, 1113, 1153, 1113, 1113, 1154, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1155, 1113, 1113, 1113, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1156, 1156,
-
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1113, 1113, 1158,
- 1113, 1159, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1160, 1113, 1160,
- 1113, 1113, 1113, 1113, 1113, 1113, 1161, 1113, 1113, 1162,
- 1162, 1113, 1113, 1113, 1113, 1163, 1113, 1113, 1113, 1113,
- 1113, 1164, 1165, 1113, 1113, 1113, 1113, 1166, 1164, 1167,
- 1168, 1113, 1169, 1113, 1113, 1113, 1113, 1170, 1113, 1113,
- 1113, 1113, 1113, 1171, 1171, 1172, 1113, 1113, 1173, 1113,
- 1113, 1113, 1174, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1175, 1113, 1113, 1113, 1176, 1113, 1177, 1178, 1179, 1113,
-
- 1113, 1180, 1113, 1180, 1180, 1113, 1113, 1181, 1182, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1183, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1184, 1113, 1113, 1185, 1113,
- 1186, 1186, 1186, 1187, 1113, 1187, 1188, 1113, 1113, 1189,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1190, 1113, 1113,
- 1113, 1113, 1191, 1113, 1113, 1113, 1192, 1192, 1192, 1192,
- 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
- 1192, 1192, 1192, 1192, 1192, 1192, 1113, 1192, 1192, 1192,
- 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193, 1113,
- 1113, 1194, 1113, 1113, 1113, 1195, 1113, 1113, 1113, 1113,
-
- 1196, 1113, 1113, 1197, 1113, 1198, 1199, 1200, 1113, 1113,
- 1113, 1113, 1113, 1113, 1201, 1198, 1202, 1203, 1113, 1203,
- 1113, 1204, 1113, 1204, 1113, 1113, 1205, 1205, 1205, 1113,
- 1205, 1205, 1113, 1206, 1113, 1113, 1207, 1113, 1113, 1113,
- 1113, 1208, 1113, 1209, 1210, 1211, 1211, 1212, 1113, 1212,
- 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
- 1213, 1213, 1113, 1214, 1214, 1113, 1215, 1216, 1113, 1113,
- 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
-
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113,
- 1200, 1200, 1113, 1200, 1200, 1113, 1113, 1113, 1113, 1201,
- 1218, 1202, 1113, 1113, 1205, 432, 430, 430, 1205, 432,
- 1113, 1113, 1113, 1113, 1211, 1211, 1113, 1213, 1213, 1213,
- 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
- 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214,
- 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
-
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
- 1113, 1113, 1113, 1113, 1200, 1200, 1113, 1113, 1113, 1218,
- 1218, 1218, 1113, 534, 534, 1205, 432, 1205, 1205, 1205,
- 1113, 1113, 1211, 1211, 1113, 1213, 1213, 1213, 1213, 1213,
- 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
- 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214,
- 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
-
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 1219, 1113,
- 1113, 1218, 1113, 1218, 1113, 1205, 1205, 1205, 1113, 1113,
- 1211, 1211, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
- 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
- 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 1113, 1113,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
- 1217, 1217, 1217, 1113, 1217, 1113, 1113, 1113, 1113, 1219,
-
- 1113, 1219, 1113, 1113, 1113, 1113, 1113, 1213, 1213, 1213,
- 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
- 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
- 1213, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113,
- 1113, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1220, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1213, 1213, 1213, 1213, 1213,
- 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1217, 1217,
-
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1217, 1217, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1220, 1113, 1220,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1213, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1217, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
-
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
- 1217, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
-
- 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
- 1217, 1217, 0, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
-
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113
- } ;
-
-static const flex_int16_t yy_nxt[4596] =
- { 0,
- 56, 57, 58, 56, 59, 56, 56, 56, 56, 56,
- 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
- 56, 56, 56, 56, 56, 56, 56, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 56, 56, 56, 56, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 56, 56, 56, 56, 61, 62, 56, 63, 56,
- 64, 56, 65, 56, 56, 56, 56, 56, 56, 56,
-
- 56, 66, 56, 56, 56, 56, 56, 56, 56, 56,
- 56, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 56, 56, 56, 56,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 56, 56, 56, 69, 70,
- 305, 71, 72, 89, 73, 90, 1045, 74, 75, 76,
- 76, 275, 276, 76, 77, 92, 89, 95, 90, 96,
- 78, 56, 93, 76, 95, 323, 96, 107, 108, 305,
-
- 109, 107, 108, 1012, 109, 125, 291, 126, 127, 154,
- 154, 155, 155, 119, 125, 120, 126, 127, 333, 79,
- 80, 238, 98, 239, 99, 121, 638, 56, 100, 122,
- 122, 122, 122, 98, 323, 99, 157, 1011, 158, 105,
- 350, 130, 131, 233, 132, 234, 159, 333, 81, 76,
- 76, 82, 83, 235, 84, 72, 128, 73, 85, 427,
- 74, 75, 76, 76, 101, 128, 76, 77, 134, 350,
- 135, 102, 103, 86, 104, 101, 76, 130, 131, 292,
- 132, 136, 102, 103, 1010, 104, 160, 378, 161, 229,
- 238, 230, 239, 101, 123, 297, 209, 298, 231, 210,
-
- 102, 1009, 79, 80, 101, 87, 209, 1008, 229, 210,
- 230, 102, 211, 211, 211, 211, 378, 231, 137, 138,
- 139, 1007, 211, 211, 211, 211, 243, 244, 335, 245,
- 336, 81, 76, 76, 110, 111, 112, 110, 113, 110,
- 110, 110, 110, 110, 110, 110, 114, 110, 114, 110,
- 110, 110, 110, 110, 110, 110, 110, 110, 110, 115,
- 110, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 110, 110, 110, 110,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
-
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 110, 110, 110, 119, 134,
- 120, 135, 335, 157, 336, 158, 163, 383, 164, 165,
- 121, 250, 136, 159, 122, 122, 122, 122, 163, 224,
- 164, 165, 163, 233, 241, 234, 343, 247, 248, 242,
- 249, 304, 225, 235, 269, 269, 383, 270, 280, 419,
- 281, 420, 226, 282, 282, 282, 282, 227, 251, 137,
- 138, 139, 345, 160, 1006, 161, 166, 167, 168, 346,
- 1005, 304, 225, 312, 313, 423, 314, 424, 166, 167,
- 168, 226, 166, 167, 168, 1004, 227, 344, 251, 123,
-
- 140, 140, 141, 140, 142, 143, 140, 140, 140, 144,
- 140, 140, 140, 140, 140, 140, 140, 145, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 147, 146, 146, 146, 146, 146,
- 146, 148, 149, 140, 150, 140, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 147, 146, 146, 146, 146, 146, 146,
- 148, 151, 140, 152, 170, 171, 213, 172, 214, 170,
- 171, 173, 172, 332, 219, 219, 173, 157, 224, 158,
-
- 174, 220, 220, 349, 449, 174, 450, 236, 428, 429,
- 157, 225, 158, 355, 221, 221, 319, 319, 319, 319,
- 236, 226, 356, 332, 222, 222, 227, 175, 388, 223,
- 223, 1003, 175, 349, 176, 177, 215, 178, 216, 176,
- 177, 225, 178, 355, 221, 221, 335, 160, 336, 161,
- 226, 1002, 356, 222, 222, 227, 175, 388, 223, 223,
- 160, 175, 161, 176, 335, 217, 336, 218, 176, 179,
- 180, 181, 179, 182, 183, 179, 179, 179, 179, 179,
- 179, 179, 179, 179, 179, 179, 179, 179, 184, 185,
- 179, 179, 179, 186, 179, 179, 187, 188, 189, 190,
-
- 191, 192, 193, 194, 195, 193, 193, 196, 197, 198,
- 199, 200, 193, 201, 202, 203, 204, 205, 206, 193,
- 207, 179, 179, 179, 179, 179, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 193, 193, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 193, 207,
- 179, 179, 179, 213, 726, 214, 163, 362, 241, 264,
- 265, 360, 266, 242, 278, 278, 267, 284, 285, 361,
- 286, 363, 278, 278, 287, 433, 433, 278, 278, 1001,
- 278, 278, 475, 288, 358, 364, 369, 427, 370, 289,
- 359, 360, 365, 382, 371, 345, 279, 367, 372, 361,
-
- 1000, 363, 346, 215, 279, 216, 166, 167, 168, 279,
- 963, 475, 279, 366, 358, 364, 369, 368, 370, 359,
- 376, 290, 365, 382, 371, 279, 962, 367, 372, 384,
- 377, 385, 217, 279, 218, 253, 243, 244, 279, 245,
- 268, 279, 366, 250, 386, 373, 368, 478, 268, 374,
- 376, 387, 405, 379, 254, 416, 255, 426, 255, 384,
- 377, 385, 961, 380, 255, 960, 381, 255, 256, 257,
- 959, 255, 258, 259, 386, 373, 478, 260, 958, 374,
- 251, 387, 405, 379, 254, 416, 255, 426, 255, 391,
- 391, 391, 391, 380, 255, 381, 957, 255, 256, 257,
-
- 255, 258, 259, 956, 247, 248, 260, 249, 261, 955,
- 251, 408, 409, 954, 410, 408, 409, 953, 410, 408,
- 409, 480, 410, 408, 409, 430, 410, 443, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 264, 265, 446, 266, 431, 431,
- 480, 267, 447, 952, 412, 428, 429, 443, 312, 313,
- 413, 314, 464, 414, 951, 284, 285, 950, 286, 465,
- 469, 470, 287, 471, 472, 473, 446, 949, 483, 484,
- 432, 288, 447, 412, 485, 476, 486, 289, 490, 474,
- 413, 487, 464, 414, 319, 319, 319, 319, 491, 465,
-
- 469, 470, 477, 471, 472, 473, 481, 483, 484, 432,
- 482, 492, 499, 485, 493, 476, 486, 490, 474, 290,
- 419, 487, 420, 948, 419, 268, 420, 423, 491, 424,
- 947, 477, 391, 391, 391, 391, 481, 423, 946, 424,
- 482, 492, 499, 493, 494, 495, 268, 451, 452, 453,
- 454, 455, 455, 456, 455, 455, 455, 455, 457, 455,
- 455, 455, 458, 455, 455, 459, 455, 460, 455, 455,
- 461, 455, 488, 494, 495, 462, 489, 451, 452, 453,
- 454, 455, 455, 456, 455, 455, 455, 455, 457, 455,
- 455, 455, 458, 455, 459, 455, 460, 455, 455, 461,
-
- 455, 496, 488, 497, 503, 489, 500, 504, 505, 506,
- 501, 945, 508, 498, 509, 502, 507, 944, 520, 428,
- 429, 527, 528, 277, 277, 449, 529, 450, 428, 429,
- 496, 531, 533, 497, 503, 943, 500, 504, 505, 506,
- 501, 508, 498, 509, 631, 502, 507, 510, 520, 511,
- 527, 528, 512, 513, 522, 523, 529, 524, 514, 515,
- 534, 531, 533, 942, 516, 517, 941, 526, 409, 518,
- 410, 525, 525, 525, 525, 543, 519, 510, 544, 511,
- 535, 535, 512, 513, 411, 411, 411, 411, 514, 515,
- 428, 429, 545, 516, 517, 539, 539, 546, 518, 542,
-
- 542, 542, 542, 569, 449, 543, 450, 570, 544, 571,
- 572, 624, 536, 625, 936, 573, 427, 523, 935, 625,
- 526, 409, 545, 410, 632, 885, 624, 546, 625, 428,
- 429, 626, 523, 569, 524, 722, 723, 570, 724, 571,
- 572, 536, 427, 427, 573, 427, 427, 427, 427, 427,
- 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
- 427, 427, 427, 427, 427, 427, 427, 427, 427, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 428, 429, 884, 538, 427, 537,
-
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 427, 427, 427, 540, 540, 540, 540,
- 547, 547, 547, 547, 547, 540, 540, 540, 540, 540,
- 540, 547, 547, 547, 574, 547, 548, 549, 575, 547,
- 550, 576, 553, 558, 551, 883, 552, 577, 578, 579,
- 428, 429, 556, 557, 580, 540, 540, 540, 540, 540,
- 540, 554, 581, 574, 555, 583, 548, 549, 575, 582,
- 550, 576, 553, 558, 551, 552, 586, 577, 578, 579,
- 584, 587, 556, 557, 580, 882, 585, 588, 589, 881,
-
- 554, 591, 581, 555, 1113, 583, 592, 593, 582, 559,
- 560, 561, 562, 594, 595, 563, 586, 596, 597, 584,
- 564, 587, 598, 599, 565, 585, 588, 566, 589, 567,
- 600, 591, 568, 601, 602, 603, 592, 593, 606, 559,
- 560, 561, 562, 594, 595, 563, 607, 596, 597, 604,
- 564, 608, 598, 599, 565, 605, 566, 609, 567, 610,
- 600, 568, 611, 601, 602, 603, 612, 614, 606, 613,
- 615, 616, 617, 618, 620, 607, 619, 621, 622, 604,
- 608, 623, 428, 429, 274, 605, 644, 609, 627, 610,
- 628, 629, 611, 633, 641, 642, 612, 614, 613, 880,
-
- 615, 616, 617, 618, 620, 619, 621, 622, 631, 522,
- 523, 623, 524, 626, 523, 644, 524, 801, 627, 802,
- 628, 629, 879, 633, 641, 642, 525, 525, 525, 525,
- 525, 525, 525, 525, 427, 427, 878, 427, 427, 427,
- 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
- 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
- 427, 634, 634, 634, 634, 634, 634, 634, 634, 634,
- 634, 634, 634, 634, 634, 634, 634, 634, 634, 634,
- 634, 634, 634, 634, 634, 634, 428, 429, 632, 635,
- 427, 634, 634, 634, 634, 634, 634, 634, 634, 634,
-
- 634, 634, 634, 634, 634, 634, 634, 634, 634, 634,
- 634, 634, 634, 634, 634, 427, 427, 427, 636, 636,
- 643, 547, 547, 877, 639, 639, 547, 547, 547, 547,
- 547, 648, 651, 547, 876, 547, 547, 428, 429, 646,
- 650, 647, 547, 653, 428, 429, 649, 655, 656, 657,
- 643, 658, 428, 429, 637, 637, 637, 637, 428, 429,
- 652, 648, 651, 637, 637, 637, 637, 637, 637, 646,
- 650, 647, 547, 653, 547, 649, 547, 655, 656, 657,
- 801, 658, 802, 547, 669, 547, 547, 661, 547, 652,
- 654, 671, 659, 637, 637, 637, 637, 637, 637, 640,
-
- 640, 640, 640, 660, 547, 662, 666, 663, 640, 640,
- 640, 640, 640, 640, 669, 547, 547, 661, 670, 672,
- 654, 671, 659, 673, 668, 875, 664, 674, 675, 665,
- 676, 677, 678, 660, 662, 667, 666, 663, 640, 640,
- 640, 640, 640, 640, 682, 684, 679, 670, 672, 683,
- 685, 874, 686, 673, 668, 664, 674, 675, 665, 676,
- 687, 677, 678, 680, 688, 667, 690, 691, 695, 681,
- 872, 693, 694, 696, 682, 684, 697, 698, 683, 699,
- 685, 686, 700, 701, 869, 702, 703, 704, 705, 687,
- 706, 707, 709, 680, 688, 690, 708, 691, 695, 681,
-
- 693, 694, 696, 710, 711, 713, 697, 698, 712, 699,
- 714, 700, 716, 701, 702, 703, 715, 704, 705, 717,
- 706, 707, 709, 719, 720, 708, 721, 727, 727, 729,
- 547, 731, 710, 547, 711, 713, 547, 712, 732, 852,
- 714, 757, 716, 547, 547, 715, 841, 547, 734, 717,
- 738, 547, 719, 739, 720, 721, 737, 547, 733, 729,
- 731, 428, 429, 728, 728, 728, 728, 547, 732, 735,
- 757, 748, 728, 728, 728, 728, 728, 728, 734, 736,
- 738, 547, 547, 739, 547, 740, 737, 733, 741, 742,
- 547, 547, 547, 743, 428, 429, 547, 747, 547, 735,
-
- 748, 744, 728, 728, 728, 728, 728, 728, 736, 745,
- 547, 746, 547, 547, 753, 740, 547, 750, 741, 742,
- 547, 749, 758, 743, 547, 751, 752, 747, 759, 754,
- 760, 744, 761, 756, 762, 764, 755, 832, 766, 745,
- 767, 746, 768, 771, 753, 765, 770, 750, 772, 773,
- 775, 749, 758, 776, 751, 777, 752, 759, 779, 754,
- 760, 761, 780, 756, 762, 764, 755, 766, 781, 782,
- 767, 783, 768, 771, 765, 770, 784, 785, 772, 773,
- 775, 786, 776, 787, 789, 777, 788, 779, 791, 792,
- 793, 780, 795, 796, 547, 797, 798, 781, 799, 782,
-
- 783, 803, 804, 722, 723, 784, 724, 785, 807, 547,
- 786, 808, 547, 787, 789, 788, 547, 809, 791, 792,
- 793, 547, 795, 796, 797, 811, 798, 547, 799, 547,
- 547, 803, 804, 428, 429, 427, 810, 547, 547, 547,
- 812, 808, 813, 547, 547, 547, 547, 809, 547, 814,
- 806, 547, 547, 815, 817, 811, 819, 547, 821, 547,
- 818, 816, 822, 805, 820, 824, 810, 547, 826, 812,
- 823, 825, 813, 547, 828, 827, 547, 833, 814, 835,
- 829, 836, 815, 547, 817, 830, 819, 834, 821, 818,
- 816, 837, 822, 820, 831, 824, 838, 839, 826, 823,
-
- 840, 825, 842, 843, 828, 827, 844, 833, 845, 835,
- 829, 836, 846, 847, 849, 830, 848, 834, 850, 723,
- 851, 837, 853, 854, 831, 838, 839, 855, 862, 840,
- 863, 870, 842, 843, 718, 871, 844, 801, 845, 802,
- 873, 794, 846, 847, 849, 848, 856, 857, 850, 851,
- 547, 858, 853, 854, 859, 547, 855, 860, 862, 790,
- 863, 870, 861, 864, 865, 871, 547, 887, 866, 873,
- 547, 867, 547, 547, 868, 888, 856, 857, 547, 886,
- 547, 858, 890, 547, 859, 547, 547, 860, 889, 547,
- 892, 861, 899, 864, 865, 900, 891, 887, 866, 898,
-
- 901, 867, 893, 902, 868, 888, 547, 894, 886, 895,
- 904, 897, 890, 903, 906, 896, 778, 905, 889, 907,
- 892, 908, 899, 909, 900, 891, 910, 911, 912, 898,
- 901, 893, 902, 913, 914, 916, 894, 917, 895, 904,
- 897, 918, 774, 903, 906, 896, 905, 923, 907, 928,
- 915, 908, 909, 924, 925, 919, 910, 911, 912, 920,
- 926, 927, 921, 913, 914, 916, 917, 929, 769, 933,
- 934, 918, 922, 937, 930, 763, 923, 931, 928, 915,
- 939, 547, 940, 924, 925, 919, 969, 932, 965, 920,
- 926, 927, 921, 966, 967, 968, 970, 929, 933, 934,
-
- 971, 922, 937, 972, 930, 964, 973, 931, 974, 975,
- 976, 730, 977, 978, 979, 969, 932, 980, 965, 981,
- 982, 983, 984, 966, 967, 968, 970, 985, 427, 986,
- 971, 987, 988, 972, 964, 989, 973, 974, 990, 975,
- 976, 977, 991, 978, 979, 992, 993, 980, 981, 994,
- 982, 983, 984, 995, 996, 999, 997, 985, 986, 939,
- 987, 940, 988, 1013, 939, 989, 940, 990, 1014, 1015,
- 1016, 1017, 991, 998, 1018, 992, 993, 1019, 994, 1020,
- 1021, 1022, 995, 996, 999, 1023, 997, 1024, 1025, 725,
- 1026, 1027, 1013, 1028, 1029, 1030, 1031, 1032, 1014, 1015,
-
- 1016, 1017, 998, 1033, 1018, 1034, 1035, 1019, 1020, 1021,
- 1036, 1022, 1037, 1038, 1023, 1039, 1044, 1024, 1025, 1026,
- 1027, 1040, 1028, 1043, 1029, 1030, 1031, 1032, 1048, 1041,
- 1046, 1047, 1033, 1042, 1034, 1035, 1049, 1050, 1051, 1052,
- 1036, 1053, 1037, 1038, 1054, 1039, 1044, 1055, 1056, 1057,
- 1040, 1058, 1043, 1059, 1060, 1061, 1062, 1048, 1041, 1063,
- 1046, 1047, 1042, 1064, 1065, 1049, 1050, 1066, 1051, 1052,
- 1053, 1067, 1068, 1054, 1069, 1070, 1071, 1055, 1056, 1057,
- 1072, 1058, 1073, 1059, 1060, 1061, 1062, 1074, 1075, 1063,
- 1076, 1077, 1064, 1078, 1065, 1079, 1080, 1066, 1081, 1082,
-
- 1067, 1068, 1083, 1069, 1070, 1084, 1071, 1085, 1086, 1087,
- 1072, 1088, 1073, 1089, 1090, 718, 1091, 1074, 1075, 1076,
- 1092, 1077, 1093, 1078, 1094, 1079, 1080, 1081, 1095, 1082,
- 1096, 1097, 1083, 1098, 1099, 1084, 1100, 1085, 1086, 1087,
- 1088, 1101, 1089, 1102, 1090, 1091, 1103, 1104, 1105, 1106,
- 1092, 1107, 1093, 1094, 1108, 692, 1109, 1110, 1095, 1111,
- 1096, 1097, 1112, 1098, 1099, 1100, 375, 375, 689, 434,
- 1101, 434, 541, 1102, 541, 1103, 1104, 1105, 645, 1106,
- 427, 1107, 415, 415, 1108, 1109, 1110, 415, 590, 1111,
- 344, 343, 1112, 68, 68, 68, 68, 68, 68, 68,
-
- 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 91, 91, 91, 91, 91,
- 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
- 91, 91, 91, 91, 91, 91, 94, 94, 94, 94,
- 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
- 94, 94, 94, 94, 94, 94, 94, 97, 97, 97,
- 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97, 97, 97, 106, 106,
-
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 56,
- 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
- 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 124, 124, 124, 124, 124, 124, 124, 124, 124,
- 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
- 124, 124, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
-
- 129, 129, 129, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 133, 133, 153, 153, 153, 153, 153, 153,
- 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
- 153, 153, 153, 153, 153, 156, 156, 156, 156, 156,
- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- 156, 156, 156, 156, 156, 156, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 169, 169, 169,
- 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
-
- 169, 169, 169, 169, 169, 169, 169, 169, 208, 208,
- 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
- 208, 208, 208, 208, 208, 208, 208, 208, 208, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- 232, 232, 237, 237, 237, 237, 237, 237, 237, 237,
-
- 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
- 237, 237, 237, 240, 240, 240, 240, 240, 240, 240,
- 240, 240, 240, 240, 240, 240, 240, 240, 240, 240,
- 240, 240, 240, 240, 246, 547, 246, 438, 246, 246,
- 455, 455, 455, 246, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 263, 409, 263, 390, 263, 263,
- 417, 417, 479, 263, 274, 417, 274, 274, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
- 274, 274, 274, 274, 274, 277, 354, 277, 277, 277,
-
- 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
- 277, 277, 277, 277, 277, 277, 283, 283, 351, 283,
- 348, 283, 283, 467, 466, 463, 283, 295, 315, 295,
- 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,
- 295, 295, 295, 295, 295, 295, 295, 295, 299, 299,
- 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
- 299, 299, 299, 313, 299, 315, 299, 299, 299, 302,
- 310, 302, 302, 296, 302, 302, 302, 302, 302, 302,
- 302, 302, 302, 302, 441, 302, 440, 302, 302, 302,
- 309, 439, 285, 309, 309, 309, 309, 309, 309, 309,
-
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 317, 438, 317, 436, 317, 317, 435, 425, 269,
- 317, 322, 421, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 325, 265, 325, 325, 325, 325, 325, 325,
- 325, 325, 325, 325, 325, 325, 325, 325, 325, 248,
- 325, 325, 325, 326, 244, 326, 341, 326, 403, 326,
- 326, 326, 326, 402, 326, 326, 400, 399, 398, 326,
- 328, 397, 328, 328, 328, 395, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
-
- 328, 331, 394, 331, 393, 331, 331, 390, 354, 352,
- 331, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 337, 351, 337, 337, 337, 337, 337, 307,
- 337, 337, 337, 337, 337, 337, 337, 306, 337, 330,
- 337, 337, 337, 340, 348, 340, 347, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 307, 306,
- 341, 340, 340, 340, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 353, 307, 353, 353, 353,
-
- 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
- 353, 353, 353, 353, 353, 353, 357, 357, 306, 339,
- 338, 357, 357, 389, 307, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 392, 306, 330, 392, 392, 392,
- 392, 392, 392, 392, 392, 392, 392, 392, 392, 329,
- 392, 327, 392, 396, 321, 396, 396, 396, 396, 324,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 321,
-
- 401, 320, 401, 401, 401, 404, 318, 404, 404, 404,
- 316, 404, 404, 404, 404, 404, 404, 404, 404, 404,
- 313, 315, 311, 404, 404, 404, 246, 310, 246, 308,
- 246, 246, 307, 306, 303, 246, 406, 301, 406, 406,
- 406, 406, 406, 406, 406, 406, 406, 406, 406, 406,
- 406, 406, 406, 406, 406, 406, 406, 407, 300, 407,
- 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
- 407, 407, 407, 407, 407, 407, 407, 407, 418, 418,
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 263,
-
- 296, 263, 294, 263, 263, 293, 285, 273, 263, 422,
- 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
- 427, 272, 427, 427, 427, 427, 427, 427, 427, 427,
- 427, 427, 427, 427, 427, 427, 427, 271, 427, 427,
- 427, 274, 265, 274, 274, 274, 274, 274, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
- 274, 274, 437, 262, 437, 248, 437, 437, 244, 1113,
- 117, 437, 117, 437, 442, 1113, 442, 442, 442, 442,
- 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
-
- 442, 442, 442, 442, 442, 295, 1113, 295, 295, 295,
- 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,
- 295, 295, 295, 295, 295, 295, 444, 1113, 444, 444,
- 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
- 444, 444, 444, 444, 444, 444, 444, 445, 1113, 445,
- 445, 445, 445, 445, 445, 445, 445, 445, 445, 445,
- 445, 445, 445, 445, 445, 445, 445, 445, 299, 299,
- 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
- 299, 299, 299, 1113, 299, 1113, 299, 299, 299, 302,
- 1113, 302, 302, 1113, 302, 302, 302, 302, 302, 302,
-
- 302, 302, 302, 302, 1113, 302, 1113, 302, 302, 302,
- 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
- 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
- 448, 309, 1113, 1113, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 317, 1113, 317, 1113, 317, 317, 1113, 1113,
- 1113, 317, 326, 1113, 326, 1113, 326, 1113, 326, 326,
- 326, 326, 1113, 326, 326, 1113, 1113, 1113, 326, 328,
- 1113, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
-
- 331, 1113, 331, 1113, 331, 331, 1113, 1113, 1113, 331,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 337, 1113, 337, 337, 337, 337, 337, 1113, 337,
- 337, 337, 337, 337, 337, 337, 1113, 337, 1113, 337,
- 337, 337, 340, 1113, 340, 1113, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 1113, 1113, 1113,
- 340, 340, 340, 468, 1113, 468, 468, 468, 468, 468,
- 468, 468, 468, 468, 468, 468, 468, 468, 468, 468,
- 468, 468, 468, 468, 353, 1113, 353, 353, 353, 353,
-
- 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
- 353, 353, 353, 353, 353, 357, 357, 1113, 1113, 1113,
- 357, 357, 389, 1113, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 392, 1113, 1113, 392, 392, 392, 392,
- 392, 392, 392, 392, 392, 392, 392, 392, 1113, 392,
- 1113, 392, 396, 1113, 396, 396, 396, 396, 1113, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 1113, 401,
-
- 1113, 401, 401, 401, 404, 1113, 404, 404, 404, 1113,
- 404, 404, 404, 404, 404, 404, 404, 404, 404, 1113,
- 1113, 1113, 404, 404, 404, 406, 1113, 406, 406, 406,
- 406, 406, 406, 406, 406, 406, 406, 406, 406, 406,
- 406, 406, 406, 406, 406, 406, 407, 1113, 407, 407,
- 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
- 407, 407, 407, 407, 407, 407, 407, 521, 521, 521,
- 521, 521, 521, 521, 521, 521, 521, 521, 521, 521,
- 521, 521, 521, 521, 521, 521, 521, 521, 530, 1113,
- 530, 1113, 530, 530, 1113, 1113, 1113, 530, 532, 1113,
-
- 532, 1113, 532, 532, 1113, 1113, 1113, 532, 418, 418,
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 422,
- 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
- 427, 1113, 427, 427, 427, 427, 427, 427, 427, 427,
- 427, 427, 427, 427, 427, 427, 427, 1113, 427, 427,
- 427, 437, 1113, 437, 1113, 437, 437, 1113, 1113, 1113,
- 437, 1113, 437, 442, 1113, 442, 442, 442, 442, 442,
- 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
-
- 442, 442, 442, 442, 444, 1113, 444, 444, 444, 444,
- 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
- 444, 444, 444, 444, 444, 445, 1113, 445, 445, 445,
- 445, 445, 445, 445, 445, 445, 445, 445, 445, 445,
- 445, 445, 445, 445, 445, 445, 302, 1113, 302, 302,
- 1113, 302, 302, 302, 302, 302, 302, 302, 302, 302,
- 302, 1113, 302, 1113, 302, 302, 302, 448, 448, 448,
- 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
- 448, 448, 448, 448, 448, 448, 448, 448, 331, 1113,
- 331, 1113, 331, 331, 1113, 1113, 1113, 331, 342, 1113,
-
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 468,
- 1113, 468, 468, 468, 468, 468, 468, 468, 468, 468,
- 468, 468, 468, 468, 468, 468, 468, 468, 468, 468,
- 357, 357, 1113, 1113, 1113, 357, 357, 630, 1113, 630,
- 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
- 630, 630, 630, 630, 630, 630, 630, 630, 800, 800,
- 800, 800, 800, 800, 800, 800, 800, 800, 800, 800,
- 800, 800, 800, 800, 800, 800, 800, 800, 800, 938,
- 938, 938, 938, 938, 938, 938, 938, 938, 938, 938,
-
- 938, 938, 938, 938, 938, 938, 938, 938, 938, 938,
- 55, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113
-
- } ;
-
-static const flex_int16_t yy_chk[4596] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 3, 3,
- 102, 3, 3, 5, 3, 5, 1012, 3, 3, 3,
- 3, 79, 79, 3, 3, 6, 6, 7, 6, 7,
- 3, 21, 6, 3, 8, 132, 8, 11, 11, 102,
-
- 11, 12, 12, 964, 12, 19, 85, 19, 19, 27,
- 28, 27, 28, 17, 20, 17, 20, 20, 148, 3,
- 3, 51, 9, 51, 9, 17, 537, 22, 9, 17,
- 17, 17, 17, 10, 132, 10, 29, 963, 29, 10,
- 176, 21, 21, 47, 21, 47, 29, 148, 3, 3,
- 3, 4, 4, 47, 4, 4, 19, 4, 4, 537,
- 4, 4, 4, 4, 9, 20, 4, 4, 23, 176,
- 23, 9, 9, 4, 9, 10, 4, 22, 22, 85,
- 22, 23, 10, 10, 962, 10, 29, 199, 29, 45,
- 52, 45, 52, 9, 17, 93, 37, 93, 45, 37,
-
- 9, 961, 4, 4, 10, 4, 38, 960, 46, 38,
- 46, 10, 37, 37, 37, 37, 199, 46, 23, 23,
- 23, 959, 38, 38, 38, 38, 57, 57, 153, 57,
- 153, 4, 4, 4, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 18, 24,
- 18, 24, 155, 30, 155, 30, 31, 202, 31, 31,
- 18, 64, 24, 30, 18, 18, 18, 18, 32, 43,
- 32, 32, 53, 48, 53, 48, 167, 61, 61, 53,
- 61, 101, 43, 48, 73, 73, 202, 73, 81, 261,
- 81, 261, 43, 81, 81, 81, 81, 43, 64, 24,
- 24, 24, 170, 30, 958, 30, 31, 31, 31, 170,
- 957, 101, 43, 111, 111, 268, 111, 268, 32, 32,
- 32, 43, 53, 53, 53, 956, 43, 167, 64, 18,
-
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 33, 33, 39, 33, 39, 34,
- 34, 33, 34, 147, 41, 42, 34, 49, 44, 49,
-
- 33, 41, 42, 175, 308, 34, 308, 49, 274, 274,
- 50, 44, 50, 184, 41, 42, 122, 122, 122, 122,
- 50, 44, 185, 147, 41, 42, 44, 33, 207, 41,
- 42, 955, 34, 175, 33, 33, 39, 33, 39, 34,
- 34, 44, 34, 184, 41, 42, 334, 49, 334, 49,
- 44, 954, 185, 41, 42, 44, 33, 207, 41, 42,
- 50, 34, 50, 33, 336, 39, 336, 39, 34, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 40, 634, 40, 54, 189, 54, 69,
- 69, 188, 69, 54, 80, 80, 69, 82, 82, 188,
- 82, 189, 128, 128, 82, 278, 278, 131, 131, 953,
- 138, 138, 359, 82, 187, 190, 194, 634, 195, 82,
- 187, 188, 191, 201, 196, 345, 80, 192, 196, 188,
-
- 952, 189, 345, 40, 128, 40, 54, 54, 54, 131,
- 897, 359, 138, 191, 187, 190, 194, 192, 195, 187,
- 198, 82, 191, 201, 196, 80, 896, 192, 196, 203,
- 198, 204, 40, 128, 40, 65, 243, 243, 131, 243,
- 69, 138, 191, 250, 205, 197, 192, 361, 82, 197,
- 198, 206, 251, 200, 65, 259, 65, 273, 65, 203,
- 198, 204, 895, 200, 65, 894, 200, 65, 65, 65,
- 893, 65, 65, 65, 205, 197, 361, 65, 892, 197,
- 250, 206, 251, 200, 65, 259, 65, 273, 65, 211,
- 211, 211, 211, 200, 65, 200, 891, 65, 65, 65,
-
- 65, 65, 65, 890, 247, 247, 65, 247, 65, 889,
- 250, 254, 254, 888, 254, 255, 255, 887, 255, 256,
- 256, 363, 256, 257, 257, 275, 257, 293, 254, 254,
- 254, 254, 255, 255, 255, 255, 256, 256, 256, 256,
- 257, 257, 257, 257, 264, 264, 304, 264, 276, 276,
- 363, 264, 305, 886, 254, 275, 275, 293, 312, 312,
- 256, 312, 332, 257, 885, 284, 284, 884, 284, 333,
- 349, 350, 284, 355, 356, 358, 304, 883, 365, 366,
- 276, 284, 305, 254, 367, 360, 368, 284, 371, 358,
- 256, 369, 332, 257, 319, 319, 319, 319, 372, 333,
-
- 349, 350, 360, 355, 356, 358, 364, 365, 366, 276,
- 364, 373, 381, 367, 374, 360, 368, 371, 358, 284,
- 418, 369, 418, 882, 420, 264, 420, 422, 372, 422,
- 881, 360, 391, 391, 391, 391, 364, 424, 880, 424,
- 364, 373, 381, 374, 376, 378, 284, 321, 321, 321,
- 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
- 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
- 321, 321, 370, 376, 378, 321, 370, 321, 321, 321,
- 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
- 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
-
- 321, 379, 370, 380, 383, 370, 382, 383, 384, 385,
- 382, 879, 386, 380, 387, 382, 385, 878, 405, 427,
- 427, 412, 413, 433, 433, 448, 414, 448, 639, 639,
- 379, 416, 426, 380, 383, 877, 382, 383, 384, 385,
- 382, 386, 380, 387, 531, 382, 385, 388, 405, 388,
- 412, 413, 388, 388, 408, 408, 414, 408, 388, 388,
- 428, 416, 426, 876, 388, 388, 875, 411, 411, 388,
- 411, 408, 408, 408, 408, 441, 388, 388, 443, 388,
- 429, 429, 388, 388, 411, 411, 411, 411, 388, 388,
- 428, 428, 446, 388, 388, 431, 431, 447, 388, 438,
-
- 438, 438, 438, 464, 450, 441, 450, 465, 443, 469,
- 470, 521, 429, 521, 871, 471, 429, 524, 870, 524,
- 526, 526, 446, 526, 531, 818, 625, 447, 625, 431,
- 431, 626, 626, 464, 626, 632, 632, 465, 632, 469,
- 470, 429, 430, 430, 471, 430, 430, 430, 430, 430,
- 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
- 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
- 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
- 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
- 430, 430, 430, 430, 430, 430, 817, 430, 430, 430,
-
- 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
- 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
- 430, 430, 430, 430, 430, 430, 432, 432, 432, 432,
- 451, 452, 453, 457, 456, 432, 432, 432, 432, 432,
- 432, 454, 459, 460, 472, 461, 451, 452, 473, 458,
- 453, 474, 457, 461, 454, 816, 456, 475, 476, 477,
- 432, 432, 459, 460, 478, 432, 432, 432, 432, 432,
- 432, 458, 480, 472, 458, 482, 451, 452, 473, 481,
- 453, 474, 457, 461, 454, 456, 486, 475, 476, 477,
- 484, 487, 459, 460, 478, 815, 485, 488, 489, 814,
-
- 458, 491, 480, 458, 462, 482, 492, 493, 481, 462,
- 462, 462, 462, 494, 495, 462, 486, 496, 497, 484,
- 462, 487, 498, 499, 462, 485, 488, 462, 489, 462,
- 500, 491, 462, 501, 502, 503, 492, 493, 505, 462,
- 462, 462, 462, 494, 495, 462, 506, 496, 497, 504,
- 462, 507, 498, 499, 462, 504, 462, 508, 462, 509,
- 500, 462, 510, 501, 502, 503, 511, 513, 505, 512,
- 514, 515, 516, 517, 519, 506, 518, 519, 519, 504,
- 507, 520, 638, 638, 638, 504, 546, 508, 527, 509,
- 528, 529, 510, 533, 543, 544, 511, 513, 512, 813,
-
- 514, 515, 516, 517, 519, 518, 519, 519, 631, 522,
- 522, 520, 522, 525, 525, 546, 525, 719, 527, 719,
- 528, 529, 812, 533, 543, 544, 522, 522, 522, 522,
- 525, 525, 525, 525, 534, 534, 811, 534, 534, 534,
- 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
- 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
- 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
- 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
- 534, 534, 534, 534, 534, 534, 534, 534, 631, 534,
- 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
-
- 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
- 534, 534, 534, 534, 534, 534, 534, 534, 535, 535,
- 545, 548, 550, 810, 539, 539, 549, 552, 557, 551,
- 554, 549, 552, 553, 809, 559, 558, 640, 640, 548,
- 551, 548, 556, 554, 727, 727, 550, 556, 557, 558,
- 545, 559, 535, 535, 536, 536, 536, 536, 539, 539,
- 553, 549, 552, 536, 536, 536, 536, 536, 536, 548,
- 551, 548, 555, 554, 562, 550, 560, 556, 557, 558,
- 800, 559, 800, 563, 569, 561, 566, 562, 564, 553,
- 555, 571, 560, 536, 536, 536, 536, 536, 536, 540,
-
- 540, 540, 540, 561, 565, 563, 566, 564, 540, 540,
- 540, 540, 540, 540, 569, 567, 568, 562, 570, 572,
- 555, 571, 560, 575, 568, 808, 565, 576, 577, 565,
- 578, 579, 580, 561, 563, 567, 566, 564, 540, 540,
- 540, 540, 540, 540, 582, 584, 581, 570, 572, 583,
- 587, 806, 588, 575, 568, 565, 576, 577, 565, 578,
- 589, 579, 580, 581, 590, 567, 594, 595, 599, 581,
- 799, 597, 598, 601, 582, 584, 602, 603, 583, 604,
- 587, 588, 605, 606, 796, 607, 608, 609, 611, 589,
- 612, 613, 615, 581, 590, 594, 614, 595, 599, 581,
-
- 597, 598, 601, 616, 617, 619, 602, 603, 618, 604,
- 620, 605, 621, 606, 607, 608, 620, 609, 611, 622,
- 612, 613, 615, 627, 628, 614, 629, 636, 636, 641,
- 651, 643, 616, 646, 617, 619, 647, 618, 644, 784,
- 620, 669, 621, 650, 652, 620, 770, 660, 647, 622,
- 651, 648, 627, 652, 628, 629, 650, 649, 646, 641,
- 643, 636, 636, 637, 637, 637, 637, 653, 644, 648,
- 669, 660, 637, 637, 637, 637, 637, 637, 647, 649,
- 651, 654, 655, 652, 656, 653, 650, 646, 654, 655,
- 657, 658, 659, 656, 728, 728, 665, 659, 663, 648,
-
- 660, 657, 637, 637, 637, 637, 637, 637, 649, 658,
- 661, 658, 662, 664, 665, 653, 667, 662, 654, 655,
- 668, 661, 670, 656, 666, 663, 664, 659, 671, 666,
- 672, 657, 674, 668, 676, 679, 667, 761, 680, 658,
- 681, 658, 683, 687, 665, 679, 685, 662, 688, 689,
- 691, 661, 670, 692, 663, 693, 664, 671, 695, 666,
- 672, 674, 696, 668, 676, 679, 667, 680, 697, 699,
- 681, 700, 683, 687, 679, 685, 701, 702, 688, 689,
- 691, 704, 692, 705, 707, 693, 706, 695, 709, 710,
- 711, 696, 713, 714, 733, 715, 716, 697, 717, 699,
-
- 700, 720, 721, 722, 722, 701, 722, 702, 730, 736,
- 704, 733, 734, 705, 707, 706, 737, 734, 709, 710,
- 711, 735, 713, 714, 715, 736, 716, 739, 717, 740,
- 738, 720, 721, 726, 726, 726, 735, 741, 743, 745,
- 737, 733, 738, 744, 747, 742, 746, 734, 748, 739,
- 729, 750, 749, 740, 742, 736, 744, 752, 746, 751,
- 743, 741, 747, 725, 745, 749, 735, 753, 751, 737,
- 748, 750, 738, 754, 753, 752, 755, 763, 739, 764,
- 754, 765, 740, 756, 742, 755, 744, 763, 746, 743,
- 741, 766, 747, 745, 756, 749, 767, 768, 751, 748,
-
- 769, 750, 771, 772, 753, 752, 773, 763, 774, 764,
- 754, 765, 775, 776, 778, 755, 777, 763, 780, 724,
- 782, 766, 786, 787, 756, 767, 768, 788, 791, 769,
- 793, 797, 771, 772, 718, 798, 773, 802, 774, 802,
- 804, 712, 775, 776, 778, 777, 790, 790, 780, 782,
- 820, 790, 786, 787, 790, 819, 788, 790, 791, 708,
- 793, 797, 790, 794, 794, 798, 823, 820, 794, 804,
- 821, 794, 824, 822, 794, 821, 790, 790, 825, 819,
- 826, 790, 823, 827, 790, 828, 831, 790, 822, 830,
- 825, 790, 832, 794, 794, 833, 824, 820, 794, 831,
-
- 834, 794, 826, 835, 794, 821, 829, 827, 819, 828,
- 838, 830, 823, 836, 841, 829, 694, 840, 822, 842,
- 825, 843, 832, 844, 833, 824, 845, 847, 849, 831,
- 834, 826, 835, 850, 852, 856, 827, 857, 828, 838,
- 830, 858, 690, 836, 841, 829, 840, 860, 842, 865,
- 852, 843, 844, 861, 862, 859, 845, 847, 849, 859,
- 863, 864, 859, 850, 852, 856, 857, 866, 684, 868,
- 869, 858, 859, 872, 867, 678, 860, 867, 865, 852,
- 873, 898, 873, 861, 862, 859, 903, 867, 899, 859,
- 863, 864, 859, 900, 901, 902, 905, 866, 868, 869,
-
- 906, 859, 872, 907, 867, 898, 908, 867, 910, 911,
- 912, 642, 913, 914, 915, 903, 867, 916, 899, 917,
- 919, 920, 921, 900, 901, 902, 905, 922, 635, 923,
- 906, 924, 926, 907, 898, 927, 908, 910, 928, 911,
- 912, 913, 930, 914, 915, 931, 932, 916, 917, 933,
- 919, 920, 921, 934, 935, 937, 936, 922, 923, 938,
- 924, 938, 926, 965, 940, 927, 940, 928, 966, 967,
- 968, 969, 930, 936, 970, 931, 932, 971, 933, 972,
- 973, 974, 934, 935, 937, 975, 936, 976, 978, 633,
- 979, 980, 965, 981, 982, 983, 984, 985, 966, 967,
-
- 968, 969, 936, 987, 970, 989, 990, 971, 972, 973,
- 991, 974, 992, 993, 975, 995, 999, 976, 978, 979,
- 980, 996, 981, 998, 982, 983, 984, 985, 1015, 997,
- 1013, 1014, 987, 997, 989, 990, 1016, 1017, 1019, 1020,
- 991, 1022, 992, 993, 1023, 995, 999, 1024, 1025, 1026,
- 996, 1027, 998, 1028, 1030, 1034, 1035, 1015, 997, 1036,
- 1013, 1014, 997, 1039, 1040, 1016, 1017, 1041, 1019, 1020,
- 1022, 1042, 1043, 1023, 1044, 1046, 1047, 1024, 1025, 1026,
- 1048, 1027, 1049, 1028, 1030, 1034, 1035, 1050, 1053, 1036,
- 1055, 1057, 1039, 1060, 1040, 1063, 1064, 1041, 1065, 1066,
-
- 1042, 1043, 1067, 1044, 1046, 1068, 1047, 1069, 1070, 1072,
- 1048, 1073, 1049, 1074, 1075, 623, 1077, 1050, 1053, 1055,
- 1081, 1057, 1082, 1060, 1083, 1063, 1064, 1065, 1084, 1066,
- 1086, 1087, 1067, 1088, 1089, 1068, 1090, 1069, 1070, 1072,
- 1073, 1093, 1074, 1095, 1075, 1077, 1096, 1097, 1098, 1100,
- 1081, 1103, 1082, 1083, 1105, 596, 1106, 1107, 1084, 1109,
- 1086, 1087, 1110, 1088, 1089, 1090, 1157, 1157, 593, 1173,
- 1093, 1173, 1206, 1095, 1206, 1096, 1097, 1098, 547, 1100,
- 538, 1103, 1166, 1166, 1105, 1106, 1107, 1166, 490, 1109,
- 467, 466, 1110, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
-
- 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
- 1114, 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115,
- 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
- 1115, 1115, 1115, 1115, 1115, 1116, 1116, 1116, 1116, 1116,
- 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
- 1116, 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117,
- 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
- 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, 1119,
-
- 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
- 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1120,
- 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
- 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
- 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
- 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
- 1121, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
- 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
- 1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
- 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
-
- 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
- 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
- 1124, 1124, 1124, 1124, 1125, 1125, 1125, 1125, 1125, 1125,
- 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
- 1125, 1125, 1125, 1125, 1125, 1126, 1126, 1126, 1126, 1126,
- 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
- 1126, 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127,
- 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
- 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1128, 1128, 1128,
- 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
-
- 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1129,
- 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
- 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1130,
- 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
- 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
- 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
- 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
- 1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
- 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
- 1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
-
- 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
- 1133, 1133, 1133, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
- 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
- 1134, 1134, 1134, 1134, 1135, 455, 1135, 437, 1135, 1135,
- 1213, 1213, 1213, 1135, 1136, 1136, 1136, 1136, 1136, 1136,
- 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
- 1136, 1136, 1136, 1136, 1137, 410, 1137, 389, 1137, 1137,
- 1167, 1167, 362, 1137, 1138, 1167, 1138, 1138, 1138, 1138,
- 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
- 1138, 1138, 1138, 1138, 1138, 1139, 353, 1139, 1139, 1139,
-
- 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
- 1139, 1139, 1139, 1139, 1139, 1139, 1140, 1140, 351, 1140,
- 346, 1140, 1140, 344, 343, 328, 1140, 1141, 315, 1141,
- 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
- 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1142, 1142,
- 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
- 1142, 1142, 1142, 314, 1142, 313, 1142, 1142, 1142, 1143,
- 310, 1143, 1143, 296, 1143, 1143, 1143, 1143, 1143, 1143,
- 1143, 1143, 1143, 1143, 289, 1143, 288, 1143, 1143, 1143,
- 1144, 287, 286, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
-
- 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
- 1144, 1145, 283, 1145, 281, 1145, 1145, 280, 271, 270,
- 1145, 1146, 267, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1147, 266, 1147, 1147, 1147, 1147, 1147, 1147,
- 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 249,
- 1147, 1147, 1147, 1148, 245, 1148, 241, 1148, 239, 1148,
- 1148, 1148, 1148, 238, 1148, 1148, 236, 235, 234, 1148,
- 1149, 230, 1149, 1149, 1149, 216, 1149, 1149, 1149, 1149,
- 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
-
- 1149, 1150, 215, 1150, 214, 1150, 1150, 210, 183, 182,
- 1150, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1152, 180, 1152, 1152, 1152, 1152, 1152, 178,
- 1152, 1152, 1152, 1152, 1152, 1152, 1152, 177, 1152, 174,
- 1152, 1152, 1152, 1153, 173, 1153, 172, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 168, 166,
- 164, 1153, 1153, 1153, 1154, 1154, 1154, 1154, 1154, 1154,
- 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
- 1154, 1154, 1154, 1154, 1154, 1155, 161, 1155, 1155, 1155,
-
- 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
- 1155, 1155, 1155, 1155, 1155, 1155, 1156, 1156, 160, 159,
- 158, 1156, 1156, 1158, 150, 1158, 1158, 1158, 1158, 1158,
- 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
- 1158, 1158, 1158, 1158, 1159, 149, 145, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 144,
- 1159, 142, 1159, 1160, 137, 1160, 1160, 1160, 1160, 135,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1161, 1161, 1161, 1161, 1161, 1161,
- 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 130,
-
- 1161, 126, 1161, 1161, 1161, 1162, 120, 1162, 1162, 1162,
- 115, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
- 113, 112, 109, 1162, 1162, 1162, 1163, 107, 1163, 105,
- 1163, 1163, 104, 103, 99, 1163, 1164, 96, 1164, 1164,
- 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
- 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1165, 95, 1165,
- 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
- 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1168, 1168,
- 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
- 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1169,
-
- 92, 1169, 90, 1169, 1169, 86, 84, 78, 1169, 1170,
- 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
- 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
- 1171, 77, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
- 1171, 1171, 1171, 1171, 1171, 1171, 1171, 74, 1171, 1171,
- 1171, 1172, 71, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
- 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
- 1172, 1172, 1174, 66, 1174, 63, 1174, 1174, 59, 55,
- 16, 1174, 15, 1174, 1175, 0, 1175, 1175, 1175, 1175,
- 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
-
- 1175, 1175, 1175, 1175, 1175, 1176, 0, 1176, 1176, 1176,
- 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176,
- 1176, 1176, 1176, 1176, 1176, 1176, 1177, 0, 1177, 1177,
- 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
- 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179, 1179,
- 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
- 1179, 1179, 1179, 0, 1179, 0, 1179, 1179, 1179, 1180,
- 0, 1180, 1180, 0, 1180, 1180, 1180, 1180, 1180, 1180,
-
- 1180, 1180, 1180, 1180, 0, 1180, 0, 1180, 1180, 1180,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1182, 0, 0, 1182, 1182, 1182, 1182, 1182, 1182,
- 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
- 1182, 1182, 1183, 0, 1183, 0, 1183, 1183, 0, 0,
- 0, 1183, 1184, 0, 1184, 0, 1184, 0, 1184, 1184,
- 1184, 1184, 0, 1184, 1184, 0, 0, 0, 1184, 1185,
- 0, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
- 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
-
- 1186, 0, 1186, 0, 1186, 1186, 0, 0, 0, 1186,
- 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
- 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
- 1187, 1188, 0, 1188, 1188, 1188, 1188, 1188, 0, 1188,
- 1188, 1188, 1188, 1188, 1188, 1188, 0, 1188, 0, 1188,
- 1188, 1188, 1189, 0, 1189, 0, 1189, 1189, 1189, 1189,
- 1189, 1189, 1189, 1189, 1189, 1189, 1189, 0, 0, 0,
- 1189, 1189, 1189, 1190, 0, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1191, 0, 1191, 1191, 1191, 1191,
-
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1192, 1192, 0, 0, 0,
- 1192, 1192, 1193, 0, 1193, 1193, 1193, 1193, 1193, 1193,
- 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
- 1193, 1193, 1193, 1194, 0, 0, 1194, 1194, 1194, 1194,
- 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 0, 1194,
- 0, 1194, 1195, 0, 1195, 1195, 1195, 1195, 0, 1195,
- 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
- 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 0, 1196,
-
- 0, 1196, 1196, 1196, 1197, 0, 1197, 1197, 1197, 0,
- 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 0,
- 0, 0, 1197, 1197, 1197, 1198, 0, 1198, 1198, 1198,
- 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
- 1198, 1198, 1198, 1198, 1198, 1198, 1199, 0, 1199, 1199,
- 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
- 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1200, 1200,
- 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
- 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201, 0,
- 1201, 0, 1201, 1201, 0, 0, 0, 1201, 1202, 0,
-
- 1202, 0, 1202, 1202, 0, 0, 0, 1202, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1204,
- 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
- 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
- 1205, 0, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 0, 1205, 1205,
- 1205, 1207, 0, 1207, 0, 1207, 1207, 0, 0, 0,
- 1207, 0, 1207, 1208, 0, 1208, 1208, 1208, 1208, 1208,
- 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
-
- 1208, 1208, 1208, 1208, 1209, 0, 1209, 1209, 1209, 1209,
- 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209,
- 1209, 1209, 1209, 1209, 1209, 1210, 0, 1210, 1210, 1210,
- 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
- 1210, 1210, 1210, 1210, 1210, 1210, 1211, 0, 1211, 1211,
- 0, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
- 1211, 0, 1211, 0, 1211, 1211, 1211, 1212, 1212, 1212,
- 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
- 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1214, 0,
- 1214, 0, 1214, 1214, 0, 0, 0, 1214, 1215, 0,
-
- 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215,
- 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1216,
- 0, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
- 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
- 1217, 1217, 0, 0, 0, 1217, 1217, 1218, 0, 1218,
- 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218,
- 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219, 1219,
- 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
- 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
-
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113
-
- } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-extern int yy_flex_debug;
-int yy_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "tests/scan.l"
-/* scan.l - scanner for flex input -*-C-*- */
-#line 4 "tests/scan.l"
-/* Copyright (c) 1990 The Regents of the University of California. */
-/* All rights reserved. */
-
-/* This code is derived from software contributed to Berkeley by */
-/* Vern Paxson. */
-
-/* The United States Government has rights in this work pursuant */
-/* to contract no. DE-AC03-76SF00098 between the United States */
-/* Department of Energy and the University of California. */
-
-/* This file is part of flex. */
-
-/* Redistribution and use in source and binary forms, with or without */
-/* modification, are permitted provided that the following conditions */
-/* are met: */
-
-/* 1. Redistributions of source code must retain the above copyright */
-/* notice, this list of conditions and the following disclaimer. */
-/* 2. Redistributions in binary form must reproduce the above copyright */
-/* notice, this list of conditions and the following disclaimer in the */
-/* documentation and/or other materials provided with the distribution. */
-
-/* Neither the name of the University nor the names of its contributors */
-/* may be used to endorse or promote products derived from this software */
-/* without specific prior written permission. */
-
-/* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */
-/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */
-/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
-/* PURPOSE. */
-
-#include "flexdef.h"
-#include "parse.h"
-extern bool tablesverify, tablesext;
-extern int trlcontxt; /* Set in parse.y for each rule. */
-extern const char *escaped_qstart, *escaped_qend;
-
-#define M4QSTART "[""["
-#define M4QEND "]""]"
-
-#define ESCAPED_QSTART "[" M4QEND M4QSTART "[" M4QEND M4QSTART
-#define ESCAPED_QEND M4QEND "]" M4QSTART M4QEND "]" M4QSTART
-
-#define ACTION_ECHO add_action( yytext )
-#define ACTION_IFDEF(def, should_define) \
- { \
- if ( should_define ) \
- action_define( def, 1 ); \
- }
-
-#define ACTION_ECHO_QSTART add_action (ESCAPED_QSTART)
-#define ACTION_ECHO_QEND add_action (ESCAPED_QEND)
-
-#define ACTION_M4_IFDEF(def, should_define) \
- do{ \
- if ( should_define ) \
- buf_m4_define( &m4defs_buf, def, NULL);\
- else \
- buf_m4_undefine( &m4defs_buf, def);\
- } while(0)
-
-#define MARK_END_OF_PROLOG mark_prolog();
-
-#if 1
-#define YY_DECL \
- static int real_flexscan(void)
-#else
-#define YY_DECL \
- int flexscan(void)
-#endif
-
-#define RETURNCHAR \
- yylval = (unsigned char) yytext[0]; \
- return CHAR;
-
-#define RETURNNAME \
- if(yyleng < MAXLINE) \
- { \
- strncpy( nmstr, yytext, sizeof(nmstr) ); \
- piece_pack(); \
- piece_append("<PLex_Name>"); \
- piece_escape(yytext, strlen(yytext)); \
- piece_append("</PLex_Name>"); \
- piece_pack(); \
- return ~NAME; \
- /* return NAME;*/ \
- } \
- else \
- do { \
- synerr(_("Input line too long\n")); \
- FLEX_EXIT(EXIT_FAILURE); \
- } while (0)
-
-#define PUT_BACK_STRING(str, start) \
- { size_t i = strlen( str ); \
- while ( i > start ) \
- unput((str)[--i]); \
- }
-
-#define CHECK_REJECT(str) \
- if ( all_upper( str ) ) \
- reject = true;
-
-#define CHECK_YYMORE(str) \
- if ( all_lower( str ) ) \
- yymore_used = true;
-
-#define YY_USER_INIT \
- if ( getenv("POSIXLY_CORRECT") ) \
- posix_compat = true;
-
-#define START_CODEBLOCK(x) do { \
- /* Emit the needed line directive... */\
- if (indented_code == false) { \
- linenum++; \
- line_directive_out(NULL, 1); \
- } \
- add_action(M4QSTART); \
- yy_push_state(CODEBLOCK); \
- if ((indented_code = x)) ACTION_ECHO; \
- piece_append("<PLex_Section1Or2_CodeBlock>"); \
-} while(0)
-
-#define END_CODEBLOCK do { \
- yy_pop_state();\
- add_action(M4QEND); \
- if (!indented_code) line_directive_out(NULL, 0);\
- piece_append("</PLex_Section1Or2_CodeBlock>"); \
-} while (0)
-
-/* Nick */
-char piece_temp[100], *piece[10000];
-int piece0, piece1;
-
-void piece_append(const char *str);
-void piece_insert(int n, const char *str);
-void piece_escape(const char *p, size_t n);
-void piece_flush(size_t n);
-void piece_pack();
-
-static void markup_action(const char *text);
-static void markup_option(const char *name, int sense);
-
-#line 1991 "lex.yy.c"
-
-#line 1993 "lex.yy.c"
-
-#define INITIAL 0
-#define SECT2 1
-#define SECT2PROLOG 2
-#define SECT3 3
-#define CODEBLOCK 4
-#define PICKUPDEF 5
-#define SC 6
-#define CARETISBOL 7
-#define NUM 8
-#define QUOTE 9
-#define FIRSTCCL 10
-#define CCL 11
-#define ACTION 12
-#define RECOVER 13
-#define COMMENT 14
-#define ACTION_STRING 15
-#define PERCENT_BRACE_ACTION 16
-#define OPTION 17
-#define LINEDIR 18
-#define CODEBLOCK_MATCH_BRACE 19
-#define GROUP_WITH_PARAMS 20
-#define GROUP_MINUS_PARAMS 21
-#define EXTENDED_COMMENT 22
-#define COMMENT_DISCARD 23
-#define CODE_COMMENT 24
-#define SECT3_NOESCAPE 25
-#define CHARACTER_CONSTANT 26
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals ( void );
-
-/* Accessor methods to globals.
- These are made visible to non-reentrant scanners for convenience. */
-
-int yylex_destroy ( void );
-
-int yyget_debug ( void );
-
-void yyset_debug ( int debug_flag );
-
-YY_EXTRA_TYPE yyget_extra ( void );
-
-void yyset_extra ( YY_EXTRA_TYPE user_defined );
-
-FILE *yyget_in ( void );
-
-void yyset_in ( FILE * _in_str );
-
-FILE *yyget_out ( void );
-
-void yyset_out ( FILE * _out_str );
-
- int yyget_leng ( void );
-
-char *yyget_text ( void );
-
-int yyget_lineno ( void );
-
-void yyset_lineno ( int _line_number );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap ( void );
-#else
-extern int yywrap ( void );
-#endif
-#endif
-
-#ifndef YY_NO_UNPUT
-
- static void yyunput ( int c, char *buf_ptr );
-
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy ( char *, const char *, int );
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen ( const char * );
-#endif
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput ( void );
-#else
-static int input ( void );
-#endif
-
-#endif
-
- static int yy_start_stack_ptr = 0;
- static int yy_start_stack_depth = 0;
- static int *yy_start_stack = NULL;
-
- static void yy_push_state ( int _new_state );
-
- static void yy_pop_state ( void );
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
-#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
-#endif
-
-/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
- if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
- { \
- int c = '*'; \
- int n; \
- for ( n = 0; n < max_size && \
- (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (char) c; \
- if ( c == '\n' ) \
- buf[n++] = (char) c; \
- if ( c == EOF && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- result = n; \
- } \
- else \
- { \
- errno=0; \
- while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
- { \
- if( errno != EINTR) \
- { \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- break; \
- } \
- errno=0; \
- clearerr(yyin); \
- } \
- }\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int yylex (void);
-
-#define YY_DECL int yylex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK /*LINTED*/break;
-#endif
-
-#define YY_RULE_SETUP \
- if ( yyleng > 0 ) \
- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
- (yytext[yyleng - 1] == '\n'); \
- YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
- yy_state_type yy_current_state;
- char *yy_cp, *yy_bp;
- int yy_act;
-
- if ( !(yy_init) )
- {
- (yy_init) = 1;
-
-#ifdef YY_USER_INIT
- YY_USER_INIT;
-#endif
-
- if ( ! (yy_start) )
- (yy_start) = 1; /* first start state */
-
- if ( ! yyin )
- yyin = stdin;
-
- if ( ! yyout )
- yyout = stdout;
-
- if ( ! YY_CURRENT_BUFFER ) {
- yyensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
- yy_create_buffer( yyin, YY_BUF_SIZE );
- }
-
- yy_load_buffer_state( );
- }
-
- {
-#line 184 "tests/scan.l"
-
-#line 186 "tests/scan.l"
- static int bracelevel, didadef, indented_code;
- static int doing_rule_action = false;
- static int option_sense;
-
- int doing_codeblock = false;
- int brace_depth=0, brace_start_line=0;
- char nmdef[MAXLINE];
-
-
-#line 2259 "lex.yy.c"
-
- while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
- {
- yy_cp = (yy_c_buf_p);
-
- /* Support of yytext. */
- *yy_cp = (yy_hold_char);
-
- /* yy_bp points to the position in yy_ch_buf of the start of
- * the current run.
- */
- yy_bp = yy_cp;
-
- yy_current_state = (yy_start);
- yy_current_state += YY_AT_BOL();
-yy_match:
- do
- {
- int yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1114 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- ++yy_cp;
- }
- while ( yy_base[yy_current_state] != 4511 );
-
-yy_find_action:
- yy_act = yy_accept[yy_current_state];
- if ( yy_act == 0 )
- { /* have to back up */
- yy_cp = (yy_last_accepting_cpos);
- yy_current_state = (yy_last_accepting_state);
- yy_act = yy_accept[yy_current_state];
- }
-
- YY_DO_BEFORE_ACTION;
-
-do_action: /* This label is used only to access EOF actions. */
-
- switch ( yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = (yy_hold_char);
- yy_cp = (yy_last_accepting_cpos);
- yy_current_state = (yy_last_accepting_state);
- goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 196 "tests/scan.l"
-START_CODEBLOCK(true); piece_append("<PLex_Text>");
- YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 197 "tests/scan.l"
-add_action("/*[""["); yy_push_state( COMMENT );
- YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 198 "tests/scan.l"
-yy_push_state( LINEDIR );
- YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 199 "tests/scan.l"
-return SCDECL;
- YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 200 "tests/scan.l"
-return XSCDECL;
- YY_BREAK
-case 6:
-/* rule 6 can match eol */
-YY_RULE_SETUP
-#line 201 "tests/scan.l"
-START_CODEBLOCK(false); piece_flush(strlen(yytext)); piece_append("<PLex_Text>");
- YY_BREAK
-case 7:
-/* rule 7 can match eol */
-YY_RULE_SETUP
-#line 202 "tests/scan.l"
-{
- brace_start_line = linenum;
- ++linenum;
- buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum);
- brace_depth = 1;
- yy_push_state(CODEBLOCK_MATCH_BRACE);
- }
- YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 210 "tests/scan.l"
-synerr( _("malformed '%top' directive") );
- YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 212 "tests/scan.l"
-/* discard */
- YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 214 "tests/scan.l"
-{
- sectnum = 2;
- bracelevel = 0;
- mark_defs1();
- line_directive_out(NULL, 1);
- BEGIN(SECT2PROLOG);
-#if 1
- piece_append("</PLex_Section1>");
- piece_pack();
- piece_escape(yytext, strlen(yytext));
- piece_append("<PLex_Section2>");
- piece_pack();
- return ~SECTEND;
-#else
- return SECTEND;
-#endif
- }
- YY_BREAK
-case 11:
-/* rule 11 can match eol */
-YY_RULE_SETUP
-#line 232 "tests/scan.l"
-yytext_is_array = false; ++linenum; piece_append("<PLex_Section1_Options><PLex_Section1_Options_Array>"); piece_flush(strlen(yytext) - 1); piece_append("</PLex_Section1_Options_Array></PLex_Section1_Options>");
- YY_BREAK
-case 12:
-/* rule 12 can match eol */
-YY_RULE_SETUP
-#line 233 "tests/scan.l"
-yytext_is_array = true; ++linenum; piece_append("<PLex_Section1_Options><PLex_Section1_Options_Array value=\"true\">"); piece_flush(strlen(yytext) - 1); piece_append("</PLex_Section1_Options_Array></PLex_Section1_Options>");
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 235 "tests/scan.l"
-BEGIN(OPTION); return TOK_OPTION;
- YY_BREAK
-case 14:
-/* rule 14 can match eol */
-YY_RULE_SETUP
-#line 237 "tests/scan.l"
-++linenum; /* ignore */
- YY_BREAK
-case 15:
-/* rule 15 can match eol */
-YY_RULE_SETUP
-#line 238 "tests/scan.l"
-++linenum; /* ignore */
- YY_BREAK
-/* xgettext: no-c-format */
-case 16:
-/* rule 16 can match eol */
-YY_RULE_SETUP
-#line 241 "tests/scan.l"
-synerr( _( "unrecognized '%' directive" ) );
- YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 243 "tests/scan.l"
-{
- if(yyleng < MAXLINE)
- {
- strncpy( nmstr, yytext, sizeof(nmstr) );
- }
- else
- {
- synerr( _("Definition name too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
- }
-
- didadef = false;
- BEGIN(PICKUPDEF);
- }
- YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 258 "tests/scan.l"
-RETURNNAME;
- YY_BREAK
-case 19:
-/* rule 19 can match eol */
-YY_RULE_SETUP
-#line 259 "tests/scan.l"
-++linenum; /* allows blank lines in section 1 */
- YY_BREAK
-case 20:
-/* rule 20 can match eol */
-YY_RULE_SETUP
-#line 260 "tests/scan.l"
-ACTION_ECHO; ++linenum; /* maybe end of comment line */
- YY_BREAK
-
-/* */
-case 21:
-YY_RULE_SETUP
-#line 265 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 266 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 23:
-/* rule 23 can match eol */
-YY_RULE_SETUP
-#line 268 "tests/scan.l"
-++linenum; ACTION_ECHO;
- YY_BREAK
-
-
-case 24:
-YY_RULE_SETUP
-#line 271 "tests/scan.l"
-add_action("*/]""]"); yy_pop_state();
- YY_BREAK
-
-
-case 25:
-YY_RULE_SETUP
-#line 274 "tests/scan.l"
-ACTION_ECHO; yy_pop_state();
- YY_BREAK
-
-
-/* This is the same as COMMENT, but is discarded rather than output. */
-case 26:
-YY_RULE_SETUP
-#line 279 "tests/scan.l"
-yy_pop_state();
- YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 280 "tests/scan.l"
-;
- YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 281 "tests/scan.l"
-;
- YY_BREAK
-case 29:
-/* rule 29 can match eol */
-YY_RULE_SETUP
-#line 282 "tests/scan.l"
-++linenum;
- YY_BREAK
-
-
-case 30:
-YY_RULE_SETUP
-#line 286 "tests/scan.l"
-yy_pop_state();
- YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 287 "tests/scan.l"
-;
- YY_BREAK
-case 32:
-/* rule 32 can match eol */
-YY_RULE_SETUP
-#line 288 "tests/scan.l"
-++linenum;
- YY_BREAK
-
-
-case 33:
-/* rule 33 can match eol */
-YY_RULE_SETUP
-#line 292 "tests/scan.l"
-yy_pop_state();
- YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 293 "tests/scan.l"
-linenum = myctoi( yytext );
- YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 295 "tests/scan.l"
-{
- free(infilename);
- infilename = xstrdup(yytext + 1);
- infilename[strlen( infilename ) - 1] = '\0';
- }
- YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 300 "tests/scan.l"
-/* ignore spurious characters */
- YY_BREAK
-
-
-case 37:
-YY_RULE_SETUP
-#line 303 "tests/scan.l"
-ACTION_ECHO_QSTART;
- YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 304 "tests/scan.l"
-ACTION_ECHO_QEND;
- YY_BREAK
-
-
-case 39:
-/* rule 39 can match eol */
-YY_RULE_SETUP
-#line 308 "tests/scan.l"
-++linenum; piece_append("</PLex_Text>"); piece_flush(strlen(yytext)); END_CODEBLOCK;
- YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 309 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 310 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 42:
-/* rule 42 can match eol */
-YY_RULE_SETUP
-#line 311 "tests/scan.l"
-{
- ++linenum;
- ACTION_ECHO;
- if ( indented_code ) { piece_flush(strlen(yytext)); piece_append("</PLex_Text>"); END_CODEBLOCK; }
- }
- YY_BREAK
-
-
-case 43:
-YY_RULE_SETUP
-#line 319 "tests/scan.l"
-{
- if( --brace_depth == 0){
- /* TODO: Matched. */
- yy_pop_state();
- }else
- buf_strnappend(&top_buf, yytext, yyleng);
- }
- YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 327 "tests/scan.l"
-{
- brace_depth++;
- buf_strnappend(&top_buf, yytext, yyleng);
- }
- YY_BREAK
-case 45:
-/* rule 45 can match eol */
-YY_RULE_SETUP
-#line 332 "tests/scan.l"
-{
- ++linenum;
- buf_strnappend(&top_buf, yytext, yyleng);
- }
- YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 337 "tests/scan.l"
-buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart));
- YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 338 "tests/scan.l"
-buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend));
- YY_BREAK
-case 48:
-YY_RULE_SETUP
-#line 339 "tests/scan.l"
-{
- buf_strnappend(&top_buf, yytext, yyleng);
- }
- YY_BREAK
-case YY_STATE_EOF(CODEBLOCK_MATCH_BRACE):
-#line 343 "tests/scan.l"
-{
- linenum = brace_start_line;
- synerr(_("Unmatched '{'"));
- yyterminate();
- }
- YY_BREAK
-
-
-case 49:
-YY_RULE_SETUP
-#line 352 "tests/scan.l"
-/* separates name and definition */
- YY_BREAK
-case 50:
-YY_RULE_SETUP
-#line 354 "tests/scan.l"
-{
- if(yyleng < MAXLINE)
- {
- strncpy( nmdef, yytext, sizeof(nmdef) );
- }
- else
- {
- format_synerr( _("Definition value for {%s} too long\n"), nmstr);
- FLEX_EXIT(EXIT_FAILURE);
- }
- /* Skip trailing whitespace. */
- {
- size_t i = strlen( nmdef );
- while (i > 0 && (nmdef[i-1] == ' ' || nmdef[i-1] == '\t'))
- --i;
- nmdef[i] = '\0';
- }
-
- ndinstal( nmstr, nmdef );
- didadef = true;
- }
- YY_BREAK
-case 51:
-/* rule 51 can match eol */
-YY_RULE_SETUP
-#line 376 "tests/scan.l"
-{
- if ( ! didadef )
- synerr( _( "incomplete name definition" ) );
- BEGIN(INITIAL);
- ++linenum;
- }
- YY_BREAK
-
-
-case 52:
-/* rule 52 can match eol */
-YY_RULE_SETUP
-#line 386 "tests/scan.l"
-++linenum; BEGIN(INITIAL);
- YY_BREAK
-case 53:
-YY_RULE_SETUP
-#line 387 "tests/scan.l"
-option_sense = true;
- YY_BREAK
-case 54:
-YY_RULE_SETUP
-#line 389 "tests/scan.l"
-return '=';
- YY_BREAK
-case 55:
-YY_RULE_SETUP
-#line 391 "tests/scan.l"
-option_sense = ! option_sense;
- YY_BREAK
-case 56:
-YY_RULE_SETUP
-#line 393 "tests/scan.l"
-csize = option_sense ? 128 : 256; markup_option("SevenBit", option_sense);
- YY_BREAK
-case 57:
-YY_RULE_SETUP
-#line 394 "tests/scan.l"
-csize = option_sense ? 256 : 128; markup_option("SevenBit", !option_sense);
- YY_BREAK
-case 58:
-YY_RULE_SETUP
-#line 396 "tests/scan.l"
-long_align = option_sense; markup_option("Align", option_sense);
- YY_BREAK
-case 59:
-YY_RULE_SETUP
-#line 397 "tests/scan.l"
-{
- ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense );
- interactive = option_sense;
- markup_option("AlwaysInteractive", option_sense);
- }
- YY_BREAK
-case 60:
-YY_RULE_SETUP
-#line 402 "tests/scan.l"
-yytext_is_array = option_sense; markup_option("Array", option_sense);
- YY_BREAK
-case 61:
-YY_RULE_SETUP
-#line 403 "tests/scan.l"
-backing_up_report = option_sense; markup_option("Backup", option_sense);
- YY_BREAK
-case 62:
-YY_RULE_SETUP
-#line 404 "tests/scan.l"
-interactive = ! option_sense; markup_option("Interactive", !option_sense);
- YY_BREAK
-case 63:
-YY_RULE_SETUP
-#line 405 "tests/scan.l"
-bison_bridge_lval = option_sense; markup_option("BisonBridge", option_sense);
- YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 406 "tests/scan.l"
-{ if((bison_bridge_lloc = option_sense))
- bison_bridge_lval = true;
- markup_option("BisonLocations", option_sense);
- }
- YY_BREAK
-case 65:
-YY_RULE_SETUP
-#line 410 "tests/scan.l"
-C_plus_plus = option_sense; markup_option("CPlusPlus", option_sense);
- YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 411 "tests/scan.l"
-sf_set_case_ins(!option_sense); markup_option("Caseless", !option_sense);
- YY_BREAK
-case 67:
-YY_RULE_SETUP
-#line 412 "tests/scan.l"
-sf_set_case_ins(option_sense); markup_option("Caseless", option_sense);
- YY_BREAK
-case 68:
-YY_RULE_SETUP
-#line 413 "tests/scan.l"
-ddebug = option_sense; markup_option("Debug", option_sense);
- YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 414 "tests/scan.l"
-spprdflt = ! option_sense; markup_option("Default", option_sense);
- YY_BREAK
-case 70:
-YY_RULE_SETUP
-#line 415 "tests/scan.l"
-useecs = option_sense; markup_option("ECS", option_sense);
- YY_BREAK
-case 71:
-YY_RULE_SETUP
-#line 416 "tests/scan.l"
-{
- useecs = usemecs = false;
- use_read = fullspd = true;
- markup_option("Fast", option_sense);
- }
- YY_BREAK
-case 72:
-YY_RULE_SETUP
-#line 421 "tests/scan.l"
-{
- useecs = usemecs = false;
- use_read = fulltbl = true;
- markup_option("Full", option_sense);
- }
- YY_BREAK
-case 73:
-YY_RULE_SETUP
-#line 426 "tests/scan.l"
-ACTION_IFDEF("YY_NO_INPUT", ! option_sense); markup_option("Input", option_sense);
- YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 427 "tests/scan.l"
-interactive = option_sense; markup_option("Interactive", option_sense);
- YY_BREAK
-case 75:
-YY_RULE_SETUP
-#line 428 "tests/scan.l"
-lex_compat = option_sense; markup_option("LexCompat", option_sense);
- YY_BREAK
-case 76:
-YY_RULE_SETUP
-#line 429 "tests/scan.l"
-posix_compat = option_sense; markup_option("PosixCompat", option_sense);
- YY_BREAK
-case 77:
-YY_RULE_SETUP
-#line 430 "tests/scan.l"
-gen_line_dirs = option_sense; markup_option("Line", option_sense);
- YY_BREAK
-case 78:
-YY_RULE_SETUP
-#line 431 "tests/scan.l"
-{
- ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense);
- /* Override yywrap */
- if( option_sense == true )
- do_yywrap = false;
- markup_option("Main", option_sense);
- }
- YY_BREAK
-case 79:
-YY_RULE_SETUP
-#line 438 "tests/scan.l"
-usemecs = option_sense; markup_option("MetaECS", option_sense);
- YY_BREAK
-case 80:
-YY_RULE_SETUP
-#line 439 "tests/scan.l"
-{
- ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense );
- interactive = !option_sense;
- markup_option("NeverInteractive", option_sense);
- }
- YY_BREAK
-case 81:
-YY_RULE_SETUP
-#line 444 "tests/scan.l"
-performance_report += option_sense ? 1 : -1; markup_option("PerfReport", option_sense);
- YY_BREAK
-case 82:
-YY_RULE_SETUP
-#line 445 "tests/scan.l"
-yytext_is_array = ! option_sense; markup_option("Array", !option_sense);
- YY_BREAK
-case 83:
-YY_RULE_SETUP
-#line 446 "tests/scan.l"
-use_read = option_sense; markup_option("Read", option_sense);
- YY_BREAK
-case 84:
-YY_RULE_SETUP
-#line 447 "tests/scan.l"
-reentrant = option_sense; markup_option("Reentrant", option_sense);
- YY_BREAK
-case 85:
-YY_RULE_SETUP
-#line 448 "tests/scan.l"
-reject_really_used = option_sense; markup_option("Reject", option_sense);
- YY_BREAK
-case 86:
-YY_RULE_SETUP
-#line 449 "tests/scan.l"
-ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense ); markup_option("Stack", option_sense);
- YY_BREAK
-case 87:
-YY_RULE_SETUP
-#line 450 "tests/scan.l"
-do_stdinit = option_sense; markup_option("StdInit", option_sense);
- YY_BREAK
-case 88:
-YY_RULE_SETUP
-#line 451 "tests/scan.l"
-use_stdout = option_sense; markup_option("StdOut", option_sense);
- YY_BREAK
-case 89:
-YY_RULE_SETUP
-#line 452 "tests/scan.l"
-ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense); markup_option("UniStd", option_sense);
- YY_BREAK
-case 90:
-YY_RULE_SETUP
-#line 453 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense); markup_option("Unput", option_sense);
- YY_BREAK
-case 91:
-YY_RULE_SETUP
-#line 454 "tests/scan.l"
-printstats = option_sense; markup_option("Verbose", option_sense);
- YY_BREAK
-case 92:
-YY_RULE_SETUP
-#line 455 "tests/scan.l"
-nowarn = ! option_sense; markup_option("Warn", option_sense);
- YY_BREAK
-case 93:
-YY_RULE_SETUP
-#line 456 "tests/scan.l"
-do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense); markup_option("YYLineNo", option_sense);
- YY_BREAK
-case 94:
-YY_RULE_SETUP
-#line 457 "tests/scan.l"
-yymore_really_used = option_sense; markup_option("YYMore", option_sense);
- YY_BREAK
-case 95:
-YY_RULE_SETUP
-#line 458 "tests/scan.l"
-do_yywrap = option_sense; markup_option("YYWrap", option_sense);
- YY_BREAK
-case 96:
-YY_RULE_SETUP
-#line 460 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense); markup_option("YYPushState", option_sense);
- YY_BREAK
-case 97:
-YY_RULE_SETUP
-#line 461 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense); markup_option("YYPopState", option_sense);
- YY_BREAK
-case 98:
-YY_RULE_SETUP
-#line 462 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense); markup_option("YYTopState", option_sense);
- YY_BREAK
-case 99:
-YY_RULE_SETUP
-#line 464 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense); markup_option("YYScanBuffer", option_sense);
- YY_BREAK
-case 100:
-YY_RULE_SETUP
-#line 465 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense); markup_option("YYScanBytes", option_sense);
- YY_BREAK
-case 101:
-YY_RULE_SETUP
-#line 466 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense); markup_option("YYScanString", option_sense);
- YY_BREAK
-case 102:
-YY_RULE_SETUP
-#line 468 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense); markup_option("YYAlloc", option_sense);
- YY_BREAK
-case 103:
-YY_RULE_SETUP
-#line 469 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense); markup_option("YYRealloc", option_sense);
- YY_BREAK
-case 104:
-YY_RULE_SETUP
-#line 470 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense); markup_option("YYFree", option_sense);
- YY_BREAK
-case 105:
-YY_RULE_SETUP
-#line 472 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense); markup_option("YYGetDebug", option_sense);
- YY_BREAK
-case 106:
-YY_RULE_SETUP
-#line 473 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense); markup_option("YYSetDebug", option_sense);
- YY_BREAK
-case 107:
-YY_RULE_SETUP
-#line 474 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense); markup_option("YYGetExtra", option_sense);
- YY_BREAK
-case 108:
-YY_RULE_SETUP
-#line 475 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense); markup_option("YYSetExtra", option_sense);
- YY_BREAK
-case 109:
-YY_RULE_SETUP
-#line 476 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense); markup_option("YYGetLeng", option_sense);
- YY_BREAK
-case 110:
-YY_RULE_SETUP
-#line 477 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense); markup_option("YYGetText", option_sense);
- YY_BREAK
-case 111:
-YY_RULE_SETUP
-#line 478 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense); markup_option("YYGetLineNo", option_sense);
- YY_BREAK
-case 112:
-YY_RULE_SETUP
-#line 479 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense); markup_option("YYSetLineNo", option_sense);
- YY_BREAK
-case 113:
-YY_RULE_SETUP
-#line 480 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense); markup_option("YYGetIn", option_sense);
- YY_BREAK
-case 114:
-YY_RULE_SETUP
-#line 481 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense); markup_option("YYSetIn", option_sense);
- YY_BREAK
-case 115:
-YY_RULE_SETUP
-#line 482 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense); markup_option("YYGetOut", option_sense);
- YY_BREAK
-case 116:
-YY_RULE_SETUP
-#line 483 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense); markup_option("YYSetOut", option_sense);
- YY_BREAK
-case 117:
-YY_RULE_SETUP
-#line 484 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense); markup_option("YYGetLVal", option_sense);
- YY_BREAK
-case 118:
-YY_RULE_SETUP
-#line 485 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense); markup_option("YYSetLVal", option_sense);
- YY_BREAK
-case 119:
-YY_RULE_SETUP
-#line 486 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); markup_option("YYGetLLoc", option_sense);
- YY_BREAK
-case 120:
-YY_RULE_SETUP
-#line 487 "tests/scan.l"
-ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); markup_option("YYSetLLoc", option_sense);
- YY_BREAK
-case 121:
-YY_RULE_SETUP
-#line 489 "tests/scan.l"
-return TOK_EXTRA_TYPE;
- YY_BREAK
-case 122:
-YY_RULE_SETUP
-#line 490 "tests/scan.l"
-return TOK_OUTFILE;
- YY_BREAK
-case 123:
-YY_RULE_SETUP
-#line 491 "tests/scan.l"
-return TOK_PREFIX;
- YY_BREAK
-case 124:
-YY_RULE_SETUP
-#line 492 "tests/scan.l"
-return TOK_YYCLASS;
- YY_BREAK
-case 125:
-YY_RULE_SETUP
-#line 493 "tests/scan.l"
-return TOK_HEADER_FILE;
- YY_BREAK
-case 126:
-YY_RULE_SETUP
-#line 494 "tests/scan.l"
-return TOK_TABLES_FILE;
- YY_BREAK
-case 127:
-YY_RULE_SETUP
-#line 495 "tests/scan.l"
-{
- tablesverify = option_sense;
- if(!tablesext && option_sense)
- tablesext = true;
- markup_option("TablesVerify", option_sense);
- }
- YY_BREAK
-case 128:
-YY_RULE_SETUP
-#line 503 "tests/scan.l"
-{
- if(yyleng-1 < MAXLINE)
- {
- strncpy( nmstr, yytext + 1, sizeof(nmstr) );
- }
- else
- {
- synerr( _("Option line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
- }
- nmstr[strlen( nmstr ) - 1] = '\0';
-#if 1
- piece_pack();
- piece_append("<PLex_String>\"<PLex_Text>");
- piece_escape(yytext + 1, strlen(yytext + 1) - 1);
- piece_append("</PLex_Text>\"</PLex_String>");
- piece_pack();
- return ~NAME; /* actually a misnomer */
-#else
- return NAME;
-#endif
- }
- YY_BREAK
-case 129:
-YY_RULE_SETUP
-#line 526 "tests/scan.l"
-{
- format_synerr( _( "unrecognized %%option: %s" ),
- yytext );
- BEGIN(RECOVER);
- }
- YY_BREAK
-
-case 130:
-/* rule 130 can match eol */
-YY_RULE_SETUP
-#line 533 "tests/scan.l"
-++linenum; BEGIN(INITIAL);
- YY_BREAK
-
-case 131:
-YY_RULE_SETUP
-#line 537 "tests/scan.l"
-++bracelevel; yyless( 2 ); /* eat only %{ */
- YY_BREAK
-case 132:
-YY_RULE_SETUP
-#line 538 "tests/scan.l"
---bracelevel; yyless( 2 ); /* eat only %} */
- YY_BREAK
-case 133:
-YY_RULE_SETUP
-#line 540 "tests/scan.l"
-START_CODEBLOCK(true); piece_append("<PLex_Text>"); /* indented code in prolog */
- YY_BREAK
-case 134:
-YY_RULE_SETUP
-#line 542 "tests/scan.l"
-{
- /* non-indented code */
- if ( bracelevel <= 0 ) {
- /* not in %{ ... %} */
- yyless( 0 ); /* put it all back */
- yy_set_bol( 1 );
- mark_prolog();
- BEGIN(SECT2);
- } else {
- START_CODEBLOCK(true);
- piece_append("<PLex_Text>");
- }
- }
- YY_BREAK
-case 135:
-YY_RULE_SETUP
-#line 556 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 136:
-/* rule 136 can match eol */
-YY_RULE_SETUP
-#line 557 "tests/scan.l"
-++linenum; ACTION_ECHO;
- YY_BREAK
-case YY_STATE_EOF(SECT2PROLOG):
-#line 559 "tests/scan.l"
-{
- mark_prolog();
- sectnum = 0;
-#if 1
- piece_pack();
- piece_append("</PLex_Section2>");
- piece_pack();
- return ~YY_NULL;
-#else
- yyterminate(); /* to stop the parser */
-#endif
- }
- YY_BREAK
-
-
-case 137:
-/* rule 137 can match eol */
-YY_RULE_SETUP
-#line 574 "tests/scan.l"
-++linenum; /* allow blank lines in section 2 */
- YY_BREAK
-case 138:
-YY_RULE_SETUP
-#line 576 "tests/scan.l"
-{
- indented_code = false;
- doing_codeblock = true;
- bracelevel = 1;
- BEGIN(PERCENT_BRACE_ACTION);
- piece_flush(strlen(yytext) - 2);
- piece_append("<PLex_Section1Or2_CodeBlock>");
- piece_flush(2);
- piece_append("<PLex_Text>");
- }
- YY_BREAK
-case 139:
-YY_RULE_SETUP
-#line 587 "tests/scan.l"
-{
- /* Allow "<" to appear in (?x) patterns. */
- if (!sf_skip_ws())
- BEGIN(SC);
- return '<';
- }
- YY_BREAK
-case 140:
-YY_RULE_SETUP
-#line 593 "tests/scan.l"
-return '^';
- YY_BREAK
-case 141:
-YY_RULE_SETUP
-#line 594 "tests/scan.l"
-BEGIN(QUOTE); return '"';
- YY_BREAK
-case 142:
-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
-(yy_c_buf_p) = yy_cp = yy_bp + 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 595 "tests/scan.l"
-{
- BEGIN(NUM);
- if ( lex_compat || posix_compat )
- return BEGIN_REPEAT_POSIX;
- else
- return BEGIN_REPEAT_FLEX;
- }
- YY_BREAK
-case 143:
-/* rule 143 can match eol */
-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
-YY_LINENO_REWIND_TO(yy_bp + 1);
-(yy_c_buf_p) = yy_cp = yy_bp + 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 602 "tests/scan.l"
-return '$';
- YY_BREAK
-case 144:
-YY_RULE_SETUP
-#line 604 "tests/scan.l"
-{
- bracelevel = 1;
- BEGIN(PERCENT_BRACE_ACTION);
- piece_flush(strlen(yytext) - 2);
- piece_append("<PLex_Section2_Rule_Action>");
-
- if ( in_rule )
- {
- doing_rule_action = true;
- in_rule = false;
-#if 1
- piece_pack();
- piece_escape(yytext, 2);
- piece_pack();
- piece_append("<PLex_Text>");
- return ~'\n';
-#else
- return '\n';
-#endif
- }
-#if 1 /* don't think this can really happen */
- abort();
-#else
- piece_flush(strlen(yytext));
- piece_append("<PLex_Text>");
-#endif
- }
- YY_BREAK
-case 145:
-/* rule 145 can match eol */
-YY_RULE_SETUP
-#line 631 "tests/scan.l"
-{
- if (sf_skip_ws()){
- /* We're in the middle of a (?x: ) pattern. */
- /* Push back everything starting at the "|" */
- int amt = (int) (strchr (yytext, '|') - yytext);
- yyless(amt);
- }
- else {
- add_action("]""]");
- continued_action = true;
- ++linenum;
-#if 1
- int i;
- for (i = 0; yytext[i] == '\t' || yytext[i] == ' '; ++i)
- ;
- piece_flush(i);
- piece_pack();
- piece_append("<PLex_Section2_Rule_Action continued=\"true\">");
- piece_escape(yytext, strlen(yytext));
- piece_append("</PLex_Section2_Rule_Action>");
- piece_pack();
- return ~'\n';
-#else
- return '\n';
-#endif
- }
- }
- YY_BREAK
-case 146:
-YY_RULE_SETUP
-#line 659 "tests/scan.l"
-{
-
- if (sf_skip_ws()){
- /* We're in the middle of a (?x: ) pattern. */
- yy_push_state(COMMENT_DISCARD);
- }
- else{
- yyless( yyleng - 2 ); /* put back '/', '*' */
- bracelevel = 0;
- continued_action = false;
- BEGIN(ACTION);
- }
- }
- YY_BREAK
-case 147:
-YY_RULE_SETUP
-#line 673 "tests/scan.l"
-/* allow indented rules */ ;
- YY_BREAK
-case 148:
-YY_RULE_SETUP
-#line 675 "tests/scan.l"
-{
- if (sf_skip_ws()){
- /* We're in the middle of a (?x: ) pattern. */
- }
- else{
- /* This rule is separate from the one below because
- * otherwise we get variable trailing context, so
- * we can't build the scanner using -{f,F}.
- */
- bracelevel = 0;
- continued_action = false;
- BEGIN(ACTION);
-
- if ( in_rule )
- {
- doing_rule_action = true;
- in_rule = false;
-#if 1
- piece_pack();
- piece_escape(yytext, strlen(yytext));
- piece_pack();
- piece_append("<PLex_Section2_Rule_Action><PLex_Text>");
- return ~'\n';
-#else
- return '\n';
-#endif
- }
- }
- }
- YY_BREAK
-case 149:
-/* rule 149 can match eol */
-YY_RULE_SETUP
-#line 705 "tests/scan.l"
-{
- if (sf_skip_ws()){
- /* We're in the middle of a (?x: ) pattern. */
- ++linenum;
- }
- else{
- bracelevel = 0;
- continued_action = false;
- BEGIN(ACTION);
-#if 1
- yyless(yyleng - 1);
-#else
- unput( '\n' ); /* so <ACTION> sees it */
-#endif
-
- if ( in_rule )
- {
- doing_rule_action = true;
- in_rule = false;
-#if 1
- piece_pack();
- piece_escape(yytext, strlen(yytext));
- piece_pack();
- piece_append("<PLex_Section2_Rule_Action><PLex_Text>");
- return ~'\n';
-#else
- return '\n';
-#endif
- }
- }
- }
- YY_BREAK
-case 150:
-#line 738 "tests/scan.l"
-case 151:
-YY_RULE_SETUP
-#line 738 "tests/scan.l"
-return EOF_OP;
- YY_BREAK
-case 152:
-YY_RULE_SETUP
-#line 740 "tests/scan.l"
-{
- sectnum = 3;
- BEGIN(no_section3_escape ? SECT3_NOESCAPE : SECT3);
- outn("/* Begin user sect3 */");
-#if 1
- piece_pack();
- piece_append("</PLex_Section2>");
- piece_escape(yytext, strlen(yytext));
- piece_pack();
- piece_append("<PLex_Section3>");
- return ~YY_NULL;
-#else
- yyterminate(); /* to stop the parser */
-#endif
-
- }
- YY_BREAK
-case 153:
-YY_RULE_SETUP
-#line 757 "tests/scan.l"
-{
- int cclval;
-
- if(yyleng < MAXLINE)
- {
- strncpy( nmstr, yytext, sizeof(nmstr) );
- }
- else
- {
- synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
- }
-
- /* Check to see if we've already encountered this
- * ccl.
- */
- if (0 /* <--- This "0" effectively disables the reuse of a
- * character class (purely based on its source text).
- * The reason it was disabled is so yacc/bison can parse
- * ccl operations, such as ccl difference and union.
- */
- && (cclval = ccllookup( nmstr )) != 0 )
- {
- if ( input() != ']' )
- synerr( _( "bad character class" ) );
-
- yylval = cclval;
- ++cclreuse;
- return PREVCCL;
- }
- else
- {
- /* We fudge a bit. We know that this ccl will
- * soon be numbered as lastccl + 1 by cclinit.
- */
- cclinstal( nmstr, lastccl + 1 );
-
- /* Push back everything but the leading bracket
- * so the ccl can be rescanned.
- */
- yyless( 1 );
-
- BEGIN(FIRSTCCL);
- return '[';
- }
- }
- YY_BREAK
-case 154:
-YY_RULE_SETUP
-#line 803 "tests/scan.l"
-return CCL_OP_DIFF;
- YY_BREAK
-case 155:
-YY_RULE_SETUP
-#line 804 "tests/scan.l"
-return CCL_OP_UNION;
- YY_BREAK
-/* Check for :space: at the end of the rule so we don't
- * wrap the expanded regex in '(' ')' -- breaking trailing
- * context.
- */
-case 156:
-/* rule 156 can match eol */
-YY_RULE_SETUP
-#line 811 "tests/scan.l"
-{
- char *nmdefptr;
- int end_is_ws, end_ch;
-
- end_ch = yytext[yyleng-1];
- end_is_ws = end_ch != '}' ? 1 : 0;
-
- if(yyleng-1 < MAXLINE)
- {
- strncpy( nmstr, yytext + 1, sizeof(nmstr) );
- }
- else
- {
- synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
- }
-nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
-
- if ( (nmdefptr = ndlookup( nmstr )) == 0 )
- format_synerr(
- _( "undefined definition {%s}" ),
- nmstr );
-
- else
- { /* push back name surrounded by ()'s */
- size_t len = strlen( nmdefptr );
- if (end_is_ws)
-#if 1
- yyless(yyleng - 1);
-#else
- unput(end_ch);
-#endif
-
- if ( lex_compat || nmdefptr[0] == '^' ||
- (len > 0 && nmdefptr[len - 1] == '$')
- || (end_is_ws && trlcontxt && !sf_skip_ws()))
- { /* don't use ()'s after all */
- PUT_BACK_STRING(nmdefptr, 0);
-
- if ( nmdefptr[0] == '^' )
- BEGIN(CARETISBOL);
- }
-
- else
- {
- unput(')');
- PUT_BACK_STRING(nmdefptr, 0);
- unput('(');
- }
- }
- }
- YY_BREAK
-case 157:
-YY_RULE_SETUP
-#line 863 "tests/scan.l"
-{
- if (sf_skip_ws())
- yy_push_state(COMMENT_DISCARD);
- else{
- /* Push back the "*" and return "/" as usual. */
- yyless(1);
- return '/';
- }
- }
- YY_BREAK
-case 158:
-YY_RULE_SETUP
-#line 873 "tests/scan.l"
-{
- if (lex_compat || posix_compat){
- /* Push back the "?#" and treat it like a normal parens. */
- yyless(1);
- sf_push();
- return '(';
- }
- else
- yy_push_state(EXTENDED_COMMENT);
- }
- YY_BREAK
-case 159:
-YY_RULE_SETUP
-#line 883 "tests/scan.l"
-{
- sf_push();
- if (lex_compat || posix_compat)
- /* Push back the "?" and treat it like a normal parens. */
- yyless(1);
- else
- BEGIN(GROUP_WITH_PARAMS);
- return '(';
- }
- YY_BREAK
-case 160:
-YY_RULE_SETUP
-#line 892 "tests/scan.l"
-sf_push(); return '(';
- YY_BREAK
-case 161:
-YY_RULE_SETUP
-#line 893 "tests/scan.l"
-{
- if (_sf_top_ix > 0) {
- sf_pop();
- return ')';
- } else
- synerr(_("unbalanced parenthesis"));
- }
- YY_BREAK
-case 162:
-YY_RULE_SETUP
-#line 901 "tests/scan.l"
-return (unsigned char) yytext[0];
- YY_BREAK
-case 163:
-YY_RULE_SETUP
-#line 902 "tests/scan.l"
-RETURNCHAR;
- YY_BREAK
-/* Nick added this rule for consistency with rest of scanner */
-case YY_STATE_EOF(SECT2):
-#line 905 "tests/scan.l"
-{
- sectnum = 0;
-#if 1
- piece_pack();
- piece_append("</PLex_Section2>");
- piece_pack();
- return ~YY_NULL;
-#else
- yyterminate(); /* to stop the parser */
-#endif
- }
- YY_BREAK
-
-
-case 164:
-/* rule 164 can match eol */
-YY_RULE_SETUP
-#line 920 "tests/scan.l"
-++linenum; /* Allow blank lines & continuations */
- YY_BREAK
-case 165:
-YY_RULE_SETUP
-#line 921 "tests/scan.l"
-return (unsigned char) yytext[0];
- YY_BREAK
-case 166:
-YY_RULE_SETUP
-#line 922 "tests/scan.l"
-BEGIN(SECT2); return '>';
- YY_BREAK
-case 167:
-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
-(yy_c_buf_p) = yy_cp = yy_bp + 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 923 "tests/scan.l"
-BEGIN(CARETISBOL); return '>';
- YY_BREAK
-case 168:
-YY_RULE_SETUP
-#line 924 "tests/scan.l"
-RETURNNAME;
- YY_BREAK
-case 169:
-YY_RULE_SETUP
-#line 925 "tests/scan.l"
-{
- format_synerr( _( "bad <start condition>: %s" ),
- yytext );
- }
- YY_BREAK
-
-case 170:
-YY_RULE_SETUP
-#line 931 "tests/scan.l"
-BEGIN(SECT2); return '^';
- YY_BREAK
-
-case 171:
-YY_RULE_SETUP
-#line 935 "tests/scan.l"
-RETURNCHAR;
- YY_BREAK
-case 172:
-YY_RULE_SETUP
-#line 936 "tests/scan.l"
-BEGIN(SECT2); return '"';
- YY_BREAK
-case 173:
-/* rule 173 can match eol */
-YY_RULE_SETUP
-#line 938 "tests/scan.l"
-{
- synerr( _( "missing quote" ) );
- BEGIN(SECT2);
- ++linenum;
- return '"';
- }
- YY_BREAK
-
-
-case 174:
-YY_RULE_SETUP
-#line 947 "tests/scan.l"
-BEGIN(SECT2);
- YY_BREAK
-case 175:
-YY_RULE_SETUP
-#line 948 "tests/scan.l"
-BEGIN(GROUP_MINUS_PARAMS);
- YY_BREAK
-case 176:
-YY_RULE_SETUP
-#line 949 "tests/scan.l"
-sf_set_case_ins(1);
- YY_BREAK
-case 177:
-YY_RULE_SETUP
-#line 950 "tests/scan.l"
-sf_set_dot_all(1);
- YY_BREAK
-case 178:
-YY_RULE_SETUP
-#line 951 "tests/scan.l"
-sf_set_skip_ws(1);
- YY_BREAK
-
-
-case 179:
-YY_RULE_SETUP
-#line 954 "tests/scan.l"
-BEGIN(SECT2);
- YY_BREAK
-case 180:
-YY_RULE_SETUP
-#line 955 "tests/scan.l"
-sf_set_case_ins(0);
- YY_BREAK
-case 181:
-YY_RULE_SETUP
-#line 956 "tests/scan.l"
-sf_set_dot_all(0);
- YY_BREAK
-case 182:
-YY_RULE_SETUP
-#line 957 "tests/scan.l"
-sf_set_skip_ws(0);
- YY_BREAK
-
-
-case 183:
-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
-(yy_c_buf_p) = yy_cp = yy_bp + 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 961 "tests/scan.l"
-BEGIN(CCL); return '^';
- YY_BREAK
-case 184:
-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
-(yy_c_buf_p) = yy_cp = yy_bp + 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 962 "tests/scan.l"
-return '^';
- YY_BREAK
-case 185:
-YY_RULE_SETUP
-#line 963 "tests/scan.l"
-BEGIN(CCL); RETURNCHAR;
- YY_BREAK
-
-
-case 186:
-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
-(yy_c_buf_p) = yy_cp = yy_bp + 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 967 "tests/scan.l"
-return '-';
- YY_BREAK
-case 187:
-YY_RULE_SETUP
-#line 968 "tests/scan.l"
-RETURNCHAR;
- YY_BREAK
-case 188:
-YY_RULE_SETUP
-#line 969 "tests/scan.l"
-BEGIN(SECT2); return ']';
- YY_BREAK
-case 189:
-/* rule 189 can match eol */
-YY_RULE_SETUP
-#line 970 "tests/scan.l"
-{
- synerr( _( "bad character class" ) );
- BEGIN(SECT2);
- return ']';
- }
- YY_BREAK
-
-
-case 190:
-YY_RULE_SETUP
-#line 978 "tests/scan.l"
-BEGIN(CCL); return CCE_ALNUM;
- YY_BREAK
-case 191:
-YY_RULE_SETUP
-#line 979 "tests/scan.l"
-BEGIN(CCL); return CCE_ALPHA;
- YY_BREAK
-case 192:
-YY_RULE_SETUP
-#line 980 "tests/scan.l"
-BEGIN(CCL); return CCE_BLANK;
- YY_BREAK
-case 193:
-YY_RULE_SETUP
-#line 981 "tests/scan.l"
-BEGIN(CCL); return CCE_CNTRL;
- YY_BREAK
-case 194:
-YY_RULE_SETUP
-#line 982 "tests/scan.l"
-BEGIN(CCL); return CCE_DIGIT;
- YY_BREAK
-case 195:
-YY_RULE_SETUP
-#line 983 "tests/scan.l"
-BEGIN(CCL); return CCE_GRAPH;
- YY_BREAK
-case 196:
-YY_RULE_SETUP
-#line 984 "tests/scan.l"
-BEGIN(CCL); return CCE_LOWER;
- YY_BREAK
-case 197:
-YY_RULE_SETUP
-#line 985 "tests/scan.l"
-BEGIN(CCL); return CCE_PRINT;
- YY_BREAK
-case 198:
-YY_RULE_SETUP
-#line 986 "tests/scan.l"
-BEGIN(CCL); return CCE_PUNCT;
- YY_BREAK
-case 199:
-YY_RULE_SETUP
-#line 987 "tests/scan.l"
-BEGIN(CCL); return CCE_SPACE;
- YY_BREAK
-case 200:
-YY_RULE_SETUP
-#line 988 "tests/scan.l"
-BEGIN(CCL); return CCE_UPPER;
- YY_BREAK
-case 201:
-YY_RULE_SETUP
-#line 989 "tests/scan.l"
-BEGIN(CCL); return CCE_XDIGIT;
- YY_BREAK
-case 202:
-YY_RULE_SETUP
-#line 991 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_ALNUM;
- YY_BREAK
-case 203:
-YY_RULE_SETUP
-#line 992 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_ALPHA;
- YY_BREAK
-case 204:
-YY_RULE_SETUP
-#line 993 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_BLANK;
- YY_BREAK
-case 205:
-YY_RULE_SETUP
-#line 994 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_CNTRL;
- YY_BREAK
-case 206:
-YY_RULE_SETUP
-#line 995 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_DIGIT;
- YY_BREAK
-case 207:
-YY_RULE_SETUP
-#line 996 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_GRAPH;
- YY_BREAK
-case 208:
-YY_RULE_SETUP
-#line 997 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_LOWER;
- YY_BREAK
-case 209:
-YY_RULE_SETUP
-#line 998 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_PRINT;
- YY_BREAK
-case 210:
-YY_RULE_SETUP
-#line 999 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_PUNCT;
- YY_BREAK
-case 211:
-YY_RULE_SETUP
-#line 1000 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_SPACE;
- YY_BREAK
-case 212:
-YY_RULE_SETUP
-#line 1001 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_UPPER;
- YY_BREAK
-case 213:
-YY_RULE_SETUP
-#line 1002 "tests/scan.l"
-BEGIN(CCL); return CCE_NEG_XDIGIT;
- YY_BREAK
-case 214:
-YY_RULE_SETUP
-#line 1003 "tests/scan.l"
-{
- format_synerr(
- _( "bad character class expression: %s" ),
- yytext );
- BEGIN(CCL); return CCE_ALNUM;
- }
- YY_BREAK
-
-
-case 215:
-YY_RULE_SETUP
-#line 1012 "tests/scan.l"
-{
- yylval = myctoi( yytext );
- return NUMBER;
- }
- YY_BREAK
-case 216:
-YY_RULE_SETUP
-#line 1017 "tests/scan.l"
-return ',';
- YY_BREAK
-case 217:
-YY_RULE_SETUP
-#line 1018 "tests/scan.l"
-{
- BEGIN(SECT2);
- if ( lex_compat || posix_compat )
- return END_REPEAT_POSIX;
- else
- return END_REPEAT_FLEX;
- }
- YY_BREAK
-case 218:
-YY_RULE_SETUP
-#line 1026 "tests/scan.l"
-{
- synerr( _( "bad character inside {}'s" ) );
- BEGIN(SECT2);
- return '}';
- }
- YY_BREAK
-case 219:
-/* rule 219 can match eol */
-YY_RULE_SETUP
-#line 1032 "tests/scan.l"
-{
- synerr( _( "missing }" ) );
- BEGIN(SECT2);
- ++linenum;
- return '}';
- }
- YY_BREAK
-
-
-case 220:
-YY_RULE_SETUP
-#line 1042 "tests/scan.l"
-bracelevel = 0; piece_append("</PLex_Text>");
- YY_BREAK
-case 221:
-YY_RULE_SETUP
-#line 1044 "tests/scan.l"
-ACTION_ECHO; yy_push_state( CODE_COMMENT );
- YY_BREAK
-
-case 222:
-YY_RULE_SETUP
-#line 1047 "tests/scan.l"
-{
- ACTION_ECHO;
- CHECK_REJECT(yytext);
- }
- YY_BREAK
-case 223:
-YY_RULE_SETUP
-#line 1051 "tests/scan.l"
-{
- ACTION_ECHO;
- CHECK_YYMORE(yytext);
- }
- YY_BREAK
-
-case 224:
-YY_RULE_SETUP
-#line 1057 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 225:
-/* rule 225 can match eol */
-YY_RULE_SETUP
-#line 1058 "tests/scan.l"
-{
- ++linenum;
- ACTION_ECHO;
- if (bracelevel <= 0 || (doing_codeblock && indented_code)) {
- if ( doing_rule_action )
- add_action( "\tYY_BREAK]""]\n" );
-
- piece_flush(strlen(yytext));
- if (doing_codeblock)
- piece_append("</PLex_Section1Or2_CodeBlock>");
- else
- markup_action("</PLex_Section2_Rule_Action>");
- doing_rule_action = doing_codeblock = false;
- BEGIN(SECT2);
- }
- }
- YY_BREAK
-
-/* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
-
-case 226:
-YY_RULE_SETUP
-#line 1079 "tests/scan.l"
-ACTION_ECHO; ++bracelevel;
- YY_BREAK
-case 227:
-YY_RULE_SETUP
-#line 1080 "tests/scan.l"
-ACTION_ECHO; --bracelevel;
- YY_BREAK
-case 228:
-YY_RULE_SETUP
-#line 1081 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 229:
-YY_RULE_SETUP
-#line 1082 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 230:
-YY_RULE_SETUP
-#line 1083 "tests/scan.l"
-ACTION_ECHO; /* character constant */
- YY_BREAK
-case 231:
-YY_RULE_SETUP
-#line 1084 "tests/scan.l"
-ACTION_ECHO; BEGIN(CHARACTER_CONSTANT);
- YY_BREAK
-case 232:
-YY_RULE_SETUP
-#line 1085 "tests/scan.l"
-ACTION_ECHO; BEGIN(ACTION_STRING);
- YY_BREAK
-case 233:
-/* rule 233 can match eol */
-YY_RULE_SETUP
-#line 1086 "tests/scan.l"
-{
- ++linenum;
- ACTION_ECHO;
- if (bracelevel <= 0) {
- if ( doing_rule_action )
- {
- add_action( "\tYY_BREAK]""]\n" );
- piece_flush(strlen(yytext));
- markup_action("</PLex_Text></PLex_Section2_Rule_Action>");
- }
-
- doing_rule_action = false;
- BEGIN(SECT2);
- }
- }
- YY_BREAK
-case 234:
-YY_RULE_SETUP
-#line 1101 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-
-
-case 235:
-YY_RULE_SETUP
-#line 1105 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 236:
-YY_RULE_SETUP
-#line 1106 "tests/scan.l"
-ACTION_ECHO; BEGIN(ACTION);
- YY_BREAK
-
-
-case 237:
-YY_RULE_SETUP
-#line 1109 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 238:
-YY_RULE_SETUP
-#line 1110 "tests/scan.l"
-ACTION_ECHO; BEGIN(ACTION);
- YY_BREAK
-
-
-case 239:
-/* rule 239 can match eol */
-YY_RULE_SETUP
-#line 1113 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 240:
-/* rule 240 can match eol */
-YY_RULE_SETUP
-#line 1114 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-case 241:
-/* rule 241 can match eol */
-YY_RULE_SETUP
-#line 1115 "tests/scan.l"
-++linenum; ACTION_ECHO; if (bracelevel <= 0) { BEGIN(SECT2); piece_flush(strlen(yytext)); if (doing_rule_action) markup_action("</PLex_Text></PLex_Section2_Rule_Action>"); } else { BEGIN(ACTION); }
- YY_BREAK
-case 242:
-YY_RULE_SETUP
-#line 1116 "tests/scan.l"
-ACTION_ECHO;
- YY_BREAK
-
-case YY_STATE_EOF(COMMENT):
-case YY_STATE_EOF(CODE_COMMENT):
-case YY_STATE_EOF(COMMENT_DISCARD):
-case YY_STATE_EOF(ACTION):
-case YY_STATE_EOF(ACTION_STRING):
-case YY_STATE_EOF(CHARACTER_CONSTANT):
-#line 1119 "tests/scan.l"
-{
- synerr( _( "EOF encountered inside an action" ) );
- yyterminate();
- }
- YY_BREAK
-case YY_STATE_EOF(EXTENDED_COMMENT):
-case YY_STATE_EOF(GROUP_WITH_PARAMS):
-case YY_STATE_EOF(GROUP_MINUS_PARAMS):
-#line 1124 "tests/scan.l"
-{
- synerr( _( "EOF encountered inside pattern" ) );
- yyterminate();
- }
- YY_BREAK
-case 243:
-YY_RULE_SETUP
-#line 1129 "tests/scan.l"
-{
- yylval = myesc( (unsigned char *) yytext );
-
- if ( YY_START == FIRSTCCL )
- BEGIN(CCL);
-
- return CHAR;
- }
- YY_BREAK
-
-case 244:
-YY_RULE_SETUP
-#line 1139 "tests/scan.l"
-fputs(escaped_qstart, yyout);
- YY_BREAK
-case 245:
-YY_RULE_SETUP
-#line 1140 "tests/scan.l"
-fputs(escaped_qend, yyout);
- YY_BREAK
-case 246:
-/* rule 246 can match eol */
-YY_RULE_SETUP
-#line 1141 "tests/scan.l"
-ECHO;
- YY_BREAK
-case 247:
-YY_RULE_SETUP
-#line 1142 "tests/scan.l"
-ECHO;
- YY_BREAK
-case YY_STATE_EOF(SECT3):
-#line 1143 "tests/scan.l"
-{
- sectnum = 0;
-#if 1
- piece_pack();
- piece_append("</PLex_Section3>");
- piece_pack();
- return ~YY_NULL;
-#else
- yyterminate();
-#endif
- }
- YY_BREAK
-
-
-case 248:
-YY_RULE_SETUP
-#line 1156 "tests/scan.l"
-fprintf(yyout, "[""[%s]""]", escaped_qstart);
- YY_BREAK
-case 249:
-YY_RULE_SETUP
-#line 1157 "tests/scan.l"
-fprintf(yyout, "[""[%s]""]", escaped_qend);
- YY_BREAK
-case 250:
-/* rule 250 can match eol */
-YY_RULE_SETUP
-#line 1158 "tests/scan.l"
-ECHO;
- YY_BREAK
-case 251:
-YY_RULE_SETUP
-#line 1159 "tests/scan.l"
-ECHO;
- YY_BREAK
-case YY_STATE_EOF(SECT3_NOESCAPE):
-#line 1160 "tests/scan.l"
-{
- sectnum = 0;
-#if 1
- piece_pack();
- piece_append("</PLex_Section3>");
- piece_pack();
- return ~YY_NULL;
-#else
- yyterminate();
-#endif
- }
- YY_BREAK
-
-case 252:
-/* rule 252 can match eol */
-YY_RULE_SETUP
-#line 1172 "tests/scan.l"
-format_synerr( _( "bad character: %s" ), yytext );
- YY_BREAK
-case 253:
-YY_RULE_SETUP
-#line 1174 "tests/scan.l"
-YY_FATAL_ERROR( "flex scanner jammed" );
- YY_BREAK
-#line 4297 "lex.yy.c"
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(CODEBLOCK):
-case YY_STATE_EOF(PICKUPDEF):
-case YY_STATE_EOF(SC):
-case YY_STATE_EOF(CARETISBOL):
-case YY_STATE_EOF(NUM):
-case YY_STATE_EOF(QUOTE):
-case YY_STATE_EOF(FIRSTCCL):
-case YY_STATE_EOF(CCL):
-case YY_STATE_EOF(RECOVER):
-case YY_STATE_EOF(PERCENT_BRACE_ACTION):
-case YY_STATE_EOF(OPTION):
-case YY_STATE_EOF(LINEDIR):
- yyterminate();
-
- case YY_END_OF_BUFFER:
- {
- /* Amount of text matched not including the EOB char. */
- int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-
- /* Undo the effects of YY_DO_BEFORE_ACTION. */
- *yy_cp = (yy_hold_char);
- YY_RESTORE_YY_MORE_OFFSET
-
- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
- {
- /* We're scanning a new file or input source. It's
- * possible that this happened because the user
- * just pointed yyin at a new source and called
- * yylex(). If so, then we have to assure
- * consistency between YY_CURRENT_BUFFER and our
- * globals. Here is the right place to do so, because
- * this is the first action (other than possibly a
- * back-up) that will match for the new input source.
- */
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
- YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
- }
-
- /* Note that here we test for yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since yy_c_buf_p will
- * already have been incremented past the NUL character
- * (since all states make transitions on EOB to the
- * end-of-buffer state). Contrast this with the test
- * in input().
- */
- if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
- { /* This was really a NUL. */
- yy_state_type yy_next_state;
-
- (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state( );
-
- /* Okay, we're now positioned to make the NUL
- * transition. We couldn't have
- * yy_get_previous_state() go ahead and do it
- * for us because it doesn't know how to deal
- * with the possibility of jamming (and we don't
- * want to build jamming into it because then it
- * will run more slowly).
- */
-
- yy_next_state = yy_try_NUL_trans( yy_current_state );
-
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
- if ( yy_next_state )
- {
- /* Consume the NUL. */
- yy_cp = ++(yy_c_buf_p);
- yy_current_state = yy_next_state;
- goto yy_match;
- }
-
- else
- {
- yy_cp = (yy_c_buf_p);
- goto yy_find_action;
- }
- }
-
- else switch ( yy_get_next_buffer( ) )
- {
- case EOB_ACT_END_OF_FILE:
- {
- (yy_did_buffer_switch_on_eof) = 0;
-
- if ( yywrap( ) )
- {
- /* Note: because we've taken care in
- * yy_get_next_buffer() to have set up
- * yytext, we can now set up
- * yy_c_buf_p so that if some total
- * hoser (like flex itself) wants to
- * call the scanner after we return the
- * YY_NULL, it'll still work - another
- * YY_NULL will get returned.
- */
- (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-
- yy_act = YY_STATE_EOF(YY_START);
- goto do_action;
- }
-
- else
- {
- if ( ! (yy_did_buffer_switch_on_eof) )
- YY_NEW_FILE;
- }
- break;
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- (yy_c_buf_p) =
- (yytext_ptr) + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state( );
-
- yy_cp = (yy_c_buf_p);
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
- goto yy_match;
-
- case EOB_ACT_LAST_MATCH:
- (yy_c_buf_p) =
- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
- yy_current_state = yy_get_previous_state( );
-
- yy_cp = (yy_c_buf_p);
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
- goto yy_find_action;
- }
- break;
- }
-
- default:
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--no action found" );
- } /* end of action switch */
- } /* end of scanning one token */
- } /* end of user's declarations */
-} /* end of yylex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- * EOB_ACT_LAST_MATCH -
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (void)
-{
- char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
- char *source = (yytext_ptr);
- int number_to_move, i;
- int ret_val;
-
- if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--end of buffer missed" );
-
- if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
- if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
- {
- /* We matched a single character, the EOB, so
- * treat this as a final EOF.
- */
- return EOB_ACT_END_OF_FILE;
- }
-
- else
- {
- /* We matched some text prior to the EOB, first
- * process it.
- */
- return EOB_ACT_LAST_MATCH;
- }
- }
-
- /* Try to read more data. */
-
- /* First move last chars to start of buffer. */
- number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
-
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
-
- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
- else
- {
- int num_to_read =
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
-
- /* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
-
- int yy_c_buf_p_offset =
- (int) ((yy_c_buf_p) - b->yy_ch_buf);
-
- if ( b->yy_is_our_buffer )
- {
- int new_size = b->yy_buf_size * 2;
-
- if ( new_size <= 0 )
- b->yy_buf_size += b->yy_buf_size / 8;
- else
- b->yy_buf_size *= 2;
-
- b->yy_ch_buf = (char *)
- /* Include room in for 2 EOB chars. */
- yyrealloc( (void *) b->yy_ch_buf,
- (yy_size_t) (b->yy_buf_size + 2) );
- }
- else
- /* Can't grow it, we don't own it. */
- b->yy_ch_buf = NULL;
-
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR(
- "fatal error - scanner input buffer overflow" );
-
- (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
- num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
- number_to_move - 1;
-
- }
-
- if ( num_to_read > YY_READ_BUF_SIZE )
- num_to_read = YY_READ_BUF_SIZE;
-
- /* Read in more data. */
- YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
- (yy_n_chars), num_to_read );
-
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
-
- if ( (yy_n_chars) == 0 )
- {
- if ( number_to_move == YY_MORE_ADJ )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- yyrestart( yyin );
- }
-
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
- YY_BUFFER_EOF_PENDING;
- }
- }
-
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
-
- if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
- /* Extend the array by 50%, plus the number we really need. */
- int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
- (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
- if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
- /* "- 2" to take care of EOB's */
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
- }
-
- (yy_n_chars) += number_to_move;
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-
- (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
- return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
- static yy_state_type yy_get_previous_state (void)
-{
- yy_state_type yy_current_state;
- char *yy_cp;
-
- yy_current_state = (yy_start);
- yy_current_state += YY_AT_BOL();
-
- for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
- {
- int yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1114 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- }
-
- return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- * next_state = yy_try_NUL_trans( current_state );
- */
- static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
-{
- int yy_is_jam;
- char *yy_cp = (yy_c_buf_p);
-
- int yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1114 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 1113);
-
- return yy_is_jam ? 0 : yy_current_state;
-}
-
-#ifndef YY_NO_UNPUT
-
- static void yyunput (int c, char * yy_bp )
-{
- char *yy_cp;
-
- yy_cp = (yy_c_buf_p);
-
- /* undo effects of setting up yytext */
- *yy_cp = (yy_hold_char);
-
- if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
- { /* need to shift things up to make room */
- /* +2 for EOB chars. */
- int number_to_move = (yy_n_chars) + 2;
- char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
- char *source =
- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
-
- while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
- *--dest = *--source;
-
- yy_cp += (int) (dest - source);
- yy_bp += (int) (dest - source);
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
- (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
-
- if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
- YY_FATAL_ERROR( "flex scanner push-back overflow" );
- }
-
- *--yy_cp = (char) c;
-
- (yytext_ptr) = yy_bp;
- (yy_hold_char) = *yy_cp;
- (yy_c_buf_p) = yy_cp;
-}
-
-#endif
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
- static int yyinput (void)
-#else
- static int input (void)
-#endif
-
-{
- int c;
-
- *(yy_c_buf_p) = (yy_hold_char);
-
- if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
- {
- /* yy_c_buf_p now points to the character we want to return.
- * If this occurs *before* the EOB characters, then it's a
- * valid NUL; if not, then we've hit the end of the buffer.
- */
- if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
- /* This was really a NUL. */
- *(yy_c_buf_p) = '\0';
-
- else
- { /* need more input */
- int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
- ++(yy_c_buf_p);
-
- switch ( yy_get_next_buffer( ) )
- {
- case EOB_ACT_LAST_MATCH:
- /* This happens because yy_g_n_b()
- * sees that we've accumulated a
- * token and flags that we need to
- * try matching the token before
- * proceeding. But for input(),
- * there's no matching to consider.
- * So convert the EOB_ACT_LAST_MATCH
- * to EOB_ACT_END_OF_FILE.
- */
-
- /* Reset buffer status. */
- yyrestart( yyin );
-
- /*FALLTHROUGH*/
-
- case EOB_ACT_END_OF_FILE:
- {
- if ( yywrap( ) )
- return 0;
-
- if ( ! (yy_did_buffer_switch_on_eof) )
- YY_NEW_FILE;
-#ifdef __cplusplus
- return yyinput();
-#else
- return input();
-#endif
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- (yy_c_buf_p) = (yytext_ptr) + offset;
- break;
- }
- }
- }
-
- c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
- *(yy_c_buf_p) = '\0'; /* preserve yytext */
- (yy_hold_char) = *++(yy_c_buf_p);
-
- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
-
- return c;
-}
-#endif /* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- *
- * @note This function does not reset the start condition to @c INITIAL .
- */
- void yyrestart (FILE * input_file )
-{
-
- if ( ! YY_CURRENT_BUFFER ){
- yyensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
- yy_create_buffer( yyin, YY_BUF_SIZE );
- }
-
- yy_init_buffer( YY_CURRENT_BUFFER, input_file );
- yy_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- *
- */
- void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
-{
-
- /* TODO. We should be able to replace this entire function body
- * with
- * yypop_buffer_state();
- * yypush_buffer_state(new_buffer);
- */
- yyensure_buffer_stack ();
- if ( YY_CURRENT_BUFFER == new_buffer )
- return;
-
- if ( YY_CURRENT_BUFFER )
- {
- /* Flush out information for old buffer. */
- *(yy_c_buf_p) = (yy_hold_char);
- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
-
- YY_CURRENT_BUFFER_LVALUE = new_buffer;
- yy_load_buffer_state( );
-
- /* We don't actually know whether we did this switch during
- * EOF (yywrap()) processing, but the only time this flag
- * is looked at is after yywrap() is called, so it's safe
- * to go ahead and always set it.
- */
- (yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void yy_load_buffer_state (void)
-{
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
- (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
- yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
- (yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- *
- * @return the allocated buffer state.
- */
- YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
-{
- YY_BUFFER_STATE b;
-
- b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_buf_size = size;
-
- /* yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
- b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_is_our_buffer = 1;
-
- yy_init_buffer( b, file );
-
- return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with yy_create_buffer()
- *
- */
- void yy_delete_buffer (YY_BUFFER_STATE b )
-{
-
- if ( ! b )
- return;
-
- if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
- YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
- if ( b->yy_is_our_buffer )
- yyfree( (void *) b->yy_ch_buf );
-
- yyfree( (void *) b );
-}
-
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a yyrestart() or at EOF.
- */
- static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
-
-{
- int oerrno = errno;
-
- yy_flush_buffer( b );
-
- b->yy_input_file = file;
- b->yy_fill_buffer = 1;
-
- /* If b is the current buffer, then yy_init_buffer was _probably_
- * called from yyrestart() or through yy_get_next_buffer.
- * In that case, we don't want to reset the lineno or column.
- */
- if (b != YY_CURRENT_BUFFER){
- b->yy_bs_lineno = 1;
- b->yy_bs_column = 0;
- }
-
- b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-
- errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
- */
- void yy_flush_buffer (YY_BUFFER_STATE b )
-{
- if ( ! b )
- return;
-
- b->yy_n_chars = 0;
-
- /* We always need two end-of-buffer characters. The first causes
- * a transition to the end-of-buffer state. The second causes
- * a jam in that state.
- */
- b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
- b->yy_buf_pos = &b->yy_ch_buf[0];
-
- b->yy_at_bol = 1;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- if ( b == YY_CURRENT_BUFFER )
- yy_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- * the current state. This function will allocate the stack
- * if necessary.
- * @param new_buffer The new state.
- *
- */
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
- if (new_buffer == NULL)
- return;
-
- yyensure_buffer_stack();
-
- /* This block is copied from yy_switch_to_buffer. */
- if ( YY_CURRENT_BUFFER )
- {
- /* Flush out information for old buffer. */
- *(yy_c_buf_p) = (yy_hold_char);
- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
-
- /* Only push if top exists. Otherwise, replace top. */
- if (YY_CURRENT_BUFFER)
- (yy_buffer_stack_top)++;
- YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
- /* copied from yy_switch_to_buffer. */
- yy_load_buffer_state( );
- (yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- * The next element becomes the new top.
- *
- */
-void yypop_buffer_state (void)
-{
- if (!YY_CURRENT_BUFFER)
- return;
-
- yy_delete_buffer(YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- if ((yy_buffer_stack_top) > 0)
- --(yy_buffer_stack_top);
-
- if (YY_CURRENT_BUFFER) {
- yy_load_buffer_state( );
- (yy_did_buffer_switch_on_eof) = 1;
- }
-}
-
-/* Allocates the stack if it does not exist.
- * Guarantees space for at least one push.
- */
-static void yyensure_buffer_stack (void)
-{
- yy_size_t num_to_alloc;
-
- if (!(yy_buffer_stack)) {
-
- /* First allocation is just for 2 elements, since we don't know if this
- * scanner will even need a stack. We use 2 instead of 1 to avoid an
- * immediate realloc on the next call.
- */
- num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
- (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
- (num_to_alloc * sizeof(struct yy_buffer_state*)
- );
- if ( ! (yy_buffer_stack) )
- YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
- memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-
- (yy_buffer_stack_max) = num_to_alloc;
- (yy_buffer_stack_top) = 0;
- return;
- }
-
- if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
- /* Increase the buffer to prepare for a possible push. */
- yy_size_t grow_size = 8 /* arbitrary grow size */;
-
- num_to_alloc = (yy_buffer_stack_max) + grow_size;
- (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
- ((yy_buffer_stack),
- num_to_alloc * sizeof(struct yy_buffer_state*)
- );
- if ( ! (yy_buffer_stack) )
- YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
- /* zero only the new slots.*/
- memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
- (yy_buffer_stack_max) = num_to_alloc;
- }
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- *
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
-{
- YY_BUFFER_STATE b;
-
- if ( size < 2 ||
- base[size-2] != YY_END_OF_BUFFER_CHAR ||
- base[size-1] != YY_END_OF_BUFFER_CHAR )
- /* They forgot to leave room for the EOB's. */
- return NULL;
-
- b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-
- b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
- b->yy_buf_pos = b->yy_ch_buf = base;
- b->yy_is_our_buffer = 0;
- b->yy_input_file = NULL;
- b->yy_n_chars = b->yy_buf_size;
- b->yy_is_interactive = 0;
- b->yy_at_bol = 1;
- b->yy_fill_buffer = 0;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- yy_switch_to_buffer( b );
-
- return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to yylex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- *
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- * yy_scan_bytes() instead.
- */
-YY_BUFFER_STATE yy_scan_string (const char * yystr )
-{
-
- return yy_scan_bytes( yystr, (int) strlen(yystr) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
- * scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- *
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
-{
- YY_BUFFER_STATE b;
- char *buf;
- yy_size_t n;
- int i;
-
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = (yy_size_t) (_yybytes_len + 2);
- buf = (char *) yyalloc( n );
- if ( ! buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
-
- for ( i = 0; i < _yybytes_len; ++i )
- buf[i] = yybytes[i];
-
- buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
- b = yy_scan_buffer( buf, n );
- if ( ! b )
- YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
- */
- b->yy_is_our_buffer = 1;
-
- return b;
-}
-
- static void yy_push_state (int _new_state )
-{
- if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
- {
- yy_size_t new_size;
-
- (yy_start_stack_depth) += YY_START_STACK_INCR;
- new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
-
- if ( ! (yy_start_stack) )
- (yy_start_stack) = (int *) yyalloc( new_size );
-
- else
- (yy_start_stack) = (int *) yyrealloc(
- (void *) (yy_start_stack), new_size );
-
- if ( ! (yy_start_stack) )
- YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
- }
-
- (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
-
- BEGIN(_new_state);
-}
-
- static void yy_pop_state (void)
-{
- if ( --(yy_start_stack_ptr) < 0 )
- YY_FATAL_ERROR( "start-condition stack underflow" );
-
- BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yynoreturn yy_fatal_error (const char* msg )
-{
- fprintf( stderr, "%s\n", msg );
- exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- int yyless_macro_arg = (n); \
- YY_LESS_LINENO(yyless_macro_arg);\
- yytext[yyleng] = (yy_hold_char); \
- (yy_c_buf_p) = yytext + yyless_macro_arg; \
- (yy_hold_char) = *(yy_c_buf_p); \
- *(yy_c_buf_p) = '\0'; \
- yyleng = yyless_macro_arg; \
- } \
- while ( 0 )
-
-/* Accessor methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- *
- */
-int yyget_lineno (void)
-{
-
- return yylineno;
-}
-
-/** Get the input stream.
- *
- */
-FILE *yyget_in (void)
-{
- return yyin;
-}
-
-/** Get the output stream.
- *
- */
-FILE *yyget_out (void)
-{
- return yyout;
-}
-
-/** Get the length of the current token.
- *
- */
-int yyget_leng (void)
-{
- return yyleng;
-}
-
-/** Get the current token.
- *
- */
-
-char *yyget_text (void)
-{
- return yytext;
-}
-
-/** Set the current line number.
- * @param _line_number line number
- *
- */
-void yyset_lineno (int _line_number )
-{
-
- yylineno = _line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param _in_str A readable stream.
- *
- * @see yy_switch_to_buffer
- */
-void yyset_in (FILE * _in_str )
-{
- yyin = _in_str ;
-}
-
-void yyset_out (FILE * _out_str )
-{
- yyout = _out_str ;
-}
-
-int yyget_debug (void)
-{
- return yy_flex_debug;
-}
-
-void yyset_debug (int _bdebug )
-{
- yy_flex_debug = _bdebug ;
-}
-
-static int yy_init_globals (void)
-{
- /* Initialization is the same as for the non-reentrant scanner.
- * This function is called from yylex_destroy(), so don't allocate here.
- */
-
- (yy_buffer_stack) = NULL;
- (yy_buffer_stack_top) = 0;
- (yy_buffer_stack_max) = 0;
- (yy_c_buf_p) = NULL;
- (yy_init) = 0;
- (yy_start) = 0;
-
- (yy_start_stack_ptr) = 0;
- (yy_start_stack_depth) = 0;
- (yy_start_stack) = NULL;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
- yyin = stdin;
- yyout = stdout;
-#else
- yyin = NULL;
- yyout = NULL;
-#endif
-
- /* For future reference: Set errno on error, since we are called by
- * yylex_init()
- */
- return 0;
-}
-
-/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy (void)
-{
-
- /* Pop the buffer stack, destroying each element. */
- while(YY_CURRENT_BUFFER){
- yy_delete_buffer( YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- yypop_buffer_state();
- }
-
- /* Destroy the stack itself. */
- yyfree((yy_buffer_stack) );
- (yy_buffer_stack) = NULL;
-
- /* Destroy the start condition stack. */
- yyfree( (yy_start_stack) );
- (yy_start_stack) = NULL;
-
- /* Reset the globals. This is important in a non-reentrant scanner so the next time
- * yylex() is called, initialization will occur. */
- yy_init_globals( );
-
- return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, const char * s2, int n )
-{
-
- int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (const char * s )
-{
- int n;
- for ( n = 0; s[n]; ++n )
- ;
-
- return n;
-}
-#endif
-
-void *yyalloc (yy_size_t size )
-{
- return malloc(size);
-}
-
-void *yyrealloc (void * ptr, yy_size_t size )
-{
-
- /* The cast to (char *) in the following accommodates both
- * implementations that use char* generic pointers, and those
- * that use void* generic pointers. It works with the latter
- * because both ANSI C and C++ allow castless assignment from
- * any pointer type to void*, and deal with argument conversions
- * as though doing an assignment.
- */
- return realloc(ptr, size);
-}
-
-void yyfree (void * ptr )
-{
- free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 1174 "tests/scan.l"
-
-
-
-int yywrap(void)
- {
- if ( --num_input_files > 0 )
- {
- set_input_file( *++input_files );
- return 0;
- }
-
- else
- return 1;
- }
-
-
-/* set_input_file - open the given file (if NULL, stdin) for scanning */
-
-void set_input_file( char *file )
- {
- if ( file && strcmp( file, "-" ) )
- {
- infilename = xstrdup(file);
- yyin = fopen( infilename, "r" );
-
- if ( yyin == NULL )
- lerr( _( "can't open %s" ), file );
- }
-
- else
- {
- yyin = stdin;
- infilename = xstrdup("<stdin>");
- }
-
- linenum = 1;
- }
-
-/* Nick */
-void piece_append(const char *str) {
- piece[piece1++] = strdup(str);
-}
-
-void piece_insert(int n, const char *str) {
- memmove(piece + n + 1, piece + n, (piece1 - n) * sizeof(char *));
- piece[n] = strdup(str);
- ++piece1;
-}
-
-void piece_escape(const char *p, size_t n) {
- size_t i, j = 0;
- for (i = 0; i < n; ++i)
- switch (p[i]) {
- case '<':
- case '>':
- j += 4;
- break;
- case '&':
- j += 5;
- break;
- default:
- ++j;
- break;
- }
- char *q = malloc(j + 1);
- j = 0;
- for (i = 0; i < n; ++i)
- switch (p[i]) {
- case '<':
- memcpy(q + j, "<", 4);
- j += 4;
- break;
- case '>':
- memcpy(q + j, ">", 4);
- j += 4;
- break;
- case '&':
- memcpy(q + j, "&", 5);
- j += 5;
- break;
- default:
- q[j++] = p[i];
- break;
- }
- q[j] = 0;
- piece[piece1++] = q;
-}
-
-void piece_flush(size_t n) {
- piece_escape(yytext, n);
- yytext += n;
-}
-
-void piece_pack() {
- int i;
- size_t j = 0;
- for (i = piece0; i < piece1; ++i)
- j += strlen(piece[i]);
- char *q = malloc(j + 1);
- j = 0;
- for (i = piece0; i < piece1; ++i) {
- int k = strlen(piece[i]);
- memcpy(q + j, piece[i], k);
- free(piece[i]);
- j += k;
- }
- q[j] = 0;
- piece[piece0++] = q;
- piece1 = piece0;
-}
-
-int flexscan(void) {
- int result = real_flexscan();
- if (result < 0)
- return ~result;
- piece_pack();
- piece_escape(yytext, strlen(yytext));
- piece_pack();
- return result;
-}
-
-static void markup_action(const char *text) {
- /* append to last token text so it appears inside <PLex_Section2_Rule>..</PLex_Section2_Rule> */
- /* a problem here is that Rule has already been reduced (marked up), */
- /* because we returned a '\n' token when we detected start of action, */
- /* hence we need to move the closing </PLex_Section2_Rule> tag over to our right */
- int i = strlen(piece[--piece0]);
- if (i < 21 || strcmp(piece[piece0] + i - 21, "</PLex_Section2_Rule>") != 0)
- abort();
- piece[piece0][i - 21] = 0;
- piece_append(text);
- piece_append("</PLex_Section2_Rule>");
- piece_pack();
-}
-
-static void markup_option(const char *name, int sense) {
- /* a problem here is that we couldn't apply markup when scanning the "no" */
- /* prefix because we didn't know what option it was, back up to include it */
- int i = piece1;
- while (--i >= piece0 && strcmp(piece[i], "no") == 0)
- ;
- sprintf(piece_temp, "<PLex_Section1_Options_%s%s>", name, sense ? " value=\"true\"" : "");
- piece_insert(i + 1, piece_temp);
- piece_flush(strlen(yytext));
- sprintf(piece_temp, "</PLex_Section1_Options_%s>", name);
- piece_append(piece_temp);
- /* append to last token text so it appears inside <PLex_Section1_Options>..</PLex_Section1_Options> */
- --piece0;
- piece_pack();
-}
-
+++ /dev/null
-import bisect
-import bisect_set
-import element
-import lr1dfa
-#import work
-import sys
-
-# defines the alphabet size, set this to 0x11000 for unicode
-n_characters = 0x100
-
-class LR1:
- ASSOCIATIVITY_RIGHT = 0
- ASSOCIATIVITY_LEFT = 1
- ASSOCIATIVITY_NON = 2
-
- def __init__(
- self,
- productions = [],
- precedences = ([], [], [], []),
- associativities = [],
- n_terminals = n_characters + 1,
- eof_terminal = n_characters
- ):
- # productions: list of production
- # production: (
- # symbols,
- # lookaheads,
- # ref_data
- # )
- # symbols: list of symbol_desc
- # symbol_desc: (terminal_set, nonterminal_set)
- # terminal_set: similar to character_set, even length list of pairs of breaks
- # nonterminal_set: as above but has n_terminals subtracted from breaks
- # lookaheads: list of lookahead_desc, len(lookaheads) = len(symbols) + 1
- # lookahead_desc: (initial_set, can_be_empty)
- # initial_set: what terminals can occur at this position in symbols array,
- # computed such that lookaheads[i][0] is symbols[i][0], plus initial set of
- # each nonterminal from symbols[i][1], plus lookaheads[i + 1][0] if any
- # nonterminal of symbols[i][1] can be empty (may pull in i + 2, i + 3 etc)
- # can_be_empty: whether all symbols from this position to end can be empty
- # note: last lookahead_desc is a sentinel consisting of ([], True), so that
- # initial_set is empty (will be augmented by context) and can_be_empty is
- # True (because all symbols from the end to the end can obviously be empty)
- # ref_data: can be anything for caller's use, usually list of group_bound
- # group_bound: (start_index, end_index, tag, kwargs)
- # where start_index, end_index are indices into list of character_set,
- # and tag, kwargs will be passed to apply_markup() hence factory(),
- # noting that markup has to be applied in reverse order of the list
- # precedences: (terminal_breaks, terminal_precs, nonterminal_breaks,
- # nonterminal_precs) encoded similarly to the action and goto tables
- # associativities: indexed by value from (non)terminal_precs, contains
- # -1 for not specified (equal precedence is a compile time error) or an
- # ASSOCIATIVITY_* value (NON means equal precedence is run time error)
- # n_terminals: offset to apply to productions[] index to get symbol
- # (character set code), also symbol for productions[0] = start production
- # eof_terminal: usually == n_terminals - 1 (must be valid terminal value)
- self.productions = productions
- self.precedences = precedences
- self.associativities = associativities
- self.n_terminals = n_terminals
- self.eof_terminal = eof_terminal
-
- def lookahead_item_set_closure(self, items, item_to_index):
- in_queue = [True for i in range(len(items))]
- queue = list(range(len(items)))
-
- qhead = 0
- while qhead < len(queue):
- i = queue[qhead]
- in_queue[i] = False
- j, k, lookahead_set = items[i]
- symbols, lookaheads, _ = self.productions[j]
- if k < len(symbols):
- _, nonterminal_set = symbols[k]
- if len(nonterminal_set):
- next_lookahead_set, next_can_be_empty = lookaheads[k + 1]
- if next_can_be_empty:
- next_lookahead_set = bisect_set.bisect_set_or(
- next_lookahead_set,
- lookahead_set
- )
- for l in range(0, len(nonterminal_set), 2):
- for m in range(nonterminal_set[l], nonterminal_set[l + 1]):
- key = (m, 0)
- if key in item_to_index:
- n = item_to_index[key]
- child_lookahead_set = bisect_set.bisect_set_or(
- items[n][2],
- next_lookahead_set
- )
- if child_lookahead_set != items[n][2]:
- items[n] = (m, 0, child_lookahead_set)
- if not in_queue[n]:
- # optimization: do not re-queue unless it is transparent
- # to changes in the lookahead set wrt. further propagation
- child_symbols, child_lookaheads, _ = self.productions[m]
- if len(child_symbols) and child_lookaheads[1][1]:
- in_queue[n] = True
- queue.append(n)
- else:
- n = len(items)
- items.append((m, 0, next_lookahead_set))
- item_to_index[key] = n
- in_queue.append(True)
- queue.append(n)
- qhead += 1
-
- def lookahead_item_set_action(self, items, terminal):
- next_items = []
- next_item_to_index = {}
- reductions = set()
- terminal0 = 0
- terminal1 = self.n_terminals
- for i, j, lookahead_set in items:
- symbols, _, _ = self.productions[i]
- if j < len(symbols):
- terminal_set, _ = symbols[j]
- k = bisect.bisect_right(terminal_set, terminal)
- if k > 0 and terminal0 < terminal_set[k - 1]:
- terminal0 = terminal_set[k - 1]
- if k < len(terminal_set) and terminal1 > terminal_set[k]:
- terminal1 = terminal_set[k]
- if (k & 1) == 1:
- next_item_to_index[(i, j + 1)] = len(next_items)
- next_items.append((i, j + 1, lookahead_set))
- else:
- k = bisect.bisect_right(lookahead_set, terminal)
- if k > 0 and terminal0 < lookahead_set[k - 1]:
- terminal0 = lookahead_set[k - 1]
- if k < len(lookahead_set) and terminal1 > lookahead_set[k]:
- terminal1 = lookahead_set[k]
- if (k & 1) == 1:
- reductions.add(i)
- return next_items, next_item_to_index, reductions, terminal0, terminal1
-
- def lookahead_item_set_goto(self, items, nonterminal):
- next_items = []
- next_item_to_index = {}
- reductions = set()
- nonterminal0 = 0
- nonterminal1 = len(self.productions)
- for i, j, lookahead_set in items:
- symbols, _, _ = self.productions[i]
- if j < len(symbols):
- _, nonterminal_set = symbols[j]
- k = bisect.bisect_right(nonterminal_set, nonterminal)
- if k > 0 and nonterminal0 < nonterminal_set[k - 1]:
- nonterminal0 = nonterminal_set[k - 1]
- if k < len(nonterminal_set) and nonterminal1 > nonterminal_set[k]:
- nonterminal1 = nonterminal_set[k]
- if (k & 1) == 1:
- next_item_to_index[(i, j + 1)] = len(next_items)
- next_items.append((i, j + 1, lookahead_set))
- return next_items, next_item_to_index, nonterminal0, nonterminal1
-
- #def parse_text(self, text, i):
- # items = [(0, 0, [self.eof_terminal, self.eof_terminal + 1])]
- # item_to_index = {(0, 0): 0}
- # value_stack = []
- # state_stack = []
- # lookahead_character = ord(text[i]) if i < len(text) else self.eof_terminal
- # while True:
- # self.lookahead_item_set_closure(items, item_to_index)
- # value_stack.append(i)
- # state_stack.append(items)
- # items, item_to_index, reductions, _, _ = (
- # self.lookahead_item_set_action(items, lookahead_character)
- # )
- # if len(items) != 0:
- # if len(reductions) != 0:
- # sys.stderr.write(
- # 'shift/reduce conflict: {0:s} vs {1:s}\n'.format(
- # ','.join([str(i) for i, _, _ in next_items]),
- # ','.join([str(i) for i in reductions])
- # )
- # )
- # i += 1
- # lookahead_character = ord(text[i]) if i < len(text) else self.eof_terminal
- # elif len(reductions) != 0:
- # if len(reductions) != 1:
- # sys.stderr.write(
- # 'reduce/reduce conflict: {0:s}\n'.format(
- # ','.join([str(i) for i in reductions])
- # )
- # )
- # reduce = min(reductions)
- # symbols, _, ref_data = self.productions[reduce]
- # base = len(value_stack) - len(symbols) - 1
- # for j in range(len(ref_data) - 1, -1, -1):
- # k, l, tag, _ = ref_data[j]
- # k += base
- # if l != 1:
- # value_stack[k + 1:k + l + 1] = [value_stack[k + l]]
- # sys.stderr.write(
- # 'text \'{0:s}\' tag \'{1:s}\'\n'.format(
- # text[value_stack[k]:value_stack[k + 1]],
- # tag
- # )
- # )
- # del value_stack[base + 1:]
- # del state_stack[base + 1:]
- # if reduce == 0:
- # assert base == 0
- # return
- # items, item_to_index, _, _ = (
- # self.lookahead_item_set_goto(state_stack[-1], reduce)
- # )
- # assert len(items) != 0
- # else:
- # raise Exception(
- # 'syntax error at {0:d}: {1:s}'.format(i, text[i:])
- # )
-
- #def parse_yychunk(self, root, pos, off, factory, yychunk_iter):
- # if pos < 0:
- # pos, off = element.to_start_relative(root, pos, off)
-
- # items = [(0, 0, [self.eof_terminal, self.eof_terminal + 1])]
- # item_to_index = {(0, 0): 0}
- # value_stack = []
- # state_stack = []
- # text = element.get_text(root, pos)
- # while off >= len(text):
- # if pos < len(root):
- # pos += 1
- # off = 0
- # else:
- # try:
- # next(yychunk_iter)
- # except StopIteration:
- # lookahead_character = self.eof_terminal
- # break
- # text = element.get_text(root, pos)
- # else:
- # lookahead_character = ord(text[off])
- # while True:
- # self.lookahead_item_set_closure(items, item_to_index)
- # value_stack.append((pos, off))
- # state_stack.append(items)
- # items, item_to_index, reductions, _, _ = (
- # self.lookahead_item_set_action(items, lookahead_character)
- # )
- # if len(items) != 0:
- # if len(reductions) != 0:
- # sys.stderr.write(
- # 'shift/reduce conflict: {0:s} vs {1:s}\n'.format(
- # ','.join([str(i) for i, _ in next_lookahead_item_set.keys()]),
- # ','.join([str(i) for i in reductions])
- # )
- # )
- # off += 1
- # while off >= len(text):
- # if pos < len(root):
- # pos += 1
- # off = 0
- # else:
- # try:
- # next(yychunk_iter)
- # except StopIteration:
- # lookahead_character = self.eof_terminal
- # break
- # text = element.get_text(root, pos)
- # else:
- # lookahead_character = ord(text[off])
- # elif len(reductions) != 0:
- # if len(reductions) != 1:
- # sys.stderr.write(
- # 'reduce/reduce conflict: {0:s}\n'.format(
- # ','.join([str(i) for i in reductions])
- # )
- # )
- # reduce = min(reductions)
- # symbols, _, ref_data = self.productions[reduce]
- # base = len(value_stack) - len(symbols) - 1
- # end_relative = len(value_stack)
- # for j in range(len(ref_data) - 1, -1, -1):
- # k, l, tag, kwargs = ref_data[j]
- # k += base
- # assert k < end_relative
- # if l != 1:
- # value_stack[k + 1:k + l + 1] = [value_stack[k + l]]
- # end_relative = max(k + 1, end_relative + 1 - l)
- # while end_relative > k + 1:
- # end_relative -= 1
- # pos1, off1 = value_stack[end_relative]
- # value_stack[end_relative] = (
- # element.to_end_relative(root, pos1, off1)
- # )
- # pos0, off0 = value_stack[k]
- # pos1, off1 = value_stack[k + 1]
- # work.apply_markup(
- # root,
- # pos0,
- # off0,
- # pos1,
- # off1,
- # factory,
- # tag,
- # **kwargs
- # )
- # if end_relative < len(value_stack):
- # pos, off = value_stack[-1]
- # pos, off = element.to_start_relative(root, pos, off)
- # text = element.get_text(root, pos)
- # del value_stack[base + 1:]
- # del state_stack[base + 1:]
- # if reduce == 0:
- # assert base == 0
- # return
- # items, item_to_index, _, _ = (
- # self.lookahead_item_set_goto(state_stack[-1], reduce)
- # )
- # assert len(items) != 0
- # else:
- # raise Exception(
- # 'syntax error at {0:d},{1:d}: {2:s}'.format(pos, off, text[off:])
- # )
-
- def to_clr1(self):
- _lr1dfa = lr1dfa.LR1DFA(
- [],
- [
- (len(symbols), ref_data)
- for symbols, _, ref_data in self.productions
- ],
- self.n_terminals,
- self.eof_terminal
- )
-
- items = [(0, 0, [self.eof_terminal, self.eof_terminal + 1])]
- item_to_index = {(0, 0): 0}
- self.lookahead_item_set_closure(items, item_to_index)
-
- items = sorted(items)
- key = tuple((i, j, tuple(k)) for i, j, k in items)
- state_to_items = [items]
- items_to_state = {key: 0}
-
- while len(_lr1dfa.states) < len(state_to_items):
- items = state_to_items[len(_lr1dfa.states)]
- state_desc = ([], [], [], [])
-
- def add_state(next_items, next_item_to_index):
- self.lookahead_item_set_closure(next_items, next_item_to_index)
- new_items = sorted(next_items)
- key = tuple((i, j, tuple(k)) for i, j, k in new_items)
- if key in items_to_state:
- state = items_to_state[key]
- else:
- state = len(state_to_items)
- state_to_items.append(new_items)
- items_to_state[key] = state
- return state
-
- terminal = 0
- while terminal < self.n_terminals:
- next_items, next_item_to_index, reductions, terminal0, terminal1 = (
- self.lookahead_item_set_action(items, terminal)
- )
- assert terminal0 == terminal and terminal1 > terminal
- if len(reductions) != 0:
- if len(reductions) != 1:
- sys.stderr.write(
- 'state {0:d} reduce/reduce conflict: {1:s}\n'.format(
- len(_lr1dfa.states),
- ', '.join([str(i) for i in sorted(reductions)])
- )
- )
- reduction = min(reductions)
- if len(next_items) != 0:
- j = bisect.bisect_right(self.precedences[0], terminal)
- if j > 0 and terminal0 < self.precedences[0][j - 1]:
- terminal0 = self.precedences[0][j - 1]
- assert j < len(self.precedences[0])
- if terminal1 > self.precedences[0][j]:
- terminal1 = self.precedences[0][j]
- shift_precedence = self.precedences[1][j]
- reduce_precedence = self.precedences[3][
- bisect.bisect_right(self.precedences[2], reduction)
- ]
- if shift_precedence == -1 or reduce_precedence == -1:
- sys.stderr.write(
- 'state {0:d} shift/reduce conflict: {1:d} vs {2:d}\n'.format(
- len(_lr1dfa.states),
- terminal,
- reduction
- )
- )
- action = add_state(next_items, next_item_to_index) * 2 # shift
- elif shift_precedence > reduce_precedence:
- action = add_state(next_items, next_item_to_index) * 2 # shift
- elif shift_precedence < reduce_precedence:
- action = reduction * 2 + 1 # reduce
- else:
- associativity = self.associativities[shift_precedence]
- if associativity == LR1.ASSOCIATIVITY_RIGHT:
- action = add_state(next_items, next_item_to_index) * 2 # shift
- elif associativity == LR1.ASSOCIATIVITY_LEFT:
- action = reduction * 2 + 1 # reduce
- elif associativity == LR1.ASSOCIATIVITY_NON: # run time error
- action = -1
- else:
- assert False # not specified (compile time error)
- else:
- action = reduction * 2 + 1 # reduce
- elif len(next_items) != 0:
- action = add_state(next_items, next_item_to_index) * 2 # shift
- else:
- action = -1
- state_desc[0].append(terminal1)
- state_desc[1].append(action)
- terminal = terminal1
-
- nonterminal = 0
- while nonterminal < len(self.productions):
- next_items, next_item_to_index, nonterminal0, nonterminal1 = (
- self.lookahead_item_set_goto(items, nonterminal)
- )
- assert nonterminal0 == nonterminal and nonterminal1 > nonterminal
- if len(next_items) != 0:
- goto = add_state(next_items, next_item_to_index)
- else:
- goto = -1
- state_desc[2].append(nonterminal1)
- state_desc[3].append(goto)
- nonterminal = nonterminal1
-
- _lr1dfa.states.append(state_desc)
- return _lr1dfa
-
- def to_lalr1(self):
- _lr1dfa = lr1dfa.LR1DFA(
- [],
- [
- (len(symbols), ref_data)
- for symbols, _, ref_data in self.productions
- ],
- self.n_terminals,
- self.eof_terminal
- )
-
- items = [(0, 0, [self.eof_terminal, self.eof_terminal + 1])]
- item_to_index = {(0, 0): 0}
- self.lookahead_item_set_closure(items, item_to_index)
-
- items = sorted(items)
- key = tuple((i, j) for i, j, _ in items) # ignore lookahead
- state_to_items = [items]
- items_to_state = {key: 0}
-
- in_queue = [True]
- queue = [0]
-
- qhead = 0
- while qhead < len(queue):
- i = queue[qhead]
- in_queue[i] = False
- items = state_to_items[i]
- state_desc = ([], [], [], [])
-
- def add_state(next_items, next_item_to_index):
- self.lookahead_item_set_closure(next_items, next_item_to_index)
- new_items = sorted(next_items)
- key = tuple((i, j) for i, j, _ in new_items) # ignore lookahead
- if key in items_to_state:
- state = items_to_state[key]
- state_items = state_to_items[state]
- for i in range(len(new_items)):
- j, k, lookahead_set = new_items[i]
- lookahead_set = bisect_set.bisect_set_or(lookahead_set, state_items[i][2])
- if lookahead_set != state_items[i][2]:
- state_items[i] = (j, k, lookahead_set)
- if not in_queue[state]:
- in_queue[state] = True
- queue.append(state)
- else:
- state = len(state_to_items)
- state_to_items.append(new_items)
- items_to_state[key] = state
- in_queue.append(True)
- queue.append(state)
- return state
-
- terminal = 0
- while terminal < self.n_terminals:
- next_items, next_item_to_index, reductions, terminal0, terminal1 = (
- self.lookahead_item_set_action(items, terminal)
- )
- assert terminal0 == terminal and terminal1 > terminal
- if len(reductions) != 0:
- if len(reductions) != 1:
- sys.stderr.write(
- 'state {0:d} reduce/reduce conflict: {1:s}\n'.format(
- len(_lr1dfa.states),
- ', '.join([str(i) for i in sorted(reductions)])
- )
- )
- reduction = min(reductions)
- if len(next_items) != 0:
- j = bisect.bisect_right(self.precedences[0], terminal)
- if j > 0 and terminal0 < self.precedences[0][j - 1]:
- terminal0 = self.precedences[0][j - 1]
- assert j < len(self.precedences[0])
- if terminal1 > self.precedences[0][j]:
- terminal1 = self.precedences[0][j]
- shift_precedence = self.precedences[1][j]
- reduce_precedence = self.precedences[3][
- bisect.bisect_right(self.precedences[2], reduction)
- ]
- if shift_precedence == -1 or reduce_precedence == -1:
- sys.stderr.write(
- 'state {0:d} shift/reduce conflict: {1:d} vs {2:d}\n'.format(
- i,
- terminal,
- reduction
- )
- )
- action = add_state(next_items, next_item_to_index) * 2 # shift
- elif shift_precedence > reduce_precedence:
- action = add_state(next_items, next_item_to_index) * 2 # shift
- elif shift_precedence < reduce_precedence:
- action = reduction * 2 + 1 # reduce
- else:
- associativity = self.associativities[shift_precedence]
- if associativity == LR1.ASSOCIATIVITY_RIGHT:
- action = add_state(next_items, next_item_to_index) * 2 # shift
- elif associativity == LR1.ASSOCIATIVITY_LEFT:
- action = reduction * 2 + 1 # reduce
- elif associativity == LR1.ASSOCIATIVITY_NON: # run time error
- action = -1
- else:
- assert False # not specified (compile time error)
- else:
- action = reduction * 2 + 1 # reduce
- elif len(next_items) != 0:
- action = add_state(next_items, next_item_to_index) * 2 # shift
- else:
- action = -1
- state_desc[0].append(terminal1)
- state_desc[1].append(action)
- terminal = terminal1
-
- nonterminal = 0
- while nonterminal < len(self.productions):
- next_items, next_item_to_index, nonterminal0, nonterminal1 = (
- self.lookahead_item_set_goto(items, nonterminal)
- )
- assert nonterminal0 == nonterminal and nonterminal1 > nonterminal
- if len(next_items) != 0:
- goto = add_state(next_items, next_item_to_index)
- else:
- goto = -1
- state_desc[2].append(nonterminal1)
- state_desc[3].append(goto)
- nonterminal = nonterminal1
-
- if i < len(_lr1dfa.states):
- _lr1dfa.states[i] = state_desc
- else:
- _lr1dfa.states.append(state_desc)
- qhead += 1
- return _lr1dfa
-
- def __repr__(self):
- return 'lr1.LR1({0:s}, {1:s}, {2:s}, {3:d}, {4:d})'.format(
- repr(self.productions),
- repr(self.precedences),
- repr(self.associativities),
- self.n_terminals,
- self.eof_terminal
- )
-
-
+++ /dev/null
-import bisect
-import element
-import work
-import sys
-
-# defines the alphabet size, set this to 0x11000 for unicode
-n_characters = 0x100
-
-class LR1DFA:
- def __init__(
- self,
- states = [],
- productions = [],
- n_terminals = n_characters + 1,
- eof_terminal = n_characters
- ):
- # states: list of state_desc
- # state_desc: (terminal breaks, actions, nonterminal breaks, gotos)
- # action: shift = new state * 2, reduce = production * 2 + 1, error = -1
- # goto: reduce = production, error = -1 (but error can't really happen)
- # productions: list of production
- # production: (len(symbols), ref_data)
- # len(symbols): how many states to pop stack to reduce this production
- # ref_data: can be anything for caller's use, usually list of group_bound
- # group_bound: (start_index, end_index, tag, kwargs)
- # where start_index, end_index are indices into list of character_set,
- # and tag, kwargs will be passed to apply_markup() hence factory(),
- # noting that markup has to be applied in reverse order of the list
- # n_terminals: offset to apply to productions[] index to get symbol
- # (character set code), also symbol for productions[0] = start production
- # eof_terminal: usually == n_terminals - 1 (must be valid terminal value)
- self.states = states
- self.productions = productions
- self.n_terminals = n_terminals
- self.eof_terminal = eof_terminal
-
- def parse_text(self, text, i):
- state = 0
- value_stack = []
- state_stack = []
- lookahead_character = ord(text[i]) if i < len(text) else self.eof_terminal
- while True:
- value_stack.append(i)
- state_stack.append(state)
- action = self.states[state][1][
- bisect.bisect_right(self.states[state][0], lookahead_character)
- ]
- if action == -1:
- raise Exception(
- 'syntax error at {0:d}: {1:s}'.format(i, text[i:])
- )
- if (action & 1) == 0:
- state = action >> 1
- i += 1
- lookahead_character = ord(text[i]) if i < len(text) else self.eof_terminal
- else:
- reduce = action >> 1
- len_symbols, ref_data = self.productions[reduce]
- base = len(value_stack) - len_symbols - 1
- for j in range(len(ref_data) - 1, -1, -1):
- k, l, tag, _ = ref_data[j]
- k += base
- if l != 1:
- value_stack[k + 1:k + l + 1] = [value_stack[k + l]]
- sys.stdout.write(
- 'text \'{0:s}\' tag \'{1:s}\'\n'.format(
- text[value_stack[k]:value_stack[k + 1]],
- tag
- )
- )
- del value_stack[base + 1:]
- del state_stack[base + 1:]
- if reduce == 0:
- assert base == 0
- return
- state = self.states[state_stack[-1]][3][
- bisect.bisect_right(self.states[state_stack[-1]][2], reduce)
- ]
- assert state != -1
-
- def parse_yychunk(self, root, pos, off, factory, yychunk_iter):
- if pos < 0:
- pos, off = element.to_start_relative(root, pos, off)
-
- state = 0
- value_stack = []
- state_stack = []
- text = element.get_text(root, pos)
- while off >= len(text):
- if pos < len(root):
- pos += 1
- off = 0
- else:
- try:
- next(yychunk_iter)
- except StopIteration:
- lookahead_character = self.eof_terminal
- break
- text = element.get_text(root, pos)
- else:
- lookahead_character = ord(text[off])
- while True:
- value_stack.append((pos, off))
- state_stack.append(state)
- action = self.states[state][1][
- bisect.bisect_right(self.states[state][0], lookahead_character)
- ]
- #print('lookahead_character', lookahead_character, 'action', action)
- if action == -1:
- raise Exception(
- 'syntax error at {0:d},{1:d}: {2:s}'.format(pos, off, text[off:])
- )
- if (action & 1) == 0:
- state = action >> 1
- off += 1
- while off >= len(text):
- if pos < len(root):
- pos += 1
- off = 0
- else:
- try:
- next(yychunk_iter)
- except StopIteration:
- lookahead_character = self.eof_terminal
- break
- text = element.get_text(root, pos)
- else:
- lookahead_character = ord(text[off])
- else:
- reduce = action >> 1
- len_symbols, ref_data = self.productions[reduce]
- base = len(value_stack) - len_symbols - 1
- end_relative = len(value_stack)
- for j in range(len(ref_data) - 1, -1, -1):
- k, l, tag, kwargs = ref_data[j]
- k += base
- assert k < end_relative
- if l != 1:
- value_stack[k + 1:k + l + 1] = [value_stack[k + l]]
- end_relative = max(k + 1, end_relative + 1 - l)
- while end_relative > k + 1:
- end_relative -= 1
- pos1, off1 = value_stack[end_relative]
- value_stack[end_relative] = (
- element.to_end_relative(root, pos1, off1)
- )
- pos0, off0 = value_stack[k]
- pos1, off1 = value_stack[k + 1]
- work.apply_markup(
- root,
- pos0,
- off0,
- pos1,
- off1,
- factory,
- tag,
- **kwargs
- )
- if end_relative < len(value_stack):
- pos, off = value_stack[-1]
- pos, off = element.to_start_relative(root, pos, off)
- text = element.get_text(root, pos)
- del value_stack[base + 1:]
- del state_stack[base + 1:]
- if reduce == 0:
- assert base == 0
- return
- state = self.states[state_stack[-1]][3][
- bisect.bisect_right(self.states[state_stack[-1]][2], reduce)
- ]
- assert state != -1
-
- def yyparse(self, root, pos, off, factory, yylex_iter):
- if pos < 0:
- pos, off = element.to_start_relative(root, pos, off)
-
- state = 0
- value_stack = []
- state_stack = []
- try:
- end_pos, end_off, lookahead_character = next(yylex_iter)
- #if lookahead_character < 256:
- # print('\'{0:s}\''.format(chr(lookahead_character)))
- #else:
- # print(['IDENTIFIER', 'I_CONSTANT', 'F_CONSTANT', 'STRING_LITERAL', 'FUNC_NAME', 'SIZEOF', 'PTR_OP', 'INC_OP', 'DEC_OP', 'LEFT_OP', 'RIGHT_OP', 'LE_OP', 'GE_OP', 'EQ_OP', 'NE_OP', 'AND_OP', 'OR_OP', 'MUL_ASSIGN', 'DIV_ASSIGN', 'MOD_ASSIGN', 'ADD_ASSIGN', 'SUB_ASSIGN', 'LEFT_ASSIGN', 'RIGHT_ASSIGN', 'AND_ASSIGN', 'XOR_ASSIGN', 'OR_ASSIGN', 'TYPEDEF_NAME', 'ENUMERATION_CONSTANT', 'TYPEDEF', 'EXTERN', 'STATIC', 'AUTO', 'REGISTER', 'INLINE', 'CONST', 'RESTRICT', 'VOLATILE', 'BOOL', 'CHAR', 'SHORT', 'INT', 'LONG', 'SIGNED', 'UNSIGNED', 'FLOAT', 'DOUBLE', 'VOID', 'COMPLEX', 'IMAGINARY', 'STRUCT', 'UNION', 'ENUM', 'ELLIPSIS', 'CASE', 'DEFAULT', 'IF', 'ELSE', 'SWITCH', 'WHILE', 'DO', 'FOR', 'GOTO', 'CONTINUE', 'BREAK', 'RETURN', 'ALIGNAS', 'ALIGNOF', 'ATOMIC', 'GENERIC', 'NORETURN', 'STATIC_ASSERT', 'THREAD_LOCAL'][lookahead_character - 258])
- except StopIteration:
- lookahead_character = self.eof_terminal
- end_pos, end_off = element.to_end_relative(root, pos, off)
- while True:
- value_stack.append((pos, off))
- state_stack.append(state)
- action = self.states[state][1][
- bisect.bisect_right(self.states[state][0], lookahead_character)
- ]
- #print('lookahead_character', lookahead_character, 'action', action)
- if action == -1:
- raise Exception(
- 'syntax error at {0:d},{1:d}: {2:d}'.format(pos, off, lookahead_character)
- )
- if (action & 1) == 0:
- state = action >> 1
- pos, off = element.to_start_relative(root, end_pos, end_off)
- try:
- end_pos, end_off, lookahead_character = next(yylex_iter)
- #if lookahead_character < 256:
- # print('\'{0:s}\''.format(chr(lookahead_character)))
- #else:
- # print(['IDENTIFIER', 'I_CONSTANT', 'F_CONSTANT', 'STRING_LITERAL', 'FUNC_NAME', 'SIZEOF', 'PTR_OP', 'INC_OP', 'DEC_OP', 'LEFT_OP', 'RIGHT_OP', 'LE_OP', 'GE_OP', 'EQ_OP', 'NE_OP', 'AND_OP', 'OR_OP', 'MUL_ASSIGN', 'DIV_ASSIGN', 'MOD_ASSIGN', 'ADD_ASSIGN', 'SUB_ASSIGN', 'LEFT_ASSIGN', 'RIGHT_ASSIGN', 'AND_ASSIGN', 'XOR_ASSIGN', 'OR_ASSIGN', 'TYPEDEF_NAME', 'ENUMERATION_CONSTANT', 'TYPEDEF', 'EXTERN', 'STATIC', 'AUTO', 'REGISTER', 'INLINE', 'CONST', 'RESTRICT', 'VOLATILE', 'BOOL', 'CHAR', 'SHORT', 'INT', 'LONG', 'SIGNED', 'UNSIGNED', 'FLOAT', 'DOUBLE', 'VOID', 'COMPLEX', 'IMAGINARY', 'STRUCT', 'UNION', 'ENUM', 'ELLIPSIS', 'CASE', 'DEFAULT', 'IF', 'ELSE', 'SWITCH', 'WHILE', 'DO', 'FOR', 'GOTO', 'CONTINUE', 'BREAK', 'RETURN', 'ALIGNAS', 'ALIGNOF', 'ATOMIC', 'GENERIC', 'NORETURN', 'STATIC_ASSERT', 'THREAD_LOCAL'][lookahead_character - 258])
- except StopIteration:
- lookahead_character = self.eof_terminal
- #end_pos, end_off = element.to_end_relative(root, pos, off)
- else:
- reduce = action >> 1
- len_symbols, ref_data = self.productions[reduce]
- base = len(value_stack) - len_symbols - 1
- end_relative = len(value_stack)
- for j in range(len(ref_data) - 1, -1, -1):
- k, l, tag, kwargs = ref_data[j]
- k += base
- assert k < end_relative
- if l != 1:
- value_stack[k + 1:k + l + 1] = [value_stack[k + l]]
- end_relative = max(k + 1, end_relative + 1 - l)
- while end_relative > k + 1:
- end_relative -= 1
- pos1, off1 = value_stack[end_relative]
- value_stack[end_relative] = (
- element.to_end_relative(root, pos1, off1)
- )
- pos0, off0 = value_stack[k]
- pos1, off1 = value_stack[k + 1]
- work.apply_markup(
- root,
- pos0,
- off0,
- pos1,
- off1,
- factory,
- tag,
- **kwargs
- )
- if end_relative < len(value_stack):
- pos, off = value_stack[-1]
- pos, off = element.to_start_relative(root, pos, off)
- del value_stack[base + 1:]
- del state_stack[base + 1:]
- if reduce == 0:
- assert base == 0
- return
- state = self.states[state_stack[-1]][3][
- bisect.bisect_right(self.states[state_stack[-1]][2], reduce)
- ]
- assert state != -1
-
- def __repr__(self):
- return 'lr1dfa.LR1DFA({0:s}, {1:s}, {2:d}, {3:d})'.format(
- repr(self.states),
- repr(self.productions),
- self.n_terminals,
- self.eof_terminal
- )
+++ /dev/null
-#!/usr/bin/env python3
-
-import element
-import nfa
-import regex
-import sys
-import wrap_repr
-
-if len(sys.argv) < 2:
- sys.stdout.write(
- 'usage: {0:s} regex.xml [tokens.py] <yylex_template.py'.format(
- sys.argv[0]
- )
- )
- sys.exit(1)
-
-with open(sys.argv[1]) as fin:
- _regex = element.deserialize(fin, regex.factory)
-
-group_name_to_token = {}
-for i in range(0x100):
- group_name_to_token['X_{0:02X}'.format(i)] = i
-if len(sys.argv) >= 3:
- with open(sys.argv[2]) as fin:
- line = fin.readline()
- while len(line):
- fields = line.split()
- assert fields[1] == '='
- group_name_to_token[fields[0]] = int(fields[2])
- line = fin.readline()
-
-line = sys.stdin.readline()
-while len(line):
- if line[:14] == '# GENERATE DFA':
- groups = []
- _regex.to_groups(groups)
- _nfa = nfa.NFA(groups)
- _regex.add_to_nfa(_nfa)
- _dfa = _nfa.to_dfa()
- sys.stdout.write(
- '''# GENERATE DFA BEGIN
-{0:s}# GENERATE END
-'''.format(
- wrap_repr.wrap_repr('_dfa = {0:s}'.format(repr(_dfa)), 79)
- )
- )
- if line[14:20] == ' BEGIN':
- line = sys.stdin.readline()
- while len(line):
- if line[:14] == '# GENERATE END':
- break
- line = sys.stdin.readline()
- else:
- assert False
- elif line[:17] == '# GENERATE TOKENS':
- groups = []
- _regex.to_groups(groups)
- tokens = [group_name_to_token.get(i, -1) for i, _ in groups]
- sys.stdout.write(
- '''# GENERATE TOKENS BEGIN
-{0:s}# GENERATE END
-'''.format(
- wrap_repr.wrap_repr('tokens = {0:s}'.format(repr(tokens)), 79)
- )
- )
- if line[17:23] == ' BEGIN':
- line = sys.stdin.readline()
- while len(line):
- if line[:14] == '# GENERATE END':
- break
- line = sys.stdin.readline()
- else:
- assert False
- else:
- sys.stdout.write(line)
- line = sys.stdin.readline()
+++ /dev/null
-#!/usr/bin/env python3
-
-import element
-import grammar
-import sys
-import wrap_repr
-
-if len(sys.argv) < 2:
- sys.stdout.write(
- 'usage: {0:s} grammar.xml tokens.py <yyparse_template.py'.format(
- sys.argv[0]
- )
- )
- sys.exit(1)
-
-with open(sys.argv[1]) as fin:
- _grammar = element.deserialize(fin, grammar.factory)
-
-line = sys.stdin.readline()
-while len(line):
- if line[:15] == '# GENERATE CLR1':
- clr1 = _grammar.to_lr1().to_clr1()
- sys.stdout.write(
- '''# GENERATE CLR1 BEGIN
-{0:s}# GENERATE END
-'''.format(
- wrap_repr.wrap_repr('clr1 = {0:s}'.format(repr(clr1)), 79)
- )
- )
- if line[15:21] == ' BEGIN':
- line = sys.stdin.readline()
- while len(line):
- if line[:14] == '# GENERATE END':
- break
- line = sys.stdin.readline()
- else:
- assert False
- if line[:16] == '# GENERATE LALR1':
- lalr1 = _grammar.to_lr1().to_lalr1()
- sys.stdout.write(
- '''# GENERATE LALR1 BEGIN
-{0:s}# GENERATE END
-'''.format(
- wrap_repr.wrap_repr('lalr1 = {0:s}'.format(repr(lalr1)), 79)
- )
- )
- if line[16:22] == ' BEGIN':
- line = sys.stdin.readline()
- while len(line):
- if line[:14] == '# GENERATE END':
- break
- line = sys.stdin.readline()
- else:
- assert False
- else:
- sys.stdout.write(line)
- line = sys.stdin.readline()
+++ /dev/null
-import bisect
-import dfa
-import element
-
-# defines the alphabet size, set this to 0x11000 for unicode
-n_characters = 0x100
-
-class NFA:
- # state_desc classes:
- # (STATE_CHARACTER, character_set, next_state)
- # (STATE_OR, next_state0, next_state1)
- # (STATE_AND, next_state0, next_state1)
- # (STATE_JOIN0,)
- # (STATE_JOIN1, next_state)
- # (STATE_MARK, mark_value, next_state)
-
- STATE_CHARACTER = 0
- STATE_OR = 1
- STATE_AND = 2
- STATE_JOIN0 = 3
- STATE_JOIN1 = 4
- STATE_MARK = 5
- join0_state = (STATE_JOIN0,)
-
- # multistate classes:
- # (MULTISTATE_ACCEPT, 1) accept, occupies one thread in list
- # (MULTISTATE_AND, n, state, child) and, occupies n threads in list
- # (MULTISTATE_OR, n, child0, child1)
- # n = sum of n from child states, that is, multistate[1] is the number of
- # (MULTISTATE_ACCEPT, 1) leaf states ultimately reachable from this subtree
-
- MULTISTATE_ACCEPT = 0
- MULTISTATE_AND = 1
- MULTISTATE_OR = 2
- accept_multistate = (MULTISTATE_ACCEPT, 1)
-
- def __init__(
- self,
- groups = [],
- states = [(STATE_CHARACTER, [0, n_characters], 0)],
- start_state = [] # can have multiple NFAs in same container
- ):
- # groups: list of group_desc
- # group_desc: (tag, kwargs)
- # tag, kwargs will be passed to apply_markup() hence factory()
- self.groups = groups
- self.states = states
- self.start_state = start_state
-
- def multistate_next(self, root_multistate, character):
- # the deduplication works as effectively a second pass which goes
- # over the multistate tree in pre-order, looking for OR-disjunctions
- # of any depth and configuration, e.g. (a OR b) or (c OR d), and
- # collecting the subexpressions e.g. a, b, c OR b, c, d, c OR d, and
- # failing any subexpression that's previously occurred in pre-order
- # (children of AND-conjunctions get a fresh empty subexpression set)
-
- # unfortunately it can't be done as a second pass literally, because
- # we have to generate the transition list, thus we need to know if a
- # subexpression is going to be failed, so we can delete it's threads
-
- # therefore the deduplication is tacked onto the end of the building
- # process, examining each built node just before the builder returns,
- # if already in the subexpression set we will rewrite the transition
- # list produced by the recursive calls, otherwise we will add it in
-
- # the problem is determining the subexpression set to pass into any
- # recursive calls, the caller's set will be sent unchanged by cases
- # that return the result unchanged or add an OR-disjuction, an empty
- # set will be sent by cases that add an AND-conjuction to the result
-
- # if we have added something to the node built by a recursive call,
- # we'll fall into the deduplication logic, otherwise just return it
-
- def advance1(multistate, join_count, done_multistates):
- # modifies nonlocal: transition
- assert multistate[0] == NFA.MULTISTATE_AND
- _, _, state, child = multistate
- if state == 0:
- # note that if we reach the accepting state, we must be a top-level
- # expression, and could not be part of an AND-conjunction (because
- # AND-conjunction terms always go to a join0 or join1 state first),
- # we remove ourselves to indicate to scanner that match is complete
- assert join_count == 0
- assert child == NFA.accept_multistate
- return advance(child, 0, done_multistates)
- state_desc = self.states[state]
- if state_desc[0] == NFA.STATE_CHARACTER:
- if join_count != 0:
- transition.append((dfa.DFA.TRANSITION_POP, child[1]))
- return None
- len_transition = len(transition)
- child = advance(child, 0, set())
- if child is None:
- return None
- result = (NFA.MULTISTATE_AND, child[1], state, child)
- elif state_desc[0] == NFA.STATE_OR:
- _, next_state0, next_state1 = state_desc
- len_transition = len(transition)
- transition.append((dfa.DFA.TRANSITION_DUP, child[1]))
- child0 = advance1(
- (NFA.MULTISTATE_AND, child[1], next_state0, child),
- join_count,
- done_multistates
- )
- child1 = advance1(
- (NFA.MULTISTATE_AND, child[1], next_state1, child),
- join_count,
- done_multistates
- )
- if child0 is None:
- return child1
- if child1 is None:
- return child0
- result = (NFA.MULTISTATE_OR, child0[1] + child1[1], child0, child1)
- elif state_desc[0] == NFA.STATE_AND:
- _, next_state0, next_state1 = state_desc
- return advance1(
- (
- NFA.MULTISTATE_AND,
- child[1],
- next_state0,
- (NFA.MULTISTATE_AND, child[1], next_state1, child)
- ),
- join_count,
- done_multistates
- )
- elif state_desc[0] == NFA.STATE_JOIN0:
- return advance(child, join_count + 1, done_multistates)
- elif state_desc[0] == NFA.STATE_JOIN1:
- _, next_state = state_desc
- if join_count == 0:
- transition.append((dfa.DFA.TRANSITION_POP, child[1]))
- return None
- return advance1(
- (NFA.MULTISTATE_AND, child[1], next_state, child),
- join_count - 1,
- done_multistates
- )
- elif state_desc[0] == NFA.STATE_MARK:
- _, mark_value, next_state = state_desc
- transition.append((dfa.DFA.TRANSITION_MARK, child[1], mark_value))
- return advance1(
- (NFA.MULTISTATE_AND, child[1], next_state, child),
- join_count,
- done_multistates
- )
- else:
- assert False
- if result in done_multistates:
- transition[len_transition:] = [(dfa.DFA.TRANSITION_POP, multistate[1])]
- return None
- done_multistates.add(result)
- return result
-
- def advance(multistate, join_count, done_multistates):
- nonlocal character0, character1 # modifies nonlocal: transition
- if multistate[0] == NFA.MULTISTATE_ACCEPT:
- assert join_count == 0
- len_transition = len(transition)
- transition.append((dfa.DFA.TRANSITION_MOVE, 1))
- result = NFA.accept_multistate # takes no arguments so use static one
- elif multistate[0] == NFA.MULTISTATE_AND:
- if character >= 0:
- _, _, state, child = multistate
- state_desc = self.states[state]
- assert state_desc[0] == NFA.STATE_CHARACTER
- _, character_set, next_state = state_desc
- k = bisect.bisect_right(character_set, character)
- if k > 0 and character0 < character_set[k - 1]:
- character0 = character_set[k - 1]
- if k < len(character_set) and character1 > character_set[k]:
- character1 = character_set[k]
- if (k & 1) == 0:
- transition.append((dfa.DFA.TRANSITION_POP, child[1]))
- return None
- multistate = (NFA.MULTISTATE_AND, child[1], next_state, child)
- return advance1(multistate, join_count, done_multistates)
- elif multistate[0] == NFA.MULTISTATE_OR:
- _, _, child0, child1 = multistate
- len_transition = len(transition)
- child0 = advance(child0, join_count, done_multistates)
- child1 = advance(child1, join_count, done_multistates)
- if child0 is None:
- return child1
- if child1 is None:
- return child0
- result = (NFA.MULTISTATE_OR, child0[1] + child1[1], child0, child1)
- else:
- assert False
- if result in done_multistates:
- transition[len_transition:] = [(dfa.DFA.TRANSITION_POP, multistate[1])]
- return None
- done_multistates.add(result)
- return result
-
- transition = []
- character0 = 0
- character1 = n_characters
- root_multistate = advance(root_multistate, 0, set())
- return root_multistate, transition, character0, character1
-
- def multistate_accept(root_multistate):
- i = 0
- def accept(multistate):
- nonlocal i
- if multistate[0] == NFA.MULTISTATE_ACCEPT:
- return True
- if multistate[0] == NFA.MULTISTATE_AND:
- _, _, _, child = multistate
- i += child[1]
- return False
- if multistate[0] == NFA.MULTISTATE_OR:
- _, _, child0, child1 = multistate
- return accept(child0) or accept(child1)
- assert False
- return i if accept(root_multistate) else -1
-
- def match_text(self, text, i, start_index = 0):
- def transit(transition):
- nonlocal threads0, threads1, prefix_slop # note: also uses i
- j = prefix_slop
- for trans in transition:
- if trans[0] == dfa.DFA.TRANSITION_POP:
- j += trans[1]
- elif trans[0] == dfa.DFA.TRANSITION_DUP:
- while j < trans[1]:
- threads0[:0] = [None] * prefix_slop
- threads1[:0] = [None] * prefix_slop
- j += prefix_slop
- prefix_slop *= 2
- threads0[j - trans[1]:j] = threads0[j:j + trans[1]]
- j -= trans[1]
- elif trans[0] == dfa.DFA.TRANSITION_MARK:
- threads0[j:j + trans[1]] = [
- (i, trans[2], thread)
- for thread in threads0[j:j + trans[1]]
- ]
- elif trans[0] == dfa.DFA.TRANSITION_MOVE:
- threads1.extend(threads0[j:j + trans[1]])
- j += trans[1]
- #elif trans[0] == dfa.DFA.TRANSITION_DEL:
- # del threads1[-trans[1]:]
- else:
- assert False
- assert j == len(threads0)
- threads0, threads1 = threads1, threads0
- del threads1[prefix_slop:]
-
- threads0 = [None, None]
- threads1 = [None]
- prefix_slop = 1
-
- start_state = self.start_state[start_index]
- if start_state == -1:
- return None
- next_multistate, transition, _, _ = self.multistate_next(
- (NFA.MULTISTATE_AND, 1, start_state, NFA.accept_multistate),
- -1
- )
- while next_multistate is not None:
- transit(transition)
- assert len(threads0) == prefix_slop + next_multistate[1]
- if next_multistate == NFA.accept_multistate:
- # there is only one match, which is complete
- assert len(threads0) == prefix_slop + 1
- return threads0[prefix_slop]
- if i >= len(text):
- # return best match we have, but not incomplete match
- i = NFA.multistate_accept(next_multistate)
- return (None if i == -1 else threads0[prefix_slop + i])
- next_multistate, transition, _, _ = (
- self.multistate_next(next_multistate, ord(text[i]))
- )
- i += 1
- return None
-
- def match_yychunk(self, root, pos, off, yychunk_iter, start_index = 0):
- if pos < 0:
- pos, off = element.to_start_relative(root, pos, off)
-
- def transit(transition):
- nonlocal threads0, threads1, prefix_slop # note: also uses pos, off
- j = prefix_slop
- for trans in transition:
- if trans[0] == dfa.DFA.TRANSITION_POP:
- j += trans[1]
- elif trans[0] == dfa.DFA.TRANSITION_DUP:
- while j < trans[1]:
- threads0[:0] = [None] * prefix_slop
- threads1[:0] = [None] * prefix_slop
- j += prefix_slop
- prefix_slop *= 2
- threads0[j - trans[1]:j] = threads0[j:j + trans[1]]
- j -= trans[1]
- elif trans[0] == dfa.DFA.TRANSITION_MARK:
- threads0[j:j + trans[1]] = [
- (pos, off, trans[2], thread)
- for thread in threads0[j:j + trans[1]]
- ]
- elif trans[0] == dfa.DFA.TRANSITION_MOVE:
- threads1.extend(threads0[j:j + trans[1]])
- j += trans[1]
- #elif trans[0] == dfa.DFA.TRANSITION_DEL:
- # del threads1[-trans[1]:]
- else:
- assert False
- assert j == len(threads0)
- threads0, threads1 = threads1, threads0
- del threads1[prefix_slop:]
-
- threads0 = [None, None]
- threads1 = [None]
- prefix_slop = 1
-
- start_state = self.start_state[start_index]
- if start_state == -1:
- return None
- next_multistate, transition, _, _ = self.multistate_next(
- (NFA.MULTISTATE_AND, 1, start_state, NFA.accept_multistate),
- -1
- )
- text = element.get_text(root, pos)
- while next_multistate is not None:
- transit(transition)
- assert len(threads0) == prefix_slop + next_multistate[1]
- if next_multistate == NFA.accept_multistate:
- # there is only one match, which is complete
- assert len(threads0) == prefix_slop + 1
- return threads0[prefix_slop]
- while off >= len(text):
- if pos < len(root):
- pos += 1
- off = 0
- else:
- try:
- next(yychunk_iter)
- except StopIteration:
- # return best match we have, but not incomplete match
- i = NFA.multistate_accept(next_multistate)
- return (None if i == -1 else threads0[prefix_slop + i])
- text = element.get_text(root, pos)
- next_multistate, transition, _, _ = (
- self.multistate_next(next_multistate, ord(text[off]))
- )
- off += 1
- return None
-
- def to_dfa(self):
- _dfa = dfa.DFA(list(self.groups))
-
- accept_key = (NFA.accept_multistate, ())
- action_to_meaning = [accept_key]
- meaning_to_action = {accept_key: 0}
- state_to_meaning = [NFA.accept_multistate]
- meaning_to_state = {NFA.accept_multistate: 0}
-
- for start_state in self.start_state:
- if start_state == -1:
- start_action = -1
- else:
- next_multistate, transition, _, _ = self.multistate_next(
- (NFA.MULTISTATE_AND, 1, start_state, NFA.accept_multistate),
- -1
- )
- if next_multistate is None:
- start_action = -1
- else:
- start_key = (next_multistate, tuple(transition))
- start_action = len(action_to_meaning)
- meaning_to_action[start_key] = start_action
- action_to_meaning.append(start_key)
- _dfa.start_action.append(start_action)
-
- while len(_dfa.actions) < len(action_to_meaning):
- next_multistate, transition = action_to_meaning[len(_dfa.actions)]
- if next_multistate in meaning_to_state:
- next_state = meaning_to_state[next_multistate]
- else:
- next_state = len(state_to_meaning)
- state_to_meaning.append(next_multistate)
- meaning_to_state[next_multistate] = next_state
- _dfa.actions.append((next_state, list(transition)))
-
- while len(_dfa.states) < len(state_to_meaning):
- character = 0
- multistate = state_to_meaning[len(_dfa.states)]
- state_desc = ([], [], NFA.multistate_accept(multistate))
- while character < n_characters:
- next_multistate, transition, character0, character1 = self.multistate_next(
- multistate,
- character
- )
- assert character0 == character and character1 > character
- if next_multistate is None:
- action = -1
- else:
- # optimize transition (optional)
- i = 0
- j = 0
- while i < len(transition):
- if transition[i][0] == dfa.DFA.TRANSITION_POP:
- n = transition[i][1]
- i += 1
- while (
- i < len(transition) and
- transition[i][0] == dfa.DFA.TRANSITION_POP
- ):
- n += transition[i][1]
- i += 1
- transition[j] = (dfa.DFA.TRANSITION_POP, n)
- elif transition[i][0] == dfa.DFA.TRANSITION_MOVE:
- n = transition[i][1]
- i += 1
- while (
- i < len(transition) and
- transition[i][0] == dfa.DFA.TRANSITION_MOVE
- ):
- n += transition[i][1]
- i += 1
- transition[j] = (dfa.DFA.TRANSITION_MOVE, n)
- else:
- transition[j] = transition[i]
- i += 1
- j += 1
- del transition[j:]
- # end optimize transition
- key = (next_multistate, tuple(transition))
- if key in meaning_to_action:
- action = meaning_to_action[key]
- else:
- action = len(action_to_meaning)
- action_to_meaning.append(key)
- meaning_to_action[key] = action
- state_desc[0].append(character1)
- state_desc[1].append(action)
- character = character1
- _dfa.states.append(state_desc)
- return _dfa
-
- def __repr__(self):
- return 'nfa.NFA({0:s}, {1:s}, {2:s})'.format(
- repr(self.groups),
- repr(self.states),
- repr(self.start_state)
- )
+++ /dev/null
-import bisect_set
-import element
-import nfa
-
-# defines the alphabet size, set this to 0x11000 for unicode
-n_characters = 0x100
-
-class Regex(element.Element):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'Regex',
- attrib = {},
- text = '',
- children = []
- ):
- element.Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = element.Element.copy(
- self,
- Regex if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.Regex({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, group_index = 0): #, rule_name_to_character_set = None):
- for i in self:
- group_index = i.post_process(group_index) #, rule_name_to_character_set)
- return group_index
- def to_groups(self, groups):
- for i in self:
- i.to_groups(groups)
- def to_nfa_state(self, _nfa, next_state):
- raise NotImplementedException
- def add_to_nfa(self, _nfa):
- _nfa.start_state.append(self.to_nfa_state(_nfa, 0))
- #def to_lr1_symbols(self, n_terminals, symbols, lookaheads, group_bounds):
- # group_count = 0
- # for i in self:
- # group_count += (
- # i.to_lr1_symbols(n_terminals, symbols, lookaheads, group_bounds)
- # )
- # return group_count # count of groups or ungrouped characters
-
-class RegexNone(Regex):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'RegexNone',
- attrib = {},
- text = '',
- children = []
- ):
- Regex.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Regex.copy(
- self,
- RegexNone if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexNone({0:s})'.format(', '.join(params))
- # GENERATE END
- def to_nfa_state(self, _nfa, next_state):
- return -1
-
-class RegexEmpty(Regex):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'RegexEmpty',
- attrib = {},
- text = '',
- children = []
- ):
- Regex.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Regex.copy(
- self,
- RegexEmpty if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexEmpty({0:s})'.format(', '.join(params))
- # GENERATE END
- def to_nfa_state(self, _nfa, next_state):
- return next_state
-
-class RegexCharacter(Regex):
- # GENERATE ELEMENT(list(int) character_set) BEGIN
- def __init__(
- self,
- tag = 'RegexCharacter',
- attrib = {},
- text = '',
- children = [],
- character_set = []
- ):
- Regex.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.character_set = (
- [element.deserialize_int(i) for i in character_set.split()]
- if isinstance(character_set, str) else
- character_set
- )
- def serialize(self, ref_list):
- Regex.serialize(self, ref_list)
- self.set(
- 'character_set',
- ' '.join([element.serialize_int(i) for i in self.character_set])
- )
- def deserialize(self, ref_list):
- Regex.deserialize(self, ref_list)
- self.character_set = [
- element.deserialize_int(i)
- for i in self.get('character_set', '').split()
- ]
- def copy(self, factory = None):
- result = Regex.copy(
- self,
- RegexCharacter if factory is None else factory
- )
- result.character_set = self.character_set
- return result
- def repr_serialize(self, params):
- Regex.repr_serialize(self, params)
- if len(self.character_set):
- params.append(
- 'character_set = [{0:s}]'.format(
- ', '.join([repr(i) for i in self.character_set])
- )
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexCharacter({0:s})'.format(', '.join(params))
- # GENERATE END
- def to_nfa_state(self, _nfa, next_state):
- new_state = len(_nfa.states)
- _nfa.states.append((nfa.NFA.STATE_CHARACTER, self.character_set, next_state))
- return new_state
- #def to_lr1_symbols(self, n_terminals, symbols, lookaheads, group_bounds):
- # terminal_set = []
- # nonterminal_set = []
- # i = 0
- # while i < len(self.character_set):
- # [j, k] = self.character_set[i:i + 2]
- # if k > n_terminals:
- # if j < n_terminals:
- # terminal_set.extend([j, n_terminals])
- # nonterminal_set.extend([0, k - n_terminals])
- # i += 2
- # while i < len(self.character_set):
- # [j, k] = self.character_set[i:i + 2]
- # nonterminal_set.extend([j - n_terminals, k - n_terminals])
- # i += 2
- # break
- # terminal_set.extend([j, k])
- # i += 2
- # symbols.append((terminal_set, nonterminal_set))
- # lookaheads.append(([], False)) # initial_set, can_be_empty
- # return 1 # count of groups or ungrouped characters
-
-class RegexCharacterRange(RegexCharacter):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'RegexCharacterRange',
- attrib = {},
- text = '',
- children = [],
- character_set = []
- ):
- RegexCharacter.__init__(
- self,
- tag,
- attrib,
- text,
- children,
- character_set
- )
- def copy(self, factory = None):
- result = RegexCharacter.copy(
- self,
- RegexCharacterRange if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexCharacterRange({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, group_index = 0): #, rule_name_to_character_set = None):
- group_index = RegexCharacter.post_process(self, group_index) #, rule_name_to_character_set)
- self.character_set = [self[0].character_set[0], self[1].character_set[-1]]
- return group_index
-
-class RegexCharacterOr(RegexCharacter):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'RegexCharacterOr',
- attrib = {},
- text = '',
- children = [],
- character_set = []
- ):
- RegexCharacter.__init__(
- self,
- tag,
- attrib,
- text,
- children,
- character_set
- )
- def copy(self, factory = None):
- result = RegexCharacter.copy(
- self,
- RegexCharacterOr if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexCharacterOr({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, group_index = 0): #, rule_name_to_character_set = None):
- group_index = RegexCharacter.post_process(self, group_index) #, rule_name_to_character_set)
- self.character_set = bisect_set.bisect_set_or(self[0].character_set, self[1].character_set)
- return group_index
-
-class RegexCharacterAnd(RegexCharacter):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'RegexCharacterAnd',
- attrib = {},
- text = '',
- children = [],
- character_set = []
- ):
- RegexCharacter.__init__(
- self,
- tag,
- attrib,
- text,
- children,
- character_set
- )
- def copy(self, factory = None):
- result = RegexCharacter.copy(
- self,
- RegexCharacterAnd if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexCharacterAnd({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, group_index = 0): #, rule_name_to_character_set = None):
- group_index = RegexCharacter.post_process(self, group_index) #, rule_name_to_character_set)
- self.character_set = bisect_set.bisect_set_and(self[0].character_set, self[1].character_set)
- return group_index
-
-class RegexCharacterNot(RegexCharacter):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'RegexCharacterNot',
- attrib = {},
- text = '',
- children = [],
- character_set = []
- ):
- RegexCharacter.__init__(
- self,
- tag,
- attrib,
- text,
- children,
- character_set
- )
- def copy(self, factory = None):
- result = RegexCharacter.copy(
- self,
- RegexCharacterNot if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexCharacterNot({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, group_index = 0): #, rule_name_to_character_set = None):
- group_index = RegexCharacter.post_process(self, group_index) #, rule_name_to_character_set)
- self.character_set = bisect_set.bisect_set_not(self[0].character_set)
- return group_index
-
-#class RegexCharacterRule(RegexCharacter):
-# # GENERATE ELEMENT(str rule_name) BEGIN
-# def __init__(
-# self,
-# tag = 'RegexCharacterRule',
-# attrib = {},
-# text = '',
-# children = [],
-# character_set = [],
-# rule_name = ''
-# ):
-# RegexCharacter.__init__(
-# self,
-# tag,
-# attrib,
-# text,
-# children,
-# character_set
-# )
-# self.rule_name = rule_name
-# def serialize(self, ref_list, indent = 0):
-# RegexCharacter.serialize(self, ref_list, indent)
-# self.set('rule_name', element.serialize_str(self.rule_name))
-# def deserialize(self, ref_list):
-# RegexCharacter.deserialize(self, ref_list)
-# self.rule_name = element.deserialize_str(self.get('rule_name', ''))
-# def copy(self, factory = None):
-# result = RegexCharacter.copy(
-# self,
-# RegexCharacterRule if factory is None else factory
-# )
-# result.rule_name = self.rule_name
-# return result
-# def repr_serialize(self, params):
-# RegexCharacter.repr_serialize(self, params)
-# if self.rule_name != '':
-# params.append(
-# 'rule_name = {0:s}'.format(repr(self.rule_name))
-# )
-# def __repr__(self):
-# params = []
-# self.repr_serialize(params)
-# return 'regex.RegexCharacterRule({0:s})'.format(', '.join(params))
-# # GENERATE END
-# def post_process(self, group_index = 0, rule_name_to_character_set = None):
-# if rule_name_to_character_set is not None:
-# self.character_set = rule_name_to_character_set[self.rule_name]
-# return RegexCharacter.post_process(self, group_index, rule_name_to_character_set)
-
-class RegexOr(Regex):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'RegexOr',
- attrib = {},
- text = '',
- children = []
- ):
- Regex.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Regex.copy(
- self,
- RegexOr if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexOr({0:s})'.format(', '.join(params))
- # GENERATE END
- def to_nfa_state(self, _nfa, next_state):
- child0_state = self[0].to_nfa_state(_nfa, next_state)
- child1_state = self[1].to_nfa_state(_nfa, next_state)
- if child0_state == -1:
- return child1_state
- if child1_state == -1:
- return child0_state
- new_state = len(_nfa.states)
- _nfa.states.append((nfa.NFA.STATE_OR, child0_state, child1_state))
- return new_state
-
-class RegexAnd(Regex):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'RegexAnd',
- attrib = {},
- text = '',
- children = []
- ):
- Regex.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Regex.copy(
- self,
- RegexAnd if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexAnd({0:s})'.format(', '.join(params))
- # GENERATE END
- def to_nfa_state(self, _nfa, next_state):
- join0_state = len(_nfa.states)
- _nfa.states.append(nfa.NFA.join0_state) # takes no arguments so use static one
- join1_state = len(_nfa.states)
- _nfa.states.append((nfa.NFA.STATE_JOIN1, next_state))
- child0_state = self[0].to_nfa_state(_nfa, join0_state)
- if child0_state == -1:
- return -1
- child1_state = self[1].to_nfa_state(_nfa, join1_state)
- if child1_state == -1:
- return -1
- new_state = len(_nfa.states)
- _nfa.states.append((nfa.NFA.STATE_AND, child0_state, child1_state))
- return new_state
-
-class RegexSequence(Regex):
- # GENERATE ELEMENT() BEGIN
- def __init__(
- self,
- tag = 'RegexSequence',
- attrib = {},
- text = '',
- children = []
- ):
- Regex.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- def copy(self, factory = None):
- result = Regex.copy(
- self,
- RegexSequence if factory is None else factory
- )
- return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexSequence({0:s})'.format(', '.join(params))
- # GENERATE END
- def to_nfa_state(self, _nfa, next_state):
- child1_state = self[1].to_nfa_state(_nfa, next_state)
- if child1_state == -1:
- return -1
- return self[0].to_nfa_state(_nfa, child1_state)
-
-class RegexRepeat(Regex):
- # GENERATE ELEMENT(int count0, int count1, bool non_greedy) BEGIN
- def __init__(
- self,
- tag = 'RegexRepeat',
- attrib = {},
- text = '',
- children = [],
- count0 = -1,
- count1 = -1,
- non_greedy = False
- ):
- Regex.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.count0 = (
- element.deserialize_int(count0)
- if isinstance(count0, str) else
- count0
- )
- self.count1 = (
- element.deserialize_int(count1)
- if isinstance(count1, str) else
- count1
- )
- self.non_greedy = (
- element.deserialize_bool(non_greedy)
- if isinstance(non_greedy, str) else
- non_greedy
- )
- def serialize(self, ref_list):
- Regex.serialize(self, ref_list)
- self.set('count0', element.serialize_int(self.count0))
- self.set('count1', element.serialize_int(self.count1))
- self.set('non_greedy', element.serialize_bool(self.non_greedy))
- def deserialize(self, ref_list):
- Regex.deserialize(self, ref_list)
- self.count0 = element.deserialize_int(self.get('count0', '-1'))
- self.count1 = element.deserialize_int(self.get('count1', '-1'))
- self.non_greedy = element.deserialize_bool(self.get('non_greedy', 'false'))
- def copy(self, factory = None):
- result = Regex.copy(
- self,
- RegexRepeat if factory is None else factory
- )
- result.count0 = self.count0
- result.count1 = self.count1
- result.non_greedy = self.non_greedy
- return result
- def repr_serialize(self, params):
- Regex.repr_serialize(self, params)
- if self.count0 != -1:
- params.append(
- 'count0 = {0:s}'.format(repr(self.count0))
- )
- if self.count1 != -1:
- params.append(
- 'count1 = {0:s}'.format(repr(self.count1))
- )
- if self.non_greedy != False:
- params.append(
- 'non_greedy = {0:s}'.format(repr(self.non_greedy))
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexRepeat({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, group_index = 0): #, rule_name_to_character_set = None):
- # total hack which will be done in a Python action in future
- if len(self) >= 2:
- assert self[1].tag == 'Number'
- self.count0 = int(self[1].text)
- if len(self) >= 3:
- assert self[2].tag == 'Number'
- self.count1 = int(self[2].text)
- else:
- self.count1 = self.count0
- del self[1:]
- # end total hack
- return Regex.post_process(self, group_index) #, rule_name_to_character_set)
- def to_nfa_state(self, _nfa, next_state):
- count0 = self.count0
- count1 = self.count1
- if count1 == -1:
- new_state = len(_nfa.states)
- _nfa.states.append(None)
- child_state = self[0].to_nfa_state(_nfa, new_state)
- if child_state == -1:
- new_state = next_state # note: unreachable state remains invalid (None)
- else:
- _nfa.states[new_state] = (
- (nfa.NFA.STATE_OR, next_state, child_state)
- if self.non_greedy else
- (nfa.NFA.STATE_OR, child_state, next_state)
- )
- else:
- new_state = next_state
- for i in range(count1 - count0):
- child_state = self[0].to_nfa_state(_nfa, new_state)
- if child_state == -1:
- break
- new_state = len(_nfa.states)
- _nfa.states.append(
- (nfa.NFA.STATE_OR, next_state, child_state)
- if self.non_greedy else
- (nfa.NFA.STATE_OR, child_state, next_state)
- )
- for i in range(count0):
- new_state = self[0].to_nfa_state(_nfa, new_state)
- if new_state == -1:
- break
- return new_state
-
-class RegexGroup(Regex):
- class Attribute(element.Element):
- # GENERATE ELEMENT(str name, str value) BEGIN
- def __init__(
- self,
- tag = 'RegexGroup_Attribute',
- attrib = {},
- text = '',
- children = [],
- name = '',
- value = ''
- ):
- element.Element.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.name = name
- self.value = value
- def serialize(self, ref_list):
- element.Element.serialize(self, ref_list)
- self.set('name', element.serialize_str(self.name))
- self.set('value', element.serialize_str(self.value))
- def deserialize(self, ref_list):
- element.Element.deserialize(self, ref_list)
- self.name = element.deserialize_str(self.get('name', ''))
- self.value = element.deserialize_str(self.get('value', ''))
- def copy(self, factory = None):
- result = element.Element.copy(
- self,
- Attribute if factory is None else factory
- )
- result.name = self.name
- result.value = self.value
- return result
- def repr_serialize(self, params):
- element.Element.repr_serialize(self, params)
- if self.name != '':
- params.append(
- 'name = {0:s}'.format(repr(self.name))
- )
- if self.value != '':
- params.append(
- 'value = {0:s}'.format(repr(self.value))
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexGroup.Attribute({0:s})'.format(', '.join(params))
- # GENERATE END
-
- # GENERATE ELEMENT(int group_index, str group_name, list(ref) group_attributes) BEGIN
- def __init__(
- self,
- tag = 'RegexGroup',
- attrib = {},
- text = '',
- children = [],
- group_index = -1,
- group_name = '',
- group_attributes = []
- ):
- Regex.__init__(
- self,
- tag,
- attrib,
- text,
- children
- )
- self.group_index = (
- element.deserialize_int(group_index)
- if isinstance(group_index, str) else
- group_index
- )
- self.group_name = group_name
- self.group_attributes = group_attributes
- def serialize(self, ref_list):
- Regex.serialize(self, ref_list)
- self.set('group_index', element.serialize_int(self.group_index))
- self.set('group_name', element.serialize_str(self.group_name))
- self.set(
- 'group_attributes',
- ' '.join([element.serialize_ref(i, ref_list) for i in self.group_attributes])
- )
- def deserialize(self, ref_list):
- Regex.deserialize(self, ref_list)
- self.group_index = element.deserialize_int(self.get('group_index', '-1'))
- self.group_name = element.deserialize_str(self.get('group_name', ''))
- self.group_attributes = [
- element.deserialize_ref(i, ref_list)
- for i in self.get('group_attributes', '').split()
- ]
- def copy(self, factory = None):
- result = Regex.copy(
- self,
- RegexGroup if factory is None else factory
- )
- result.group_index = self.group_index
- result.group_name = self.group_name
- result.group_attributes = self.group_attributes
- return result
- def repr_serialize(self, params):
- Regex.repr_serialize(self, params)
- if self.group_index != -1:
- params.append(
- 'group_index = {0:s}'.format(repr(self.group_index))
- )
- if self.group_name != '':
- params.append(
- 'group_name = {0:s}'.format(repr(self.group_name))
- )
- if len(self.group_attributes):
- params.append(
- 'group_attributes = [{0:s}]'.format(
- ', '.join([repr(i) for i in self.group_attributes])
- )
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'regex.RegexGroup({0:s})'.format(', '.join(params))
- # GENERATE END
- def post_process(self, group_index = 0): #, rule_name_to_character_set = None):
- # total hack which will be done in a Python action in future
- if len(self) >= 2:
- assert self[0].tag == 'GroupName'
- self.group_name = self[0].text[1:-1]
- del self[:1]
- # end total hack
- self.group_index = group_index
- group_index += 1
- return Regex.post_process(self, group_index) #, rule_name_to_character_set)
- def to_groups(self, groups):
- assert len(groups) == self.group_index
- groups.append(
- (self.group_name, {i.name: i.value for i in self.group_attributes})
- )
- return Regex.to_groups(self, groups)
- def to_nfa_state(self, _nfa, next_state):
- mark_state = len(_nfa.states)
- _nfa.states.append((nfa.NFA.STATE_MARK, self.group_index * 2 + 1, next_state))
- child_state = self[0].to_nfa_state(_nfa, mark_state)
- if child_state == -1:
- return -1
- new_state = len(_nfa.states)
- _nfa.states.append((nfa.NFA.STATE_MARK, self.group_index * 2, child_state))
- return new_state
- #def to_lr1_symbols(self, n_terminals, symbols, lookaheads, group_bounds):
- # group_start = len(symbols)
- # assert self.group_index == len(group_bounds)
- # group_bounds.append(None)
- # group_count = Regex.to_lr1_symbols(
- # self,
- # n_terminals,
- # symbols,
- # lookaheads,
- # group_bounds
- # )
- # group_bounds[self.group_index] = (
- # group_start,
- # group_count,
- # self.group_name,
- # {i.name: i.value for i in self.group_attributes}
- # )
- # return 1 # count of groups or ungrouped characters
-
-# GENERATE FACTORY(element.Element) BEGIN
-tag_to_class = {
- 'Regex': Regex,
- 'RegexNone': RegexNone,
- 'RegexEmpty': RegexEmpty,
- 'RegexCharacter': RegexCharacter,
- 'RegexCharacterRange': RegexCharacterRange,
- 'RegexCharacterOr': RegexCharacterOr,
- 'RegexCharacterAnd': RegexCharacterAnd,
- 'RegexCharacterNot': RegexCharacterNot,
- 'RegexOr': RegexOr,
- 'RegexAnd': RegexAnd,
- 'RegexSequence': RegexSequence,
- 'RegexRepeat': RegexRepeat,
- 'RegexGroup': RegexGroup,
- 'RegexGroup_Attribute': RegexGroup.Attribute
-}
-def factory(tag, attrib = {}, *args, **kwargs):
- return tag_to_class.get(tag, element.Element)(tag, attrib, *args, **kwargs)
-# GENERATE END
-
-if __name__ == '__main__':
- import sys
- import xml.etree.ElementTree
-
- regex = RegexAnd(children = [RegexRepeat(children = [RegexCharacterNot(
-children = [RegexCharacter()], character_set = [0, 256])]), RegexGroup(children = [
-RegexOr(children = [RegexOr(children = [RegexOr(children = [RegexGroup(children
-= [RegexRepeat(children = [RegexCharacter(character_set = [9, 14, 32, 33])],
-one_or_more = True)], group_index = 1, group_name = 'Whitespace'), RegexGroup(
-children = [RegexRepeat(children = [RegexCharacter(character_set = [48, 58])],
-one_or_more = True)], group_index = 2, group_name = 'Number')]), RegexGroup(
-children = [RegexSequence(children = [RegexSequence(children = [RegexSequence(
-children = [RegexEmpty(), RegexCharacter(character_set = [102, 103])]),
-RegexCharacter(character_set = [111, 112])]), RegexCharacter(character_set = [114, 115])]
-)], group_index = 3, group_name = 'For')]), RegexGroup(children = [
-RegexSequence(children = [RegexCharacter(character_set = [65, 91, 95, 96, 97, 123]),
-RegexRepeat(children = [RegexCharacter(character_set = [48, 58, 65, 91, 95, 96, 97,
-123])])])], group_index = 4, group_name = 'Identifier')])], group_index = 0)])
- #sys.stdout.write(
- # wrap_repr(
- # ' regex = {0:s}'.format(repr(regex).replace('regex.', '')),
- # 79
- # )
- #)
-
- _nfa = regex.to_nfa()
- #sys.stdout.write(
- # wrap_repr(
- # ' _nfa = {0:s}'.format(repr(_nfa).replace('regex.', '')),
- # 79
- # )
- #)
-
- text = ' id 99id id99 for forex '
- i = 0
- while i < len(text):
- print('text "{0:s}"'.format(text[i:i + 72].replace('\n', '$')))
- thread = _nfa.match_text(text, i)
- if thread is None:
- print('no match')
- break
- i = thread[0] # end position of overall match
- group_start = [-1 for j in range(len(_nfa.groups))]
- group_end = [-1 for j in range(len(_nfa.groups))]
- while thread is not None:
- pos, mark, thread = thread
- group = mark >> 1
- if (mark & 1) == 0:
- group_start[group] = pos
- print(
- 'group {0:d} name "{1:s}" text "{2:s}"'.format(
- group,
- _nfa.groups[group][0],
- text[group_start[group]:group_end[group]].replace('\n', '$')
- )
- )
- else:
- group_end[group] = pos
-
- dfa = _nfa.to_dfa()
- #sys.stdout.write(
- # wrap_repr(
- # ' dfa = {0:s}'.format(repr(dfa).replace('regex.', '')),
- # 79
- # )
- #)
-
- text = ' id 99id id99 for forex '
- i = 0
- while i < len(text):
- print('text "{0:s}"'.format(text[i:i + 72].replace('\n', '$')))
- thread = dfa.match_text(text, i)
- if thread is None:
- print('no match')
- break
- i = thread[0] # end position of overall match
- group_start = [-1 for j in range(len(dfa.groups))]
- group_end = [-1 for j in range(len(dfa.groups))]
- while thread is not None:
- pos, mark, thread = thread
- group = mark >> 1
- if (mark & 1) == 0:
- group_start[group] = pos
- print(
- 'group {0:d} name "{1:s}" text "{2:s}"'.format(
- group,
- dfa.groups[group][0],
- text[group_start[group]:group_end[group]].replace('\n', '$')
- )
- )
- else:
- group_end[group] = pos
-
- grammar = Grammar(children = [Grammar.Production(children = [RegexSequence(
-children = [RegexSequence(children = [RegexEmpty(), RegexCharacterRule(character_set
-= [288, 295], rule_name = 'whitespace_opt')]), RegexCharacterRule(character_set = [
-259, 262], rule_name = 'expr0')])], nonterminal = 0), Grammar.Production(
-children = [RegexSequence(children = [RegexEmpty(), RegexCharacterRule(character_set
-= [262, 265], rule_name = 'expr1')])], nonterminal = 1), Grammar.Production(
-children = [RegexSequence(children = [RegexEmpty(), RegexGroup(children = [
-RegexSequence(children = [RegexSequence(children = [RegexSequence(children = [
-RegexSequence(children = [RegexEmpty(), RegexCharacterRule(character_set = [259, 262
-], rule_name = 'expr0')]), RegexCharacter(character_set = [43, 44])]),
-RegexCharacterRule(character_set = [288, 295], rule_name = 'whitespace_opt')]),
-RegexCharacterRule(character_set = [262, 265], rule_name = 'expr1')])], group_index
-= 0, group_name = 'Add')])], nonterminal = 2), Grammar.Production(children = [
-RegexSequence(children = [RegexEmpty(), RegexGroup(children = [RegexSequence(
-children = [RegexSequence(children = [RegexSequence(children = [RegexSequence(
-children = [RegexEmpty(), RegexCharacterRule(character_set = [259, 262], rule_name =
-'expr0')]), RegexCharacter(character_set = [45, 46])]), RegexCharacterRule(character_set
-= [288, 295], rule_name = 'whitespace_opt')]), RegexCharacterRule(character_set = [
-262, 265], rule_name = 'expr1')])], group_index = 0, group_name = 'Subtract')])
-], nonterminal = 3), Grammar.Production(children = [RegexSequence(children = [
-RegexEmpty(), RegexCharacterRule(character_set = [265, 268], rule_name = 'expr2')])
-], nonterminal = 4), Grammar.Production(children = [RegexSequence(children = [
-RegexEmpty(), RegexGroup(children = [RegexSequence(children = [RegexSequence(
-children = [RegexSequence(children = [RegexSequence(children = [RegexEmpty(),
-RegexCharacterRule(character_set = [262, 265], rule_name = 'expr1')]),
-RegexCharacter(character_set = [42, 43])]), RegexCharacterRule(character_set = [288, 295
-], rule_name = 'whitespace_opt')]), RegexCharacterRule(character_set = [265, 268],
-rule_name = 'expr2')])], group_index = 0, group_name = 'Multiply')])],
-nonterminal = 5), Grammar.Production(children = [RegexSequence(children = [
-RegexEmpty(), RegexGroup(children = [RegexSequence(children = [RegexSequence(
-children = [RegexSequence(children = [RegexSequence(children = [RegexEmpty(),
-RegexCharacterRule(character_set = [262, 265], rule_name = 'expr1')]),
-RegexCharacter(character_set = [47, 48])]), RegexCharacterRule(character_set = [288, 295
-], rule_name = 'whitespace_opt')]), RegexCharacterRule(character_set = [265, 268],
-rule_name = 'expr2')])], group_index = 0, group_name = 'Divide')])],
-nonterminal = 6), Grammar.Production(children = [RegexSequence(children = [
-RegexSequence(children = [RegexEmpty(), RegexGroup(children = [RegexSequence(
-children = [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name =
-'number')])], group_index = 0, group_name = 'Number')]), RegexCharacterRule(
-character_set = [288, 295], rule_name = 'whitespace_opt')])], nonterminal = 7),
-Grammar.Production(children = [RegexSequence(children = [RegexEmpty(),
-RegexGroup(children = [RegexSequence(children = [RegexSequence(children = [
-RegexSequence(children = [RegexEmpty(), RegexCharacter(character_set = [45, 46])]),
-RegexCharacterRule(character_set = [288, 295], rule_name = 'whitespace_opt')]),
-RegexCharacterRule(character_set = [265, 268], rule_name = 'expr2')])], group_index
-= 0, group_name = 'Negate')])], nonterminal = 8), Grammar.Production(children =
-[RegexSequence(children = [RegexSequence(children = [RegexSequence(children = [
-RegexSequence(children = [RegexSequence(children = [RegexEmpty(),
-RegexCharacter(character_set = [40, 41])]), RegexCharacterRule(character_set = [288, 295
-], rule_name = 'whitespace_opt')]), RegexCharacterRule(character_set = [259, 262],
-rule_name = 'expr0')]), RegexCharacter(character_set = [41, 42])]),
-RegexCharacterRule(character_set = [288, 295], rule_name = 'whitespace_opt')])],
-nonterminal = 9), Grammar.Production(children = [RegexSequence(children = [
-RegexEmpty(), RegexCharacter(character_set = [48, 49])])], nonterminal = 10),
-Grammar.Production(children = [RegexSequence(children = [RegexEmpty(),
-RegexCharacter(character_set = [49, 50])])], nonterminal = 11), Grammar.Production(
-children = [RegexSequence(children = [RegexEmpty(), RegexCharacter(character_set = [
-50, 51])])], nonterminal = 12), Grammar.Production(children = [RegexSequence(
-children = [RegexEmpty(), RegexCharacter(character_set = [51, 52])])], nonterminal =
-13), Grammar.Production(children = [RegexSequence(children = [RegexEmpty(),
-RegexCharacter(character_set = [52, 53])])], nonterminal = 14), Grammar.Production(
-children = [RegexSequence(children = [RegexEmpty(), RegexCharacter(character_set = [
-53, 54])])], nonterminal = 15), Grammar.Production(children = [RegexSequence(
-children = [RegexEmpty(), RegexCharacter(character_set = [54, 55])])], nonterminal =
-16), Grammar.Production(children = [RegexSequence(children = [RegexEmpty(),
-RegexCharacter(character_set = [55, 56])])], nonterminal = 17), Grammar.Production(
-children = [RegexSequence(children = [RegexEmpty(), RegexCharacter(character_set = [
-56, 57])])], nonterminal = 18), Grammar.Production(children = [RegexSequence(
-children = [RegexEmpty(), RegexCharacter(character_set = [57, 58])])], nonterminal =
-19), Grammar.Production(children = [RegexSequence(children = [RegexSequence(
-children = [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name =
-'number')]), RegexCharacter(character_set = [48, 49])])], nonterminal = 20),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name = 'number'
-)]), RegexCharacter(character_set = [49, 50])])], nonterminal = 21),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name = 'number'
-)]), RegexCharacter(character_set = [50, 51])])], nonterminal = 22),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name = 'number'
-)]), RegexCharacter(character_set = [51, 52])])], nonterminal = 23),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name = 'number'
-)]), RegexCharacter(character_set = [52, 53])])], nonterminal = 24),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name = 'number'
-)]), RegexCharacter(character_set = [53, 54])])], nonterminal = 25),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name = 'number'
-)]), RegexCharacter(character_set = [54, 55])])], nonterminal = 26),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name = 'number'
-)]), RegexCharacter(character_set = [55, 56])])], nonterminal = 27),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name = 'number'
-)]), RegexCharacter(character_set = [56, 57])])], nonterminal = 28),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [268, 288], rule_name = 'number'
-)]), RegexCharacter(character_set = [57, 58])])], nonterminal = 29),
-Grammar.Production(children = [RegexEmpty()], nonterminal = 30),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [288, 295], rule_name =
-'whitespace_opt')]), RegexCharacter(character_set = [9, 10])])], nonterminal = 31),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [288, 295], rule_name =
-'whitespace_opt')]), RegexCharacter(character_set = [10, 11])])], nonterminal = 32),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [288, 295], rule_name =
-'whitespace_opt')]), RegexCharacter(character_set = [11, 12])])], nonterminal = 33),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [288, 295], rule_name =
-'whitespace_opt')]), RegexCharacter(character_set = [12, 13])])], nonterminal = 34),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [288, 295], rule_name =
-'whitespace_opt')]), RegexCharacter(character_set = [13, 14])])], nonterminal = 35),
-Grammar.Production(children = [RegexSequence(children = [RegexSequence(children
-= [RegexEmpty(), RegexCharacterRule(character_set = [288, 295], rule_name =
-'whitespace_opt')]), RegexCharacter(character_set = [32, 33])])], nonterminal = 36)
-], n_terminals = 258)
- #sys.stdout.write(
- # wrap_repr(
- # ' grammar = {0:s}'.format(repr(grammar).replace('regex.', '')),
- # 79
- # )
- #)
-
- lr1 = grammar.to_lr1()
- #sys.stdout.write(
- # wrap_repr(
- # ' lr1 = {0:s}'.format(repr(lr1).replace('regex.', '')),
- # 79
- # )
- #)
-
- lr1.parse_text('(13 + 5 * 6) * 2', 0)
- root = element.Element('root', text = '(13 + 5 * 6) * 2')
- lr1.parse_yychunk(root, 0, 0, element.Element, iter([]))
- xml.etree.ElementTree.dump(root)
-
- clr1 = lr1.to_clr1()
- #sys.stdout.write(
- # wrap_repr(
- # ' clr1 = {0:s}'.format(repr(clr1).replace('regex.', '')),
- # 79
- # )
- #)
-
- clr1.parse_text('(13 + 5 * 6) * 2', 0)
- root = element.Element('root', text = '(13 + 5 * 6) * 2')
- clr1.parse_yychunk(root, 0, 0, element.Element, iter([]))
- xml.etree.ElementTree.dump(root)
-
- lalr1 = lr1.to_lalr1()
- #sys.stdout.write(
- # wrap_repr(
- # ' lalr1 = {0:s}'.format(repr(lalr1).replace('regex.', '')),
- # 79
- # )
- #)
-
- lalr1.parse_text('(13 + 5 * 6) * 2', 0)
- root = element.Element('root', text = '(13 + 5 * 6) * 2')
- lalr1.parse_yychunk(root, 0, 0, element.Element, iter([]))
- xml.etree.ElementTree.dump(root)
+++ /dev/null
-import sys
-import element
-
-def yychunk_line(root, fin):
- line = fin.readline()
- while len(line):
- element.set_text(root, -1, element.get_text(root, -1) + line)
- yield
- line = fin.readline()
-
-def yychunk_block(root, fin, count):
- block = fin.read(count)
- while len(block):
- element.set_text(root, -1, element.get_text(root, -1) + line)
- yield
- block = fin.read(count)
-
-def replace_with_element(root, pos0, off0, pos1, off1, child):
- if pos0 < 0:
- pos0, off0 = element.to_start_relative(root, pos0, off0)
- if pos1 < 0:
- pos1, off1 = element.to_start_relative(root, pos1, off1)
- count = pos1 - pos0
- assert count >= 0
-
- temp = element.get_text(root, pos1)
- root[pos0:pos1] = [child]
- element.set_text(root, pos0 + 1, temp[off1:])
- if count != 0:
- temp = element.get_text(root, pos0)
- element.set_text(root, pos0, temp[:off0])
-
-def replace_with_text(root, mark, i, j, text):
- (pos0, off0) = mark[i]
- (pos1, off1) = mark[j]
- count = pos1 - pos0
- assert count >= 0
-
- temp = element.get_tail(root, pos1)
- del root[pos0 + 1:pos1 + 1]
- element.set_tail(
- root,
- pos0,
- element.get_tail(root, pos0)[:off0] + text + temp[off1:]
- )
-
- if j != i + 1:
- mark[i + 1:j + 1] = [mark[j]]
- k = i + 1
- delta_pos = -count
- delta_off = off0 + len(text) - off1
- while k < len(mark):
- (pos2, off2) = mark[k]
- if pos2 > pos1:
- break
- mark[k] = (pos2 + delta_pos, off2 + delta_off)
- k += 1
- if delta_pos != 0:
- while k < len(mark):
- (pos2, off2) = mark[k]
- mark[k] = (pos2 + delta_pos, off2)
- k += 1
-
-def replace_with_content(root, mark, i, j, child):
- text = element.get_tail(child, -1)
- if len(child) == 0:
- replace_with_text(root, mark, i, j, text)
- else:
- (pos0, off0) = mark[i]
- (pos1, off1) = mark[j]
- count = pos1 - pos0
- assert count >= 0
-
- temp = element.get_tail(root, pos1)
- root[pos0 + 1:pos1 + 1] = child[:]
- tail = element.get_tail(root, pos0 + len(child))
- element.set_tail(root, pos0 + len(child), tail + temp[off1:])
- if count != 0:
- temp = element.get_tail(root, pos0)
- element.set_tail(root, pos0, temp[:off0] + text)
-
- if j != i + 1:
- mark[i + 1:j + 1] = [mark[j]]
- k = i + 1
- delta_pos = len(child) - count
- delta_off = len(tail) - off1
- while k < len(mark):
- (pos2, off2) = mark[k]
- if pos2 > pos1:
- break
- mark[k] = (pos2 + delta_pos, off2 + delta_off)
- k += 1
- if delta_pos != 0:
- while k < len(mark):
- (pos2, off2) = mark[k]
- mark[k] = (pos2 + delta_pos, off2)
- k += 1
-
-def extract_element(root, mark, i, j, factory, *args, **kwargs):
- (pos0, off0) = mark[i]
- (pos1, off1) = mark[j]
- count = pos1 - pos0
- assert count >= 0
-
- result = factory(*args, **kwargs)
- result[:] = [i.copy() for i in root[pos0 + 1:pos1 + 1]]
- tail = element.get_tail(root, pos1)
- if count == 0:
- element.set_tail(result, -1, tail[off0:off1])
- else:
- element.set_tail(result, count - 1, tail[:off1])
- tail = element.get_tail(root, pos0)
- element.set_tail(result, -1, tail[off0:])
- return result
-
-def extract_text(root, mark, i, j):
- (pos0, off0) = mark[i]
- (pos1, off1) = mark[j]
- #result = [element.get_tail(root, i) for i in range(pos0, pos1 + 1)]
- #result[-1] = result[-1][:off1]
- #result[0] = result[0][off0:]
- #return ''.join(result)
- assert pos1 == pos0
- return element.get_tail(root, pos0)[off0:off1]
-
-def apply_markup(root, pos0, off0, pos1, off1, factory, *args, **kwargs):
- if pos0 < 0:
- pos0, off0 = element.to_start_relative(root, pos0, off0)
- if pos1 < 0:
- pos1, off1 = element.to_start_relative(root, pos1, off1)
- count = pos1 - pos0
- assert count >= 0
-
- child = factory(*args, **kwargs)
- child[:] = root[pos0:pos1]
-
- tail = element.get_text(root, pos1)
- # at present, if count > 0, child[-1] is shared with root[pos1 - 1],
- # so we cannot change child[-1].tail until after the replacement
- if count == 0:
- replace_with_element(root, pos0, off0, pos1, off1, child)
- element.set_text(child, 0, tail[off0:off1])
- else:
- temp = element.get_text(root, pos0)
- replace_with_element(root, pos0, off0, pos1, off1, child)
- element.set_text(child, count, tail[:off1])
- element.set_text(child, 0, temp[off0:])
- return child
-
-def dump(root, mark):
- i = 0
- pos = -1
- result = ''
- while True:
- assert i >= len(mark) or mark[i][0] >= pos
- tail = element.get_tail(root, pos)
- off = 0
- while off < len(tail) or (i < len(mark) and mark[i][0] == pos):
- end = len(tail) if i >= len(mark) or mark[i][0] != pos else mark[i][1]
- if end > off:
- result += tail[off:end].replace('\n', '(lf)').replace('\t', '(tab)')
- off = end
- if i < len(mark) and mark[i][0] == pos:
- result += '({0:d})'.format(i)
- i += 1
- pos += 1
- if pos >= len(root):
- break
- result += '({0:s}{1:d})'.format(root[pos].tag, pos)
- assert i >= len(mark)
- result += '(eof)'
- sys.stdout.write('{0:s}\n'.format(result[-159:])) #79:]))
- sys.stdout.flush()
+++ /dev/null
-def wrap_repr(text, width):
- lines = []
- i = 0
- while i < len(text):
- j = i + width
- if j < len(text):
- j = max(
- [
- text.rfind('(', i, j) + 1,
- text.rfind('[', i, j) + 1,
- text.rfind('{', i, j) + 1,
- text.rfind('.', i, j) + 1,
- text.rfind(')', i, j + 1),
- text.rfind(']', i, j + 1),
- text.rfind('}', i, j + 1),
- text.rfind(' ', i, j + 1),
- ]
- )
- assert j > 0
- lines.append(text[i:j] + '\n')
- i = j
- while text[i:i + 1] == ' ':
- i += 1
- return ''.join(lines)