Changeset f1ee72e
- Timestamp:
- Jun 23, 2016, 12:23:00 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 4d3ca1d8
- Parents:
- c2931ea (diff), d56c05d0 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 53 added
- 2 deleted
- 44 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
Jenkinsfile
rc2931ea rf1ee72e 5 5 //=========================================================================================================== 6 6 //Compilation script is done here but environnement set-up and error handling is done in main loop 7 def cfa_build( ) {7 def cfa_build(boolean full_build) { 8 8 build_stage 'Checkout' 9 9 def install_dir = pwd tmp: true 10 10 //checkout the source code and clean the repo 11 11 checkout scm 12 13 //Clean all temporary files to make sure no artifacts of the previous build remain 12 14 sh 'git clean -fdqx' 15 16 //Reset the git repo so no local changes persist 13 17 sh 'git reset --hard' 14 18 … … 26 30 build_stage 'Test' 27 31 28 //Run the tests from the exampledirectory32 //Run the tests from the tests directory 29 33 dir ('src/tests') { 30 sh './runTests.sh' 34 if (full_build) { 35 sh 'make all-tests' 36 } 37 else { 38 sh 'make' 39 } 31 40 } 32 41 … … 35 44 //do a maintainer-clean to make sure we need to remake from scratch 36 45 sh 'make maintainer-clean > /dev/null' 46 } 47 48 def make_doc() { 49 def err = null 50 51 try { 52 sh 'make clean > /dev/null' 53 sh 'make > /dev/null 2>&1' 54 } 55 56 catch (Exception caughtError) { 57 //rethrow error later 58 err = caughtError 59 60 sh 'cat *.log' 61 } 62 63 finally { 64 /* Must re-throw exception to propagate error */ 65 if (err) { 66 throw err 67 } 68 } 69 } 70 71 def doc_build() { 72 stage 'Documentation' 73 74 status_prefix = 'Documentation' 75 76 dir ('doc/user') { 77 make_doc() 78 } 79 80 dir ('doc/refrat') { 81 make_doc() 82 } 37 83 } 38 84 … … 117 163 try { 118 164 //Prevent the build from exceeding 30 minutes 119 timeout( 30) {165 timeout(60) { 120 166 121 167 //Wrap build to add timestamp to command line … … 140 186 //Compile using gcc-4.9 141 187 currentCC = new CC_Desc('gcc-4.9', 'g++-4.9', 'gcc-4.9') 142 cfa_build() 143 144 //Compile using gcc-5 145 currentCC = new CC_Desc('gcc-5', 'g++-5', 'gcc-5') 146 cfa_build() 147 148 //Compile using gcc-4.9 149 currentCC = new CC_Desc('gcc-6', 'g++-6', 'gcc-6') 150 cfa_build() 188 cfa_build(doPromoteBuild2DoLang) 189 190 //Compile latex documentation 191 doc_build() 151 192 152 193 if( doPromoteBuild2DoLang ) { 194 //Compile using gcc-5 195 currentCC = new CC_Desc('gcc-5', 'g++-5', 'gcc-5') 196 cfa_build(true) 197 198 //Compile using gcc-4.9 199 currentCC = new CC_Desc('gcc-6', 'g++-6', 'gcc-6') 200 cfa_build(true) 201 202 //Push latest changes to do-lang repo 153 203 push_build() 154 204 } … … 185 235 //=========================================================================================================== 186 236 def notify_result(boolean promote, Exception err, String status, boolean log) { 237 echo 'Build completed, sending result notification' 187 238 if(promote) { 188 239 if( err ) { … … 224 275 def project_name = (env.JOB_NAME =~ /(.+)\/.+/)[0][1].toLowerCase() 225 276 226 sh "git rev-list --format=short ${gitRefOldValue}...${gitRefNewValue} > GIT_LOG" 227 def gitLog = readFile('GIT_LOG') 228 229 sh "git diff --stat ${gitRefNewValue} ${gitRefOldValue} > GIT_DIFF" 230 def gitDiff = readFile('GIT_DIFF') 277 def gitLog = 'Error retrieving git logs' 278 def gitDiff = 'Error retrieving git diff' 279 280 try { 281 282 sh "git rev-list --format=short ${gitRefOldValue}...${gitRefNewValue} > GIT_LOG" 283 gitLog = readFile('GIT_LOG') 284 285 sh "git diff --stat ${gitRefNewValue} ${gitRefOldValue} > GIT_DIFF" 286 gitDiff = readFile('GIT_DIFF') 287 } 288 catch (Exception error) {} 231 289 232 290 def email_subject = "[${project_name} git][BUILD# ${env.BUILD_NUMBER} - ${status}] - branch ${env.BRANCH_NAME}" -
Makefile.am
rc2931ea rf1ee72e 11 11 ## Created On : Sun May 31 22:14:18 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Mon Jan 25 22:16:13201614 ## Update Count : 1 013 ## Last Modified On : Fri Jun 17 14:56:18 2016 14 ## Update Count : 13 15 15 ############################################################################### 16 16 … … 20 20 BACKEND_CC = @BACKEND_CC@ # C compiler used to compile Cforall programs, versus C++ compiler used to build cfa command 21 21 22 MAINTAINERCLEANFILES = lib/* bin/* 22 MAINTAINERCLEANFILES = lib/* bin/* src/examples/.deps/* src/tests/.deps/* src/tests/.out/* -
Makefile.in
rc2931ea rf1ee72e 222 222 SUBDIRS = src/driver src src/libcfa # order important, src before libcfa because cfa-cpp used to build prelude 223 223 EXTRA_DIST = Docs # non-source files 224 MAINTAINERCLEANFILES = lib/* bin/* 224 MAINTAINERCLEANFILES = lib/* bin/* src/examples/.deps/* src/tests/.deps/* src/tests/.out/* 225 225 all: config.h 226 226 $(MAKE) $(AM_MAKEFLAGS) all-recursive -
doc/LaTeXmacros/common.tex
rc2931ea rf1ee72e 11 11 %% Created On : Sat Apr 9 10:06:17 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Fri Jun 10 16:35:25201614 %% Update Count : 1 0113 %% Last Modified On : Mon Jun 20 09:35:20 2016 14 %% Update Count : 178 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 … … 23 23 \renewcommand{\floatpagefraction}{0.8} % float must be greater than X of the page before it is forced onto its own page 24 24 \renewcommand{\textfraction}{0.0} % the entire page maybe devoted to floats with no text on the page at all 25 26 \lefthyphenmin=4 27 \righthyphenmin=4 28 25 29 \usepackage{pslatex} % reduce size of san serif font 30 31 \usepackage[ignoredisplayed]{enumitem} % do not affect trivlist 32 \setlist{labelsep=1ex}% global 33 \setlist[itemize]{topsep=0.5ex,parsep=0.25ex,itemsep=0.25ex,listparindent=\parindent,leftmargin=\parindent}% global 34 \setlist[itemize,1]{label=\textbullet}% local 35 %\renewcommand{\labelitemi}{{\raisebox{0.25ex}{\footnotesize$\bullet$}}} 36 \setlist[enumerate]{listparindent=\parindent}% global 37 \setlist[enumerate,2]{leftmargin=\parindent,labelsep=*,align=parleft,label=\alph*.}% local 38 \setlist[description]{listparindent=\parindent,leftmargin=\parindent,labelsep=*} 26 39 27 40 % Names used in the document. … … 29 42 \newcommand{\CFA}{C$\mathbf\forall$\xspace} % set language symbolic name 30 43 \newcommand{\CFL}{Cforall\xspace} % set language text name 31 \newcommand{\CC}{ C\kern-.1em\hbox{+\kern-.25em+}\xspace} % CC symbolic name44 \newcommand{\CC}{\rm C\kern-.1em\hbox{+\kern-.25em+}\xspace} % CC symbolic name 32 45 \def\c11{ISO/IEC C} % C11 name (cannot have numbers in latex command name) 33 46 … … 35 48 36 49 \makeatletter 37 % parindent is relative, i.e., toggled on/off in environments like itemize, 38 % so store the value foruse rather than use \parident directly.39 \newlength{\parindentl ength}40 \setlength{\parindentl ength}{\parindent}50 % parindent is relative, i.e., toggled on/off in environments like itemize, so store the value for 51 % use rather than use \parident directly. 52 \newlength{\parindentlnth} 53 \setlength{\parindentlnth}{\parindent} 41 54 42 55 % allow escape sequence in lstinline 43 56 %\usepackage{etoolbox} 44 57 %\patchcmd{\lsthk@TextStyle}{\let\lst@DefEsc\@empty}{}{}{\errmessage{failed to patch}} 45 46 % make fontsize "small" slightly larger, specifically for san serif (helvetica) in program code47 %\renewcommand\small{%48 % \@setfontsize\small{8.5}{11}%49 % \abovedisplayskip 8.5pt \@plus 3pt \@minus 4pt50 % \abovedisplayshortskip \z@ \@plus 2pt51 % \belowdisplayshortskip 4pt \@plus 2pt \@minus 2pt52 % \def\@listi{\leftmargin\leftmargini53 % \topsep 4pt \@plus 2pt \@minus 2pt54 % \parsep 2pt \@pluspt \@minuspt55 % \itemsep \parsep}%56 % \belowdisplayskip \abovedisplayskip57 %}58 58 59 59 \usepackage{pslatex} % reduce size of san serif font … … 91 91 \newcommand{\see}[1]{\emph{see} #1} 92 92 93 % reduce bullet size and spacing for "itemize" macro94 \renewcommand{\labelitemi}{{\raisebox{0.25ex}{\footnotesize$\bullet$}}}95 \renewenvironment{itemize}{\begin{list}{\labelitemi}{\topsep=5pt\itemsep=5pt\parsep=0pt}}{\end{list}}96 97 93 % Define some commands that produce formatted index entries suitable for cross-references. 98 94 % ``\spec'' produces entries for specifications of entities. ``\impl'' produces entries for their … … 140 136 }% quote2 141 137 \newenvironment{rationale}{% 142 \begin{quot ation}\noindent$\Box$\enspace138 \begin{quote2}\noindent$\Box$\enspace 143 139 }{% 144 \hfill\enspace$\Box$\end{quot ation}140 \hfill\enspace$\Box$\end{quote2} 145 141 }% 146 142 … … 154 150 155 151 % BNF macros 156 \def\syntax{\paragraph{Syntax}\trivlist\parindent=.5in\item[\hskip.5in]} 157 \let\endsyntax=\endtrivlist 158 \newcommand{\lhs}[1]{\par{\emph{#1:}}\index{#1@{\emph{#1}}|italic}} 159 \newcommand{\rhs}{\hfil\break\hbox{\hskip1in}} 160 \newcommand{\oldlhs}[1]{\emph{#1: \dots}\index{#1@{\emph{#1}}|italic}} 161 \newcommand{\nonterm}[1]{\emph{#1\/}\index{#1@{\emph{#1}}|italic}} 152 \newenvironment{syntax}{ 153 \paragraph{Syntax} 154 \begin{quote2} 155 \begin{description}[noitemsep,leftmargin=\parindentlnth] 156 }{ 157 \end{description} 158 \end{quote2} 159 } 160 % \def\syntax{\paragraph{Syntax}\trivlist\parindent=.5in\item[\hskip.5in]} 161 %\let\endsyntax=\endtrivlist 162 \newcommand{\lhs}[1]{\item[\emph{#1:}\index{#1@{\emph{#1}}|italic}]~\ignorespaces} 163 \newcommand{\oldlhs}[1]{\item[\emph{#1:}\index{#1@{\emph{#1}}|italic}~\dots]~} 164 \newcommand{\rhs}{\hfil\newline} 165 \newcommand{\nonterm}[1]{\emph{#1}\index{#1@{\emph{#1}}|italic}} 162 166 \newcommand{\opt}{$_{opt}$\ } 163 167 … … 204 208 stringstyle=\tt, 205 209 tabsize=4, 206 xleftmargin=\parindentl ength,210 xleftmargin=\parindentlnth, 207 211 extendedchars=true, 208 212 escapechar=§, -
doc/bibliography/cfa.bib
rc2931ea rf1ee72e 2924 2924 2925 2925 @unpublished{Bilson, 2926 keywords= {generic programming, generics, polymorphism},2927 contributor{a3moss@plg},2928 author= {Richard C. Bilson and Glen Ditchfield and Peter A. Buhr},2929 title= {Generic Programming with Inferred Models},2926 keywords = {generic programming, generics, polymorphism}, 2927 contributor = {a3moss@plg}, 2928 author = {Richard C. Bilson and Glen Ditchfield and Peter A. Buhr}, 2929 title = {Generic Programming with Inferred Models}, 2930 2930 } 2931 2931 -
doc/refrat/Makefile
rc2931ea rf1ee72e 1 1 ## Define the appropriate configuration variables. 2 2 3 TeXLIB = .:../ bibliography/:../LaTeXmacros/:4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex 3 TeXLIB = .:../LaTeXmacros:../LaTeXmacros/listings:../LaTeXmacros/enumitem:../bibliography/: 4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error 5 5 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex 6 6 -
doc/refrat/refrat.tex
rc2931ea rf1ee72e 11 11 %% Created On : Wed Apr 6 14:52:25 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Fri Jun 3 09:43:48201614 %% Update Count : 6613 %% Last Modified On : Sat Jun 18 19:21:30 2016 14 %% Update Count : 74 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 … … 18 18 19 19 % inline code ©...© (copyright symbol) emacs: C-q M-) 20 % red highlighting ®...® (registered trademark sumbol) emacs: C-q M-. 21 % latex escape §...§ (section symbol) emacs: C-q M-' 20 % red highlighting ®...® (registered trademark symbol) emacs: C-q M-. 21 % blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_ 22 % green highlighting ¢...¢ (cent symbol) emacs: C-q M-" 23 % LaTex escape §...§ (section symbol) emacs: C-q M-' 22 24 % keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^ 23 25 % math escape $...$ (dollar symbol) … … 32 34 \usepackage{fullpage,times,comment} 33 35 \usepackage{epic,eepic} 34 \usepackage{upquote} % switch curled `' to straight `'36 \usepackage{upquote} % switch curled `'" to straight 35 37 \usepackage{xspace} 36 38 \usepackage{varioref} % extended references 37 39 \usepackage{listings} % format program code 38 \usepackage {footmisc}% support label/reference in footnote40 \usepackage[flushmargin]{footmisc} % support label/reference in footnote 39 41 \usepackage{latexsym} % \Box glyph 40 42 \usepackage{mathptmx} % better math font with "times" 43 \usepackage[usenames]{color} 41 44 \usepackage[pagewise]{lineno} 42 45 \renewcommand{\linenumberfont}{\scriptsize\sffamily} 46 \input{common} % bespoke macros used in the document 43 47 \usepackage[dvips,plainpages=false,pdfpagelabels,pdfpagemode=UseNone,colorlinks=true,pagebackref=true,linkcolor=blue,citecolor=blue,urlcolor=blue,pagebackref=true,breaklinks=true]{hyperref} 44 48 \usepackage{breakurl} … … 47 51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 48 52 49 % Bespoke macros used in the document.50 \input{common}51 52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%53 54 53 % Names used in the document. 55 54 56 55 \newcommand{\Version}{1.0.0} 56 57 \newcommand{\Textbf}[2][red]{{\color{#1}{\textbf{#2}}}} 58 \newcommand{\Emph}[2][red]{{\color{#1}\textbf{\emph{#2}}}} 59 \newcommand{\R}[1]{\Textbf{#1}} 60 \newcommand{\B}[1]{{\Textbf[blue]{#1}}} 61 \newcommand{\G}[1]{{\Textbf[OliveGreen]{#1}}} 57 62 58 63 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 76 81 }% author 77 82 \date{ 78 DRAFT\\\today 83 DRAFT \\ 84 \today 79 85 }% date 80 86 … … 390 396 \end{itemize} 391 397 398 392 399 \section{Lexical elements} 400 401 393 402 \subsection{Keywords} 403 394 404 \begin{syntax} 395 405 \oldlhs{keyword} 396 397 398 399 400 401 406 \rhs ©forall© 407 \rhs ©lvalue© 408 \rhs ©trait© 409 \rhs ©dtype© 410 \rhs ©ftype© 411 \rhs ©otype© 402 412 \end{syntax} 403 413 … … 1107 1117 \begin{syntax} 1108 1118 \lhs{unary-expression} 1109 \rhs \nonterm{postfix-expression} 1110 \rhs ©++© \nonterm{unary-expression} 1111 \rhs ©--© \nonterm{unary-expression} 1112 \rhs \nonterm{unary-operator} \nonterm{cast-expression} 1113 \rhs ©sizeof© \nonterm{unary-expression} 1114 \rhs ©sizeof© ©(© \nonterm{type-name} ©)© 1115 \lhs{unary-operator} one of \rhs ©&© ©*© ©+© ©-© ©~© ©!© 1119 \rhs \nonterm{postfix-expression} 1120 \rhs ©++© \nonterm{unary-expression} 1121 \rhs ©--© \nonterm{unary-expression} 1122 \rhs \nonterm{unary-operator} \nonterm{cast-expression} 1123 \rhs ©sizeof© \nonterm{unary-expression} 1124 \rhs ©sizeof© ©(© \nonterm{type-name} ©)© 1125 \lhs{unary-operator} one of 1126 \rhs ©&© ©*© ©+© ©-© ©~© ©!© 1116 1127 \end{syntax} 1117 1128 -
doc/user/Makefile
rc2931ea rf1ee72e 1 1 ## Define the appropriate configuration variables. 2 2 3 TeXLIB = .:../ bibliography/:../LaTeXmacros/:4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex 3 TeXLIB = .:../LaTeXmacros:../LaTeXmacros/listings:../LaTeXmacros/enumitem:../bibliography/: 4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error 5 5 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex 6 6 -
doc/user/user.tex
rc2931ea rf1ee72e 11 11 %% Created On : Wed Apr 6 14:53:29 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Fri Jun 10 16:38:22 201614 %% Update Count : 39413 %% Last Modified On : Mon Jun 20 10:47:22 2016 14 %% Update Count : 575 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 … … 21 21 % blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_ 22 22 % green highlighting ¢...¢ (cent symbol) emacs: C-q M-" 23 % La tex escape §...§ (section symbol) emacs: C-q M-'23 % LaTex escape §...§ (section symbol) emacs: C-q M-' 24 24 % keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^ 25 25 % math escape $...$ (dollar symbol) 26 26 27 27 \documentclass[twoside,11pt]{article} 28 28 29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 29 30 … … 34 35 \usepackage{fullpage,times,comment} 35 36 \usepackage{epic,eepic} 36 \usepackage{upquote} % switch curled `'" to straight `'"37 \usepackage{upquote} % switch curled `'" to straight 37 38 \usepackage{xspace} 38 39 \usepackage{varioref} % extended references … … 49 50 \renewcommand{\UrlFont}{\small\sf} 50 51 52 \makeatletter 53 \renewcommand{\pagestyle}[1]{ 54 \@ifundefined{ps@#1}% 55 \undefinedpagestyle 56 {\def\@tempa{#1}\def\@tempb{headings}\def\@tempc{myheadings}% 57 \ifx\@tempa\@tempb\setlength{\topmargin}{-0.25in}\setlength{\headsep}{0.25in}% 58 \else\ifx\@tempa\@tempc\setlength{\topmargin}{-0.25in}\setlength{\headsep}{0.25in}\fi\fi% 59 \@nameuse{ps@#1}}}% pagestyle 60 \makeatother 61 62 63 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 64 51 65 % Names used in the document. 52 66 … … 60 74 \newcommand{\G}[1]{{\Textbf[OliveGreen]{#1}}} 61 75 76 \newsavebox{\LstBox} 77 62 78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 63 79 … … 67 83 68 84 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 69 70 \begin{document}71 \pagestyle{headings}72 \linenumbers % comment out to turn off line numbering73 85 74 86 \title{\Huge … … 77 89 Version 1.0 \\ 78 90 \vspace*{0.25in} 79 \huge``describe not prescribe'' \\91 \huge``describe not prescribe'' 80 92 \vspace*{1in} 81 93 }% title 94 82 95 \author{\huge 83 Peter A. Buhr and ... \\96 Peter A. Buhr and ... 84 97 }% author 98 85 99 \date{ 86 DRAFT \\ 87 \today 100 DRAFT \\ \today 88 101 }% date 89 102 103 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 104 105 \begin{document} 106 \pagestyle{headings} 90 107 \pagenumbering{roman} 91 \ pagestyle{plain}108 \linenumbers % comment out to turn off line numbering 92 109 93 110 \maketitle … … 107 124 108 125 \clearpage 126 \markright{\CFA User Manual} 109 127 \pagenumbering{arabic} 110 128 … … 471 489 \end{quote2} 472 490 473 Unsupported are K\&R C declarations where the base type defaults to ©int©, if no type is specified \footnote{474 At least one type specifier shall be given in the declaration specifiers in each declaration, and in the specifier-qualifier list in each structure declaration and type name~\cite[\S~6.7.2(2)]{C11}} ,491 Unsupported are K\&R C declarations where the base type defaults to ©int©, if no type is specified,\footnote{ 492 At least one type specifier shall be given in the declaration specifiers in each declaration, and in the specifier-qualifier list in each structure declaration and type name~\cite[\S~6.7.2(2)]{C11}} 475 493 e.g.: 476 494 \begin{lstlisting} … … 485 503 Clearly, both styles need to be supported for some time due to existing C-style header-files, particularly for UNIX systems. 486 504 505 506 \section{Reference Pointers} 507 508 Program variables are implicit pointers to memory locations generated by the compiler and automatically dereferenced, as in: 509 \begin{quote2} 510 \begin{tabular}{@{}l|l@{}} 511 \multicolumn{1}{c|}{Variables} & \multicolumn{1}{c}{Compiler generated addresses (100, 104) and dereferencing} \\ 512 \hline 513 \begin{lstlisting} 514 int x, y; 515 x = 3; 516 y = x; 517 \end{lstlisting} 518 & 519 \begin{lstlisting} 520 int * const x = (int *)100, * const y = (int *)104; 521 *x = 3; // implicit dereference 522 *y = *x; 523 \end{lstlisting} 524 \end{tabular} 525 \end{quote2} 526 A variable name only points to one location during its lifetime, i.e., it is a \Index{non-mutable} pointer. 527 For example, the variables ©x© and ©y© are constant pointers. 528 Variable addresses are usually not stored in memory and loaded before dereferencing; 529 instead, variable addresses are stored in instructions, so an instruction fetch implicitly gets the variable's address. 530 \begin{quote2} 531 \begin{tabular}{@{}l|l@{}} 532 \begin{lstlisting} 533 x = x + 1 534 &x = *(&x) + 1 535 (100) = *(100) + 1 536 \end{lstlisting} 537 & 538 \begin{lstlisting} 539 ld r1,(100) // address of x 540 add r1,1 541 st r1,(100) // address of x 542 \end{lstlisting} 543 \end{tabular} 544 \end{quote2} 545 Finally, the non-mutable nature of variables and the fact that there is no storage for a variable address means pointer assignment is impossible. 546 Therefore, the expression ©x = y© only has one meaning, ©*x = *y©, i.e., copy the variable values, so explicitly writing the dereferences is unnecessary even though it occurs implicitly as part of instruction decoding. 547 548 A variable name is generalized by a \newterm{pointer}, which is a mutable pointer variable that can point to more than one memory location during its life-time (like an integer variable versus a literal). 549 Hence, a pointer occupies memory to store its current address, and the pointer's value is loaded by dereferencing, e.g.: 550 \begin{lstlisting} 551 int x, y, z, ®*® p1, ®*® p2; 552 p1 = ®&®x; // p1 points to x 553 p2 = p1; // p2 also points to x 554 p1 = ®&®y; // p1 points to y 555 p2 = p1 + 1; // p2 points to z, pointer arithmetic 556 \end{lstlisting} 557 In many cases, a pointer name is anonymous (dynamically computed), so it cannot be stored directly in an instruction like a variable name. 558 559 Pointers have a duality: an address in memory or the value at that address. 560 In many cases, the compiler can infer which of these operations are needed: 561 \begin{lstlisting} 562 p2 = p1 + x; // compiler infers *p2 = *p1 + x; 563 \end{lstlisting} 564 because adding the integer value of ©x© to the address of ©p1© and storing the resulting address into ©p2© is an unlikely operation. 565 Algol68~\cite{Algol68} inferences pointer dereferencing to select the best meaning for each pointer usage. 566 However, there are ambiguous cases, especially when pointer arithmetic is possible, as in C: 567 \begin{lstlisting} 568 p1 = p2; // p1 = p2 or *p1 = *p2 569 p1 = p1 + 1; // p1 = p1 + 1 or *p1 = *p1 + 1 570 \end{lstlisting} 571 572 Most programming languages pick a default operation and supply an explicit operation to resolve the pointer-duality ambiguity. 573 In C, the default operation for pointers is manipulate the pointer value and the pointed-to value is explicitly accessed by dereferencing ©*©. 574 \begin{lstlisting} 575 p1 = p2; // pointer value assignment 576 *p1 = *p1 + 1; // pointed-to value assignment/operation 577 \end{lstlisting} 578 which works well for low-level memory management, such as ©malloc©/©free©, where manipulation of addresses in the primary operation, and data is only occasionally accessed. 579 580 However, in the majority of pointer usages, the pointed-to value is required rather than the pointer address. 581 \begin{lstlisting} 582 *p2 = ((*p1 + *p2) * (*p2 - *p1)) / (*p1 - *p2); 583 \end{lstlisting} 584 And, it is tedious and error prone to explicitly write the dereferencing, especially when pointer arithmetic with integer values is allowed. 585 It is better to have the compiler generate the dereferencing: 586 \begin{lstlisting} 587 p2 = ((p1 + p2) * (p2 - p1)) / (p1 - p2); 588 \end{lstlisting} 589 590 To provide this capability, it is necessary to switch the default operation to resolve the pointer-duality ambiguity, which requires a new kind of pointer called a \newterm{reference} pointer. 591 \begin{lstlisting} 592 int x, y, z, ®&® r1, ®&® r2; // & denotes reference pointer 593 r1 ®:=® &x; // r1 points to x 594 r2 ®:=® &r1; // r2 also points to x 595 r1 ®:=® &y; // r1 points to y 596 r2 ®:=® &r1 + 1; // r2 points to z 597 r2 = ((r1 + r2) * (r2 - r1)) / (r1 - r2); // implicit dereferencing 598 \end{lstlisting} 599 Hence, a reference pointer behaves like a variable name for the current variable it is pointing-to, so dereferencing a reference pointer returns the address of its pointed-to value, i.e., the address in the reference pointer. 600 Notice, the explicit operator ©:=© to denote pointer assignment to a reference pointer to support both aspects of pointer duality. 601 Note, \CC deals with the pointer duality by making a reference pointer a constant (©const©), like a plain variable, so there is no reference assignment. 602 603 Like pointers, it is possible to use ©const© qualifiers with a reference: 604 \begin{lstlisting} 605 const int cx = 5; // cannot change cx; 606 const int & r3 = &cx; // cannot change what r3 is pointing to 607 r3 ®:=® &cx; // can change r3 608 r3 = 7; // error, cannot change cx 609 int & const r4 = &x; // must be initialized, §\CC§ reference 610 r4 ®:=® &x; // error, cannot change r4 611 const int & const r5 = &cx; // must be initialized, §\CC§ reference 612 r5 = 7; // error, cannot change cx 613 r5 ®:=® &cx; // error, cannot change r5 614 \end{lstlisting} 615 Note, for type ©& const©, there is no pointer assignment, so ©r4 := &x© is disallowed, and the pointer value cannot be ©0©. 616 Since there is only one meaning for ©r4 = x©, which is to change the value of the variable pointed to by ©r4©, therefore: 617 \begin{itemize} 618 \item 619 it in impossible to take the address of ©r4© as it always means the address of what ©r4© is pointing to. 620 \item 621 the dereference at initialization is optional because there can only be one 622 \begin{lrbox}{\LstBox}% 623 \footnotesize% 624 \begin{lstlisting}% 625 void f( int p ) {...} 626 void (*fp)( int ) = &f; // equivalent initialization 627 void (*fp)( int ) = f; // missing dereference allowed 628 \end{lstlisting}% 629 \end{lrbox}% 630 meaning.\footnote{ 631 This case is similar to initializing a routine pointer, where the routine constant should be dereferenced. 632 \newline 633 \usebox{\LstBox} 634 }% footnote 635 \begin{lstlisting} 636 int & const r4 = &x; // equivalent initialization 637 int & const r4 = x; // missing dereference allowed 638 \end{lstlisting} 639 \end{itemize} 640 Similarly, when a ©const© reference is used for a parameters type, the call-site argument does not require a reference. 641 \begin{lstlisting} 642 void f( int & ri, int & const cri ); 643 f( &x, x ); // reference not required for second argument 644 \end{lstlisting} 645 Within routine ©f©, it is possible to change an argument by changing the corresponding parameter, and parameter ©ri© can be locally reassigned within ©f©. 646 647 Finally, when a reference parameter has a ©const© value, it is possible to pass literals and expressions. 648 \begin{lstlisting} 649 void g( const int & ri, const int & const cri ); 650 f( &3, 3 ); 651 f( &(x + y), x + y ); 652 \end{lstlisting} 653 At the call site, the compiler implicitly creates the necessary temporary that is subsequently pointed to by the reference parameter. 654 Hence, changing the parameter only changes the temporary at the call site. 655 For the non-©const© parameter, requiring the reference on the literal or expression makes it clear that nothing is changing at the call site and allows the call to proceed, where other languages require the programmer to explicitly create the temporary for the argument. 487 656 488 657 \section{Type Operators} … … 808 977 \subsection{Type Nesting} 809 978 810 \CFA allows \Index{type nesting}, and type qualification of the nested types , where as C hoists\index{type hoisting} (refactors) nested types into the enclosing scope and has no type qualification.811 \begin{ quote2}979 \CFA allows \Index{type nesting}, and type qualification of the nested types (see \VRef[Figure]{f:TypeNestingQualification}), where as C hoists\index{type hoisting} (refactors) nested types into the enclosing scope and has no type qualification. 980 \begin{figure} 812 981 \begin{tabular}{@{}l@{\hspace{3em}}l|l@{}} 813 982 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{C Type Nesting}} & \multicolumn{1}{c}{\textbf{C Implicit Hoisting}} & \multicolumn{1}{|c}{\textbf{\CFA}} \\ … … 870 1039 \end{lstlisting} 871 1040 \end{tabular} 872 \end{quote2} 1041 \caption{Type Nesting / Qualification} 1042 \label{f:TypeNestingQualification} 1043 \end{figure} 873 1044 In the left example in C, types ©C©, ©U© and ©T© are implicitly hoisted outside of type ©S© into the containing block scope. 874 1045 In the right example in \CFA, the types are not hoisted and accessed using the field-selection operator ``©.©'' for type qualification, as does Java, rather than the \CC type-selection operator ``©::©''. -
src/GenPoly/ScopedMap.h
rc2931ea rf1ee72e 90 90 return next_valid(); 91 91 } 92 iterator &operator++ (int) { iterator tmp = *this; ++(*this); return tmp; }92 iterator operator++ (int) { iterator tmp = *this; ++(*this); return tmp; } 93 93 94 94 iterator& operator-- () { … … 101 101 return prev_valid(); 102 102 } 103 iterator &operator-- (int) { iterator tmp = *this; --(*this); return tmp; }103 iterator operator-- (int) { iterator tmp = *this; --(*this); return tmp; } 104 104 105 105 bool operator== (const iterator &that) { … … 166 166 return next_valid(); 167 167 } 168 const_iterator &operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; }168 const_iterator operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; } 169 169 170 170 const_iterator& operator-- () { … … 177 177 return prev_valid(); 178 178 } 179 const_iterator &operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; }179 const_iterator operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; } 180 180 181 181 bool operator== (const const_iterator &that) { -
src/GenPoly/ScopedSet.h
rc2931ea rf1ee72e 87 87 return next_valid(); 88 88 } 89 iterator &operator++ (int) { iterator tmp = *this; ++(*this); return tmp; }89 iterator operator++ (int) { iterator tmp = *this; ++(*this); return tmp; } 90 90 91 91 iterator& operator-- () { … … 98 98 return prev_valid(); 99 99 } 100 iterator &operator-- (int) { iterator tmp = *this; --(*this); return tmp; }100 iterator operator-- (int) { iterator tmp = *this; --(*this); return tmp; } 101 101 102 102 bool operator== (const iterator &that) { … … 163 163 return next_valid(); 164 164 } 165 const_iterator &operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; }165 const_iterator operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; } 166 166 167 167 const_iterator& operator-- () { … … 174 174 return prev_valid(); 175 175 } 176 const_iterator &operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; }176 const_iterator operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; } 177 177 178 178 bool operator== (const const_iterator &that) { -
src/Parser/lex.cc
rc2931ea rf1ee72e 382 382 (yy_c_buf_p) = yy_cp; 383 383 384 #define YY_NUM_RULES 18 1385 #define YY_END_OF_BUFFER 18 2384 #define YY_NUM_RULES 180 385 #define YY_END_OF_BUFFER 181 386 386 /* This struct is not used in this scanner, 387 387 but its presence is necessary. */ … … 391 391 flex_int32_t yy_nxt; 392 392 }; 393 static yyconst flex_int16_t yy_accept[88 9] =393 static yyconst flex_int16_t yy_accept[888] = 394 394 { 0, 395 395 0, 0, 0, 0, 0, 0, 115, 115, 118, 118, 396 18 2, 180, 7, 9, 8, 138, 117, 102, 143, 146,396 181, 179, 7, 9, 8, 138, 117, 102, 143, 146, 397 397 114, 125, 126, 141, 139, 129, 140, 132, 142, 107, 398 108, 109, 130, 131, 148, 150, 149, 151, 1 80, 102,399 123, 1 80, 124, 144, 102, 104, 102, 102, 102, 102,398 108, 109, 130, 131, 148, 150, 149, 151, 179, 102, 399 123, 179, 124, 144, 102, 104, 102, 102, 102, 102, 400 400 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 401 102, 102, 127, 147, 128, 145, 7, 1 80, 4, 4,402 18 1, 105, 181, 106, 115, 116, 122, 118, 119, 7,403 9, 0, 8, 155, 17 5, 102, 0, 167, 137, 160,401 102, 102, 127, 147, 128, 145, 7, 179, 4, 4, 402 180, 105, 180, 106, 115, 116, 122, 118, 119, 7, 403 9, 0, 8, 155, 174, 102, 0, 167, 137, 160, 404 404 168, 165, 152, 163, 153, 164, 162, 0, 112, 3, 405 405 406 406 0, 166, 112, 110, 0, 0, 110, 110, 0, 0, 407 110, 109, 109, 109, 0, 109, 174, 135, 136, 134, 408 156, 158, 154, 159, 157, 0, 0, 0, 0, 0, 407 110, 109, 109, 109, 0, 109, 135, 136, 134, 156, 408 158, 154, 159, 157, 0, 0, 0, 0, 0, 0, 409 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 410 173, 0, 117, 114, 102, 0, 0, 170, 0, 102, 411 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 412 102, 102, 102, 102, 102, 102, 38, 102, 102, 102, 413 102, 102, 102, 102, 102, 102, 102, 56, 102, 102, 414 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 415 102, 102, 102, 102, 169, 161, 7, 0, 0, 0, 416 417 2, 0, 5, 105, 0, 0, 0, 115, 0, 121, 418 120, 120, 0, 0, 0, 118, 0, 0, 0, 0, 409 419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410 103, 173, 0, 117, 114, 102, 0, 0, 170, 0, 420 0, 133, 112, 112, 0, 112, 112, 0, 0, 6, 421 0, 110, 0, 0, 0, 112, 0, 110, 110, 110, 422 110, 0, 111, 0, 0, 109, 109, 109, 109, 0, 423 171, 172, 0, 177, 175, 0, 0, 0, 103, 0, 424 0, 0, 0, 0, 0, 0, 0, 102, 17, 102, 411 425 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 412 102, 102, 102, 102, 102, 102, 102, 38, 102, 102,413 102, 102, 102, 102, 102, 102, 102, 102, 56, 102, 426 102, 102, 102, 102, 102, 102, 102, 14, 102, 102, 427 414 428 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 415 102, 102, 102, 102, 102, 169, 161, 7, 0, 0, 416 417 0, 2, 0, 5, 105, 0, 0, 0, 115, 0, 418 121, 120, 120, 0, 0, 0, 118, 0, 0, 0, 429 102, 102, 102, 102, 102, 102, 50, 102, 102, 102, 430 63, 102, 102, 102, 102, 102, 102, 102, 102, 102, 431 102, 102, 102, 102, 102, 89, 102, 102, 102, 102, 432 102, 102, 102, 0, 0, 0, 0, 0, 0, 0, 433 0, 120, 0, 0, 0, 0, 0, 120, 0, 0, 434 178, 0, 0, 0, 0, 0, 0, 0, 112, 0, 435 112, 0, 112, 0, 0, 112, 0, 110, 110, 0, 436 0, 111, 111, 0, 111, 0, 111, 109, 109, 0, 437 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 438 439 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 440 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 441 102, 102, 102, 21, 102, 24, 102, 27, 102, 102, 442 102, 102, 102, 102, 102, 41, 102, 43, 102, 102, 443 102, 102, 102, 102, 102, 55, 102, 66, 102, 102, 444 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 445 102, 102, 102, 102, 97, 102, 102, 0, 0, 0, 419 446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420 0, 0, 133, 112, 112, 0, 112, 112, 0, 0, 421 6, 0, 110, 0, 0, 0, 112, 0, 110, 110, 422 110, 110, 0, 111, 0, 0, 109, 109, 109, 109, 423 0, 171, 172, 0, 178, 176, 0, 0, 0, 103, 424 0, 0, 0, 0, 0, 0, 0, 0, 102, 17, 447 0, 120, 0, 0, 0, 0, 0, 112, 0, 0, 448 0, 0, 0, 0, 111, 111, 0, 113, 0, 111, 449 450 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 451 0, 0, 0, 0, 102, 102, 22, 102, 102, 102, 452 102, 102, 102, 102, 15, 102, 102, 102, 102, 102, 453 102, 102, 102, 102, 102, 102, 102, 102, 102, 23, 454 25, 102, 32, 102, 102, 102, 102, 40, 102, 102, 455 102, 102, 48, 102, 102, 53, 102, 102, 70, 102, 456 102, 102, 76, 102, 102, 102, 102, 102, 86, 88, 457 102, 102, 94, 102, 102, 101, 0, 0, 0, 0, 458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 459 0, 0, 0, 0, 0, 113, 0, 0, 111, 113, 460 461 113, 113, 113, 0, 111, 0, 0, 0, 0, 0, 462 0, 0, 0, 0, 0, 102, 0, 102, 102, 102, 425 463 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 426 102, 102, 102, 102, 102, 102, 102, 102, 14, 102, 427 428 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 429 102, 102, 102, 102, 102, 102, 102, 50, 102, 102, 430 102, 63, 102, 102, 102, 102, 102, 102, 102, 102, 431 102, 102, 102, 102, 102, 102, 89, 102, 102, 102, 432 102, 102, 102, 102, 0, 0, 0, 0, 0, 0, 433 0, 0, 120, 0, 0, 0, 0, 0, 120, 0, 434 0, 179, 0, 0, 0, 0, 0, 0, 0, 112, 435 0, 112, 0, 112, 0, 0, 112, 0, 110, 110, 436 0, 0, 111, 111, 0, 111, 0, 111, 109, 109, 464 102, 102, 102, 58, 102, 102, 102, 102, 102, 102, 465 102, 102, 28, 102, 102, 102, 39, 42, 45, 102, 466 102, 51, 102, 60, 67, 102, 102, 75, 77, 80, 467 81, 83, 84, 102, 102, 91, 102, 102, 0, 1, 468 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 469 120, 0, 0, 0, 0, 113, 0, 113, 113, 0, 470 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 471 472 18, 102, 102, 102, 102, 102, 102, 102, 16, 102, 473 102, 102, 33, 102, 102, 102, 102, 102, 102, 102, 474 102, 102, 102, 102, 102, 36, 37, 102, 47, 52, 475 102, 102, 102, 90, 102, 102, 0, 0, 0, 0, 476 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 477 11, 29, 54, 102, 102, 102, 102, 102, 102, 102, 478 102, 102, 102, 102, 59, 61, 64, 102, 102, 78, 479 92, 102, 102, 35, 46, 71, 72, 102, 95, 98, 437 480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 438 439 177, 102, 102, 102, 102, 102, 102, 102, 102, 102, 440 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 441 102, 102, 102, 102, 21, 102, 24, 102, 27, 102, 442 102, 102, 102, 102, 102, 102, 41, 102, 43, 102, 443 102, 102, 102, 102, 102, 102, 55, 102, 66, 102, 444 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 445 102, 102, 102, 102, 102, 97, 102, 102, 0, 0, 446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 447 0, 0, 120, 0, 0, 0, 0, 0, 112, 0, 448 0, 0, 0, 0, 0, 111, 111, 0, 113, 0, 449 450 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, 451 0, 0, 0, 0, 0, 102, 102, 22, 102, 102, 452 102, 102, 102, 102, 102, 15, 102, 102, 102, 102, 453 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 454 23, 25, 102, 32, 102, 102, 102, 102, 40, 102, 455 102, 102, 102, 48, 102, 102, 53, 102, 102, 70, 456 102, 102, 102, 76, 102, 102, 102, 102, 102, 86, 457 88, 102, 102, 94, 102, 102, 101, 0, 0, 0, 458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 459 0, 0, 0, 0, 0, 0, 113, 0, 0, 111, 460 461 113, 113, 113, 113, 0, 111, 0, 0, 0, 0, 462 0, 0, 0, 0, 0, 0, 102, 0, 102, 102, 463 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 464 102, 102, 102, 102, 58, 102, 102, 102, 102, 102, 465 102, 102, 102, 28, 102, 102, 102, 39, 42, 45, 466 102, 102, 51, 102, 60, 67, 102, 102, 75, 77, 467 80, 81, 83, 84, 102, 102, 91, 102, 102, 0, 468 1, 0, 0, 0, 0, 0, 0, 105, 0, 0, 469 0, 120, 0, 0, 0, 0, 113, 0, 113, 113, 470 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 471 472 102, 18, 102, 102, 102, 102, 102, 102, 102, 16, 473 102, 102, 102, 33, 102, 102, 102, 102, 102, 102, 474 102, 102, 102, 102, 102, 102, 36, 37, 102, 47, 475 52, 102, 102, 102, 90, 102, 102, 0, 0, 0, 476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 477 10, 11, 29, 54, 102, 102, 102, 102, 102, 102, 478 102, 102, 102, 102, 102, 59, 61, 64, 102, 102, 479 78, 92, 102, 102, 35, 46, 71, 72, 102, 95, 480 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481 0, 0, 0, 102, 68, 102, 102, 12, 102, 102, 482 483 30, 34, 102, 102, 102, 65, 102, 102, 102, 102, 484 102, 102, 0, 0, 0, 0, 0, 0, 0, 0, 485 0, 0, 0, 0, 0, 57, 102, 102, 102, 102, 486 102, 102, 102, 49, 62, 73, 79, 93, 99, 102, 487 102, 0, 0, 0, 0, 0, 0, 0, 0, 102, 488 102, 13, 19, 102, 102, 31, 102, 102, 102, 26, 489 87, 0, 0, 102, 102, 102, 102, 102, 102, 74, 490 100, 102, 85, 20, 102, 102, 44, 82, 102, 102, 491 102, 102, 102, 102, 102, 96, 69, 0 481 0, 0, 102, 68, 102, 102, 12, 102, 102, 30, 482 483 34, 102, 102, 102, 65, 102, 102, 102, 102, 102, 484 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 485 0, 0, 0, 0, 57, 102, 102, 102, 102, 102, 486 102, 102, 49, 62, 73, 79, 93, 99, 102, 102, 487 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 488 13, 19, 102, 102, 31, 102, 102, 102, 26, 87, 489 0, 0, 102, 102, 102, 102, 102, 102, 74, 100, 490 102, 85, 20, 102, 102, 44, 82, 102, 102, 102, 491 102, 102, 102, 102, 96, 69, 0 492 492 } ; 493 493 … … 537 537 } ; 538 538 539 static yyconst flex_int16_t yy_base[106 3] =539 static yyconst flex_int16_t yy_base[1062] = 540 540 { 0, 541 0, 84, 227 9, 2277, 94, 0, 177, 178, 179, 180,542 22 91, 2817, 191, 2817, 197, 55, 2817, 2237, 60, 173,543 28 17, 2817, 2817, 56, 188, 2817, 191, 189, 204, 216,544 275, 0, 152, 2817, 216, 2257, 175, 344, 197, 237,545 28 17, 159, 2817, 220, 226, 2817, 181, 165, 212, 251,546 2 41, 270, 205, 244, 235, 174, 227, 305, 274, 341,547 2 20, 265, 2817, 227, 2817, 2253, 382, 405, 2817, 2262,548 28 17, 2228, 211, 2817, 0, 2817, 432, 0, 2817, 398,549 28 17, 411, 417, 2817, 504, 2227, 258, 2817, 2817, 2817,550 28 17, 2817, 2245, 2817, 2243, 2817, 2817, 2253, 565, 2817,551 552 226 8, 2817, 424, 419, 504, 522, 296, 237, 265, 417,553 3 86, 0, 298, 285, 311, 403, 2817, 2817, 2817, 2817,554 2 238, 2817, 2817, 2817, 2237, 2235, 301, 331, 2248, 347,555 442, 449, 359, 433, 427, 454, 2227, 465, 2176, 469,556 2 206, 2817, 319, 2817, 2817, 501, 2201, 2198, 2817, 2169,557 425, 307, 467, 320, 337, 470, 431, 345, 509, 356,558 4 39, 410, 490, 481, 500, 498, 502, 504, 424, 505,559 541, 510, 465, 528, 542, 271, 520, 521, 2197, 544,560 5 48, 549, 550, 561, 558, 570, 579, 587, 569, 585,561 5 67, 601, 592, 593, 594, 2817, 2817, 665, 671, 2246,562 563 677, 2817, 683, 2817, 2194, 565, 2188, 2185, 0, 674,564 28 17, 2817, 689, 2184, 2183, 2181, 0, 2202, 616, 630,565 65 5, 698, 697, 659, 687, 688, 691, 2197, 694, 701,566 21 74, 2173, 2817, 0, 693, 723, 691, 714, 2171, 2204,567 2817, 722, 0, 717, 768, 744, 808, 779, 606, 2817,568 21 61, 2136, 0, 794, 2180, 786, 702, 2817, 2154, 2129,569 830, 2817, 2817, 2162, 2817, 2817, 708, 722, 2140, 2138,570 710, 2132, 2131, 2130, 0, 2128, 0, 2097, 721, 727,571 7 47, 748, 674, 591, 610, 723, 766, 793, 767, 770,572 769, 792, 810, 763, 775, 806, 812, 820, 2125, 822,573 574 82 4, 825, 828, 830, 831, 832, 836, 837, 460, 843,575 8 46, 845, 844, 847, 848, 852, 859, 861, 858, 867,576 865, 2124, 868, 869, 870, 873, 871, 872, 874, 875,577 8 81, 876, 880, 882, 887, 888, 2123, 891, 940, 897,578 89 9, 563, 902, 906, 960, 961, 2118, 2115, 2112, 0,579 2111, 0, 952, 956, 2110, 0, 2108, 0, 2105, 0,580 2 126, 2817, 793, 939, 2105, 2101, 0, 2098, 0, 2817,581 9 60, 986, 971, 2817, 977, 992, 1011, 2097, 2817, 2817,582 9 85, 994, 1024, 982, 1058, 922, 1043, 993, 2817, 2817,583 20 96, 2094, 2091, 0, 2087, 0, 2083, 0, 2081, 0,584 585 2817, 908, 953, 939, 991, 993, 998, 1003, 1000, 1026,586 100 6, 1037, 1020, 1038, 1048, 1041, 1049, 970, 1054, 1018,587 10 50, 1044, 1056, 1045, 2082, 1059, 2079, 1068, 2077, 1057,588 10 52, 1070, 1072, 1079, 1077, 1081, 2075, 1082, 2072, 1084,589 10 86, 1087, 1088, 1091, 1089, 1094, 2069, 1096, 2068, 1093,590 109 8, 1099, 1101, 1105, 1100, 1114, 1111, 1115, 1112, 1117,591 686, 1118, 1126, 1130, 1127, 2067, 1131, 1132, 1183, 2062,592 0, 2059, 0, 2056, 0, 2055, 0, 1178, 2054, 0,593 2052, 0, 2049, 2046, 2045, 0, 2044, 0, 1184, 2042,594 11 90, 1149, 1206, 1192, 1150, 1185, 2817, 1230, 1242, 1264,595 596 20 51, 2024, 2035, 2034, 0, 2032, 0, 2029, 0, 2026,597 0, 2025, 0, 2024, 0, 1166, 1206, 2025, 1207, 1190,598 1 227, 1145, 1241, 1184, 1135, 134, 1198, 1243, 1223, 1225,599 12 44, 1186, 1248, 1247, 1249, 1256, 1251, 1261, 1262, 1221,600 2022, 1269, 1266, 2019, 1264, 1267, 1268, 1270, 2018, 1276,601 12 72, 1274, 1277, 2017, 1280, 1288, 2015, 1287, 1290, 2012,602 128 4, 1291, 1294, 2009, 1188, 1297, 1298, 1300, 1301, 1308,603 2008, 1303, 1309, 2007, 1310, 1315, 2005, 2052, 1998, 0,604 1997, 0, 1995, 0, 1992, 0, 1991, 0, 1990, 0,605 1988, 0, 1955, 0, 1359, 1365, 1393, 1376, 1953, 2817,606 607 13 82, 1369, 1331, 1383, 1952, 2817, 1949, 0, 1946, 0,608 1945, 0, 1944, 0, 0, 0, 1945, 0, 1370, 1316,609 13 17, 1345, 1325, 1372, 1373, 1378, 1377, 384, 1376, 1387,610 139 0, 1392, 1399, 1397, 773, 1400, 1430, 1407, 1404, 1411,611 141 0, 1412, 1418, 1942, 1413, 1415, 1423, 1939, 1938, 1937,612 142 1, 1425, 1935, 1426, 1932, 1931, 1429, 1433, 1930, 1928,613 1 925, 1924, 1923, 1921, 1435, 1314, 1918, 1439, 1431, 1964,614 2817, 1907, 0, 1903, 0, 0, 0, 1890, 0, 0,615 0, 2817, 0, 0, 0, 0, 1483, 1886, 2817, 2817,616 1 489, 1885, 0, 1883, 0, 0, 0, 0, 1880, 1445,617 618 1 465, 1882, 1442, 1470, 1467, 1479, 968, 1447, 1476, 1881,619 14 78, 1482, 1480, 1485, 1481, 1512, 1487, 1497, 1526, 1501,620 150 3, 1505, 1507, 1508, 1509, 1510, 1879, 1876, 1511, 1875,621 1 874, 1515, 1514, 1518, 1872, 1520, 1522, 0, 0,0,622 18 66, 1865, 1864, 1570, 0, 1862, 1859, 1858, 1857, 1855,623 18 55, 1854, 1853, 1851, 1527, 1529, 1532, 1523, 1548, 1533,624 15 49, 1524, 1551, 1552, 1553, 1848, 1557, 1847, 1559, 1561,625 15 64, 1569, 1555, 1563, 1846, 1844, 1841, 1840, 1571, 1839,626 18 37, 1831, 1830, 1829, 1827, 1820, 1818, 1817, 1814, 1813,627 1 812, 1810, 1793, 1574, 1787, 1575, 1577, 1576, 1578, 1580,628 629 1 581, 1786, 1585, 1608, 1587, 1783, 1588, 1589, 1599, 1597,630 1 591, 1593, 1773, 1770, 1763, 1761, 1760, 1739, 1738, 1737,631 1 730, 1728, 1727, 1685, 1684, 1683, 1598, 1604, 1612, 1605,632 161 3, 1617, 1616, 1682, 1681, 1618, 1677, 1676, 1622, 1623,633 1 626, 1670, 1669, 1668, 1665, 1448, 1446, 1358, 1317, 1627,634 1 624, 1318, 1638, 1630, 1634, 1224, 1642, 1643, 1644, 1137,635 1136, 1004, 733, 1628, 1649, 1650, 1651, 1652, 1654, 635,636 602, 1656, 436, 296, 1658, 1659, 263, 232, 1660, 1662,637 16 63, 1665, 1666, 1667, 1670, 200, 166, 2817, 1742, 1755,638 17 68, 1778, 1788, 1801, 1811, 1824, 1837, 1850, 1858, 1868,639 640 18 75, 1882, 1889, 1896, 1903, 1910, 1917, 1924, 1931, 1944,641 19 51, 1955, 1963, 1966, 1973, 1980, 1987, 1990, 1997, 2003,642 20 16, 2029, 2036, 2043, 2050, 2057, 2060, 2067, 2070, 2077,643 20 80, 2087, 2090, 2097, 2100, 2107, 2110, 2117, 2120, 2127,644 21 35, 2142, 2149, 2156, 2163, 2166, 2173, 2176, 2183, 2186,645 2 193, 2199, 2212, 2219, 2226, 2229, 2236, 2239, 2246, 2249,646 22 56, 2259, 2266, 2269, 2276, 2279, 2286, 2293, 2296, 2303,647 23 06, 2313, 2320, 2327, 2330, 2337, 2340, 2347, 2350, 2357,648 23 60, 2367, 2370, 2377, 2383, 2396, 2403, 2410, 2413, 2420,649 24 23, 2430, 2433, 2440, 2443, 2450, 2453, 2460, 2463, 2470,650 651 24 73, 2480, 2483, 2490, 2497, 2500, 2507, 2510, 2517, 2520,652 25 27, 2530, 2533, 2539, 2546, 2555, 2562, 2569, 2572, 2579,653 25 82, 2585, 2591, 2598, 2601, 2604, 2607, 2610, 2613, 2616,654 26 19, 2626, 2629, 2636, 2639, 2642, 2645, 2648, 2658, 2665,655 26 68, 2671, 2674, 2681, 2688, 2695, 2698, 2705, 2712, 2719,656 27 26, 2733, 2740, 2747, 2754, 2761, 2768, 2775, 2782, 2789,657 2 796, 2803541 0, 84, 2272, 2269, 94, 0, 177, 178, 179, 180, 542 2285, 2822, 191, 2822, 197, 55, 2822, 2231, 60, 173, 543 2822, 2822, 2822, 56, 188, 2822, 191, 189, 204, 216, 544 275, 0, 2249, 2822, 216, 2247, 152, 344, 155, 220, 545 2822, 159, 2822, 217, 226, 2822, 185, 154, 212, 251, 546 237, 270, 235, 257, 241, 205, 193, 305, 314, 333, 547 238, 228, 2822, 225, 2822, 2242, 402, 390, 2822, 2253, 548 2822, 2221, 235, 2822, 0, 2822, 426, 0, 2822, 417, 549 2822, 439, 451, 2822, 498, 2219, 264, 2822, 2822, 2822, 550 2822, 2822, 2235, 2822, 2232, 2822, 2822, 2244, 559, 2822, 551 552 2261, 2822, 438, 444, 511, 534, 289, 253, 197, 380, 553 305, 0, 319, 280, 198, 322, 2822, 2822, 2822, 2230, 554 2822, 2822, 2822, 2227, 2224, 218, 255, 2239, 298, 350, 555 368, 312, 440, 398, 405, 2220, 441, 2168, 446, 2196, 556 2822, 335, 2822, 2822, 468, 2190, 2189, 2822, 2162, 439, 557 282, 433, 372, 281, 437, 434, 428, 570, 444, 466, 558 464, 469, 475, 321, 492, 438, 471, 445, 474, 512, 559 489, 503, 496, 521, 276, 515, 516, 2189, 526, 510, 560 519, 525, 543, 522, 560, 553, 523, 561, 551, 544, 561 599, 582, 593, 584, 2822, 2822, 660, 651, 2236, 666, 562 563 2822, 678, 2822, 2183, 607, 2179, 2178, 0, 693, 2822, 564 2822, 684, 2176, 2156, 2154, 0, 2177, 578, 608, 617, 565 654, 679, 650, 683, 684, 687, 2172, 690, 691, 2147, 566 2146, 2822, 0, 683, 710, 686, 700, 2145, 2196, 2822, 567 714, 0, 427, 746, 764, 786, 808, 621, 2822, 2152, 568 2125, 0, 794, 2171, 795, 709, 2822, 2147, 2121, 832, 569 2822, 2822, 2152, 2822, 2822, 711, 714, 2129, 2129, 717, 570 2125, 2123, 2120, 0, 2117, 0, 2088, 694, 679, 712, 571 709, 711, 698, 566, 726, 743, 771, 741, 790, 784, 572 800, 795, 742, 744, 814, 816, 818, 2118, 819, 745, 573 574 820, 821, 822, 823, 824, 746, 825, 748, 659, 831, 575 826, 833, 838, 839, 848, 850, 851, 844, 834, 857, 576 2116, 858, 859, 860, 862, 861, 864, 865, 867, 868, 577 866, 871, 876, 872, 878, 2113, 880, 689, 881, 882, 578 892, 896, 893, 953, 954, 2109, 2108, 2106, 0, 2103, 579 0, 941, 945, 2102, 0, 2101, 0, 2099, 0, 2118, 580 2822, 940, 941, 2094, 2088, 0, 2086, 0, 2822, 953, 581 975, 964, 2822, 981, 997, 1021, 2084, 2822, 2822, 939, 582 940, 1006, 982, 1041, 310, 1039, 1004, 2822, 2822, 2081, 583 2079, 2077, 0, 2074, 0, 2071, 0, 2070, 0, 2822, 584 585 886, 941, 960, 962, 977, 976, 980, 982, 1017, 1010, 586 1002, 998, 1022, 1031, 1028, 1033, 1034, 1037, 1040, 1043, 587 1038, 1041, 1053, 2072, 1055, 2070, 1045, 2067, 1056, 1061, 588 1063, 1065, 1066, 1067, 1070, 2064, 1071, 2063, 1073, 1074, 589 1075, 1078, 1080, 1081, 1085, 2062, 1087, 2060, 1084, 1089, 590 1091, 1097, 1099, 1092, 1102, 1103, 1105, 1106, 1108, 905, 591 1109, 1116, 1110, 1122, 2057, 1120, 1123, 1179, 2051, 0, 592 2050, 0, 2049, 0, 2047, 0, 1166, 2044, 0, 2041, 593 0, 2040, 2039, 2037, 0, 2034, 0, 1173, 2031, 1179, 594 1137, 1195, 1181, 1178, 1176, 2822, 1219, 1231, 1253, 2042, 595 596 2017, 2027, 2024, 0, 2021, 0, 2020, 0, 2019, 0, 597 2017, 0, 2014, 0, 1141, 1172, 2014, 1180, 1155, 1196, 598 1157, 1216, 1207, 1231, 1125, 1210, 1232, 1214, 1187, 1236, 599 1235, 1237, 1238, 1272, 1249, 1252, 1250, 1253, 1254, 2013, 600 1261, 1256, 2012, 1260, 1263, 1264, 1257, 2010, 1271, 1268, 601 1269, 1273, 2007, 1275, 1282, 2006, 1283, 1284, 2005, 1276, 602 1286, 1289, 2003, 1294, 1291, 1296, 1295, 1297, 1310, 2000, 603 1305, 1308, 1999, 1307, 1300, 1998, 2046, 1960, 0, 1958, 604 0, 1957, 0, 1954, 0, 1951, 0, 1950, 0, 1949, 605 0, 1947, 0, 1355, 1361, 1389, 1372, 1944, 2822, 1378, 606 607 1325, 1365, 1379, 1941, 2822, 1940, 0, 1939, 0, 1937, 608 0, 1934, 0, 0, 0, 1936, 0, 1366, 1312, 1311, 609 1341, 1323, 1368, 1369, 1374, 1356, 1383, 1372, 1388, 1390, 610 1393, 1395, 1396, 1398, 1400, 1431, 1406, 1407, 1411, 1408, 611 1413, 1414, 1935, 1409, 1416, 1419, 1933, 1930, 1929, 1422, 612 1424, 1928, 1429, 1926, 1923, 1425, 1430, 1919, 1915, 1911, 613 1895, 1894, 1893, 1436, 1433, 1891, 1439, 1440, 1938, 2822, 614 1884, 0, 1883, 0, 0, 0, 1884, 0, 0, 0, 615 2822, 0, 0, 0, 0, 1486, 1878, 2822, 2822, 1492, 616 1877, 0, 1876, 0, 0, 0, 0, 1874, 1447, 1444, 617 618 1874, 1449, 1471, 1479, 1450, 1480, 1482, 1469, 1873, 1486, 619 1490, 1488, 1502, 1452, 1510, 1504, 1491, 1519, 1506, 1498, 620 1508, 1512, 1513, 1514, 1515, 1872, 1870, 1517, 1867, 1866, 621 1518, 1520, 1523, 1865, 1521, 1525, 0, 0, 0, 1860, 622 1857, 1856, 1575, 0, 1855, 1853, 1850, 1849, 1848, 1849, 623 1846, 1845, 1844, 1531, 1536, 1527, 1528, 1552, 1533, 1537, 624 1539, 1555, 1557, 1569, 1842, 1560, 1839, 1561, 1559, 1568, 625 1572, 1567, 1573, 1838, 1837, 1835, 1828, 1574, 1826, 1825, 626 1819, 1818, 1817, 1815, 1798, 1789, 1788, 1785, 1778, 1775, 627 1768, 1766, 1576, 1768, 1577, 1581, 1580, 1579, 1584, 1585, 628 629 1747, 1586, 1615, 1590, 1746, 1591, 1592, 1602, 1600, 1594, 630 1606, 1742, 1735, 1733, 1732, 1690, 1689, 1686, 1685, 1683, 631 1682, 1678, 1677, 1674, 1676, 1607, 1611, 1614, 1612, 1608, 632 1616, 1620, 1675, 1623, 1624, 1530, 1453, 1630, 1625, 1629, 633 1438, 1354, 1319, 1318, 1267, 1212, 1210, 1208, 1631, 1636, 634 1178, 1639, 1635, 1643, 1177, 1644, 1646, 1650, 1126, 964, 635 937, 903, 1651, 1652, 1654, 1655, 1656, 1658, 788, 752, 636 1660, 607, 487, 1662, 1663, 394, 357, 1664, 1666, 1668, 637 1670, 1669, 1672, 1674, 233, 137, 2822, 1747, 1760, 1773, 638 1783, 1793, 1806, 1816, 1829, 1842, 1855, 1863, 1873, 1880, 639 640 1887, 1894, 1901, 1908, 1915, 1922, 1929, 1936, 1949, 1956, 641 1960, 1968, 1971, 1978, 1985, 1992, 1995, 2002, 2008, 2021, 642 2034, 2041, 2048, 2055, 2062, 2065, 2072, 2075, 2082, 2085, 643 2092, 2095, 2102, 2105, 2112, 2115, 2122, 2125, 2132, 2140, 644 2147, 2154, 2161, 2168, 2171, 2178, 2181, 2188, 2191, 2198, 645 2204, 2217, 2224, 2231, 2234, 2241, 2244, 2251, 2254, 2261, 646 2264, 2271, 2274, 2281, 2284, 2291, 2298, 2301, 2308, 2311, 647 2318, 2325, 2332, 2335, 2342, 2345, 2352, 2355, 2362, 2365, 648 2372, 2375, 2382, 2388, 2401, 2408, 2415, 2418, 2425, 2428, 649 2435, 2438, 2445, 2448, 2455, 2458, 2465, 2468, 2475, 2478, 650 651 2485, 2488, 2495, 2502, 2505, 2512, 2515, 2522, 2525, 2532, 652 2535, 2538, 2544, 2551, 2560, 2567, 2574, 2577, 2584, 2587, 653 2590, 2596, 2603, 2606, 2609, 2612, 2615, 2618, 2621, 2624, 654 2631, 2634, 2641, 2644, 2647, 2650, 2653, 2663, 2670, 2673, 655 2676, 2679, 2686, 2693, 2700, 2703, 2710, 2717, 2724, 2731, 656 2738, 2745, 2752, 2759, 2766, 2773, 2780, 2787, 2794, 2801, 657 2808 658 658 } ; 659 659 660 static yyconst flex_int16_t yy_def[106 3] =660 static yyconst flex_int16_t yy_def[1062] = 661 661 { 0, 662 88 8, 1, 889, 889, 888, 5, 890, 890, 891, 891,663 88 8, 888, 888, 888, 888, 888, 888, 892, 888, 888,664 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,665 88 8, 31, 888, 888, 888, 888, 888, 888, 893, 892,666 88 8, 888, 888, 888, 892, 888, 892, 892, 892, 892,667 89 2, 892, 892, 892, 892, 892, 892, 892, 892, 892,668 89 2, 892, 888, 888, 888, 888, 888, 894, 888, 888,669 88 8, 895, 888, 888, 896, 888, 888, 897, 888, 888,670 88 8, 888, 888, 888, 888, 892, 888, 888, 888, 888,671 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,672 673 89 8, 888, 99, 30, 888, 888, 888, 888, 899, 30,674 88 8, 31, 888, 888, 31, 888, 888, 888, 888, 888,675 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,676 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,677 900, 888, 888, 888, 888, 892, 901, 902, 888, 888,678 89 2, 892, 892, 892, 892, 892, 892, 892, 892, 892,679 89 2, 892, 892, 892, 892, 892, 892, 892, 892, 892,680 89 2, 892, 892, 892, 892, 892, 892, 892, 892, 892,681 89 2, 892, 892, 892, 892, 892, 892, 892, 892, 892,682 89 2, 892, 892, 892, 892, 888, 888, 888, 894, 894,683 684 8 94, 888, 894, 888, 895, 888, 903, 904, 896, 888,685 88 8, 888, 888, 905, 906, 907, 897, 888, 888, 888,686 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,687 908, 909, 888, 99, 888, 888, 888, 888, 99, 910,688 88 8, 888, 104, 104, 888, 888, 888, 888, 888, 888,689 88 8, 888, 911, 912, 913, 888, 888, 888, 888, 888,690 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 900,691 888, 914, 915, 916, 917, 918, 919, 888, 920, 920,692 9 20, 920, 920, 920, 920, 920, 920, 920, 920, 920,693 9 20, 920, 920, 920, 920, 920, 920, 920, 920, 920,694 695 9 20, 920, 920, 920, 920, 920, 920, 920, 920, 920,696 9 20, 920, 920, 920, 920, 920, 920, 920, 920, 920,697 9 20, 920, 920, 920, 920, 920, 920, 920, 920, 920,698 9 20, 920, 920, 920, 920, 920, 920, 920, 920, 920,699 9 20, 920, 920, 920, 921, 922, 923, 924, 925, 926,700 927, 928, 888, 888, 929, 930, 931, 932, 933, 934,701 88 8, 888, 888, 888, 888, 935, 936, 937, 938, 888,702 88 8, 888, 888, 888, 888, 888, 372, 377, 888, 888,703 939, 940, 941, 888, 888, 888, 941, 888, 888, 888,704 942, 943, 944, 945, 946, 947, 948, 949, 950, 951,705 706 888, 952, 952, 952, 952, 952, 952, 952, 952, 952,707 95 2, 952, 952, 952, 952, 952, 952, 952, 952, 952,708 95 2, 952, 952, 952, 952, 952, 952, 952, 952, 952,709 95 2, 952, 952, 952, 952, 952, 952, 952, 952, 952,710 95 2, 952, 952, 952, 952, 952, 952, 952, 952, 952,711 95 2, 952, 952, 952, 952, 952, 952, 952, 952, 952,712 95 2, 952, 952, 952, 952, 952, 952, 952, 953, 954,713 955, 956, 957, 958, 959, 960, 961, 888, 962, 963,714 964, 965, 96 6, 966, 967, 968, 969, 970, 888, 489,715 888, 971, 888, 971, 888, 888, 888, 888, 888, 888,716 717 88 8, 888, 972, 973, 974, 975, 976, 977, 978, 979,718 980, 981, 982, 983, 984, 98 5, 985, 985, 985, 985,719 98 5, 985, 985, 985, 985, 985, 985, 985, 985, 985,720 98 5, 985, 985, 985, 985, 985, 985, 985, 985, 985,721 98 5, 985, 985, 985, 985, 985, 985, 985, 985, 985,722 98 5, 985, 985, 985, 985, 985, 985, 985, 985, 985,723 98 5, 985, 985, 985, 985, 985, 985, 985, 985, 985,724 98 5, 985, 985, 985, 985, 985, 985, 986, 987, 988,662 887, 1, 888, 888, 887, 5, 889, 889, 890, 890, 663 887, 887, 887, 887, 887, 887, 887, 891, 887, 887, 664 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 665 887, 31, 887, 887, 887, 887, 887, 887, 892, 891, 666 887, 887, 887, 887, 891, 887, 891, 891, 891, 891, 667 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 668 891, 891, 887, 887, 887, 887, 887, 893, 887, 887, 669 887, 894, 887, 887, 895, 887, 887, 896, 887, 887, 670 887, 887, 887, 887, 887, 891, 887, 887, 887, 887, 671 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 672 673 897, 887, 99, 30, 887, 887, 887, 887, 898, 30, 674 887, 31, 887, 887, 31, 887, 887, 887, 887, 887, 675 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 676 887, 887, 887, 887, 887, 887, 887, 887, 887, 899, 677 887, 887, 887, 887, 891, 900, 901, 887, 887, 891, 678 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 679 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 680 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 681 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 682 891, 891, 891, 891, 887, 887, 887, 893, 893, 893, 683 684 887, 893, 887, 894, 887, 902, 903, 895, 887, 887, 685 887, 887, 904, 905, 906, 896, 887, 887, 887, 887, 686 887, 887, 887, 887, 887, 887, 887, 887, 887, 907, 687 908, 887, 99, 887, 887, 887, 887, 99, 909, 887, 688 887, 104, 104, 887, 887, 887, 887, 887, 887, 887, 689 887, 910, 911, 912, 887, 887, 887, 887, 887, 887, 690 887, 887, 887, 887, 887, 887, 887, 887, 899, 887, 691 913, 914, 915, 916, 917, 918, 887, 919, 919, 919, 692 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 693 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 694 695 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 696 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 697 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 698 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 699 919, 919, 919, 920, 921, 922, 923, 924, 925, 926, 700 927, 887, 887, 928, 929, 930, 931, 932, 933, 887, 701 887, 887, 887, 887, 934, 935, 936, 937, 887, 887, 702 887, 887, 887, 887, 887, 371, 376, 887, 887, 938, 703 939, 940, 887, 887, 887, 940, 887, 887, 887, 941, 704 942, 943, 944, 945, 946, 947, 948, 949, 950, 887, 705 706 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 707 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 708 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 709 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 710 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 711 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 712 951, 951, 951, 951, 951, 951, 951, 952, 953, 954, 713 955, 956, 957, 958, 959, 960, 887, 961, 962, 963, 714 964, 965, 965, 966, 967, 968, 969, 887, 488, 887, 715 970, 887, 970, 887, 887, 887, 887, 887, 887, 887, 716 717 887, 971, 972, 973, 974, 975, 976, 977, 978, 979, 718 980, 981, 982, 983, 984, 984, 984, 984, 984, 984, 719 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, 720 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, 721 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, 722 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, 723 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, 724 984, 984, 984, 984, 984, 984, 985, 986, 987, 988, 725 725 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 726 999, 1000, 1001, 1002, 888, 888, 888, 888, 1003, 888,727 728 597, 888, 888, 888, 601, 888, 1004, 1005, 1006, 1007,729 1008, 1009, 1010, 1011, 1012, 1013, 1014, 101 5, 1014, 1014,730 101 4, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,731 101 4, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,732 101 4, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,733 101 4, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,734 101 4, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1016,735 888, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,736 1026, 888, 1027, 1028, 1029, 1030, 888, 687, 888, 888,737 888, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,738 739 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,740 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,741 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,742 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1040, 1041, 1042,743 1043, 1044, 1045, 888, 1046, 1031, 1033, 1047, 1048, 1038,744 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,745 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,746 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,747 10 39, 1049, 1050, 1043, 1051, 1044, 1052, 1045, 1053, 1054,748 10 47, 1055, 1048, 1039, 1039, 1039, 1039, 1039, 1039, 1039,749 750 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,751 103 9, 1039, 1056, 1049, 1057, 1050, 1058, 1051, 1059, 1052,752 10 60, 1053, 1061, 1054, 1055, 1039, 1039, 1039, 1039, 1039,753 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,754 10 39, 1062, 1056, 1057, 1058, 1059, 1033, 1060, 1061, 1039,755 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,756 10 39, 1062, 1033, 1039, 1039, 1039, 1039, 1039, 1039, 1039,757 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,758 103 9, 1039, 1039, 1039, 1039, 1039, 1039, 0, 888, 888,759 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,760 761 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,762 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,763 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,764 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,765 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,766 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,767 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,768 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,769 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,770 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,771 772 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,773 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,774 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,775 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,776 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,777 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,778 88 8, 888726 999, 1000, 1001, 887, 887, 887, 887, 1002, 887, 596, 727 728 887, 887, 887, 600, 887, 1003, 1004, 1005, 1006, 1007, 729 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1013, 1013, 1013, 730 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 731 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 732 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 733 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 734 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1015, 887, 735 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 736 887, 1026, 1027, 1028, 1029, 887, 686, 887, 887, 887, 737 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1038, 738 739 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 740 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 741 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 742 1038, 1038, 1038, 1038, 1038, 1038, 1039, 1040, 1041, 1042, 743 1043, 1044, 887, 1045, 1030, 1032, 1046, 1047, 1037, 1038, 744 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 745 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 746 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 747 1048, 1049, 1042, 1050, 1043, 1051, 1044, 1052, 1053, 1046, 748 1054, 1047, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 749 750 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 751 1038, 1055, 1048, 1056, 1049, 1057, 1050, 1058, 1051, 1059, 752 1052, 1060, 1053, 1054, 1038, 1038, 1038, 1038, 1038, 1038, 753 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 754 1061, 1055, 1056, 1057, 1058, 1032, 1059, 1060, 1038, 1038, 755 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 756 1061, 1032, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 757 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 758 1038, 1038, 1038, 1038, 1038, 1038, 0, 887, 887, 887, 759 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 760 761 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 762 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 763 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 764 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 765 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 766 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 767 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 768 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 769 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 770 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 771 772 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 773 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 774 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 775 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 776 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 777 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 778 887 779 779 } ; 780 780 781 static yyconst flex_int16_t yy_nxt[290 3] =781 static yyconst flex_int16_t yy_nxt[2908] = 782 782 { 0, 783 783 12, 13, 14, 15, 15, 15, 13, 16, 17, 12, … … 800 800 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 801 801 72, 72, 72, 72, 72, 71, 71, 71, 71, 76, 802 76, 79, 79, 1 17, 118, 90, 87, 79, 79, 628,802 76, 79, 79, 123, 124, 90, 141, 79, 79, 87, 803 803 76, 76, 80, 81, 82, 82, 82, 80, 82, 81, 804 804 805 83, 83, 83, 82, 91, 93, 124, 125, 147, 98,806 95, 99, 99, 99, 99, 99, 99, 87,87, 94,807 100, 85, 96, 97, 85, 101, 87, 119, 142, 77,808 77, 77, 77, 87, 148, 102, 103, 162, 104, 104,809 104, 104, 105, 105, 1 20, 144, 121, 122, 183, 143,810 14 5, 149, 87, 150, 160, 106, 161, 87, 196, 107,811 207, 151, 152, 153, 87, 108, 109, 154, 155, 163,812 15 6, 110, 87, 157, 158, 178, 164, 106, 87, 87,813 251, 159, 165, 111, 87, 253, 208, 87, 184, 87,814 194, 108, 146, 87, 109, 103, 87, 112, 112, 112,815 816 112, 112, 112, 87, 252, 181, 179, 231, 170, 197,817 171, 182, 166, 180, 106, 87, 167, 87, 113, 172,818 25 5, 168, 87, 87, 114, 169, 87, 173, 259, 195,819 115, 888, 264, 232, 265, 174, 106, 175, 189, 249,820 17 6, 257, 116, 318, 177, 250, 190, 258, 87, 144,821 114, 12 6, 260, 191, 145, 127, 128, 87, 129, 87,822 1 30, 131, 264, 132, 265, 133, 261, 192, 272, 185,823 18 6, 250, 87, 258, 134, 135, 136, 281, 264, 187,824 2 65, 283, 188, 198, 81, 82, 82, 82, 198, 87,825 264, 199, 265, 87, 273, 137, 146, 87, 138, 80,826 827 81, 82, 82, 82, 80, 284, 201, 202, 87, 287,828 193, 201, 82, 81, 82, 82, 82, 82, 82, 81,829 8 3, 83, 83, 82, 299, 139, 140, 203, 203, 203,830 203, 203, 203, 210, 211, 250, 87, 888, 210, 710,831 212, 243, 243, 243, 243, 212, 99, 99, 99, 99,832 99, 99, 258, 249, 213, 213, 213, 213, 264, 266,833 265, 250, 87, 267, 264, 212, 265, 888, 266, 888,834 2 57, 301, 256, 264, 244, 265, 87, 87, 258, 242,835 264, 214, 265, 87, 212, 264, 268, 265, 87, 212,836 212, 87, 279, 212, 212, 888, 264, 888, 265, 280,837 838 2 64, 212, 265, 310, 212, 286, 212, 215, 212, 144,839 21 6, 218, 87, 300, 145, 219, 220, 87, 435, 87,840 221, 222, 87, 223, 103, 224, 105, 105, 105, 105,841 105, 105, 315, 87, 225, 226, 227, 282, 304, 246,842 2 85, 246, 87, 106, 247, 247, 247, 247, 247, 247,843 87, 305, 87, 87, 87, 228, 87, 87, 229, 245,844 307, 87, 87, 302, 303, 106, 288, 289, 290, 306,845 291, 292, 87, 87, 293, 308, 294, 248, 311, 309,846 87, 295, 296, 297, 314, 298, 230, 234, 234, 234,847 234, 234, 234, 87, 87, 320, 87, 316, 312, 319,848 849 87, 87, 87, 235, 236, 237, 324, 238, 237, 144,850 87, 321, 317, 87, 347, 87, 313, 323, 322, 87,851 23 9, 87, 87, 466, 326, 237, 236, 237, 329, 325,852 238, 87, 237, 330, 327, 328, 332, 87, 338, 87,853 3 48, 335, 336, 87, 87, 87, 87, 361, 407, 362,854 3 31, 333, 334, 87, 87, 379, 339, 340, 342, 344,855 34 3, 361, 87, 362, 337, 341, 198, 81, 82, 82,856 82, 198, 201, 202, 199, 210, 211, 201, 201, 202,857 2 10, 379, 408, 201, 345, 202, 361, 87, 362, 345,858 361, 346, 362, 203, 203, 203, 203, 203, 203, 203,859 860 20 3, 203, 203, 203, 203, 203, 203, 203, 203, 203,861 203, 353, 353, 353, 353, 362, 362, 363, 361, 361,862 36 2, 362, 361, 364, 362, 361, 87, 362, 361, 361,863 362, 362, 361, 370, 362, 370, 370, 888, 87, 264,864 37 1, 265, 371, 406, 354, 372, 372, 372, 372, 372,865 372, 389, 374, 264, 374, 265, 370, 374, 370, 391,866 235, 236, 237, 570, 238, 237, 247, 247, 247, 247,867 247, 247, 376, 87, 374, 87, 374, 389, 373, 87,868 40 9, 374, 237, 236, 237, 392, 402, 238, 888, 237,869 105, 105, 105, 105, 105, 105, 246, 403, 246, 87,870 871 87, 2 47, 247, 247, 247, 247, 247, 106, 105, 105,872 105, 105, 105, 105, 382, 87, 405, 404, 87, 87,873 420, 87, 87, 256, 361, 87, 362, 87, 717, 106,874 377, 377, 377, 377, 377, 377, 421, 384, 410, 385,875 415, 256, 414, 386, 87, 87, 235, 416, 237, 387,876 2 38, 237, 112, 112, 112, 112, 112, 112, 87, 417,877 41 1, 388, 87, 378, 87, 385, 412, 413, 237, 386,878 237, 422, 87, 238, 87, 237, 87, 87, 418, 419,879 87, 426, 87, 87, 87, 261, 427, 428, 87, 87,880 424, 423, 425, 433, 434, 87, 87, 87, 87, 87,881 882 87, 43 0, 429, 438, 87, 431, 432, 437, 440, 442,883 87, 87, 439, 87, 436, 441, 443, 87, 444, 87,884 87, 87, 87, 87, 87, 87, 87, 87, 87, 446,885 448, 449, 87, 87, 87, 445, 450, 447, 452, 87,886 87, 451, 457, 87, 456, 453, 455, 454, 144, 87,887 45 8, 87, 463, 462, 87, 459, 460, 461, 87, 467,888 87, 345, 202, 202, 465, 501, 345, 464, 346, 200,889 3 61, 516, 362, 468, 212, 212, 212, 212, 353, 353,890 3 53, 353, 372, 372, 372, 372, 372, 372, 371, 502,891 371, 87, 87, 372, 372, 372, 372, 372, 372, 234,892 893 234, 234, 234, 234, 234, 87, 518, 478, 489, 489,894 4 89, 489, 489, 489, 243, 243, 243, 243, 105, 105,895 87, 517, 87, 757, 235, 496, 237, 533, 238, 237,896 4 93, 497, 375, 377, 377, 377, 377, 377, 377, 493,897 494, 490, 497, 87, 382, 87, 237, 376, 237, 495,898 87, 238, 87, 237, 520, 87, 493, 497, 87, 888,899 49 6, 521, 519, 888, 522, 493, 378, 384, 497, 385,900 87, 525, 87, 386, 523, 498, 536, 498, 87, 387,901 499, 499, 499, 499, 499, 499, 384, 524, 385, 87,902 87, 388, 386, 87, 527, 385, 87, 87, 503, 386,903 904 87, 87, 87, 528, 87, 526, 87, 538, 87, 87,905 38 8, 87, 540, 500, 385, 531, 529, 530, 386, 532,906 87, 534, 87, 537, 87, 541, 544, 539, 535, 87,907 543, 87, 542, 87, 87, 545, 87, 547, 87, 87,908 87, 87, 549, 87, 548, 87, 87, 546, 87, 550,909 87, 87, 87, 87, 553, 557, 551, 87, 555, 560,910 552, 556, 554, 87, 87, 558, 87, 87, 559, 87,911 87, 568, 561, 562, 564, 565, 569, 563, 87, 87,912 567, 566, 87, 87, 87, 202, 572, 87, 87, 87,913 575, 578, 571, 577, 493, 493, 573, 87, 627, 574,914 915 212, 212, 212, 212, 494, 576, 489, 489, 489, 489,916 489, 489, 377, 377, 377, 377, 377, 377, 87, 624,917 493, 493, 235, 596, 237, 596, 238, 237, 597, 597,918 597, 597, 597, 597, 600, 619, 87, 493, 87, 490,919 87, 626, 87, 634, 237, 491, 237, 599, 660, 238,920 87, 237, 499, 499, 499, 499, 499, 499, 87, 87,921 6 00, 598, 622, 493, 601, 601, 601, 601, 601, 601,922 629, 620, 637, 87, 621, 87, 87, 87, 642, 87,923 602, 498, 603, 498, 604, 603, 499, 499, 499, 499,924 499, 499, 623, 87, 631, 87, 87, 605, 632, 87,925 926 87, 87, 603, 87, 603, 633, 625, 604, 87, 603,927 63 0, 635, 636, 87, 87, 643, 87, 638, 87, 87,928 87, 87, 87, 641, 87, 639, 87, 644, 87, 87,929 64 0, 648, 87, 645, 646, 647, 87, 649, 651, 87,930 87, 650, 87, 87, 652, 654, 87, 653, 655, 87,931 87, 656, 87, 87, 665, 87, 658, 662, 657, 661,932 87, 87, 87, 659, 666, 664, 87, 87, 87, 87,933 87, 667, 888, 689, 663, 702, 735, 87, 703, 668,934 669, 489, 489, 489, 489, 489, 489, 597, 597, 597,935 597, 597, 597, 596, 705, 596, 689, 87, 597, 597,936 937 597, 597, 597, 597, 601, 601, 601, 601, 601, 601,938 704, 689, 689, 888, 595, 687, 687, 687, 687, 687,939 687, 690, 87, 690, 87, 87, 690, 700, 87, 87,940 87, 602, 707, 603, 689, 604, 603, 605, 708, 87,941 701, 711, 87, 690, 87, 690, 709, 706, 688, 87,942 690, 87, 87, 603, 719, 603, 87, 713, 604, 87,943 603, 712, 87, 87, 87, 87, 714, 87, 715, 718,944 87, 716, 722, 87, 720, 87, 721, 87, 87, 725,945 72 3, 87, 87, 87, 728, 87, 724, 87, 726, 727,946 7 32, 87, 733, 729, 87, 731, 734, 87, 737, 87,947 948 73 6, 863, 758, 888, 730, 687, 687, 687, 687, 687,949 68 7, 601, 601, 601, 601, 601, 601, 87, 751, 87,950 75 3, 602, 87, 603, 755, 604, 603, 752, 87, 754,951 87, 87, 87, 87, 87, 765, 760, 87, 688, 87,952 763, 762, 766, 603, 691, 603, 759, 761, 604, 87,953 603, 756, 768, 87, 764, 87, 769, 87, 767, 87,954 87, 87, 87, 87, 87, 771, 87, 87, 770, 772,955 87, 775, 87, 773, 87, 87, 87, 804, 87, 87,956 780, 87, 774, 781, 87, 87, 776, 777, 778, 796,957 7 97, 779, 687, 687, 687, 687, 687, 687, 795, 794,958 959 87, 87, 801, 87, 87, 87, 802, 87, 799, 87,960 798, 87, 805, 87, 806, 87, 87, 803, 800, 808,961 807, 87, 810, 87, 809, 744, 87, 87, 87, 87,962 87, 829, 87, 87, 834, 831, 832, 87, 811, 87,963 87, 87, 835, 87, 837, 87, 812, 828, 827, 87,964 87, 87, 830, 826, 838, 833, 87, 87, 839, 840,965 87, 8 41, 836, 851, 87, 87, 853, 852, 87, 87,966 87, 850, 856, 858, 87, 87, 87, 859, 87, 87,967 87, 865, 87, 854, 860, 857, 87, 861, 864, 855,968 87, 868, 867, 866, 87, 87, 87, 869, 870, 871,969 970 8 72, 87, 87, 87, 87, 874, 87, 876, 87, 877,971 87, 87, 87, 875, 87, 87, 873, 87, 87, 87,972 888, 881, 87, 888, 888, 862, 880, 882, 87,87,973 87 8, 879, 887, 87, 87, 87, 885, 883, 884, 888,974 88 8, 886, 69, 69, 69, 69, 69, 69, 69, 69,975 69, 69, 69, 69, 69, 75, 75, 75, 75, 75,976 75, 75, 75, 75, 75, 75, 75, 75, 7 8, 78,977 7 8, 78, 78, 78, 78, 78, 78, 78, 78, 78,978 78, 86, 849, 888, 86, 848, 86, 86, 86, 86,979 86, 141, 888, 846, 888, 141, 141, 141, 141, 141,980 981 14 1, 200, 200, 200, 200, 200, 200, 200, 200, 200,982 200, 200, 200, 200, 205, 845, 888, 205, 844, 205,983 205, 205, 205, 205, 209, 888, 209, 209, 843, 209,984 209, 209, 209, 209, 209, 87, 209, 217, 87, 87,985 217, 217, 217, 217, 217, 217, 217, 217, 888, 217,986 2 40, 240, 240, 240, 240, 240, 240, 240, 240, 240,987 2 40, 240, 240, 254, 254, 825, 254, 888, 824, 822,988 254, 270, 888, 820, 270, 888, 270, 270, 270, 270,989 270, 274, 818, 274, 888, 816, 814, 274, 276, 87,990 276, 87, 87, 87, 276, 349, 87, 349, 87, 87,991 992 87, 349, 351, 87, 351, 87, 87, 87, 351, 355,993 88 8, 355, 793, 791, 888, 355, 357, 888, 357, 788,994 786, 784, 357, 359, 87, 359, 87, 87, 87, 359,995 3 66, 87, 366, 87, 87, 750, 366, 368, 747, 368,996 746, 744, 206, 368, 240, 240, 240, 240, 240, 240,997 2 40, 240, 240, 240, 240, 240, 240, 381, 740, 381,998 383, 383, 739, 383, 383, 383, 671, 383, 254, 254,999 87, 254, 393, 87, 393, 87, 87, 87, 393, 395,1000 87, 395, 87, 87, 87, 395, 397, 87, 397, 87,1001 87, 87, 397, 274, 87, 274, 399, 87, 399, 698,1002 1003 697, 695, 399, 276, 693, 276, 86, 691, 599, 86,1004 686, 86, 86, 86, 86, 86, 200, 200, 200, 200,1005 200, 200, 200, 200, 200, 200, 200, 200, 200, 469,1006 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,1007 46 9, 469, 470, 685, 470, 683, 681, 679, 470, 472,1008 677, 472, 675, 673, 671, 472, 474, 87, 474, 87,1009 87, 87, 474, 349, 87, 349, 476, 87, 476, 87,1010 87, 87, 476, 351, 87, 351, 479, 87, 479, 618,1011 616, 614, 479, 355, 612, 355, 481, 610, 481, 608,1012 503, 606, 481, 357, 606, 357, 483, 595, 483, 594,1013 1014 592, 484, 483, 359, 484, 359, 485, 590, 485, 588,1015 586, 584, 485, 366, 582, 366, 487, 580, 487, 87,1016 87, 87, 487, 368, 87, 368, 492, 87, 492, 87,1017 492, 87, 492, 381, 87, 381, 515, 381, 513, 381,1018 38 3, 383, 511, 383, 383, 383, 509, 383, 504, 507,1019 504, 505, 491, 488, 504, 506, 486, 506, 362, 362,1020 484, 506, 508, 482, 508, 480, 477, 475, 508, 393,1021 473, 393, 510, 471, 510, 87, 87, 87, 510, 395,1022 401, 395, 512, 400, 512, 398, 396, 394, 512, 397,1023 271, 397, 514, 266, 514, 265, 390, 390, 514, 399,1024 1025 253, 399, 86, 380, 380, 86, 241, 86, 86, 86,1026 86, 86, 469, 469, 469, 469, 469, 469, 469, 469,1027 46 9, 469, 469, 469, 469, 579, 375, 579, 369, 367,1028 365, 579, 470, 361, 470, 581, 360, 581, 358, 356,1029 352, 581, 472, 350, 472, 583, 206, 583, 202, 87,1030 278, 583, 474, 277, 474, 585, 275, 585, 271, 266,1031 269, 585, 476, 266, 476, 587, 264, 587, 263, 262,1032 241, 587, 479, 233, 479, 589, 85, 589, 85, 87,1033 206, 589, 481, 204, 481, 483, 85, 483, 123, 87,1034 888, 483, 591, 70, 591, 70, 888, 888, 591, 485,1035 1036 88 8, 485, 593, 888, 593, 888, 888, 888, 593, 487,1037 88 8, 487, 492, 888, 492, 888, 492, 888, 492, 383,1038 88 8, 383, 888, 888, 888, 383, 607, 888, 607, 888,1039 888, 888, 607, 504, 888, 504, 609, 888, 609, 888,1040 888, 888, 609, 506, 888, 506, 611, 888, 611, 888,1041 888, 888, 611, 508, 888, 508, 613, 888, 613, 888,1042 888, 888, 613, 510, 888, 510, 615, 888, 615, 888,1043 888, 888, 615, 512, 888, 512, 617, 888, 617, 888,1044 888, 888, 617, 514, 888, 514, 86, 888, 888, 86,1045 888, 86, 86, 86, 86, 86, 670, 670, 670, 670,1046 1047 670, 670, 670, 670, 670, 670, 670, 670, 670, 672,1048 888, 672, 888, 888, 888, 672, 579, 888, 579, 674,1049 888, 674, 888, 888, 888, 674, 581, 888, 581, 676,1050 888, 676, 888, 888, 888, 676, 583, 888, 583, 678,1051 888, 678, 888, 888, 888, 678, 585, 888, 585, 680,1052 888, 680, 888, 888, 888, 680, 587, 888, 587, 682,1053 888, 682, 888, 888, 888, 682, 589, 888, 589, 684,1054 888, 684, 888, 888, 888, 684, 591, 888, 591, 86,1055 888, 86, 888, 888, 888, 86, 593, 888, 593, 492,1056 888, 492, 888, 888, 888, 492, 692, 888, 692, 888,1057 1058 888, 888, 692, 607, 888, 607, 694, 888, 694, 888,1059 888, 888, 694, 609, 888, 609, 696, 888, 696, 888,1060 888, 888, 696, 611, 888, 611, 141, 888, 141, 888,1061 888, 888, 141, 613, 888, 613, 699, 888, 699, 615,1062 888, 615, 86, 888, 888, 86, 888, 86, 86, 86,1063 86, 86, 617, 888, 617, 670, 670, 670, 670, 670,1064 6 70, 670, 670, 670, 670, 670, 670, 670, 738, 888,1065 738, 888, 888, 888, 738, 672, 888, 672, 205, 888,1066 205, 888, 888, 888, 205, 674, 888, 674, 741, 888,1067 741, 676, 888, 676, 205, 888, 888, 205, 888, 205,1068 1069 205, 205, 205, 205, 678, 888, 678, 742, 888, 742,1070 680, 888, 680, 682, 888, 682, 743, 888, 743, 684,1071 888, 684, 86, 888, 86, 745, 888, 745, 888, 888,1072 888, 745, 692, 888, 692, 270, 888, 270, 888, 888,1073 888, 270, 694, 888, 694, 748, 888, 748, 696, 888,1074 696, 141, 888, 141, 749, 888, 749, 888, 888, 888,1075 749, 86, 888, 888, 86, 888, 86, 86, 86, 86,1076 86, 782, 888, 782, 738, 888, 738, 205, 888, 205,1077 783, 888, 783, 888, 888, 888, 783, 785, 888, 785,1078 88 8, 888, 888, 785, 787, 888, 787, 888, 888, 888,1079 1080 787, 789, 888, 789, 790, 888, 790, 888, 888, 888,1081 790, 792, 888, 792, 888, 888, 888, 792, 813, 888,1082 8 13, 888, 888, 888, 813, 815, 888, 815, 888, 888,1083 8 88, 815, 817, 888, 817, 888, 888, 888, 817, 819,1084 88 8, 819, 888, 888, 888, 819, 821, 888, 821, 888,1085 8 88, 888, 821, 823, 888, 823, 888, 888, 888, 823,1086 617, 888, 617, 888, 888, 888, 617, 842, 888, 842,1087 88 8, 888, 888, 842, 678, 888, 678, 888, 888, 888,1088 678, 682, 888, 682, 888, 888, 888, 682, 86, 888,1089 86, 888, 888, 888, 86, 847, 888, 847, 888, 888,1090 1091 8 88, 847, 141, 888, 141, 888, 888, 888, 141, 205,1092 88 8, 205, 888, 888, 888, 205, 11, 888, 888, 888,1093 888, 888, 888, 888, 888, 888, 888, 888, 888, 888,1094 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,1095 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,1096 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,1097 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,1098 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,1099 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,1100 88 8, 888, 888, 888, 888, 888, 888, 888, 888, 888,1101 1102 88 8, 888805 83, 83, 83, 82, 91, 93, 87, 142, 146, 98, 806 95, 99, 99, 99, 99, 99, 99, 252, 887, 94, 807 100, 85, 96, 97, 85, 101, 161, 118, 143, 77, 808 77, 77, 77, 144, 147, 102, 103, 87, 104, 104, 809 104, 104, 105, 105, 119, 87, 120, 121, 148, 263, 810 149, 264, 254, 260, 183, 106, 195, 87, 159, 107, 811 160, 150, 151, 152, 87, 108, 109, 153, 154, 162, 812 155, 110, 87, 156, 157, 145, 163, 106, 87, 182, 813 87, 158, 164, 111, 206, 87, 263, 87, 264, 87, 814 87, 108, 194, 87, 109, 103, 250, 112, 112, 112, 815 816 112, 112, 112, 87, 169, 177, 170, 196, 193, 87, 817 207, 180, 165, 230, 106, 171, 166, 181, 113, 178, 818 251, 167, 87, 258, 114, 168, 179, 172, 87, 263, 819 115, 264, 248, 87, 87, 173, 106, 174, 249, 231, 820 175, 143, 116, 263, 176, 264, 144, 259, 317, 283, 821 114, 125, 280, 500, 249, 126, 127, 87, 128, 191, 822 129, 130, 256, 131, 249, 132, 87, 265, 257, 184, 823 185, 257, 248, 87, 133, 134, 135, 501, 188, 186, 824 249, 263, 187, 264, 271, 87, 189, 265, 145, 256, 825 305, 200, 201, 190, 257, 136, 200, 257, 137, 263, 826 827 887, 264, 192, 197, 81, 82, 82, 82, 197, 87, 828 272, 198, 202, 202, 202, 202, 202, 202, 80, 81, 829 82, 82, 82, 80, 87, 138, 139, 209, 210, 263, 830 887, 264, 209, 282, 211, 255, 263, 267, 264, 211, 831 82, 81, 82, 82, 82, 82, 87, 887, 212, 212, 832 212, 212, 82, 81, 83, 83, 83, 82, 887, 211, 833 99, 99, 99, 99, 99, 99, 242, 242, 242, 242, 834 266, 263, 263, 264, 264, 213, 143, 263, 211, 264, 835 87, 144, 375, 211, 211, 87, 87, 211, 211, 87, 836 87, 87, 286, 241, 887, 211, 87, 87, 211, 243, 837 838 211, 214, 211, 281, 215, 217, 278, 284, 285, 218, 839 219, 307, 298, 279, 220, 221, 87, 222, 87, 223, 840 87, 87, 887, 87, 309, 300, 87, 87, 224, 225, 841 226, 103, 303, 105, 105, 105, 105, 105, 105, 87, 842 299, 87, 301, 302, 87, 304, 308, 310, 87, 227, 843 106, 245, 228, 245, 306, 87, 246, 246, 246, 246, 844 246, 246, 87, 313, 87, 315, 244, 87, 87, 311, 845 314, 87, 106, 87, 87, 87, 323, 87, 87, 322, 846 229, 233, 233, 233, 233, 233, 233, 312, 333, 247, 847 319, 316, 328, 320, 318, 87, 87, 234, 235, 236, 848 849 321, 237, 236, 87, 324, 87, 325, 143, 335, 360, 850 331, 361, 87, 87, 238, 337, 326, 327, 87, 236, 851 235, 236, 87, 329, 237, 332, 236, 287, 288, 289, 852 336, 290, 291, 334, 87, 292, 87, 293, 407, 360, 853 330, 361, 294, 295, 296, 87, 297, 339, 360, 343, 854 361, 87, 200, 201, 338, 340, 346, 200, 341, 87, 855 342, 197, 81, 82, 82, 82, 197, 200, 201, 198, 856 378, 361, 200, 202, 202, 202, 202, 202, 202, 344, 857 201, 360, 347, 361, 344, 360, 345, 361, 202, 202, 858 202, 202, 202, 202, 209, 210, 378, 143, 361, 209, 859 860 202, 202, 202, 202, 202, 202, 352, 352, 352, 352, 861 360, 87, 361, 362, 360, 360, 361, 361, 360, 363, 862 361, 360, 360, 361, 361, 369, 369, 370, 369, 370, 863 435, 87, 371, 371, 371, 371, 371, 371, 373, 353, 864 373, 87, 263, 373, 264, 263, 87, 264, 369, 402, 865 87, 369, 234, 235, 236, 406, 237, 236, 388, 401, 866 373, 87, 373, 87, 87, 372, 390, 373, 105, 105, 867 105, 105, 105, 105, 236, 235, 236, 404, 87, 237, 868 405, 236, 403, 408, 388, 106, 246, 246, 246, 246, 869 246, 246, 391, 87, 87, 87, 87, 87, 87, 419, 870 871 87, 255, 425, 432, 87, 420, 434, 106, 376, 376, 872 376, 376, 376, 376, 381, 409, 413, 105, 105, 105, 873 105, 105, 105, 87, 234, 245, 236, 245, 237, 236, 874 246, 246, 246, 246, 246, 246, 87, 383, 410, 384, 875 87, 377, 87, 385, 411, 412, 236, 87, 236, 386, 876 255, 237, 87, 236, 112, 112, 112, 112, 112, 112, 877 414, 387, 415, 417, 418, 384, 87, 416, 87, 385, 878 87, 87, 87, 87, 87, 87, 87, 87, 87, 421, 879 427, 426, 433, 87, 437, 87, 87, 260, 423, 424, 880 87, 87, 436, 429, 428, 422, 87, 430, 431, 439, 881 882 87, 438, 87, 87, 446, 441, 440, 442, 443, 87, 883 87, 87, 87, 87, 87, 445, 87, 87, 87, 87, 884 87, 448, 447, 87, 87, 444, 449, 451, 87, 456, 885 87, 450, 87, 87, 87, 452, 455, 454, 87, 453, 886 457, 462, 460, 461, 87, 87, 458, 464, 87, 515, 887 459, 463, 465, 466, 344, 201, 201, 87, 887, 344, 888 467, 345, 199, 211, 211, 211, 211, 352, 352, 352, 889 352, 360, 360, 361, 361, 371, 371, 371, 371, 371, 890 371, 370, 569, 370, 492, 492, 371, 371, 371, 371, 891 371, 371, 887, 87, 493, 494, 477, 488, 488, 488, 892 893 488, 488, 488, 233, 233, 233, 233, 233, 233, 516, 894 492, 492, 87, 234, 87, 236, 87, 237, 236, 242, 895 242, 242, 242, 105, 105, 495, 381, 517, 87, 87, 896 489, 496, 87, 518, 87, 236, 374, 236, 519, 520, 897 237, 521, 236, 376, 376, 376, 376, 376, 376, 383, 898 87, 384, 375, 496, 87, 385, 522, 496, 497, 887, 899 497, 386, 87, 498, 498, 498, 498, 498, 498, 87, 900 525, 495, 526, 387, 87, 524, 377, 384, 523, 496, 901 87, 385, 383, 87, 384, 87, 87, 527, 385, 87, 902 87, 532, 87, 87, 502, 87, 499, 87, 535, 528, 903 904 529, 537, 530, 531, 533, 87, 387, 87, 87, 541, 905 384, 534, 538, 87, 385, 87, 536, 87, 87, 87, 906 539, 540, 87, 87, 546, 87, 87, 87, 544, 542, 907 87, 548, 87, 87, 547, 543, 87, 87, 549, 87, 908 545, 87, 552, 87, 87, 550, 556, 554, 551, 87, 909 559, 87, 553, 555, 87, 87, 557, 87, 87, 558, 910 87, 87, 87, 564, 560, 567, 563, 568, 87, 561, 911 566, 562, 87, 565, 87, 87, 571, 87, 87, 573, 912 627, 201, 492, 570, 576, 574, 572, 577, 211, 211, 913 211, 211, 493, 87, 575, 488, 488, 488, 488, 488, 914 915 488, 376, 376, 376, 376, 376, 376, 87, 492, 87, 916 618, 234, 595, 236, 595, 237, 236, 596, 596, 596, 917 596, 596, 596, 492, 87, 599, 492, 621, 489, 87, 918 87, 623, 87, 236, 490, 236, 598, 619, 237, 87, 919 236, 498, 498, 498, 498, 498, 498, 620, 87, 492, 920 597, 599, 492, 600, 600, 600, 600, 600, 600, 87, 921 631, 622, 87, 887, 625, 887, 87, 862, 87, 601, 922 497, 602, 497, 603, 602, 498, 498, 498, 498, 498, 923 498, 624, 628, 87, 87, 630, 604, 87, 87, 87, 924 87, 602, 633, 602, 626, 636, 603, 632, 602, 629, 925 926 634, 87, 87, 635, 87, 87, 87, 642, 87, 87, 927 637, 641, 87, 87, 640, 87, 87, 643, 647, 639, 928 87, 87, 887, 87, 87, 87, 638, 87, 87, 644, 929 645, 646, 648, 650, 87, 87, 87, 649, 87, 653, 930 651, 87, 652, 87, 654, 655, 87, 87, 87, 87, 931 656, 657, 87, 660, 659, 661, 664, 87, 658, 87, 932 87, 663, 87, 87, 87, 668, 665, 688, 688, 662, 933 666, 701, 702, 887, 887, 87, 667, 488, 488, 488, 934 488, 488, 488, 596, 596, 596, 596, 596, 596, 595, 935 688, 595, 704, 87, 596, 596, 596, 596, 596, 596, 936 937 600, 600, 600, 600, 600, 600, 703, 688, 87, 887, 938 594, 686, 686, 686, 686, 686, 686, 689, 87, 689, 939 87, 87, 689, 699, 87, 708, 87, 601, 706, 602, 940 688, 603, 602, 604, 707, 87, 700, 710, 709, 689, 941 87, 689, 87, 705, 687, 87, 689, 87, 87, 602, 942 87, 602, 87, 716, 603, 718, 602, 712, 87, 87, 943 87, 87, 711, 87, 714, 87, 87, 713, 87, 717, 944 715, 87, 721, 719, 87, 724, 87, 87, 722, 720, 945 727, 87, 87, 87, 725, 87, 731, 723, 87, 732, 946 726, 87, 87, 861, 728, 734, 87, 733, 730, 87, 947 948 735, 87, 87, 729, 87, 87, 751, 736, 686, 686, 949 686, 686, 686, 686, 600, 600, 600, 600, 600, 600, 950 750, 87, 755, 87, 601, 763, 602, 752, 603, 602, 951 753, 87, 87, 764, 87, 756, 754, 757, 87, 758, 952 87, 687, 87, 87, 759, 767, 602, 690, 602, 761, 953 87, 603, 766, 602, 87, 760, 87, 762, 87, 765, 954 87, 768, 87, 769, 87, 87, 87, 87, 770, 87, 955 87, 87, 87, 87, 771, 87, 774, 87, 772, 87, 956 87, 779, 87, 87, 795, 87, 780, 773, 87, 87, 957 776, 87, 775, 803, 777, 796, 778, 686, 686, 686, 958 959 686, 686, 686, 793, 87, 794, 799, 87, 798, 87, 960 801, 87, 87, 87, 797, 804, 805, 800, 806, 87, 961 87, 87, 802, 807, 87, 87, 87, 808, 87, 87, 962 743, 87, 87, 87, 809, 828, 87, 87, 87, 830, 963 831, 833, 87, 87, 87, 834, 87, 836, 810, 811, 964 826, 827, 87, 829, 87, 825, 832, 837, 87, 87, 965 87, 838, 839, 87, 87, 835, 87, 87, 87, 851, 966 850, 855, 87, 852, 840, 87, 87, 87, 853, 857, 967 849, 87, 87, 87, 854, 858, 859, 87, 87, 856, 968 860, 87, 863, 864, 865, 87, 87, 866, 87, 868, 969 970 867, 869, 87, 87, 87, 870, 87, 87, 87, 873, 971 87, 875, 87, 876, 87, 87, 87, 874, 87, 872, 972 87, 87, 87, 871, 87, 880, 87, 87, 87, 887, 973 879, 881, 887, 848, 877, 878, 886, 887, 847, 884, 974 887, 845, 882, 883, 887, 844, 885, 69, 69, 69, 975 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 976 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 977 75, 75, 75, 78, 78, 78, 78, 78, 78, 78, 978 78, 78, 78, 78, 78, 78, 86, 887, 843, 86, 979 887, 86, 86, 86, 86, 86, 140, 842, 87, 87, 980 981 140, 140, 140, 140, 140, 140, 199, 199, 199, 199, 982 199, 199, 199, 199, 199, 199, 199, 199, 199, 204, 983 87, 887, 204, 824, 204, 204, 204, 204, 204, 208, 984 887, 208, 208, 823, 208, 208, 208, 208, 208, 208, 985 821, 208, 216, 887, 819, 216, 216, 216, 216, 216, 986 216, 216, 216, 887, 216, 239, 239, 239, 239, 239, 987 239, 239, 239, 239, 239, 239, 239, 239, 253, 253, 988 817, 253, 887, 815, 813, 253, 269, 87, 87, 269, 989 87, 269, 269, 269, 269, 269, 273, 87, 273, 87, 990 87, 87, 273, 275, 87, 275, 87, 87, 87, 275, 991 992 348, 87, 348, 887, 792, 790, 348, 350, 887, 350, 993 887, 787, 785, 350, 354, 783, 354, 87, 87, 87, 994 354, 356, 87, 356, 87, 87, 87, 356, 358, 749, 995 358, 746, 745, 743, 358, 365, 205, 365, 739, 738, 996 670, 365, 367, 87, 367, 87, 87, 87, 367, 239, 997 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 998 239, 239, 380, 87, 380, 382, 382, 87, 382, 382, 999 382, 87, 382, 253, 253, 87, 253, 392, 87, 392, 1000 87, 87, 87, 392, 394, 87, 394, 87, 87, 697, 1001 394, 396, 696, 396, 694, 692, 690, 396, 273, 598, 1002 1003 273, 398, 685, 398, 684, 682, 680, 398, 275, 678, 1004 275, 86, 676, 674, 86, 672, 86, 86, 86, 86, 1005 86, 199, 199, 199, 199, 199, 199, 199, 199, 199, 1006 199, 199, 199, 199, 468, 468, 468, 468, 468, 468, 1007 468, 468, 468, 468, 468, 468, 468, 469, 670, 469, 1008 87, 87, 87, 469, 471, 87, 471, 87, 87, 87, 1009 471, 473, 87, 473, 87, 87, 87, 473, 348, 617, 1010 348, 475, 615, 475, 613, 611, 609, 475, 350, 607, 1011 350, 478, 502, 478, 605, 605, 594, 478, 354, 593, 1012 354, 480, 591, 480, 483, 483, 589, 480, 356, 587, 1013 1014 356, 482, 585, 482, 583, 581, 579, 482, 358, 87, 1015 358, 484, 87, 484, 87, 87, 87, 484, 365, 87, 1016 365, 486, 87, 486, 87, 514, 512, 486, 367, 510, 1017 367, 491, 508, 491, 506, 491, 504, 491, 380, 490, 1018 380, 487, 380, 485, 380, 382, 382, 361, 382, 382, 1019 382, 361, 382, 503, 483, 503, 481, 479, 476, 503, 1020 505, 474, 505, 472, 470, 87, 505, 507, 87, 507, 1021 87, 400, 399, 507, 392, 397, 392, 509, 395, 509, 1022 393, 270, 265, 509, 394, 264, 394, 511, 389, 511, 1023 389, 252, 379, 511, 396, 379, 396, 513, 240, 513, 1024 1025 374, 368, 366, 513, 398, 364, 398, 86, 360, 359, 1026 86, 357, 86, 86, 86, 86, 86, 468, 468, 468, 1027 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 1028 578, 355, 578, 351, 349, 205, 578, 469, 201, 469, 1029 580, 87, 580, 277, 276, 274, 580, 471, 270, 471, 1030 582, 265, 582, 268, 265, 263, 582, 473, 262, 473, 1031 584, 261, 584, 240, 232, 85, 584, 475, 85, 475, 1032 586, 87, 586, 205, 203, 85, 586, 478, 122, 478, 1033 588, 117, 588, 87, 887, 70, 588, 480, 70, 480, 1034 482, 887, 482, 887, 887, 887, 482, 590, 887, 590, 1035 1036 887, 887, 887, 590, 484, 887, 484, 592, 887, 592, 1037 887, 887, 887, 592, 486, 887, 486, 491, 887, 491, 1038 887, 491, 887, 491, 382, 887, 382, 887, 887, 887, 1039 382, 606, 887, 606, 887, 887, 887, 606, 503, 887, 1040 503, 608, 887, 608, 887, 887, 887, 608, 505, 887, 1041 505, 610, 887, 610, 887, 887, 887, 610, 507, 887, 1042 507, 612, 887, 612, 887, 887, 887, 612, 509, 887, 1043 509, 614, 887, 614, 887, 887, 887, 614, 511, 887, 1044 511, 616, 887, 616, 887, 887, 887, 616, 513, 887, 1045 513, 86, 887, 887, 86, 887, 86, 86, 86, 86, 1046 1047 86, 669, 669, 669, 669, 669, 669, 669, 669, 669, 1048 669, 669, 669, 669, 671, 887, 671, 887, 887, 887, 1049 671, 578, 887, 578, 673, 887, 673, 887, 887, 887, 1050 673, 580, 887, 580, 675, 887, 675, 887, 887, 887, 1051 675, 582, 887, 582, 677, 887, 677, 887, 887, 887, 1052 677, 584, 887, 584, 679, 887, 679, 887, 887, 887, 1053 679, 586, 887, 586, 681, 887, 681, 887, 887, 887, 1054 681, 588, 887, 588, 683, 887, 683, 887, 887, 887, 1055 683, 590, 887, 590, 86, 887, 86, 887, 887, 887, 1056 86, 592, 887, 592, 491, 887, 491, 887, 887, 887, 1057 1058 491, 691, 887, 691, 887, 887, 887, 691, 606, 887, 1059 606, 693, 887, 693, 887, 887, 887, 693, 608, 887, 1060 608, 695, 887, 695, 887, 887, 887, 695, 610, 887, 1061 610, 140, 887, 140, 887, 887, 887, 140, 612, 887, 1062 612, 698, 887, 698, 614, 887, 614, 86, 887, 887, 1063 86, 887, 86, 86, 86, 86, 86, 616, 887, 616, 1064 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 1065 669, 669, 669, 737, 887, 737, 887, 887, 887, 737, 1066 671, 887, 671, 204, 887, 204, 887, 887, 887, 204, 1067 673, 887, 673, 740, 887, 740, 675, 887, 675, 204, 1068 1069 887, 887, 204, 887, 204, 204, 204, 204, 204, 677, 1070 887, 677, 741, 887, 741, 679, 887, 679, 681, 887, 1071 681, 742, 887, 742, 683, 887, 683, 86, 887, 86, 1072 744, 887, 744, 887, 887, 887, 744, 691, 887, 691, 1073 269, 887, 269, 887, 887, 887, 269, 693, 887, 693, 1074 747, 887, 747, 695, 887, 695, 140, 887, 140, 748, 1075 887, 748, 887, 887, 887, 748, 86, 887, 887, 86, 1076 887, 86, 86, 86, 86, 86, 781, 887, 781, 737, 1077 887, 737, 204, 887, 204, 782, 887, 782, 887, 887, 1078 887, 782, 784, 887, 784, 887, 887, 887, 784, 786, 1079 1080 887, 786, 887, 887, 887, 786, 788, 887, 788, 789, 1081 887, 789, 887, 887, 887, 789, 791, 887, 791, 887, 1082 887, 887, 791, 812, 887, 812, 887, 887, 887, 812, 1083 814, 887, 814, 887, 887, 887, 814, 816, 887, 816, 1084 887, 887, 887, 816, 818, 887, 818, 887, 887, 887, 1085 818, 820, 887, 820, 887, 887, 887, 820, 822, 887, 1086 822, 887, 887, 887, 822, 616, 887, 616, 887, 887, 1087 887, 616, 841, 887, 841, 887, 887, 887, 841, 677, 1088 887, 677, 887, 887, 887, 677, 681, 887, 681, 887, 1089 887, 887, 681, 86, 887, 86, 887, 887, 887, 86, 1090 1091 846, 887, 846, 887, 887, 887, 846, 140, 887, 140, 1092 887, 887, 887, 140, 204, 887, 204, 887, 887, 887, 1093 204, 11, 887, 887, 887, 887, 887, 887, 887, 887, 1094 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1095 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1096 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1097 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1098 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1099 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1100 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1101 1102 887, 887, 887, 887, 887, 887, 887 1103 1103 } ; 1104 1104 1105 static yyconst flex_int16_t yy_chk[290 3] =1105 static yyconst flex_int16_t yy_chk[2908] = 1106 1106 { 0, 1107 1107 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, … … 1124 1124 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1125 1125 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 1126 8, 9, 10, 3 3, 33, 20, 526, 9, 10, 526,1126 8, 9, 10, 37, 37, 20, 39, 9, 10, 886, 1127 1127 7, 8, 13, 13, 13, 13, 13, 13, 15, 15, 1128 1128 1129 15, 15, 15, 15, 20, 25, 37, 37, 42, 28, 1130 27, 28, 28, 28, 28, 28, 28, 48, 887, 25, 1131 29, 25, 27, 27, 27, 29, 56, 35, 39, 7, 1132 8, 9, 10, 47, 42, 29, 30, 48, 30, 30, 1133 30, 30, 30, 30, 35, 40, 35, 35, 56, 39, 1134 40, 44, 886, 44, 47, 30, 47, 53, 64, 30, 1135 73, 45, 45, 45, 49, 30, 30, 45, 45, 49, 1136 45, 30, 61, 45, 45, 53, 49, 30, 45, 57, 1137 108, 45, 49, 30, 878, 109, 73, 55, 57, 40, 1138 61, 30, 40, 51, 30, 31, 54, 31, 31, 31, 1139 1140 31, 31, 31, 50, 108, 55, 54, 87, 51, 64, 1141 51, 55, 50, 54, 31, 877, 50, 62, 31, 51, 1142 109, 50, 52, 176, 31, 50, 59, 52, 114, 62, 1143 31, 115, 127, 87, 127, 52, 31, 52, 59, 107, 1144 52, 113, 31, 176, 52, 107, 59, 113, 874, 60, 1145 31, 38, 114, 59, 60, 38, 38, 58, 38, 152, 1146 38, 38, 128, 38, 128, 38, 115, 60, 143, 58, 1147 58, 107, 154, 113, 38, 38, 38, 152, 130, 58, 1148 130, 154, 58, 67, 67, 67, 67, 67, 67, 155, 1149 133, 67, 133, 60, 143, 38, 60, 158, 38, 80, 1150 1151 80, 80, 80, 80, 80, 155, 68, 68, 160, 158, 1152 60, 68, 82, 82, 82, 82, 82, 82, 83, 83, 1153 83, 83, 83, 83, 160, 38, 38, 68, 68, 68, 1154 68, 68, 68, 77, 77, 111, 628, 110, 77, 628, 1155 77, 104, 104, 104, 104, 77, 103, 103, 103, 103, 1156 103, 103, 116, 111, 77, 77, 77, 77, 135, 131, 1157 135, 111, 162, 134, 134, 77, 134, 110, 132, 104, 1158 116, 162, 110, 131, 104, 131, 169, 151, 116, 103, 1159 132, 77, 132, 157, 77, 136, 136, 136, 873, 77, 1160 77, 161, 151, 77, 77, 110, 138, 104, 138, 151, 1161 1162 140, 77, 140, 169, 77, 157, 77, 77, 77, 146, 1163 77, 85, 309, 161, 146, 85, 85, 173, 309, 153, 1164 85, 85, 156, 85, 105, 85, 105, 105, 105, 105, 1165 105, 105, 173, 164, 85, 85, 85, 153, 164, 106, 1166 156, 106, 163, 105, 106, 106, 106, 106, 106, 106, 1167 166, 164, 165, 146, 167, 85, 168, 170, 85, 105, 1168 166, 159, 172, 163, 163, 105, 159, 159, 159, 165, 1169 159, 159, 177, 178, 159, 167, 159, 106, 170, 168, 1170 174, 159, 159, 159, 172, 159, 85, 99, 99, 99, 1171 99, 99, 99, 171, 175, 178, 180, 174, 171, 177, 1172 1173 181, 182, 183, 99, 99, 99, 182, 99, 99, 192, 1174 185, 180, 175, 184, 206, 342, 171, 181, 180, 191, 1175 99, 189, 186, 342, 184, 99, 99, 99, 185, 183, 1176 99, 187, 99, 186, 184, 184, 187, 190, 191, 188, 1177 206, 189, 190, 284, 193, 194, 195, 219, 284, 219, 1178 186, 187, 188, 192, 871, 249, 192, 193, 194, 195, 1179 194, 220, 285, 220, 190, 193, 198, 198, 198, 198, 1180 198, 198, 199, 199, 198, 210, 210, 199, 201, 201, 1181 210, 249, 285, 201, 203, 203, 221, 870, 221, 203, 1182 224, 203, 224, 199, 199, 199, 199, 199, 199, 201, 1183 1184 201, 201, 201, 201, 201, 203, 203, 203, 203, 203, 1185 203, 213, 213, 213, 213, 222, 223, 225, 225, 226, 1186 225, 226, 227, 227, 227, 229, 283, 229, 223, 222, 1187 223, 222, 230, 237, 230, 235, 235, 244, 461, 267, 1188 236, 267, 236, 283, 213, 236, 236, 236, 236, 236, 1189 236, 257, 238, 268, 238, 268, 237, 238, 235, 271, 1190 242, 242, 242, 461, 242, 242, 246, 246, 246, 246, 1191 246, 246, 244, 279, 238, 286, 238, 257, 236, 280, 1192 286, 238, 242, 242, 242, 271, 279, 242, 863, 242, 1193 245, 245, 245, 245, 245, 245, 248, 280, 248, 281, 1194 1195 282, 248, 248, 248, 248, 248, 248, 245, 256, 256, 1196 256, 256, 256, 256, 254, 294, 282, 281, 287, 289, 1197 294, 291, 290, 245, 363, 635, 363, 295, 635, 245, 1198 247, 247, 247, 247, 247, 247, 295, 254, 287, 254, 1199 290, 256, 289, 254, 292, 288, 247, 291, 247, 254, 1200 247, 247, 261, 261, 261, 261, 261, 261, 296, 292, 1201 288, 254, 293, 247, 297, 254, 288, 288, 247, 254, 1202 247, 296, 298, 247, 300, 247, 301, 302, 293, 293, 1203 303, 301, 304, 305, 306, 261, 302, 303, 307, 308, 1204 298, 297, 300, 307, 308, 310, 313, 312, 311, 314, 1205 1206 315, 305, 304, 312, 316, 306, 306, 311, 314, 316, 1207 319, 317, 313, 318, 310, 315, 317, 321, 318, 320, 1208 323, 324, 325, 327, 328, 326, 329, 330, 332, 319, 1209 321, 323, 333, 331, 334, 318, 324, 320, 326, 335, 1210 336, 325, 331, 338, 330, 327, 329, 328, 339, 340, 1211 332, 341, 338, 336, 343, 333, 334, 335, 344, 343, 1212 402, 345, 345, 346, 341, 386, 345, 340, 345, 346, 1213 364, 402, 364, 344, 353, 353, 353, 353, 354, 354, 1214 354, 354, 371, 371, 371, 371, 371, 371, 373, 386, 1215 373, 404, 339, 373, 373, 373, 373, 373, 373, 375, 1216 1217 375, 375, 375, 375, 375, 403, 404, 353, 372, 372, 1218 372, 372, 372, 372, 376, 376, 376, 376, 376, 376, 1219 707, 403, 418, 707, 372, 384, 372, 418, 372, 372, 1220 381, 384, 375, 377, 377, 377, 377, 377, 377, 382, 1221 381, 372, 388, 405, 383, 406, 372, 376, 372, 382, 1222 407, 372, 409, 372, 406, 408, 381, 384, 411, 862, 1223 388, 407, 405, 387, 408, 382, 377, 383, 388, 383, 1224 420, 411, 413, 383, 409, 385, 420, 385, 410, 383, 1225 385, 385, 385, 385, 385, 385, 387, 410, 387, 412, 1226 414, 383, 387, 416, 413, 383, 422, 424, 387, 383, 1227 1228 415, 417, 421, 414, 431, 412, 419, 422, 423, 430, 1229 387, 426, 424, 385, 387, 416, 415, 415, 387, 417, 1230 428, 419, 432, 421, 433, 426, 431, 423, 419, 435, 1231 430, 434, 428, 436, 438, 432, 440, 434, 441, 442, 1232 443, 445, 436, 444, 435, 450, 446, 433, 448, 438, 1233 451, 452, 455, 453, 442, 446, 440, 454, 444, 451, 1234 441, 445, 443, 457, 459, 448, 456, 458, 450, 460, 1235 462, 459, 452, 453, 455, 456, 460, 454, 463, 465, 1236 458, 457, 464, 467, 468, 469, 463, 525, 861, 860, 1237 465, 469, 462, 468, 492, 495, 463, 522, 525, 464, 1238 1239 478, 478, 478, 478, 492, 467, 489, 489, 489, 489, 1240 489, 489, 491, 491, 491, 491, 491, 491, 516, 522, 1241 492, 495, 489, 493, 489, 493, 489, 489, 493, 493, 1242 493, 493, 493, 493, 496, 516, 524, 494, 532, 489, 1243 565, 524, 520, 532, 489, 491, 489, 494, 565, 489, 1244 527, 489, 498, 498, 498, 498, 498, 498, 517, 519, 1245 496, 493, 520, 494, 499, 499, 499, 499, 499, 499, 1246 527, 517, 535, 540, 519, 529, 856, 530, 540, 521, 1247 499, 500, 499, 500, 499, 499, 500, 500, 500, 500, 1248 500, 500, 521, 523, 529, 528, 531, 499, 530, 534, 1249 1250 533, 535, 499, 537, 499, 531, 523, 499, 536, 499, 1251 528, 533, 534, 538, 539, 542, 545, 536, 543, 546, 1252 547, 542, 548, 539, 551, 537, 552, 543, 550, 553, 1253 538, 548, 555, 545, 546, 547, 561, 550, 552, 558, 1254 556, 551, 559, 562, 553, 556, 563, 555, 558, 566, 1255 567, 559, 568, 569, 570, 572, 562, 567, 561, 566, 1256 570, 573, 575, 563, 572, 569, 666, 576, 620, 621, 1257 852, 573, 849, 603, 568, 620, 666, 623, 621, 575, 1258 576, 595, 595, 595, 595, 595, 595, 596, 596, 596, 1259 596, 596, 596, 598, 623, 598, 603, 622, 598, 598, 1260 1261 598, 598, 598, 598, 601, 601, 601, 601, 601, 601, 1262 622, 602, 602, 848, 595, 597, 597, 597, 597, 597, 1263 597, 604, 619, 604, 624, 625, 604, 619, 629, 627, 1264 626, 597, 625, 597, 602, 597, 597, 601, 626, 630, 1265 619, 629, 631, 604, 632, 604, 627, 624, 597, 634, 1266 604, 633, 636, 597, 637, 597, 639, 631, 597, 638, 1267 597, 630, 641, 640, 642, 645, 632, 646, 633, 636, 1268 643, 634, 640, 651, 638, 647, 639, 652, 654, 643, 1269 641, 657, 637, 669, 647, 658, 642, 665, 645, 646, 1270 657, 668, 658, 651, 703, 654, 665, 700, 669, 708, 1271 1272 668, 847, 708, 846, 652, 687, 687, 687, 687, 687, 1273 687, 691, 691, 691, 691, 691, 691, 701, 700, 705, 1274 703, 687, 704, 687, 705, 687, 687, 701, 709, 704, 1275 711, 706, 713, 715, 712, 716, 711, 714, 687, 717, 1276 714, 713, 717, 687, 691, 687, 709, 712, 687, 718, 1277 687, 706, 719, 720, 715, 721, 720, 722, 718, 723, 1278 724, 725, 726, 729, 716, 722, 733, 732, 721, 723, 1279 734, 726, 736, 724, 737, 758, 762, 765, 719, 755, 1280 736, 756, 725, 737, 757, 760, 729, 732, 733, 757, 1281 758, 734, 744, 744, 744, 744, 744, 744, 756, 755, 1282 1283 759, 761, 762, 763, 764, 765, 763, 773, 760, 767, 1284 759, 769, 767, 770, 769, 774, 771, 764, 761, 771, 1285 770, 772, 773, 779, 772, 744, 794, 796, 798, 797, 1286 799, 798, 800, 801, 804, 800, 801, 803, 774, 805, 1287 807, 808, 805, 811, 808, 812, 779, 797, 796, 810, 1288 827, 809, 799, 794, 809, 803, 828, 830, 810, 811, 1289 804, 812, 807, 828, 829, 831, 830, 829, 833, 832, 1290 836, 827, 832, 836, 839, 840, 851, 839, 841, 850, 1291 864, 851, 854, 831, 840, 833, 855, 841, 850, 831, 1292 853, 855, 854, 853, 857, 858, 859, 857, 858, 859, 1293 1294 864, 865, 866, 867, 868, 866, 869, 868, 872, 869, 1295 875, 876, 879, 867, 880, 881, 865, 882, 883, 884, 1296 845, 879, 885, 844, 843, 842, 876, 880, 838, 837, 1297 872, 875, 885, 835, 834, 826, 883, 881, 882, 825, 1298 824, 884, 889, 889, 889, 889, 889, 889, 889, 889, 1299 889, 889, 889, 889, 889, 890, 890, 890, 890, 890, 1300 890, 890, 890, 890, 890, 890, 890, 890, 891, 891, 1301 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 1302 891, 892, 823, 822, 892, 821, 892, 892, 892, 892, 1303 892, 893, 820, 819, 818, 893, 893, 893, 893, 893, 1304 1305 893, 894, 894, 894, 894, 894, 894, 894, 894, 894, 1306 894, 894, 894, 894, 895, 817, 816, 895, 815, 895, 1307 895, 895, 895, 895, 896, 814, 896, 896, 813, 896, 1308 896, 896, 896, 896, 896, 806, 896, 897, 802, 795, 1309 897, 897, 897, 897, 897, 897, 897, 897, 793, 897, 1310 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, 1311 898, 898, 898, 899, 899, 792, 899, 791, 790, 789, 1312 899, 900, 788, 787, 900, 786, 900, 900, 900, 900, 1313 900, 901, 785, 901, 784, 783, 782, 901, 902, 781, 1314 902, 780, 778, 777, 902, 903, 776, 903, 775, 768, 1315 1316 766, 903, 904, 754, 904, 753, 752, 751, 904, 905, 1317 750, 905, 749, 748, 747, 905, 906, 746, 906, 743, 1318 742, 741, 906, 907, 735, 907, 731, 730, 728, 907, 1319 908, 727, 908, 710, 702, 699, 908, 909, 694, 909, 1320 692, 688, 678, 909, 910, 910, 910, 910, 910, 910, 1321 910, 910, 910, 910, 910, 910, 910, 911, 674, 911, 1322 912, 912, 672, 912, 912, 912, 670, 912, 913, 913, 1323 667, 913, 914, 664, 914, 663, 662, 661, 914, 915, 1324 660, 915, 659, 656, 655, 915, 916, 653, 916, 650, 1325 649, 648, 916, 917, 644, 917, 918, 617, 918, 613, 1326 1327 611, 609, 918, 919, 607, 919, 920, 605, 599, 920, 1328 593, 920, 920, 920, 920, 920, 921, 921, 921, 921, 1329 921, 921, 921, 921, 921, 921, 921, 921, 921, 922, 1330 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 1331 922, 922, 923, 591, 923, 589, 587, 585, 923, 924, 1332 583, 924, 581, 579, 578, 924, 925, 577, 925, 574, 1333 571, 564, 925, 926, 560, 926, 927, 557, 927, 554, 1334 549, 544, 927, 928, 541, 928, 929, 518, 929, 514, 1335 512, 510, 929, 930, 508, 930, 931, 506, 931, 504, 1336 503, 502, 931, 932, 501, 932, 933, 490, 933, 487, 1337 1338 485, 484, 933, 934, 483, 934, 935, 481, 935, 479, 1339 476, 474, 935, 936, 472, 936, 937, 470, 937, 466, 1340 449, 447, 937, 938, 439, 938, 939, 437, 939, 429, 1341 939, 427, 939, 940, 425, 940, 399, 940, 397, 940, 1342 941, 941, 395, 941, 941, 941, 393, 941, 942, 392, 1343 942, 391, 378, 368, 942, 943, 366, 943, 365, 361, 1344 359, 943, 944, 357, 944, 355, 351, 349, 944, 945, 1345 348, 945, 946, 347, 946, 337, 322, 299, 946, 947, 1346 278, 947, 948, 276, 948, 274, 273, 272, 948, 949, 1347 270, 949, 950, 269, 950, 264, 260, 259, 950, 951, 1348 1349 255, 951, 952, 252, 251, 952, 240, 952, 952, 952, 1350 952, 952, 953, 953, 953, 953, 953, 953, 953, 953, 1351 953, 953, 953, 953, 953, 954, 239, 954, 232, 231, 1352 228, 954, 955, 218, 955, 956, 216, 956, 215, 214, 1353 208, 956, 957, 207, 957, 958, 205, 958, 200, 179, 1354 150, 958, 959, 148, 959, 960, 147, 960, 141, 139, 1355 137, 960, 961, 129, 961, 962, 126, 962, 125, 121, 1356 101, 962, 963, 98, 963, 964, 95, 964, 93, 86, 1357 72, 964, 965, 70, 965, 966, 66, 966, 36, 18, 1358 11, 966, 967, 4, 967, 3, 0, 0, 967, 968, 1359 1360 0, 968, 969, 0, 969, 0, 0, 0, 969, 970, 1361 0, 970, 971, 0, 971, 0, 971, 0, 971, 972, 1362 0, 972, 0, 0, 0, 972, 973, 0, 973, 0, 1363 0, 0, 973, 974, 0, 974, 975, 0, 975, 0, 1364 0, 0, 975, 976, 0, 976, 977, 0, 977, 0, 1365 0, 0, 977, 978, 0, 978, 979, 0, 979, 0, 1366 0, 0, 979, 980, 0, 980, 981, 0, 981, 0, 1367 0, 0, 981, 982, 0, 982, 983, 0, 983, 0, 1368 0, 0, 983, 984, 0, 984, 985, 0, 0, 985, 1369 0, 985, 985, 985, 985, 985, 986, 986, 986, 986, 1370 1371 986, 986, 986, 986, 986, 986, 986, 986, 986, 987, 1372 0, 987, 0, 0, 0, 987, 988, 0, 988, 989, 1373 0, 989, 0, 0, 0, 989, 990, 0, 990, 991, 1374 0, 991, 0, 0, 0, 991, 992, 0, 992, 993, 1375 0, 993, 0, 0, 0, 993, 994, 0, 994, 995, 1376 0, 995, 0, 0, 0, 995, 996, 0, 996, 997, 1377 0, 997, 0, 0, 0, 997, 998, 0, 998, 999, 1378 0, 999, 0, 0, 0, 999, 1000, 0, 1000, 1001, 1379 0, 1001, 0, 0, 0, 1001, 1002, 0, 1002, 1003, 1380 0, 1003, 0, 0, 0, 1003, 1004, 0, 1004, 0, 1381 1382 0, 0, 1004, 1005, 0, 1005, 1006, 0, 1006, 0, 1383 0, 0, 1006, 1007, 0, 1007, 1008, 0, 1008, 0, 1384 0, 0, 1008, 1009, 0, 1009, 1010, 0, 1010, 0, 1385 0, 0, 1010, 1011, 0, 1011, 1012, 0, 1012, 1013, 1386 0, 1013, 1014, 0, 0, 1014, 0, 1014, 1014, 1014, 1387 1014, 1014, 1015, 0, 1015, 1016, 1016, 1016, 1016, 1016, 1388 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1017, 0, 1389 1017, 0, 0, 0, 1017, 1018, 0, 1018, 1019, 0, 1390 1019, 0, 0, 0, 1019, 1020, 0, 1020, 1021, 0, 1391 1021, 1022, 0, 1022, 1023, 0, 0, 1023, 0, 1023, 1392 1393 1023, 1023, 1023, 1023, 1024, 0, 1024, 1025, 0, 1025, 1394 1026, 0, 1026, 1027, 0, 1027, 1028, 0, 1028, 1029, 1395 0, 1029, 1030, 0, 1030, 1031, 0, 1031, 0, 0, 1396 0, 1031, 1032, 0, 1032, 1033, 0, 1033, 0, 0, 1397 0, 1033, 1034, 0, 1034, 1035, 0, 1035, 1036, 0, 1398 1036, 1037, 0, 1037, 1038, 0, 1038, 0, 0, 0, 1399 1038, 1039, 0, 0, 1039, 0, 1039, 1039, 1039, 1039, 1400 1039, 1040, 0, 1040, 1041, 0, 1041, 1042, 0, 1042, 1401 1043, 0, 1043, 0, 0, 0, 1043, 1044, 0, 1044, 1402 0, 0, 0, 1044, 1045, 0, 1045, 0, 0, 0, 1403 1404 1045, 1046, 0, 1046, 1047, 0, 1047, 0, 0, 0, 1405 1047, 1048, 0, 1048, 0, 0, 0, 1048, 1049, 0, 1406 1049, 0, 0, 0, 1049, 1050, 0, 1050, 0, 0, 1407 0, 1050, 1051, 0, 1051, 0, 0, 0, 1051, 1052, 1408 0, 1052, 0, 0, 0, 1052, 1053, 0, 1053, 0, 1409 0, 0, 1053, 1054, 0, 1054, 0, 0, 0, 1054, 1410 1055, 0, 1055, 0, 0, 0, 1055, 1056, 0, 1056, 1411 0, 0, 0, 1056, 1057, 0, 1057, 0, 0, 0, 1412 1057, 1058, 0, 1058, 0, 0, 0, 1058, 1059, 0, 1413 1059, 0, 0, 0, 1059, 1060, 0, 1060, 0, 0, 1414 1415 0, 1060, 1061, 0, 1061, 0, 0, 0, 1061, 1062, 1416 0, 1062, 0, 0, 0, 1062, 888, 888, 888, 888, 1129 15, 15, 15, 15, 20, 25, 48, 39, 42, 28, 1130 27, 28, 28, 28, 28, 28, 28, 109, 115, 25, 1131 29, 25, 27, 27, 27, 29, 48, 35, 40, 7, 1132 8, 9, 10, 40, 42, 29, 30, 47, 30, 30, 1133 30, 30, 30, 30, 35, 57, 35, 35, 44, 126, 1134 44, 126, 109, 115, 57, 30, 64, 56, 47, 30, 1135 47, 45, 45, 45, 49, 30, 30, 45, 45, 49, 1136 45, 30, 40, 45, 45, 40, 49, 30, 45, 56, 1137 62, 45, 49, 30, 73, 885, 127, 53, 127, 51, 1138 61, 30, 62, 55, 30, 31, 108, 31, 31, 31, 1139 1140 31, 31, 31, 50, 51, 53, 51, 64, 61, 54, 1141 73, 55, 50, 87, 31, 51, 50, 55, 31, 54, 1142 108, 50, 52, 114, 31, 50, 54, 52, 175, 129, 1143 31, 129, 107, 154, 151, 52, 31, 52, 107, 87, 1144 52, 60, 31, 132, 52, 132, 60, 114, 175, 154, 1145 31, 38, 151, 385, 111, 38, 38, 58, 38, 60, 1146 38, 38, 113, 38, 107, 38, 59, 130, 113, 58, 1147 58, 116, 111, 164, 38, 38, 38, 385, 59, 58, 1148 111, 130, 58, 130, 142, 60, 59, 131, 60, 116, 1149 164, 68, 68, 59, 113, 38, 68, 116, 38, 131, 1150 1151 110, 131, 60, 67, 67, 67, 67, 67, 67, 877, 1152 142, 67, 68, 68, 68, 68, 68, 68, 80, 80, 1153 80, 80, 80, 80, 153, 38, 38, 77, 77, 134, 1154 110, 134, 77, 153, 77, 110, 135, 135, 135, 77, 1155 82, 82, 82, 82, 82, 82, 876, 243, 77, 77, 1156 77, 77, 83, 83, 83, 83, 83, 83, 110, 77, 1157 103, 103, 103, 103, 103, 103, 104, 104, 104, 104, 1158 133, 133, 137, 133, 137, 77, 145, 139, 77, 139, 1159 157, 145, 243, 77, 77, 152, 156, 77, 77, 155, 1160 166, 150, 157, 103, 104, 77, 159, 168, 77, 104, 1161 1162 77, 77, 77, 152, 77, 85, 150, 155, 156, 85, 1163 85, 166, 159, 150, 85, 85, 161, 85, 160, 85, 1164 145, 162, 104, 167, 168, 161, 169, 163, 85, 85, 1165 85, 105, 163, 105, 105, 105, 105, 105, 105, 873, 1166 160, 171, 162, 162, 165, 163, 167, 169, 173, 85, 1167 105, 106, 85, 106, 165, 172, 106, 106, 106, 106, 1168 106, 106, 180, 171, 170, 173, 105, 176, 177, 170, 1169 172, 181, 105, 174, 184, 187, 181, 182, 179, 180, 1170 85, 99, 99, 99, 99, 99, 99, 170, 187, 106, 1171 177, 174, 184, 179, 176, 183, 190, 99, 99, 99, 1172 1173 179, 99, 99, 189, 182, 186, 183, 191, 189, 218, 1174 186, 218, 185, 188, 99, 190, 183, 183, 284, 99, 1175 99, 99, 158, 185, 99, 186, 99, 158, 158, 158, 1176 189, 158, 158, 188, 192, 158, 194, 158, 284, 219, 1177 185, 219, 158, 158, 158, 193, 158, 192, 220, 194, 1178 220, 191, 198, 198, 191, 192, 205, 198, 193, 872, 1179 193, 197, 197, 197, 197, 197, 197, 200, 200, 197, 1180 248, 221, 200, 198, 198, 198, 198, 198, 198, 202, 1181 202, 223, 205, 223, 202, 221, 202, 221, 200, 200, 1182 200, 200, 200, 200, 209, 209, 248, 338, 222, 209, 1183 1184 202, 202, 202, 202, 202, 202, 212, 212, 212, 212, 1185 222, 309, 222, 224, 224, 225, 224, 225, 226, 226, 1186 226, 228, 229, 228, 229, 234, 234, 235, 236, 235, 1187 309, 279, 235, 235, 235, 235, 235, 235, 237, 212, 1188 237, 338, 266, 237, 266, 267, 278, 267, 234, 279, 1189 283, 236, 241, 241, 241, 283, 241, 241, 256, 278, 1190 237, 281, 237, 282, 280, 235, 270, 237, 244, 244, 1191 244, 244, 244, 244, 241, 241, 241, 281, 285, 241, 1192 282, 241, 280, 285, 256, 244, 245, 245, 245, 245, 1193 245, 245, 270, 288, 293, 286, 294, 300, 306, 293, 1194 1195 308, 244, 300, 306, 870, 294, 308, 244, 246, 246, 1196 246, 246, 246, 246, 253, 286, 288, 255, 255, 255, 1197 255, 255, 255, 287, 246, 247, 246, 247, 246, 246, 1198 247, 247, 247, 247, 247, 247, 290, 253, 287, 253, 1199 869, 246, 289, 253, 287, 287, 246, 292, 246, 253, 1200 255, 246, 291, 246, 260, 260, 260, 260, 260, 260, 1201 289, 253, 290, 292, 292, 253, 295, 291, 296, 253, 1202 297, 299, 301, 302, 303, 304, 305, 307, 311, 295, 1203 302, 301, 307, 310, 311, 312, 319, 260, 297, 299, 1204 313, 314, 310, 304, 303, 296, 318, 305, 305, 313, 1205 1206 315, 312, 316, 317, 319, 315, 314, 316, 317, 320, 1207 322, 323, 324, 326, 325, 318, 327, 328, 331, 329, 1208 330, 322, 320, 332, 334, 317, 323, 325, 333, 330, 1209 335, 324, 337, 339, 340, 326, 329, 328, 401, 327, 1210 331, 337, 334, 335, 341, 343, 332, 340, 342, 401, 1211 333, 339, 341, 342, 344, 344, 345, 460, 862, 344, 1212 343, 344, 345, 352, 352, 352, 352, 353, 353, 353, 1213 353, 362, 363, 362, 363, 370, 370, 370, 370, 370, 1214 370, 372, 460, 372, 380, 381, 372, 372, 372, 372, 1215 372, 372, 861, 402, 380, 381, 352, 371, 371, 371, 1216 1217 371, 371, 371, 374, 374, 374, 374, 374, 374, 402, 1218 380, 381, 403, 371, 404, 371, 860, 371, 371, 375, 1219 375, 375, 375, 375, 375, 383, 382, 403, 406, 405, 1220 371, 383, 407, 404, 408, 371, 374, 371, 405, 406, 1221 371, 407, 371, 376, 376, 376, 376, 376, 376, 382, 1222 412, 382, 375, 387, 411, 382, 408, 383, 384, 386, 1223 384, 382, 410, 384, 384, 384, 384, 384, 384, 409, 1224 411, 387, 412, 382, 413, 410, 376, 382, 409, 387, 1225 415, 382, 386, 414, 386, 416, 417, 413, 386, 418, 1226 421, 417, 419, 422, 386, 420, 384, 427, 419, 414, 1227 1228 414, 421, 415, 416, 418, 423, 386, 425, 429, 427, 1229 386, 418, 422, 430, 386, 431, 420, 432, 433, 434, 1230 423, 425, 435, 437, 433, 439, 440, 441, 431, 429, 1231 442, 435, 443, 444, 434, 430, 449, 445, 437, 447, 1232 432, 450, 441, 451, 454, 439, 445, 443, 440, 452, 1233 450, 453, 442, 444, 455, 456, 447, 457, 458, 449, 1234 459, 461, 463, 455, 451, 458, 454, 459, 462, 452, 1235 457, 453, 466, 456, 464, 467, 462, 525, 859, 463, 1236 525, 468, 491, 461, 467, 464, 462, 468, 477, 477, 1237 477, 477, 491, 515, 466, 488, 488, 488, 488, 488, 1238 1239 488, 490, 490, 490, 490, 490, 490, 519, 491, 521, 1240 515, 488, 492, 488, 492, 488, 488, 492, 492, 492, 1241 492, 492, 492, 494, 516, 495, 493, 519, 488, 855, 1242 851, 521, 518, 488, 490, 488, 493, 516, 488, 529, 1243 488, 497, 497, 497, 497, 497, 497, 518, 520, 494, 1244 492, 495, 493, 498, 498, 498, 498, 498, 498, 523, 1245 529, 520, 526, 848, 523, 847, 528, 846, 522, 498, 1246 499, 498, 499, 498, 498, 499, 499, 499, 499, 499, 1247 499, 522, 526, 524, 527, 528, 498, 531, 530, 532, 1248 533, 498, 531, 498, 524, 534, 498, 530, 498, 527, 1249 1250 532, 535, 537, 533, 536, 538, 539, 541, 542, 547, 1251 535, 539, 544, 541, 538, 545, 546, 542, 547, 537, 1252 550, 551, 845, 549, 534, 552, 536, 554, 560, 544, 1253 545, 546, 549, 551, 555, 557, 558, 550, 561, 555, 1254 552, 562, 554, 565, 557, 558, 564, 567, 566, 568, 1255 560, 561, 575, 565, 564, 566, 569, 571, 562, 574, 1256 572, 568, 569, 620, 619, 575, 571, 601, 601, 567, 1257 572, 619, 620, 844, 843, 622, 574, 594, 594, 594, 1258 594, 594, 594, 595, 595, 595, 595, 595, 595, 597, 1259 601, 597, 622, 621, 597, 597, 597, 597, 597, 597, 1260 1261 600, 600, 600, 600, 600, 600, 621, 602, 626, 842, 1262 594, 596, 596, 596, 596, 596, 596, 603, 618, 603, 1263 623, 624, 603, 618, 628, 626, 625, 596, 624, 596, 1264 602, 596, 596, 600, 625, 627, 618, 628, 627, 603, 1265 629, 603, 630, 623, 596, 631, 603, 632, 633, 596, 1266 634, 596, 635, 634, 596, 636, 596, 630, 637, 638, 1267 640, 644, 629, 639, 632, 641, 642, 631, 645, 635, 1268 633, 646, 639, 637, 650, 642, 651, 656, 640, 638, 1269 646, 653, 657, 636, 644, 665, 656, 641, 664, 657, 1270 645, 667, 668, 841, 650, 665, 700, 664, 653, 699, 1271 1272 667, 702, 705, 651, 714, 837, 700, 668, 686, 686, 1273 686, 686, 686, 686, 690, 690, 690, 690, 690, 690, 1274 699, 708, 705, 703, 686, 714, 686, 702, 686, 686, 1275 703, 704, 706, 715, 707, 706, 704, 707, 710, 708, 1276 712, 686, 711, 717, 710, 718, 686, 690, 686, 712, 1277 720, 686, 717, 686, 713, 711, 716, 713, 719, 716, 1278 721, 719, 715, 720, 722, 723, 724, 725, 721, 728, 1279 731, 718, 732, 735, 722, 733, 725, 736, 723, 756, 1280 757, 735, 836, 754, 756, 759, 736, 724, 755, 760, 1281 731, 761, 728, 764, 732, 757, 733, 743, 743, 743, 1282 1283 743, 743, 743, 754, 758, 755, 760, 762, 759, 763, 1284 762, 769, 766, 768, 758, 766, 768, 761, 769, 772, 1285 770, 764, 763, 770, 771, 773, 778, 771, 793, 795, 1286 743, 798, 797, 796, 772, 797, 799, 800, 802, 799, 1287 800, 803, 804, 806, 807, 804, 810, 807, 773, 778, 1288 795, 796, 809, 798, 808, 793, 802, 808, 811, 826, 1289 830, 809, 810, 827, 829, 806, 828, 803, 831, 828, 1290 827, 831, 832, 829, 811, 834, 835, 839, 830, 835, 1291 826, 840, 838, 849, 830, 838, 839, 853, 850, 832, 1292 840, 852, 849, 850, 852, 854, 856, 853, 857, 856, 1293 1294 854, 857, 858, 863, 864, 858, 865, 866, 867, 865, 1295 868, 867, 871, 868, 874, 875, 878, 866, 879, 864, 1296 880, 882, 881, 863, 883, 878, 884, 833, 825, 824, 1297 875, 879, 823, 822, 871, 874, 884, 821, 820, 882, 1298 819, 818, 880, 881, 817, 816, 883, 888, 888, 888, 1417 1299 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 1418 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 1419 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 1420 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 1421 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 1422 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 1423 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 1424 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 1425 1426 888, 888 1300 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 1301 889, 889, 889, 890, 890, 890, 890, 890, 890, 890, 1302 890, 890, 890, 890, 890, 890, 891, 815, 814, 891, 1303 813, 891, 891, 891, 891, 891, 892, 812, 805, 801, 1304 1305 892, 892, 892, 892, 892, 892, 893, 893, 893, 893, 1306 893, 893, 893, 893, 893, 893, 893, 893, 893, 894, 1307 794, 792, 894, 791, 894, 894, 894, 894, 894, 895, 1308 790, 895, 895, 789, 895, 895, 895, 895, 895, 895, 1309 788, 895, 896, 787, 786, 896, 896, 896, 896, 896, 1310 896, 896, 896, 785, 896, 897, 897, 897, 897, 897, 1311 897, 897, 897, 897, 897, 897, 897, 897, 898, 898, 1312 784, 898, 783, 782, 781, 898, 899, 780, 779, 899, 1313 777, 899, 899, 899, 899, 899, 900, 776, 900, 775, 1314 774, 767, 900, 901, 765, 901, 753, 752, 751, 901, 1315 1316 902, 750, 902, 749, 748, 747, 902, 903, 746, 903, 1317 745, 742, 741, 903, 904, 740, 904, 734, 730, 729, 1318 904, 905, 727, 905, 726, 709, 701, 905, 906, 698, 1319 906, 693, 691, 687, 906, 907, 677, 907, 673, 671, 1320 669, 907, 908, 666, 908, 663, 662, 661, 908, 909, 1321 909, 909, 909, 909, 909, 909, 909, 909, 909, 909, 1322 909, 909, 910, 660, 910, 911, 911, 659, 911, 911, 1323 911, 658, 911, 912, 912, 655, 912, 913, 654, 913, 1324 652, 649, 648, 913, 914, 647, 914, 643, 616, 612, 1325 914, 915, 610, 915, 608, 606, 604, 915, 916, 598, 1326 1327 916, 917, 592, 917, 590, 588, 586, 917, 918, 584, 1328 918, 919, 582, 580, 919, 578, 919, 919, 919, 919, 1329 919, 920, 920, 920, 920, 920, 920, 920, 920, 920, 1330 920, 920, 920, 920, 921, 921, 921, 921, 921, 921, 1331 921, 921, 921, 921, 921, 921, 921, 922, 577, 922, 1332 576, 573, 570, 922, 923, 563, 923, 559, 556, 553, 1333 923, 924, 548, 924, 543, 540, 517, 924, 925, 513, 1334 925, 926, 511, 926, 509, 507, 505, 926, 927, 503, 1335 927, 928, 502, 928, 501, 500, 489, 928, 929, 486, 1336 929, 930, 484, 930, 483, 482, 480, 930, 931, 478, 1337 1338 931, 932, 475, 932, 473, 471, 469, 932, 933, 465, 1339 933, 934, 448, 934, 446, 438, 436, 934, 935, 428, 1340 935, 936, 426, 936, 424, 398, 396, 936, 937, 394, 1341 937, 938, 392, 938, 391, 938, 390, 938, 939, 377, 1342 939, 367, 939, 365, 939, 940, 940, 364, 940, 940, 1343 940, 360, 940, 941, 358, 941, 356, 354, 350, 941, 1344 942, 348, 942, 347, 346, 336, 942, 943, 321, 943, 1345 298, 277, 275, 943, 944, 273, 944, 945, 272, 945, 1346 271, 269, 268, 945, 946, 263, 946, 947, 259, 947, 1347 258, 254, 251, 947, 948, 250, 948, 949, 239, 949, 1348 1349 238, 231, 230, 949, 950, 227, 950, 951, 217, 215, 1350 951, 214, 951, 951, 951, 951, 951, 952, 952, 952, 1351 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 1352 953, 213, 953, 207, 206, 204, 953, 954, 199, 954, 1353 955, 178, 955, 149, 147, 146, 955, 956, 140, 956, 1354 957, 138, 957, 136, 128, 125, 957, 958, 124, 958, 1355 959, 120, 959, 101, 98, 95, 959, 960, 93, 960, 1356 961, 86, 961, 72, 70, 66, 961, 962, 36, 962, 1357 963, 33, 963, 18, 11, 4, 963, 964, 3, 964, 1358 965, 0, 965, 0, 0, 0, 965, 966, 0, 966, 1359 1360 0, 0, 0, 966, 967, 0, 967, 968, 0, 968, 1361 0, 0, 0, 968, 969, 0, 969, 970, 0, 970, 1362 0, 970, 0, 970, 971, 0, 971, 0, 0, 0, 1363 971, 972, 0, 972, 0, 0, 0, 972, 973, 0, 1364 973, 974, 0, 974, 0, 0, 0, 974, 975, 0, 1365 975, 976, 0, 976, 0, 0, 0, 976, 977, 0, 1366 977, 978, 0, 978, 0, 0, 0, 978, 979, 0, 1367 979, 980, 0, 980, 0, 0, 0, 980, 981, 0, 1368 981, 982, 0, 982, 0, 0, 0, 982, 983, 0, 1369 983, 984, 0, 0, 984, 0, 984, 984, 984, 984, 1370 1371 984, 985, 985, 985, 985, 985, 985, 985, 985, 985, 1372 985, 985, 985, 985, 986, 0, 986, 0, 0, 0, 1373 986, 987, 0, 987, 988, 0, 988, 0, 0, 0, 1374 988, 989, 0, 989, 990, 0, 990, 0, 0, 0, 1375 990, 991, 0, 991, 992, 0, 992, 0, 0, 0, 1376 992, 993, 0, 993, 994, 0, 994, 0, 0, 0, 1377 994, 995, 0, 995, 996, 0, 996, 0, 0, 0, 1378 996, 997, 0, 997, 998, 0, 998, 0, 0, 0, 1379 998, 999, 0, 999, 1000, 0, 1000, 0, 0, 0, 1380 1000, 1001, 0, 1001, 1002, 0, 1002, 0, 0, 0, 1381 1382 1002, 1003, 0, 1003, 0, 0, 0, 1003, 1004, 0, 1383 1004, 1005, 0, 1005, 0, 0, 0, 1005, 1006, 0, 1384 1006, 1007, 0, 1007, 0, 0, 0, 1007, 1008, 0, 1385 1008, 1009, 0, 1009, 0, 0, 0, 1009, 1010, 0, 1386 1010, 1011, 0, 1011, 1012, 0, 1012, 1013, 0, 0, 1387 1013, 0, 1013, 1013, 1013, 1013, 1013, 1014, 0, 1014, 1388 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1389 1015, 1015, 1015, 1016, 0, 1016, 0, 0, 0, 1016, 1390 1017, 0, 1017, 1018, 0, 1018, 0, 0, 0, 1018, 1391 1019, 0, 1019, 1020, 0, 1020, 1021, 0, 1021, 1022, 1392 1393 0, 0, 1022, 0, 1022, 1022, 1022, 1022, 1022, 1023, 1394 0, 1023, 1024, 0, 1024, 1025, 0, 1025, 1026, 0, 1395 1026, 1027, 0, 1027, 1028, 0, 1028, 1029, 0, 1029, 1396 1030, 0, 1030, 0, 0, 0, 1030, 1031, 0, 1031, 1397 1032, 0, 1032, 0, 0, 0, 1032, 1033, 0, 1033, 1398 1034, 0, 1034, 1035, 0, 1035, 1036, 0, 1036, 1037, 1399 0, 1037, 0, 0, 0, 1037, 1038, 0, 0, 1038, 1400 0, 1038, 1038, 1038, 1038, 1038, 1039, 0, 1039, 1040, 1401 0, 1040, 1041, 0, 1041, 1042, 0, 1042, 0, 0, 1402 0, 1042, 1043, 0, 1043, 0, 0, 0, 1043, 1044, 1403 1404 0, 1044, 0, 0, 0, 1044, 1045, 0, 1045, 1046, 1405 0, 1046, 0, 0, 0, 1046, 1047, 0, 1047, 0, 1406 0, 0, 1047, 1048, 0, 1048, 0, 0, 0, 1048, 1407 1049, 0, 1049, 0, 0, 0, 1049, 1050, 0, 1050, 1408 0, 0, 0, 1050, 1051, 0, 1051, 0, 0, 0, 1409 1051, 1052, 0, 1052, 0, 0, 0, 1052, 1053, 0, 1410 1053, 0, 0, 0, 1053, 1054, 0, 1054, 0, 0, 1411 0, 1054, 1055, 0, 1055, 0, 0, 0, 1055, 1056, 1412 0, 1056, 0, 0, 0, 1056, 1057, 0, 1057, 0, 1413 0, 0, 1057, 1058, 0, 1058, 0, 0, 0, 1058, 1414 1415 1059, 0, 1059, 0, 0, 0, 1059, 1060, 0, 1060, 1416 0, 0, 0, 1060, 1061, 0, 1061, 0, 0, 0, 1417 1061, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1418 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1419 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1420 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1421 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1422 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1423 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1424 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 1425 1426 887, 887, 887, 887, 887, 887, 887 1427 1427 } ; 1428 1428 1429 1429 /* Table of booleans, true if rule could match eol. */ 1430 static yyconst flex_int32_t yy_rule_can_match_eol[18 2] =1430 static yyconst flex_int32_t yy_rule_can_match_eol[181] = 1431 1431 { 0, 1432 1432 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 1439 1439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1440 1440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1441 0, 0,};1441 0, }; 1442 1442 1443 1443 static yy_state_type yy_last_accepting_state; … … 1467 1467 * Created On : Sat Sep 22 08:58:10 2001 1468 1468 * Last Modified By : Peter A. Buhr 1469 * Last Modified On : Mon Jun 6 18:08:2720161470 * Update Count : 45 11469 * Last Modified On : Wed Jun 22 21:20:18 2016 1470 * Update Count : 456 1471 1471 */ 1472 1472 #line 20 "lex.ll" … … 1502 1502 1503 1503 void rm_underscore() { 1504 // remove underscores in numeric constant1505 int j= 0;1504 // Remove underscores in numeric constant by copying the non-underscore characters to the front of the string. 1505 yyleng = 0; 1506 1506 for ( int i = 0; yytext[i] != '\0'; i += 1 ) { 1507 1507 if ( yytext[i] != '_' ) { 1508 yytext[ j] = yytext[i];1509 j+= 1;1508 yytext[yyleng] = yytext[i]; 1509 yyleng += 1; 1510 1510 } // if 1511 1511 } // for 1512 yyleng = j;1513 1512 yytext[yyleng] = '\0'; 1514 1513 } … … 1523 1522 // ' stop highlighting 1524 1523 // display/white-space characters 1525 // operators 1526 1527 1528 1529 1530 #line 1531 "Parser/lex.cc" 1524 // overloadable operators 1525 // op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@=" 1526 // operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over} 1527 1528 1529 1530 1531 #line 1532 "Parser/lex.cc" 1531 1532 1532 1533 #define INITIAL 0 … … 1720 1721 register int yy_act; 1721 1722 1722 #line 13 9"lex.ll"1723 #line 138 "lex.ll" 1723 1724 1724 1725 /* line directives */ 1725 #line 172 6"Parser/lex.cc"1726 #line 1727 "Parser/lex.cc" 1726 1727 1727 1728 if ( !(yy_init) ) … … 1777 1778 { 1778 1779 yy_current_state = (int) yy_def[yy_current_state]; 1779 if ( yy_current_state >= 88 9)1780 if ( yy_current_state >= 888 ) 1780 1781 yy_c = yy_meta[(unsigned int) yy_c]; 1781 1782 } … … 1783 1784 ++yy_cp; 1784 1785 } 1785 while ( yy_base[yy_current_state] != 28 17);1786 while ( yy_base[yy_current_state] != 2822 ); 1786 1787 1787 1788 yy_find_action: … … 1820 1821 /* rule 1 can match eol */ 1821 1822 YY_RULE_SETUP 1822 #line 14 1"lex.ll"1823 #line 140 "lex.ll" 1823 1824 { 1824 1825 /* " stop highlighting */ … … 1847 1848 /* rule 2 can match eol */ 1848 1849 YY_RULE_SETUP 1849 #line 16 4"lex.ll"1850 #line 163 "lex.ll" 1850 1851 ; 1851 1852 YY_BREAK … … 1853 1854 case 3: 1854 1855 YY_RULE_SETUP 1855 #line 16 7"lex.ll"1856 #line 166 "lex.ll" 1856 1857 { BEGIN COMMENT; } 1857 1858 YY_BREAK … … 1859 1860 /* rule 4 can match eol */ 1860 1861 YY_RULE_SETUP 1862 #line 167 "lex.ll" 1863 ; 1864 YY_BREAK 1865 case 5: 1866 YY_RULE_SETUP 1861 1867 #line 168 "lex.ll" 1862 ;1863 YY_BREAK1864 case 5:1865 YY_RULE_SETUP1866 #line 169 "lex.ll"1867 1868 { BEGIN 0; } 1868 1869 YY_BREAK … … 1871 1872 /* rule 6 can match eol */ 1872 1873 YY_RULE_SETUP 1873 #line 17 2"lex.ll"1874 #line 171 "lex.ll" 1874 1875 ; 1875 1876 YY_BREAK … … 1877 1878 case 7: 1878 1879 YY_RULE_SETUP 1880 #line 174 "lex.ll" 1881 { WHITE_RETURN(' '); } 1882 YY_BREAK 1883 case 8: 1884 YY_RULE_SETUP 1879 1885 #line 175 "lex.ll" 1880 1886 { WHITE_RETURN(' '); } 1881 1887 YY_BREAK 1882 case 8:1883 YY_RULE_SETUP1884 #line 176 "lex.ll"1885 { WHITE_RETURN(' '); }1886 YY_BREAK1887 1888 case 9: 1888 1889 /* rule 9 can match eol */ 1889 1890 YY_RULE_SETUP 1890 #line 17 7"lex.ll"1891 #line 176 "lex.ll" 1891 1892 { NEWLINE_RETURN(); } 1892 1893 YY_BREAK … … 1894 1895 case 10: 1895 1896 YY_RULE_SETUP 1897 #line 179 "lex.ll" 1898 { KEYWORD_RETURN(ALIGNAS); } // C11 1899 YY_BREAK 1900 case 11: 1901 YY_RULE_SETUP 1896 1902 #line 180 "lex.ll" 1897 { KEYWORD_RETURN(ALIGN AS); } // C111898 YY_BREAK 1899 case 1 1:1903 { KEYWORD_RETURN(ALIGNOF); } // C11 1904 YY_BREAK 1905 case 12: 1900 1906 YY_RULE_SETUP 1901 1907 #line 181 "lex.ll" 1902 { KEYWORD_RETURN(ALIGNOF); } // C111903 YY_BREAK 1904 case 1 2:1908 { KEYWORD_RETURN(ALIGNOF); } // GCC 1909 YY_BREAK 1910 case 13: 1905 1911 YY_RULE_SETUP 1906 1912 #line 182 "lex.ll" 1907 1913 { KEYWORD_RETURN(ALIGNOF); } // GCC 1908 1914 YY_BREAK 1909 case 1 3:1915 case 14: 1910 1916 YY_RULE_SETUP 1911 1917 #line 183 "lex.ll" 1912 { KEYWORD_RETURN(A LIGNOF); } // GCC1913 YY_BREAK 1914 case 1 4:1918 { KEYWORD_RETURN(ASM); } 1919 YY_BREAK 1920 case 15: 1915 1921 YY_RULE_SETUP 1916 1922 #line 184 "lex.ll" 1917 { KEYWORD_RETURN(ASM); } 1918 YY_BREAK 1919 case 1 5:1923 { KEYWORD_RETURN(ASM); } // GCC 1924 YY_BREAK 1925 case 16: 1920 1926 YY_RULE_SETUP 1921 1927 #line 185 "lex.ll" 1922 1928 { KEYWORD_RETURN(ASM); } // GCC 1923 1929 YY_BREAK 1924 case 1 6:1930 case 17: 1925 1931 YY_RULE_SETUP 1926 1932 #line 186 "lex.ll" 1927 { KEYWORD_RETURN(A SM); } // GCC1928 YY_BREAK 1929 case 1 7:1933 { KEYWORD_RETURN(AT); } // CFA 1934 YY_BREAK 1935 case 18: 1930 1936 YY_RULE_SETUP 1931 1937 #line 187 "lex.ll" 1932 { KEYWORD_RETURN(AT ); } // CFA1933 YY_BREAK 1934 case 1 8:1938 { KEYWORD_RETURN(ATOMIC); } // C11 1939 YY_BREAK 1940 case 19: 1935 1941 YY_RULE_SETUP 1936 1942 #line 188 "lex.ll" 1937 { KEYWORD_RETURN(AT OMIC); } // C111938 YY_BREAK 1939 case 19:1943 { KEYWORD_RETURN(ATTRIBUTE); } // GCC 1944 YY_BREAK 1945 case 20: 1940 1946 YY_RULE_SETUP 1941 1947 #line 189 "lex.ll" 1942 1948 { KEYWORD_RETURN(ATTRIBUTE); } // GCC 1943 1949 YY_BREAK 1944 case 2 0:1950 case 21: 1945 1951 YY_RULE_SETUP 1946 1952 #line 190 "lex.ll" 1947 { KEYWORD_RETURN(A TTRIBUTE); } // GCC1948 YY_BREAK 1949 case 2 1:1953 { KEYWORD_RETURN(AUTO); } 1954 YY_BREAK 1955 case 22: 1950 1956 YY_RULE_SETUP 1951 1957 #line 191 "lex.ll" 1952 { KEYWORD_RETURN( AUTO); }1953 YY_BREAK 1954 case 2 2:1958 { KEYWORD_RETURN(BOOL); } // C99 1959 YY_BREAK 1960 case 23: 1955 1961 YY_RULE_SETUP 1956 1962 #line 192 "lex.ll" 1957 { KEYWORD_RETURN(B OOL); } // C991958 YY_BREAK 1959 case 2 3:1963 { KEYWORD_RETURN(BREAK); } 1964 YY_BREAK 1965 case 24: 1960 1966 YY_RULE_SETUP 1961 1967 #line 193 "lex.ll" 1962 { KEYWORD_RETURN( BREAK); }1963 YY_BREAK 1964 case 2 4:1968 { KEYWORD_RETURN(CASE); } 1969 YY_BREAK 1970 case 25: 1965 1971 YY_RULE_SETUP 1966 1972 #line 194 "lex.ll" 1967 { KEYWORD_RETURN(CA SE); }1968 YY_BREAK 1969 case 2 5:1973 { KEYWORD_RETURN(CATCH); } // CFA 1974 YY_BREAK 1975 case 26: 1970 1976 YY_RULE_SETUP 1971 1977 #line 195 "lex.ll" 1972 { KEYWORD_RETURN(CATCH ); }// CFA1973 YY_BREAK 1974 case 2 6:1978 { KEYWORD_RETURN(CATCHRESUME); } // CFA 1979 YY_BREAK 1980 case 27: 1975 1981 YY_RULE_SETUP 1976 1982 #line 196 "lex.ll" 1977 { KEYWORD_RETURN(C ATCHRESUME); } // CFA1978 YY_BREAK 1979 case 2 7:1983 { KEYWORD_RETURN(CHAR); } 1984 YY_BREAK 1985 case 28: 1980 1986 YY_RULE_SETUP 1981 1987 #line 197 "lex.ll" 1982 { KEYWORD_RETURN(CH AR); }1983 YY_BREAK 1984 case 2 8:1988 { KEYWORD_RETURN(CHOOSE); } // CFA 1989 YY_BREAK 1990 case 29: 1985 1991 YY_RULE_SETUP 1986 1992 #line 198 "lex.ll" 1987 { KEYWORD_RETURN(C HOOSE); } // CFA1988 YY_BREAK 1989 case 29:1993 { KEYWORD_RETURN(COMPLEX); } // C99 1994 YY_BREAK 1995 case 30: 1990 1996 YY_RULE_SETUP 1991 1997 #line 199 "lex.ll" 1992 { KEYWORD_RETURN(COMPLEX); } // C991993 YY_BREAK 1994 case 3 0:1998 { KEYWORD_RETURN(COMPLEX); } // GCC 1999 YY_BREAK 2000 case 31: 1995 2001 YY_RULE_SETUP 1996 2002 #line 200 "lex.ll" 1997 2003 { KEYWORD_RETURN(COMPLEX); } // GCC 1998 2004 YY_BREAK 1999 case 3 1:2005 case 32: 2000 2006 YY_RULE_SETUP 2001 2007 #line 201 "lex.ll" 2002 { KEYWORD_RETURN(CO MPLEX); } // GCC2003 YY_BREAK 2004 case 3 2:2008 { KEYWORD_RETURN(CONST); } 2009 YY_BREAK 2010 case 33: 2005 2011 YY_RULE_SETUP 2006 2012 #line 202 "lex.ll" 2007 { KEYWORD_RETURN(CONST); } 2008 YY_BREAK 2009 case 3 3:2013 { KEYWORD_RETURN(CONST); } // GCC 2014 YY_BREAK 2015 case 34: 2010 2016 YY_RULE_SETUP 2011 2017 #line 203 "lex.ll" 2012 2018 { KEYWORD_RETURN(CONST); } // GCC 2013 2019 YY_BREAK 2014 case 3 4:2020 case 35: 2015 2021 YY_RULE_SETUP 2016 2022 #line 204 "lex.ll" 2017 { KEYWORD_RETURN(CON ST); } // GCC2018 YY_BREAK 2019 case 3 5:2023 { KEYWORD_RETURN(CONTINUE); } 2024 YY_BREAK 2025 case 36: 2020 2026 YY_RULE_SETUP 2021 2027 #line 205 "lex.ll" 2022 { KEYWORD_RETURN( CONTINUE); }2023 YY_BREAK 2024 case 3 6:2028 { KEYWORD_RETURN(DEFAULT); } 2029 YY_BREAK 2030 case 37: 2025 2031 YY_RULE_SETUP 2026 2032 #line 206 "lex.ll" 2027 { KEYWORD_RETURN(D EFAULT); }2028 YY_BREAK 2029 case 3 7:2033 { KEYWORD_RETURN(DISABLE); } // CFA 2034 YY_BREAK 2035 case 38: 2030 2036 YY_RULE_SETUP 2031 2037 #line 207 "lex.ll" 2032 { KEYWORD_RETURN(D ISABLE); } // CFA2033 YY_BREAK 2034 case 3 8:2038 { KEYWORD_RETURN(DO); } 2039 YY_BREAK 2040 case 39: 2035 2041 YY_RULE_SETUP 2036 2042 #line 208 "lex.ll" 2037 { KEYWORD_RETURN(DO ); }2038 YY_BREAK 2039 case 39:2043 { KEYWORD_RETURN(DOUBLE); } 2044 YY_BREAK 2045 case 40: 2040 2046 YY_RULE_SETUP 2041 2047 #line 209 "lex.ll" 2042 { KEYWORD_RETURN(D OUBLE); }2043 YY_BREAK 2044 case 4 0:2048 { KEYWORD_RETURN(DTYPE); } // CFA 2049 YY_BREAK 2050 case 41: 2045 2051 YY_RULE_SETUP 2046 2052 #line 210 "lex.ll" 2047 { KEYWORD_RETURN( DTYPE); } // CFA2048 YY_BREAK 2049 case 4 1:2053 { KEYWORD_RETURN(ELSE); } 2054 YY_BREAK 2055 case 42: 2050 2056 YY_RULE_SETUP 2051 2057 #line 211 "lex.ll" 2052 { KEYWORD_RETURN(E LSE); }2053 YY_BREAK 2054 case 4 2:2058 { KEYWORD_RETURN(ENABLE); } // CFA 2059 YY_BREAK 2060 case 43: 2055 2061 YY_RULE_SETUP 2056 2062 #line 212 "lex.ll" 2057 { KEYWORD_RETURN(EN ABLE); } // CFA2058 YY_BREAK 2059 case 4 3:2063 { KEYWORD_RETURN(ENUM); } 2064 YY_BREAK 2065 case 44: 2060 2066 YY_RULE_SETUP 2061 2067 #line 213 "lex.ll" 2062 { KEYWORD_RETURN(E NUM); }2063 YY_BREAK 2064 case 4 4:2068 { KEYWORD_RETURN(EXTENSION); } // GCC 2069 YY_BREAK 2070 case 45: 2065 2071 YY_RULE_SETUP 2066 2072 #line 214 "lex.ll" 2067 { KEYWORD_RETURN(EXTE NSION); } // GCC2068 YY_BREAK 2069 case 4 5:2073 { KEYWORD_RETURN(EXTERN); } 2074 YY_BREAK 2075 case 46: 2070 2076 YY_RULE_SETUP 2071 2077 #line 215 "lex.ll" 2072 { KEYWORD_RETURN( EXTERN); }2073 YY_BREAK 2074 case 4 6:2078 { KEYWORD_RETURN(FALLTHRU); } // CFA 2079 YY_BREAK 2080 case 47: 2075 2081 YY_RULE_SETUP 2076 2082 #line 216 "lex.ll" 2077 { KEYWORD_RETURN(F ALLTHRU); } // CFA2078 YY_BREAK 2079 case 4 7:2083 { KEYWORD_RETURN(FINALLY); } // CFA 2084 YY_BREAK 2085 case 48: 2080 2086 YY_RULE_SETUP 2081 2087 #line 217 "lex.ll" 2082 { KEYWORD_RETURN(F INALLY); } // CFA2083 YY_BREAK 2084 case 4 8:2088 { KEYWORD_RETURN(FLOAT); } 2089 YY_BREAK 2090 case 49: 2085 2091 YY_RULE_SETUP 2086 2092 #line 218 "lex.ll" 2087 { KEYWORD_RETURN(FLOAT); } 2088 YY_BREAK 2089 case 49:2093 { KEYWORD_RETURN(FLOAT); } // GCC 2094 YY_BREAK 2095 case 50: 2090 2096 YY_RULE_SETUP 2091 2097 #line 219 "lex.ll" 2092 { KEYWORD_RETURN(F LOAT); } // GCC2093 YY_BREAK 2094 case 5 0:2098 { KEYWORD_RETURN(FOR); } 2099 YY_BREAK 2100 case 51: 2095 2101 YY_RULE_SETUP 2096 2102 #line 220 "lex.ll" 2097 { KEYWORD_RETURN(FOR ); }2098 YY_BREAK 2099 case 5 1:2103 { KEYWORD_RETURN(FORALL); } // CFA 2104 YY_BREAK 2105 case 52: 2100 2106 YY_RULE_SETUP 2101 2107 #line 221 "lex.ll" 2102 { KEYWORD_RETURN(FOR ALL); } // CFA2103 YY_BREAK 2104 case 5 2:2108 { KEYWORD_RETURN(FORTRAN); } 2109 YY_BREAK 2110 case 53: 2105 2111 YY_RULE_SETUP 2106 2112 #line 222 "lex.ll" 2107 { KEYWORD_RETURN(F ORTRAN); }2108 YY_BREAK 2109 case 5 3:2113 { KEYWORD_RETURN(FTYPE); } // CFA 2114 YY_BREAK 2115 case 54: 2110 2116 YY_RULE_SETUP 2111 2117 #line 223 "lex.ll" 2112 { KEYWORD_RETURN( FTYPE); } // CFA2113 YY_BREAK 2114 case 5 4:2118 { KEYWORD_RETURN(GENERIC); } // C11 2119 YY_BREAK 2120 case 55: 2115 2121 YY_RULE_SETUP 2116 2122 #line 224 "lex.ll" 2117 { KEYWORD_RETURN(G ENERIC); } // C112118 YY_BREAK 2119 case 5 5:2123 { KEYWORD_RETURN(GOTO); } 2124 YY_BREAK 2125 case 56: 2120 2126 YY_RULE_SETUP 2121 2127 #line 225 "lex.ll" 2122 { KEYWORD_RETURN( GOTO); }2123 YY_BREAK 2124 case 5 6:2128 { KEYWORD_RETURN(IF); } 2129 YY_BREAK 2130 case 57: 2125 2131 YY_RULE_SETUP 2126 2132 #line 226 "lex.ll" 2127 { KEYWORD_RETURN(I F); }2128 YY_BREAK 2129 case 5 7:2133 { KEYWORD_RETURN(IMAGINARY); } // C99 2134 YY_BREAK 2135 case 58: 2130 2136 YY_RULE_SETUP 2131 2137 #line 227 "lex.ll" 2132 { KEYWORD_RETURN(IMAGINARY); } // C992133 YY_BREAK 2134 case 5 8:2138 { KEYWORD_RETURN(IMAGINARY); } // GCC 2139 YY_BREAK 2140 case 59: 2135 2141 YY_RULE_SETUP 2136 2142 #line 228 "lex.ll" 2137 2143 { KEYWORD_RETURN(IMAGINARY); } // GCC 2138 2144 YY_BREAK 2139 case 59:2145 case 60: 2140 2146 YY_RULE_SETUP 2141 2147 #line 229 "lex.ll" 2142 { KEYWORD_RETURN(I MAGINARY); } // GCC2143 YY_BREAK 2144 case 6 0:2148 { KEYWORD_RETURN(INLINE); } // C99 2149 YY_BREAK 2150 case 61: 2145 2151 YY_RULE_SETUP 2146 2152 #line 230 "lex.ll" 2147 { KEYWORD_RETURN(INLINE); } // C992148 YY_BREAK 2149 case 6 1:2153 { KEYWORD_RETURN(INLINE); } // GCC 2154 YY_BREAK 2155 case 62: 2150 2156 YY_RULE_SETUP 2151 2157 #line 231 "lex.ll" 2152 2158 { KEYWORD_RETURN(INLINE); } // GCC 2153 2159 YY_BREAK 2154 case 6 2:2160 case 63: 2155 2161 YY_RULE_SETUP 2156 2162 #line 232 "lex.ll" 2157 { KEYWORD_RETURN(IN LINE); } // GCC2158 YY_BREAK 2159 case 6 3:2163 { KEYWORD_RETURN(INT); } 2164 YY_BREAK 2165 case 64: 2160 2166 YY_RULE_SETUP 2161 2167 #line 233 "lex.ll" 2162 { KEYWORD_RETURN(INT); } 2163 YY_BREAK 2164 case 6 4:2168 { KEYWORD_RETURN(INT); } // GCC 2169 YY_BREAK 2170 case 65: 2165 2171 YY_RULE_SETUP 2166 2172 #line 234 "lex.ll" 2167 { KEYWORD_RETURN( INT); } // GCC2168 YY_BREAK 2169 case 6 5:2173 { KEYWORD_RETURN(LABEL); } // GCC 2174 YY_BREAK 2175 case 66: 2170 2176 YY_RULE_SETUP 2171 2177 #line 235 "lex.ll" 2172 { KEYWORD_RETURN(L ABEL); } // GCC2173 YY_BREAK 2174 case 6 6:2178 { KEYWORD_RETURN(LONG); } 2179 YY_BREAK 2180 case 67: 2175 2181 YY_RULE_SETUP 2176 2182 #line 236 "lex.ll" 2177 { KEYWORD_RETURN(L ONG); }2178 YY_BREAK 2179 case 6 7:2183 { KEYWORD_RETURN(LVALUE); } // CFA 2184 YY_BREAK 2185 case 68: 2180 2186 YY_RULE_SETUP 2181 2187 #line 237 "lex.ll" 2182 { KEYWORD_RETURN( LVALUE); } // CFA2183 YY_BREAK 2184 case 6 8:2188 { KEYWORD_RETURN(NORETURN); } // C11 2189 YY_BREAK 2190 case 69: 2185 2191 YY_RULE_SETUP 2186 2192 #line 238 "lex.ll" 2187 { KEYWORD_RETURN( NORETURN); } // C112188 YY_BREAK 2189 case 69:2193 { KEYWORD_RETURN(OFFSETOF); } // GCC 2194 YY_BREAK 2195 case 70: 2190 2196 YY_RULE_SETUP 2191 2197 #line 239 "lex.ll" 2192 { KEYWORD_RETURN(O FFSETOF); } // GCC2193 YY_BREAK 2194 case 7 0:2198 { KEYWORD_RETURN(OTYPE); } // CFA 2199 YY_BREAK 2200 case 71: 2195 2201 YY_RULE_SETUP 2196 2202 #line 240 "lex.ll" 2197 { KEYWORD_RETURN( OTYPE); } // CFA2198 YY_BREAK 2199 case 7 1:2203 { KEYWORD_RETURN(REGISTER); } 2204 YY_BREAK 2205 case 72: 2200 2206 YY_RULE_SETUP 2201 2207 #line 241 "lex.ll" 2202 { KEYWORD_RETURN(RE GISTER); }2203 YY_BREAK 2204 case 7 2:2208 { KEYWORD_RETURN(RESTRICT); } // C99 2209 YY_BREAK 2210 case 73: 2205 2211 YY_RULE_SETUP 2206 2212 #line 242 "lex.ll" 2207 { KEYWORD_RETURN(RESTRICT); } // C992208 YY_BREAK 2209 case 7 3:2213 { KEYWORD_RETURN(RESTRICT); } // GCC 2214 YY_BREAK 2215 case 74: 2210 2216 YY_RULE_SETUP 2211 2217 #line 243 "lex.ll" 2212 2218 { KEYWORD_RETURN(RESTRICT); } // GCC 2213 2219 YY_BREAK 2214 case 7 4:2220 case 75: 2215 2221 YY_RULE_SETUP 2216 2222 #line 244 "lex.ll" 2217 { KEYWORD_RETURN(RE STRICT); } // GCC2218 YY_BREAK 2219 case 7 5:2223 { KEYWORD_RETURN(RETURN); } 2224 YY_BREAK 2225 case 76: 2220 2226 YY_RULE_SETUP 2221 2227 #line 245 "lex.ll" 2222 { KEYWORD_RETURN( RETURN); }2223 YY_BREAK 2224 case 7 6:2228 { KEYWORD_RETURN(SHORT); } 2229 YY_BREAK 2230 case 77: 2225 2231 YY_RULE_SETUP 2226 2232 #line 246 "lex.ll" 2227 { KEYWORD_RETURN(S HORT); }2228 YY_BREAK 2229 case 7 7:2233 { KEYWORD_RETURN(SIGNED); } 2234 YY_BREAK 2235 case 78: 2230 2236 YY_RULE_SETUP 2231 2237 #line 247 "lex.ll" 2232 { KEYWORD_RETURN(SIGNED); } 2233 YY_BREAK 2234 case 7 8:2238 { KEYWORD_RETURN(SIGNED); } // GCC 2239 YY_BREAK 2240 case 79: 2235 2241 YY_RULE_SETUP 2236 2242 #line 248 "lex.ll" 2237 2243 { KEYWORD_RETURN(SIGNED); } // GCC 2238 2244 YY_BREAK 2239 case 79:2245 case 80: 2240 2246 YY_RULE_SETUP 2241 2247 #line 249 "lex.ll" 2242 { KEYWORD_RETURN(SI GNED); } // GCC2243 YY_BREAK 2244 case 8 0:2248 { KEYWORD_RETURN(SIZEOF); } 2249 YY_BREAK 2250 case 81: 2245 2251 YY_RULE_SETUP 2246 2252 #line 250 "lex.ll" 2247 { KEYWORD_RETURN(S IZEOF); }2248 YY_BREAK 2249 case 8 1:2253 { KEYWORD_RETURN(STATIC); } 2254 YY_BREAK 2255 case 82: 2250 2256 YY_RULE_SETUP 2251 2257 #line 251 "lex.ll" 2252 { KEYWORD_RETURN(STATIC ); }2253 YY_BREAK 2254 case 8 2:2258 { KEYWORD_RETURN(STATICASSERT); } // C11 2259 YY_BREAK 2260 case 83: 2255 2261 YY_RULE_SETUP 2256 2262 #line 252 "lex.ll" 2257 { KEYWORD_RETURN(ST ATICASSERT); } // C112258 YY_BREAK 2259 case 8 3:2263 { KEYWORD_RETURN(STRUCT); } 2264 YY_BREAK 2265 case 84: 2260 2266 YY_RULE_SETUP 2261 2267 #line 253 "lex.ll" 2262 { KEYWORD_RETURN(S TRUCT); }2263 YY_BREAK 2264 case 8 4:2268 { KEYWORD_RETURN(SWITCH); } 2269 YY_BREAK 2270 case 85: 2265 2271 YY_RULE_SETUP 2266 2272 #line 254 "lex.ll" 2267 { KEYWORD_RETURN( SWITCH); }2268 YY_BREAK 2269 case 8 5:2273 { KEYWORD_RETURN(THREADLOCAL); } // C11 2274 YY_BREAK 2275 case 86: 2270 2276 YY_RULE_SETUP 2271 2277 #line 255 "lex.ll" 2272 { KEYWORD_RETURN(THR EADLOCAL); } // C112273 YY_BREAK 2274 case 8 6:2278 { KEYWORD_RETURN(THROW); } // CFA 2279 YY_BREAK 2280 case 87: 2275 2281 YY_RULE_SETUP 2276 2282 #line 256 "lex.ll" 2277 { KEYWORD_RETURN(THROW ); }// CFA2278 YY_BREAK 2279 case 8 7:2283 { KEYWORD_RETURN(THROWRESUME); } // CFA 2284 YY_BREAK 2285 case 88: 2280 2286 YY_RULE_SETUP 2281 2287 #line 257 "lex.ll" 2282 { KEYWORD_RETURN(T HROWRESUME); }// CFA2283 YY_BREAK 2284 case 8 8:2288 { KEYWORD_RETURN(TRAIT); } // CFA 2289 YY_BREAK 2290 case 89: 2285 2291 YY_RULE_SETUP 2286 2292 #line 258 "lex.ll" 2287 { KEYWORD_RETURN(TR AIT); } // CFA2288 YY_BREAK 2289 case 89:2293 { KEYWORD_RETURN(TRY); } // CFA 2294 YY_BREAK 2295 case 90: 2290 2296 YY_RULE_SETUP 2291 2297 #line 259 "lex.ll" 2292 { KEYWORD_RETURN(T RY); } // CFA2293 YY_BREAK 2294 case 9 0:2298 { KEYWORD_RETURN(TYPEDEF); } 2299 YY_BREAK 2300 case 91: 2295 2301 YY_RULE_SETUP 2296 2302 #line 260 "lex.ll" 2297 { KEYWORD_RETURN(TYPE DEF); }2298 YY_BREAK 2299 case 9 1:2303 { KEYWORD_RETURN(TYPEOF); } // GCC 2304 YY_BREAK 2305 case 92: 2300 2306 YY_RULE_SETUP 2301 2307 #line 261 "lex.ll" 2302 2308 { KEYWORD_RETURN(TYPEOF); } // GCC 2303 2309 YY_BREAK 2304 case 9 2:2310 case 93: 2305 2311 YY_RULE_SETUP 2306 2312 #line 262 "lex.ll" 2307 2313 { KEYWORD_RETURN(TYPEOF); } // GCC 2308 2314 YY_BREAK 2309 case 9 3:2315 case 94: 2310 2316 YY_RULE_SETUP 2311 2317 #line 263 "lex.ll" 2312 { KEYWORD_RETURN( TYPEOF); } // GCC2313 YY_BREAK 2314 case 9 4:2318 { KEYWORD_RETURN(UNION); } 2319 YY_BREAK 2320 case 95: 2315 2321 YY_RULE_SETUP 2316 2322 #line 264 "lex.ll" 2317 { KEYWORD_RETURN(UN ION); }2318 YY_BREAK 2319 case 9 5:2323 { KEYWORD_RETURN(UNSIGNED); } 2324 YY_BREAK 2325 case 96: 2320 2326 YY_RULE_SETUP 2321 2327 #line 265 "lex.ll" 2322 { KEYWORD_RETURN( UNSIGNED); }2323 YY_BREAK 2324 case 9 6:2328 { KEYWORD_RETURN(VALIST); } // GCC 2329 YY_BREAK 2330 case 97: 2325 2331 YY_RULE_SETUP 2326 2332 #line 266 "lex.ll" 2327 { KEYWORD_RETURN(V ALIST); } // GCC2328 YY_BREAK 2329 case 9 7:2333 { KEYWORD_RETURN(VOID); } 2334 YY_BREAK 2335 case 98: 2330 2336 YY_RULE_SETUP 2331 2337 #line 267 "lex.ll" 2332 { KEYWORD_RETURN(VO ID); }2333 YY_BREAK 2334 case 9 8:2338 { KEYWORD_RETURN(VOLATILE); } 2339 YY_BREAK 2340 case 99: 2335 2341 YY_RULE_SETUP 2336 2342 #line 268 "lex.ll" 2337 { KEYWORD_RETURN(VOLATILE); } 2338 YY_BREAK 2339 case 99:2343 { KEYWORD_RETURN(VOLATILE); } // GCC 2344 YY_BREAK 2345 case 100: 2340 2346 YY_RULE_SETUP 2341 2347 #line 269 "lex.ll" 2342 2348 { KEYWORD_RETURN(VOLATILE); } // GCC 2343 2349 YY_BREAK 2344 case 10 0:2350 case 101: 2345 2351 YY_RULE_SETUP 2346 2352 #line 270 "lex.ll" 2347 { KEYWORD_RETURN(VOLATILE); } // GCC2348 YY_BREAK2349 case 101:2350 YY_RULE_SETUP2351 #line 271 "lex.ll"2352 2353 { KEYWORD_RETURN(WHILE); } 2353 2354 YY_BREAK … … 2355 2356 case 102: 2356 2357 YY_RULE_SETUP 2358 #line 273 "lex.ll" 2359 { IDENTIFIER_RETURN(); } 2360 YY_BREAK 2361 case 103: 2362 YY_RULE_SETUP 2357 2363 #line 274 "lex.ll" 2364 { ATTRIBUTE_RETURN(); } 2365 YY_BREAK 2366 case 104: 2367 YY_RULE_SETUP 2368 #line 275 "lex.ll" 2369 { BEGIN BKQUOTE; } 2370 YY_BREAK 2371 case 105: 2372 YY_RULE_SETUP 2373 #line 276 "lex.ll" 2358 2374 { IDENTIFIER_RETURN(); } 2359 2375 YY_BREAK 2360 case 103: 2361 YY_RULE_SETUP 2362 #line 275 "lex.ll" 2363 { ATTRIBUTE_RETURN(); } 2364 YY_BREAK 2365 case 104: 2366 YY_RULE_SETUP 2367 #line 276 "lex.ll" 2368 { BEGIN BKQUOTE; } 2369 YY_BREAK 2370 case 105: 2376 case 106: 2371 2377 YY_RULE_SETUP 2372 2378 #line 277 "lex.ll" 2373 { IDENTIFIER_RETURN(); }2374 YY_BREAK2375 case 106:2376 YY_RULE_SETUP2377 #line 278 "lex.ll"2378 2379 { BEGIN 0; } 2379 2380 YY_BREAK … … 2381 2382 case 107: 2382 2383 YY_RULE_SETUP 2384 #line 280 "lex.ll" 2385 { NUMERIC_RETURN(ZERO); } // CFA 2386 YY_BREAK 2387 case 108: 2388 YY_RULE_SETUP 2383 2389 #line 281 "lex.ll" 2384 { NUMERIC_RETURN( ZERO); } // CFA2385 YY_BREAK 2386 case 10 8:2390 { NUMERIC_RETURN(ONE); } // CFA 2391 YY_BREAK 2392 case 109: 2387 2393 YY_RULE_SETUP 2388 2394 #line 282 "lex.ll" 2389 { NUMERIC_RETURN( ONE); } // CFA2390 YY_BREAK 2391 case 1 09:2395 { NUMERIC_RETURN(INTEGERconstant); } 2396 YY_BREAK 2397 case 110: 2392 2398 YY_RULE_SETUP 2393 2399 #line 283 "lex.ll" 2394 2400 { NUMERIC_RETURN(INTEGERconstant); } 2395 2401 YY_BREAK 2396 case 11 0:2402 case 111: 2397 2403 YY_RULE_SETUP 2398 2404 #line 284 "lex.ll" 2399 2405 { NUMERIC_RETURN(INTEGERconstant); } 2400 2406 YY_BREAK 2401 case 11 1:2407 case 112: 2402 2408 YY_RULE_SETUP 2403 2409 #line 285 "lex.ll" 2404 { NUMERIC_RETURN( INTEGERconstant); }2405 YY_BREAK 2406 case 11 2:2410 { NUMERIC_RETURN(FLOATINGconstant); } 2411 YY_BREAK 2412 case 113: 2407 2413 YY_RULE_SETUP 2408 2414 #line 286 "lex.ll" 2409 2415 { NUMERIC_RETURN(FLOATINGconstant); } 2410 2416 YY_BREAK 2411 case 113:2412 YY_RULE_SETUP2413 #line 287 "lex.ll"2414 { NUMERIC_RETURN(FLOATINGconstant); }2415 YY_BREAK2416 2417 /* character constant, allows empty value */ 2417 2418 case 114: 2418 2419 YY_RULE_SETUP 2420 #line 289 "lex.ll" 2421 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 2422 YY_BREAK 2423 case 115: 2424 YY_RULE_SETUP 2419 2425 #line 290 "lex.ll" 2420 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }2421 YY_BREAK2422 case 115:2423 YY_RULE_SETUP2424 #line 291 "lex.ll"2425 2426 { *strtext += std::string( yytext ); } 2426 2427 YY_BREAK … … 2428 2429 /* rule 116 can match eol */ 2429 2430 YY_RULE_SETUP 2430 #line 29 2"lex.ll"2431 #line 291 "lex.ll" 2431 2432 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); } 2432 2433 YY_BREAK … … 2435 2436 case 117: 2436 2437 YY_RULE_SETUP 2438 #line 295 "lex.ll" 2439 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 2440 YY_BREAK 2441 case 118: 2442 YY_RULE_SETUP 2437 2443 #line 296 "lex.ll" 2438 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }2439 YY_BREAK2440 case 118:2441 YY_RULE_SETUP2442 #line 297 "lex.ll"2443 2444 { *strtext += std::string( yytext ); } 2444 2445 YY_BREAK … … 2446 2447 /* rule 119 can match eol */ 2447 2448 YY_RULE_SETUP 2448 #line 29 8"lex.ll"2449 #line 297 "lex.ll" 2449 2450 { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); } 2450 2451 YY_BREAK … … 2453 2454 case 120: 2454 2455 YY_RULE_SETUP 2455 #line 30 2"lex.ll"2456 #line 301 "lex.ll" 2456 2457 { rm_underscore(); *strtext += std::string( yytext ); } 2457 2458 YY_BREAK … … 2459 2460 /* rule 121 can match eol */ 2460 2461 YY_RULE_SETUP 2462 #line 302 "lex.ll" 2463 {} // continuation (ALSO HANDLED BY CPP) 2464 YY_BREAK 2465 case 122: 2466 YY_RULE_SETUP 2461 2467 #line 303 "lex.ll" 2462 {} // continuation (ALSO HANDLED BY CPP)2463 YY_BREAK2464 case 122:2465 YY_RULE_SETUP2466 #line 304 "lex.ll"2467 2468 { *strtext += std::string( yytext ); } // unknown escape character 2468 2469 YY_BREAK … … 2470 2471 case 123: 2471 2472 YY_RULE_SETUP 2473 #line 306 "lex.ll" 2474 { ASCIIOP_RETURN(); } 2475 YY_BREAK 2476 case 124: 2477 YY_RULE_SETUP 2472 2478 #line 307 "lex.ll" 2473 2479 { ASCIIOP_RETURN(); } 2474 2480 YY_BREAK 2475 case 12 4:2481 case 125: 2476 2482 YY_RULE_SETUP 2477 2483 #line 308 "lex.ll" 2478 2484 { ASCIIOP_RETURN(); } 2479 2485 YY_BREAK 2480 case 12 5:2486 case 126: 2481 2487 YY_RULE_SETUP 2482 2488 #line 309 "lex.ll" 2483 2489 { ASCIIOP_RETURN(); } 2484 2490 YY_BREAK 2485 case 12 6:2491 case 127: 2486 2492 YY_RULE_SETUP 2487 2493 #line 310 "lex.ll" 2488 2494 { ASCIIOP_RETURN(); } 2489 2495 YY_BREAK 2490 case 12 7:2496 case 128: 2491 2497 YY_RULE_SETUP 2492 2498 #line 311 "lex.ll" 2493 2499 { ASCIIOP_RETURN(); } 2494 2500 YY_BREAK 2495 case 12 8:2501 case 129: 2496 2502 YY_RULE_SETUP 2497 2503 #line 312 "lex.ll" 2504 { ASCIIOP_RETURN(); } // also operator 2505 YY_BREAK 2506 case 130: 2507 YY_RULE_SETUP 2508 #line 313 "lex.ll" 2498 2509 { ASCIIOP_RETURN(); } 2499 2510 YY_BREAK 2500 case 129: 2501 YY_RULE_SETUP 2502 #line 313 "lex.ll" 2503 { ASCIIOP_RETURN(); } // also operator 2504 YY_BREAK 2505 case 130: 2511 case 131: 2506 2512 YY_RULE_SETUP 2507 2513 #line 314 "lex.ll" 2508 2514 { ASCIIOP_RETURN(); } 2509 2515 YY_BREAK 2510 case 13 1:2516 case 132: 2511 2517 YY_RULE_SETUP 2512 2518 #line 315 "lex.ll" 2513 { ASCIIOP_RETURN(); } 2514 YY_BREAK 2515 case 13 2:2519 { ASCIIOP_RETURN(); } // also operator 2520 YY_BREAK 2521 case 133: 2516 2522 YY_RULE_SETUP 2517 2523 #line 316 "lex.ll" 2518 { ASCIIOP_RETURN(); } // also operator2519 YY_BREAK2520 case 133:2521 YY_RULE_SETUP2522 #line 317 "lex.ll"2523 2524 { NAMEDOP_RETURN(ELLIPSIS); } 2524 2525 YY_BREAK … … 2526 2527 case 134: 2527 2528 YY_RULE_SETUP 2529 #line 319 "lex.ll" 2530 { RETURN_VAL('['); } 2531 YY_BREAK 2532 case 135: 2533 YY_RULE_SETUP 2528 2534 #line 320 "lex.ll" 2529 { RETURN_VAL(' ['); }2530 YY_BREAK 2531 case 13 5:2535 { RETURN_VAL(']'); } 2536 YY_BREAK 2537 case 136: 2532 2538 YY_RULE_SETUP 2533 2539 #line 321 "lex.ll" 2534 { RETURN_VAL(' ]'); }2535 YY_BREAK 2536 case 13 6:2540 { RETURN_VAL('{'); } 2541 YY_BREAK 2542 case 137: 2537 2543 YY_RULE_SETUP 2538 2544 #line 322 "lex.ll" 2539 { RETURN_VAL('{'); }2540 YY_BREAK2541 case 137:2542 YY_RULE_SETUP2543 #line 323 "lex.ll"2544 2545 { RETURN_VAL('}'); } 2545 2546 YY_BREAK … … 2547 2548 case 138: 2548 2549 YY_RULE_SETUP 2550 #line 325 "lex.ll" 2551 { ASCIIOP_RETURN(); } 2552 YY_BREAK 2553 case 139: 2554 YY_RULE_SETUP 2549 2555 #line 326 "lex.ll" 2550 2556 { ASCIIOP_RETURN(); } 2551 2557 YY_BREAK 2552 case 1 39:2558 case 140: 2553 2559 YY_RULE_SETUP 2554 2560 #line 327 "lex.ll" 2555 2561 { ASCIIOP_RETURN(); } 2556 2562 YY_BREAK 2557 case 14 0:2563 case 141: 2558 2564 YY_RULE_SETUP 2559 2565 #line 328 "lex.ll" 2560 2566 { ASCIIOP_RETURN(); } 2561 2567 YY_BREAK 2562 case 14 1:2568 case 142: 2563 2569 YY_RULE_SETUP 2564 2570 #line 329 "lex.ll" 2565 2571 { ASCIIOP_RETURN(); } 2566 2572 YY_BREAK 2567 case 14 2:2573 case 143: 2568 2574 YY_RULE_SETUP 2569 2575 #line 330 "lex.ll" 2570 2576 { ASCIIOP_RETURN(); } 2571 2577 YY_BREAK 2572 case 14 3:2578 case 144: 2573 2579 YY_RULE_SETUP 2574 2580 #line 331 "lex.ll" 2575 2581 { ASCIIOP_RETURN(); } 2576 2582 YY_BREAK 2577 case 14 4:2583 case 145: 2578 2584 YY_RULE_SETUP 2579 2585 #line 332 "lex.ll" 2580 2586 { ASCIIOP_RETURN(); } 2581 2587 YY_BREAK 2582 case 14 5:2588 case 146: 2583 2589 YY_RULE_SETUP 2584 2590 #line 333 "lex.ll" 2585 2591 { ASCIIOP_RETURN(); } 2586 2592 YY_BREAK 2587 case 14 6:2593 case 147: 2588 2594 YY_RULE_SETUP 2589 2595 #line 334 "lex.ll" 2590 2596 { ASCIIOP_RETURN(); } 2591 2597 YY_BREAK 2592 case 14 7:2598 case 148: 2593 2599 YY_RULE_SETUP 2594 2600 #line 335 "lex.ll" 2595 2601 { ASCIIOP_RETURN(); } 2596 2602 YY_BREAK 2597 case 14 8:2603 case 149: 2598 2604 YY_RULE_SETUP 2599 2605 #line 336 "lex.ll" 2600 2606 { ASCIIOP_RETURN(); } 2601 2607 YY_BREAK 2602 case 1 49:2608 case 150: 2603 2609 YY_RULE_SETUP 2604 2610 #line 337 "lex.ll" 2605 2611 { ASCIIOP_RETURN(); } 2606 2612 YY_BREAK 2607 case 15 0:2613 case 151: 2608 2614 YY_RULE_SETUP 2609 2615 #line 338 "lex.ll" 2610 2616 { ASCIIOP_RETURN(); } 2611 2617 YY_BREAK 2612 case 151:2613 YY_RULE_SETUP2614 #line 339 "lex.ll"2615 { ASCIIOP_RETURN(); }2616 YY_BREAK2617 2618 case 152: 2618 2619 YY_RULE_SETUP 2620 #line 340 "lex.ll" 2621 { NAMEDOP_RETURN(ICR); } 2622 YY_BREAK 2623 case 153: 2624 YY_RULE_SETUP 2619 2625 #line 341 "lex.ll" 2620 { NAMEDOP_RETURN( ICR); }2621 YY_BREAK 2622 case 15 3:2626 { NAMEDOP_RETURN(DECR); } 2627 YY_BREAK 2628 case 154: 2623 2629 YY_RULE_SETUP 2624 2630 #line 342 "lex.ll" 2625 { NAMEDOP_RETURN( DECR); }2626 YY_BREAK 2627 case 15 4:2631 { NAMEDOP_RETURN(EQ); } 2632 YY_BREAK 2633 case 155: 2628 2634 YY_RULE_SETUP 2629 2635 #line 343 "lex.ll" 2630 { NAMEDOP_RETURN( EQ); }2631 YY_BREAK 2632 case 15 5:2636 { NAMEDOP_RETURN(NE); } 2637 YY_BREAK 2638 case 156: 2633 2639 YY_RULE_SETUP 2634 2640 #line 344 "lex.ll" 2635 { NAMEDOP_RETURN( NE); }2636 YY_BREAK 2637 case 15 6:2641 { NAMEDOP_RETURN(LS); } 2642 YY_BREAK 2643 case 157: 2638 2644 YY_RULE_SETUP 2639 2645 #line 345 "lex.ll" 2640 { NAMEDOP_RETURN( LS); }2641 YY_BREAK 2642 case 15 7:2646 { NAMEDOP_RETURN(RS); } 2647 YY_BREAK 2648 case 158: 2643 2649 YY_RULE_SETUP 2644 2650 #line 346 "lex.ll" 2645 { NAMEDOP_RETURN( RS); }2646 YY_BREAK 2647 case 15 8:2651 { NAMEDOP_RETURN(LE); } 2652 YY_BREAK 2653 case 159: 2648 2654 YY_RULE_SETUP 2649 2655 #line 347 "lex.ll" 2650 { NAMEDOP_RETURN( LE); }2651 YY_BREAK 2652 case 1 59:2656 { NAMEDOP_RETURN(GE); } 2657 YY_BREAK 2658 case 160: 2653 2659 YY_RULE_SETUP 2654 2660 #line 348 "lex.ll" 2655 { NAMEDOP_RETURN( GE); }2656 YY_BREAK 2657 case 16 0:2661 { NAMEDOP_RETURN(ANDAND); } 2662 YY_BREAK 2663 case 161: 2658 2664 YY_RULE_SETUP 2659 2665 #line 349 "lex.ll" 2660 { NAMEDOP_RETURN( ANDAND); }2661 YY_BREAK 2662 case 16 1:2666 { NAMEDOP_RETURN(OROR); } 2667 YY_BREAK 2668 case 162: 2663 2669 YY_RULE_SETUP 2664 2670 #line 350 "lex.ll" 2665 { NAMEDOP_RETURN( OROR); }2666 YY_BREAK 2667 case 16 2:2671 { NAMEDOP_RETURN(ARROW); } 2672 YY_BREAK 2673 case 163: 2668 2674 YY_RULE_SETUP 2669 2675 #line 351 "lex.ll" 2670 { NAMEDOP_RETURN( ARROW); }2671 YY_BREAK 2672 case 16 3:2676 { NAMEDOP_RETURN(PLUSassign); } 2677 YY_BREAK 2678 case 164: 2673 2679 YY_RULE_SETUP 2674 2680 #line 352 "lex.ll" 2675 { NAMEDOP_RETURN( PLUSassign); }2676 YY_BREAK 2677 case 16 4:2681 { NAMEDOP_RETURN(MINUSassign); } 2682 YY_BREAK 2683 case 165: 2678 2684 YY_RULE_SETUP 2679 2685 #line 353 "lex.ll" 2680 { NAMEDOP_RETURN(M INUSassign); }2681 YY_BREAK 2682 case 16 5:2686 { NAMEDOP_RETURN(MULTassign); } 2687 YY_BREAK 2688 case 166: 2683 2689 YY_RULE_SETUP 2684 2690 #line 354 "lex.ll" 2685 { NAMEDOP_RETURN( MULTassign); }2686 YY_BREAK 2687 case 16 6:2691 { NAMEDOP_RETURN(DIVassign); } 2692 YY_BREAK 2693 case 167: 2688 2694 YY_RULE_SETUP 2689 2695 #line 355 "lex.ll" 2690 { NAMEDOP_RETURN( DIVassign); }2691 YY_BREAK 2692 case 16 7:2696 { NAMEDOP_RETURN(MODassign); } 2697 YY_BREAK 2698 case 168: 2693 2699 YY_RULE_SETUP 2694 2700 #line 356 "lex.ll" 2695 { NAMEDOP_RETURN( MODassign); }2696 YY_BREAK 2697 case 16 8:2701 { NAMEDOP_RETURN(ANDassign); } 2702 YY_BREAK 2703 case 169: 2698 2704 YY_RULE_SETUP 2699 2705 #line 357 "lex.ll" 2700 { NAMEDOP_RETURN( ANDassign); }2701 YY_BREAK 2702 case 1 69:2706 { NAMEDOP_RETURN(ORassign); } 2707 YY_BREAK 2708 case 170: 2703 2709 YY_RULE_SETUP 2704 2710 #line 358 "lex.ll" 2705 { NAMEDOP_RETURN( ORassign); }2706 YY_BREAK 2707 case 17 0:2711 { NAMEDOP_RETURN(ERassign); } 2712 YY_BREAK 2713 case 171: 2708 2714 YY_RULE_SETUP 2709 2715 #line 359 "lex.ll" 2710 { NAMEDOP_RETURN( ERassign); }2711 YY_BREAK 2712 case 17 1:2716 { NAMEDOP_RETURN(LSassign); } 2717 YY_BREAK 2718 case 172: 2713 2719 YY_RULE_SETUP 2714 2720 #line 360 "lex.ll" 2715 { NAMEDOP_RETURN(LSassign); }2716 YY_BREAK2717 case 172:2718 YY_RULE_SETUP2719 #line 361 "lex.ll"2720 2721 { NAMEDOP_RETURN(RSassign); } 2721 2722 YY_BREAK 2722 2723 case 173: 2723 2724 YY_RULE_SETUP 2724 #line 36 3"lex.ll"2725 #line 362 "lex.ll" 2725 2726 { NAMEDOP_RETURN(ATassign); } 2726 2727 YY_BREAK 2728 /* CFA, operator identifier */ 2727 2729 case 174: 2728 2730 YY_RULE_SETUP 2729 #line 364 "lex.ll" 2730 { NAMEDOP_RETURN(REFassign); } 2731 YY_BREAK 2732 /* CFA, operator identifier */ 2731 #line 365 "lex.ll" 2732 { IDENTIFIER_RETURN(); } // unary 2733 YY_BREAK 2733 2734 case 175: 2734 2735 YY_RULE_SETUP 2736 #line 366 "lex.ll" 2737 { IDENTIFIER_RETURN(); } 2738 YY_BREAK 2739 case 176: 2740 YY_RULE_SETUP 2735 2741 #line 367 "lex.ll" 2736 { IDENTIFIER_RETURN(); } // unary2737 YY_BREAK 2738 case 17 6:2742 { IDENTIFIER_RETURN(); } 2743 YY_BREAK 2744 case 177: 2739 2745 YY_RULE_SETUP 2740 2746 #line 368 "lex.ll" 2741 { IDENTIFIER_RETURN(); }2742 YY_BREAK2743 case 177:2744 YY_RULE_SETUP2745 #line 369 "lex.ll"2746 { IDENTIFIER_RETURN(); }2747 YY_BREAK2748 case 178:2749 YY_RULE_SETUP2750 #line 370 "lex.ll"2751 2747 { IDENTIFIER_RETURN(); } // binary 2752 2748 YY_BREAK … … 2777 2773 an argument list. 2778 2774 */ 2779 case 17 9:2780 YY_RULE_SETUP 2781 #line 39 7"lex.ll"2775 case 178: 2776 YY_RULE_SETUP 2777 #line 395 "lex.ll" 2782 2778 { 2783 2779 // 1 or 2 character unary operator ? … … 2792 2788 YY_BREAK 2793 2789 /* unknown characters */ 2790 case 179: 2791 YY_RULE_SETUP 2792 #line 407 "lex.ll" 2793 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); } 2794 YY_BREAK 2794 2795 case 180: 2795 2796 YY_RULE_SETUP 2796 2797 #line 409 "lex.ll" 2797 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }2798 YY_BREAK2799 case 181:2800 YY_RULE_SETUP2801 #line 411 "lex.ll"2802 2798 ECHO; 2803 2799 YY_BREAK 2804 #line 280 5"Parser/lex.cc"2800 #line 2801 "Parser/lex.cc" 2805 2801 case YY_STATE_EOF(INITIAL): 2806 2802 case YY_STATE_EOF(COMMENT): … … 3099 3095 { 3100 3096 yy_current_state = (int) yy_def[yy_current_state]; 3101 if ( yy_current_state >= 88 9)3097 if ( yy_current_state >= 888 ) 3102 3098 yy_c = yy_meta[(unsigned int) yy_c]; 3103 3099 } … … 3127 3123 { 3128 3124 yy_current_state = (int) yy_def[yy_current_state]; 3129 if ( yy_current_state >= 88 9)3125 if ( yy_current_state >= 888 ) 3130 3126 yy_c = yy_meta[(unsigned int) yy_c]; 3131 3127 } 3132 3128 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 3133 yy_is_jam = (yy_current_state == 88 8);3129 yy_is_jam = (yy_current_state == 887); 3134 3130 3135 3131 return yy_is_jam ? 0 : yy_current_state; … … 3777 3773 #define YYTABLES_NAME "yytables" 3778 3774 3779 #line 4 11"lex.ll"3775 #line 409 "lex.ll" 3780 3776 3781 3777 -
src/Parser/lex.ll
rc2931ea rf1ee72e 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Mon Jun 6 18:08:27201613 * Update Count : 45 112 * Last Modified On : Wed Jun 22 21:20:18 2016 13 * Update Count : 456 14 14 */ 15 15 … … 49 49 50 50 void rm_underscore() { 51 // remove underscores in numeric constant52 int j= 0;51 // Remove underscores in numeric constant by copying the non-underscore characters to the front of the string. 52 yyleng = 0; 53 53 for ( int i = 0; yytext[i] != '\0'; i += 1 ) { 54 54 if ( yytext[i] != '_' ) { 55 yytext[ j] = yytext[i];56 j+= 1;55 yytext[yyleng] = yytext[i]; 56 yyleng += 1; 57 57 } // if 58 58 } // for 59 yyleng = j;60 59 yytext[yyleng] = '\0'; 61 60 } … … 121 120 h_white [ ]|{h_tab} 122 121 123 // o perators122 // overloadable operators 124 123 op_unary_only "~"|"!" 125 124 op_unary_binary "+"|"-"|"*" … … 129 128 op_binary_only "/"|"%"|"^"|"&"|"|"|"<"|">"|"="|"=="|"!="|"<<"|">>"|"<="|">="|"+="|"-="|"*="|"/="|"%="|"&="|"|="|"^="|"<<="|">>=" 130 129 op_binary_over {op_unary_binary}|{op_binary_only} 131 op_binary_not_over "?"|"->"|"&&"|"||"132 operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over}130 // op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@=" 131 // operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over} 133 132 134 133 %x COMMENT … … 362 361 363 362 "@=" { NAMEDOP_RETURN(ATassign); } 364 ":=" { NAMEDOP_RETURN(REFassign); }365 363 366 364 /* CFA, operator identifier */ -
src/Parser/parser.cc
rc2931ea rf1ee72e 67 67 68 68 /* Line 268 of yacc.c */ 69 #line 4 4"parser.yy"69 #line 42 "parser.yy" 70 70 71 71 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 223 223 ORassign = 361, 224 224 ATassign = 362, 225 REFassign = 363, 226 THEN = 364 225 THEN = 363 227 226 }; 228 227 #endif … … 333 332 #define ORassign 361 334 333 #define ATassign 362 335 #define REFassign 363 336 #define THEN 364 334 #define THEN 363 337 335 338 336 … … 344 342 345 343 /* Line 293 of yacc.c */ 346 #line 11 2"parser.yy"344 #line 110 "parser.yy" 347 345 348 346 Token tok; … … 361 359 362 360 /* Line 293 of yacc.c */ 363 #line 36 4"Parser/parser.cc"361 #line 362 "Parser/parser.cc" 364 362 } YYSTYPE; 365 363 # define YYSTYPE_IS_TRIVIAL 1 … … 373 371 374 372 /* Line 343 of yacc.c */ 375 #line 37 6"Parser/parser.cc"373 #line 374 "Parser/parser.cc" 376 374 377 375 #ifdef short … … 592 590 #define YYFINAL 251 593 591 /* YYLAST -- Last index in YYTABLE. */ 594 #define YYLAST 11 311592 #define YYLAST 11428 595 593 596 594 /* YYNTOKENS -- Number of terminals. */ 597 #define YYNTOKENS 13 4595 #define YYNTOKENS 133 598 596 /* YYNNTS -- Number of nonterminals. */ 599 597 #define YYNNTS 241 600 598 /* YYNRULES -- Number of rules. */ 601 #define YYNRULES 75 6599 #define YYNRULES 755 602 600 /* YYNRULES -- Number of states. */ 603 #define YYNSTATES 158 3601 #define YYNSTATES 1581 604 602 605 603 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 606 604 #define YYUNDEFTOK 2 607 #define YYMAXUTOK 36 4605 #define YYMAXUTOK 363 608 606 609 607 #define YYTRANSLATE(YYX) \ … … 616 614 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 617 615 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 618 2, 2, 2, 12 3, 2, 2, 2, 126, 120, 2,619 1 10, 111, 119, 121, 117, 122, 114, 125, 2, 2,620 2, 2, 2, 2, 2, 2, 2, 2, 11 8, 133,621 12 7, 132, 128, 131, 2, 2, 2, 2, 2, 2,616 2, 2, 2, 122, 2, 2, 2, 125, 119, 2, 617 109, 110, 118, 120, 116, 121, 113, 124, 2, 2, 618 2, 2, 2, 2, 2, 2, 2, 2, 117, 132, 619 126, 131, 127, 130, 2, 2, 2, 2, 2, 2, 622 620 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 623 621 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 624 2, 11 2, 2, 113, 129, 2, 2, 2, 2, 2,622 2, 111, 2, 112, 128, 2, 2, 2, 2, 2, 625 623 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 626 624 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 627 2, 2, 2, 11 5, 130, 116, 124, 2, 2, 2,625 2, 2, 2, 114, 129, 115, 123, 2, 2, 2, 628 626 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 629 627 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, … … 649 647 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 650 648 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 651 105, 106, 107, 108 , 109649 105, 106, 107, 108 652 650 }; 653 651 … … 668 666 307, 311, 313, 317, 319, 323, 325, 329, 331, 335, 669 667 337, 341, 343, 349, 354, 360, 362, 364, 368, 372, 670 37 6, 379, 380, 382, 385, 391, 398, 406, 408, 412,671 41 4, 416, 418, 420, 422, 424, 426, 428, 430, 432,672 434, 43 8, 439, 441, 443, 445, 447, 449, 451, 453,673 45 5, 457, 464, 469, 472, 480, 482, 486, 488, 491,674 49 3, 496, 498, 501, 504, 510, 518, 524, 534, 540,675 5 50, 552, 556, 558, 560, 564, 568, 571, 573, 576,676 57 9, 580, 582, 585, 589, 590, 592, 595, 599, 603,677 60 8, 609, 611, 613, 616, 622, 630, 637, 644, 649,678 65 3, 658, 661, 665, 668, 672, 676, 680, 684, 690,679 694, 69 8, 703, 705, 711, 718, 724, 731, 741, 752,680 76 2, 773, 776, 778, 781, 784, 787, 789, 796, 805,681 8 16, 829, 844, 845, 847, 848, 850, 852, 856, 861,682 86 9, 870, 872, 876, 878, 882, 884, 886, 888, 892,683 89 4, 896, 898, 902, 903, 905, 909, 914, 916, 920,684 92 2, 924, 928, 932, 936, 940, 944, 947, 951, 958,685 962, 96 6, 971, 973, 976, 979, 983, 989, 998, 1006,686 101 4, 1020, 1030, 1033, 1036, 1042, 1046, 1052, 1057, 1061,687 106 6, 1071, 1079, 1083, 1087, 1091, 1095, 1100, 1107, 1109,688 11 11, 1113, 1115, 1117, 1119, 1121, 1123, 1124, 1126, 1128,689 11 31, 1133, 1135, 1137, 1139, 1141, 1143, 1145, 1146, 1152,690 115 4, 1157, 1161, 1163, 1166, 1168, 1170, 1172, 1174, 1176,691 117 8, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196,692 119 8, 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1215, 1218,693 1222, 122 6, 1228, 1232, 1234, 1237, 1240, 1243, 1248, 1253,694 125 8, 1263, 1265, 1268, 1271, 1275, 1277, 1280, 1283, 1285,695 128 8, 1291, 1295, 1297, 1300, 1303, 1305, 1307, 1312, 1315,696 131 6, 1323, 1331, 1334, 1337, 1340, 1342, 1345, 1348, 1352,697 1355, 135 9, 1361, 1364, 1368, 1371, 1374, 1379, 1380, 1382,698 138 5, 1388, 1390, 1391, 1393, 1396, 1399, 1405, 1408, 1409,699 141 7, 1420, 1425, 1426, 1429, 1430, 1432, 1434, 1436, 1442,700 14 48, 1454, 1456, 1462, 1468, 1478, 1480, 1486, 1487, 1489,701 149 1, 1497, 1499, 1501, 1507, 1513, 1515, 1519, 1523, 1528,702 15 30, 1532, 1534, 1536, 1539, 1541, 1545, 1549, 1551, 1554,703 1556, 15 60, 1562, 1564, 1566, 1568, 1570, 1572, 1574, 1576,704 157 8, 1580, 1582, 1585, 1587, 1589, 1591, 1594, 1595, 1598,705 1 601, 1603, 1608, 1609, 1611, 1614, 1618, 1623, 1626, 1629,706 163 1, 1634, 1636, 1639, 1645, 1651, 1659, 1666, 1668, 1671,707 1674, 167 8, 1680, 1683, 1686, 1691, 1694, 1699, 1700, 1705,708 170 8, 1710, 1712, 1714, 1715, 1718, 1724, 1730, 1744, 1746,709 1748, 1752, 175 6, 1759, 1763, 1767, 1770, 1775, 1777, 1784,710 179 4, 1795, 1807, 1809, 1813, 1817, 1821, 1823, 1825, 1831,711 183 4, 1840, 1841, 1843, 1845, 1849, 1850, 1852, 1854, 1856,712 185 8, 1859, 1866, 1869, 1871, 1874, 1879, 1882, 1886, 1890,713 189 4, 1899, 1905, 1911, 1917, 1924, 1926, 1928, 1930, 1934,714 193 5, 1941, 1942, 1944, 1946, 1949, 1956, 1958, 1962, 1963,715 196 5, 1970, 1972, 1974, 1976, 1978, 1981, 1983, 1986, 1989,716 1991, 199 5, 1998, 2002, 2006, 2009, 2014, 2019, 2023, 2032,717 203 6, 2039, 2041, 2044, 2051, 2060, 2064, 2067, 2071, 2075,718 208 0, 2085, 2089, 2091, 2093, 2095, 2100, 2107, 2111, 2114,719 2118, 212 2, 2127, 2132, 2136, 2139, 2141, 2144, 2147, 2149,720 215 3, 2156, 2160, 2164, 2167, 2172, 2177, 2181, 2188, 2197,721 220 1, 2204, 2206, 2209, 2212, 2215, 2219, 2223, 2226, 2231,722 2236, 224 0, 2247, 2256, 2260, 2263, 2265, 2268, 2271, 2273,723 227 5, 2278, 2282, 2286, 2289, 2294, 2301, 2310, 2312, 2315,724 231 8, 2320, 2323, 2326, 2330, 2334, 2336, 2341, 2346, 2350,725 23 56, 2365, 2369, 2372, 2376, 2378, 2384, 2390, 2397, 2404,726 240 6, 2409, 2412, 2414, 2417, 2420, 2424, 2428, 2430, 2435,727 2440, 244 4, 2450, 2459, 2463, 2465, 2468, 2470, 2473, 2480,728 248 6, 2493, 2501, 2509, 2511, 2514, 2517, 2519, 2522, 2525,729 2529, 253 3, 2535, 2540, 2545, 2549, 2558, 2562, 2564, 2566,730 256 9, 2571, 2573, 2576, 2580, 2583, 2587, 2590, 2594, 2598,731 260 1, 2606, 2610, 2613, 2617, 2620, 2625, 2629, 2632, 2639,732 264 6, 2653, 2661, 2663, 2666, 2668, 2670, 2672, 2675, 2679,733 2682, 268 6, 2689, 2693, 2697, 2702, 2705, 2709, 2714, 2717,734 272 3, 2729, 2736, 2743, 2744, 2746, 2747668 375, 376, 378, 381, 387, 394, 402, 404, 408, 410, 669 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 670 434, 435, 437, 439, 441, 443, 445, 447, 449, 451, 671 453, 460, 465, 468, 476, 478, 482, 484, 487, 489, 672 492, 494, 497, 500, 506, 514, 520, 530, 536, 546, 673 548, 552, 554, 556, 560, 564, 567, 569, 572, 575, 674 576, 578, 581, 585, 586, 588, 591, 595, 599, 604, 675 605, 607, 609, 612, 618, 626, 633, 640, 645, 649, 676 654, 657, 661, 664, 668, 672, 676, 680, 686, 690, 677 694, 699, 701, 707, 714, 720, 727, 737, 748, 758, 678 769, 772, 774, 777, 780, 783, 785, 792, 801, 812, 679 825, 840, 841, 843, 844, 846, 848, 852, 857, 865, 680 866, 868, 872, 874, 878, 880, 882, 884, 888, 890, 681 892, 894, 898, 899, 901, 905, 910, 912, 916, 918, 682 920, 924, 928, 932, 936, 940, 943, 947, 954, 958, 683 962, 967, 969, 972, 975, 979, 985, 994, 1002, 1010, 684 1016, 1026, 1029, 1032, 1038, 1042, 1048, 1053, 1057, 1062, 685 1067, 1075, 1079, 1083, 1087, 1091, 1096, 1103, 1105, 1107, 686 1109, 1111, 1113, 1115, 1117, 1119, 1120, 1122, 1124, 1127, 687 1129, 1131, 1133, 1135, 1137, 1139, 1141, 1142, 1148, 1150, 688 1153, 1157, 1159, 1162, 1164, 1166, 1168, 1170, 1172, 1174, 689 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 690 1196, 1198, 1200, 1202, 1204, 1206, 1208, 1211, 1214, 1218, 691 1222, 1224, 1228, 1230, 1233, 1236, 1239, 1244, 1249, 1254, 692 1259, 1261, 1264, 1267, 1271, 1273, 1276, 1279, 1281, 1284, 693 1287, 1291, 1293, 1296, 1299, 1301, 1303, 1308, 1311, 1312, 694 1319, 1327, 1330, 1333, 1336, 1338, 1341, 1344, 1348, 1351, 695 1355, 1357, 1360, 1364, 1367, 1370, 1375, 1376, 1378, 1381, 696 1384, 1386, 1387, 1389, 1392, 1395, 1401, 1404, 1405, 1413, 697 1416, 1421, 1422, 1425, 1426, 1428, 1430, 1432, 1438, 1444, 698 1450, 1452, 1458, 1464, 1474, 1476, 1482, 1483, 1485, 1487, 699 1493, 1495, 1497, 1503, 1509, 1511, 1515, 1519, 1524, 1526, 700 1528, 1530, 1532, 1535, 1537, 1541, 1545, 1547, 1550, 1552, 701 1556, 1558, 1560, 1562, 1564, 1566, 1568, 1570, 1572, 1574, 702 1576, 1578, 1581, 1583, 1585, 1587, 1590, 1591, 1594, 1597, 703 1599, 1604, 1605, 1607, 1610, 1614, 1619, 1622, 1625, 1627, 704 1630, 1632, 1635, 1641, 1647, 1655, 1662, 1664, 1667, 1670, 705 1674, 1676, 1679, 1682, 1687, 1690, 1695, 1696, 1701, 1704, 706 1706, 1708, 1710, 1711, 1714, 1720, 1726, 1740, 1742, 1744, 707 1748, 1752, 1755, 1759, 1763, 1766, 1771, 1773, 1780, 1790, 708 1791, 1803, 1805, 1809, 1813, 1817, 1819, 1821, 1827, 1830, 709 1836, 1837, 1839, 1841, 1845, 1846, 1848, 1850, 1852, 1854, 710 1855, 1862, 1865, 1867, 1870, 1875, 1878, 1882, 1886, 1890, 711 1895, 1901, 1907, 1913, 1920, 1922, 1924, 1926, 1930, 1931, 712 1937, 1938, 1940, 1942, 1945, 1952, 1954, 1958, 1959, 1961, 713 1966, 1968, 1970, 1972, 1974, 1977, 1979, 1982, 1985, 1987, 714 1991, 1994, 1998, 2002, 2005, 2010, 2015, 2019, 2028, 2032, 715 2035, 2037, 2040, 2047, 2056, 2060, 2063, 2067, 2071, 2076, 716 2081, 2085, 2087, 2089, 2091, 2096, 2103, 2107, 2110, 2114, 717 2118, 2123, 2128, 2132, 2135, 2137, 2140, 2143, 2145, 2149, 718 2152, 2156, 2160, 2163, 2168, 2173, 2177, 2184, 2193, 2197, 719 2200, 2202, 2205, 2208, 2211, 2215, 2219, 2222, 2227, 2232, 720 2236, 2243, 2252, 2256, 2259, 2261, 2264, 2267, 2269, 2271, 721 2274, 2278, 2282, 2285, 2290, 2297, 2306, 2308, 2311, 2314, 722 2316, 2319, 2322, 2326, 2330, 2332, 2337, 2342, 2346, 2352, 723 2361, 2365, 2368, 2372, 2374, 2380, 2386, 2393, 2400, 2402, 724 2405, 2408, 2410, 2413, 2416, 2420, 2424, 2426, 2431, 2436, 725 2440, 2446, 2455, 2459, 2461, 2464, 2466, 2469, 2476, 2482, 726 2489, 2497, 2505, 2507, 2510, 2513, 2515, 2518, 2521, 2525, 727 2529, 2531, 2536, 2541, 2545, 2554, 2558, 2560, 2562, 2565, 728 2567, 2569, 2572, 2576, 2579, 2583, 2586, 2590, 2594, 2597, 729 2602, 2606, 2609, 2613, 2616, 2621, 2625, 2628, 2635, 2642, 730 2649, 2657, 2659, 2662, 2664, 2666, 2668, 2671, 2675, 2678, 731 2682, 2685, 2689, 2693, 2698, 2701, 2705, 2710, 2713, 2719, 732 2725, 2732, 2739, 2740, 2742, 2743 735 733 }; 736 734 … … 738 736 static const yytype_int16 yyrhs[] = 739 737 { 740 30 3, 0, -1, -1, -1, 79, -1, 80, -1, 81,741 -1, 72, -1, 76, -1, 14 1, -1, 72, -1, 76,742 -1, 72, -1, 14 1, -1, 83, -1, 84, -1, 82,743 -1, 14 2, 82, -1, 72, -1, 141, -1, 110, 170,744 11 1, -1, 110, 174, 111, -1, 143, -1, 144, 112,745 13 5, 165, 136, 113, -1, 144, 110, 145, 111, -1,746 14 4, 114, 140, -1, 144, 114, 112, 135, 147, 136,747 11 3, -1, 144, 85, 140, -1, 144, 85, 112, 135,748 14 7, 136, 113, -1, 144, 86, -1, 144, 87, -1,749 1 10, 276, 111, 115, 280, 373, 116, -1, 144, 115,750 14 5, 116, -1, 146, -1, 145, 117, 146, -1, -1,751 16 5, -1, 140, 118, 165, -1, 112, 135, 165, 136,752 11 3, 118, 165, -1, 112, 135, 165, 117, 168, 136,753 11 3, 118, 165, -1, 148, -1, 147, 117, 148, -1,754 1 40, -1, 140, 114, 148, -1, 140, 114, 112, 135,755 14 7, 136, 113, -1, 140, 85, 148, -1, 140, 85,756 11 2, 135, 147, 136, 113, -1, 144, -1, 137, -1,757 14 2, -1, 40, 152, -1, 150, 152, -1, 151, 152,758 -1, 86, 14 9, -1, 87, 149, -1, 37, 149, -1,759 37, 1 10, 276, 111, -1, 38, 110, 276, 117, 140,760 11 1, -1, 76, -1, 76, 110, 277, 111, -1, 76,761 1 10, 146, 111, -1, 66, 149, -1, 66, 110, 276,762 11 1, -1, 94, 140, -1, 119, -1, 120, -1, 121,763 -1, 12 2, -1, 123, -1, 124, -1, 149, -1, 110,764 27 6, 111, 152, -1, 110, 276, 111, 167, -1, 152,765 -1, 15 3, 119, 152, -1, 153, 125, 152, -1, 153,766 12 6, 152, -1, 153, -1, 154, 121, 153, -1, 154,767 12 2, 153, -1, 154, -1, 155, 88, 154, -1, 155,768 89, 15 4, -1, 155, -1, 156, 127, 155, -1, 156,769 12 8, 155, -1, 156, 90, 155, -1, 156, 91, 155,770 -1, 15 6, -1, 157, 92, 156, -1, 157, 93, 156,771 -1, 15 7, -1, 158, 120, 157, -1, 158, -1, 159,772 12 9, 158, -1, 159, -1, 160, 130, 159, -1, 160,773 -1, 16 1, 94, 160, -1, 161, -1, 162, 95, 161,774 -1, 16 2, -1, 162, 131, 170, 118, 163, -1, 162,775 13 1, 118, 163, -1, 162, 131, 170, 118, 167, -1,776 16 3, -1, 163, -1, 149, 132, 165, -1, 149, 108,777 16 5, -1, 149, 169, 165, -1, 167, 374, -1, -1,778 165, -1, 112, 113, -1, 112, 135, 165, 136, 113,779 -1, 112, 135, 117, 168, 136, 113, -1, 112, 135,780 1 65, 117, 168, 136, 113, -1, 166, -1, 168, 117,781 166, -1, 97, -1, 98, -1, 99, -1, 100, -1,782 10 1, -1, 102, -1, 103, -1, 104, -1, 105, -1,783 1 06, -1, 165, -1, 170, 117, 165, -1, -1, 170,784 -1, 17 3, -1, 174, -1, 178, -1, 179, -1, 191,785 -1, 19 3, -1, 194, -1, 199, -1, 129, 144, 115,786 1 45, 116, 133, -1, 140, 118, 313, 172, -1, 115,787 1 16, -1, 115, 135, 135, 210, 175, 136, 116, -1,788 17 6, -1, 175, 135, 176, -1, 213, -1, 40, 213,789 -1, 309, -1, 172, 136, -1, 172, -1, 177, 172,790 -1, 171, 133, -1, 41, 110, 170, 111, 172, -1,791 41, 110, 170, 111, 172, 42, 172, -1, 43, 110,792 170, 111, 184, -1, 43, 110, 170, 111, 115, 135,793 206, 185, 116, -1, 53, 110, 170, 111, 184, -1,794 53, 110, 170, 111, 115, 135, 206, 187, 116, -1,795 16 4, -1, 164, 96, 164, -1, 311, -1, 180, -1,796 181, 117, 180, -1, 44, 181, 118, -1, 45, 118,797 -1, 182, -1, 183, 182, -1, 183, 172, -1, -1,798 186, -1, 183, 177, -1, 186, 183, 177, -1, -1,799 188, -1, 183, 190, -1, 183, 177, 189, -1, 188,800 18 3, 190, -1, 188, 183, 177, 189, -1, -1, 190,801 -1, 56, -1, 56, 133, -1, 47, 110, 170, 111,802 172, -1, 46, 172, 47, 110, 170, 111, 133, -1,803 48, 110, 135, 192, 111, 172, -1, 171, 136, 133,804 171, 133, 171, -1, 213, 171, 133, 171, -1, 51,805 1 40, 133, -1, 51, 119, 170, 133, -1, 50, 133,806 -1, 50, 140, 133, -1, 49, 133, -1, 49, 140,807 13 3, -1, 52, 171, 133, -1, 61, 166, 133, -1,808 62, 16 6, 133, -1, 62, 166, 63, 165, 133, -1,809 57, 17 4, 195, -1, 57, 174, 197, -1, 57, 174,810 195, 197, -1, 196, -1, 58, 110, 96, 111, 174,811 -1, 196, 58, 110, 96, 111, 174, -1, 59, 110,812 96, 111, 174, -1, 196, 59, 110, 96, 111, 174,813 -1, 58, 110, 135, 135, 198, 136, 111, 174, 136,814 -1, 196, 58, 110, 135, 135, 198, 136, 111, 174,815 13 6, -1, 59, 110, 135, 135, 198, 136, 111, 174,816 1 36, -1, 196, 59, 110, 135, 135, 198, 136, 111,817 17 4, 136, -1, 60, 174, -1, 226, -1, 226, 310,818 -1, 226, 358, -1, 367, 140, -1, 367, -1, 64,819 200, 110, 142, 111, 133, -1, 64, 200, 110, 142,820 118, 201, 111, 133, -1, 64, 200, 110, 142, 118,821 201, 118, 201, 111, 133, -1, 64, 200, 110, 142,822 11 8, 201, 118, 201, 118, 204, 111, 133, -1, 64,823 200, 51, 110, 142, 118, 118, 201, 118, 204, 118,824 205, 111, 133, -1, -1, 11, -1, -1, 202, -1,825 20 3, -1, 202, 117, 203, -1, 142, 110, 164, 111,826 -1, 112, 164, 113, 142, 110, 164, 111, -1, -1,827 14 2, -1, 204, 117, 142, -1, 140, -1, 205, 117,828 140, -1, 136, -1, 207, -1, 213, -1, 207, 135,829 2 13, -1, 136, -1, 209, -1, 223, -1, 209, 135,830 223, -1, -1, 211, -1, 29, 212, 133, -1, 211,831 29, 212, 133, -1, 275, -1, 212, 117, 275, -1,832 214, -1, 223, -1, 215, 136, 133, -1, 220, 136,833 13 3, -1, 217, 136, 133, -1, 294, 136, 133, -1,834 2 97, 136, 133, -1, 216, 278, -1, 232, 216, 278,835 -1, 215, 136, 117, 135, 273, 278, -1, 368, 273,836 31 2, -1, 371, 273, 312, -1, 228, 371, 273, 312,837 -1, 218, -1, 228, 218, -1, 232, 218, -1, 232,838 228, 218, -1, 217, 136, 117, 135, 273, -1, 112,839 113, 273, 110, 135, 261, 136, 111, -1, 371, 273,840 110, 135, 261, 136, 111, -1, 219, 273, 110, 135,841 261, 136, 111, -1, 112, 135, 263, 136, 113, -1,842 11 2, 135, 263, 136, 117, 135, 264, 136, 113, -1,843 3, 216, -1, 3, 218, -1, 220, 136, 117, 135,844 140, -1, 3, 226, 310, -1, 221, 136, 117, 135,845 310, -1, 228, 3, 226, 310, -1, 226, 3, 310,846 -1, 226, 3, 228, 310, -1, 3, 140, 132, 165,847 -1, 222, 136, 117, 135, 140, 132, 165, -1, 224,848 13 6, 133, -1, 221, 136, 133, -1, 222, 136, 133,849 -1, 2 41, 136, 133, -1, 225, 310, 312, 278, -1,850 224, 117, 313, 310, 312, 278, -1, 237, -1, 241,851 -1, 2 43, -1, 284, -1, 238, -1, 242, -1, 244,852 -1, 285, -1, -1, 228, -1, 229, -1, 228, 229,853 -1, 230, -1, 315, -1, 10, -1, 12, -1, 11,854 -1, 14, -1, 67, -1, -1, 13, 110, 231, 287,855 111, -1, 233, -1, 228, 233, -1, 232, 228, 233,856 -1, 234, -1, 233, 234, -1, 235, -1, 5, -1,857 7, -1, 4, -1, 6, -1, 8, -1, 9, -1,858 69, -1, 71, -1, 16, -1, 21, -1, 20, -1,859 1 8, -1, 19, -1, 17, -1, 22, -1, 23, -1,860 15, -1, 25, -1, 26, -1, 27, -1, 24, -1,861 238, -1, 232, 238, -1, 237, 234, -1, 237, 234,862 2 28, -1, 237, 234, 238, -1, 239, -1, 227, 240,863 227, -1, 236, -1, 228, 236, -1, 239, 229, -1,864 239, 236, -1, 28, 110, 277, 111, -1, 28, 110,865 1 70, 111, -1, 78, 110, 277, 111, -1, 78, 110,866 170, 111, -1, 242, -1, 232, 242, -1, 241, 234,867 -1, 24 1, 234, 228, -1, 245, -1, 228, 245, -1,868 242, 229, -1, 244, -1, 232, 244, -1, 243, 234,869 -1, 243, 234, 228, -1, 74, -1, 228, 74, -1,870 244, 229, -1, 246, -1, 257, -1, 248, 115, 249,871 116, -1, 248, 275, -1, -1, 248, 275, 247, 115,872 249, 116, -1, 248, 110, 293, 111, 115, 249, 116,873 -1, 248, 286, -1, 31, 313, -1, 32, 313, -1,874 250, -1, 249, 250, -1, 251, 133, -1, 40, 251,875 133, -1, 252, 133, -1, 40, 252, 133, -1, 367,876 -1, 367, 275, -1, 251, 117, 275, -1, 251, 117,877 -1, 226, 253, -1, 252, 117, 313, 253, -1, -1,878 255, -1, 319, 254, -1, 332, 254, -1, 358, -1,879 -1, 255, -1, 118, 164, -1, 30, 313, -1, 256,880 115, 259, 373, 116, -1, 256, 275, -1, -1, 256,881 275, 258, 115, 259, 373, 116, -1, 275, 260, -1,882 259, 117, 275, 260, -1, -1, 132, 164, -1, -1,883 262, -1, 26 4, -1, 263, -1, 263, 136, 117, 135,884 264, -1, 264, 136, 117, 135, 96, -1, 263, 136,885 117, 135, 96, -1, 268, -1, 264, 136, 117, 135,886 268, -1, 263, 136, 117, 135, 268, -1, 263, 136,887 11 7, 135, 264, 136, 117, 135, 268, -1, 269, -1,888 26 4, 136, 117, 135, 269, -1, -1, 266, -1, 267,889 -1, 267, 136, 117, 135, 96, -1, 271, -1, 270,890 -1, 267, 136, 117, 135, 271, -1, 267, 136, 117,891 135, 270, -1, 270, -1, 363, 273, 374, -1, 371,892 273, 374, -1, 228, 371, 273, 374, -1, 218, -1,893 271, -1, 363, -1, 371, -1, 228, 371, -1, 372,894 -1, 22 5, 337, 374, -1, 225, 341, 374, -1, 225,895 -1, 225, 352, -1, 140, -1, 272, 117, 140, -1,896 138, -1, 74, -1, 75, -1, 139, -1, 74, -1,897 7 5, -1, 140, -1, 74, -1, 75, -1, 367, -1,898 226, -1, 226, 358, -1, 367, -1, 372, -1, 226,899 -1, 226, 346, -1, -1, 132, 279, -1, 107, 279,900 -1, 165, -1, 115, 280, 373, 116, -1, -1, 279,901 -1, 281, 279, -1, 280, 117, 279, -1, 280, 117,902 281, 279, -1, 282, 118, -1, 275, 118, -1, 283,903 -1, 282, 283, -1, 80, -1, 114, 275, -1, 112,904 135, 165, 136, 113, -1, 112, 135, 311, 136, 113,905 -1, 112, 135, 164, 96, 164, 136, 113, -1, 114,906 112, 135, 147, 136, 113, -1, 285, -1, 232, 285,907 -1, 284, 234, -1, 284, 234, 228, -1, 286, -1,908 228, 286, -1, 285, 229, -1, 75, 110, 293, 111,909 -1, 288, 374, -1, 287, 117, 288, 374, -1, -1,910 290, 275, 289, 291, -1, 226, 337, -1, 33, -1,911 35, -1, 34, -1, -1, 291, 292, -1, 130, 275,912 1 10, 293, 111, -1, 130, 115, 135, 299, 116, -1,913 13 0, 110, 135, 287, 136, 111, 115, 135, 299, 116,