Changes in / [a14187f:ac43954]
- Files:
-
- 17 edited
-
INSTALL (modified) (2 diffs)
-
Jenkins/FullBuild (modified) (3 diffs)
-
doc/LaTeXmacros/common.tex (modified) (11 diffs)
-
doc/user/user.tex (modified) (49 diffs)
-
src/CodeGen/CodeGenerator.cc (modified) (17 diffs)
-
src/CodeGen/CodeGenerator.h (modified) (2 diffs)
-
src/ControlStruct/CaseRangeMutator.cc (modified) (3 diffs)
-
src/ControlStruct/CaseRangeMutator.h (modified) (2 diffs)
-
src/GenPoly/Box.cc (modified) (9 diffs)
-
src/Parser/lex.cc (modified) (47 diffs)
-
src/Parser/lex.ll (modified) (3 diffs)
-
src/SymTab/Validate.cc (modified) (1 diff)
-
src/driver/cfa.cc (modified) (4 diffs)
-
src/libcfa/Makefile.am (modified) (4 diffs)
-
src/libcfa/Makefile.in (modified) (4 diffs)
-
src/tests/switch.c (modified) (4 diffs)
-
src/tests/test.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
INSTALL
ra14187f rac43954 3 3 4 4 Cforall is built using GNU Make and the GNU Autoconf system. It also requires 5 g++ version >= 4.6, bison and flex. On systems where GNU Make is the default6 make, the system is built by entering the commands: 5 g++ version 4, bison and flex. On systems where GNU Make is the default make 6 it may suffice to build the system by entering the commands 7 7 8 8 ./configure … … 17 17 18 18 --prefix=/some/directory controls the path prefix common to all installed 19 cfa-cc components. Some components are installed in /some/directory/bin,19 cfa-cc components. Some components will be installed in /some/directory/bin, 20 20 others in /some/directory/lib. If unspecified, this defaults to /usr/local. 21 To use (a subdirectory of) your home directory, ${HOME}/some/dir works, but22 it is important not to put quotes around the directory path; Cforall may23 appear to build, but the installed version may not work properly.21 If you wish to use (a subdirectory of) your home directory, ${HOME}/some/dir 22 works, but it is important not to put quotes around the directory path; 23 Cforall may appear to build, but the installed version may not work properly. 24 24 25 25 --with-backend-compiler=PROGRAM specifies the installed path of gcc. It -
Jenkins/FullBuild
ra14187f rac43954 43 43 } 44 44 45 //sh "GIT_SSH_COMMAND=\"ssh -v\" git push DoLang ${gitRefNewValue}:master" 46 echo('BUILD NOT PUSH SINCE DO-LANG SERVER WAS DOWN') 45 sh "GIT_SSH_COMMAND=\"ssh -v\" git push DoLang ${gitRefNewValue}:master" 47 46 } 48 47 … … 68 67 69 68 node ('master') { 70 def err = null71 72 69 try { 73 70 //Prevent the build from exceeding 30 minutes … … 81 78 results = [null, null] 82 79 83 parallel (84 x64: {85 trigger_build('64-bit')86 },87 x32: {88 trigger_build('32-bit')89 }90 )80 // parallel ( 81 // x64: { 82 // trigger_build('64-bit') 83 // }, 84 // x32: { 85 // trigger_build('32-bit') 86 // } 87 // ) 91 88 92 89 //Push latest changes to do-lang repo -
doc/LaTeXmacros/common.tex
ra14187f rac43954 11 11 %% Created On : Sat Apr 9 10:06:17 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Tue Aug 2 17:02:02201614 %% Update Count : 2 2813 %% Last Modified On : Tue Jul 12 20:37:57 2016 14 %% Update Count : 206 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 18 17 19 \setlength{\textheight}{9in} 18 20 %\oddsidemargin 0.0in 19 \renewcommand{\topfraction}{0.8} % float must be greater than X of the page before it is forced onto its own page20 \renewcommand{\bottomfraction}{0.8} % float must be greater than X of the page before it is forced onto its own page21 \renewcommand{\topfraction}{0.8} % float must be greater than X of the page before it is forced onto its own page 22 \renewcommand{\bottomfraction}{0.8} % float must be greater than X of the page before it is forced onto its own page 21 23 \renewcommand{\floatpagefraction}{0.8} % float must be greater than X of the page before it is forced onto its own page 22 \renewcommand{\textfraction}{0.0} % the entire page maybe devoted to floats with no text on the page at all23 24 \lefthyphenmin=4 % hyphen only after 4 characters24 \renewcommand{\textfraction}{0.0} % the entire page maybe devoted to floats with no text on the page at all 25 26 \lefthyphenmin=4 25 27 \righthyphenmin=4 26 28 … … 36 38 % Names used in the document. 37 39 38 \newcommand{\CFA}{C$\mathbf\forall$\xspace} % set language symbolic name39 \newcommand{\CFL}{Cforall\xspace} % set language text name40 \newcommand{\CFA}{C$\mathbf\forall$\xspace} % set language symbolic name 41 \newcommand{\CFL}{Cforall\xspace} % set language text name 40 42 \newcommand{\CC}{\rm C\kern-.1em\hbox{+\kern-.25em+}\xspace} % CC symbolic name 41 43 \newcommand{\CCeleven}{\rm C\kern-.1em\hbox{+\kern-.25em+}11\xspace} % C++11 symbolic name 42 \ newcommand{\Celeven}{C11\xspace} % C11 symbolic name44 \def\c11{ISO/IEC C} % C11 name (cannot have numbers in latex command name) 43 45 44 46 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 50 52 \setlength{\parindentlnth}{\parindent} 51 53 52 \newlength{\gcolumnposn} % temporary hack because lstlisting does handle tabs correctly54 \newlength{\gcolumnposn} 53 55 \newlength{\columnposn} 54 56 \setlength{\gcolumnposn}{2.5in} … … 61 63 %\patchcmd{\lsthk@TextStyle}{\let\lst@DefEsc\@empty}{}{}{\errmessage{failed to patch}} 62 64 63 \usepackage{pslatex} % reduce size of san serif font64 \usepackage{relsize} % must be after change to small or selects old size65 \usepackage{pslatex} % reduce size of san serif font 66 \usepackage{relsize} % must be after change to small or selects old size 65 67 66 68 % reduce size of chapter/section titles … … 118 120 119 121 % inline text and lowercase index: \Index{inline and lowercase index text} 122 % inline text and as-in index: \Index[as-is index text]{inline text} 123 % inline text but index with different as-is text: \Index[index text]{inline text} 120 124 \newcommand{\Index}{\@ifstar\@sIndex\@Index} 121 % inline text and as-in index: \Index[as-is index text]{inline text}122 125 \newcommand{\@Index}[2][\@empty]{\lowercase{\def\temp{#2}}#2\ifx#1\@empty\index{\temp}\else\index{#1@{\protect#2}}\fi} 123 % inline text but index with different as-is text: \Index[index text]{inline text}124 126 \newcommand{\@sIndex}[2][\@empty]{#2\ifx#1\@empty\index{#2}\else\index{#1@{\protect#2}}\fi} 125 127 126 % inline text and code index (cannot use ©)128 % cannot use © 127 129 \newcommand{\Indexc}[1]{\lstinline$#1$\index{#1@\lstinline$#1$}} 128 % code index (cannot use ©)129 130 \newcommand{\indexc}[1]{\index{#1@\lstinline$#1$}} 130 131 … … 136 137 \newcommand{\@newterm}[2][\@empty]{\lowercase{\def\temp{#2}}{\newtermFontInline{#2}}\ifx#1\@empty\index{\temp}\else\index{#1@{\protect#2}}\fi} 137 138 \newcommand{\@snewterm}[2][\@empty]{{\newtermFontInline{#2}}\ifx#1\@empty\index{#2}\else\index{#1@{\protect#2}}\fi} 138 139 % Latin abbreviation140 \newcommand{\abbrevFont}{\textit} % set empty for no italics141 \newcommand*{\eg}{%142 \@ifnextchar{,}{\abbrevFont{e}.\abbrevFont{g}.}%143 {\@ifnextchar{:}{\abbrevFont{e}.\abbrevFont{g}.}%144 {\abbrevFont{e}.\abbrevFont{g}.,\xspace}}%145 }%146 \newcommand*{\ie}{%147 \@ifnextchar{,}{\abbrevFont{i}.\abbrevFont{e}.}%148 {\@ifnextchar{:}{\abbrevFont{i}.\abbrevFont{e}.}%149 {\abbrevFont{i}.\abbrevFont{e}.,\xspace}}%150 }%151 \newcommand*{\etc}{%152 \@ifnextchar{.}{\abbrevFont{etc}}%153 {\abbrevFont{etc}.\xspace}%154 }%155 139 \makeatother 156 140 … … 161 145 \endlist 162 146 }% quote2 163 164 147 \newenvironment{rationale}{% 165 148 \begin{quote2}\noindent$\Box$\enspace … … 205 188 \newcommand{\VPageref}[2][page]{\ifx#1\@empty\else{#1}\nobreakspace\fi\pageref{#2}} 206 189 207 % Go programming language : https://github.com/julienc91/listings-golang/blob/master/listings-golang.sty190 % Go programming language 208 191 \lstdefinelanguage{Golang}{ 209 192 morekeywords=[1]{package,import,func,type,struct,return,defer,panic, recover,select,var,const,iota,},% … … 221 204 } 222 205 223 % CFA programming language, based on ANSI C (with some gcc additions)206 % CFA programming language, based on ANSI C 224 207 \lstdefinelanguage{CFA}[ANSI]{C}{ 225 208 morekeywords={_Alignas,_Alignof,__alignof,__alignof__,asm,__asm,__asm__,_At,_Atomic,__attribute,__attribute__,auto, 226 209 _Bool,catch,catchResume,choose,_Complex,__complex,__complex__,__const,__const__,disable,dtype,enable,__extension__, 227 fallthr ough,fallthru,finally,forall,ftype,_Generic,_Imaginary,inline,__label__,lvalue,_Noreturn,otype,restrict,_Static_assert,210 fallthru,finally,forall,ftype,_Generic,_Imaginary,inline,__label__,lvalue,_Noreturn,otype,restrict,_Static_assert, 228 211 _Thread_local,throw,throwResume,trait,try,typeof,__typeof,__typeof__,}, 229 212 }% … … 232 215 language=CFA, 233 216 columns=fullflexible, 234 basicstyle=\linespread{0.9}\sf, % reduce line spacing and use sanserif font235 stringstyle=\tt, % use typewriter font236 tabsize=4, % 4 space tabbing237 xleftmargin=\parindentlnth, % indent code to paragraph indentation238 extendedchars=true, % allow ASCII characters in the range 128-255239 escapechar=§, % escape to latex in CFA code240 mathescape=true, % allow $...$ LaTeX math escapes in code241 %keepspaces=true, % 242 showstringspaces=false, % do not show spaces with cup243 showlines=true, % show blank lines at end of code244 aboveskip=4pt, % spacing above/below code block217 basicstyle=\linespread{0.9}\sf, 218 stringstyle=\tt, 219 tabsize=4, 220 xleftmargin=\parindentlnth, 221 extendedchars=true, 222 escapechar=§, 223 mathescape=true, 224 keepspaces=true, 225 showstringspaces=false, 226 showlines=true, 227 aboveskip=4pt, 245 228 belowskip=3pt, 246 moredelim=**[is][\color{red}]{®}{®}, % red highlighting247 moredelim=**[is][\color{blue}]{ß}{ß}, % blue highlighting229 moredelim=**[is][\color{red}]{®}{®}, % red highlighting 230 moredelim=**[is][\color{blue}]{ß}{ß}, % blue highlighting 248 231 moredelim=**[is][\color{OliveGreen}]{¢}{¢}, % green highlighting 249 232 moredelim=[is][\lstset{keywords={}}]{¶}{¶}, % temporarily turn off keywords … … 259 242 \renewcommand\thebibliography[1]{ 260 243 \Oldthebibliography{#1} 261 \setlength{\parskip}{0pt} % reduce vertical spacing between references244 \setlength{\parskip}{0pt} % reduce vertical spacing between references 262 245 \setlength{\itemsep}{5pt plus 0.3ex} 263 246 }% 247 248 \newcommand*{\eg}{\textit{e.g}.\@\xspace} 249 \newcommand*{\ie}{\textit{i.e}.\@\xspace} 250 251 \makeatletter 252 \newcommand*{\etc}{% 253 \@ifnextchar{.}% 254 {\textit{etc}}% 255 {\textit{etc}.\@\xspace}% 256 } 257 \makeatother 264 258 265 259 % Local Variables: % -
doc/user/user.tex
ra14187f rac43954 11 11 %% Created On : Wed Apr 6 14:53:29 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Tue Aug 2 17:39:02201614 %% Update Count : 12 8613 %% Last Modified On : Wed Jul 13 08:14:39 2016 14 %% Update Count : 1247 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 … … 211 211 however, it largely extended the language, and did not address many existing problems.\footnote{% 212 212 Two important existing problems addressed were changing the type of character literals from ©int© to ©char© and enumerator from ©int© to the type of its enumerators.} 213 \Index*{Fortran}~\cite{Fortran08}, \Index*{Ada}~\cite{Ada12}, and \Index*{Cobol}~\cite{Cobol14} are examples of programming languages that took an evolutionary approach, where modern language features ( \egobjects, concurrency) are added and problems fixed within the framework of the existing language.213 \Index*{Fortran}~\cite{Fortran08}, \Index*{Ada}~\cite{Ada12}, and \Index*{Cobol}~\cite{Cobol14} are examples of programming languages that took an evolutionary approach, where modern language features (e.g., objects, concurrency) are added and problems fixed within the framework of the existing language. 214 214 \Index*{Java}~\cite{Java8}, \Index*{Go}~\cite{Go}, \Index*{Rust}~\cite{Rust} and \Index*{D}~\cite{D} are examples of the revolutionary approach for modernizing C/\CC, resulting in a new language rather than an extension of the descendent. 215 215 These languages have different syntax and semantics from C, and do not interoperate directly with C, largely because of garbage collection. … … 226 226 227 227 \section{Interoperability} 228 \label{s:Interoperability}229 228 230 229 \CFA is designed to integrate well with existing C programs and libraries. … … 266 265 \section[Compiling CFA Program]{Compiling \CFA Program} 267 266 268 The command ©cfa© is used to compile \CFA program(s), and is based on the GNU \Indexc{gcc} command, \eg:267 The command ©cfa© is used to compile \CFA program(s), and is based on the GNU \Indexc{gcc} command, e.g.: 269 268 \begin{lstlisting} 270 269 cfa§\indexc{cfa}\index{compilation!cfa@©cfa©}§ [ gcc-options ] C/§\CFA§-files [ assembler/loader-files ] … … 315 314 The \CFA compilation message is printed at the beginning of a compilation. 316 315 \textbf{This option is the default.} 317 318 \item319 \Indexc{-no-include-std}\index{compilation option!-no-include-std@©-no-include-std©}320 Do not supply ©extern "C"© wrappers for \Celeven standard include files (see~\VRef{s:StandardHeaders}).321 \textbf{This option is \emph{not} the default.}322 316 \end{description} 323 317 … … 356 350 \section{Underscores in Constants} 357 351 358 Numeric constants are extended to allow \Index{underscore}s within constants\index{constant!underscore}, \eg:352 Numeric constants are extended to allow \Index{underscore}s within constants\index{constant!underscore}, e.g.: 359 353 \begin{lstlisting} 360 354 2®_®147®_®483®_®648; §\C{// decimal constant}§ … … 372 366 \begin{enumerate} 373 367 \item 374 A sequence of underscores is disallowed, \eg©12__34© is invalid.368 A sequence of underscores is disallowed, e.g., ©12__34© is invalid. 375 369 \item 376 370 Underscores may only appear within a sequence of digits (regardless of the digit radix). 377 In other words, an underscore cannot start or end a sequence of digits, \eg©_1©, ©1_© and ©_1_© are invalid (actually, the 1st and 3rd examples are identifier names).371 In other words, an underscore cannot start or end a sequence of digits, e.g., ©_1©, ©1_© and ©_1_© are invalid (actually, the 1st and 3rd examples are identifier names). 378 372 \item 379 373 A numeric prefix may end with an underscore; … … 504 498 \end{quote2} 505 499 506 All type qualifiers, \eg ©const©, ©volatile©, etc., are used in the normal way with the new declarations and also appear left to right, \eg:500 All type qualifiers, e.g., ©const©, ©volatile©, etc., are used in the normal way with the new declarations and also appear left to right, e.g.: 507 501 \begin{quote2} 508 502 \begin{tabular}{@{}l@{\hspace{1em}}l@{\hspace{1em}}l@{}} … … 524 518 \end{tabular} 525 519 \end{quote2} 526 All declaration qualifiers, \eg©extern©, ©static©, etc., are used in the normal way with the new declarations but can only appear at the start of a \CFA routine declaration,\footnote{\label{StorageClassSpecifier}527 The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature.~\cite[\S~6.11.5(1)]{C11}} \eg:520 All declaration qualifiers, e.g., ©extern©, ©static©, etc., are used in the normal way with the new declarations but can only appear at the start of a \CFA routine declaration,\footnote{\label{StorageClassSpecifier} 521 The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature.~\cite[\S~6.11.5(1)]{C11}} e.g.: 528 522 \begin{quote2} 529 523 \begin{tabular}{@{}l@{\hspace{3em}}l@{\hspace{2em}}l@{}} … … 548 542 Unsupported are K\&R C declarations where the base type defaults to ©int©, if no type is specified,\footnote{ 549 543 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}} 550 \eg:544 e.g.: 551 545 \begin{lstlisting} 552 546 x; §\C{// int x}§ … … 618 612 A \Index{pointer}/\Index{reference} is a generalization of a variable name, i.e., a mutable address that can point to more than one memory location during its lifetime. 619 613 (Similarly, an integer variable can contain multiple integer literals during its lifetime versus an integer constant representing a single literal during its lifetime and may not occupy storage as the literal is embedded directly into instructions.) 620 Hence, a pointer occupies memory to store its current address, and the pointer's value is loaded by dereferencing, \eg:614 Hence, a pointer occupies memory to store its current address, and the pointer's value is loaded by dereferencing, e.g.: 621 615 \begin{quote2} 622 616 \begin{tabular}{@{}ll@{}} … … 675 669 Except for auto-dereferencing by the compiler, this reference example is the same as the previous pointer example. 676 670 Hence, a reference behaves like the variable name for the current variable it is pointing-to. 677 The simplest way to understand a reference is to imagine the compiler inserting a dereference operator before the reference variable for each reference qualifier in a declaration, \eg:671 The simplest way to understand a reference is to imagine the compiler inserting a dereference operator before the reference variable for each reference qualifier in a declaration, e.g.: 678 672 \begin{lstlisting} 679 673 r2 = ((r1 + r2) * (r3 - r1)) / (r3 - 15); … … 683 677 ®*®r2 = ((®*®r1 + ®*®r2) ®*® (®**®r3 - ®*®r1)) / (®**®r3 - 15); 684 678 \end{lstlisting} 685 When a reference operation appears beside a dereference operation, \eg©&*©, they cancel out.\footnote{679 When a reference operation appears beside a dereference operation, e.g., ©&*©, they cancel out.\footnote{ 686 680 The unary ©&© operator yields the address of its operand. 687 681 If the operand has type ``type'', the result has type ``pointer to type''. … … 727 721 ®&®crc = &cx; §\C{// error, cannot change crc}§ 728 722 \end{lstlisting} 729 Hence, for type ©& const©, there is no pointer assignment, so ©&rc = &x© is disallowed, and \emph{the address value cannot be ©0© unless an arbitrary pointer is assigned to the reference}, \eg:723 Hence, for type ©& const©, there is no pointer assignment, so ©&rc = &x© is disallowed, and \emph{the address value cannot be ©0© unless an arbitrary pointer is assigned to the reference}, e.g.: 730 724 \begin{lstlisting} 731 725 int & const r = *0; §\C{// where 0 is the int * zero}§ 732 726 \end{lstlisting} 733 727 Otherwise, the compiler is managing the addresses for type ©& const© not the programmer, and by a programming discipline of only using references with references, address errors can be prevented. 734 Finally, the position of the ©const© qualifier \emph{after} the pointer/reference qualifier causes confuse for C programmers.735 The ©const© qualifier cannot be moved before the pointer/reference qualifier for C style-declarations;736 \CFA-style declarations attempt to address this issue:737 \begin{quote2}738 \begin{tabular}{@{}l@{\hspace{3em}}l@{}}739 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\740 \begin{lstlisting}741 ®const® * ®const® * const int ccp;742 ®const® & ®const® & const int ccr;743 \end{lstlisting}744 &745 \begin{lstlisting}746 const int * ®const® * ®const® ccp;747 748 \end{lstlisting}749 \end{tabular}750 \end{quote2}751 where the \CFA declaration is read left-to-right (see \VRef{s:Declarations}).752 728 753 729 \Index{Initialization} is different than \Index{assignment} because initialization occurs on the empty (uninitialized) storage on an object, while assignment occurs on possibly initialized storage of an object. … … 809 785 \section{Type Operators} 810 786 811 The new declaration syntax can be used in other contexts where types are required, \egcasts and the pseudo-routine ©sizeof©:787 The new declaration syntax can be used in other contexts where types are required, e.g., casts and the pseudo-routine ©sizeof©: 812 788 \begin{quote2} 813 789 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} … … 829 805 830 806 \CFA also supports a new syntax for routine definition, as well as ISO C and K\&R routine syntax. 831 The point of the new syntax is to allow returning multiple values from a routine~\cite{Galletly96,CLU}, \eg:807 The point of the new syntax is to allow returning multiple values from a routine~\cite{Galletly96,CLU}, e.g.: 832 808 \begin{lstlisting} 833 809 ®[ int o1, int o2, char o3 ]® f( int i1, char i2, char i3 ) { … … 841 817 \Index*{Michael Tiemann}, with help from \Index*{Doug Lea}, provided named return values in g++, circa 1989.} 842 818 The value of each local return variable is automatically returned at routine termination. 843 Declaration qualifiers can only appear at the start of a routine definition, \eg:819 Declaration qualifiers can only appear at the start of a routine definition, e.g.: 844 820 \begin{lstlisting} 845 821 ®extern® [ int x ] g( int y ) {§\,§} … … 873 849 The inability to use \CFA declarations in these two contexts is probably a blessing because it precludes programmers from arbitrarily switching between declarations forms within a declaration contexts. 874 850 875 C-style declarations can be used to declare parameters for \CFA style routine definitions, \eg:851 C-style declarations can be used to declare parameters for \CFA style routine definitions, e.g.: 876 852 \begin{lstlisting} 877 853 [ int ] f( * int, int * ); §\C{// returns an integer, accepts 2 pointers to integers}§ … … 922 898 923 899 The syntax of the new routine prototype declaration follows directly from the new routine definition syntax; 924 as well, parameter names are optional, \eg:900 as well, parameter names are optional, e.g.: 925 901 \begin{lstlisting} 926 902 [ int x ] f (); §\C{// returning int with no parameters}§ … … 930 906 \end{lstlisting} 931 907 This syntax allows a prototype declaration to be created by cutting and pasting source text from the routine definition header (or vice versa). 932 It is possible to declare multiple routine-prototypes in a single declaration, but the entire type specification is distributed across \emph{all} routine names in the declaration list (see~\VRef{s:Declarations}), \eg:908 It is possible to declare multiple routine-prototypes in a single declaration, but the entire type specification is distributed across \emph{all} routine names in the declaration list (see~\VRef{s:Declarations}), e.g.: 933 909 \begin{quote2} 934 910 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} … … 943 919 \end{tabular} 944 920 \end{quote2} 945 Declaration qualifiers can only appear at the start of a \CFA routine declaration,\footref{StorageClassSpecifier} \eg:921 Declaration qualifiers can only appear at the start of a \CFA routine declaration,\footref{StorageClassSpecifier} e.g.: 946 922 \begin{lstlisting} 947 923 extern [ int ] f (int); … … 952 928 \section{Routine Pointers} 953 929 954 The syntax for pointers to \CFA routines specifies the pointer name on the right, \eg:930 The syntax for pointers to \CFA routines specifies the pointer name on the right, e.g.: 955 931 \begin{lstlisting} 956 932 * [ int x ] () fp; §\C{// pointer to routine returning int with no parameters}§ … … 1070 1046 p( /* positional */, /* named */, . . . ); 1071 1047 \end{lstlisting} 1072 While it is possible to implement both approaches, the first possibly is more complex than the second, \eg:1048 While it is possible to implement both approaches, the first possibly is more complex than the second, e.g.: 1073 1049 \begin{lstlisting} 1074 1050 p( int x, int y, int z, . . . ); … … 1080 1056 In the second call, the named arguments separate the positional and ellipse arguments, making it trivial to read the call. 1081 1057 1082 The problem is exacerbated with default arguments, \eg:1058 The problem is exacerbated with default arguments, e.g.: 1083 1059 \begin{lstlisting} 1084 1060 void p( int x, int y = 2, int z = 3. . . ); … … 1288 1264 1289 1265 As mentioned, tuples can appear in contexts requiring a list of value, such as an argument list of a routine call. 1290 In unambiguous situations, the tuple brackets may be omitted, \ega tuple that appears as an argument may have its1266 In unambiguous situations, the tuple brackets may be omitted, e.g., a tuple that appears as an argument may have its 1291 1267 square brackets omitted for convenience; therefore, the following routine invocations are equivalent: 1292 1268 \begin{lstlisting} … … 1327 1303 1328 1304 Type qualifiers, i.e., const and volatile, may modify a tuple type. 1329 The meaning is the same as for a type qualifier modifying an aggregate type [Int99, x 6.5.2.3(7),x 6.7.3(11)], i.e., the qualifier is distributed across all of the types in the tuple, \eg:1305 The meaning is the same as for a type qualifier modifying an aggregate type [Int99, x 6.5.2.3(7),x 6.7.3(11)], i.e., the qualifier is distributed across all of the types in the tuple, e.g.: 1330 1306 \begin{lstlisting} 1331 1307 const volatile [ int, float, const int ] x; … … 1335 1311 [ const volatile int, const volatile float, const volatile int ] x; 1336 1312 \end{lstlisting} 1337 Declaration qualifiers can only appear at the start of a \CFA tuple declaration4, \eg:1313 Declaration qualifiers can only appear at the start of a \CFA tuple declaration4, e.g.: 1338 1314 \begin{lstlisting} 1339 1315 extern [ int, int ] w1; … … 1343 1319 Unfortunately, C's syntax for subscripts precluded treating them as tuples. 1344 1320 The C subscript list has the form ©[i][j]...© and not ©[i, j, ...]©. 1345 Therefore, there is no syntactic way for a routine returning multiple values to specify the different subscript values, \eg©f[g()]© always means a single subscript value because there is only one set of brackets.1321 Therefore, there is no syntactic way for a routine returning multiple values to specify the different subscript values, e.g., ©f[g()]© always means a single subscript value because there is only one set of brackets. 1346 1322 Fixing this requires a major change to C because the syntactic form ©M[i, j, k]© already has a particular meaning: ©i, j, k© is a comma expression. 1347 1323 \end{rationale} … … 1404 1380 Clearly, the types of the entities being assigned must be type compatible with the value of the expression. 1405 1381 1406 Mass assignment has parallel semantics, \egthe statement:1382 Mass assignment has parallel semantics, e.g., the statement: 1407 1383 \begin{lstlisting} 1408 1384 [ x, y, z ] = 1.5; … … 1493 1469 \section{Unnamed Structure Fields} 1494 1470 1495 C requires each field of a structure to have a name, except for a bit field associated with a basic type, \eg:1471 C requires each field of a structure to have a name, except for a bit field associated with a basic type, e.g.: 1496 1472 \begin{lstlisting} 1497 1473 struct { 1498 int f1; §\C{// named field}§1499 int f2 : 4; §\C{// named field with bit field size}§1500 int : 3; §\C{// unnamed field for basic type with bit field size}§1501 int ; §\C{// disallowed, unnamed field}§1502 int *; §\C{// disallowed, unnamed field}§1503 int (*)(int); §\C{// disallowed, unnamed field}§1474 int f1; // named field 1475 int f2 : 4; // named field with bit field size 1476 int : 3; // unnamed field for basic type with bit field size 1477 int ; // disallowed, unnamed field 1478 int *; // disallowed, unnamed field 1479 int (*)(int); // disallowed, unnamed field 1504 1480 }; 1505 1481 \end{lstlisting} 1506 1482 This requirement is relaxed by making the field name optional for all field declarations; therefore, all the field declarations in the example are allowed. 1507 1483 As for unnamed bit fields, an unnamed field is used for padding a structure to a particular size. 1508 A list of unnamed fields is also supported, \eg:1484 A list of unnamed fields is also supported, e.g.: 1509 1485 \begin{lstlisting} 1510 1486 struct { 1511 int , , ; §\C{// 3 unnamed fields}§1487 int , , ; // 3 unnamed fields 1512 1488 } 1513 1489 \end{lstlisting} … … 1522 1498 §\emph{expr}§ -> [ §\emph{fieldlist}§ ] 1523 1499 \end{lstlisting} 1524 \emph{expr} is any expression yielding a value of type record, \eg©struct©, ©union©.1500 \emph{expr} is any expression yielding a value of type record, e.g., ©struct©, ©union©. 1525 1501 Each element of \emph{ fieldlist} is an element of the record specified by \emph{expr}. 1526 1502 A record-field tuple may be used anywhere a tuple can be used. An example of the use of a record-field tuple is … … 1784 1760 } 1785 1761 \end{lstlisting} 1786 While the declaration of the local variable ©y© is useful with a scope across all ©case© clauses, the initialization for such a variable is defined to never be executed because control always transfers over it. 1787 Furthermore, any statements before the first ©case© clause can only be executed if labelled and transferred to using a ©goto©, either from outside or inside of the ©switch©, both of which are problematic. 1788 As well, the declaration of ©z© cannot occur after the ©case© because a label can only be attached to a statement, and without a fall through to case 3, ©z© is uninitialized. 1789 The key observation is that the ©switch© statement branches into control structure, i.e., there are multiple entry points into its statement body. 1762 While the declaration of the local variable ©y© is useful and its scope is across all ©case© clauses, the initialization for such a variable is defined to never be executed because control always transfers over it. 1763 Furthermore, any statements before the first ©case© clause can only be executed if labelled and transferred to using a ©goto©, either from outside or inside of the ©switch©. 1764 As mentioned, transfer into control structures should be forbidden; 1765 transfers from within the ©switch© body using a ©goto© are equally unpalatable. 1766 As well, the declaration of ©z© is cannot occur after the ©case© because a label can only be attached to a statement, and without a fall through to case 3, ©z© is uninitialized. 1790 1767 \end{enumerate} 1791 1768 … … 1801 1778 and there is only a medium amount of fall-through from one ©case© clause to the next, and most of these result from a list of case values executing common code, rather than a sequence of case actions that compound. 1802 1779 \end{itemize} 1803 These observations help to put the \CFAchanges to the ©switch© into perspective.1780 These observations help to put the suggested changes to the ©switch© into perspective. 1804 1781 \begin{enumerate} 1805 1782 \item 1806 1783 Eliminating default fall-through has the greatest potential for affecting existing code. 1807 However, even if fall-through is removed, most ©switch© statements would continue to work because of the explicit transfers already present at the end of each ©case© clause, the common placement of the ©default© clause at the end of the case list, and the most common use of fall-through, i.e., a list of ©case© clauses executing common code, \eg:1808 \begin{lstlisting}1784 However, even if fall-through is removed, most ©switch© statements would continue to work because of the explicit transfers already present at the end of each ©case© clause, the common placement of the ©default© clause at the end of the case list, and the most common use of fall-through, i.e., a list of ©case© clauses executing common code, e.g.: 1785 \begin{lstlisting} 1809 1786 case 1: case 2: case 3: ... 1810 1787 \end{lstlisting} 1811 1788 still work. 1812 1789 Nevertheless, reversing the default action would have a non-trivial effect on case actions that compound, such as the above example of processing shell arguments. 1813 <<<<<<< HEAD 1814 Therefore, to preserve backwards compatibility, it is necessary to introduce a new kind of ©switch© statement, called ©choose©, with no implicit fall-through semantics and an explicit fall-through if the last statement of a case-clause ends with the new keyword ©fallthru©, \eg: 1815 ======= 1816 Therefore, to preserve backwards compatibility, it is necessary to introduce a new kind of ©switch© statement, called ©choose©, with no implicit fall-through semantics and an explicit fall-through if the last statement of a case-clause ends with the new keyword ©fallthrough©/©fallthru©, e.g.: 1817 >>>>>>> 080615890f586cb9954c252b55cab47f52c25758 1790 Therefore, to preserve backwards compatibility, it is necessary to introduce a new kind of ©switch© statement, called ©choose©, with no implicit fall-through semantics and an explicit fall-through if the last statement of a case-clause ends with the new keyword ©fallthru©, e.g.: 1818 1791 \begin{lstlisting} 1819 1792 ®choose® ( i ) { … … 1842 1815 Therefore, no change is made for this issue. 1843 1816 \item 1844 Dealing with unreachable code in a ©switch©/©choose© body is solved by restricting declarations and associated initialization to the start of statement body, which is executed \emph{before} the transfer to the appropriate ©case© clause \footnote{1845 Essentially, these declarations are hoisted before the ©switch©/©choose©statement and both declarations and statement are surrounded by a compound statement.} and precluding statements before the first ©case© clause.1846 Further declaration s at the same nesting level as the statement body are disallowed to ensure every transfer into the body is sound.1817 Dealing with unreachable code in a ©switch©/©choose© body is solved by restricting declarations and associated initialization to the start of statement body, which is executed \emph{before} the transfer to the appropriate ©case© clause.\footnote{ 1818 Essentially, these declarations are hoisted before the statement and both declarations and statement are surrounded by a compound statement.} and precluding statements before the first ©case© clause. 1819 Further declaration in the statement body are disallowed. 1847 1820 \begin{lstlisting} 1848 1821 switch ( x ) { 1849 ®int i = 0;® §\C{// allowed only at start}§1822 ®int i = 0;® §\C{// allowed}§ 1850 1823 case 0: 1851 1824 ... 1852 ®int j= 0;® §\C{// disallowed}§1825 ®int i = 0;® §\C{// disallowed}§ 1853 1826 case 1: 1854 1827 { 1855 ®int k = 0;® §\C{// allowed at different nesting levels}§1828 ®int i = 0;® §\C{// allowed in any compound statement}§ 1856 1829 ... 1857 1830 } … … 2734 2707 Like the \Index*[C++]{\CC} lexical problem with closing template-syntax, e.g, ©Foo<Bar<int®>>®©, this issue can be solved with a more powerful lexer/parser. 2735 2708 2736 There are several ambiguous cases with operator identifiers, \eg©int *?*?()©, where the string ©*?*?© can be lexed as ©*©/©?*?© or ©*?©/©*?©.2737 Since it is common practise to put a unary operator juxtaposed to an identifier, \eg©*i©, users will be annoyed if they cannot do this with respect to operator identifiers.2709 There are several ambiguous cases with operator identifiers, e.g., ©int *?*?()©, where the string ©*?*?© can be lexed as ©*©/©?*?© or ©*?©/©*?©. 2710 Since it is common practise to put a unary operator juxtaposed to an identifier, e.g., ©*i©, users will be annoyed if they cannot do this with respect to operator identifiers. 2738 2711 Even with this special hack, there are 5 general cases that cannot be handled. 2739 2712 The first case is for the function-call identifier ©?()©: … … 2800 2773 This means that a function requiring mutual exclusion could block if the lock is already held by another thread. 2801 2774 Blocking on a monitor lock does not block the kernel thread, it simply blocks the user thread, which yields its kernel thread while waiting to obtain the lock. 2802 If multiple mutex parameters are specified, they will be locked in parameter order ( \iefirst parameter is locked first) and unlocked in the2775 If multiple mutex parameters are specified, they will be locked in parameter order (i.e. first parameter is locked first) and unlocked in the 2803 2776 reverse order. 2804 2777 \begin{lstlisting} … … 4369 4342 4370 4343 4371 \section{New Keywords}4372 \label{s:NewKeywords}4373 4374 \begin{quote2}4375 \begin{tabular}{ll}4376 ©catch© & ©lvalue© \\4377 ©catchResume© & \\4378 ©choose© & ©otype© \\4379 & \\4380 ©disable© & ©throw© \\4381 ©dtype© & ©throwResume© \\4382 & ©trait© \\4383 ©enable© & ©try© \\4384 & \\4385 ©fallthrough© \\4386 ©fallthru© \\4387 ©finally© \\4388 ©forall© \\4389 ©ftype© \\4390 \end{tabular}4391 \end{quote2}4392 4393 4394 \section{Standard Headers}4395 \label{s:StandardHeaders}4396 4397 C prescribes the following standard header-files:4398 \begin{quote2}4399 \begin{minipage}{\linewidth}4400 \begin{tabular}{lll}4401 assert.h & math.h & stdlib.h \\4402 complex.h & setjmp.h & stdnoreturn.h \\4403 ctype.h & signal.h & string.h \\4404 errno.h & stdalign.h & tgmath.h \\4405 fenv.h & stdarg.h & threads.h \\4406 float.h & stdatomic.h & time.h \\4407 inttypes.h & stdbool.h & uchar.h \\4408 iso646.h & stddef.h & wchar.h \\4409 limits.h & stdint.h & wctype.h \\4410 locale.h & stdio.h & unistd.h\footnote{\CFA extension}4411 \end{tabular}4412 \end{minipage}4413 \end{quote2}4414 For the prescribed head-files, \CFA implicit wraps their includes in an ©extern "C"©;4415 hence, names in these include files are not mangled\index{mangling!name} (see~\VRef{s:Interoperability}).4416 All other C header files must be explicitly wrapped in ©extern "C"© to prevent name mangling.4417 4418 4419 4344 \section{Incompatible} 4420 4345 … … 4424 4349 \item 4425 4350 \begin{description} 4426 \item[Change:] add new keywords (see~\VRef{s:NewKeywords})\\4351 \item[Change:] add new keywords \\ 4427 4352 New keywords are added to \CFA. 4428 4353 \item[Rationale:] keywords added to implement new semantics of \CFA. … … 4522 4447 \begin{description} 4523 4448 \item[Change:] have ©struct© introduce a scope for nested types 4524 In C, the name of the nested types belongs to the same scope as the name of the outermost enclosing 4449 In C, the name of the nested types belongs to the same scope as the name of the outermost enclosing 4525 4450 Example: 4526 4451 \begin{lstlisting} … … 4546 4471 \CFA is C \emph{incompatible} on this issue, and provides semantics similar to \Index*[C++]{\CC}. 4547 4472 Nested types are not hoisted and can be referenced using the field selection operator ``©.©'', unlike the \CC scope-resolution operator ``©::©''. 4548 Given that nested types in C are equivalent to not using them, \iethey are essentially useless, it is unlikely there are any realistic usages that break because of this incompatibility.4473 Given that nested types in C are equivalent to not using them, i.e., they are essentially useless, it is unlikely there are any realistic usages that break because of this incompatibility. 4549 4474 \end{description} 4550 4475 … … 4645 4570 %$ 4646 4571 \begin{lstlisting}[mathescape=off] 4647 sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x $" | 4 | "x £" | 5 | "x ¥" | 6 | "x ¡" | 7 4648 | "x ¿" | 8 | "x «" | 9 | endl; 4572 sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x $" | 4 | "x £" | 5 | "x ¥" | 6 | "x ¡" | 7 | "x ¿" | 8 | "x «" | 9 | endl; 4649 4573 \end{lstlisting} 4650 4574 %$ … … 4656 4580 A seperator does not appear after a C string ending with the (extended) \Index{ASCII}\index{ASCII!extended} characters: ©,.:;!?)]}%¢»© 4657 4581 \begin{lstlisting}[belowskip=0pt] 4658 sout | 1 | ", x" | 2 | ". x" | 3 | ": x" | 4 | "; x" | 5 | "! x" | 6 | "? x" | 7 4659 | ") x" | 8 | "] x" | 9 | "} x" |10 | "% x" | 11 | "¢ x" | 12 | "» x" | endl;4582 sout | 1 | ", x" | 2 | ". x" | 3 | ": x" | 4 | "; x" | 5 | "! x" | 6 | "? x" | 7 | ") x" | 8 | "] x" | 9 | "} x" 4583 | 10 | "% x" | 11 | "¢ x" | 12 | "» x" | endl; 4660 4584 \end{lstlisting} 4661 4585 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] … … 4673 4597 The following \CC-style \Index{manipulator}s allow further control over implicit seperation. 4674 4598 \begin{lstlisting}[mathescape=off,belowskip=0pt] 4675 sout | sepOn | 1 | 2 | 3 | sepOn | endl; §\C{// separator at start of line}§4599 sout | sepOn | 1 | 2 | 3 | sepOn | endl; // separator at start of line 4676 4600 \end{lstlisting} 4677 4601 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] … … 4679 4603 \end{lstlisting} 4680 4604 \begin{lstlisting}[mathescape=off,aboveskip=0pt,belowskip=0pt] 4681 sout | 1 | sepOff | 2 | 3 | endl; §\C{// turn off implicit separator temporarily}§4605 sout | 1 | sepOff | 2 | 3 | endl; // turn off implicit separator temporarily 4682 4606 \end{lstlisting} 4683 4607 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] … … 4685 4609 \end{lstlisting} 4686 4610 \begin{lstlisting}[mathescape=off,aboveskip=0pt,belowskip=0pt] 4687 sout | sepDisable | 1 | 2 | 3 | endl; §\C{// turn off implicit separation, affects all subsequent prints}§4611 sout | sepDisable | 1 | 2 | 3 | endl; // turn off implicit separation, affects all subsequent prints 4688 4612 \end{lstlisting} 4689 4613 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] … … 4691 4615 \end{lstlisting} 4692 4616 \begin{lstlisting}[mathescape=off,aboveskip=0pt,belowskip=0pt] 4693 sout | 1 | sepOn | 2 | 3 | endl; §\C{// turn on implicit separator temporarily}§4617 sout | 1 | sepOn | 2 | 3 | endl; // turn on implicit separator temporarily 4694 4618 \end{lstlisting} 4695 4619 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] … … 4697 4621 \end{lstlisting} 4698 4622 \begin{lstlisting}[mathescape=off,aboveskip=0pt,belowskip=0pt] 4699 sout | sepEnable | 1 | 2 | 3 | endl; §\C{// turn on implicit separation, affects all subsequent prints}§4623 sout | sepEnable | 1 | 2 | 3 | endl; // turn on implicit separation, affects all subsequent prints 4700 4624 \end{lstlisting} 4701 4625 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] … … 4703 4627 \end{lstlisting} 4704 4628 \begin{lstlisting}[mathescape=off,aboveskip=0pt,aboveskip=0pt,belowskip=0pt] 4705 sepSet( sout, ", $" ); §\C{// change separator from " " to ", \$"}§4629 sepSet( sout, ", $" ); // change separator from " " to ", $" 4706 4630 sout | 1 | 2 | 3 | endl; 4707 4631 \end{lstlisting} … … 5238 5162 \label{s:RationalNumbers} 5239 5163 5240 Rational numbers are numbers written as a ratio, \ieas a fraction, where the numerator (top number) and the denominator (bottom number) are whole numbers.5164 Rational numbers are numbers written as a ratio, i.e., as a fraction, where the numerator (top number) and the denominator (bottom number) are whole numbers. 5241 5165 When creating and computing with rational numbers, results are constantly reduced to keep the numerator and denominator as small as possible. 5242 5166 -
src/CodeGen/CodeGenerator.cc
ra14187f rac43954 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : 12 // Last Modified On : Sun Jul 31 08:42:18201613 // Update Count : 3 4511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 15 15:53:15 2016 13 // Update Count : 306 14 14 // 15 15 … … 45 45 bool wantSpacing( Statement * stmt) { 46 46 return dynamic_cast< IfStmt * >( stmt ) || dynamic_cast< CompoundStmt * >( stmt ) || 47 dynamic_cast< WhileStmt * >( stmt ) || dynamic_cast< ForStmt * > ( stmt ) || dynamic_cast< SwitchStmt *>( stmt );47 dynamic_cast< WhileStmt * >( stmt ) || dynamic_cast< ForStmt * > ( stmt ) || dynamic_cast< SwitchStmt *>( stmt ); 48 48 } 49 49 … … 83 83 } 84 84 85 CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ), printLabels( *this ) { }85 CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ), printLabels( *this ) { } 86 86 87 87 CodeGenerator::CodeGenerator( std::ostream &os, std::string init, int indentation, bool infunp ) … … 155 155 objectDecl->get_init()->accept( *this ); 156 156 } // if 157 158 157 if ( objectDecl->get_bitfieldWidth() ) { 159 158 output << ":"; … … 173 172 174 173 cur_indent += CodeGenerator::tabsize; 175 for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end(); i++) {174 for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end(); i++) { 176 175 output << indent; 177 176 (*i)->accept( *this ); 178 177 output << ";" << endl; 179 } // for178 } 180 179 181 180 cur_indent -= CodeGenerator::tabsize; … … 258 257 (*iter)->accept( *this ); 259 258 output << "]"; 260 } // if261 } // for259 } 260 } 262 261 output << " = "; 263 262 } … … 318 317 // do nothing 319 318 ; 320 } // switch319 } 321 320 322 321 switch ( opInfo.type ) { … … 386 385 // there are no intrinsic definitions of 0/1 or label addresses as functions 387 386 assert( false ); 388 } // switch387 } 389 388 } else { 390 389 varExpr->accept( *this ); … … 418 417 case OT_CALL: 419 418 assert( false ); 419 420 420 421 421 case OT_CTOR: … … 437 437 // no constructors with 0 or more than 2 parameters 438 438 assert( false ); 439 } // if439 } 440 440 break; 441 441 … … 470 470 // there are no intrinsic definitions of 0 or 1 as functions 471 471 assert( false ); 472 } // switch472 } 473 473 } else { 474 if ( nameExpr->get_name() == "Range" ) { // case V1 ... V2 or case V1~V2 475 assert( untypedExpr->get_args().size() == 2 ); 476 (*untypedExpr->get_args().begin())->accept( *this ); 477 output << " ... "; 478 (*--untypedExpr->get_args().end())->accept( *this ); 479 } else { // builtin routines 480 nameExpr->accept( *this ); 481 output << "("; 482 genCommaList( untypedExpr->get_args().begin(), untypedExpr->get_args().end() ); 483 output << ")"; 484 } // if 474 nameExpr->accept( *this ); 475 output << "("; 476 genCommaList( untypedExpr->get_args().begin(), untypedExpr->get_args().end() ); 477 output << ")"; 485 478 } // if 486 479 } else { … … 528 521 // otherwise, the cast is to an lvalue type, so the cast should be dropped, since the result of a cast is 529 522 // never an lvalue in C 530 } // if523 } 531 524 castExpr->get_arg()->accept( *this ); 532 525 output << ")"; … … 661 654 if ( wantSpacing( *i ) ) { 662 655 output << endl; 663 } // if656 } 664 657 } 665 658 cur_indent -= CodeGenerator::tabsize; … … 744 737 (*i)->accept( *this ); 745 738 output << endl; 746 } // for739 } 747 740 cur_indent -= CodeGenerator::tabsize; 748 741 } … … 766 759 output << "continue"; 767 760 break; 768 } // switch761 } 769 762 output << ";"; 770 763 } … … 805 798 if ( forStmt->get_condition() != 0 ) { 806 799 forStmt->get_condition()->accept( *this ); 807 } // if800 } 808 801 output << ";"; 809 802 … … 812 805 Expression * expr = new CastExpr( forStmt->get_increment() ); 813 806 expr->accept( *this ); 814 } // if807 } 815 808 output << ") "; 816 809 -
src/CodeGen/CodeGenerator.h
ra14187f rac43954 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 30 11:10:42201613 // Update Count : 3 712 // Last Modified On : Mon Jul 4 17:12:40 2016 13 // Update Count : 34 14 14 // 15 15 … … 118 118 void handleAggregate( AggregateDecl *aggDecl ); 119 119 void handleTypedef( NamedTypeDecl *namedType ); 120 }; // CodeGenerator120 }; 121 121 122 122 template< class Iterator > -
src/ControlStruct/CaseRangeMutator.cc
ra14187f rac43954 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : 12 // Last Modified On : Sun Jul 31 12:16:28201613 // Update Count : 3211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 12 17:35:13 2016 13 // Update Count : 9 14 14 // 15 15 … … 34 34 std::list< Statement * >::iterator i = cases.begin(); 35 35 while ( i != cases.end() ) { 36 (*i )->acceptMutator( *this );36 (*i )->acceptMutator( *this ); 37 37 38 38 if ( ! newCaseLabels.empty() ) { 39 std::cout << "FRED" << std::endl;40 39 std::list< Statement * > newCases; 41 40 42 41 // transform( newCaseLabels.begin(), newCaseLabels.end(), bnd1st( ptr_fun( ctor< CaseStmt, Label, Expression * > ) ) ); 43 42 44 for ( std::list< Expression * >::iterator j = newCaseLabels.begin(); j != newCaseLabels.end(); j++ ) { 45 std::list< Label > emptyLabels; 46 std::list< Statement * > emptyStmts; 43 for ( std::list< Expression * >::iterator j = newCaseLabels.begin(); 44 j != newCaseLabels.end(); j++ ) { 45 std::list<Label> emptyLabels; 46 std::list< Statement *> emptyStmts; 47 47 newCases.push_back( new CaseStmt( emptyLabels, *j, emptyStmts ) ); 48 48 } // for 49 49 50 if ( CaseStmt *currentCase = dynamic_cast< CaseStmt * > ( *i ) )50 if ( CaseStmt *currentCase = dynamic_cast< CaseStmt * > ( *i ) ) 51 51 if ( ! currentCase->get_statements().empty() ) { 52 CaseStmt *lastCase = dynamic_cast< CaseStmt * > ( newCases.back() );52 CaseStmt *lastCase = dynamic_cast< CaseStmt * > ( newCases.back() ); 53 53 if ( lastCase == 0 ) { throw ( 0 ); /* FIXME */ } // something is very wrong, as I just made these, and they were all cases 54 54 // transfer the statement block ( if any ) to the new list: 55 55 lastCase->set_statements( currentCase->get_statements() ); 56 56 } // if 57 std::list< Statement * >::iterator j = i; 58 advance( j, 1 ); 59 replace( cases, i, newCases ); 57 std::list< Statement * >::iterator j = i; advance( j, 1 ); 58 replace ( cases, i, newCases ); 60 59 i = j; 61 60 newCaseLabels.clear(); … … 65 64 66 65 return switchStmt; 67 } // CaseRangeMutator::mutate66 } 68 67 69 68 Statement *CaseRangeMutator::mutate( CaseStmt *caseStmt ) { 70 // case list, e.g., case 1, 3, 5: 71 if ( TupleExpr *tcond = dynamic_cast< TupleExpr * >( caseStmt->get_condition() ) ) { 69 UntypedExpr *cond; 70 if ( ( cond = dynamic_cast< UntypedExpr * >( caseStmt->get_condition() )) != 0 ) { 71 NameExpr *nmfunc; 72 if ( ( nmfunc = dynamic_cast< NameExpr *>( cond->get_function() )) != 0 ) { 73 if ( nmfunc->get_name() == std::string("Range") ) { 74 assert( cond->get_args().size() == 2 ); 75 std::list<Expression *>::iterator i = cond->get_args().begin(); 76 Expression *lo = *i, *hi = *(++i ); // "unnecessary" temporaries 77 fillRange( lo, hi ); 78 } // if 79 } // if 80 } else if ( TupleExpr *tcond = dynamic_cast< TupleExpr * >( caseStmt->get_condition() ) ) { 81 // case list 72 82 assert( ! tcond->get_exprs().empty() ); 73 for ( std::list< Expression * >::iterator i = tcond->get_exprs().begin(); i != tcond->get_exprs().end(); i++ ) { 74 newCaseLabels.push_back( *i ); // do I need to clone them? 75 } // for 83 for ( std::list< Expression * >::iterator i = tcond->get_exprs().begin(); i != tcond->get_exprs().end(); i++ ) 84 newCaseLabels.push_back( *i ); // do I need to clone them? 76 85 } // if 77 86 78 87 std::list< Statement * > &stmts = caseStmt->get_statements(); 79 mutateAll ( stmts, *this );88 mutateAll ( stmts, *this ); 80 89 81 90 return caseStmt; 82 } // CaseRangeMutator::mutate 91 } 92 93 void CaseRangeMutator::fillRange( Expression *lo, Expression *hi ) { 94 // generate the actual range ( and check for consistency ) 95 Constant *c_lo, *c_hi; 96 ConstantExpr *ce_lo, *ce_hi; 97 ce_lo = dynamic_cast< ConstantExpr * >( lo ); 98 ce_hi = dynamic_cast< ConstantExpr * >( hi ); 99 100 if ( ce_lo && ce_hi ) { 101 c_lo = ce_lo->get_constant(); c_hi = ce_hi->get_constant(); 102 } /* else { 103 if ( ! ce_lo ) ; 104 if ( ! ce_hi ) ; 105 } */ 106 BasicType *ty_lo = dynamic_cast< BasicType * >( c_lo->get_type() ), 107 *ty_hi = dynamic_cast< BasicType * >( c_hi->get_type() ); 108 109 if ( ! ty_lo || ! ty_hi ) 110 return; // one of them is not a constant 111 112 switch ( ty_lo->get_kind() ) { 113 case BasicType::Char: 114 case BasicType::UnsignedChar: 115 switch ( ty_hi->get_kind() ) { 116 case BasicType::Char: 117 case BasicType::UnsignedChar: 118 // first case, they are both printable ASCII characters represented as 'x' 119 if ( c_lo->get_value().size() == 3 && c_hi->get_value().size() == 3 ) { 120 char ch_lo = ( c_lo->get_value())[1], ch_hi = ( c_hi->get_value())[1]; 121 122 if ( ch_lo > ch_hi ) { char t=ch_lo; ch_lo=ch_hi; ch_hi=t; } 123 124 for ( char c = ch_lo; c <= ch_hi; c++ ) { 125 Type::Qualifiers q; 126 Constant cnst( new BasicType( q, BasicType::Char ), 127 std::string("'") + c + std::string("'") ); 128 newCaseLabels.push_back( new ConstantExpr( cnst ) ); 129 } // for 130 131 return; 132 } // if 133 break; 134 default: 135 // error: incompatible constants 136 break; 137 } // switch 138 break; 139 case BasicType::ShortSignedInt: 140 case BasicType::ShortUnsignedInt: 141 case BasicType::SignedInt: 142 case BasicType::UnsignedInt: 143 case BasicType::LongSignedInt: 144 case BasicType::LongUnsignedInt: 145 case BasicType::LongLongSignedInt: 146 case BasicType::LongLongUnsignedInt: 147 switch ( ty_hi->get_kind() ) { 148 case BasicType::ShortSignedInt: 149 case BasicType::ShortUnsignedInt: 150 case BasicType::SignedInt: 151 case BasicType::UnsignedInt: 152 case BasicType::LongSignedInt: 153 case BasicType::LongUnsignedInt: 154 case BasicType::LongLongSignedInt: 155 case BasicType::LongLongUnsignedInt: { 156 int i_lo = atoi( c_lo->get_value().c_str()), 157 i_hi = atoi( c_hi->get_value().c_str()); 158 159 if ( i_lo > i_hi ) { int t=i_lo; i_lo=i_hi; i_hi=t; } 160 161 for ( int c = i_lo; c <= i_hi; c++ ) { 162 Type::Qualifiers q; 163 Constant cnst( new BasicType( q, ty_hi->get_kind()), // figure can't hurt (used to think in positives) 164 toString< int >( c ) ); 165 newCaseLabels.push_back( new ConstantExpr( cnst ) ); 166 } 167 168 return; 169 } 170 default: 171 // error: incompatible constants 172 break; 173 } 174 break; 175 default: 176 break; 177 } // switch 178 179 /* End: */{ 180 // invalid range, signal a warning (it still generates the two case labels) 181 newCaseLabels.push_back( lo ); 182 newCaseLabels.push_back( hi ); 183 return; 184 } 185 } 83 186 } // namespace ControlStruct 84 187 -
src/ControlStruct/CaseRangeMutator.h
ra14187f rac43954 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 30 23:41:57201613 // Update Count : 512 // Last Modified On : Tue Jul 12 17:35:30 2016 13 // Update Count : 4 14 14 // 15 15 … … 30 30 virtual Statement *mutate( CaseStmt * ); 31 31 private: 32 void fillRange( Expression *lo, Expression *hi ); 33 32 34 Expression *currentCondition; 33 35 std::list< Expression * > newCaseLabels; -
src/GenPoly/Box.cc
ra14187f rac43954 619 619 return 0; 620 620 } 621 621 622 622 /// Returns T if the given declaration is a function with parameters (T*, T) for some TypeInstType T, NULL otherwise 623 623 TypeInstType *isTypeInstPtrValFn( DeclarationWithType *decl ) { … … 637 637 return 0; 638 638 } 639 639 640 640 /// Returns T if the given declaration is (*?=?)(T *, T) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 641 641 TypeInstType *isTypeInstAssignment( DeclarationWithType *decl ) { … … 677 677 return 0; 678 678 } 679 679 680 680 /// Returns T if the given declaration is a function with parameters (T*, T) for some type T, where neither parameter is cv-qualified, 681 681 /// NULL otherwise … … 772 772 copyOps.beginScope(); 773 773 dtorOps.beginScope(); 774 774 775 775 DeclarationWithType *oldRetval = retval; 776 776 bool oldUseRetval = useRetval; … … 1471 1471 VariableExpr *wrapFunctionDecl( DeclarationWithType *functionDecl ) { 1472 1472 // line below cloned from FixFunction.cc 1473 // xxx - functionObj is never added to a list of declarations...1474 1473 ObjectDecl *functionObj = new ObjectDecl( functionDecl->get_name(), functionDecl->get_storageClass(), functionDecl->get_linkage(), 0, 1475 1474 new PointerType( Type::Qualifiers(), functionDecl->get_type()->clone() ), 0 ); 1476 1475 functionObj->set_mangleName( functionDecl->get_mangleName() ); 1477 functionObj->set_scopeLevel( functionDecl->get_scopeLevel() );1478 1476 return new VariableExpr( functionObj ); 1479 1477 } … … 1494 1492 = ParamEntry( assertOp->get_uniqueId(), assertOp->get_type()->clone(), actualDecl->get_type()->clone(), wrapFunctionDecl( assertOp ) ); 1495 1493 } 1496 1494 1497 1495 Statement * Pass1::mutate( ReturnStmt *returnStmt ) { 1498 1496 if ( retval && returnStmt->get_expr() ) { … … 1556 1554 DeclarationWithType *assertDtor = findOpForType( formalType, dtorOps, scopedDtorOps ); 1557 1555 if ( ! assertDtor ) throw SemanticError( "No destructor found for ", formalType ); 1558 1556 1559 1557 // add inferred parameters for otype operators to assignment expression 1560 1558 // NOTE: Code here assumes that first four assertions are assign op, ctor, copy ctor, dtor, in that order … … 1570 1568 ++actualIt; 1571 1569 addAssertionFor( assignExpr, *actualIt, assertDtor ); 1572 1570 1571 //DeclarationWithType *actualDecl = asserts.front(); 1572 //assignExpr->get_inferParams()[ actualDecl->get_uniqueId() ] 1573 // = ParamEntry( assertAssign->get_uniqueId(), assertAssign->get_type()->clone(), actualDecl->get_type()->clone(), wrapFunctionDecl( assertAssign ) ); 1573 1574 } 1574 1575 } … … 2180 2181 bool PolyGenericCalculator::findGeneric( Type *ty ) { 2181 2182 ty = replaceTypeInst( ty, env ); 2182 2183 2183 2184 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType* >( ty ) ) { 2184 2185 if ( scopeTyVars.find( typeInst->get_name() ) != scopeTyVars.end() ) { -
src/Parser/lex.cc
ra14187f rac43954 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[8 92] =393 static yyconst flex_int16_t yy_accept[888] = 394 394 { 0, 395 0, 0, 0, 0, 0, 0, 11 6, 116, 119, 119,396 18 2, 180, 7, 9, 8, 139, 118, 103, 144, 147,397 11 5, 126, 127, 142, 140, 130, 141, 133, 143, 108,398 10 9, 110, 131, 132, 149, 151, 150, 152, 180, 103,399 12 4, 180, 125, 145, 103, 105, 103, 103, 103, 103,400 10 3, 103, 103, 103, 103, 103, 103, 103, 103, 103,401 10 3, 103, 128, 148, 129, 146, 7, 180, 4, 4,402 18 1, 106, 181, 107, 116, 117, 123, 119, 120, 7,403 9, 0, 8, 15 6, 175, 103, 0, 168, 138, 161,404 16 9, 166, 153, 164, 154, 165, 163, 0, 113, 3,405 406 0, 16 7, 113, 111, 0, 0, 111, 111, 0, 0,407 11 1, 110, 110, 110, 0, 110, 136, 137, 135, 157,408 15 9, 155, 160, 158, 0, 0, 0, 0, 0, 0,409 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 4,410 17 4, 0, 118, 115, 103, 0, 0, 171, 0, 103,411 10 3, 103, 103, 103, 103, 103, 103, 103, 103, 103,412 10 3, 103, 103, 103, 103, 103, 38, 103, 103, 103,413 10 3, 103, 103, 103, 103, 103, 103, 57, 103, 103,414 10 3, 103, 103, 103, 103, 103, 103, 103, 103, 103,415 10 3, 103, 103, 103, 170, 162, 7, 0, 0, 0,416 417 2, 0, 5, 10 6, 0, 0, 0, 116, 0, 122,418 12 1, 121, 0, 0, 0, 119, 0, 0, 0, 0,395 0, 0, 0, 0, 0, 0, 115, 115, 118, 118, 396 181, 179, 7, 9, 8, 138, 117, 102, 143, 146, 397 114, 125, 126, 141, 139, 129, 140, 132, 142, 107, 398 108, 109, 130, 131, 148, 150, 149, 151, 179, 102, 399 123, 179, 124, 144, 102, 104, 102, 102, 102, 102, 400 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 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 168, 165, 152, 163, 153, 164, 162, 0, 112, 3, 405 406 0, 166, 112, 110, 0, 0, 110, 110, 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, 419 419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420 0, 13 4, 113, 113, 0, 113, 113, 0, 0, 6,421 0, 11 1, 0, 0, 0, 113, 0, 111, 111, 111,422 11 1, 0, 112, 0, 0, 110, 110, 110, 110, 0,423 17 2, 173, 0, 178, 176, 0, 0, 0, 104, 0,424 0, 0, 0, 0, 0, 0, 0, 10 3, 17, 103,425 10 3, 103, 103, 103, 103, 103, 103, 103, 103, 103,426 10 3, 103, 103, 103, 103, 103, 103, 14, 103, 103,427 428 10 3, 103, 103, 103, 103, 103, 103, 103, 103, 103,429 10 3, 103, 103, 103, 103, 103, 51, 103, 103, 103,430 6 4, 103, 103, 103, 103, 103, 103, 103, 103, 103,431 10 3, 103, 103, 103, 103, 90, 103, 103, 103, 103,432 10 3, 103, 103, 0, 0, 0, 0, 0, 0, 0,433 0, 12 1, 0, 0, 0, 0, 0, 121, 0, 0,434 17 9, 0, 0, 0, 0, 0, 0, 0, 113, 0,435 11 3, 0, 113, 0, 0, 113, 0, 111, 111, 0,436 0, 11 2, 112, 0, 112, 0, 112, 110, 110, 0,437 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 7,438 439 10 3, 103, 103, 103, 103, 103, 103, 103, 103, 103,440 10 3, 103, 103, 103, 103, 103, 103, 103, 103, 103,441 10 3, 103, 103, 21, 103, 24, 103, 27, 103, 103,442 10 3, 103, 103, 103, 103, 41, 103, 43, 103, 103,443 10 3, 103, 103, 103, 103, 56, 103, 67, 103, 103,444 10 3, 103, 103, 103, 103, 103, 103, 103, 103, 103,445 10 3, 103, 103, 103, 98, 103, 103, 0, 0, 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, 425 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 426 102, 102, 102, 102, 102, 102, 102, 14, 102, 102, 427 428 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 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, 446 446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 447 0, 12 1, 0, 0, 0, 0, 0, 113, 0, 0,448 0, 0, 0, 0, 11 2, 112, 0, 114, 0, 112,449 450 11 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,451 0, 0, 0, 0, 10 3, 103, 22, 103, 103, 103,452 10 3, 103, 103, 103, 15, 103, 103, 103, 103, 103,453 10 3, 103, 103, 103, 103, 103, 103, 103, 103, 23,454 25, 10 3, 32, 103, 103, 103, 103, 40, 103, 103,455 10 3, 103, 49, 103, 103, 54, 103, 103, 71, 103,456 10 3, 103, 77, 103, 103, 103, 103, 103, 87, 89,457 10 3, 103, 95, 103, 103, 102, 0, 0, 0, 0,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 458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 459 0, 0, 0, 0, 0, 11 4, 0, 0, 112, 114,460 461 11 4, 114, 114, 0, 112, 0, 0, 0, 0, 0,462 0, 0, 0, 0, 0, 10 3, 0, 103, 103, 103,463 10 3, 103, 103, 103, 103, 103, 103, 103, 103, 103,464 10 3, 103, 103, 59, 103, 103, 103, 103, 103, 103,465 10 3, 103, 28, 103, 103, 103, 39, 42, 45, 103,466 10 3, 52, 103, 61, 68, 103, 103, 76, 78, 81,467 8 2, 84, 85, 103, 103, 92, 103, 103, 0, 1,468 0, 0, 0, 0, 0, 0, 10 6, 0, 0, 0,469 12 1, 0, 0, 0, 0, 114, 0, 114, 114, 0,470 0, 0, 0, 0, 0, 0, 0, 0, 10 3, 103,471 472 18, 10 3, 103, 103, 103, 103, 103, 103, 16, 103,473 10 3, 103, 33, 103, 103, 103, 103, 103, 103, 103,474 10 3, 103, 103, 103, 103, 36, 37, 103, 48, 53,475 10 3, 103, 103, 91, 103, 103, 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, 463 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 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 476 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 477 11, 29, 55, 103, 103, 103, 103, 103, 103, 103, 478 103, 103, 103, 103, 60, 62, 65, 103, 103, 79, 479 93, 103, 103, 35, 103, 47, 72, 73, 103, 96, 480 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481 0, 0, 0, 103, 69, 103, 103, 12, 103, 103, 482 483 30, 34, 103, 103, 103, 66, 103, 103, 103, 103, 484 103, 103, 103, 0, 0, 0, 0, 0, 0, 0, 485 0, 0, 0, 0, 0, 0, 58, 103, 103, 103, 486 103, 103, 103, 103, 50, 63, 74, 80, 94, 100, 487 103, 103, 103, 0, 0, 0, 0, 0, 0, 0, 488 0, 103, 103, 13, 19, 103, 103, 31, 103, 103, 489 103, 26, 46, 88, 0, 0, 103, 103, 103, 103, 490 103, 103, 75, 101, 103, 86, 20, 103, 103, 44, 491 83, 103, 103, 103, 103, 103, 103, 103, 97, 70, 492 0 493 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, 480 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 494 492 } ; 495 493 … … 539 537 } ; 540 538 541 static yyconst flex_int16_t yy_base[106 6] =539 static yyconst flex_int16_t yy_base[1062] = 542 540 { 0, 543 0, 84, 22 85, 2282, 94, 0, 177, 178, 179, 180,544 22 98, 2825, 191, 2825, 197, 55, 2825, 2244, 60, 173,545 282 5, 2825, 2825, 56, 188, 2825, 191, 189, 204, 216,546 275, 0, 22 62, 2825, 216, 2260, 152, 344, 155, 220,547 282 5, 159, 2825, 217, 226, 2825, 185, 154, 212, 251,541 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, 548 546 237, 270, 235, 257, 241, 205, 193, 305, 314, 333, 549 238, 228, 282 5, 225, 2825, 2255, 402, 390, 2825, 2266,550 282 5, 2234, 235, 2825, 0, 2825, 426, 0, 2825, 417,551 282 5, 439, 451, 2825, 498, 2232, 264, 2825, 2825, 2825,552 282 5, 2825, 2248, 2825, 2245, 2825, 2825, 2257, 559, 2825,553 554 22 74, 2825, 438, 444, 511, 534, 289, 253, 197, 380,555 305, 0, 319, 280, 198, 322, 282 5, 2825, 2825, 2243,556 282 5, 2825, 2825, 2240, 2237, 218, 255, 2252, 298, 350,557 368, 312, 440, 398, 405, 22 33, 441, 2181, 446, 2209,558 282 5, 335, 2825, 2825, 468, 2203, 2202, 2825, 2175, 439,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, 559 557 282, 433, 372, 281, 437, 434, 428, 570, 444, 466, 560 558 464, 469, 475, 321, 492, 438, 471, 445, 474, 512, 561 489, 503, 496, 521, 276, 515, 516, 2 202, 526, 510,559 489, 503, 496, 521, 276, 515, 516, 2189, 526, 510, 562 560 519, 525, 543, 522, 560, 553, 523, 561, 551, 544, 563 599, 582, 593, 584, 282 5, 2825, 660, 651, 2249, 666,564 565 282 5, 678, 2825, 2196, 607, 2192, 2191, 0, 693, 2825,566 282 5, 684, 2189, 2186, 2183, 0, 2206, 578, 608, 617,567 654, 679, 650, 683, 684, 687, 2 203, 690, 691, 2179,568 21 59, 2825, 0, 683, 710, 686, 700, 2157, 2209, 2825,569 714, 0, 427, 746, 764, 786, 808, 621, 282 5, 2165,570 21 38, 0, 794, 2184, 795, 709, 2825, 2160, 2134, 832,571 282 5, 2825, 2165, 2825, 2825, 711, 714, 2142, 2142, 717,572 21 38, 2136, 2133, 0, 2130, 0, 2101, 694, 679, 712,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, 573 571 709, 711, 698, 566, 726, 743, 771, 741, 790, 784, 574 800, 795, 742, 744, 814, 816, 818, 21 31, 819, 745,572 800, 795, 742, 744, 814, 816, 818, 2118, 819, 745, 575 573 576 574 820, 821, 822, 823, 824, 746, 825, 748, 659, 831, 577 575 826, 833, 838, 839, 848, 850, 851, 844, 834, 857, 578 21 29, 858, 859, 860, 862, 861, 864, 865, 867, 868,579 866, 871, 876, 872, 878, 21 26, 880, 689, 881, 882,580 892, 896, 893, 953, 954, 21 20, 2119, 2118, 0, 2116,581 0, 941, 945, 21 13, 0, 2112, 0, 2111, 0, 2131,582 282 5, 940, 941, 2108, 2105, 0, 2104, 0, 2825, 953,583 975, 964, 282 5, 981, 997, 1021, 2102, 2825, 2825, 939,584 940, 1006, 982, 1041, 310, 1039, 1004, 282 5, 2825, 2099,585 20 95, 2091, 0, 2089, 0, 2087, 0, 2084, 0, 2825,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, 586 584 587 585 886, 941, 960, 962, 977, 976, 980, 982, 1017, 1010, 588 586 1002, 998, 1022, 1031, 1028, 1033, 1034, 1037, 1040, 1043, 589 1038, 1041, 1053, 20 85, 1055, 2083, 1045, 2080, 1056, 1061,590 1063, 1065, 1066, 1067, 1070, 20 77, 1071, 2076, 1073, 1074,591 1075, 1078, 1080, 1081, 1085, 20 75, 1087, 2073, 1084, 1089,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, 592 590 1091, 1097, 1099, 1092, 1102, 1103, 1105, 1106, 1108, 905, 593 1109, 1116, 1110, 1122, 20 70, 1120, 1123, 1179, 2064, 0,594 20 63, 0, 2062, 0, 2060, 0, 1166, 2057, 0, 2054,595 0, 20 53, 2052, 2050, 0, 2047, 0, 1173, 2044, 1179,596 1137, 1195, 1181, 1178, 1176, 282 5, 1219, 1231, 1253, 2055,597 598 20 30, 2040, 2037, 0, 2034, 0, 2033, 0, 2032, 0,599 20 30, 0, 2027, 0, 1141, 1172, 2027, 1180, 1155, 1196,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, 600 598 1157, 1216, 1207, 1231, 1125, 1210, 1232, 1214, 1187, 1236, 601 1235, 1237, 1238, 1272, 1249, 1252, 1250, 1253, 1254, 20 26,602 1261, 1256, 20 25, 1260, 1263, 1264, 1257, 2023, 1271, 1268,603 1269, 1273, 20 20, 1275, 1282, 2017, 1283, 1284, 2016, 1276,604 1286, 1289, 20 15, 1294, 1291, 1296, 1295, 1297, 1310, 2013,605 1305, 1308, 2010, 1307, 1300, 2009, 2058, 2003, 0, 2000,606 0, 19 99, 0, 1998, 0, 1996, 0, 1963, 0, 1961,607 0, 19 60, 0, 1355, 1361, 1389, 1372, 1957, 2825, 1378,608 609 1325, 1365, 1379, 19 54, 2825, 1953, 0, 1952, 0, 1950,610 0, 19 47, 0, 0, 0, 1947, 0, 1366, 1312, 1311,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, 611 609 1341, 1323, 1368, 1369, 1374, 1356, 1383, 1372, 1388, 1390, 612 610 1393, 1395, 1396, 1398, 1400, 1431, 1406, 1407, 1411, 1408, 613 1413, 1414, 19 46, 1409, 1416, 1419, 1945, 1943, 1940, 1422,614 1424, 19 39, 1429, 1938, 1936, 1425, 1430, 1933, 1932, 1931,615 1 929, 1926, 1922, 1436, 1433, 1918, 1439, 1440, 1964, 2825,616 18 95, 0, 1894, 0, 0, 0, 1896, 0, 0, 0,617 282 5, 0, 0, 0, 0, 1486, 1891, 2825, 2825, 1492,618 18 88, 0, 1887, 0, 0, 0, 0, 1886, 1447, 1444,619 620 18 87, 1449, 1471, 1479, 1450, 1480, 1482, 1469, 1884, 1486,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, 621 619 1490, 1488, 1502, 1452, 1510, 1504, 1491, 1519, 1506, 1498, 622 1508, 1512, 1513, 1514, 1515, 18 83, 1882, 1518, 1880, 1877,623 151 7, 1520, 1523, 1876, 1521, 1525, 0, 0, 0, 1872,624 18 70, 1867, 1575, 0, 1866, 1865, 1863, 1860, 1859, 1861,625 18 59, 1856, 1855, 1531, 1538, 1527, 1528, 1530, 1533, 1552,626 1539, 155 4, 1553, 1586, 1854, 1559, 1852, 1560, 1561, 1564,627 157 0, 1572, 1571, 1849, 1574, 1848, 1847, 1845, 1575, 1842,628 18 41, 1837, 1835, 1828, 1826, 1825, 1822, 1821, 1820, 1818,629 1 801, 1792, 1791, 1576, 1791, 1579, 1577, 1580, 1582, 1581,630 631 1 585, 1784, 1589, 1616, 1593, 1781, 1591, 1599, 1605, 1592,632 1606, 1 609, 1610, 1771, 1769, 1768, 1747, 1746, 1745, 1738,633 1 736, 1735, 1693, 1689, 1688, 1687, 1689, 1611, 1612, 1614,634 161 5, 1618, 1625, 1621, 1686, 1683, 1627, 1682, 1681, 1631,635 1 635, 1441, 1637, 1677, 1674, 1354, 1319, 1318, 1267, 1212,636 1 210, 1639, 1640, 1211, 1647, 1623, 1649, 1178, 1652, 1653,637 1657, 1177, 1126, 964, 937, 903, 1641, 1643, 1659, 1663,638 166 4, 1665, 788, 752, 1629, 607, 487, 1666, 1669, 394,639 357, 1670, 1672, 1671, 1674, 1676, 1675, 1678, 233, 137,640 2825, 1750, 1763, 1776, 1786, 1796, 1809, 1819, 1832, 1845,641 642 18 58, 1866, 1876, 1883, 1890, 1897, 1904, 1911, 1918, 1925,643 19 32, 1939, 1952, 1959, 1963, 1971, 1974, 1981, 1988, 1995,644 1998, 2005, 2011, 2024, 2037, 2044, 2051, 2058, 2065, 2068,645 20 75, 2078, 2085, 2088, 2095, 2098, 2105, 2108, 2115, 2118,646 21 25, 2128, 2135, 2143, 2150, 2157, 2164, 2171, 2174, 2181,647 2 184, 2191, 2194, 2201, 2207, 2220, 2227, 2234, 2237, 2244,648 22 47, 2254, 2257, 2264, 2267, 2274, 2277, 2284, 2287, 2294,649 23 01, 2304, 2311, 2314, 2321, 2328, 2335, 2338, 2345, 2348,650 23 55, 2358, 2365, 2368, 2375, 2378, 2385, 2391, 2404, 2411,651 24 18, 2421, 2428, 2431, 2438, 2441, 2448, 2451, 2458, 2461,652 653 24 68, 2471, 2478, 2481, 2488, 2491, 2498, 2505, 2508, 2515,654 25 18, 2525, 2528, 2535, 2538, 2541, 2547, 2554, 2563, 2570,655 25 77, 2580, 2587, 2590, 2593, 2599, 2606, 2609, 2612, 2615,656 26 18, 2621, 2624, 2627, 2634, 2637, 2644, 2647, 2650, 2653,657 26 56, 2666, 2673, 2676, 2679, 2682, 2689, 2696, 2703, 2706,658 27 13, 2720, 2727, 2734, 2741, 2748, 2755, 2762, 2769, 2776,659 2 783, 2790, 2797, 2804, 2811620 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 660 658 } ; 661 659 662 static yyconst flex_int16_t yy_def[106 6] =660 static yyconst flex_int16_t yy_def[1062] = 663 661 { 0, 664 891, 1, 892, 892, 891, 5, 893, 893, 894, 894, 665 891, 891, 891, 891, 891, 891, 891, 895, 891, 891, 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, 666 667 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 667 891, 31, 891, 891, 891, 891, 891, 891, 896, 895, 668 891, 891, 891, 891, 895, 891, 895, 895, 895, 895, 669 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 670 895, 895, 891, 891, 891, 891, 891, 897, 891, 891, 671 891, 898, 891, 891, 899, 891, 891, 900, 891, 891, 672 891, 891, 891, 891, 891, 895, 891, 891, 891, 891, 673 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 674 675 901, 891, 99, 30, 891, 891, 891, 891, 902, 30, 676 891, 31, 891, 891, 31, 891, 891, 891, 891, 891, 677 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 678 891, 891, 891, 891, 891, 891, 891, 891, 891, 903, 679 891, 891, 891, 891, 895, 904, 905, 891, 891, 895, 680 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 681 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 682 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 683 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 684 895, 895, 895, 895, 891, 891, 891, 897, 897, 897, 685 686 891, 897, 891, 898, 891, 906, 907, 899, 891, 891, 687 891, 891, 908, 909, 910, 900, 891, 891, 891, 891, 688 891, 891, 891, 891, 891, 891, 891, 891, 891, 911, 689 912, 891, 99, 891, 891, 891, 891, 99, 913, 891, 690 891, 104, 104, 891, 891, 891, 891, 891, 891, 891, 691 891, 914, 915, 916, 891, 891, 891, 891, 891, 891, 692 891, 891, 891, 891, 891, 891, 891, 891, 903, 891, 693 917, 918, 919, 920, 921, 922, 891, 923, 923, 923, 694 923, 923, 923, 923, 923, 923, 923, 923, 923, 923, 695 923, 923, 923, 923, 923, 923, 923, 923, 923, 923, 696 697 923, 923, 923, 923, 923, 923, 923, 923, 923, 923, 698 923, 923, 923, 923, 923, 923, 923, 923, 923, 923, 699 923, 923, 923, 923, 923, 923, 923, 923, 923, 923, 700 923, 923, 923, 923, 923, 923, 923, 923, 923, 923, 701 923, 923, 923, 924, 925, 926, 927, 928, 929, 930, 702 931, 891, 891, 932, 933, 934, 935, 936, 937, 891, 703 891, 891, 891, 891, 938, 939, 940, 941, 891, 891, 704 891, 891, 891, 891, 891, 371, 376, 891, 891, 942, 705 943, 944, 891, 891, 891, 944, 891, 891, 891, 945, 706 946, 947, 948, 949, 950, 951, 952, 953, 954, 891, 707 708 955, 955, 955, 955, 955, 955, 955, 955, 955, 955, 709 955, 955, 955, 955, 955, 955, 955, 955, 955, 955, 710 955, 955, 955, 955, 955, 955, 955, 955, 955, 955, 711 955, 955, 955, 955, 955, 955, 955, 955, 955, 955, 712 955, 955, 955, 955, 955, 955, 955, 955, 955, 955, 713 955, 955, 955, 955, 955, 955, 955, 955, 955, 955, 714 955, 955, 955, 955, 955, 955, 955, 956, 957, 958, 715 959, 960, 961, 962, 963, 964, 891, 965, 966, 967, 716 968, 969, 969, 970, 971, 972, 973, 891, 488, 891, 717 974, 891, 974, 891, 891, 891, 891, 891, 891, 891, 718 719 891, 975, 976, 977, 978, 979, 980, 981, 982, 983, 720 984, 985, 986, 987, 988, 988, 988, 988, 988, 988, 721 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 722 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 723 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 724 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 725 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 726 988, 988, 988, 988, 988, 988, 989, 990, 991, 992, 727 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 728 1003, 1004, 1005, 891, 891, 891, 891, 1006, 891, 596, 729 730 891, 891, 891, 600, 891, 1007, 1008, 1009, 1010, 1011, 731 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1017, 1017, 1017, 732 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 733 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 734 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 735 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 736 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1019, 891, 737 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 738 891, 1030, 1031, 1032, 1033, 891, 686, 891, 891, 891, 739 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1042, 740 741 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 742 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 743 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 744 1042, 1042, 1042, 1042, 1042, 1042, 1043, 1044, 1045, 1046, 745 1047, 1048, 891, 1049, 1034, 1036, 1050, 1051, 1041, 1042, 746 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 747 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 748 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 749 1042, 1052, 1053, 1046, 1054, 1047, 1055, 1048, 1056, 1057, 750 1050, 1058, 1051, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 751 752 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 753 1042, 1042, 1042, 1059, 1052, 1060, 1053, 1061, 1054, 1062, 754 1055, 1063, 1056, 1064, 1057, 1058, 1042, 1042, 1042, 1042, 755 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 756 1042, 1042, 1042, 1065, 1059, 1060, 1061, 1062, 1036, 1063, 757 1064, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 758 1042, 1042, 1042, 1042, 1065, 1036, 1042, 1042, 1042, 1042, 759 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 760 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 761 0, 891, 891, 891, 891, 891, 891, 891, 891, 891, 762 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, 763 678 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 764 679 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 765 680 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 766 681 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 767 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 768 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 769 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 770 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 771 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 772 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 773 774 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 775 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 776 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 777 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 778 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 779 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 780 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 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 726 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 781 779 } ; 782 780 783 static yyconst flex_int16_t yy_nxt[29 11] =781 static yyconst flex_int16_t yy_nxt[2908] = 784 782 { 0, 785 783 12, 13, 14, 15, 15, 15, 13, 16, 17, 12, … … 806 804 807 805 83, 83, 83, 82, 91, 93, 87, 142, 146, 98, 808 95, 99, 99, 99, 99, 99, 99, 252, 8 91, 94,806 95, 99, 99, 99, 99, 99, 99, 252, 887, 94, 809 807 100, 85, 96, 97, 85, 101, 161, 118, 143, 77, 810 808 77, 77, 77, 144, 147, 102, 103, 87, 104, 104, … … 827 825 305, 200, 201, 190, 257, 136, 200, 257, 137, 263, 828 826 829 8 91, 264, 192, 197, 81, 82, 82, 82, 197, 87,827 887, 264, 192, 197, 81, 82, 82, 82, 197, 87, 830 828 272, 198, 202, 202, 202, 202, 202, 202, 80, 81, 831 829 82, 82, 82, 80, 87, 138, 139, 209, 210, 263, 832 8 91, 264, 209, 282, 211, 255, 263, 267, 264, 211,833 82, 81, 82, 82, 82, 82, 87, 8 91, 212, 212,834 212, 212, 82, 81, 83, 83, 83, 82, 8 91, 211,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, 835 833 99, 99, 99, 99, 99, 99, 242, 242, 242, 242, 836 834 266, 263, 263, 264, 264, 213, 143, 263, 211, 264, 837 835 87, 144, 375, 211, 211, 87, 87, 211, 211, 87, 838 87, 87, 286, 241, 8 91, 211, 87, 87, 211, 243,836 87, 87, 286, 241, 887, 211, 87, 87, 211, 243, 839 837 840 838 211, 214, 211, 281, 215, 217, 278, 284, 285, 218, 841 839 219, 307, 298, 279, 220, 221, 87, 222, 87, 223, 842 87, 87, 8 91, 87, 309, 300, 87, 87, 224, 225,840 87, 87, 887, 87, 309, 300, 87, 87, 224, 225, 843 841 226, 103, 303, 105, 105, 105, 105, 105, 105, 87, 844 842 299, 87, 301, 302, 87, 304, 308, 310, 87, 227, … … 887 885 87, 450, 87, 87, 87, 452, 455, 454, 87, 453, 888 886 457, 462, 460, 461, 87, 87, 458, 464, 87, 515, 889 459, 463, 465, 466, 344, 201, 201, 87, 8 91, 344,887 459, 463, 465, 466, 344, 201, 201, 87, 887, 344, 890 888 467, 345, 199, 211, 211, 211, 211, 352, 352, 352, 891 889 352, 360, 360, 361, 361, 371, 371, 371, 371, 371, 892 890 371, 370, 569, 370, 492, 492, 371, 371, 371, 371, 893 371, 371, 8 91, 87, 493, 494, 477, 488, 488, 488,891 371, 371, 887, 87, 493, 494, 477, 488, 488, 488, 894 892 895 893 488, 488, 488, 233, 233, 233, 233, 233, 233, 516, … … 898 896 489, 496, 87, 518, 87, 236, 374, 236, 519, 520, 899 897 237, 521, 236, 376, 376, 376, 376, 376, 376, 383, 900 87, 384, 375, 496, 87, 385, 522, 496, 497, 8 91,898 87, 384, 375, 496, 87, 385, 522, 496, 497, 887, 901 899 497, 386, 87, 498, 498, 498, 498, 498, 498, 87, 902 900 525, 495, 526, 387, 87, 524, 377, 384, 523, 496, … … 921 919 236, 498, 498, 498, 498, 498, 498, 620, 87, 492, 922 920 597, 599, 492, 600, 600, 600, 600, 600, 600, 87, 923 631, 622, 87, 87, 625, 891, 87, 891, 87, 601,921 631, 622, 87, 887, 625, 887, 87, 862, 87, 601, 924 922 497, 602, 497, 603, 602, 498, 498, 498, 498, 498, 925 923 498, 624, 628, 87, 87, 630, 604, 87, 87, 87, … … 928 926 634, 87, 87, 635, 87, 87, 87, 642, 87, 87, 929 927 637, 641, 87, 87, 640, 87, 87, 643, 647, 639, 930 87, 87, 8 66, 87, 87, 87, 638, 87, 87, 644,928 87, 87, 887, 87, 87, 87, 638, 87, 87, 644, 931 929 645, 646, 648, 650, 87, 87, 87, 649, 87, 653, 932 930 651, 87, 652, 87, 654, 655, 87, 87, 87, 87, 933 931 656, 657, 87, 660, 659, 661, 664, 87, 658, 87, 934 932 87, 663, 87, 87, 87, 668, 665, 688, 688, 662, 935 666, 701, 702, 8 91, 891, 87, 667, 488, 488, 488,933 666, 701, 702, 887, 887, 87, 667, 488, 488, 488, 936 934 488, 488, 488, 596, 596, 596, 596, 596, 596, 595, 937 935 688, 595, 704, 87, 596, 596, 596, 596, 596, 596, 938 936 939 600, 600, 600, 600, 600, 600, 703, 688, 87, 8 91,937 600, 600, 600, 600, 600, 600, 703, 688, 87, 887, 940 938 594, 686, 686, 686, 686, 686, 686, 689, 87, 689, 941 939 87, 87, 689, 699, 87, 708, 87, 601, 706, 602, … … 946 944 715, 87, 721, 719, 87, 724, 87, 87, 722, 720, 947 945 727, 87, 87, 87, 725, 87, 731, 723, 87, 732, 948 726, 87, 87, 87, 728, 734, 87, 733, 730, 87,949 950 735, 87, 87, 729, 87, 863, 751, 736, 686, 686,946 726, 87, 87, 861, 728, 734, 87, 733, 730, 87, 947 948 735, 87, 87, 729, 87, 87, 751, 736, 686, 686, 951 949 686, 686, 686, 686, 600, 600, 600, 600, 600, 600, 952 950 750, 87, 755, 87, 601, 763, 602, 752, 603, 602, … … 956 954 87, 768, 87, 769, 87, 87, 87, 87, 770, 87, 957 955 87, 87, 87, 87, 771, 87, 774, 87, 772, 87, 958 87, 7 80, 87, 87, 796, 87, 781, 773, 775, 777,959 87, 87, 798, 776, 778, 797, 779, 686, 686, 686,960 961 686, 686, 686, 79 4, 87, 87, 87, 795, 799, 802,962 80 4, 87, 87, 87, 805, 806, 87, 801, 803, 808,963 807, 800, 87, 87, 87, 809, 87, 87, 87, 87,964 743, 87, 87, 87, 87, 830, 832, 87, 87, 810,965 83 3, 87, 835, 87, 87, 87, 811, 829, 836, 812,966 8 13, 87, 828, 840, 838, 827, 831, 87, 87, 834,967 839, 87, 87, 87, 87, 837, 87, 87, 87, 854,968 87, 853, 842, 87, 841, 87, 855, 87, 843, 87,969 8 58, 87, 860, 87, 852, 870, 861, 87, 856, 87,970 8 59, 87, 87, 87, 857, 87, 862, 868, 864, 87,971 972 867, 87, 869, 881, 87, 87, 871, 872, 873, 87,973 876, 87, 874, 875, 877, 87, 87, 87, 87, 879,974 880, 87, 87, 87, 87, 878, 87, 87, 87, 891,975 87, 884, 865, 87, 87, 87, 883, 885, 87, 882,976 8 90, 87, 891, 891, 851, 886, 888, 887, 891, 889,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, 977 975 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 978 69, 69, 69, 75, 75, 75, 75, 75, 75, 75, 979 75, 75, 75, 75, 75, 75, 78, 78, 78, 78, 980 78, 78, 78, 78, 78, 78, 78, 78, 78, 86, 981 850, 891, 86, 848, 86, 86, 86, 86, 86, 140, 982 983 891, 847, 891, 140, 140, 140, 140, 140, 140, 199, 984 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 985 199, 199, 204, 846, 891, 204, 845, 204, 204, 204, 986 204, 204, 208, 87, 208, 208, 87, 208, 208, 208, 987 208, 208, 208, 87, 208, 216, 891, 826, 216, 216, 988 216, 216, 216, 216, 216, 216, 891, 216, 239, 239, 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, 989 997 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 990 239, 253, 253, 825, 253, 823, 891, 821, 253, 269, 991 891, 819, 269, 891, 269, 269, 269, 269, 269, 273, 992 817, 273, 815, 87, 87, 273, 275, 87, 275, 87, 993 994 87, 87, 275, 348, 87, 348, 87, 87, 87, 348, 995 350, 87, 350, 87, 891, 793, 350, 354, 791, 354, 996 891, 891, 788, 354, 356, 786, 356, 784, 87, 87, 997 356, 358, 87, 358, 87, 87, 87, 358, 365, 87, 998 365, 749, 746, 745, 365, 367, 743, 367, 205, 739, 999 738, 367, 239, 239, 239, 239, 239, 239, 239, 239, 1000 239, 239, 239, 239, 239, 380, 670, 380, 382, 382, 1001 87, 382, 382, 382, 87, 382, 253, 253, 87, 253, 1002 392, 87, 392, 87, 87, 87, 392, 394, 87, 394, 1003 87, 87, 87, 394, 396, 87, 396, 87, 87, 87, 1004 1005 396, 273, 697, 273, 398, 696, 398, 694, 692, 690, 1006 398, 275, 598, 275, 86, 685, 684, 86, 682, 86, 1007 86, 86, 86, 86, 199, 199, 199, 199, 199, 199, 1008 199, 199, 199, 199, 199, 199, 199, 468, 468, 468, 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, 1009 1027 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 1010 469, 680, 469, 678, 676, 674, 469, 471, 672, 471, 1011 670, 87, 87, 471, 473, 87, 473, 87, 87, 87, 1012 473, 348, 87, 348, 475, 87, 475, 87, 87, 87, 1013 475, 350, 617, 350, 478, 615, 478, 613, 611, 609, 1014 478, 354, 607, 354, 480, 502, 480, 605, 605, 594, 1015 1016 480, 356, 593, 356, 482, 591, 482, 483, 483, 589, 1017 482, 358, 587, 358, 484, 585, 484, 583, 581, 579, 1018 484, 365, 87, 365, 486, 87, 486, 87, 87, 87, 1019 486, 367, 87, 367, 491, 87, 491, 87, 491, 514, 1020 491, 380, 512, 380, 510, 380, 508, 380, 382, 382, 1021 506, 382, 382, 382, 504, 382, 503, 490, 503, 487, 1022 485, 361, 503, 505, 361, 505, 483, 481, 479, 505, 1023 507, 476, 507, 474, 472, 470, 507, 392, 87, 392, 1024 509, 87, 509, 87, 400, 399, 509, 394, 397, 394, 1025 511, 395, 511, 393, 270, 265, 511, 396, 264, 396, 1026 1027 513, 389, 513, 389, 252, 379, 513, 398, 379, 398, 1028 86, 240, 374, 86, 368, 86, 86, 86, 86, 86, 1029 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 1030 468, 468, 468, 578, 366, 578, 364, 360, 359, 578, 1031 469, 357, 469, 580, 355, 580, 351, 349, 205, 580, 1032 471, 201, 471, 582, 87, 582, 277, 276, 274, 582, 1033 473, 270, 473, 584, 265, 584, 268, 265, 263, 584, 1034 475, 262, 475, 586, 261, 586, 240, 232, 85, 586, 1035 478, 85, 478, 588, 87, 588, 205, 203, 85, 588, 1036 480, 122, 480, 482, 117, 482, 87, 891, 70, 482, 1037 1038 590, 70, 590, 891, 891, 891, 590, 484, 891, 484, 1039 592, 891, 592, 891, 891, 891, 592, 486, 891, 486, 1040 491, 891, 491, 891, 491, 891, 491, 382, 891, 382, 1041 891, 891, 891, 382, 606, 891, 606, 891, 891, 891, 1042 606, 503, 891, 503, 608, 891, 608, 891, 891, 891, 1043 608, 505, 891, 505, 610, 891, 610, 891, 891, 891, 1044 610, 507, 891, 507, 612, 891, 612, 891, 891, 891, 1045 612, 509, 891, 509, 614, 891, 614, 891, 891, 891, 1046 614, 511, 891, 511, 616, 891, 616, 891, 891, 891, 1047 616, 513, 891, 513, 86, 891, 891, 86, 891, 86, 1048 1049 86, 86, 86, 86, 669, 669, 669, 669, 669, 669, 1050 669, 669, 669, 669, 669, 669, 669, 671, 891, 671, 1051 891, 891, 891, 671, 578, 891, 578, 673, 891, 673, 1052 891, 891, 891, 673, 580, 891, 580, 675, 891, 675, 1053 891, 891, 891, 675, 582, 891, 582, 677, 891, 677, 1054 891, 891, 891, 677, 584, 891, 584, 679, 891, 679, 1055 891, 891, 891, 679, 586, 891, 586, 681, 891, 681, 1056 891, 891, 891, 681, 588, 891, 588, 683, 891, 683, 1057 891, 891, 891, 683, 590, 891, 590, 86, 891, 86, 1058 891, 891, 891, 86, 592, 891, 592, 491, 891, 491, 1059 1060 891, 891, 891, 491, 691, 891, 691, 891, 891, 891, 1061 691, 606, 891, 606, 693, 891, 693, 891, 891, 891, 1062 693, 608, 891, 608, 695, 891, 695, 891, 891, 891, 1063 695, 610, 891, 610, 140, 891, 140, 891, 891, 891, 1064 140, 612, 891, 612, 698, 891, 698, 614, 891, 614, 1065 86, 891, 891, 86, 891, 86, 86, 86, 86, 86, 1066 616, 891, 616, 669, 669, 669, 669, 669, 669, 669, 1067 669, 669, 669, 669, 669, 669, 737, 891, 737, 891, 1068 891, 891, 737, 671, 891, 671, 204, 891, 204, 891, 1069 891, 891, 204, 673, 891, 673, 740, 891, 740, 675, 1070 1071 891, 675, 204, 891, 891, 204, 891, 204, 204, 204, 1072 204, 204, 677, 891, 677, 741, 891, 741, 679, 891, 1073 679, 681, 891, 681, 742, 891, 742, 683, 891, 683, 1074 86, 891, 86, 744, 891, 744, 891, 891, 891, 744, 1075 691, 891, 691, 269, 891, 269, 891, 891, 891, 269, 1076 693, 891, 693, 747, 891, 747, 695, 891, 695, 140, 1077 891, 140, 748, 891, 748, 891, 891, 891, 748, 86, 1078 891, 891, 86, 891, 86, 86, 86, 86, 86, 782, 1079 891, 782, 737, 891, 737, 204, 891, 204, 783, 891, 1080 783, 891, 891, 891, 783, 785, 891, 785, 891, 891, 1081 1082 891, 785, 787, 891, 787, 891, 891, 891, 787, 789, 1083 891, 789, 790, 891, 790, 891, 891, 891, 790, 792, 1084 891, 792, 891, 891, 891, 792, 814, 891, 814, 891, 1085 891, 891, 814, 816, 891, 816, 891, 891, 891, 816, 1086 818, 891, 818, 891, 891, 891, 818, 820, 891, 820, 1087 891, 891, 891, 820, 822, 891, 822, 891, 891, 891, 1088 822, 824, 891, 824, 891, 891, 891, 824, 616, 891, 1089 616, 891, 891, 891, 616, 844, 891, 844, 891, 891, 1090 891, 844, 677, 891, 677, 891, 891, 891, 677, 681, 1091 891, 681, 891, 891, 891, 681, 86, 891, 86, 891, 1092 1093 891, 891, 86, 849, 891, 849, 891, 891, 891, 849, 1094 140, 891, 140, 891, 891, 891, 140, 204, 891, 204, 1095 891, 891, 891, 204, 11, 891, 891, 891, 891, 891, 1096 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 1097 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 1098 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 1099 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 1100 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 1101 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 1102 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 1103 1104 891, 891, 891, 891, 891, 891, 891, 891, 891, 891 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 1105 1103 } ; 1106 1104 1107 static yyconst flex_int16_t yy_chk[29 11] =1105 static yyconst flex_int16_t yy_chk[2908] = 1108 1106 { 0, 1109 1107 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, … … 1126 1124 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1127 1125 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 1128 8, 9, 10, 37, 37, 20, 39, 9, 10, 8 90,1126 8, 9, 10, 37, 37, 20, 39, 9, 10, 886, 1129 1127 7, 8, 13, 13, 13, 13, 13, 13, 15, 15, 1130 1128 … … 1137 1135 47, 45, 45, 45, 49, 30, 30, 45, 45, 49, 1138 1136 45, 30, 40, 45, 45, 40, 49, 30, 45, 56, 1139 62, 45, 49, 30, 73, 88 9, 127, 53, 127, 51,1137 62, 45, 49, 30, 73, 885, 127, 53, 127, 51, 1140 1138 61, 30, 62, 55, 30, 31, 108, 31, 31, 31, 1141 1139 … … 1151 1149 164, 68, 68, 59, 113, 38, 68, 116, 38, 131, 1152 1150 1153 110, 131, 60, 67, 67, 67, 67, 67, 67, 8 81,1151 110, 131, 60, 67, 67, 67, 67, 67, 67, 877, 1154 1152 142, 67, 68, 68, 68, 68, 68, 68, 80, 80, 1155 1153 80, 80, 80, 80, 153, 38, 38, 77, 77, 134, 1156 1154 110, 134, 77, 153, 77, 110, 135, 135, 135, 77, 1157 82, 82, 82, 82, 82, 82, 8 80, 243, 77, 77,1155 82, 82, 82, 82, 82, 82, 876, 243, 77, 77, 1158 1156 77, 77, 83, 83, 83, 83, 83, 83, 110, 77, 1159 1157 103, 103, 103, 103, 103, 103, 104, 104, 104, 104, … … 1165 1163 85, 166, 159, 150, 85, 85, 161, 85, 160, 85, 1166 1164 145, 162, 104, 167, 168, 161, 169, 163, 85, 85, 1167 85, 105, 163, 105, 105, 105, 105, 105, 105, 87 7,1165 85, 105, 163, 105, 105, 105, 105, 105, 105, 873, 1168 1166 160, 171, 162, 162, 165, 163, 167, 169, 173, 85, 1169 1167 105, 106, 85, 106, 165, 172, 106, 106, 106, 106, … … 1178 1176 189, 158, 158, 188, 192, 158, 194, 158, 284, 219, 1179 1177 185, 219, 158, 158, 158, 193, 158, 192, 220, 194, 1180 220, 191, 198, 198, 191, 192, 205, 198, 193, 87 6,1178 220, 191, 198, 198, 191, 192, 205, 198, 193, 872, 1181 1179 193, 197, 197, 197, 197, 197, 197, 200, 200, 197, 1182 1180 248, 221, 200, 198, 198, 198, 198, 198, 198, 202, … … 1195 1193 245, 245, 270, 288, 293, 286, 294, 300, 306, 293, 1196 1194 1197 308, 244, 300, 306, 87 4, 294, 308, 244, 246, 246,1195 308, 244, 300, 306, 870, 294, 308, 244, 246, 246, 1198 1196 246, 246, 246, 246, 253, 286, 288, 255, 255, 255, 1199 1197 255, 255, 255, 287, 246, 247, 246, 247, 246, 246, 1200 1198 247, 247, 247, 247, 247, 247, 290, 253, 287, 253, 1201 8 73, 246, 289, 253, 287, 287, 246, 292, 246, 253,1199 869, 246, 289, 253, 287, 287, 246, 292, 246, 253, 1202 1200 255, 246, 291, 246, 260, 260, 260, 260, 260, 260, 1203 1201 289, 253, 290, 292, 292, 253, 295, 291, 296, 253, … … 1211 1209 335, 324, 337, 339, 340, 326, 329, 328, 401, 327, 1212 1210 331, 337, 334, 335, 341, 343, 332, 340, 342, 401, 1213 333, 339, 341, 342, 344, 344, 345, 460, 86 6, 344,1211 333, 339, 341, 342, 344, 344, 345, 460, 862, 344, 1214 1212 343, 344, 345, 352, 352, 352, 352, 353, 353, 353, 1215 1213 353, 362, 363, 362, 363, 370, 370, 370, 370, 370, 1216 1214 370, 372, 460, 372, 380, 381, 372, 372, 372, 372, 1217 372, 372, 86 5, 402, 380, 381, 352, 371, 371, 371,1215 372, 372, 861, 402, 380, 381, 352, 371, 371, 371, 1218 1216 1219 1217 371, 371, 371, 374, 374, 374, 374, 374, 374, 402, 1220 380, 381, 403, 371, 404, 371, 86 4, 371, 371, 375,1218 380, 381, 403, 371, 404, 371, 860, 371, 371, 375, 1221 1219 375, 375, 375, 375, 375, 383, 382, 403, 406, 405, 1222 1220 371, 383, 407, 404, 408, 371, 374, 371, 405, 406, … … 1235 1233 450, 453, 442, 444, 455, 456, 447, 457, 458, 449, 1236 1234 459, 461, 463, 455, 451, 458, 454, 459, 462, 452, 1237 457, 453, 466, 456, 464, 467, 462, 525, 8 63, 463,1235 457, 453, 466, 456, 464, 467, 462, 525, 859, 463, 1238 1236 525, 468, 491, 461, 467, 464, 462, 468, 477, 477, 1239 1237 477, 477, 491, 515, 466, 488, 488, 488, 488, 488, … … 1241 1239 488, 490, 490, 490, 490, 490, 490, 519, 491, 521, 1242 1240 515, 488, 492, 488, 492, 488, 488, 492, 492, 492, 1243 492, 492, 492, 494, 516, 495, 493, 519, 488, 8 62,1244 85 8, 521, 518, 488, 490, 488, 493, 516, 488, 529,1241 492, 492, 492, 494, 516, 495, 493, 519, 488, 855, 1242 851, 521, 518, 488, 490, 488, 493, 516, 488, 529, 1245 1243 488, 497, 497, 497, 497, 497, 497, 518, 520, 494, 1246 1244 492, 495, 493, 498, 498, 498, 498, 498, 498, 523, 1247 529, 520, 526, 8 54, 523, 851, 528, 850, 522, 498,1245 529, 520, 526, 848, 523, 847, 528, 846, 522, 498, 1248 1246 499, 498, 499, 498, 498, 499, 499, 499, 499, 499, 1249 1247 499, 522, 526, 524, 527, 528, 498, 531, 530, 532, … … 1252 1250 532, 535, 537, 533, 536, 538, 539, 541, 542, 547, 1253 1251 535, 539, 544, 541, 538, 545, 546, 542, 547, 537, 1254 550, 551, 84 9, 549, 534, 552, 536, 554, 560, 544,1252 550, 551, 845, 549, 534, 552, 536, 554, 560, 544, 1255 1253 545, 546, 549, 551, 555, 557, 558, 550, 561, 555, 1256 1254 552, 562, 554, 565, 557, 558, 564, 567, 566, 568, 1257 1255 560, 561, 575, 565, 564, 566, 569, 571, 562, 574, 1258 1256 572, 568, 569, 620, 619, 575, 571, 601, 601, 567, 1259 572, 619, 620, 84 8, 847, 622, 574, 594, 594, 594,1257 572, 619, 620, 844, 843, 622, 574, 594, 594, 594, 1260 1258 594, 594, 594, 595, 595, 595, 595, 595, 595, 597, 1261 1259 601, 597, 622, 621, 597, 597, 597, 597, 597, 597, 1262 1260 1263 600, 600, 600, 600, 600, 600, 621, 602, 626, 84 6,1261 600, 600, 600, 600, 600, 600, 621, 602, 626, 842, 1264 1262 594, 596, 596, 596, 596, 596, 596, 603, 618, 603, 1265 1263 623, 624, 603, 618, 628, 626, 625, 596, 624, 596, … … 1270 1268 633, 646, 639, 637, 650, 642, 651, 656, 640, 638, 1271 1269 646, 653, 657, 636, 644, 665, 656, 641, 664, 657, 1272 645, 667, 668, 84 2, 650, 665, 700, 664, 653, 699,1273 1274 667, 702, 705, 651, 714, 8 42, 700, 668, 686, 686,1270 645, 667, 668, 841, 650, 665, 700, 664, 653, 699, 1271 1272 667, 702, 705, 651, 714, 837, 700, 668, 686, 686, 1275 1273 686, 686, 686, 686, 690, 690, 690, 690, 690, 690, 1276 1274 699, 708, 705, 703, 686, 714, 686, 702, 686, 686, … … 1278 1276 712, 686, 711, 717, 710, 718, 686, 690, 686, 712, 1279 1277 720, 686, 717, 686, 713, 711, 716, 713, 719, 716, 1280 721, 719, 715, 720, 722, 723, 724, 725, 721, 7 31,1281 7 28, 718, 732, 735, 722, 733, 725, 736, 723, 756,1282 757, 735, 758, 754, 756, 759, 736, 724, 728, 731,1283 7 55, 761, 758, 728, 732, 757, 733, 743, 743, 743,1284 1285 743, 743, 743, 754, 7 60, 763, 762, 755, 759, 762,1286 76 4, 766, 768, 769, 766, 768, 770, 761, 763, 770,1287 7 69, 760, 771, 773, 772, 771, 775, 779, 794, 797,1288 743, 79 6, 798, 800, 799, 798, 800, 801, 764, 772,1289 80 1, 803, 804, 807, 810, 805, 773, 797, 805, 775,1290 7 79, 808, 796, 810, 808, 794, 799, 809, 811, 803,1291 8 09, 812, 813, 828, 829, 807, 830, 831, 804, 830,1292 8 32, 829, 812, 834, 811, 856, 831, 833, 813, 837,1293 8 33, 875, 837, 840, 828, 856, 840, 841, 832, 843,1294 8 34, 852, 853, 867, 832, 868, 841, 853, 843, 855,1295 1296 85 2, 857, 855, 875, 859, 860, 857, 859, 860, 861,1297 868, 86 9, 861, 867, 869, 870, 871, 872, 878, 871,1298 8 72, 879, 882, 884, 883, 870, 885, 887, 886, 845,1299 8 88, 882, 844, 839, 838, 836, 879, 883, 835, 878,1300 8 88, 827, 826, 825, 824, 884, 886, 885, 823, 887,1301 8 92, 892, 892, 892, 892, 892, 892, 892, 892, 892,1302 8 92, 892, 892, 893, 893, 893, 893, 893, 893, 893,1303 8 93, 893, 893, 893, 893, 893, 894, 894, 894, 894,1304 89 4, 894, 894, 894, 894, 894, 894, 894, 894, 895,1305 8 22, 821, 895, 820, 895, 895, 895, 895, 895, 896,1306 1307 8 19, 818, 817, 896, 896, 896, 896, 896, 896, 897,1308 89 7, 897, 897, 897, 897, 897, 897, 897, 897, 897,1309 897, 897, 898, 816, 815, 898, 814, 898, 898, 898,1310 898, 898, 899, 806, 899, 899, 802, 899, 899, 899,1311 899, 899, 899, 795, 899, 900, 793, 792, 900, 900,1312 900, 900, 900, 900, 900, 900, 791, 900, 901, 901,1313 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,1314 901, 902, 902, 790, 902, 789, 788, 787, 902, 903,1315 7 86, 785, 903, 784, 903, 903, 903, 903, 903, 904,1316 7 83, 904, 782, 781, 780, 904, 905, 778, 905, 777,1317 1318 776, 774, 905, 906, 767, 906, 765, 753, 752, 906,1319 907, 751, 907, 750, 749, 748, 907, 908, 747, 908,1320 746, 745, 742, 908, 909, 741, 909, 740, 734, 730,1321 90 9, 910, 729, 910, 727, 726, 709, 910, 911, 701,1322 911, 698, 693, 691, 911, 912, 687, 912, 677, 673,1323 671, 912, 913, 913, 913, 913, 913, 913, 913, 913,1324 9 13, 913, 913, 913, 913, 914, 669, 914, 915, 915,1325 666, 915, 915, 915, 663, 915, 916, 916, 662, 916,1326 917, 661, 917, 660, 659, 658, 917, 918, 655, 918,1327 654, 652, 649, 918, 919, 648, 919, 647, 643, 616,1328 1329 91 9, 920, 612, 920, 921, 610, 921, 608, 606, 604,1330 9 21, 922, 598, 922, 923, 592, 590, 923, 588, 923,1331 9 23, 923, 923, 923, 924, 924, 924, 924, 924, 924,1332 92 4, 924, 924, 924, 924, 924, 924, 925, 925, 925,1333 92 5, 925, 925, 925, 925, 925, 925, 925, 925, 925,1334 926, 586, 926, 584, 582, 580, 926, 927, 578, 927,1335 577, 576, 573, 927, 928, 570, 928, 563, 559, 556,1336 92 8, 929, 553, 929, 930, 548, 930, 543, 540, 517,1337 9 30, 931, 513, 931, 932, 511, 932, 509, 507, 505,1338 9 32, 933, 503, 933, 934, 502, 934, 501, 500, 489,1339 1340 93 4, 935, 486, 935, 936, 484, 936, 483, 482, 480,1341 93 6, 937, 478, 937, 938, 475, 938, 473, 471, 469,1342 93 8, 939, 465, 939, 940, 448, 940, 446, 438, 436,1343 9 40, 941, 428, 941, 942, 426, 942, 424, 942, 398,1344 9 42, 943, 396, 943, 394, 943, 392, 943, 944, 944,1345 391, 944, 944, 944, 390, 944, 945, 377, 945, 367,1346 365, 364, 945, 946, 360, 946, 358, 356, 354, 946,1347 947, 350, 947, 348, 347, 346, 947, 948, 336, 948,1348 949, 321, 949, 298, 277, 275, 949, 950, 273, 950,1349 951, 272, 951, 271, 269, 268, 951, 952, 263, 952,1350 1351 953, 259, 953, 258, 254, 251, 953, 954, 250, 954,1352 95 5, 239, 238, 955, 231, 955, 955, 955, 955, 955,1353 95 6, 956, 956, 956, 956, 956, 956, 956, 956, 956,1354 95 6, 956, 956, 957, 230, 957, 227, 217, 215, 957,1355 95 8, 214, 958, 959, 213, 959, 207, 206, 204, 959,1356 9 60, 199, 960, 961, 178, 961, 149, 147, 146, 961,1357 9 62, 140, 962, 963, 138, 963, 136, 128, 125, 963,1358 96 4, 124, 964, 965, 120, 965, 101, 98, 95, 965,1359 96 6, 93, 966, 967, 86, 967, 72, 70, 66, 967,1360 96 8, 36, 968, 969, 33, 969, 18, 11, 4, 969,1361 1362 970, 3, 970, 0, 0, 0, 970, 971, 0, 971,1363 972, 0, 972, 0, 0, 0, 972, 973, 0, 973,1364 974, 0, 974, 0, 974, 0, 974, 975, 0, 975,1365 0, 0, 0, 975, 976, 0, 976, 0, 0, 0,1366 97 6, 977, 0, 977, 978, 0, 978, 0, 0, 0,1367 97 8, 979, 0, 979, 980, 0, 980, 0, 0, 0,1368 9 80, 981, 0, 981, 982, 0, 982, 0, 0, 0,1369 9 82, 983, 0, 983, 984, 0, 984, 0, 0, 0,1370 98 4, 985, 0, 985, 986, 0, 986, 0, 0, 0,1371 98 6, 987, 0, 987, 988, 0, 0, 988, 0, 988,1372 1373 98 8, 988, 988, 988, 989, 989, 989, 989, 989, 989,1374 98 9, 989, 989, 989, 989, 989, 989, 990, 0, 990,1375 0, 0, 0, 990, 991, 0, 991, 992, 0, 992,1376 0, 0, 0, 992, 993, 0, 993, 994, 0, 994,1377 0, 0, 0, 994, 995, 0, 995, 996, 0, 996,1378 0, 0, 0, 996, 997, 0, 997, 998, 0, 998,1379 0, 0, 0, 998, 999, 0, 999, 1000, 0, 1000,1380 0, 0, 0, 1000, 1001, 0, 1001, 1002, 0, 1002,1381 0, 0, 0, 1002, 1003, 0, 1003, 1004, 0, 1004,1382 0, 0, 0, 1004, 1005, 0, 1005, 1006, 0, 1006,1383 1384 0, 0, 0, 1006, 1007, 0, 1007, 0, 0, 0,1385 100 7, 1008, 0, 1008, 1009, 0, 1009, 0, 0, 0,1386 100 9, 1010, 0, 1010, 1011, 0, 1011, 0, 0, 0,1387 10 11, 1012, 0, 1012, 1013, 0, 1013, 0,0, 0,1388 101 3, 1014, 0, 1014, 1015, 0, 1015, 1016, 0, 1016,1389 101 7, 0, 0, 1017, 0, 1017, 1017, 1017, 1017, 1017,1390 101 8, 0, 1018, 1019, 1019, 1019, 1019, 1019, 1019, 1019,1391 101 9, 1019, 1019, 1019, 1019, 1019, 1020, 0, 1020, 0,1392 0, 0, 1020, 1021, 0, 1021, 1022, 0, 1022, 0,1393 0, 0, 1022, 1023, 0, 1023, 1024, 0, 1024, 1025,1394 1395 0, 1025, 1026, 0, 0, 1026, 0, 1026, 1026, 1026,1396 1026, 1026, 1027, 0, 1027, 1028, 0, 1028, 1029, 0,1397 102 9, 1030, 0, 1030, 1031, 0, 1031, 1032, 0, 1032,1398 103 3, 0, 1033, 1034, 0, 1034, 0, 0, 0, 1034,1399 103 5, 0, 1035, 1036, 0, 1036, 0, 0, 0, 1036,1400 103 7, 0, 1037, 1038, 0, 1038, 1039, 0, 1039, 1040,1401 0, 10 40, 1041, 0, 1041, 0, 0, 0, 1041, 1042,1402 0, 0, 1042, 0, 1042, 1042, 1042, 1042, 1042, 1043,1403 0, 104 3, 1044, 0, 1044, 1045, 0, 1045, 1046, 0,1404 1046, 0, 0, 0, 1046, 1047, 0, 1047, 0, 0,1405 1406 0, 104 7, 1048, 0, 1048, 0, 0, 0, 1048, 1049,1407 0, 104 9, 1050, 0, 1050, 0, 0, 0, 1050, 1051,1408 0, 1051, 0, 0, 0, 1051, 1052, 0, 1052, 0,1409 0, 0, 1052, 1053, 0, 1053, 0, 0, 0, 1053,1410 1054, 0, 1054, 0, 0, 0, 1054, 1055, 0, 1055,1411 0, 0, 0, 1055, 1056, 0, 1056, 0, 0, 0,1412 105 6, 1057, 0, 1057, 0, 0, 0, 1057, 1058, 0,1413 1058, 0, 0, 0, 1058, 1059, 0, 1059, 0, 0,1414 0, 105 9, 1060, 0, 1060, 0, 0, 0, 1060, 1061,1415 0, 1061, 0, 0, 0, 1061, 1062, 0, 1062, 0,1416 1417 0, 0, 1062, 1063, 0, 1063, 0, 0, 0, 1063,1418 1064, 0, 1064, 0, 0, 0, 1064, 1065, 0, 1065,1419 0, 0, 0, 1065, 891, 891, 891, 891, 891, 891,1420 8 91, 891, 891, 891, 891, 891, 891, 891, 891, 891,1421 8 91, 891, 891, 891, 891, 891, 891, 891, 891, 891,1422 8 91, 891, 891, 891, 891, 891, 891, 891, 891, 891,1423 8 91, 891, 891, 891, 891, 891, 891, 891, 891, 891,1424 8 91, 891, 891, 891, 891, 891, 891, 891, 891, 891,1425 8 91, 891, 891, 891, 891, 891, 891, 891, 891, 891,1426 8 91, 891, 891, 891, 891, 891, 891, 891, 891, 891,1427 1428 8 91, 891, 891, 891, 891, 891, 891, 891, 891, 8911278 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, 1299 888, 888, 888, 888, 888, 888, 888, 888, 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 1429 1427 } ; 1430 1428 1431 1429 /* Table of booleans, true if rule could match eol. */ 1432 static yyconst flex_int32_t yy_rule_can_match_eol[18 2] =1430 static yyconst flex_int32_t yy_rule_can_match_eol[181] = 1433 1431 { 0, 1434 1432 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 1437 1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1438 1436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,1440 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1438 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1441 1439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1442 1440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1443 0, 0,};1441 0, }; 1444 1442 1445 1443 static yy_state_type yy_last_accepting_state; … … 1468 1466 * Author : Peter A. Buhr 1469 1467 * Created On : Sat Sep 22 08:58:10 2001 1470 * Last Modified By : 1471 * Last Modified On : Sun Jul 31 07:19:3620161472 * Update Count : 45 91468 * Last Modified By : Peter A. Buhr 1469 * Last Modified On : Thu Jun 23 07:29:30 2016 1470 * Update Count : 457 1473 1471 */ 1474 1472 #line 20 "lex.ll" … … 1531 1529 1532 1530 1533 #line 153 4"Parser/lex.cc"1531 #line 1532 "Parser/lex.cc" 1534 1532 1535 1533 #define INITIAL 0 … … 1726 1724 1727 1725 /* line directives */ 1728 #line 172 9"Parser/lex.cc"1726 #line 1727 "Parser/lex.cc" 1729 1727 1730 1728 if ( !(yy_init) ) … … 1780 1778 { 1781 1779 yy_current_state = (int) yy_def[yy_current_state]; 1782 if ( yy_current_state >= 8 92)1780 if ( yy_current_state >= 888 ) 1783 1781 yy_c = yy_meta[(unsigned int) yy_c]; 1784 1782 } … … 1786 1784 ++yy_cp; 1787 1785 } 1788 while ( yy_base[yy_current_state] != 282 5);1786 while ( yy_base[yy_current_state] != 2822 ); 1789 1787 1790 1788 yy_find_action: … … 2083 2081 YY_RULE_SETUP 2084 2082 #line 216 "lex.ll" 2085 { KEYWORD_RETURN(F ALLTHRU); } // CFA2083 { KEYWORD_RETURN(FINALLY); } // CFA 2086 2084 YY_BREAK 2087 2085 case 48: 2088 2086 YY_RULE_SETUP 2089 2087 #line 217 "lex.ll" 2090 { KEYWORD_RETURN(F INALLY); } // CFA2088 { KEYWORD_RETURN(FLOAT); } 2091 2089 YY_BREAK 2092 2090 case 49: 2093 2091 YY_RULE_SETUP 2094 2092 #line 218 "lex.ll" 2095 { KEYWORD_RETURN(FLOAT); } 2093 { KEYWORD_RETURN(FLOAT); } // GCC 2096 2094 YY_BREAK 2097 2095 case 50: 2098 2096 YY_RULE_SETUP 2099 2097 #line 219 "lex.ll" 2100 { KEYWORD_RETURN(F LOAT); } // GCC2098 { KEYWORD_RETURN(FOR); } 2101 2099 YY_BREAK 2102 2100 case 51: 2103 2101 YY_RULE_SETUP 2104 2102 #line 220 "lex.ll" 2105 { KEYWORD_RETURN(FOR ); }2103 { KEYWORD_RETURN(FORALL); } // CFA 2106 2104 YY_BREAK 2107 2105 case 52: 2108 2106 YY_RULE_SETUP 2109 2107 #line 221 "lex.ll" 2110 { KEYWORD_RETURN(FOR ALL); } // CFA2108 { KEYWORD_RETURN(FORTRAN); } 2111 2109 YY_BREAK 2112 2110 case 53: 2113 2111 YY_RULE_SETUP 2114 2112 #line 222 "lex.ll" 2115 { KEYWORD_RETURN(F ORTRAN); }2113 { KEYWORD_RETURN(FTYPE); } // CFA 2116 2114 YY_BREAK 2117 2115 case 54: 2118 2116 YY_RULE_SETUP 2119 2117 #line 223 "lex.ll" 2120 { KEYWORD_RETURN( FTYPE); } // CFA2118 { KEYWORD_RETURN(GENERIC); } // C11 2121 2119 YY_BREAK 2122 2120 case 55: 2123 2121 YY_RULE_SETUP 2124 2122 #line 224 "lex.ll" 2125 { KEYWORD_RETURN(G ENERIC); } // C112123 { KEYWORD_RETURN(GOTO); } 2126 2124 YY_BREAK 2127 2125 case 56: 2128 2126 YY_RULE_SETUP 2129 2127 #line 225 "lex.ll" 2130 { KEYWORD_RETURN( GOTO); }2128 { KEYWORD_RETURN(IF); } 2131 2129 YY_BREAK 2132 2130 case 57: 2133 2131 YY_RULE_SETUP 2134 2132 #line 226 "lex.ll" 2135 { KEYWORD_RETURN(I F); }2133 { KEYWORD_RETURN(IMAGINARY); } // C99 2136 2134 YY_BREAK 2137 2135 case 58: 2138 2136 YY_RULE_SETUP 2139 2137 #line 227 "lex.ll" 2140 { KEYWORD_RETURN(IMAGINARY); } // C992138 { KEYWORD_RETURN(IMAGINARY); } // GCC 2141 2139 YY_BREAK 2142 2140 case 59: … … 2148 2146 YY_RULE_SETUP 2149 2147 #line 229 "lex.ll" 2150 { KEYWORD_RETURN(I MAGINARY); } // GCC2148 { KEYWORD_RETURN(INLINE); } // C99 2151 2149 YY_BREAK 2152 2150 case 61: 2153 2151 YY_RULE_SETUP 2154 2152 #line 230 "lex.ll" 2155 { KEYWORD_RETURN(INLINE); } // C992153 { KEYWORD_RETURN(INLINE); } // GCC 2156 2154 YY_BREAK 2157 2155 case 62: … … 2163 2161 YY_RULE_SETUP 2164 2162 #line 232 "lex.ll" 2165 { KEYWORD_RETURN(IN LINE); } // GCC2163 { KEYWORD_RETURN(INT); } 2166 2164 YY_BREAK 2167 2165 case 64: 2168 2166 YY_RULE_SETUP 2169 2167 #line 233 "lex.ll" 2170 { KEYWORD_RETURN(INT); } 2168 { KEYWORD_RETURN(INT); } // GCC 2171 2169 YY_BREAK 2172 2170 case 65: 2173 2171 YY_RULE_SETUP 2174 2172 #line 234 "lex.ll" 2175 { KEYWORD_RETURN( INT); } // GCC2173 { KEYWORD_RETURN(LABEL); } // GCC 2176 2174 YY_BREAK 2177 2175 case 66: 2178 2176 YY_RULE_SETUP 2179 2177 #line 235 "lex.ll" 2180 { KEYWORD_RETURN(L ABEL); } // GCC2178 { KEYWORD_RETURN(LONG); } 2181 2179 YY_BREAK 2182 2180 case 67: 2183 2181 YY_RULE_SETUP 2184 2182 #line 236 "lex.ll" 2185 { KEYWORD_RETURN(L ONG); }2183 { KEYWORD_RETURN(LVALUE); } // CFA 2186 2184 YY_BREAK 2187 2185 case 68: 2188 2186 YY_RULE_SETUP 2189 2187 #line 237 "lex.ll" 2190 { KEYWORD_RETURN( LVALUE); } // CFA2188 { KEYWORD_RETURN(NORETURN); } // C11 2191 2189 YY_BREAK 2192 2190 case 69: 2193 2191 YY_RULE_SETUP 2194 2192 #line 238 "lex.ll" 2195 { KEYWORD_RETURN( NORETURN); } // C112193 { KEYWORD_RETURN(OFFSETOF); } // GCC 2196 2194 YY_BREAK 2197 2195 case 70: 2198 2196 YY_RULE_SETUP 2199 2197 #line 239 "lex.ll" 2200 { KEYWORD_RETURN(O FFSETOF); } // GCC2198 { KEYWORD_RETURN(OTYPE); } // CFA 2201 2199 YY_BREAK 2202 2200 case 71: 2203 2201 YY_RULE_SETUP 2204 2202 #line 240 "lex.ll" 2205 { KEYWORD_RETURN( OTYPE); } // CFA2203 { KEYWORD_RETURN(REGISTER); } 2206 2204 YY_BREAK 2207 2205 case 72: 2208 2206 YY_RULE_SETUP 2209 2207 #line 241 "lex.ll" 2210 { KEYWORD_RETURN(RE GISTER); }2208 { KEYWORD_RETURN(RESTRICT); } // C99 2211 2209 YY_BREAK 2212 2210 case 73: 2213 2211 YY_RULE_SETUP 2214 2212 #line 242 "lex.ll" 2215 { KEYWORD_RETURN(RESTRICT); } // C992213 { KEYWORD_RETURN(RESTRICT); } // GCC 2216 2214 YY_BREAK 2217 2215 case 74: … … 2223 2221 YY_RULE_SETUP 2224 2222 #line 244 "lex.ll" 2225 { KEYWORD_RETURN(RE STRICT); } // GCC2223 { KEYWORD_RETURN(RETURN); } 2226 2224 YY_BREAK 2227 2225 case 76: 2228 2226 YY_RULE_SETUP 2229 2227 #line 245 "lex.ll" 2230 { KEYWORD_RETURN( RETURN); }2228 { KEYWORD_RETURN(SHORT); } 2231 2229 YY_BREAK 2232 2230 case 77: 2233 2231 YY_RULE_SETUP 2234 2232 #line 246 "lex.ll" 2235 { KEYWORD_RETURN(S HORT); }2233 { KEYWORD_RETURN(SIGNED); } 2236 2234 YY_BREAK 2237 2235 case 78: 2238 2236 YY_RULE_SETUP 2239 2237 #line 247 "lex.ll" 2240 { KEYWORD_RETURN(SIGNED); } 2238 { KEYWORD_RETURN(SIGNED); } // GCC 2241 2239 YY_BREAK 2242 2240 case 79: … … 2248 2246 YY_RULE_SETUP 2249 2247 #line 249 "lex.ll" 2250 { KEYWORD_RETURN(SI GNED); } // GCC2248 { KEYWORD_RETURN(SIZEOF); } 2251 2249 YY_BREAK 2252 2250 case 81: 2253 2251 YY_RULE_SETUP 2254 2252 #line 250 "lex.ll" 2255 { KEYWORD_RETURN(S IZEOF); }2253 { KEYWORD_RETURN(STATIC); } 2256 2254 YY_BREAK 2257 2255 case 82: 2258 2256 YY_RULE_SETUP 2259 2257 #line 251 "lex.ll" 2260 { KEYWORD_RETURN(STATIC ); }2258 { KEYWORD_RETURN(STATICASSERT); } // C11 2261 2259 YY_BREAK 2262 2260 case 83: 2263 2261 YY_RULE_SETUP 2264 2262 #line 252 "lex.ll" 2265 { KEYWORD_RETURN(ST ATICASSERT); } // C112263 { KEYWORD_RETURN(STRUCT); } 2266 2264 YY_BREAK 2267 2265 case 84: 2268 2266 YY_RULE_SETUP 2269 2267 #line 253 "lex.ll" 2270 { KEYWORD_RETURN(S TRUCT); }2268 { KEYWORD_RETURN(SWITCH); } 2271 2269 YY_BREAK 2272 2270 case 85: 2273 2271 YY_RULE_SETUP 2274 2272 #line 254 "lex.ll" 2275 { KEYWORD_RETURN( SWITCH); }2273 { KEYWORD_RETURN(THREADLOCAL); } // C11 2276 2274 YY_BREAK 2277 2275 case 86: 2278 2276 YY_RULE_SETUP 2279 2277 #line 255 "lex.ll" 2280 { KEYWORD_RETURN(THR EADLOCAL); } // C112278 { KEYWORD_RETURN(THROW); } // CFA 2281 2279 YY_BREAK 2282 2280 case 87: 2283 2281 YY_RULE_SETUP 2284 2282 #line 256 "lex.ll" 2285 { KEYWORD_RETURN(THROW ); }// CFA2283 { KEYWORD_RETURN(THROWRESUME); } // CFA 2286 2284 YY_BREAK 2287 2285 case 88: 2288 2286 YY_RULE_SETUP 2289 2287 #line 257 "lex.ll" 2290 { KEYWORD_RETURN(T HROWRESUME); }// CFA2288 { KEYWORD_RETURN(TRAIT); } // CFA 2291 2289 YY_BREAK 2292 2290 case 89: 2293 2291 YY_RULE_SETUP 2294 2292 #line 258 "lex.ll" 2295 { KEYWORD_RETURN(TR AIT); } // CFA2293 { KEYWORD_RETURN(TRY); } // CFA 2296 2294 YY_BREAK 2297 2295 case 90: 2298 2296 YY_RULE_SETUP 2299 2297 #line 259 "lex.ll" 2300 { KEYWORD_RETURN(T RY); } // CFA2298 { KEYWORD_RETURN(TYPEDEF); } 2301 2299 YY_BREAK 2302 2300 case 91: 2303 2301 YY_RULE_SETUP 2304 2302 #line 260 "lex.ll" 2305 { KEYWORD_RETURN(TYPE DEF); }2303 { KEYWORD_RETURN(TYPEOF); } // GCC 2306 2304 YY_BREAK 2307 2305 case 92: … … 2318 2316 YY_RULE_SETUP 2319 2317 #line 263 "lex.ll" 2320 { KEYWORD_RETURN( TYPEOF); } // GCC2318 { KEYWORD_RETURN(UNION); } 2321 2319 YY_BREAK 2322 2320 case 95: 2323 2321 YY_RULE_SETUP 2324 2322 #line 264 "lex.ll" 2325 { KEYWORD_RETURN(UN ION); }2323 { KEYWORD_RETURN(UNSIGNED); } 2326 2324 YY_BREAK 2327 2325 case 96: 2328 2326 YY_RULE_SETUP 2329 2327 #line 265 "lex.ll" 2330 { KEYWORD_RETURN( UNSIGNED); }2328 { KEYWORD_RETURN(VALIST); } // GCC 2331 2329 YY_BREAK 2332 2330 case 97: 2333 2331 YY_RULE_SETUP 2334 2332 #line 266 "lex.ll" 2335 { KEYWORD_RETURN(V ALIST); } // GCC2333 { KEYWORD_RETURN(VOID); } 2336 2334 YY_BREAK 2337 2335 case 98: 2338 2336 YY_RULE_SETUP 2339 2337 #line 267 "lex.ll" 2340 { KEYWORD_RETURN(VO ID); }2338 { KEYWORD_RETURN(VOLATILE); } 2341 2339 YY_BREAK 2342 2340 case 99: 2343 2341 YY_RULE_SETUP 2344 2342 #line 268 "lex.ll" 2345 { KEYWORD_RETURN(VOLATILE); } 2343 { KEYWORD_RETURN(VOLATILE); } // GCC 2346 2344 YY_BREAK 2347 2345 case 100: … … 2353 2351 YY_RULE_SETUP 2354 2352 #line 270 "lex.ll" 2355 { KEYWORD_RETURN(VOLATILE); } // GCC 2356 YY_BREAK 2353 { KEYWORD_RETURN(WHILE); } 2354 YY_BREAK 2355 /* identifier */ 2357 2356 case 102: 2358 2357 YY_RULE_SETUP 2359 #line 271 "lex.ll" 2360 { KEYWORD_RETURN(WHILE); } 2361 YY_BREAK 2362 /* identifier */ 2358 #line 273 "lex.ll" 2359 { IDENTIFIER_RETURN(); } 2360 YY_BREAK 2363 2361 case 103: 2364 2362 YY_RULE_SETUP 2365 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" 2366 2374 { IDENTIFIER_RETURN(); } 2367 2375 YY_BREAK 2368 case 104:2369 YY_RULE_SETUP2370 #line 275 "lex.ll"2371 { ATTRIBUTE_RETURN(); }2372 YY_BREAK2373 case 105:2374 YY_RULE_SETUP2375 #line 276 "lex.ll"2376 { BEGIN BKQUOTE; }2377 YY_BREAK2378 2376 case 106: 2379 2377 YY_RULE_SETUP 2380 2378 #line 277 "lex.ll" 2381 { IDENTIFIER_RETURN(); } 2382 YY_BREAK 2379 { BEGIN 0; } 2380 YY_BREAK 2381 /* numeric constants */ 2383 2382 case 107: 2384 2383 YY_RULE_SETUP 2385 #line 278 "lex.ll" 2386 { BEGIN 0; } 2387 YY_BREAK 2388 /* numeric constants */ 2384 #line 280 "lex.ll" 2385 { NUMERIC_RETURN(ZERO); } // CFA 2386 YY_BREAK 2389 2387 case 108: 2390 2388 YY_RULE_SETUP 2391 2389 #line 281 "lex.ll" 2392 { NUMERIC_RETURN( ZERO); } // CFA2390 { NUMERIC_RETURN(ONE); } // CFA 2393 2391 YY_BREAK 2394 2392 case 109: 2395 2393 YY_RULE_SETUP 2396 2394 #line 282 "lex.ll" 2397 { NUMERIC_RETURN( ONE); } // CFA2395 { NUMERIC_RETURN(INTEGERconstant); } 2398 2396 YY_BREAK 2399 2397 case 110: … … 2410 2408 YY_RULE_SETUP 2411 2409 #line 285 "lex.ll" 2412 { NUMERIC_RETURN( INTEGERconstant); }2410 { NUMERIC_RETURN(FLOATINGconstant); } 2413 2411 YY_BREAK 2414 2412 case 113: … … 2417 2415 { NUMERIC_RETURN(FLOATINGconstant); } 2418 2416 YY_BREAK 2417 /* character constant, allows empty value */ 2419 2418 case 114: 2420 2419 YY_RULE_SETUP 2421 #line 287 "lex.ll" 2422 { NUMERIC_RETURN(FLOATINGconstant); } 2423 YY_BREAK 2424 /* character constant, allows empty value */ 2420 #line 289 "lex.ll" 2421 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 2422 YY_BREAK 2425 2423 case 115: 2426 2424 YY_RULE_SETUP 2427 2425 #line 290 "lex.ll" 2428 { BEGIN QUOTE; rm_underscore(); strtext = new std::string;*strtext += std::string( yytext ); }2426 { *strtext += std::string( yytext ); } 2429 2427 YY_BREAK 2430 2428 case 116: 2429 /* rule 116 can match eol */ 2431 2430 YY_RULE_SETUP 2432 2431 #line 291 "lex.ll" 2433 { *strtext += std::string( yytext ); }2434 YY_BREAK2435 case 117:2436 /* rule 117 can match eol */2437 YY_RULE_SETUP2438 #line 292 "lex.ll"2439 2432 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); } 2440 2433 YY_BREAK 2441 2434 /* ' stop highlighting */ 2442 2435 /* string constant */ 2436 case 117: 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 2443 2441 case 118: 2444 2442 YY_RULE_SETUP 2445 2443 #line 296 "lex.ll" 2446 { BEGIN STRING; rm_underscore(); strtext = new std::string;*strtext += std::string( yytext ); }2444 { *strtext += std::string( yytext ); } 2447 2445 YY_BREAK 2448 2446 case 119: 2447 /* rule 119 can match eol */ 2449 2448 YY_RULE_SETUP 2450 2449 #line 297 "lex.ll" 2451 { *strtext += std::string( yytext ); }2452 YY_BREAK2453 case 120:2454 /* rule 120 can match eol */2455 YY_RULE_SETUP2456 #line 298 "lex.ll"2457 2450 { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); } 2458 2451 YY_BREAK 2459 2452 /* " stop highlighting */ 2460 2453 /* common character/string constant */ 2454 case 120: 2455 YY_RULE_SETUP 2456 #line 301 "lex.ll" 2457 { rm_underscore(); *strtext += std::string( yytext ); } 2458 YY_BREAK 2461 2459 case 121: 2460 /* rule 121 can match eol */ 2462 2461 YY_RULE_SETUP 2463 2462 #line 302 "lex.ll" 2464 { rm_underscore(); *strtext += std::string( yytext ); }2463 {} // continuation (ALSO HANDLED BY CPP) 2465 2464 YY_BREAK 2466 2465 case 122: 2467 /* rule 122 can match eol */2468 2466 YY_RULE_SETUP 2469 2467 #line 303 "lex.ll" 2470 {} // continuation (ALSO HANDLED BY CPP) 2471 YY_BREAK 2468 { *strtext += std::string( yytext ); } // unknown escape character 2469 YY_BREAK 2470 /* punctuation */ 2472 2471 case 123: 2473 2472 YY_RULE_SETUP 2474 #line 304 "lex.ll" 2475 { *strtext += std::string( yytext ); } // unknown escape character 2476 YY_BREAK 2477 /* punctuation */ 2473 #line 306 "lex.ll" 2474 { ASCIIOP_RETURN(); } 2475 YY_BREAK 2478 2476 case 124: 2479 2477 YY_RULE_SETUP … … 2504 2502 YY_RULE_SETUP 2505 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" 2506 2509 { ASCIIOP_RETURN(); } 2507 YY_BREAK2508 case 130:2509 YY_RULE_SETUP2510 #line 313 "lex.ll"2511 { ASCIIOP_RETURN(); } // also operator2512 2510 YY_BREAK 2513 2511 case 131: … … 2519 2517 YY_RULE_SETUP 2520 2518 #line 315 "lex.ll" 2519 { ASCIIOP_RETURN(); } // also operator 2520 YY_BREAK 2521 case 133: 2522 YY_RULE_SETUP 2523 #line 316 "lex.ll" 2524 { NAMEDOP_RETURN(ELLIPSIS); } 2525 YY_BREAK 2526 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */ 2527 case 134: 2528 YY_RULE_SETUP 2529 #line 319 "lex.ll" 2530 { RETURN_VAL('['); } 2531 YY_BREAK 2532 case 135: 2533 YY_RULE_SETUP 2534 #line 320 "lex.ll" 2535 { RETURN_VAL(']'); } 2536 YY_BREAK 2537 case 136: 2538 YY_RULE_SETUP 2539 #line 321 "lex.ll" 2540 { RETURN_VAL('{'); } 2541 YY_BREAK 2542 case 137: 2543 YY_RULE_SETUP 2544 #line 322 "lex.ll" 2545 { RETURN_VAL('}'); } 2546 YY_BREAK 2547 /* operators */ 2548 case 138: 2549 YY_RULE_SETUP 2550 #line 325 "lex.ll" 2521 2551 { ASCIIOP_RETURN(); } 2522 2552 YY_BREAK 2523 case 133:2524 YY_RULE_SETUP2525 #line 316 "lex.ll"2526 { ASCIIOP_RETURN(); } // also operator2527 YY_BREAK2528 case 134:2529 YY_RULE_SETUP2530 #line 317 "lex.ll"2531 { NAMEDOP_RETURN(ELLIPSIS); }2532 YY_BREAK2533 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */2534 case 135:2535 YY_RULE_SETUP2536 #line 320 "lex.ll"2537 { RETURN_VAL('['); }2538 YY_BREAK2539 case 136:2540 YY_RULE_SETUP2541 #line 321 "lex.ll"2542 { RETURN_VAL(']'); }2543 YY_BREAK2544 case 137:2545 YY_RULE_SETUP2546 #line 322 "lex.ll"2547 { RETURN_VAL('{'); }2548 YY_BREAK2549 case 138:2550 YY_RULE_SETUP2551 #line 323 "lex.ll"2552 { RETURN_VAL('}'); }2553 YY_BREAK2554 /* operators */2555 2553 case 139: 2556 2554 YY_RULE_SETUP … … 2620 2618 case 152: 2621 2619 YY_RULE_SETUP 2622 #line 3 39"lex.ll"2623 { ASCIIOP_RETURN(); }2620 #line 340 "lex.ll" 2621 { NAMEDOP_RETURN(ICR); } 2624 2622 YY_BREAK 2625 2623 case 153: 2626 2624 YY_RULE_SETUP 2627 2625 #line 341 "lex.ll" 2628 { NAMEDOP_RETURN( ICR); }2626 { NAMEDOP_RETURN(DECR); } 2629 2627 YY_BREAK 2630 2628 case 154: 2631 2629 YY_RULE_SETUP 2632 2630 #line 342 "lex.ll" 2633 { NAMEDOP_RETURN( DECR); }2631 { NAMEDOP_RETURN(EQ); } 2634 2632 YY_BREAK 2635 2633 case 155: 2636 2634 YY_RULE_SETUP 2637 2635 #line 343 "lex.ll" 2638 { NAMEDOP_RETURN( EQ); }2636 { NAMEDOP_RETURN(NE); } 2639 2637 YY_BREAK 2640 2638 case 156: 2641 2639 YY_RULE_SETUP 2642 2640 #line 344 "lex.ll" 2643 { NAMEDOP_RETURN( NE); }2641 { NAMEDOP_RETURN(LS); } 2644 2642 YY_BREAK 2645 2643 case 157: 2646 2644 YY_RULE_SETUP 2647 2645 #line 345 "lex.ll" 2648 { NAMEDOP_RETURN( LS); }2646 { NAMEDOP_RETURN(RS); } 2649 2647 YY_BREAK 2650 2648 case 158: 2651 2649 YY_RULE_SETUP 2652 2650 #line 346 "lex.ll" 2653 { NAMEDOP_RETURN( RS); }2651 { NAMEDOP_RETURN(LE); } 2654 2652 YY_BREAK 2655 2653 case 159: 2656 2654 YY_RULE_SETUP 2657 2655 #line 347 "lex.ll" 2658 { NAMEDOP_RETURN( LE); }2656 { NAMEDOP_RETURN(GE); } 2659 2657 YY_BREAK 2660 2658 case 160: 2661 2659 YY_RULE_SETUP 2662 2660 #line 348 "lex.ll" 2663 { NAMEDOP_RETURN( GE); }2661 { NAMEDOP_RETURN(ANDAND); } 2664 2662 YY_BREAK 2665 2663 case 161: 2666 2664 YY_RULE_SETUP 2667 2665 #line 349 "lex.ll" 2668 { NAMEDOP_RETURN( ANDAND); }2666 { NAMEDOP_RETURN(OROR); } 2669 2667 YY_BREAK 2670 2668 case 162: 2671 2669 YY_RULE_SETUP 2672 2670 #line 350 "lex.ll" 2673 { NAMEDOP_RETURN( OROR); }2671 { NAMEDOP_RETURN(ARROW); } 2674 2672 YY_BREAK 2675 2673 case 163: 2676 2674 YY_RULE_SETUP 2677 2675 #line 351 "lex.ll" 2678 { NAMEDOP_RETURN( ARROW); }2676 { NAMEDOP_RETURN(PLUSassign); } 2679 2677 YY_BREAK 2680 2678 case 164: 2681 2679 YY_RULE_SETUP 2682 2680 #line 352 "lex.ll" 2683 { NAMEDOP_RETURN( PLUSassign); }2681 { NAMEDOP_RETURN(MINUSassign); } 2684 2682 YY_BREAK 2685 2683 case 165: 2686 2684 YY_RULE_SETUP 2687 2685 #line 353 "lex.ll" 2688 { NAMEDOP_RETURN(M INUSassign); }2686 { NAMEDOP_RETURN(MULTassign); } 2689 2687 YY_BREAK 2690 2688 case 166: 2691 2689 YY_RULE_SETUP 2692 2690 #line 354 "lex.ll" 2693 { NAMEDOP_RETURN( MULTassign); }2691 { NAMEDOP_RETURN(DIVassign); } 2694 2692 YY_BREAK 2695 2693 case 167: 2696 2694 YY_RULE_SETUP 2697 2695 #line 355 "lex.ll" 2698 { NAMEDOP_RETURN( DIVassign); }2696 { NAMEDOP_RETURN(MODassign); } 2699 2697 YY_BREAK 2700 2698 case 168: 2701 2699 YY_RULE_SETUP 2702 2700 #line 356 "lex.ll" 2703 { NAMEDOP_RETURN( MODassign); }2701 { NAMEDOP_RETURN(ANDassign); } 2704 2702 YY_BREAK 2705 2703 case 169: 2706 2704 YY_RULE_SETUP 2707 2705 #line 357 "lex.ll" 2708 { NAMEDOP_RETURN( ANDassign); }2706 { NAMEDOP_RETURN(ORassign); } 2709 2707 YY_BREAK 2710 2708 case 170: 2711 2709 YY_RULE_SETUP 2712 2710 #line 358 "lex.ll" 2713 { NAMEDOP_RETURN( ORassign); }2711 { NAMEDOP_RETURN(ERassign); } 2714 2712 YY_BREAK 2715 2713 case 171: 2716 2714 YY_RULE_SETUP 2717 2715 #line 359 "lex.ll" 2718 { NAMEDOP_RETURN( ERassign); }2716 { NAMEDOP_RETURN(LSassign); } 2719 2717 YY_BREAK 2720 2718 case 172: 2721 2719 YY_RULE_SETUP 2722 2720 #line 360 "lex.ll" 2723 { NAMEDOP_RETURN( LSassign); }2721 { NAMEDOP_RETURN(RSassign); } 2724 2722 YY_BREAK 2725 2723 case 173: 2726 2724 YY_RULE_SETUP 2727 #line 361 "lex.ll" 2728 { NAMEDOP_RETURN(RSassign); } 2729 YY_BREAK 2725 #line 362 "lex.ll" 2726 { NAMEDOP_RETURN(ATassign); } 2727 YY_BREAK 2728 /* CFA, operator identifier */ 2730 2729 case 174: 2731 2730 YY_RULE_SETUP 2732 #line 363 "lex.ll" 2733 { NAMEDOP_RETURN(ATassign); } // CFA 2734 YY_BREAK 2735 /* CFA, operator identifier */ 2731 #line 365 "lex.ll" 2732 { IDENTIFIER_RETURN(); } // unary 2733 YY_BREAK 2736 2734 case 175: 2737 2735 YY_RULE_SETUP 2738 2736 #line 366 "lex.ll" 2739 { IDENTIFIER_RETURN(); } // unary2737 { IDENTIFIER_RETURN(); } 2740 2738 YY_BREAK 2741 2739 case 176: … … 2747 2745 YY_RULE_SETUP 2748 2746 #line 368 "lex.ll" 2749 { IDENTIFIER_RETURN(); }2750 YY_BREAK2751 case 178:2752 YY_RULE_SETUP2753 #line 369 "lex.ll"2754 2747 { IDENTIFIER_RETURN(); } // binary 2755 2748 YY_BREAK … … 2780 2773 an argument list. 2781 2774 */ 2782 case 17 9:2783 YY_RULE_SETUP 2784 #line 39 6"lex.ll"2775 case 178: 2776 YY_RULE_SETUP 2777 #line 395 "lex.ll" 2785 2778 { 2786 2779 // 1 or 2 character unary operator ? … … 2795 2788 YY_BREAK 2796 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 2797 2795 case 180: 2798 2796 YY_RULE_SETUP 2799 #line 408 "lex.ll" 2800 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); } 2801 YY_BREAK 2802 case 181: 2803 YY_RULE_SETUP 2804 #line 410 "lex.ll" 2797 #line 409 "lex.ll" 2805 2798 ECHO; 2806 2799 YY_BREAK 2807 #line 280 8"Parser/lex.cc"2800 #line 2801 "Parser/lex.cc" 2808 2801 case YY_STATE_EOF(INITIAL): 2809 2802 case YY_STATE_EOF(COMMENT): … … 3102 3095 { 3103 3096 yy_current_state = (int) yy_def[yy_current_state]; 3104 if ( yy_current_state >= 8 92)3097 if ( yy_current_state >= 888 ) 3105 3098 yy_c = yy_meta[(unsigned int) yy_c]; 3106 3099 } … … 3130 3123 { 3131 3124 yy_current_state = (int) yy_def[yy_current_state]; 3132 if ( yy_current_state >= 8 92)3125 if ( yy_current_state >= 888 ) 3133 3126 yy_c = yy_meta[(unsigned int) yy_c]; 3134 3127 } 3135 3128 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 3136 yy_is_jam = (yy_current_state == 8 91);3129 yy_is_jam = (yy_current_state == 887); 3137 3130 3138 3131 return yy_is_jam ? 0 : yy_current_state; … … 3780 3773 #define YYTABLES_NAME "yytables" 3781 3774 3782 #line 4 10"lex.ll"3775 #line 409 "lex.ll" 3783 3776 3784 3777 -
src/Parser/lex.ll
ra14187f rac43954 9 9 * Author : Peter A. Buhr 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 * Last Modified By : 12 * Last Modified On : Sun Jul 31 07:19:36201613 * Update Count : 45 911 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Thu Jun 23 07:29:30 2016 13 * Update Count : 457 14 14 */ 15 15 … … 213 213 __extension__ { KEYWORD_RETURN(EXTENSION); } // GCC 214 214 extern { KEYWORD_RETURN(EXTERN); } 215 fallthrough { KEYWORD_RETURN(FALLTHRU); } // CFA216 215 fallthru { KEYWORD_RETURN(FALLTHRU); } // CFA 217 216 finally { KEYWORD_RETURN(FINALLY); } // CFA … … 361 360 ">>=" { NAMEDOP_RETURN(RSassign); } 362 361 363 "@=" { NAMEDOP_RETURN(ATassign); } // CFA362 "@=" { NAMEDOP_RETURN(ATassign); } 364 363 365 364 /* CFA, operator identifier */ -
src/SymTab/Validate.cc
ra14187f rac43954 541 541 if ( StructInstType *aggDecl = dynamic_cast< StructInstType * >( tyDecl->get_base() ) ) { 542 542 return new StructDecl( aggDecl->get_name() ); 543 // return aggDecl->get_baseStruct(); 543 544 } else if ( UnionInstType *aggDecl = dynamic_cast< UnionInstType * >( tyDecl->get_base() ) ) { 544 545 return new UnionDecl( aggDecl->get_name() ); 545 } else if ( EnumInstType *enumDecl = dynamic_cast< EnumInstType * >( tyDecl->get_base() ) ) {546 return new EnumDecl( enumDecl->get_name() );547 546 } else { 548 547 return ret; -
src/driver/cfa.cc
ra14187f rac43954 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T ue Aug 2 12:23:11 201613 // Update Count : 14 712 // Last Modified On : Thu Jul 7 08:56:01 2016 13 // Update Count : 144 14 14 // 15 15 … … 87 87 bool cpp_flag = false; // -E or -M flag, preprocessor only 88 88 bool std_flag = false; // -std= flag 89 bool noincstd_flag = false; // -no-include-std= flag90 89 bool debugging __attribute(( unused )) = false; // -g flag 91 90 … … 145 144 } else if ( arg == "-nohelp" ) { 146 145 help = false; // strip the nohelp flag 147 } else if ( arg == "-no-include-std" ) {148 noincstd_flag = true; // strip the no-include-std flag149 146 } else if ( arg == "-compiler" ) { 150 147 // use the user specified compiler … … 251 248 args[nargs] = "-I" CFA_INCDIR; 252 249 nargs += 1; 253 if ( ! noincstd_flag ) { // do not use during build 254 args[nargs] = "-I" CFA_INCDIR "/stdhdr"; 255 nargs += 1; 256 } // if 250 args[nargs] = "-I" CFA_INCDIR "/stdhdr"; 251 nargs += 1; 257 252 args[nargs] = "-I" CFA_INCDIR "/containers"; 258 253 nargs += 1; -
src/libcfa/Makefile.am
ra14187f rac43954 11 11 ## Created On : Sun May 31 08:54:01 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Tue Aug 2 12:17:23201614 ## Update Count : 19 613 ## Last Modified On : Fri Jul 8 23:05:11 2016 14 ## Update Count : 192 15 15 ############################################################################### 16 16 … … 26 26 # create extra forward types/declarations to reduce inclusion of library files 27 27 extras.cf : extras.regx extras.c 28 $ {AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E ${srcdir}/extras.c | grep -f extras.regx > ${srcdir}/extras.cf28 $(AM_V_GEN)@BACKEND_CC@ @CFA_FLAGS@ -E ${srcdir}/extras.c | grep -f extras.regx > ${srcdir}/extras.cf 29 29 30 30 # create forward declarations for gcc builtins 31 31 builtins.cf : builtins.c 32 $ {AM_V_GEN}if [ -e $< ] ; then \32 $(AM_V_GEN)if [ -e $< ] ; then \ 33 33 @BACKEND_CC@ -E -P $^ | sed -e "/targetm/s/.*//" -e "/_Decimal/s/.*//" -e "s/void (const char \*)0();//" -e "s/\"//g" -e "s/\(__builtin_\) /\1/" > $@ ; \ 34 34 fi 35 35 36 36 builtins.c : builtins.def prototypes.awk 37 $ {AM_V_GEN}if [ -e $< ] ; then \37 $(AM_V_GEN)if [ -e $< ] ; then \ 38 38 @BACKEND_CC@ -E prototypes.c | awk -f prototypes.awk > $@ ; \ 39 39 fi … … 48 48 49 49 libcfa-prelude.c : ${srcdir}/prelude.cf ${srcdir}/extras.cf ${srcdir}/builtins.cf 50 $ {AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -l ${srcdir}/prelude.cf $@ # use src/cfa-cpp as not in lib until after install50 $(AM_V_GEN)${abs_top_srcdir}/src/driver/cfa-cpp -l ${srcdir}/prelude.cf $@ # use src/cfa-cpp as not in lib until after install 51 51 52 52 libcfa-prelude.o : libcfa-prelude.c 53 $ {AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -c -o $@ $<53 $(AM_V_GEN)@BACKEND_CC@ @CFA_FLAGS@ -c -o $@ $< 54 54 55 CFLAGS = -quiet - no-include-std -g -Wall -Wno-unused-function @CFA_FLAGS@ -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O255 CFLAGS = -quiet -g -Wall -Wno-unused-function @CFA_FLAGS@ -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2 56 56 CC = ${abs_top_srcdir}/src/driver/cfa 57 57 … … 63 63 @true 64 64 65 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator65 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator 66 66 67 67 libcfa_a_SOURCES = libcfa-prelude.c ${headers:=.c} -
src/libcfa/Makefile.in
ra14187f rac43954 136 136 CFA_LIBDIR = @CFA_LIBDIR@ 137 137 CFA_PREFIX = @CFA_PREFIX@ 138 CFLAGS = -quiet - no-include-std -g -Wall -Wno-unused-function @CFA_FLAGS@ -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2138 CFLAGS = -quiet -g -Wall -Wno-unused-function @CFA_FLAGS@ -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2 139 139 CPP = @CPP@ 140 140 CPPFLAGS = @CPPFLAGS@ … … 603 603 # create extra forward types/declarations to reduce inclusion of library files 604 604 extras.cf : extras.regx extras.c 605 $ {AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E ${srcdir}/extras.c | grep -f extras.regx > ${srcdir}/extras.cf605 $(AM_V_GEN)@BACKEND_CC@ @CFA_FLAGS@ -E ${srcdir}/extras.c | grep -f extras.regx > ${srcdir}/extras.cf 606 606 607 607 # create forward declarations for gcc builtins 608 608 builtins.cf : builtins.c 609 $ {AM_V_GEN}if [ -e $< ] ; then \609 $(AM_V_GEN)if [ -e $< ] ; then \ 610 610 @BACKEND_CC@ -E -P $^ | sed -e "/targetm/s/.*//" -e "/_Decimal/s/.*//" -e "s/void (const char \*)0();//" -e "s/\"//g" -e "s/\(__builtin_\) /\1/" > $@ ; \ 611 611 fi 612 612 613 613 builtins.c : builtins.def prototypes.awk 614 $ {AM_V_GEN}if [ -e $< ] ; then \614 $(AM_V_GEN)if [ -e $< ] ; then \ 615 615 @BACKEND_CC@ -E prototypes.c | awk -f prototypes.awk > $@ ; \ 616 616 fi … … 623 623 624 624 libcfa-prelude.c : ${srcdir}/prelude.cf ${srcdir}/extras.cf ${srcdir}/builtins.cf 625 $ {AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -l ${srcdir}/prelude.cf $@ # use src/cfa-cpp as not in lib until after install625 $(AM_V_GEN)${abs_top_srcdir}/src/driver/cfa-cpp -l ${srcdir}/prelude.cf $@ # use src/cfa-cpp as not in lib until after install 626 626 627 627 libcfa-prelude.o : libcfa-prelude.c 628 $ {AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -c -o $@ $<628 $(AM_V_GEN)@BACKEND_CC@ @CFA_FLAGS@ -c -o $@ $< 629 629 630 630 # extensionless header files are overridden by -o flag in default makerule => explicitly override default rule to silently do nothing … … 632 632 @true 633 633 634 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator634 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator 635 635 636 636 maintainer-clean-local: -
src/tests/switch.c
ra14187f rac43954 10 10 // Created On : Tue Jul 12 06:50:22 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 30 14:41:32201613 // Update Count : 3012 // Last Modified On : Tue Jul 12 18:02:23 2016 13 // Update Count : 22 14 14 // 15 15 … … 33 33 } // switch 34 34 35 switch (3 ) {36 int j;37 case 3:38 break;39 case 4:40 j = 0;41 }35 // switch (3 ) { 36 // int j; 37 // case 3: 38 // break; 39 // case 4: 40 // j = 0; 41 // } 42 42 43 43 switch ( i ) { … … 49 49 default: 50 50 i = 3; 51 case 19:51 case 3: 52 52 case 'A' ... 'Z': 53 case 1... 6:54 case 2 0, 30:53 case 5 ... 6: 54 case 2, 4: 55 55 j = 3; 56 56 f( 3 ); … … 78 78 struct S { int i; }; 79 79 S s; 80 case 19:80 case 3: 81 81 case 'A' ... 'Z': 82 case 0... 6:83 case 2 0, 30, 40:82 case 5 ... 6: 83 case 2, 4, 7: 84 84 i = 3; 85 85 f( 3 ); -
src/tests/test.py
ra14187f rac43954 33 33 def listTests(): 34 34 machineType = getMachineType() 35 36 print(machineType) 35 37 36 38 # tests directly in the .expect folder will always be processed
Note:
See TracChangeset
for help on using the changeset viewer.