Changeset 5f2f2d7


Ignore:
Timestamp:
Jun 8, 2015, 8:56:35 PM (10 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
81419b5
Parents:
cd623a4
Message:

fix constant types, remove unnecessary string copying, work on regression testing, fix several memory leaks

Location:
src
Files:
63 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.h

    rcd623a4 r5f2f2d7  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Tue Jun 02 13:43:29 2015
    13 // Update Count     : 14
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jun  8 14:34:43 2015
     13// Update Count     : 15
    1414//
    1515
     
    1717#define CODEGENV_H
    1818
    19 #include <strstream>
    2019#include <list>
    2120
  • src/CodeGen/GenType.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun  4 14:04:58 2015
    13 // Update Count     : 4
    14 //
    15 
    16 #include <strstream>
     12// Last Modified On : Mon Jun  8 14:36:02 2015
     13// Update Count     : 9
     14//
     15
     16#include <sstream>
    1717#include <cassert>
    1818
     
    6868
    6969        void GenType::genArray( const Type::Qualifiers &qualifiers, Type *base, Expression *dimension, bool isVarLen, bool isStatic ) {
    70                 std::ostrstream os;
     70                std::ostringstream os;
    7171                if ( typeString != "" ) {
    7272                        if ( typeString[ 0 ] == '*' ) {
     
    102102                os << "]";
    103103
    104                 typeString = std::string( os.str(), os.pcount() );
     104                typeString = os.str();
    105105 
    106106                base->accept( *this );
     
    127127
    128128        void GenType::visit( FunctionType *funcType ) {
    129                 std::ostrstream os;
     129                std::ostringstream os;
    130130
    131131                if ( typeString != "" ) {
     
    159159                } // if
    160160 
    161                 typeString = std::string( os.str(), os.pcount() );
     161                typeString = os.str();
    162162
    163163                if ( funcType->get_returnVals().size() == 0 ) {
  • src/Common/SemanticError.h

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 07:22:23 2015
    13 // Update Count     : 1
     12// Last Modified On : Mon Jun  8 14:38:53 2015
     13// Update Count     : 4
    1414//
    1515
     
    1919#include <exception>
    2020#include <string>
    21 #include <strstream>
     21#include <sstream>
    2222#include <list>
    2323#include <iostream>
     
    4242template< typename T >
    4343SemanticError::SemanticError( const std::string &error, const T *obj ) {
    44         std::ostrstream os;
     44        std::ostringstream os;
    4545        os << "Error: " << error;
    4646        obj->print( os );
    47         errors.push_back( std::string( os.str(), os.pcount() ) );
     47        errors.push_back( os.str() );
    4848}
    4949
  • src/Common/UniqueName.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 07:23:41 2015
    13 // Update Count     : 1
     12// Last Modified On : Mon Jun  8 14:47:49 2015
     13// Update Count     : 3
    1414//
    1515
    1616#include <string>
    17 #include <strstream>
     17#include <sstream>
    1818
    1919#include "UniqueName.h"
     
    2323
    2424std::string UniqueName::newName( const std::string &additional ) {
    25         std::ostrstream os;
     25        std::ostringstream os;
    2626        os << base << additional << count++;
    27         return std::string( os.str(), os.pcount() );
     27        return os.str();
    2828}
    2929
  • src/Common/utility.h

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun  4 21:29:57 2015
    13 // Update Count     : 9
     12// Last Modified On : Mon Jun  8 14:43:54 2015
     13// Update Count     : 13
    1414//
    1515
     
    1818
    1919#include <iostream>
    20 #include <strstream>
     20#include <sstream>
    2121#include <iterator>
    2222#include <string>
     
    130130template < typename T >
    131131std::string toString ( T value ) {
    132         std::ostrstream os;
    133  
     132        std::ostringstream os;
    134133        os << value; // << std::ends;
    135         os.freeze( false );
    136 
    137         return std::string(os.str(), os.pcount());
     134        return os.str();
    138135}
    139136
  • src/ControlStruct/LabelGenerator.cc

    rcd623a4 r5f2f2d7  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jun 03 14:23:26 2015
    13 // Update Count     : 9
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jun  8 14:45:07 2015
     13// Update Count     : 12
    1414//
    1515
    1616#include <iostream>
    17 #include <strstream>
     17#include <sstream>
    1818
    1919#include "LabelGenerator.h"
     
    3030
    3131        Label LabelGenerator::newLabel(std::string suffix) {
    32                 std::ostrstream os;
     32                std::ostringstream os;
    3333                os << "__L" << current++ << "__" << suffix;
    34                 os.freeze( false );
    35                 std::string ret = std::string (os.str(), os.pcount());
     34                std::string ret = os.str();
    3635                return Label( ret );
    3736        }
  • src/Parser/ExpressionNode.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jun  7 07:58:00 2015
    13 // Update Count     : 135
     12// Last Modified On : Mon Jun  8 17:33:40 2015
     13// Update Count     : 147
    1414//
    1515
     
    9393static inline bool checkX( char c ) { return c == 'x' || c == 'X'; }
    9494
    95 // Very difficult to separate extra parts of constants during lexing because actions are not allow in the middle of
    96 // patterns:
     95// Difficult to separate extra parts of constants during lexing because actions are not allow in the middle of patterns:
    9796//
    9897//              prefix action constant action suffix
     
    130129                                } // if
    131130                        } else {                                                                        // decimal constant ?
    132                                 sscanf( (char *)value.c_str(), "%lld", &v );
     131                                sscanf( (char *)value.c_str(), "%llu", &v );
    133132                                //printf( "%llu %llu\n", v, v );
    134133                        } // if
     
    136135                        if ( v <= INT_MAX ) {                                           // signed int
    137136                                size = 0;
    138                         } else if ( v <= UINT_MAX ) {                           // unsigned int
     137                        } else if ( v <= UINT_MAX && ! dec ) {          // unsigned int
    139138                                size = 0;
    140                                 if ( ! dec ) Unsigned = true;                   // unsigned
     139                                Unsigned = true;                                                // unsigned
    141140                        } else if ( v <= LONG_MAX ) {                           // signed long int
    142141                                size = 1;
    143                         } else if ( v <= ULONG_MAX ) {                          // signed long int
     142                        } else if ( v <= ULONG_MAX && ( ! dec || LONG_MAX == LLONG_MAX ) ) { // signed long int
    144143                                size = 1;
    145                                 if ( ! dec ) Unsigned = true;                   // unsigned long int
     144                                Unsigned = true;                                                // unsigned long int
    146145                        } else if ( v <= LLONG_MAX ) {                          // signed long long int
    147146                                size = 2;
    148                         } else {                                                                        // signed long long int
     147                        } else {                                                                        // unsigned long long int
    149148                                size = 2;
    150                                 if ( ! dec ) Unsigned = true;                   // unsigned long long int
     149                                Unsigned = true;                                                // unsigned long long int
    151150                        } // if
    152151
    153152                        if ( checkU( value[last] ) ) {                          // suffix 'u' ?
    154153                                Unsigned = true;
    155                                 if ( checkL( value[ last - 1 ] ) ) {    // suffix 'l' ?
     154                                if ( last > 0 && checkL( value[ last - 1 ] ) ) { // suffix 'l' ?
    156155                                        size = 1;
    157                                         if ( checkL( value[ last - 1 ] ) ) { // suffix 'll' ?
     156                                        if ( last > 1 && checkL( value[ last - 2 ] ) ) { // suffix 'll' ?
    158157                                                size = 2;
    159158                                        } // if
     
    161160                        } else if ( checkL( value[ last ] ) ) {         // suffix 'l' ?
    162161                                size = 1;
    163                                 if ( checkL( value[ last - 1 ] ) ) {    // suffix 'll' ?
     162                                if ( last > 0 && checkL( value[ last - 1 ] ) ) { // suffix 'll' ?
    164163                                        size = 2;
    165                                 } // if
    166                                 if ( checkU( value[ last - 1 ] ) ) {    // suffix 'u' ?
    167                                         Unsigned = true;
     164                                        if ( last > 1 && checkU( value[ last - 2 ] ) ) { // suffix 'u' ?
     165                                                Unsigned = true;
     166                                        } // if
     167                                } else {
     168                                        if ( last > 0 && checkU( value[ last - 1 ] ) ) { // suffix 'u' ?
     169                                                Unsigned = true;
     170                                        } // if
    168171                                } // if
    169172                        } // if
  • src/Parser/ParseNode.h

    rcd623a4 r5f2f2d7  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jun  7 07:42:50 2015
    13 // Update Count     : 64
     12// Last Modified On : Sun Jun  7 22:02:00 2015
     13// Update Count     : 65
    1414//
    1515
     
    337337
    338338        bool get_hasEllipsis() const;
    339         std::string get_name() const { return name; }
     339        const std::string &get_name() const { return name; }
    340340        LinkageSpec::Type get_linkage() const { return linkage; }
    341341        DeclarationNode *extractAggregate() const;
  • src/Parser/lex.cc

    rcd623a4 r5f2f2d7  
    13901390 * Created On       : Sat Sep 22 08:58:10 2001
    13911391 * Last Modified By : Peter A. Buhr
    1392  * Last Modified On : Sun Jun  7 07:14:16 2015
    1393  * Update Count     : 374
    1394  */
    1395 #line 19 "lex.ll"
     1392 * Last Modified On : Mon Jun  8 20:24:15 2015
     1393 * Update Count     : 381
     1394 */
     1395#line 20 "lex.ll"
    13961396// This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive
    13971397// have been performed and removed from the source. The only exceptions are preprocessor directives passed to
     
    14091409std::string *strtext;                                                                   // accumulate parts of character and string constant value
    14101410
     1411#define RETURN_LOCN(x)          yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return(x)
     1412#define RETURN_VAL(x)           yylval.tok.str = new std::string( yytext ); RETURN_LOCN(x)
     1413#define RETURN_CHAR(x)          yylval.tok.str = NULL; RETURN_LOCN(x)
     1414#define RETURN_STR(x)           yylval.tok.str = strtext; RETURN_LOCN(x)
     1415
    14111416#define WHITE_RETURN(x)                                                                 // do nothing
    14121417#define NEWLINE_RETURN()        WHITE_RETURN('\n')
    1413 #define RETURN_VAL(x)           yylval.tok.str = new std::string( yytext ); \
    1414                                         yylval.tok.loc.file = yyfilename; \
    1415                                         yylval.tok.loc.line = yylineno; \
    1416                                         return(x)
    1417 #define RETURN_STR(x)           yylval.tok.str = strtext; \
    1418                                         yylval.tok.loc.file = yyfilename; \
    1419                                         yylval.tok.loc.line = yylineno; \
    1420                                         return(x)
    1421 
    1422 #define KEYWORD_RETURN(x)       RETURN_VAL(x)                           // keyword
     1418#define ASCIIOP_RETURN()        RETURN_CHAR((int)yytext[0])     // single character operator
     1419#define NAMEDOP_RETURN(x)       RETURN_VAL(x)                           // multichar operator, with a name
     1420#define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL(x) // numeric constant
     1421#define KEYWORD_RETURN(x)       RETURN_CHAR(x)                          // keyword
    14231422#define IDENTIFIER_RETURN()     RETURN_VAL((typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname))
    1424 //#define ATTRIBUTE_RETURN()    RETURN_VAL((typedefTable.isIdentifier(yytext) ? ATTR_IDENTIFIER : typedefTable.isTypedef(yytext) ? ATTR_TYPEDEFname : ATTR_TYPEGENname))
    14251423#define ATTRIBUTE_RETURN()      RETURN_VAL(ATTR_IDENTIFIER)
    1426 
    1427 #define ASCIIOP_RETURN()        RETURN_VAL((int)yytext[0])      // single character operator
    1428 #define NAMEDOP_RETURN(x)       RETURN_VAL(x)                           // multichar operator, with a name
    1429 
    1430 #define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL(x) // numeric constant
    14311424
    14321425void rm_underscore() {
     
    14551448
    14561449
    1457 #line 1458 "Parser/lex.cc"
     1450#line 1451 "Parser/lex.cc"
    14581451
    14591452#define INITIAL 0
     
    15181511#endif
    15191512
    1520     static void yyunput (int c,char *buf_ptr  );
    1521    
    15221513#ifndef yytext_ptr
    15231514static void yy_flex_strncpy (char *,yyconst char *,int );
     
    16491640        register int yy_act;
    16501641   
    1651 #line 142 "lex.ll"
     1642#line 136 "lex.ll"
    16521643
    16531644                                   /* line directives */
    1654 #line 1655 "Parser/lex.cc"
     1645#line 1646 "Parser/lex.cc"
    16551646
    16561647        if ( !(yy_init) )
     
    17491740/* rule 1 can match eol */
    17501741YY_RULE_SETUP
    1751 #line 144 "lex.ll"
     1742#line 138 "lex.ll"
    17521743{
    17531744        /* " stop highlighting */
     
    17761767/* rule 2 can match eol */
    17771768YY_RULE_SETUP
    1778 #line 167 "lex.ll"
     1769#line 161 "lex.ll"
    17791770;
    17801771        YY_BREAK
     
    17821773case 3:
    17831774YY_RULE_SETUP
    1784 #line 170 "lex.ll"
     1775#line 164 "lex.ll"
    17851776{ BEGIN COMMENT; }
    17861777        YY_BREAK
     
    17881779/* rule 4 can match eol */
    17891780YY_RULE_SETUP
    1790 #line 171 "lex.ll"
     1781#line 165 "lex.ll"
    17911782;
    17921783        YY_BREAK
    17931784case 5:
    17941785YY_RULE_SETUP
    1795 #line 172 "lex.ll"
     1786#line 166 "lex.ll"
    17961787{ BEGIN 0; }
    17971788        YY_BREAK
     
    18001791/* rule 6 can match eol */
    18011792YY_RULE_SETUP
    1802 #line 175 "lex.ll"
     1793#line 169 "lex.ll"
    18031794;
    18041795        YY_BREAK
     
    18061797case 7:
    18071798YY_RULE_SETUP
    1808 #line 178 "lex.ll"
     1799#line 172 "lex.ll"
    18091800{ WHITE_RETURN(' '); }
    18101801        YY_BREAK
    18111802case 8:
    18121803YY_RULE_SETUP
    1813 #line 179 "lex.ll"
     1804#line 173 "lex.ll"
    18141805{ WHITE_RETURN(' '); }
    18151806        YY_BREAK
     
    18171808/* rule 9 can match eol */
    18181809YY_RULE_SETUP
    1819 #line 180 "lex.ll"
     1810#line 174 "lex.ll"
    18201811{ NEWLINE_RETURN(); }
    18211812        YY_BREAK
     
    18231814case 10:
    18241815YY_RULE_SETUP
     1816#line 177 "lex.ll"
     1817{ KEYWORD_RETURN(ALIGNAS); }                    // C11
     1818        YY_BREAK
     1819case 11:
     1820YY_RULE_SETUP
     1821#line 178 "lex.ll"
     1822{ KEYWORD_RETURN(ALIGNOF); }                    // C11
     1823        YY_BREAK
     1824case 12:
     1825YY_RULE_SETUP
     1826#line 179 "lex.ll"
     1827{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
     1828        YY_BREAK
     1829case 13:
     1830YY_RULE_SETUP
     1831#line 180 "lex.ll"
     1832{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
     1833        YY_BREAK
     1834case 14:
     1835YY_RULE_SETUP
     1836#line 181 "lex.ll"
     1837{ KEYWORD_RETURN(ASM); }
     1838        YY_BREAK
     1839case 15:
     1840YY_RULE_SETUP
     1841#line 182 "lex.ll"
     1842{ KEYWORD_RETURN(ASM); }                                // GCC
     1843        YY_BREAK
     1844case 16:
     1845YY_RULE_SETUP
    18251846#line 183 "lex.ll"
    1826 { KEYWORD_RETURN(ALIGNAS); }                    // C11
    1827         YY_BREAK
    1828 case 11:
     1847{ KEYWORD_RETURN(ASM); }                                // GCC
     1848        YY_BREAK
     1849case 17:
    18291850YY_RULE_SETUP
    18301851#line 184 "lex.ll"
    1831 { KEYWORD_RETURN(ALIGNOF); }                    // C11
    1832         YY_BREAK
    1833 case 12:
     1852{ KEYWORD_RETURN(ATOMIC); }                             // C11
     1853        YY_BREAK
     1854case 18:
    18341855YY_RULE_SETUP
    18351856#line 185 "lex.ll"
    1836 { KEYWORD_RETURN(ALIGNOF); }                    // GCC
    1837         YY_BREAK
    1838 case 13:
     1857{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
     1858        YY_BREAK
     1859case 19:
    18391860YY_RULE_SETUP
    18401861#line 186 "lex.ll"
    1841 { KEYWORD_RETURN(ALIGNOF); }                    // GCC
    1842         YY_BREAK
    1843 case 14:
     1862{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
     1863        YY_BREAK
     1864case 20:
    18441865YY_RULE_SETUP
    18451866#line 187 "lex.ll"
    1846 { KEYWORD_RETURN(ASM); }
    1847         YY_BREAK
    1848 case 15:
     1867{ KEYWORD_RETURN(AUTO); }
     1868        YY_BREAK
     1869case 21:
    18491870YY_RULE_SETUP
    18501871#line 188 "lex.ll"
    1851 { KEYWORD_RETURN(ASM); }                                // GCC
    1852         YY_BREAK
    1853 case 16:
     1872{ KEYWORD_RETURN(BOOL); }                               // C99
     1873        YY_BREAK
     1874case 22:
    18541875YY_RULE_SETUP
    18551876#line 189 "lex.ll"
    1856 { KEYWORD_RETURN(ASM); }                                // GCC
    1857         YY_BREAK
    1858 case 17:
     1877{ KEYWORD_RETURN(BREAK); }
     1878        YY_BREAK
     1879case 23:
    18591880YY_RULE_SETUP
    18601881#line 190 "lex.ll"
    1861 { KEYWORD_RETURN(ATOMIC); }                             // C11
    1862         YY_BREAK
    1863 case 18:
     1882{ KEYWORD_RETURN(CASE); }
     1883        YY_BREAK
     1884case 24:
    18641885YY_RULE_SETUP
    18651886#line 191 "lex.ll"
    1866 { KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    1867         YY_BREAK
    1868 case 19:
     1887{ KEYWORD_RETURN(CATCH); }                              // CFA
     1888        YY_BREAK
     1889case 25:
    18691890YY_RULE_SETUP
    18701891#line 192 "lex.ll"
    1871 { KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    1872         YY_BREAK
    1873 case 20:
     1892{ KEYWORD_RETURN(CHAR); }
     1893        YY_BREAK
     1894case 26:
    18741895YY_RULE_SETUP
    18751896#line 193 "lex.ll"
    1876 { KEYWORD_RETURN(AUTO); }
    1877         YY_BREAK
    1878 case 21:
     1897{ KEYWORD_RETURN(CHOOSE); }                             // CFA
     1898        YY_BREAK
     1899case 27:
    18791900YY_RULE_SETUP
    18801901#line 194 "lex.ll"
    1881 { KEYWORD_RETURN(BOOL); }                               // C99
    1882         YY_BREAK
    1883 case 22:
     1902{ KEYWORD_RETURN(COMPLEX); }                    // C99
     1903        YY_BREAK
     1904case 28:
    18841905YY_RULE_SETUP
    18851906#line 195 "lex.ll"
    1886 { KEYWORD_RETURN(BREAK); }
    1887         YY_BREAK
    1888 case 23:
     1907{ KEYWORD_RETURN(COMPLEX); }                    // GCC
     1908        YY_BREAK
     1909case 29:
    18891910YY_RULE_SETUP
    18901911#line 196 "lex.ll"
    1891 { KEYWORD_RETURN(CASE); }
    1892         YY_BREAK
    1893 case 24:
     1912{ KEYWORD_RETURN(COMPLEX); }                    // GCC
     1913        YY_BREAK
     1914case 30:
    18941915YY_RULE_SETUP
    18951916#line 197 "lex.ll"
    1896 { KEYWORD_RETURN(CATCH); }                              // CFA
    1897         YY_BREAK
    1898 case 25:
     1917{ KEYWORD_RETURN(CONST); }
     1918        YY_BREAK
     1919case 31:
    18991920YY_RULE_SETUP
    19001921#line 198 "lex.ll"
    1901 { KEYWORD_RETURN(CHAR); }
    1902         YY_BREAK
    1903 case 26:
     1922{ KEYWORD_RETURN(CONST); }                              // GCC
     1923        YY_BREAK
     1924case 32:
    19041925YY_RULE_SETUP
    19051926#line 199 "lex.ll"
    1906 { KEYWORD_RETURN(CHOOSE); }                             // CFA
    1907         YY_BREAK
    1908 case 27:
     1927{ KEYWORD_RETURN(CONST); }                              // GCC
     1928        YY_BREAK
     1929case 33:
    19091930YY_RULE_SETUP
    19101931#line 200 "lex.ll"
    1911 { KEYWORD_RETURN(COMPLEX); }                    // C99
    1912         YY_BREAK
    1913 case 28:
     1932{ KEYWORD_RETURN(CONTEXT); }                    // CFA
     1933        YY_BREAK
     1934case 34:
    19141935YY_RULE_SETUP
    19151936#line 201 "lex.ll"
    1916 { KEYWORD_RETURN(COMPLEX); }                    // GCC
    1917         YY_BREAK
    1918 case 29:
     1937{ KEYWORD_RETURN(CONTINUE); }
     1938        YY_BREAK
     1939case 35:
    19191940YY_RULE_SETUP
    19201941#line 202 "lex.ll"
    1921 { KEYWORD_RETURN(COMPLEX); }                    // GCC
    1922         YY_BREAK
    1923 case 30:
     1942{ KEYWORD_RETURN(DEFAULT); }
     1943        YY_BREAK
     1944case 36:
    19241945YY_RULE_SETUP
    19251946#line 203 "lex.ll"
    1926 { KEYWORD_RETURN(CONST); }
    1927         YY_BREAK
    1928 case 31:
     1947{ KEYWORD_RETURN(DO); }
     1948        YY_BREAK
     1949case 37:
    19291950YY_RULE_SETUP
    19301951#line 204 "lex.ll"
    1931 { KEYWORD_RETURN(CONST); }                              // GCC
    1932         YY_BREAK
    1933 case 32:
     1952{ KEYWORD_RETURN(DOUBLE); }
     1953        YY_BREAK
     1954case 38:
    19341955YY_RULE_SETUP
    19351956#line 205 "lex.ll"
    1936 { KEYWORD_RETURN(CONST); }                              // GCC
    1937         YY_BREAK
    1938 case 33:
     1957{ KEYWORD_RETURN(DTYPE); }                              // CFA
     1958        YY_BREAK
     1959case 39:
    19391960YY_RULE_SETUP
    19401961#line 206 "lex.ll"
    1941 { KEYWORD_RETURN(CONTEXT); }                    // CFA
    1942         YY_BREAK
    1943 case 34:
     1962{ KEYWORD_RETURN(ELSE); }
     1963        YY_BREAK
     1964case 40:
    19441965YY_RULE_SETUP
    19451966#line 207 "lex.ll"
    1946 { KEYWORD_RETURN(CONTINUE); }
    1947         YY_BREAK
    1948 case 35:
     1967{ KEYWORD_RETURN(ENUM); }
     1968        YY_BREAK
     1969case 41:
    19491970YY_RULE_SETUP
    19501971#line 208 "lex.ll"
    1951 { KEYWORD_RETURN(DEFAULT); }
    1952         YY_BREAK
    1953 case 36:
     1972{ KEYWORD_RETURN(EXTENSION); }                  // GCC
     1973        YY_BREAK
     1974case 42:
    19541975YY_RULE_SETUP
    19551976#line 209 "lex.ll"
    1956 { KEYWORD_RETURN(DO); }
    1957         YY_BREAK
    1958 case 37:
     1977{ KEYWORD_RETURN(EXTERN); }
     1978        YY_BREAK
     1979case 43:
    19591980YY_RULE_SETUP
    19601981#line 210 "lex.ll"
    1961 { KEYWORD_RETURN(DOUBLE); }
    1962         YY_BREAK
    1963 case 38:
     1982{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
     1983        YY_BREAK
     1984case 44:
    19641985YY_RULE_SETUP
    19651986#line 211 "lex.ll"
    1966 { KEYWORD_RETURN(DTYPE); }                              // CFA
    1967         YY_BREAK
    1968 case 39:
     1987{ KEYWORD_RETURN(FINALLY); }                    // CFA
     1988        YY_BREAK
     1989case 45:
    19691990YY_RULE_SETUP
    19701991#line 212 "lex.ll"
    1971 { KEYWORD_RETURN(ELSE); }
    1972         YY_BREAK
    1973 case 40:
     1992{ KEYWORD_RETURN(FLOAT); }
     1993        YY_BREAK
     1994case 46:
    19741995YY_RULE_SETUP
    19751996#line 213 "lex.ll"
    1976 { KEYWORD_RETURN(ENUM); }
    1977         YY_BREAK
    1978 case 41:
     1997{ KEYWORD_RETURN(FLOAT); }                              // GCC
     1998        YY_BREAK
     1999case 47:
    19792000YY_RULE_SETUP
    19802001#line 214 "lex.ll"
    1981 { KEYWORD_RETURN(EXTENSION); }                  // GCC
    1982         YY_BREAK
    1983 case 42:
     2002{ KEYWORD_RETURN(FOR); }
     2003        YY_BREAK
     2004case 48:
    19842005YY_RULE_SETUP
    19852006#line 215 "lex.ll"
    1986 { KEYWORD_RETURN(EXTERN); }
    1987         YY_BREAK
    1988 case 43:
     2007{ KEYWORD_RETURN(FORALL); }                             // CFA
     2008        YY_BREAK
     2009case 49:
    19892010YY_RULE_SETUP
    19902011#line 216 "lex.ll"
    1991 { KEYWORD_RETURN(FALLTHRU); }                   // CFA
    1992         YY_BREAK
    1993 case 44:
     2012{ KEYWORD_RETURN(FORTRAN); }
     2013        YY_BREAK
     2014case 50:
    19942015YY_RULE_SETUP
    19952016#line 217 "lex.ll"
    1996 { KEYWORD_RETURN(FINALLY); }                    // CFA
    1997         YY_BREAK
    1998 case 45:
     2017{ KEYWORD_RETURN(FTYPE); }                              // CFA
     2018        YY_BREAK
     2019case 51:
    19992020YY_RULE_SETUP
    20002021#line 218 "lex.ll"
    2001 { KEYWORD_RETURN(FLOAT); }
    2002         YY_BREAK
    2003 case 46:
     2022{ KEYWORD_RETURN(GENERIC); }                    // C11
     2023        YY_BREAK
     2024case 52:
    20042025YY_RULE_SETUP
    20052026#line 219 "lex.ll"
    2006 { KEYWORD_RETURN(FLOAT); }                              // GCC
    2007         YY_BREAK
    2008 case 47:
     2027{ KEYWORD_RETURN(GOTO); }
     2028        YY_BREAK
     2029case 53:
    20092030YY_RULE_SETUP
    20102031#line 220 "lex.ll"
    2011 { KEYWORD_RETURN(FOR); }
    2012         YY_BREAK
    2013 case 48:
     2032{ KEYWORD_RETURN(IF); }
     2033        YY_BREAK
     2034case 54:
    20142035YY_RULE_SETUP
    20152036#line 221 "lex.ll"
    2016 { KEYWORD_RETURN(FORALL); }                             // CFA
    2017         YY_BREAK
    2018 case 49:
     2037{ KEYWORD_RETURN(IMAGINARY); }                  // C99
     2038        YY_BREAK
     2039case 55:
    20192040YY_RULE_SETUP
    20202041#line 222 "lex.ll"
    2021 { KEYWORD_RETURN(FORTRAN); }
    2022         YY_BREAK
    2023 case 50:
     2042{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2043        YY_BREAK
     2044case 56:
    20242045YY_RULE_SETUP
    20252046#line 223 "lex.ll"
    2026 { KEYWORD_RETURN(FTYPE); }                              // CFA
    2027         YY_BREAK
    2028 case 51:
     2047{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2048        YY_BREAK
     2049case 57:
    20292050YY_RULE_SETUP
    20302051#line 224 "lex.ll"
    2031 { KEYWORD_RETURN(GENERIC); }                    // C11
    2032         YY_BREAK
    2033 case 52:
     2052{ KEYWORD_RETURN(INLINE); }                             // C99
     2053        YY_BREAK
     2054case 58:
    20342055YY_RULE_SETUP
    20352056#line 225 "lex.ll"
    2036 { KEYWORD_RETURN(GOTO); }
    2037         YY_BREAK
    2038 case 53:
     2057{ KEYWORD_RETURN(INLINE); }                             // GCC
     2058        YY_BREAK
     2059case 59:
    20392060YY_RULE_SETUP
    20402061#line 226 "lex.ll"
    2041 { KEYWORD_RETURN(IF); }
    2042         YY_BREAK
    2043 case 54:
     2062{ KEYWORD_RETURN(INLINE); }                             // GCC
     2063        YY_BREAK
     2064case 60:
    20442065YY_RULE_SETUP
    20452066#line 227 "lex.ll"
    2046 { KEYWORD_RETURN(IMAGINARY); }                  // C99
    2047         YY_BREAK
    2048 case 55:
     2067{ KEYWORD_RETURN(INT); }
     2068        YY_BREAK
     2069case 61:
    20492070YY_RULE_SETUP
    20502071#line 228 "lex.ll"
    2051 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
    2052         YY_BREAK
    2053 case 56:
     2072{ KEYWORD_RETURN(INT); }                                // GCC
     2073        YY_BREAK
     2074case 62:
    20542075YY_RULE_SETUP
    20552076#line 229 "lex.ll"
    2056 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
    2057         YY_BREAK
    2058 case 57:
     2077{ KEYWORD_RETURN(LABEL); }                              // GCC
     2078        YY_BREAK
     2079case 63:
    20592080YY_RULE_SETUP
    20602081#line 230 "lex.ll"
    2061 { KEYWORD_RETURN(INLINE); }                             // C99
    2062         YY_BREAK
    2063 case 58:
     2082{ KEYWORD_RETURN(LONG); }
     2083        YY_BREAK
     2084case 64:
    20642085YY_RULE_SETUP
    20652086#line 231 "lex.ll"
    2066 { KEYWORD_RETURN(INLINE); }                             // GCC
    2067         YY_BREAK
    2068 case 59:
     2087{ KEYWORD_RETURN(LVALUE); }                             // CFA
     2088        YY_BREAK
     2089case 65:
    20692090YY_RULE_SETUP
    20702091#line 232 "lex.ll"
    2071 { KEYWORD_RETURN(INLINE); }                             // GCC
    2072         YY_BREAK
    2073 case 60:
     2092{ KEYWORD_RETURN(NORETURN); }                   // C11
     2093        YY_BREAK
     2094case 66:
    20742095YY_RULE_SETUP
    20752096#line 233 "lex.ll"
    2076 { KEYWORD_RETURN(INT); }
    2077         YY_BREAK
    2078 case 61:
     2097{ KEYWORD_RETURN(REGISTER); }
     2098        YY_BREAK
     2099case 67:
    20792100YY_RULE_SETUP
    20802101#line 234 "lex.ll"
    2081 { KEYWORD_RETURN(INT); }                                // GCC
    2082         YY_BREAK
    2083 case 62:
     2102{ KEYWORD_RETURN(RESTRICT); }                   // C99
     2103        YY_BREAK
     2104case 68:
    20842105YY_RULE_SETUP
    20852106#line 235 "lex.ll"
    2086 { KEYWORD_RETURN(LABEL); }                              // GCC
    2087         YY_BREAK
    2088 case 63:
     2107{ KEYWORD_RETURN(RESTRICT); }                   // GCC
     2108        YY_BREAK
     2109case 69:
    20892110YY_RULE_SETUP
    20902111#line 236 "lex.ll"
    2091 { KEYWORD_RETURN(LONG); }
    2092         YY_BREAK
    2093 case 64:
     2112{ KEYWORD_RETURN(RESTRICT); }                   // GCC
     2113        YY_BREAK
     2114case 70:
    20942115YY_RULE_SETUP
    20952116#line 237 "lex.ll"
    2096 { KEYWORD_RETURN(LVALUE); }                             // CFA
    2097         YY_BREAK
    2098 case 65:
     2117{ KEYWORD_RETURN(RETURN); }
     2118        YY_BREAK
     2119case 71:
    20992120YY_RULE_SETUP
    21002121#line 238 "lex.ll"
    2101 { KEYWORD_RETURN(NORETURN); }                   // C11
    2102         YY_BREAK
    2103 case 66:
     2122{ KEYWORD_RETURN(SHORT); }
     2123        YY_BREAK
     2124case 72:
    21042125YY_RULE_SETUP
    21052126#line 239 "lex.ll"
    2106 { KEYWORD_RETURN(REGISTER); }
    2107         YY_BREAK
    2108 case 67:
     2127{ KEYWORD_RETURN(SIGNED); }
     2128        YY_BREAK
     2129case 73:
    21092130YY_RULE_SETUP
    21102131#line 240 "lex.ll"
    2111 { KEYWORD_RETURN(RESTRICT); }                   // C99
    2112         YY_BREAK
    2113 case 68:
     2132{ KEYWORD_RETURN(SIGNED); }                             // GCC
     2133        YY_BREAK
     2134case 74:
    21142135YY_RULE_SETUP
    21152136#line 241 "lex.ll"
    2116 { KEYWORD_RETURN(RESTRICT); }                   // GCC
    2117         YY_BREAK
    2118 case 69:
     2137{ KEYWORD_RETURN(SIGNED); }                             // GCC
     2138        YY_BREAK
     2139case 75:
    21192140YY_RULE_SETUP
    21202141#line 242 "lex.ll"
    2121 { KEYWORD_RETURN(RESTRICT); }                   // GCC
    2122         YY_BREAK
    2123 case 70:
     2142{ KEYWORD_RETURN(SIZEOF); }
     2143        YY_BREAK
     2144case 76:
    21242145YY_RULE_SETUP
    21252146#line 243 "lex.ll"
    2126 { KEYWORD_RETURN(RETURN); }
    2127         YY_BREAK
    2128 case 71:
     2147{ KEYWORD_RETURN(STATIC); }
     2148        YY_BREAK
     2149case 77:
    21292150YY_RULE_SETUP
    21302151#line 244 "lex.ll"
    2131 { KEYWORD_RETURN(SHORT); }
    2132         YY_BREAK
    2133 case 72:
     2152{ KEYWORD_RETURN(STATICASSERT); }               // C11
     2153        YY_BREAK
     2154case 78:
    21342155YY_RULE_SETUP
    21352156#line 245 "lex.ll"
    2136 { KEYWORD_RETURN(SIGNED); }
    2137         YY_BREAK
    2138 case 73:
     2157{ KEYWORD_RETURN(STRUCT); }
     2158        YY_BREAK
     2159case 79:
    21392160YY_RULE_SETUP
    21402161#line 246 "lex.ll"
    2141 { KEYWORD_RETURN(SIGNED); }                             // GCC
    2142         YY_BREAK
    2143 case 74:
     2162{ KEYWORD_RETURN(SWITCH); }
     2163        YY_BREAK
     2164case 80:
    21442165YY_RULE_SETUP
    21452166#line 247 "lex.ll"
    2146 { KEYWORD_RETURN(SIGNED); }                             // GCC
    2147         YY_BREAK
    2148 case 75:
     2167{ KEYWORD_RETURN(THREADLOCAL); }                // C11
     2168        YY_BREAK
     2169case 81:
    21492170YY_RULE_SETUP
    21502171#line 248 "lex.ll"
    2151 { KEYWORD_RETURN(SIZEOF); }
    2152         YY_BREAK
    2153 case 76:
     2172{ KEYWORD_RETURN(THROW); }                              // CFA
     2173        YY_BREAK
     2174case 82:
    21542175YY_RULE_SETUP
    21552176#line 249 "lex.ll"
    2156 { KEYWORD_RETURN(STATIC); }
    2157         YY_BREAK
    2158 case 77:
     2177{ KEYWORD_RETURN(TRY); }                                // CFA
     2178        YY_BREAK
     2179case 83:
    21592180YY_RULE_SETUP
    21602181#line 250 "lex.ll"
    2161 { KEYWORD_RETURN(STATICASSERT); }               // C11
    2162         YY_BREAK
    2163 case 78:
     2182{ KEYWORD_RETURN(TYPE); }                               // CFA
     2183        YY_BREAK
     2184case 84:
    21642185YY_RULE_SETUP
    21652186#line 251 "lex.ll"
    2166 { KEYWORD_RETURN(STRUCT); }
    2167         YY_BREAK
    2168 case 79:
     2187{ KEYWORD_RETURN(TYPEDEF); }
     2188        YY_BREAK
     2189case 85:
    21692190YY_RULE_SETUP
    21702191#line 252 "lex.ll"
    2171 { KEYWORD_RETURN(SWITCH); }
    2172         YY_BREAK
    2173 case 80:
     2192{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2193        YY_BREAK
     2194case 86:
    21742195YY_RULE_SETUP
    21752196#line 253 "lex.ll"
    2176 { KEYWORD_RETURN(THREADLOCAL); }                // C11
    2177         YY_BREAK
    2178 case 81:
     2197{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2198        YY_BREAK
     2199case 87:
    21792200YY_RULE_SETUP
    21802201#line 254 "lex.ll"
    2181 { KEYWORD_RETURN(THROW); }                              // CFA
    2182         YY_BREAK
    2183 case 82:
     2202{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2203        YY_BREAK
     2204case 88:
    21842205YY_RULE_SETUP
    21852206#line 255 "lex.ll"
    2186 { KEYWORD_RETURN(TRY); }                                // CFA
    2187         YY_BREAK
    2188 case 83:
     2207{ KEYWORD_RETURN(UNION); }
     2208        YY_BREAK
     2209case 89:
    21892210YY_RULE_SETUP
    21902211#line 256 "lex.ll"
    2191 { KEYWORD_RETURN(TYPE); }                               // CFA
    2192         YY_BREAK
    2193 case 84:
     2212{ KEYWORD_RETURN(UNSIGNED); }
     2213        YY_BREAK
     2214case 90:
    21942215YY_RULE_SETUP
    21952216#line 257 "lex.ll"
    2196 { KEYWORD_RETURN(TYPEDEF); }
    2197         YY_BREAK
    2198 case 85:
     2217{ KEYWORD_RETURN(VOID); }
     2218        YY_BREAK
     2219case 91:
    21992220YY_RULE_SETUP
    22002221#line 258 "lex.ll"
    2201 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2202         YY_BREAK
    2203 case 86:
     2222{ KEYWORD_RETURN(VOLATILE); }
     2223        YY_BREAK
     2224case 92:
    22042225YY_RULE_SETUP
    22052226#line 259 "lex.ll"
    2206 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2207         YY_BREAK
    2208 case 87:
     2227{ KEYWORD_RETURN(VOLATILE); }                   // GCC
     2228        YY_BREAK
     2229case 93:
    22092230YY_RULE_SETUP
    22102231#line 260 "lex.ll"
    2211 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2212         YY_BREAK
    2213 case 88:
     2232{ KEYWORD_RETURN(VOLATILE); }                   // GCC
     2233        YY_BREAK
     2234case 94:
    22142235YY_RULE_SETUP
    22152236#line 261 "lex.ll"
    2216 { KEYWORD_RETURN(UNION); }
    2217         YY_BREAK
    2218 case 89:
    2219 YY_RULE_SETUP
    2220 #line 262 "lex.ll"
    2221 { KEYWORD_RETURN(UNSIGNED); }
    2222         YY_BREAK
    2223 case 90:
    2224 YY_RULE_SETUP
    2225 #line 263 "lex.ll"
    2226 { KEYWORD_RETURN(VOID); }
    2227         YY_BREAK
    2228 case 91:
    2229 YY_RULE_SETUP
    2230 #line 264 "lex.ll"
    2231 { KEYWORD_RETURN(VOLATILE); }
    2232         YY_BREAK
    2233 case 92:
    2234 YY_RULE_SETUP
    2235 #line 265 "lex.ll"
    2236 { KEYWORD_RETURN(VOLATILE); }                   // GCC
    2237         YY_BREAK
    2238 case 93:
    2239 YY_RULE_SETUP
    2240 #line 266 "lex.ll"
    2241 { KEYWORD_RETURN(VOLATILE); }                   // GCC
    2242         YY_BREAK
    2243 case 94:
    2244 YY_RULE_SETUP
    2245 #line 267 "lex.ll"
    22462237{ KEYWORD_RETURN(WHILE); }
    22472238        YY_BREAK
     
    22492240case 95:
    22502241YY_RULE_SETUP
    2251 #line 270 "lex.ll"
     2242#line 264 "lex.ll"
    22522243{ IDENTIFIER_RETURN(); }
    22532244        YY_BREAK
    22542245case 96:
    22552246YY_RULE_SETUP
    2256 #line 271 "lex.ll"
     2247#line 265 "lex.ll"
    22572248{ ATTRIBUTE_RETURN(); }
    22582249        YY_BREAK
    22592250case 97:
    22602251YY_RULE_SETUP
    2261 #line 272 "lex.ll"
     2252#line 266 "lex.ll"
    22622253{ BEGIN BKQUOTE; }
    22632254        YY_BREAK
    22642255case 98:
    22652256YY_RULE_SETUP
    2266 #line 273 "lex.ll"
     2257#line 267 "lex.ll"
    22672258{ IDENTIFIER_RETURN(); }
    22682259        YY_BREAK
    22692260case 99:
    22702261YY_RULE_SETUP
    2271 #line 274 "lex.ll"
     2262#line 268 "lex.ll"
    22722263{ BEGIN 0; }
    22732264        YY_BREAK
     
    22752266case 100:
    22762267YY_RULE_SETUP
     2268#line 271 "lex.ll"
     2269{ NUMERIC_RETURN(ZERO); }                               // CFA
     2270        YY_BREAK
     2271case 101:
     2272YY_RULE_SETUP
     2273#line 272 "lex.ll"
     2274{ NUMERIC_RETURN(ONE); }                                // CFA
     2275        YY_BREAK
     2276case 102:
     2277YY_RULE_SETUP
     2278#line 273 "lex.ll"
     2279{ NUMERIC_RETURN(INTEGERconstant); }
     2280        YY_BREAK
     2281case 103:
     2282YY_RULE_SETUP
     2283#line 274 "lex.ll"
     2284{ NUMERIC_RETURN(INTEGERconstant); }
     2285        YY_BREAK
     2286case 104:
     2287YY_RULE_SETUP
     2288#line 275 "lex.ll"
     2289{ NUMERIC_RETURN(INTEGERconstant); }
     2290        YY_BREAK
     2291case 105:
     2292YY_RULE_SETUP
     2293#line 276 "lex.ll"
     2294{ NUMERIC_RETURN(FLOATINGconstant); }
     2295        YY_BREAK
     2296case 106:
     2297YY_RULE_SETUP
    22772298#line 277 "lex.ll"
    2278 { NUMERIC_RETURN(ZERO); }                               // CFA
    2279         YY_BREAK
    2280 case 101:
    2281 YY_RULE_SETUP
    2282 #line 278 "lex.ll"
    2283 { NUMERIC_RETURN(ONE); }                                // CFA
    2284         YY_BREAK
    2285 case 102:
    2286 YY_RULE_SETUP
    2287 #line 279 "lex.ll"
    2288 { NUMERIC_RETURN(INTEGERconstant); }
    2289         YY_BREAK
    2290 case 103:
    2291 YY_RULE_SETUP
    2292 #line 280 "lex.ll"
    2293 { NUMERIC_RETURN(INTEGERconstant); }
    2294         YY_BREAK
    2295 case 104:
    2296 YY_RULE_SETUP
    2297 #line 281 "lex.ll"
    2298 { NUMERIC_RETURN(INTEGERconstant); }
    2299         YY_BREAK
    2300 case 105:
    2301 YY_RULE_SETUP
    2302 #line 282 "lex.ll"
    2303 { NUMERIC_RETURN(FLOATINGconstant); }
    2304         YY_BREAK
    2305 case 106:
    2306 YY_RULE_SETUP
    2307 #line 283 "lex.ll"
    23082299{ NUMERIC_RETURN(FLOATINGconstant); }
    23092300        YY_BREAK
     
    23112302case 107:
    23122303YY_RULE_SETUP
    2313 #line 286 "lex.ll"
     2304#line 280 "lex.ll"
    23142305{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    23152306        YY_BREAK
    23162307case 108:
    23172308YY_RULE_SETUP
    2318 #line 287 "lex.ll"
     2309#line 281 "lex.ll"
    23192310{ *strtext += std::string( yytext ); }
    23202311        YY_BREAK
     
    23222313/* rule 109 can match eol */
    23232314YY_RULE_SETUP
    2324 #line 288 "lex.ll"
     2315#line 282 "lex.ll"
    23252316{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    23262317        YY_BREAK
     
    23292320case 110:
    23302321YY_RULE_SETUP
    2331 #line 292 "lex.ll"
     2322#line 286 "lex.ll"
    23322323{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    23332324        YY_BREAK
    23342325case 111:
    23352326YY_RULE_SETUP
    2336 #line 293 "lex.ll"
     2327#line 287 "lex.ll"
    23372328{ *strtext += std::string( yytext ); }
    23382329        YY_BREAK
     
    23402331/* rule 112 can match eol */
    23412332YY_RULE_SETUP
    2342 #line 294 "lex.ll"
     2333#line 288 "lex.ll"
    23432334{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    23442335        YY_BREAK
     
    23472338case 113:
    23482339YY_RULE_SETUP
    2349 #line 298 "lex.ll"
     2340#line 292 "lex.ll"
    23502341{ rm_underscore(); *strtext += std::string( yytext ); }
    23512342        YY_BREAK
     
    23532344/* rule 114 can match eol */
    23542345YY_RULE_SETUP
    2355 #line 299 "lex.ll"
     2346#line 293 "lex.ll"
    23562347{}                                              // continuation (ALSO HANDLED BY CPP)
    23572348        YY_BREAK
    23582349case 115:
    23592350YY_RULE_SETUP
    2360 #line 300 "lex.ll"
     2351#line 294 "lex.ll"
    23612352{ *strtext += std::string( yytext ); } // unknown escape character
    23622353        YY_BREAK
     
    23642355case 116:
    23652356YY_RULE_SETUP
     2357#line 297 "lex.ll"
     2358{ ASCIIOP_RETURN(); }
     2359        YY_BREAK
     2360case 117:
     2361YY_RULE_SETUP
     2362#line 298 "lex.ll"
     2363{ ASCIIOP_RETURN(); }
     2364        YY_BREAK
     2365case 118:
     2366YY_RULE_SETUP
     2367#line 299 "lex.ll"
     2368{ ASCIIOP_RETURN(); }
     2369        YY_BREAK
     2370case 119:
     2371YY_RULE_SETUP
     2372#line 300 "lex.ll"
     2373{ ASCIIOP_RETURN(); }
     2374        YY_BREAK
     2375case 120:
     2376YY_RULE_SETUP
     2377#line 301 "lex.ll"
     2378{ ASCIIOP_RETURN(); }
     2379        YY_BREAK
     2380case 121:
     2381YY_RULE_SETUP
     2382#line 302 "lex.ll"
     2383{ ASCIIOP_RETURN(); }
     2384        YY_BREAK
     2385case 122:
     2386YY_RULE_SETUP
    23662387#line 303 "lex.ll"
    2367 { ASCIIOP_RETURN(); }
    2368         YY_BREAK
    2369 case 117:
     2388{ ASCIIOP_RETURN(); }                                   // also operator
     2389        YY_BREAK
     2390case 123:
    23702391YY_RULE_SETUP
    23712392#line 304 "lex.ll"
    23722393{ ASCIIOP_RETURN(); }
    23732394        YY_BREAK
    2374 case 118:
     2395case 124:
    23752396YY_RULE_SETUP
    23762397#line 305 "lex.ll"
    23772398{ ASCIIOP_RETURN(); }
    23782399        YY_BREAK
    2379 case 119:
     2400case 125:
    23802401YY_RULE_SETUP
    23812402#line 306 "lex.ll"
    2382 { ASCIIOP_RETURN(); }
    2383         YY_BREAK
    2384 case 120:
     2403{ ASCIIOP_RETURN(); }                                   // also operator
     2404        YY_BREAK
     2405case 126:
    23852406YY_RULE_SETUP
    23862407#line 307 "lex.ll"
    2387 { ASCIIOP_RETURN(); }
    2388         YY_BREAK
    2389 case 121:
    2390 YY_RULE_SETUP
    2391 #line 308 "lex.ll"
    2392 { ASCIIOP_RETURN(); }
    2393         YY_BREAK
    2394 case 122:
    2395 YY_RULE_SETUP
    2396 #line 309 "lex.ll"
    2397 { ASCIIOP_RETURN(); }                                   // also operator
    2398         YY_BREAK
    2399 case 123:
    2400 YY_RULE_SETUP
    2401 #line 310 "lex.ll"
    2402 { ASCIIOP_RETURN(); }
    2403         YY_BREAK
    2404 case 124:
    2405 YY_RULE_SETUP
    2406 #line 311 "lex.ll"
    2407 { ASCIIOP_RETURN(); }
    2408         YY_BREAK
    2409 case 125:
    2410 YY_RULE_SETUP
    2411 #line 312 "lex.ll"
    2412 { ASCIIOP_RETURN(); }                                   // also operator
    2413         YY_BREAK
    2414 case 126:
    2415 YY_RULE_SETUP
    2416 #line 313 "lex.ll"
    24172408{ NAMEDOP_RETURN(ELLIPSIS); }
    24182409        YY_BREAK
     
    24202411case 127:
    24212412YY_RULE_SETUP
    2422 #line 316 "lex.ll"
     2413#line 310 "lex.ll"
    24232414{ RETURN_VAL('['); }
    24242415        YY_BREAK
    24252416case 128:
    24262417YY_RULE_SETUP
    2427 #line 317 "lex.ll"
     2418#line 311 "lex.ll"
    24282419{ RETURN_VAL(']'); }
    24292420        YY_BREAK
    24302421case 129:
    24312422YY_RULE_SETUP
    2432 #line 318 "lex.ll"
     2423#line 312 "lex.ll"
    24332424{ RETURN_VAL('{'); }
    24342425        YY_BREAK
    24352426case 130:
    24362427YY_RULE_SETUP
    2437 #line 319 "lex.ll"
     2428#line 313 "lex.ll"
    24382429{ RETURN_VAL('}'); }
    24392430        YY_BREAK
     
    24412432case 131:
    24422433YY_RULE_SETUP
     2434#line 316 "lex.ll"
     2435{ ASCIIOP_RETURN(); }
     2436        YY_BREAK
     2437case 132:
     2438YY_RULE_SETUP
     2439#line 317 "lex.ll"
     2440{ ASCIIOP_RETURN(); }
     2441        YY_BREAK
     2442case 133:
     2443YY_RULE_SETUP
     2444#line 318 "lex.ll"
     2445{ ASCIIOP_RETURN(); }
     2446        YY_BREAK
     2447case 134:
     2448YY_RULE_SETUP
     2449#line 319 "lex.ll"
     2450{ ASCIIOP_RETURN(); }
     2451        YY_BREAK
     2452case 135:
     2453YY_RULE_SETUP
     2454#line 320 "lex.ll"
     2455{ ASCIIOP_RETURN(); }
     2456        YY_BREAK
     2457case 136:
     2458YY_RULE_SETUP
     2459#line 321 "lex.ll"
     2460{ ASCIIOP_RETURN(); }
     2461        YY_BREAK
     2462case 137:
     2463YY_RULE_SETUP
    24432464#line 322 "lex.ll"
    24442465{ ASCIIOP_RETURN(); }
    24452466        YY_BREAK
    2446 case 132:
     2467case 138:
    24472468YY_RULE_SETUP
    24482469#line 323 "lex.ll"
    24492470{ ASCIIOP_RETURN(); }
    24502471        YY_BREAK
    2451 case 133:
     2472case 139:
    24522473YY_RULE_SETUP
    24532474#line 324 "lex.ll"
    24542475{ ASCIIOP_RETURN(); }
    24552476        YY_BREAK
    2456 case 134:
     2477case 140:
    24572478YY_RULE_SETUP
    24582479#line 325 "lex.ll"
    24592480{ ASCIIOP_RETURN(); }
    24602481        YY_BREAK
    2461 case 135:
     2482case 141:
    24622483YY_RULE_SETUP
    24632484#line 326 "lex.ll"
    24642485{ ASCIIOP_RETURN(); }
    24652486        YY_BREAK
    2466 case 136:
     2487case 142:
    24672488YY_RULE_SETUP
    24682489#line 327 "lex.ll"
    24692490{ ASCIIOP_RETURN(); }
    24702491        YY_BREAK
    2471 case 137:
     2492case 143:
    24722493YY_RULE_SETUP
    24732494#line 328 "lex.ll"
    24742495{ ASCIIOP_RETURN(); }
    24752496        YY_BREAK
    2476 case 138:
     2497case 144:
    24772498YY_RULE_SETUP
    24782499#line 329 "lex.ll"
    24792500{ ASCIIOP_RETURN(); }
    24802501        YY_BREAK
    2481 case 139:
    2482 YY_RULE_SETUP
    2483 #line 330 "lex.ll"
    2484 { ASCIIOP_RETURN(); }
    2485         YY_BREAK
    2486 case 140:
     2502case 145:
    24872503YY_RULE_SETUP
    24882504#line 331 "lex.ll"
    2489 { ASCIIOP_RETURN(); }
    2490         YY_BREAK
    2491 case 141:
     2505{ NAMEDOP_RETURN(ICR); }
     2506        YY_BREAK
     2507case 146:
    24922508YY_RULE_SETUP
    24932509#line 332 "lex.ll"
    2494 { ASCIIOP_RETURN(); }
    2495         YY_BREAK
    2496 case 142:
     2510{ NAMEDOP_RETURN(DECR); }
     2511        YY_BREAK
     2512case 147:
    24972513YY_RULE_SETUP
    24982514#line 333 "lex.ll"
    2499 { ASCIIOP_RETURN(); }
    2500         YY_BREAK
    2501 case 143:
     2515{ NAMEDOP_RETURN(EQ); }
     2516        YY_BREAK
     2517case 148:
    25022518YY_RULE_SETUP
    25032519#line 334 "lex.ll"
    2504 { ASCIIOP_RETURN(); }
    2505         YY_BREAK
    2506 case 144:
     2520{ NAMEDOP_RETURN(NE); }
     2521        YY_BREAK
     2522case 149:
    25072523YY_RULE_SETUP
    25082524#line 335 "lex.ll"
    2509 { ASCIIOP_RETURN(); }
    2510         YY_BREAK
    2511 case 145:
     2525{ NAMEDOP_RETURN(LS); }
     2526        YY_BREAK
     2527case 150:
     2528YY_RULE_SETUP
     2529#line 336 "lex.ll"
     2530{ NAMEDOP_RETURN(RS); }
     2531        YY_BREAK
     2532case 151:
    25122533YY_RULE_SETUP
    25132534#line 337 "lex.ll"
    2514 { NAMEDOP_RETURN(ICR); }
    2515         YY_BREAK
    2516 case 146:
     2535{ NAMEDOP_RETURN(LE); }
     2536        YY_BREAK
     2537case 152:
    25172538YY_RULE_SETUP
    25182539#line 338 "lex.ll"
    2519 { NAMEDOP_RETURN(DECR); }
    2520         YY_BREAK
    2521 case 147:
     2540{ NAMEDOP_RETURN(GE); }
     2541        YY_BREAK
     2542case 153:
    25222543YY_RULE_SETUP
    25232544#line 339 "lex.ll"
    2524 { NAMEDOP_RETURN(EQ); }
    2525         YY_BREAK
    2526 case 148:
     2545{ NAMEDOP_RETURN(ANDAND); }
     2546        YY_BREAK
     2547case 154:
    25272548YY_RULE_SETUP
    25282549#line 340 "lex.ll"
    2529 { NAMEDOP_RETURN(NE); }
    2530         YY_BREAK
    2531 case 149:
     2550{ NAMEDOP_RETURN(OROR); }
     2551        YY_BREAK
     2552case 155:
    25322553YY_RULE_SETUP
    25332554#line 341 "lex.ll"
    2534 { NAMEDOP_RETURN(LS); }
    2535         YY_BREAK
    2536 case 150:
     2555{ NAMEDOP_RETURN(ARROW); }
     2556        YY_BREAK
     2557case 156:
    25372558YY_RULE_SETUP
    25382559#line 342 "lex.ll"
    2539 { NAMEDOP_RETURN(RS); }
    2540         YY_BREAK
    2541 case 151:
     2560{ NAMEDOP_RETURN(PLUSassign); }
     2561        YY_BREAK
     2562case 157:
    25422563YY_RULE_SETUP
    25432564#line 343 "lex.ll"
    2544 { NAMEDOP_RETURN(LE); }
    2545         YY_BREAK
    2546 case 152:
     2565{ NAMEDOP_RETURN(MINUSassign); }
     2566        YY_BREAK
     2567case 158:
    25472568YY_RULE_SETUP
    25482569#line 344 "lex.ll"
    2549 { NAMEDOP_RETURN(GE); }
    2550         YY_BREAK
    2551 case 153:
     2570{ NAMEDOP_RETURN(MULTassign); }
     2571        YY_BREAK
     2572case 159:
    25522573YY_RULE_SETUP
    25532574#line 345 "lex.ll"
    2554 { NAMEDOP_RETURN(ANDAND); }
    2555         YY_BREAK
    2556 case 154:
     2575{ NAMEDOP_RETURN(DIVassign); }
     2576        YY_BREAK
     2577case 160:
    25572578YY_RULE_SETUP
    25582579#line 346 "lex.ll"
    2559 { NAMEDOP_RETURN(OROR); }
    2560         YY_BREAK
    2561 case 155:
     2580{ NAMEDOP_RETURN(MODassign); }
     2581        YY_BREAK
     2582case 161:
    25622583YY_RULE_SETUP
    25632584#line 347 "lex.ll"
    2564 { NAMEDOP_RETURN(ARROW); }
    2565         YY_BREAK
    2566 case 156:
     2585{ NAMEDOP_RETURN(ANDassign); }
     2586        YY_BREAK
     2587case 162:
    25672588YY_RULE_SETUP
    25682589#line 348 "lex.ll"
    2569 { NAMEDOP_RETURN(PLUSassign); }
    2570         YY_BREAK
    2571 case 157:
     2590{ NAMEDOP_RETURN(ORassign); }
     2591        YY_BREAK
     2592case 163:
    25722593YY_RULE_SETUP
    25732594#line 349 "lex.ll"
    2574 { NAMEDOP_RETURN(MINUSassign); }
    2575         YY_BREAK
    2576 case 158:
     2595{ NAMEDOP_RETURN(ERassign); }
     2596        YY_BREAK
     2597case 164:
    25772598YY_RULE_SETUP
    25782599#line 350 "lex.ll"
    2579 { NAMEDOP_RETURN(MULTassign); }
    2580         YY_BREAK
    2581 case 159:
     2600{ NAMEDOP_RETURN(LSassign); }
     2601        YY_BREAK
     2602case 165:
    25822603YY_RULE_SETUP
    25832604#line 351 "lex.ll"
    2584 { NAMEDOP_RETURN(DIVassign); }
    2585         YY_BREAK
    2586 case 160:
    2587 YY_RULE_SETUP
    2588 #line 352 "lex.ll"
    2589 { NAMEDOP_RETURN(MODassign); }
    2590         YY_BREAK
    2591 case 161:
    2592 YY_RULE_SETUP
    2593 #line 353 "lex.ll"
    2594 { NAMEDOP_RETURN(ANDassign); }
    2595         YY_BREAK
    2596 case 162:
    2597 YY_RULE_SETUP
    2598 #line 354 "lex.ll"
    2599 { NAMEDOP_RETURN(ORassign); }
    2600         YY_BREAK
    2601 case 163:
    2602 YY_RULE_SETUP
    2603 #line 355 "lex.ll"
    2604 { NAMEDOP_RETURN(ERassign); }
    2605         YY_BREAK
    2606 case 164:
    2607 YY_RULE_SETUP
    2608 #line 356 "lex.ll"
    2609 { NAMEDOP_RETURN(LSassign); }
    2610         YY_BREAK
    2611 case 165:
    2612 YY_RULE_SETUP
    2613 #line 357 "lex.ll"
    26142605{ NAMEDOP_RETURN(RSassign); }
    26152606        YY_BREAK
     
    26172608case 166:
    26182609YY_RULE_SETUP
    2619 #line 360 "lex.ll"
     2610#line 354 "lex.ll"
    26202611{ IDENTIFIER_RETURN(); }                                // unary
    26212612        YY_BREAK
    26222613case 167:
    26232614YY_RULE_SETUP
    2624 #line 361 "lex.ll"
     2615#line 355 "lex.ll"
    26252616{ IDENTIFIER_RETURN(); }
    26262617        YY_BREAK
    26272618case 168:
    26282619YY_RULE_SETUP
    2629 #line 362 "lex.ll"
     2620#line 356 "lex.ll"
    26302621{ IDENTIFIER_RETURN(); }                // binary
    26312622        YY_BREAK
     
    26582649case 169:
    26592650YY_RULE_SETUP
    2660 #line 389 "lex.ll"
     2651#line 383 "lex.ll"
    26612652{
    26622653        // 1 or 2 character unary operator ?
     
    26732664case 170:
    26742665YY_RULE_SETUP
    2675 #line 401 "lex.ll"
     2666#line 395 "lex.ll"
    26762667{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    26772668        YY_BREAK
    26782669case 171:
    26792670YY_RULE_SETUP
    2680 #line 403 "lex.ll"
     2671#line 397 "lex.ll"
    26812672ECHO;
    26822673        YY_BREAK
    2683 #line 2684 "Parser/lex.cc"
     2674#line 2675 "Parser/lex.cc"
    26842675case YY_STATE_EOF(INITIAL):
    26852676case YY_STATE_EOF(COMMENT):
     
    30133004
    30143005        return yy_is_jam ? 0 : yy_current_state;
    3015 }
    3016 
    3017     static void yyunput (int c, register char * yy_bp )
    3018 {
    3019         register char *yy_cp;
    3020    
    3021     yy_cp = (yy_c_buf_p);
    3022 
    3023         /* undo effects of setting up yytext */
    3024         *yy_cp = (yy_hold_char);
    3025 
    3026         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
    3027                 { /* need to shift things up to make room */
    3028                 /* +2 for EOB chars. */
    3029                 register int number_to_move = (yy_n_chars) + 2;
    3030                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
    3031                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
    3032                 register char *source =
    3033                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
    3034 
    3035                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
    3036                         *--dest = *--source;
    3037 
    3038                 yy_cp += (int) (dest - source);
    3039                 yy_bp += (int) (dest - source);
    3040                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
    3041                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
    3042 
    3043                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
    3044                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
    3045                 }
    3046 
    3047         *--yy_cp = (char) c;
    3048 
    3049     if ( c == '\n' ){
    3050         --yylineno;
    3051     }
    3052 
    3053         (yytext_ptr) = yy_bp;
    3054         (yy_hold_char) = *yy_cp;
    3055         (yy_c_buf_p) = yy_cp;
    30563006}
    30573007
     
    36973647#define YYTABLES_NAME "yytables"
    36983648
    3699 #line 403 "lex.ll"
     3649#line 397 "lex.ll"
    37003650
    37013651
  • src/Parser/lex.h

    rcd623a4 r5f2f2d7  
    1010// Created On       : Sat Sep 22 08:58:10 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun  6 07:44:39 2015
    13 // Update Count     : 338
     12// Last Modified On : Mon Jun  8 20:28:48 2015
     13// Update Count     : 341
    1414//
    1515
     
    1818
    1919int yylex();
    20 void yyerror(char *);
     20void yyerror( const char * );
    2121
    2222// External declarations for information sharing between lexer and scanner
     
    3535class Token {
    3636  public:
    37     std::string *str;
     37    std::string *str;                                                                   // must be pointer as used in union
    3838    Location loc;
    3939
     
    4444
    4545// Local Variables: //
    46 // fill-column: 110 //
    4746// tab-width: 4 //
    4847// mode: c++ //
  • src/Parser/lex.ll

    rcd623a4 r5f2f2d7  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Sun Jun  7 07:14:16 2015
    13  * Update Count     : 374
     12 * Last Modified On : Mon Jun  8 20:24:15 2015
     13 * Update Count     : 381
    1414 */
    1515
    1616%option yylineno
     17%option nounput
    1718
    1819%{
     
    3233std::string *strtext;                                                                   // accumulate parts of character and string constant value
    3334
     35#define RETURN_LOCN(x)          yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return(x)
     36#define RETURN_VAL(x)           yylval.tok.str = new std::string( yytext ); RETURN_LOCN(x)
     37#define RETURN_CHAR(x)          yylval.tok.str = NULL; RETURN_LOCN(x)
     38#define RETURN_STR(x)           yylval.tok.str = strtext; RETURN_LOCN(x)
     39
    3440#define WHITE_RETURN(x)                                                                 // do nothing
    3541#define NEWLINE_RETURN()        WHITE_RETURN('\n')
    36 #define RETURN_VAL(x)           yylval.tok.str = new std::string( yytext ); \
    37                                         yylval.tok.loc.file = yyfilename; \
    38                                         yylval.tok.loc.line = yylineno; \
    39                                         return(x)
    40 #define RETURN_STR(x)           yylval.tok.str = strtext; \
    41                                         yylval.tok.loc.file = yyfilename; \
    42                                         yylval.tok.loc.line = yylineno; \
    43                                         return(x)
    44 
    45 #define KEYWORD_RETURN(x)       RETURN_VAL(x)                           // keyword
     42#define ASCIIOP_RETURN()        RETURN_CHAR((int)yytext[0])     // single character operator
     43#define NAMEDOP_RETURN(x)       RETURN_VAL(x)                           // multichar operator, with a name
     44#define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL(x) // numeric constant
     45#define KEYWORD_RETURN(x)       RETURN_CHAR(x)                          // keyword
    4646#define IDENTIFIER_RETURN()     RETURN_VAL((typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname))
    47 //#define ATTRIBUTE_RETURN()    RETURN_VAL((typedefTable.isIdentifier(yytext) ? ATTR_IDENTIFIER : typedefTable.isTypedef(yytext) ? ATTR_TYPEDEFname : ATTR_TYPEGENname))
    4847#define ATTRIBUTE_RETURN()      RETURN_VAL(ATTR_IDENTIFIER)
    49 
    50 #define ASCIIOP_RETURN()        RETURN_VAL((int)yytext[0])      // single character operator
    51 #define NAMEDOP_RETURN(x)       RETURN_VAL(x)                           // multichar operator, with a name
    52 
    53 #define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL(x) // numeric constant
    5448
    5549void rm_underscore() {
  • src/Parser/module.mk

    rcd623a4 r5f2f2d7  
    1111## Created On       : Sat May 16 15:29:09 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Thu Jun  4 09:39:00 2015
    14 ## Update Count     : 86
     13## Last Modified On : Mon Jun  8 20:23:47 2015
     14## Update Count     : 87
    1515###############################################################################
    1616
  • src/Parser/parser.cc

    rcd623a4 r5f2f2d7  
    92669266// ----end of grammar----
    92679267
    9268 void yyerror( char *string ) {
    9269         using std::cout;
    9270         using std::endl;
    9271         cout << "Error ";
     9268void yyerror( const char * ) {
     9269        std::cout << "Error ";
    92729270        if ( yyfilename ) {
    9273                 cout << "in file " << yyfilename << " ";
    9274         }
    9275         cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << endl;
     9271            std::cout << "in file " << yyfilename << " ";
     9272        } // if
     9273        std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
    92769274}
    92779275
    92789276// Local Variables: //
    9279 // fill-column: 110 //
    92809277// tab-width: 4 //
    92819278// mode: c++ //
  • src/Parser/parser.yy

    rcd623a4 r5f2f2d7  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun  6 20:18:36 2015
    13 // Update Count     : 1026
     12// Last Modified On : Mon Jun  8 20:31:07 2015
     13// Update Count     : 1030
    1414//
    1515
     
    27172717// ----end of grammar----
    27182718
    2719 void yyerror( char *string ) {
    2720         using std::cout;
    2721         using std::endl;
    2722         cout << "Error ";
     2719void yyerror( const char * ) {
     2720        std::cout << "Error ";
    27232721        if ( yyfilename ) {
    2724                 cout << "in file " << yyfilename << " ";
    2725         }
    2726         cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << endl;
     2722            std::cout << "in file " << yyfilename << " ";
     2723        } // if
     2724        std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
    27272725}
    27282726
    27292727// Local Variables: //
    2730 // fill-column: 110 //
    27312728// tab-width: 4 //
    27322729// mode: c++ //
  • src/ResolvExpr/AlternativeFinder.cc

    rcd623a4 r5f2f2d7  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sat May 16 23:52:08 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Thu May 21 16:21:09 2015
    13 // Update Count     : 12
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jun  8 14:53:58 2015
     13// Update Count     : 14
    1414//
    1515
     
    209209                pruneAlternatives( alternatives.begin(), alternatives.end(), front_inserter( alternatives ), indexer );
    210210                if ( alternatives.begin() == oldBegin ) {
    211                         std::ostrstream stream;
     211                        std::ostringstream stream;
    212212                        stream << "Can't choose between alternatives for expression ";
    213213                        expr->print( stream );
     
    216216                        findMinCost( alternatives.begin(), alternatives.end(), back_inserter( winners ) );
    217217                        printAlts( winners, stream, 8 );
    218                         throw SemanticError( std::string( stream.str(), stream.pcount() ) );
     218                        throw SemanticError( stream.str() );
    219219                }
    220220                alternatives.erase( oldBegin, alternatives.end() );
  • src/ResolvExpr/RenameVars.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Sun May 17 12:05:18 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun May 17 12:07:59 2015
    13 // Update Count     : 2
     12// Last Modified On : Mon Jun  8 14:51:35 2015
     13// Update Count     : 4
    1414//
    1515
    16 #include <strstream>
     16#include <sstream>
    1717
    1818#include "RenameVars.h"
     
    120120                        mapStack.push_front( mapStack.front() );
    121121                        for ( std::list< TypeDecl* >::iterator i = type->get_forall().begin(); i != type->get_forall().end(); ++i ) {
    122                                 std::ostrstream output;
     122                                std::ostringstream output;
    123123                                output << "_" << level << "_" << (*i)->get_name();
    124                                 std::string newname( output.str(), output.pcount() );
     124                                std::string newname( output.str() );
    125125                                mapStack.front()[ (*i)->get_name() ] = newname;
    126126                                (*i)->set_name( newname );
  • src/ResolvExpr/Resolver.cc

    rcd623a4 r5f2f2d7  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 12:17:01 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Mon Jun 01 13:47:16 2015
    13 // Update Count     : 21
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sun Jun  7 21:50:37 2015
     13// Update Count     : 23
    1414//
    1515
  • src/SymTab/Mangler.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Sun May 17 21:40:29 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:50:47 2015
    13 // Update Count     : 3
     12// Last Modified On : Mon Jun  8 15:12:12 2015
     13// Update Count     : 8
    1414//
    1515
     
    160160                } else {
    161161                        printQualifiers( typeInst );
    162                         std::ostrstream numStream;
     162                        std::ostringstream numStream;
    163163                        numStream << varNum->second.first;
    164                         mangleName << (numStream.pcount() + 1);
    165164                        switch ( (TypeDecl::Kind )varNum->second.second ) {
    166165                          case TypeDecl::Any:
     
    174173                                break;
    175174                        } // switch
    176                         mangleName << std::string( numStream.str(), numStream.pcount() );
     175                        mangleName << numStream.str();
    177176                } // if
    178177        }
     
    220219                                        sub_mangler.varNums = varNums;
    221220                                        (*assert)->accept( sub_mangler );
    222                                         assertionNames.push_back( std::string( sub_mangler.mangleName.str(), sub_mangler.mangleName.pcount() ) );
     221                                        assertionNames.push_back( sub_mangler.mangleName.str() );
    223222                                } // for
    224223                        } // for
  • src/SymTab/Mangler.h

    rcd623a4 r5f2f2d7  
    1010// Created On       : Sun May 17 21:44:03 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:49:21 2015
    13 // Update Count     : 3
     12// Last Modified On : Mon Jun  8 14:47:14 2015
     13// Update Count     : 5
    1414//
    1515
     
    1717#define MANGLER_H
    1818
    19 #include <strstream>
     19#include <sstream>
    2020#include "SynTree/SynTree.h"
    2121#include "SynTree/Visitor.h"
     
    4343                virtual void visit( TupleType *tupleType );
    4444 
    45                 std::string get_mangleName() { return std::string( mangleName.str(), mangleName.pcount() ); }
     45                std::string get_mangleName() { return mangleName.str(); }
    4646          private:
    47                 std::ostrstream mangleName;
     47                std::ostringstream mangleName;
    4848                typedef std::map< std::string, std::pair< int, int > > VarMapType;
    4949                VarMapType varNums;
  • src/SymTab/Validate.cc

    rcd623a4 r5f2f2d7  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 21:50:04 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Mon May 25 14:27:15 2015
    13 // Update Count     : 21
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jun  8 17:19:35 2015
     13// Update Count     : 22
    1414//
    1515
     
    651651
    652652        void addDecls( std::list< Declaration * > &declsToAdd, std::list< Statement * > &statements, std::list< Statement * >::iterator i ) {
    653                 if ( ! declsToAdd.empty() ) {
    654                         for ( std::list< Declaration * >::iterator decl = declsToAdd.begin(); decl != declsToAdd.end(); ++decl ) {
    655                                 statements.insert( i, new DeclStmt( noLabels, *decl ) );
    656                         } // for
    657                         declsToAdd.clear();
    658                 } // if
     653                for ( std::list< Declaration * >::iterator decl = declsToAdd.begin(); decl != declsToAdd.end(); ++decl ) {
     654                        statements.insert( i, new DeclStmt( noLabels, *decl ) );
     655                } // for
     656                declsToAdd.clear();
    659657        }
    660658
  • src/SynTree/BasicType.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun  6 11:52:43 2015
    13 // Update Count     : 2
     12// Last Modified On : Sun Jun  7 08:44:36 2015
     13// Update Count     : 5
    1414//
    1515
  • src/SynTree/Constant.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun  6 12:17:22 2015
    13 // Update Count     : 2
     12// Last Modified On : Sun Jun  7 08:45:30 2015
     13// Update Count     : 5
    1414//
    1515
     
    2929        os << value;
    3030        if ( type ) {
    31                 os << " (type: ";
     31                os << " ";
    3232                type->print( os );
    33                 os << ")";
    3433        } // if
    3534}
  • src/SynTree/DeclStmt.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:16:03 2015
    13 // Update Count     : 2
     12// Last Modified On : Mon Jun  8 17:24:38 2015
     13// Update Count     : 3
    1414//
    1515
     
    2929
    3030void DeclStmt::print( std::ostream &os, int indent ) {
     31        assert( decl != 0 );
    3132        os << "Declaration of ";
    32         if ( decl ) {
    33                 decl->print( os, indent );
    34         } // if
     33        decl->print( os, indent );
    3534}
    3635
  • src/SynTree/Declaration.h

    rcd623a4 r5f2f2d7  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Mon May 25 14:08:10 2015
    13 // Update Count     : 6
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sun Jun  7 22:03:43 2015
     13// Update Count     : 7
    1414//
    1515
     
    3838        virtual ~Declaration();
    3939
    40         std::string get_name() const { return name; }
     40        const std::string &get_name() const { return name; }
    4141        void set_name( std::string newValue ) { name = newValue; }
    4242        StorageClass get_storageClass() const { return storageClass; }
  • src/SynTree/Expression.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun  6 23:43:22 2015
    13 // Update Count     : 15
     12// Last Modified On : Sun Jun  7 08:40:46 2015
     13// Update Count     : 16
    1414//
    1515
     
    7272
    7373void ConstantExpr::print( std::ostream &os, int indent ) const {
    74         os << "constant expression: " ;
     74        os << "constant expression " ;
    7575        constant.print( os );
    7676        Expression::print( os, indent );
  • src/SynTree/Expression.h

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:46:15 2015
    13 // Update Count     : 3
     12// Last Modified On : Sun Jun  7 22:03:44 2015
     13// Update Count     : 4
    1414//
    1515
     
    125125        virtual ~NameExpr();
    126126
    127         std::string get_name() const { return name; }
     127        const std::string &get_name() const { return name; }
    128128        void set_name( std::string newValue ) { name = newValue; }
    129129
  • src/SynTree/FunctionDecl.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu May 21 21:31:16 2015
    13 // Update Count     : 11
     12// Last Modified On : Sun Jun  7 08:36:44 2015
     13// Update Count     : 12
    1414//
    1515
     
    5252       
    5353        if ( get_name() != "" ) {
    54                 os << get_name() << ": a ";
     54                os << get_name() << ": ";
    5555        } // if
    5656        if ( get_linkage() != LinkageSpec::Cforall ) {
     
    9191       
    9292        if ( get_name() != "" ) {
    93                 os << get_name() << ": a ";
     93                os << get_name() << ": ";
    9494        } // if
    9595        if ( isInline ) {
  • src/SynTree/NamedTypeDecl.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 10:13:19 2015
    13 // Update Count     : 1
     12// Last Modified On : Sun Jun  7 08:36:09 2015
     13// Update Count     : 2
    1414//
    1515
     
    3737       
    3838        if ( get_name() != "" ) {
    39                 os << get_name() << ": a ";
     39                os << get_name() << ": ";
    4040        } // if
    4141        if ( get_storageClass() != NoStorageClass ) {
     
    6161       
    6262        if ( get_name() != "" ) {
    63                 os << get_name() << ": a ";
     63                os << get_name() << ": ";
    6464        } // if
    6565        if ( get_storageClass() != NoStorageClass ) {
  • src/SynTree/ReferenceToType.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:52:40 2015
    13 // Update Count     : 3
     12// Last Modified On : Sun Jun  7 08:31:48 2015
     13// Update Count     : 4
    1414//
    1515
     
    101101       
    102102        Type::print( os, indent );
    103         os << "instance of " << typeString() << " " << get_name() << " (" << ( isFtype ? "" : "not" ) << " a function type) ";
     103        os << "instance of " << typeString() << " " << get_name() << " (" << ( isFtype ? "" : "not" ) << " function type) ";
    104104        if ( ! parameters.empty() ) {
    105105                os << endl << std::string( indent, ' ' ) << "with parameters" << endl;
  • src/SynTree/Type.h

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun  6 14:12:14 2015
    13 // Update Count     : 2
     12// Last Modified On : Sun Jun  7 21:50:38 2015
     13// Update Count     : 12
    1414//
    1515
     
    214214        virtual ~ReferenceToType();
    215215
    216         std::string get_name() const { return name; }
     216        const std::string &get_name() const { return name; }
    217217        void set_name( std::string newValue ) { name = newValue; }
    218218        std::list< Expression* >& get_parameters() { return parameters; }
     
    372372        virtual ~AttrType();
    373373
    374         std::string get_name() const { return name; }
     374        const std::string &get_name() const { return name; }
    375375        void set_name( const std::string &newValue ) { name = newValue; }
    376376        Expression *get_expr() const { return expr; }
  • src/Tests/ResolvExpr/Abstype.c

    rcd623a4 r5f2f2d7  
    1 // "cfa-cpp -nx Abstype.c"
    2 
    31type T | { T x( T ); };
    42
     
    97
    108forall( type T ) lvalue T *?( T * );
    11 int ?++( int *);
     9int ?++( int * );
    1210int ?=?( int *, int );
    1311forall( dtype DT ) DT * ?=?( DT **, DT * );
  • src/Tests/ResolvExpr/make-rules

    rcd623a4 r5f2f2d7  
    11CFA = ../../cfa-cpp
    22
    3 DIFF = /software/gnu/bin/diff
     3EXPECTED := ${wildcard ${EXPECTDIR}/*.tst}
     4TESTS := ${EXPECTED:${EXPECTDIR}/%=${OUTPUTDIR}/%}
     5TEST_IN := ${TESTS:.tst=.c}
    46
    5 # Basic SynTree printing
    6 EXPECTED := ${wildcard $(EXPECTDIR)/*.tst}
    7 TESTS := $(EXPECTED:$(EXPECTDIR)/%=$(OUTPUTDIR)/%)
    8 TEST_IN := $(TESTS:.tst=.c)
     7.SILENT :
    98
    10 $(OUTPUTDIR)/%.tst:%.c $(CFA)
    11         -$(CFA) $(CFAOPT) < $< > $@ 2>&1
     9${OUTPUTDIR}/%.tst : %.c ${CFA}
     10        -${CFA} ${CFAOPT} < $< > $@ 2>&1
    1211
    13 $(OUTPUTDIR)/report: $(TESTS) $(EXPECTED)
     12${OUTPUTDIR}/report : ${TESTS} ${EXPECTED}
    1413        rm -f $@
    15         @for i in $(TESTS); do \
    16           echo "---"`basename $$i`"---" | tee -a $@; \
    17           $(DIFF) -B -w -u $(EXPECTDIR)/`basename $$i` $$i | tee -a $@; \
     14        @for i in ${TESTS}; do \
     15             echo "---"`basename $$i`"---" | tee -a $@; \
     16             diff -B -w ${EXPECTDIR}/`basename $$i` $$i | tee -a $@; \
    1817        done
    1918
    20 clean:
    21         rm -rf $(OUTPUTDIR)
     19clean :
     20        rm -rf ${OUTPUTDIR}
  • src/Tests/ResolvExpr/run-tests.sh

    • Property mode changed from 100644 to 100755
  • src/Tests/SynTree/Expected-SymTab/Array.tst

    rcd623a4 r5f2f2d7  
    55Adding object m2
    66Adding object m4
    7 Adding typedef T
    8 --- Entering scope
    9 --- Leaving scope containing
    107Adding function fred
    118--- Entering scope
     
    1613Adding object T
    1714--- Leaving scope containing
    18 T (__T__A0i) (2)
    19 a1 (__a1__A0i) (2)
    20 a2 (__a2__A0i) (2)
    21 a4 (__a4__A0i) (2)
    2215--- Leaving scope containing
    2316Adding function mary
     
    3023--- Leaving scope containing
    3124--- Leaving scope containing
    32 T (__T__Pi) (1)
    33 p1 (__p1__CPi) (1)
    34 p2 (__p2__Pi) (1)
    35 p3 (__p3__CPi) (1)
    3625Adding function tom
    3726--- Entering scope
     
    4837--- Leaving scope containing
    4938--- Leaving scope containing
    50 T (__T__Pi) (1)
    51 p1 (__p1__CPi) (1)
    52 p2 (__p2__Pi) (1)
    53 p3 (__p3__CPi) (1)
  • src/Tests/SynTree/Expected-SymTab/Context.tst

    rcd623a4 r5f2f2d7  
    1 Adding context has_q
    21--- Entering scope
    3 Adding type T
    42--- Entering scope
    53--- Leaving scope containing
     4Adding type T
    65Adding function q
    76--- Entering scope
    87--- Leaving scope containing
    98--- Leaving scope containing
    10 q (__q__F_2tT_2tT_) (1)
    119T
     10Adding context has_q
    1211Adding function f
    1312--- Entering scope
    14 Adding type z
    1513--- Entering scope
    1614--- Leaving scope containing
    17 Adding function q
     15Adding type z
     16Adding function ?=?
    1817--- Entering scope
    1918--- Leaving scope containing
    2019--- Entering scope
    21 Adding context has_r
    2220--- Entering scope
     21--- Entering scope
     22--- Leaving scope containing
    2323Adding type T
    2424--- Entering scope
    2525--- Leaving scope containing
    2626Adding type U
    27 --- Entering scope
    28 --- Leaving scope containing
    2927Adding function r
    3028--- Entering scope
    3129--- Leaving scope containing
    3230--- Leaving scope containing
    33 r (__r__F_2tT_2tTPF_2tT_2tT2tU__) (3)
    3431T
    3532U
     33Adding context has_r
     34--- Entering scope
     35--- Leaving scope containing
    3636Adding type x
    3737--- Entering scope
    3838--- Leaving scope containing
    3939Adding type y
    40 --- Entering scope
    4140--- Leaving scope containing
    42 Adding function r
    43 --- Entering scope
    44 --- Leaving scope containing
    45 --- Leaving scope containing
    46 r (__r__F_2tx_2txPF_2tx_2tx2ty__) (2)
    4741x
    4842y
    4943has_r
    5044--- Leaving scope containing
    51 q (__q__F_2tz_2tz_) (1)
    5245z
  • src/Tests/SynTree/Expected-SymTab/Enum.tst

    rcd623a4 r5f2f2d7  
    1717Adding object fruit
    1818--- Leaving scope containing
    19 Apple (__Apple__C7eFruits) (2)
    20 Banana (__Banana__C7eFruits) (2)
    21 Mango (__Mango__C7eFruits) (2)
    22 Pear (__Pear__C7eFruits) (2)
    23 fruit (__fruit__7eFruits) (2)
    2419Fruits
    2520--- Leaving scope containing
  • src/Tests/SynTree/Expected-SymTab/Forall.tst

    rcd623a4 r5f2f2d7  
    1 in default case, (shouldn't be here)
    2 in default case, (shouldn't be here)
    3 Adding typedef f
     1Adding function swap
    42--- Entering scope
    5 Adding type T
    63--- Entering scope
    74--- Leaving scope containing
    8 --- Leaving scope containing
    9 T
    10 Adding function swap
    11 --- Entering scope
    125Adding type T
     6Adding function ?=?
    137--- Entering scope
    148--- Leaving scope containing
     
    1812Adding object temp
    1913--- Leaving scope containing
    20 temp (__temp__2tT) (2)
    2114--- Leaving scope containing
    22 left (__left__2tT) (1)
    23 right (__right__2tT) (1)
    2415T
    25 Adding context sumable
    2616--- Entering scope
    27 Adding type T
    2817--- Entering scope
    2918--- Leaving scope containing
     19Adding type T
    3020Adding object 0
    3121Adding function ?+?
     
    3929--- Leaving scope containing
    4030--- Leaving scope containing
    41 0 (__0__C2tT) (1)
    42 ?++ (__?++__F_2tT_2tT_) (1)
    43 ?+=? (__?+=?__F_2tT_2tT2tT_) (1)
    44 ?+? (__?+?__F_2tT_2tT2tT_) (1)
    4531T
    46 Adding type T1
     32Adding context sumable
    4733--- Entering scope
    4834--- Leaving scope containing
     35Adding type T1
    4936Adding object 0
    5037Adding function ?+?
     
    5744--- Entering scope
    5845--- Leaving scope containing
     46--- Entering scope
     47--- Entering scope
     48--- Leaving scope containing
     49Adding type P1
     50--- Entering scope
     51--- Leaving scope containing
     52Adding type P2
     53--- Leaving scope containing
     54P1
     55P2
    5956Adding type T2
    6057--- Entering scope
     58--- Leaving scope containing
     59Adding type T3
     60Adding fwd decl for struct __anonymous0
     61--- Entering scope
     62Adding object i
     63Adding object j
     64--- Leaving scope containing
     65Adding struct __anonymous0
     66--- Entering scope
     67--- Entering scope
     68--- Leaving scope containing
    6169Adding type P1
    6270--- Entering scope
     
    6876P1
    6977P2
    70 Adding type T3
     78Adding type T2
     79Adding object w1
     80Adding object g2
    7181--- Entering scope
    7282--- Leaving scope containing
    73 Adding object 0
    74 Adding function ?+?
    75 --- Entering scope
    76 --- Leaving scope containing
    77 Adding function ?++
    78 --- Entering scope
    79 --- Leaving scope containing
    80 Adding function ?+=?
    81 --- Entering scope
    82 --- Leaving scope containing
    83 Adding struct __anonymous0
    84 --- Entering scope
    85 Adding object i
    86 Adding object j
    87 --- Leaving scope containing
    88 i (__i__3tP1) (1)
    89 j (__j__3tP2) (1)
    90 Adding type T2
    91 --- Entering scope
    92 Adding type P1
    93 --- Entering scope
    94 --- Leaving scope containing
    95 Adding type P2
    96 --- Entering scope
    97 --- Leaving scope containing
    98 --- Leaving scope containing
    99 P1
    100 P2
    101 Adding object 0
    102 Adding function ?+?
    103 --- Entering scope
    104 --- Leaving scope containing
    105 Adding function ?++
    106 --- Entering scope
    107 --- Leaving scope containing
    108 Adding function ?+=?
    109 --- Entering scope
    110 --- Leaving scope containing
    111 Adding object w1
    112 Adding typedef w2
    113 --- Entering scope
    114 --- Leaving scope containing
    115 Adding object g2
    11683Adding type w3
    117 --- Entering scope
    118 --- Leaving scope containing
    11984Adding object g3
    12085Adding function sum
    12186--- Entering scope
    122 Adding type T
    12387--- Entering scope
    12488--- Leaving scope containing
    125 Adding object 0
    126 Adding function ?+?
    127 --- Entering scope
    128 --- Leaving scope containing
    129 Adding function ?++
    130 --- Entering scope
    131 --- Leaving scope containing
    132 Adding function ?+=?
     89Adding type T
     90Adding function ?=?
    13391--- Entering scope
    13492--- Leaving scope containing
     
    13896Adding object total
    13997Adding object i
     98--- Entering scope
    14099--- Leaving scope containing
    141 i (__i__i) (2)
    142 total (__total__2tT) (2)
    143100--- Leaving scope containing
    144 0 (__0__2tT) (1)
    145 ?++ (__?++__F_2tT_2tT_) (1)
    146 ?+=? (__?+=?__F_2tT_2tT2tT_) (1)
    147 ?+? (__?+?__F_2tT_2tT2tT_) (1)
    148 a (__a__P2tT) (1)
    149 n (__n__i) (1)
     101--- Leaving scope containing
    150102T
    151103Adding function twice
    152104--- Entering scope
     105--- Entering scope
     106--- Leaving scope containing
    153107Adding type T
     108Adding function ?=?
    154109--- Entering scope
    155110--- Leaving scope containing
     
    168123--- Leaving scope containing
    169124--- Leaving scope containing
    170 0 (__0__C2tT) (1)
    171 ?++ (__?++__F_2tT_2tT_) (1)
    172 ?+=? (__?+=?__F_2tT_2tT2tT_) (1)
    173 ?+? (__?+?__F_2tT_2tT2tT_) (1)
    174 t (__t__2tT) (1)
    175125T
    176126Adding function main
     
    182132Adding object f
    183133--- Leaving scope containing
    184 a (__a__A0i) (2)
    185 f (__f__f) (2)
    186 x (__x__i) (2)
    187 y (__y__i) (2)
    188134--- Leaving scope containing
  • src/Tests/SynTree/Expected-SymTab/Scope.tst

    rcd623a4 r5f2f2d7  
    1 in default case, (shouldn't be here)
    2 in default case, (shouldn't be here)
    3 in default case, (shouldn't be here)
    41Adding object x
    5 Adding typedef y
    6 --- Entering scope
    7 --- Leaving scope containing
    8 Adding typedef t
    9 --- Entering scope
    10 --- Leaving scope containing
    112Adding object z
    12 Adding struct __anonymous0
     3Adding fwd decl for struct __anonymous0
    134--- Entering scope
    145Adding object a
    156Adding object b
    167--- Leaving scope containing
    17 a (__a__i) (1)
    18 b (__b__d) (1)
    19 Adding type u
     8Adding struct __anonymous0
     9--- Entering scope
    2010--- Entering scope
    2111--- Leaving scope containing
     12--- Leaving scope containing
     13Adding type u
    2214Adding function f
    2315--- Entering scope
    2416Adding object y
    2517--- Leaving scope containing
    26 y (__y__i) (1)
    2718Adding object q
    2819Adding function w
     
    3122Adding object v
    3223--- Entering scope
    33 Adding type x
    3424--- Entering scope
    3525--- Leaving scope containing
     26Adding type x
    3627Adding function t
    3728--- Entering scope
     
    4031Adding object z
    4132--- Leaving scope containing
    42 t (__t__F_2tx_2tu_) (2)
    43 u (__u__2tu) (2)
    44 z (__z__2tx) (2)
    4533x
    4634--- Leaving scope containing
    47 v (__v__2tu) (1)
    48 y (__y__2ty) (1)
    4935Adding object p
    50 Adding context has_u
    5136--- Entering scope
    52 Adding type z
    5337--- Entering scope
    5438--- Leaving scope containing
     39Adding type z
    5540Adding function u
    5641--- Entering scope
    5742--- Leaving scope containing
    5843--- Leaving scope containing
    59 u (__u__F_2tz_2tz_) (1)
    6044z
     45Adding context has_u
    6146Adding function q
    6247--- Entering scope
    63 Adding type t
    6448--- Entering scope
    6549--- Leaving scope containing
    66 Adding function u
     50Adding type t
     51Adding function ?=?
    6752--- Entering scope
    6853--- Leaving scope containing
     
    7156Adding object y
    7257--- Leaving scope containing
    73 y (__y__2tt) (2)
    7458--- Leaving scope containing
    75 the_t (__the_t__2tt) (1)
    76 u (__u__F_2tt_2tt_) (1)
    7759t
    7860Adding function f
     
    8163--- Entering scope
    8264Adding object y
    83 Adding typedef x
     65--- Entering scope
     66Adding object y
     67--- Entering scope
     68Adding object x
     69Adding object z
     70--- Leaving scope containing
     71Adding object x
     72--- Leaving scope containing
     73Adding object q
     74--- Leaving scope containing
     75--- Leaving scope containing
     76Adding function g
     77--- Entering scope
     78--- Entering scope
    8479--- Entering scope
    8580--- Leaving scope containing
     81Adding object x
    8682--- Entering scope
    8783Adding object y
    88 Adding typedef z
    89 --- Entering scope
    90 --- Leaving scope containing
    91 --- Entering scope
    92 Adding object x
    93 Adding typedef y
    94 --- Entering scope
    9584--- Leaving scope containing
    9685Adding object z
    9786--- Leaving scope containing
    98 x (__x__2tz) (4)
    99 z (__z__2ty) (4)
    100 y
    101 Adding object x
    102 --- Leaving scope containing
    103 x (__x__2tz) (3)
    104 y (__y__2tx) (3)
    105 z
    106 Adding object q
    107 --- Leaving scope containing
    108 q (__q__2tx) (2)
    109 y (__y__i) (2)
    110 x
    111 --- Leaving scope containing
    112 p (__p__2ty) (1)
    113 Adding function g
    114 --- Entering scope
    115 --- Entering scope
    116 Adding typedef x
    117 --- Entering scope
    118 --- Leaving scope containing
    119 Adding object z
    120 --- Leaving scope containing
    121 z (__z__2tx) (2)
    122 x
    12387--- Leaving scope containing
    12488Adding function q
     
    12892--- Leaving scope containing
    12993--- Leaving scope containing
    130 i (__i__i) (1)
  • src/Tests/SynTree/Expected-SymTab/ScopeErrors.tst

    rcd623a4 r5f2f2d7  
    88Adding object thisIsNotAnError
    99--- Leaving scope containing
    10 thisIsNotAnError (__thisIsNotAnError__i) (2)
    1110--- Leaving scope containing
    1211Adding function thisIsAlsoNotAnError
     
    1615--- Leaving scope containing
    1716--- Leaving scope containing
    18 x (__x__d) (1)
    1917Adding function thisIsStillNotAnError
    2018--- Entering scope
     
    2927--- Leaving scope containing
    3028Adding function butThisIsAnError
    31 Error: duplicate definition for thisIsAnError: a signed int
    32 Error: duplicate function definition for butThisIsAnError: a function
     29Error: duplicate function definition for butThisIsAnError: function
    3330  with parameters
    3431    double
     
    3633    double
    3734  with body
     35    CompoundStmt
    3836
  • src/Tests/SynTree/Expected-SymTab/Tuple.tst

    rcd623a4 r5f2f2d7  
    1212Adding object d
    1313--- Leaving scope containing
    14 a (__a__i) (1)
    15 b (__b__i) (1)
    16 c (__c__Pi) (1)
    17 d (__d__Pc) (1)
    18 Adding struct inner
     14Adding fwd decl for struct inner
    1915--- Entering scope
    2016Adding object f2
    2117Adding object f3
    2218--- Leaving scope containing
    23 f2 (__f2__i) (1)
    24 f3 (__f3__i) (1)
    25 Adding struct outer
     19Adding struct inner
     20Adding fwd decl for struct outer
    2621--- Entering scope
    2722Adding object f1
     23--- Entering scope
     24--- Leaving scope containing
    2825Adding object i
    2926Adding object f4
    3027--- Leaving scope containing
    31 f1 (__f1__i) (1)
    32 f4 (__f4__d) (1)
    33 i (__i__6sinner) (1)
     28Adding struct outer
     29--- Entering scope
     30--- Leaving scope containing
    3431Adding object s
     32--- Entering scope
     33--- Leaving scope containing
    3534Adding object sp
    3635Adding object t1
     
    4241Adding object fmt
    4342--- Leaving scope containing
    44 fmt (__fmt__Pc) (1)
    45 rc (__rc__i) (1)
    4643Adding function printf
    4744--- Entering scope
    4845Adding object fmt
    4946--- Leaving scope containing
    50 fmt (__fmt__Pc) (1)
    5147Adding function f1
    5248--- Entering scope
     
    5753--- Leaving scope containing
    5854--- Leaving scope containing
    59 w (__w__i) (1)
    60 x (__x__s) (1)
    61 y (__y__Ui) (1)
    6255Adding function g1
    6356--- Entering scope
     
    6962Adding object z
    7063--- Leaving scope containing
    71 p (__p__s) (2)
    72 x (__x__s) (2)
    73 y (__y__Ui) (2)
    74 z (__z__Tii_) (2)
    7564--- Leaving scope containing
    76 r (__r__Ticli_) (1)
    7765Adding function main
    7866--- Entering scope
     
    8573Adding object c
    8674Adding object d
     75--- Entering scope
     76--- Leaving scope containing
    8777Adding object t
    8878--- Leaving scope containing
    89 a (__a__i) (2)
    90 b (__b__i) (2)
    91 c (__c__i) (2)
    92 d (__d__i) (2)
    93 t (__t__6souter) (2)
    9479--- Leaving scope containing
    95 argc (__argc__i) (1)
    96 argv (__argv__PPc) (1)
    97 rc (__rc__i) (1)
  • src/Tests/SynTree/Expected/Array.tst

    rcd623a4 r5f2f2d7  
    1 a1: a open array of signed int
    2 a2: a variable length array of signed int
    3 a4: a array of   Constant Expression: 3signed int
    4 m1: a open array of array of   Constant Expression: 3signed int
    5 m2: a variable length array of variable length array of signed int
    6 m4: a array of   Constant Expression: 3array of   Constant Expression: 3signed int
    7 T: a typedef for signed int
    8 fred: a function
     1a1: open array of signed int
     2a2: variable length array of signed int
     3a4: array of double with dimension of constant expression 3.0 double
     4m1: open array of array of signed int with dimension of constant expression 3 signed int
     5m2: variable length array of variable length array of signed int
     6m4: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     7T: typedef for signed int
     8fred: function
     9      accepting unspecified arguments
    910    returning
    1011      signed int
    1112    with body
    12       Declaration of a1: a open array of signed int
    13       Declaration of a2: a variable length array of signed int
    14       Declaration of a4: a array of         Constant Expression: 3signed int
    15       Declaration of T: a array of         Constant Expression: 3signed int
     13      CompoundStmt
     14        Declaration of a1: open array of signed int
     15        Declaration of a2: variable length array of signed int
     16        Declaration of a4: array of signed int with dimension of constant expression 3 signed int
     17        Declaration of T: array of signed int with dimension of constant expression 3 signed int
    1618
    17 mary: a function
     19mary: function
    1820    with parameters
    19       T: a array of         Constant Expression: 3signed int
    20       p1: a const array of         Constant Expression: 3signed int
    21       p2: a static array of         Constant Expression: 3signed int
    22       p3: a const static array of         Constant Expression: 3signed int
     21      T: array of signed int with dimension of constant expression 3 signed int
     22      p1: const array of signed int with dimension of constant expression 3 signed int
     23      p2: static array of signed int with dimension of constant expression 3 signed int
     24      p3: const static array of signed int with dimension of constant expression 3 signed int
    2325    returning
    2426      signed int
    2527    with body
     28      CompoundStmt
    2629
    27       Null Statement
     30tom: function
     31      accepting unspecified arguments
     32    returning
     33      pointer to array of signed int with dimension of constant expression 3 signed int
     34    with body
     35      CompoundStmt
    2836
    29 tom: a function
    30     returning
    31       pointer to array of         Constant Expression: 3signed int
    32     with body
    33 
    34       Null Statement
    35 
    36 jane: a function
     37jane: function
     38      accepting unspecified arguments
    3739    returning
    3840      pointer to function
    3941          with parameters
    40             T: a array of               Constant Expression: 3signed int
    41             p1: a const array of               Constant Expression: 3signed int
    42             p2: a static array of               Constant Expression: 3signed int
    43             p3: a const static array of               Constant Expression: 3signed int
     42            T: array of signed int with dimension of constant expression 3 signed int
     43            p1: const array of signed int with dimension of constant expression 3 signed int
     44            p2: static array of signed int with dimension of constant expression 3 signed int
     45            p3: const static array of signed int with dimension of constant expression 3 signed int
    4446          returning
    4547            signed int
    4648
    4749    with body
     50      CompoundStmt
    4851
    49       Null Statement
    50 
  • src/Tests/SynTree/Expected/Constant0-1.tst

    rcd623a4 r5f2f2d7  
    1 0: a signed int
    2 0: a const signed int
    3 0: a static const signed int
    4 1: a signed int
    5 1: a const signed int
    6 1: a static const signed int
    7 0: a signed int
    8 1: a signed int
    9 0: a const signed int
    10 1: a const signed int
    11 0: a static const signed int
    12 1: a static const signed int
     10: signed int
     20: const signed int
     30: static const signed int
     41: signed int
     51: const signed int
     61: static const signed int
     70: signed int
     81: signed int
     90: const signed int
     101: const signed int
     110: static const signed int
     121: static const signed int
    1313struct __anonymous0
    1414    with members
    15       i: a signed int
     15      i: signed int
    1616
    17 0: a instance of struct __anonymous0
     170: instance of struct __anonymous0
    1818struct __anonymous1
    1919    with members
    20       i: a signed int
     20      i: signed int
    2121
    22 1: a const instance of struct __anonymous1
     221: const instance of struct __anonymous1
    2323struct __anonymous2
    2424    with members
    25       i: a signed int
     25      i: signed int
    2626
    27 1: a static const instance of struct __anonymous2
    28 1: a signed int
    29 0: a pointer to signed int
    30 1: a signed int
    31 1: a signed int
    32 0: a pointer to signed int
    33 0: a pointer to signed int
    34 0: a pointer to signed int
    35 0: a const pointer to signed int
    36 0: a const pointer to signed int
    37 0: a const pointer to signed int
     271: static const instance of struct __anonymous2
     281: signed int
     290: pointer to signed int
     301: signed int
     311: signed int
     320: pointer to signed int
     330: pointer to signed int
     340: pointer to signed int
     350: const pointer to signed int
     360: const pointer to signed int
     370: const pointer to signed int
    3838struct __anonymous3
    3939    with members
    40       i: a signed int
     40      i: signed int
    4141
    42 0: a pointer to instance of struct __anonymous3
    43 x: a pointer to signed int
    44 0: a pointer to signed int
    45 x: a const pointer to signed int
    46 0: a const pointer to signed int
    47 x: a static const pointer to signed int
    48 0: a static const pointer to signed int
     420: pointer to instance of struct __anonymous3
     43x: pointer to signed int
     440: pointer to signed int
     45x: const pointer to signed int
     460: const pointer to signed int
     47x: static const pointer to signed int
     480: static const pointer to signed int
    4949struct __anonymous4
    5050    with members
    51       i: a signed int
     51      i: signed int
    5252
    53 0: a pointer to instance of struct __anonymous4
     530: pointer to instance of struct __anonymous4
    5454struct __anonymous5
    5555    with members
    56       i: a signed int
     56      i: signed int
    5757
    58 0: a const pointer to instance of struct __anonymous5
     580: const pointer to instance of struct __anonymous5
    5959struct __anonymous6
    6060    with members
    61       i: a signed int
     61      i: signed int
    6262
    63 0: a static const pointer to instance of struct __anonymous6
    64 x: a static pointer to signed int
    65 0: a static pointer to signed int
    66 x: a static const pointer to signed int
    67 0: a static const pointer to signed int
    68 x: a const pointer to pointer to signed int
    69 0: a const pointer to pointer to signed int
     630: static const pointer to instance of struct __anonymous6
     64x: static pointer to signed int
     650: static pointer to signed int
     66x: static const pointer to signed int
     670: static const pointer to signed int
     68x: const pointer to pointer to signed int
     690: const pointer to pointer to signed int
  • src/Tests/SynTree/Expected/Context.tst

    rcd623a4 r5f2f2d7  
    11context has_q
    22    with parameters
    3       T: a type
     3      T: type
    44
    55    with members
    6       q: a function
     6      q: function
    77          with parameters
    8             instance of type T
     8            instance of type T (not function type)
    99          returning
    10             instance of type T
     10            instance of type T (not function type)
    1111
    1212
    13 f: a function
    14     with forall
    15       z: a type
     13f: forall
     14      z: type
    1615        with assertions
     16          ?=?: function
     17              with parameters
     18                pointer to instance of type z (not function type)
     19                instance of type z (not function type)
     20              returning
     21                instance of type z (not function type)
     22
    1723          instance of context has_q
    1824            with parameters
    19               instance of type z
     25              instance of type z (not function type)
    2026
    2127
     28    function
     29      accepting unspecified arguments
    2230    returning
    2331      void
    2432    with body
    25       Declaration of context has_r
    26           with parameters
    27             T: a type
    28             U: a type
     33      CompoundStmt
     34        Declaration of context has_r
     35            with parameters
     36              T: type
     37              U: type
    2938
    30           with members
    31             r: a function
    32                 with parameters
    33                   instance of type T
    34                   function
    35                       with parameters
    36                         instance of type T
    37                         instance of type U
    38                       returning
    39                         instance of type T
     39            with members
     40              r: function
     41                  with parameters
     42                    instance of type T (not function type)
     43                    function
     44                        with parameters
     45                          instance of type T (not function type)
     46                          instance of type U (not function type)
     47                        returning
     48                          instance of type T (not function type)
    4049
    41                 returning
    42                   instance of type T
     50                  returning
     51                    instance of type T (not function type)
    4352
    4453
    45       Declaration of x: a extern type
    46       Declaration of y: a extern type
    47         with assertions
    48           instance of context has_r
    49             with parameters
    50               instance of type x
    51               instance of type y
     54        Declaration of x: auto type
     55        Declaration of y: auto type
     56          with assertions
     57            instance of context has_r
     58              with parameters
     59                instance of type x (not function type)
     60                instance of type y (not function type)
    5261
    5362
  • src/Tests/SynTree/Expected/DeclarationSpecifier.tst

    rcd623a4 r5f2f2d7  
    1 Int: a typedef for short signed int
    2 x1: a const volatile short signed int
    3 x2: a static const volatile short signed int
    4 x3: a static const volatile short signed int
    5 x4: a static const volatile short signed int
    6 x4: a static const volatile short signed int
    7 x5: a static const volatile short signed int
    8 x6: a static const volatile short signed int
    9 x7: a static const volatile short signed int
    10 x8: a static const volatile short signed int
     1Int: typedef for short signed int
     2x1: const volatile short signed int
     3x2: static const volatile short signed int
     4x3: static const volatile short signed int
     5x4: static const volatile short signed int
     6x4: static const volatile short signed int
     7x5: static const volatile short signed int
     8x6: static const volatile short signed int
     9x7: static const volatile short signed int
     10x8: static const volatile short signed int
    1111struct __anonymous0
    1212    with members
    13       i: a signed int
    14 
    15 x10: a const volatile instance of struct __anonymous0
     13      i: signed int
     14
     15x10: const volatile instance of struct __anonymous0
    1616struct __anonymous1
    1717    with members
    18       i: a signed int
    19 
    20 x11: a const volatile instance of struct __anonymous1
     18      i: signed int
     19
     20x11: const volatile instance of struct __anonymous1
    2121struct __anonymous2
    2222    with members
    23       i: a signed int
    24 
    25 x12: a const volatile instance of struct __anonymous2
     23      i: signed int
     24
     25x12: const volatile instance of struct __anonymous2
    2626struct __anonymous3
    2727    with members
    28       i: a signed int
    29 
    30 x13: a static const volatile instance of struct __anonymous3
     28      i: signed int
     29
     30x13: static const volatile instance of struct __anonymous3
    3131struct __anonymous4
    3232    with members
    33       i: a signed int
    34 
    35 x14: a static const volatile instance of struct __anonymous4
     33      i: signed int
     34
     35x14: static const volatile instance of struct __anonymous4
    3636struct __anonymous5
    3737    with members
    38       i: a signed int
    39 
    40 x15: a static const volatile instance of struct __anonymous5
     38      i: signed int
     39
     40x15: static const volatile instance of struct __anonymous5
    4141struct __anonymous6
    4242    with members
    43       i: a signed int
    44 
    45 x16: a static const volatile instance of struct __anonymous6
     43      i: signed int
     44
     45x16: static const volatile instance of struct __anonymous6
    4646struct __anonymous7
    4747    with members
    48       i: a signed int
    49 
    50 x17: a static const volatile instance of struct __anonymous7
    51 x20: a const volatile instance of type Int
    52 x21: a static const volatile instance of type Int
    53 x22: a static const volatile instance of type Int
    54 x23: a static const volatile instance of type Int
    55 x24: a static const volatile instance of type Int
    56 x25: a static const volatile instance of type Int
    57 x26: a static const volatile instance of type Int
    58 x27: a static const volatile instance of type Int
     48      i: signed int
     49
     50x17: static const volatile instance of struct __anonymous7
     51x20: const volatile instance of type Int (not function type)
     52x21: static const volatile instance of type Int (not function type)
     53x22: static const volatile instance of type Int (not function type)
     54x23: static const volatile instance of type Int (not function type)
     55x24: static const volatile instance of type Int (not function type)
     56x25: static const volatile instance of type Int (not function type)
     57x26: static const volatile instance of type Int (not function type)
     58x27: static const volatile instance of type Int (not function type)
    5959struct __anonymous8
    6060    with members
    61       i: a instance of type Int
    62 
    63 x29: a const volatile instance of struct __anonymous8
     61      i: instance of type Int (not function type)
     62
     63x29: const volatile instance of struct __anonymous8
    6464struct __anonymous9
    6565    with members
    66       i: a instance of type Int
    67 
    68 x30: a const volatile instance of struct __anonymous9
     66      i: instance of type Int (not function type)
     67
     68x30: const volatile instance of struct __anonymous9
    6969struct __anonymous10
    7070    with members
    71       i: a instance of type Int
    72 
    73 x31: a const volatile instance of struct __anonymous10
     71      i: instance of type Int (not function type)
     72
     73x31: const volatile instance of struct __anonymous10
    7474struct __anonymous11
    7575    with members
    76       i: a instance of type Int
    77 
    78 x32: a static const volatile instance of struct __anonymous11
     76      i: instance of type Int (not function type)
     77
     78x32: static const volatile instance of struct __anonymous11
    7979struct __anonymous12
    8080    with members
    81       i: a instance of type Int
    82 
    83 x33: a static const volatile instance of struct __anonymous12
     81      i: instance of type Int (not function type)
     82
     83x33: static const volatile instance of struct __anonymous12
    8484struct __anonymous13
    8585    with members
    86       i: a instance of type Int
    87 
    88 x34: a static const volatile instance of struct __anonymous13
     86      i: instance of type Int (not function type)
     87
     88x34: static const volatile instance of struct __anonymous13
    8989struct __anonymous14
    9090    with members
    91       i: a instance of type Int
    92 
    93 x35: a static const volatile instance of struct __anonymous14
     91      i: instance of type Int (not function type)
     92
     93x35: static const volatile instance of struct __anonymous14
    9494struct __anonymous15
    9595    with members
    96       i: a instance of type Int
    97 
    98 x36: a static const volatile instance of struct __anonymous15
    99 f01: a inline static function
    100     returning
    101       const volatile signed int
    102 
    103 f02: a inline static function
    104     returning
    105       const volatile signed int
    106 
    107 f03: a inline static function
    108     returning
    109       const volatile signed int
    110 
    111 f04: a inline static function
    112     returning
    113       const volatile signed int
    114 
    115 f05: a inline static function
    116     returning
    117       const volatile signed int
    118 
    119 f06: a inline static function
    120     returning
    121       const volatile signed int
    122 
    123 f07: a inline static function
    124     returning
    125       const volatile signed int
    126 
    127 f08: a inline static function
    128     returning
    129       const volatile signed int
    130 
    131 f11: a inline static function
    132     returning
    133       const volatile signed int
    134 
    135 f12: a inline static function
    136     returning
    137       const volatile signed int
    138 
    139 f13: a inline static function
    140     returning
    141       const volatile signed int
    142 
    143 f14: a inline static function
    144     returning
    145       const volatile signed int
    146 
    147 f15: a inline static function
    148     returning
    149       const volatile signed int
    150 
    151 f16: a inline static function
    152     returning
    153       const volatile signed int
    154 
    155 f17: a inline static function
    156     returning
    157       const volatile signed int
    158 
    159 f18: a inline static function
    160     returning
    161       const volatile signed int
    162 
    163 f21: a inline static function
    164     returning
    165       const volatile short signed int
    166 
    167 f22: a inline static function
    168     returning
    169       const volatile short signed int
    170 
    171 f23: a inline static function
    172     returning
    173       const volatile short signed int
    174 
    175 f24: a inline static function
    176     returning
    177       const volatile short signed int
    178 
    179 f25: a inline static function
    180     returning
    181       const volatile short signed int
    182 
    183 f26: a inline static function
    184     returning
    185       const volatile short signed int
    186 
    187 f27: a inline static function
    188     returning
    189       const volatile short signed int
    190 
    191 f28: a inline static function
     96      i: instance of type Int (not function type)
     97
     98x36: static const volatile instance of struct __anonymous15
     99f01: inline static function
     100      accepting unspecified arguments
     101    returning
     102      const volatile signed int
     103
     104f02: inline static function
     105      accepting unspecified arguments
     106    returning
     107      const volatile signed int
     108
     109f03: inline static function
     110      accepting unspecified arguments
     111    returning
     112      const volatile signed int
     113
     114f04: inline static function
     115      accepting unspecified arguments
     116    returning
     117      const volatile signed int
     118
     119f05: inline static function
     120      accepting unspecified arguments
     121    returning
     122      const volatile signed int
     123
     124f06: inline static function
     125      accepting unspecified arguments
     126    returning
     127      const volatile signed int
     128
     129f07: inline static function
     130      accepting unspecified arguments
     131    returning
     132      const volatile signed int
     133
     134f08: inline static function
     135      accepting unspecified arguments
     136    returning
     137      const volatile signed int
     138
     139f11: inline static function
     140      accepting unspecified arguments
     141    returning
     142      const volatile signed int
     143
     144f12: inline static function
     145      accepting unspecified arguments
     146    returning
     147      const volatile signed int
     148
     149f13: inline static function
     150      accepting unspecified arguments
     151    returning
     152      const volatile signed int
     153
     154f14: inline static function
     155      accepting unspecified arguments
     156    returning
     157      const volatile signed int
     158
     159f15: inline static function
     160      accepting unspecified arguments
     161    returning
     162      const volatile signed int
     163
     164f16: inline static function
     165      accepting unspecified arguments
     166    returning
     167      const volatile signed int
     168
     169f17: inline static function
     170      accepting unspecified arguments
     171    returning
     172      const volatile signed int
     173
     174f18: inline static function
     175      accepting unspecified arguments
     176    returning
     177      const volatile signed int
     178
     179f21: inline static function
     180      accepting unspecified arguments
     181    returning
     182      const volatile short signed int
     183
     184f22: inline static function
     185      accepting unspecified arguments
     186    returning
     187      const volatile short signed int
     188
     189f23: inline static function
     190      accepting unspecified arguments
     191    returning
     192      const volatile short signed int
     193
     194f24: inline static function
     195      accepting unspecified arguments
     196    returning
     197      const volatile short signed int
     198
     199f25: inline static function
     200      accepting unspecified arguments
     201    returning
     202      const volatile short signed int
     203
     204f26: inline static function
     205      accepting unspecified arguments
     206    returning
     207      const volatile short signed int
     208
     209f27: inline static function
     210      accepting unspecified arguments
     211    returning
     212      const volatile short signed int
     213
     214f28: inline static function
     215      accepting unspecified arguments
    192216    returning
    193217      const volatile short signed int
     
    195219struct __anonymous16
    196220    with members
    197       i: a signed int
    198 
    199 f31: a inline static function
     221      i: signed int
     222
     223f31: inline static function
     224      accepting unspecified arguments
    200225    returning
    201226      const volatile instance of struct __anonymous16
     
    203228struct __anonymous17
    204229    with members
    205       i: a signed int
    206 
    207 f32: a inline static function
     230      i: signed int
     231
     232f32: inline static function
     233      accepting unspecified arguments
    208234    returning
    209235      const volatile instance of struct __anonymous17
     
    211237struct __anonymous18
    212238    with members
    213       i: a signed int
    214 
    215 f33: a inline static function
     239      i: signed int
     240
     241f33: inline static function
     242      accepting unspecified arguments
    216243    returning
    217244      const volatile instance of struct __anonymous18
     
    219246struct __anonymous19
    220247    with members
    221       i: a signed int
    222 
    223 f34: a inline static function
     248      i: signed int
     249
     250f34: inline static function
     251      accepting unspecified arguments
    224252    returning
    225253      const volatile instance of struct __anonymous19
     
    227255struct __anonymous20
    228256    with members
    229       i: a signed int
    230 
    231 f35: a inline static function
     257      i: signed int
     258
     259f35: inline static function
     260      accepting unspecified arguments
    232261    returning
    233262      const volatile instance of struct __anonymous20
     
    235264struct __anonymous21
    236265    with members
    237       i: a signed int
    238 
    239 f36: a inline static function
     266      i: signed int
     267
     268f36: inline static function
     269      accepting unspecified arguments
    240270    returning
    241271      const volatile instance of struct __anonymous21
     
    243273struct __anonymous22
    244274    with members
    245       i: a signed int
    246 
    247 f37: a inline static function
     275      i: signed int
     276
     277f37: inline static function
     278      accepting unspecified arguments
    248279    returning
    249280      const volatile instance of struct __anonymous22
     
    251282struct __anonymous23
    252283    with members
    253       i: a signed int
    254 
    255 f38: a inline static function
     284      i: signed int
     285
     286f38: inline static function
     287      accepting unspecified arguments
    256288    returning
    257289      const volatile instance of struct __anonymous23
    258290
    259 f41: a inline static function
    260     returning
    261       const volatile instance of type Int
    262 
    263 f42: a inline static function
    264     returning
    265       const volatile instance of type Int
    266 
    267 f43: a inline static function
    268     returning
    269       const volatile instance of type Int
    270 
    271 f44: a inline static function
    272     returning
    273       const volatile instance of type Int
    274 
    275 f45: a inline static function
    276     returning
    277       const volatile instance of type Int
    278 
    279 f46: a inline static function
    280     returning
    281       const volatile instance of type Int
    282 
    283 f47: a inline static function
    284     returning
    285       const volatile instance of type Int
    286 
    287 f48: a inline static function
    288     returning
    289       const volatile instance of type Int
    290 
     291f41: inline static function
     292      accepting unspecified arguments
     293    returning
     294      const volatile instance of type Int (not function type)
     295
     296f42: inline static function
     297      accepting unspecified arguments
     298    returning
     299      const volatile instance of type Int (not function type)
     300
     301f43: inline static function
     302      accepting unspecified arguments
     303    returning
     304      const volatile instance of type Int (not function type)
     305
     306f44: inline static function
     307      accepting unspecified arguments
     308    returning
     309      const volatile instance of type Int (not function type)
     310
     311f45: inline static function
     312      accepting unspecified arguments
     313    returning
     314      const volatile instance of type Int (not function type)
     315
     316f46: inline static function
     317      accepting unspecified arguments
     318    returning
     319      const volatile instance of type Int (not function type)
     320
     321f47: inline static function
     322      accepting unspecified arguments
     323    returning
     324      const volatile instance of type Int (not function type)
     325
     326f48: inline static function
     327      accepting unspecified arguments
     328    returning
     329      const volatile instance of type Int (not function type)
     330
  • src/Tests/SynTree/Expected/Enum.tst

    rcd623a4 r5f2f2d7  
    11enum Colors
    22    with members
    3       Red: a untyped entity
    4       Yellow: a untyped entity
    5       Pink: a untyped entity
    6       Blue: a untyped entity
    7       Purple: a untyped entity
    8       Orange: a untyped entity
    9       Green: a untyped entity
     3      Red: untyped entity
     4      Yellow: untyped entity
     5      Pink: untyped entity
     6      Blue: untyped entity
     7      Purple: untyped entity
     8      Orange: untyped entity
     9      Green: untyped entity
    1010
    11 f: a function
     11f: function
    1212    with parameters
    1313      void
     
    1515      void
    1616    with body
    17       Declaration of enum Fruits
    18           with members
    19             Apple: a untyped entity
    20             Banana: a untyped entity
    21             Pear: a untyped entity
    22             Mango: a untyped entity
     17      CompoundStmt
     18        Declaration of enum Fruits
     19            with members
     20              Apple: untyped entity
     21              Banana: untyped entity
     22              Pear: untyped entity
     23              Mango: untyped entity
    2324
    24       Declaration of fruit: a instance of enum Fruits
     25        Declaration of fruit: instance of enum Fruits with initializer
     26          Simple Initializer:             Name: Mango
    2527
     28
  • src/Tests/SynTree/Expected/Forall.tst

    rcd623a4 r5f2f2d7  
    1 in default case, (shouldn't be here)
    2 in default case, (shouldn't be here)
    3 f: a typedef for pointer to function
     1f: typedef for pointer to forall
     2      T: type
     3        with assertions
     4          ?=?: function
     5              with parameters
     6                pointer to instance of type T (not function type)
     7                instance of type T (not function type)
     8              returning
     9                instance of type T (not function type)
     10
     11
     12    function
    413    with parameters
    514      signed int
    6     with forall
    7       T: a type
    815    returning
    916      signed int
    1017
    11 swap: a function
    12     with parameters
    13       left: a instance of type T
    14       right: a instance of type T
    15     with forall
    16       T: a type
     18swap: forall
     19      T: type
     20        with assertions
     21          ?=?: function
     22              with parameters
     23                pointer to instance of type T (not function type)
     24                instance of type T (not function type)
     25              returning
     26                instance of type T (not function type)
     27
     28
     29    function
     30    with parameters
     31      left: instance of type T (not function type)
     32      right: instance of type T (not function type)
    1733    returning
    1834      void
    1935    with body
    20       Declaration of temp: a instance of type T
    21      
    22         Expression Statement:
    23           Applying untyped:
    24               Name: ?=?
    25  to:
    26               Name: left
    27               Name: right
    28 
    29      
    30         Expression Statement:
    31           Applying untyped:
    32               Name: ?=?
    33  to:
    34               Name: right
    35               Name: temp
     36      CompoundStmt
     37        Declaration of temp: instance of type T (not function type) with initializer
     38          Simple Initializer:             Name: left
     39
     40                  Expression Statement:
     41            Applying untyped:
     42                Name: ?=?
     43            ...to:
     44                Address of:
     45                  Name: left
     46                Name: right
     47
     48                  Expression Statement:
     49            Applying untyped:
     50                Name: ?=?
     51            ...to:
     52                Address of:
     53                  Name: right
     54                Name: temp
    3655
    3756
    3857context sumable
    3958    with parameters
    40       T: a type
     59      T: type
    4160
    4261    with members
    43       0: a const instance of type T
    44       ?+?: a function
     62      0: const instance of type T (not function type)
     63      ?+?: function
    4564          with parameters
    46             instance of type T
    47             instance of type T
     65            instance of type T (not function type)
     66            instance of type T (not function type)
    4867          returning
    49             instance of type T
    50 
    51       ?++: a function
     68            instance of type T (not function type)
     69
     70      ?++: function
    5271          with parameters
    53             instance of type T
     72            instance of type T (not function type)
    5473          returning
    55             instance of type T
    56 
    57       ?+=?: a function
     74            instance of type T (not function type)
     75
     76      ?+=?: function
    5877          with parameters
    59             instance of type T
    60             instance of type T
     78            instance of type T (not function type)
     79            instance of type T (not function type)
    6180          returning
    62             instance of type T
    63 
    64 
    65 T1: a type
     81            instance of type T (not function type)
     82
     83
     84T1: type
    6685  with assertions
    67     0: a const instance of type T1
    68     ?+?: a function
     86    0: const instance of type T1 (not function type)
     87    ?+?: function
    6988        with parameters
    70           instance of type T1
    71           instance of type T1
     89          instance of type T1 (not function type)
     90          instance of type T1 (not function type)
    7291        returning
    73           instance of type T1
    74 
    75     ?++: a function
     92          instance of type T1 (not function type)
     93
     94    ?++: function
    7695        with parameters
    77           instance of type T1
     96          instance of type T1 (not function type)
    7897        returning
    79           instance of type T1
    80 
    81     ?+=?: a function
     98          instance of type T1 (not function type)
     99
     100    ?+=?: function
    82101        with parameters
    83           instance of type T1
    84           instance of type T1
     102          instance of type T1 (not function type)
     103          instance of type T1 (not function type)
    85104        returning
    86           instance of type T1
    87 
    88 
    89 T2: a type
    90   with parameters
    91     P1: a type
    92     P2: a type
    93 
    94 T3: a type
     105          instance of type T1 (not function type)
     106
     107
     108T2: type
     109  with parameters
     110    P1: type
     111    P2: type
     112
     113T3: type
    95114  with assertions
    96115    instance of context sumable
    97116      with parameters
    98         instance of type T3
     117        instance of type T3 (not function type)
    99118
    100119
    101120struct __anonymous0
    102121    with members
    103       i: a instance of type P1
    104       j: a instance of type P2
    105 
    106 T2: a type for instance of struct __anonymous0
    107   with parameters
    108     P1: a type
    109     P2: a type
     122      i: instance of type P1 (not function type)
     123      j: instance of type P2 (not function type)
     124
     125T2: type for instance of struct __anonymous0
     126  with parameters
     127    P1: type
     128    P2: type
    110129
    111130  with assertions
    112131    instance of context sumable
    113132      with parameters
    114         instance of type T2
     133        instance of type T2 (not function type)
    115134          with parameters
    116             instance of type P1
    117             instance of type P2
    118 
    119 
    120 
    121 w1: a instance of type T2
    122   with parameters
    123     signed int
    124     signed int
    125 
    126 w2: a typedef for instance of type T2
    127   with parameters
    128     signed int
    129     signed int
    130 
    131 g2: a instance of type w2
    132 w3: a type for instance of type T2
    133   with parameters
    134     signed int
    135     signed int
    136 
    137 g3: a instance of type w3
    138 sum: a function
    139     with parameters
    140       n: a signed int
    141       a: a open array of instance of type T
    142     with forall
    143       T: a type
     135            instance of type P1 (not function type)
     136            instance of type P2 (not function type)
     137
     138
     139
     140w1: instance of type T2 (not function type)
     141  with parameters
     142    signed int
     143    signed int
     144
     145w2: typedef for instance of type T2 (not function type)
     146  with parameters
     147    signed int
     148    signed int
     149
     150g2: instance of type w2 (not function type)
     151w3: type for instance of type T2 (not function type)
     152  with parameters
     153    signed int
     154    signed int
     155
     156g3: instance of type w3 (not function type)
     157sum: forall
     158      T: type
    144159        with assertions
     160          ?=?: function
     161              with parameters
     162                pointer to instance of type T (not function type)
     163                instance of type T (not function type)
     164              returning
     165                instance of type T (not function type)
     166
    145167          instance of context sumable
    146168            with parameters
    147               instance of type T
    148 
    149 
    150     returning
    151       instance of type T
     169              instance of type T (not function type)
     170
     171
     172    function
     173    with parameters
     174      n: signed int
     175      a: open array of instance of type T (not function type)
     176    returning
     177      instance of type T (not function type)
    152178    with body
    153       Declaration of total: a instance of type T
    154       Declaration of i: a signed int
    155 
    156 twice: a function
    157     with parameters
    158       t: a instance of type T
    159     with forall
    160       T: a type
     179      CompoundStmt
     180        Declaration of total: instance of type T (not function type) with initializer
     181          Simple Initializer:             Name: 0
     182
     183        Declaration of i: signed int
     184                  Labels: {}
     185          For Statement
     186            initialization:
     187              Expression Statement:
     188                Applying untyped:
     189                    Name: ?=?
     190                ...to:
     191                    Address of:
     192                      Name: i
     193                    Name: 0
     194
     195            condition:
     196              Cast of:
     197                Applying untyped:
     198                    Name: ?!=?
     199                ...to:
     200                    Applying untyped:
     201                        Name: ?<?
     202                    ...to:
     203                        Name: i
     204                        Name: n
     205                    Name: 0
     206
     207              to:
     208                signed int
     209
     210            increment:
     211              Applying untyped:
     212                  Name: ?+=?
     213              ...to:
     214                  Address of:
     215                    Name: i
     216                  Name: 1
     217
     218            statement block:
     219              Expression Statement:
     220                Applying untyped:
     221                    Name: ?=?
     222                ...to:
     223                    Address of:
     224                      Name: total
     225                    Applying untyped:
     226                        Name: ?+?
     227                    ...to:
     228                        Name: total
     229                        Applying untyped:
     230                            Name: ?[?]
     231                        ...to:
     232                            Name: a
     233                            Name: i
     234
     235
     236                  Return Statement, returning: Name: total
     237
     238
     239
     240twice: forall
     241      T: type
    161242        with assertions
    162           0: a const instance of type T
    163           ?+?: a function
    164               with parameters
    165                 instance of type T
    166                 instance of type T
    167               returning
    168                 instance of type T
    169 
    170           ?++: a function
    171               with parameters
    172                 instance of type T
    173               returning
    174                 instance of type T
    175 
    176           ?+=?: a function
    177               with parameters
    178                 instance of type T
    179                 instance of type T
    180               returning
    181                 instance of type T
    182 
    183 
    184     returning
    185       instance of type T
     243          ?=?: function
     244              with parameters
     245                pointer to instance of type T (not function type)
     246                instance of type T (not function type)
     247              returning
     248                instance of type T (not function type)
     249
     250          0: const instance of type T (not function type)
     251          ?+?: function
     252              with parameters
     253                instance of type T (not function type)
     254                instance of type T (not function type)
     255              returning
     256                instance of type T (not function type)
     257
     258          ?++: function
     259              with parameters
     260                instance of type T (not function type)
     261              returning
     262                instance of type T (not function type)
     263
     264          ?+=?: function
     265              with parameters
     266                instance of type T (not function type)
     267                instance of type T (not function type)
     268              returning
     269                instance of type T (not function type)
     270
     271
     272    function
     273    with parameters
     274      t: instance of type T (not function type)
     275    returning
     276      instance of type T (not function type)
    186277    with body
    187 
    188 main: a function
     278      CompoundStmt
     279                  Return Statement, returning: Applying untyped:
     280    Name: ?+?
     281...to:
     282    Name: t
     283    Name: t
     284
     285
     286
     287main: C function
     288      accepting unspecified arguments
    189289    returning
    190290      signed int
    191291    with body
    192       Declaration of x: a signed int
    193       Declaration of y: a signed int
    194       Declaration of a: a array of         Constant Expression: 10signed int
    195       Declaration of f: a float
    196      
    197         Expression Statement:
    198           Applying untyped:
    199               Name: swap
    200  to:
    201               Name: x
    202               Name: y
    203 
    204      
    205         Expression Statement:
    206           Applying untyped:
    207               Name: twice
    208  to:
    209               Name: x
    210               Name: y
    211 
    212      
    213         Expression Statement:
    214           Applying untyped:
    215               Name: ?=?
    216  to:
    217               Name: f
    218               Applying untyped:
    219                   Name: min
    220  to:
    221                   Constant Expression: 4.0                  Constant Expression: 3.0
    222      
    223         Expression Statement:
    224           Applying untyped:
    225               Name: sum
    226  to:
    227               Constant Expression: 10              Name: a
    228 
    229 
     292      CompoundStmt
     293        Declaration of x: signed int with initializer
     294          Simple Initializer:             Name: 1
     295
     296        Declaration of y: signed int with initializer
     297          Simple Initializer: constant expression 2 signed int
     298        Declaration of a: array of signed int with dimension of constant expression 10 signed int
     299        Declaration of f: float
     300                  Expression Statement:
     301            Applying untyped:
     302                Name: swap
     303            ...to:
     304                Name: x
     305                Name: y
     306
     307                  Expression Statement:
     308            Applying untyped:
     309                Name: twice
     310            ...to:
     311                Name: x
     312                Name: y
     313
     314                  Expression Statement:
     315            Applying untyped:
     316                Name: ?=?
     317            ...to:
     318                Address of:
     319                  Name: f
     320                Applying untyped:
     321                    Name: min
     322                ...to:
     323constant expression 4.0 double constant expression 3.0 double
     324                  Expression Statement:
     325            Applying untyped:
     326                Name: sum
     327            ...to:
     328constant expression 10 signed int                 Name: a
     329
     330
  • src/Tests/SynTree/Expected/Functions.tst

    rcd623a4 r5f2f2d7  
    1 h: a function
     1h: function
    22    with parameters
    33      void
     
    55      void
    66    with body
    7 
    8 f: a function
     7      CompoundStmt
     8
     9f: function
    910    with parameters
    1011      function
     
    3233            signed int
    3334
    34       g: a function
     35      g: function
    3536          with parameters
    3637            void
     
    4142      signed int
    4243    with body
    43 
    44 f1: a function
    45     returning
    46       signed int
    47     with body
    48 
    49 f2: a function
    50     returning
    51       signed int
    52     with body
    53 
    54 f3: a function
     44      CompoundStmt
     45                  Expression Statement:
     46            Applying untyped:
     47                Applying untyped:
     48                    Name: *?
     49                ...to:
     50                    Name: g
     51            ...to:
     52
     53                  Expression Statement:
     54            Applying untyped:
     55                Name: g
     56            ...to:
     57
     58                  Expression Statement:
     59            Applying untyped:
     60                Name: ?=?
     61            ...to:
     62                Address of:
     63                  Name: g
     64                Name: h
     65
     66
     67f1: function
     68      accepting unspecified arguments
     69    returning
     70      signed int
     71    with body
     72      CompoundStmt
     73
     74f2: function
     75      accepting unspecified arguments
     76    returning
     77      signed int
     78    with body
     79      CompoundStmt
     80
     81f3: function
     82      accepting unspecified arguments
    5583    returning
    5684      pointer to function
    57           returning
    58             signed int
    59 
    60     with body
    61 
    62 f4: a function
     85            accepting unspecified arguments
     86          returning
     87            signed int
     88
     89    with body
     90      CompoundStmt
     91
     92f4: function
     93      accepting unspecified arguments
    6394    returning
    6495      pointer to signed int
    6596    with body
    66 
    67 f5: a function
     97      CompoundStmt
     98
     99f5: function
     100      accepting unspecified arguments
    68101    returning
    69102      pointer to function
    70           returning
    71             signed int
    72 
    73     with body
    74 
    75 f6: a function
     103            accepting unspecified arguments
     104          returning
     105            signed int
     106
     107    with body
     108      CompoundStmt
     109
     110f6: function
     111      accepting unspecified arguments
    76112    returning
    77113      pointer to signed int
    78114    with body
    79 
    80 f7: a function
     115      CompoundStmt
     116
     117f7: function
     118      accepting unspecified arguments
    81119    returning
    82120      pointer to signed int
    83121    with body
    84 
    85 f8: a function
     122      CompoundStmt
     123
     124f8: function
     125      accepting unspecified arguments
    86126    returning
    87127      pointer to pointer to signed int
    88128    with body
    89 
    90 f9: a function
     129      CompoundStmt
     130
     131f9: function
     132      accepting unspecified arguments
    91133    returning
    92134      pointer to const pointer to signed int
    93135    with body
    94 
    95 f10: a function
     136      CompoundStmt
     137
     138f10: function
     139      accepting unspecified arguments
    96140    returning
    97141      pointer to open array of signed int
    98142    with body
    99 
    100 f11: a function
    101     returning
    102       pointer to open array of open array of signed int
    103     with body
    104 
    105 f12: a function
    106     returning
    107       pointer to open array of open array of signed int
    108     with body
    109 
    110 fII1: a function
    111     with parameters
    112       i: a signed int
    113     returning
    114       signed int
    115     with body
    116 
    117 fII2: a function
    118     with parameters
    119       i: a signed int
     143      CompoundStmt
     144
     145f11: function
     146      accepting unspecified arguments
     147    returning
     148      pointer to open array of array of signed int with dimension of constant expression 3 signed int
     149    with body
     150      CompoundStmt
     151
     152f12: function
     153      accepting unspecified arguments
     154    returning
     155      pointer to open array of array of signed int with dimension of constant expression 3 signed int
     156    with body
     157      CompoundStmt
     158
     159fII1: function
     160    with parameters
     161      i: signed int
     162    returning
     163      signed int
     164    with body
     165      CompoundStmt
     166
     167fII2: function
     168    with parameters
     169      i: signed int
    120170    returning
    121171      const signed int
    122172    with body
    123 
    124 fII3: a extern function
    125     with parameters
    126       i: a signed int
    127     returning
    128       signed int
    129     with body
    130 
    131 fII4: a extern function
    132     with parameters
    133       i: a signed int
     173      CompoundStmt
     174
     175fII3: auto function
     176    with parameters
     177      i: signed int
     178    returning
     179      signed int
     180    with body
     181      CompoundStmt
     182
     183fII4: auto function
     184    with parameters
     185      i: signed int
    134186    returning
    135187      const signed int
    136188    with body
    137 
    138 fII5: a function
     189      CompoundStmt
     190
     191fII5: function
     192      accepting unspecified arguments
    139193    returning
    140194      pointer to signed int
    141195    with body
    142 
    143 fII6: a function
     196      CompoundStmt
     197
     198fII6: function
     199      accepting unspecified arguments
    144200    returning
    145201      const pointer to signed int
    146202    with body
    147 
    148 fII7: a function
     203      CompoundStmt
     204
     205fII7: function
     206      accepting unspecified arguments
    149207    returning
    150208      pointer to const long signed int
    151209    with body
    152 
    153 fII8: a static function
     210      CompoundStmt
     211
     212fII8: static function
     213      accepting unspecified arguments
    154214    returning
    155215      pointer to const long signed int
    156216    with body
    157 
    158 fII9: a static function
     217      CompoundStmt
     218
     219fII9: static function
     220      accepting unspecified arguments
    159221    returning
    160222      pointer to const long signed int
    161223    with body
    162 
    163 fO1: a function
     224      CompoundStmt
     225
     226fO1: function
     227      accepting unspecified arguments
    164228    returning
    165229      signed int
     
    167231      i
    168232    with parameter declarations
    169       i: a signed int
    170     with body
    171 
    172 fO2: a function
     233      i: signed int
     234    with body
     235      CompoundStmt
     236
     237fO2: function
     238      accepting unspecified arguments
    173239    returning
    174240      signed int
     
    176242      i
    177243    with parameter declarations
    178       i: a signed int
    179     with body
    180 
    181 fO3: a function
     244      i: signed int
     245    with body
     246      CompoundStmt
     247
     248fO3: function
     249      accepting unspecified arguments
    182250    returning
    183251      const signed int
     
    185253      i
    186254    with parameter declarations
    187       i: a signed int
    188     with body
    189 
    190 fO4: a extern function
     255      i: signed int
     256    with body
     257      CompoundStmt
     258
     259fO4: auto function
     260      accepting unspecified arguments
    191261    returning
    192262      signed int
     
    194264      i
    195265    with parameter declarations
    196       i: a signed int
    197     with body
    198 
    199 fO5: a extern function
     266      i: signed int
     267    with body
     268      CompoundStmt
     269
     270fO5: auto function
     271      accepting unspecified arguments
    200272    returning
    201273      const signed int
     
    203275      i
    204276    with parameter declarations
    205       i: a signed int
    206     with body
    207 
    208 f: a function
    209     returning
    210       nothing
    211 
    212 f: a function
    213     returning
    214       signed int
    215 
    216 f: a function
    217     with parameters
    218       signed int
    219     returning
    220       nothing
    221 
    222 f: a function
    223     with parameters
    224       signed int
    225     returning
    226       signed int
    227 
    228 f: a function
    229     returning
    230       nothing
    231     with body
    232 
    233 f: a function
    234     returning
    235       signed int
    236     with body
    237 
    238 f: a function
    239     with parameters
    240       signed int
    241     returning
    242       nothing
    243     with body
    244 
    245 f: a function
    246     with parameters
    247       signed int
    248     returning
    249       signed int
    250     with body
    251 
    252 f: a function
    253     returning
    254       x: a signed int
    255 
    256 f: a function
    257     with parameters
    258       x: a signed int
    259     returning
    260       nothing
    261 
    262 f: a function
    263     with parameters
    264       x: a signed int
    265     returning
    266       x: a signed int
    267 
    268 f: a function
    269     returning
    270       x: a signed int
    271     with body
    272 
    273 f: a function
    274     with parameters
    275       x: a signed int
    276     returning
    277       nothing
    278     with body
    279 
    280 f: a function
    281     with parameters
    282       x: a signed int
    283     returning
    284       x: a signed int
    285     with body
    286 
    287 f: a function
    288     returning
    289       signed int
    290       x: a signed int
    291 
    292 f: a function
    293     with parameters
    294       signed int
    295       x: a signed int
    296     returning
    297       nothing
    298 
    299 f: a function
    300     with parameters
    301       signed int
    302       x: a signed int
    303     returning
    304       signed int
    305       x: a signed int
    306 
    307 f: a function
    308     returning
    309       signed int
    310       x: a signed int
    311     with body
    312 
    313 f: a function
    314     with parameters
    315       signed int
    316       x: a signed int
    317     returning
    318       nothing
    319     with body
    320 
    321 f: a function
    322     with parameters
    323       signed int
    324       x: a signed int
    325     returning
    326       signed int
    327       x: a signed int
    328     with body
    329 
    330 f: a function
    331     returning
    332       signed int
    333       x: a signed int
    334       signed int
    335 
    336 f: a function
    337     with parameters
    338       signed int
    339       x: a signed int
    340       signed int
    341     returning
    342       nothing
    343 
    344 f: a function
    345     with parameters
    346       signed int
    347       x: a signed int
    348       signed int
    349     returning
    350       signed int
    351       x: a signed int
    352       signed int
    353 
    354 f: a function
    355     returning
    356       signed int
    357       x: a signed int
    358       signed int
    359     with body
    360 
    361 f: a function
    362     with parameters
    363       signed int
    364       x: a signed int
    365       signed int
    366     returning
    367       nothing
    368     with body
    369 
    370 f: a function
    371     with parameters
    372       signed int
    373       x: a signed int
    374       signed int
    375     returning
    376       signed int
    377       x: a signed int
    378       signed int
    379     with body
    380 
    381 f: a function
    382     returning
    383       signed int
    384       x: a signed int
    385       y: a pointer to signed int
    386 
    387 f: a function
    388     with parameters
    389       signed int
    390       x: a signed int
    391       y: a pointer to signed int
    392     returning
    393       nothing
    394 
    395 f: a function
    396     with parameters
    397       signed int
    398       x: a signed int
    399       y: a pointer to signed int
    400     returning
    401       signed int
    402       x: a signed int
    403       y: a pointer to signed int
    404 
    405 f: a function
    406     returning
    407       signed int
    408       x: a signed int
    409       y: a pointer to signed int
    410     with body
    411 
    412 f: a function
    413     with parameters
    414       signed int
    415       x: a signed int
    416       y: a pointer to signed int
    417     returning
    418       nothing
    419     with body
    420 
    421 f: a function
    422     with parameters
    423       signed int
    424       x: a signed int
    425       y: a pointer to signed int
    426     returning
    427       signed int
    428       x: a signed int
    429       y: a pointer to signed int
    430     with body
    431 
    432 f11: a function
    433     with parameters
    434       signed int
    435     returning
    436       signed int
    437 
    438 f12: a function
    439     with parameters
    440       signed int
    441     returning
    442       signed int
    443 
    444 f: a function
     277      i: signed int
     278    with body
     279      CompoundStmt
     280
     281f: function
     282    returning
     283      nothing
     284
     285f: function
     286    returning
     287      signed int
     288
     289f: function
     290    with parameters
     291      signed int
     292    returning
     293      nothing
     294
     295f: function
     296    with parameters
     297      signed int
     298    returning
     299      signed int
     300
     301f: function
     302    returning
     303      nothing
     304    with body
     305      CompoundStmt
     306
     307f: function
     308    returning
     309      signed int
     310    with body
     311      CompoundStmt
     312
     313f: function
     314    with parameters
     315      signed int
     316    returning
     317      nothing
     318    with body
     319      CompoundStmt
     320
     321f: function
     322    with parameters
     323      signed int
     324    returning
     325      signed int
     326    with body
     327      CompoundStmt
     328
     329f: function
     330    returning
     331      x: signed int
     332
     333f: function
     334    with parameters
     335      x: signed int
     336    returning
     337      nothing
     338
     339f: function
     340    with parameters
     341      x: signed int
     342    returning
     343      x: signed int
     344
     345f: function
     346    returning
     347      x: signed int
     348    with body
     349      CompoundStmt
     350
     351f: function
     352    with parameters
     353      x: signed int
     354    returning
     355      nothing
     356    with body
     357      CompoundStmt
     358
     359f: function
     360    with parameters
     361      x: signed int
     362    returning
     363      x: signed int
     364    with body
     365      CompoundStmt
     366
     367f: function
     368    returning
     369      signed int
     370      x: signed int
     371
     372f: function
     373    with parameters
     374      signed int
     375      x: signed int
     376    returning
     377      nothing
     378
     379f: function
     380    with parameters
     381      signed int
     382      x: signed int
     383    returning
     384      signed int
     385      x: signed int
     386
     387f: function
     388    returning
     389      signed int
     390      x: signed int
     391    with body
     392      CompoundStmt
     393
     394f: function
     395    with parameters
     396      signed int
     397      x: signed int
     398    returning
     399      nothing
     400    with body
     401      CompoundStmt
     402
     403f: function
     404    with parameters
     405      signed int
     406      x: signed int
     407    returning
     408      signed int
     409      x: signed int
     410    with body
     411      CompoundStmt
     412
     413f: function
     414    returning
     415      signed int
     416      x: signed int
     417      signed int
     418
     419f: function
     420    with parameters
     421      signed int
     422      x: signed int
     423      signed int
     424    returning
     425      nothing
     426
     427f: function
     428    with parameters
     429      signed int
     430      x: signed int
     431      signed int
     432    returning
     433      signed int
     434      x: signed int
     435      signed int
     436
     437f: function
     438    returning
     439      signed int
     440      x: signed int
     441      signed int
     442    with body
     443      CompoundStmt
     444
     445f: function
     446    with parameters
     447      signed int
     448      x: signed int
     449      signed int
     450    returning
     451      nothing
     452    with body
     453      CompoundStmt
     454
     455f: function
     456    with parameters
     457      signed int
     458      x: signed int
     459      signed int
     460    returning
     461      signed int
     462      x: signed int
     463      signed int
     464    with body
     465      CompoundStmt
     466
     467f: function
     468    returning
     469      signed int
     470      x: signed int
     471      y: pointer to signed int
     472
     473f: function
     474    with parameters
     475      signed int
     476      x: signed int
     477      y: pointer to signed int
     478    returning
     479      nothing
     480
     481f: function
     482    with parameters
     483      signed int
     484      x: signed int
     485      y: pointer to signed int
     486    returning
     487      signed int
     488      x: signed int
     489      y: pointer to signed int
     490
     491f: function
     492    returning
     493      signed int
     494      x: signed int
     495      y: pointer to signed int
     496    with body
     497      CompoundStmt
     498
     499f: function
     500    with parameters
     501      signed int
     502      x: signed int
     503      y: pointer to signed int
     504    returning
     505      nothing
     506    with body
     507      CompoundStmt
     508
     509f: function
     510    with parameters
     511      signed int
     512      x: signed int
     513      y: pointer to signed int
     514    returning
     515      signed int
     516      x: signed int
     517      y: pointer to signed int
     518    with body
     519      CompoundStmt
     520
     521f11: function
     522    with parameters
     523      signed int
     524    returning
     525      signed int
     526
     527f12: function
     528    with parameters
     529      signed int
     530    returning
     531      signed int
     532
     533f: function
    445534    with parameters
    446535      function
    447536          with parameters
    448537            signed int
    449             p: a signed int
     538            p: signed int
    450539          returning
    451540            signed int
     
    460549      signed int
    461550    with body
    462       Declaration of p: a pointer to open array of open array of pointer to open array of open array of signed int
    463       Declaration of p: a pointer to open array of open array of pointer to open array of open array of signed int
    464       Declaration of p: a pointer to open array of pointer to function
    465           with parameters
    466             signed int
    467           returning
    468             signed int
    469 
    470 
    471 f1: a static function
     551      CompoundStmt
     552        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int
     553        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int
     554        Declaration of p: pointer to open array of pointer to function
     555            with parameters
     556              signed int
     557            returning
     558              signed int
     559
     560
     561f1: static function
     562      accepting unspecified arguments
    472563    returning
    473564      pointer to const signed int
    474565    with body
    475 
    476 f2: a static function
     566      CompoundStmt
     567
     568f2: static function
    477569    returning
    478570      const signed int
    479571    with body
    480 
    481 f3: a inline static function
     572      CompoundStmt
     573
     574f3: inline static function
    482575    returning
    483576      const pointer to signed int
    484577    with body
    485 
    486 f4: a inline static function
     578      CompoundStmt
     579
     580f4: inline static function
    487581    returning
    488582      const tuple of types
     
    491585
    492586    with body
    493 
    494 f5: a static function
     587      CompoundStmt
     588
     589f5: static function
    495590    returning
    496591      const tuple of types
     
    499594
    500595    with body
    501 
    502 f: a function
    503     with parameters
    504       function
    505           returning
    506             signed int
    507 
    508       function
     596      CompoundStmt
     597
     598f: function
     599    with parameters
     600      function
     601            accepting unspecified arguments
     602          returning
     603            signed int
     604
     605      function
     606            accepting unspecified arguments
    509607          returning
    510608            pointer to signed int
    511609
    512610      function
     611            accepting unspecified arguments
    513612          returning
    514613            pointer to pointer to signed int
    515614
    516615      function
     616            accepting unspecified arguments
    517617          returning
    518618            pointer to const pointer to signed int
    519619
    520620      function
     621            accepting unspecified arguments
    521622          returning
    522623            const pointer to const pointer to signed int
    523624
    524625      open array of signed int
     626      array of signed int with dimension of constant expression 10 signed int
     627      open array of pointer to signed int
     628      array of pointer to signed int with dimension of constant expression 10 signed int
     629      open array of pointer to pointer to signed int
     630      array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     631      open array of pointer to const pointer to signed int
     632      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     633      open array of const pointer to const pointer to signed int
     634      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     635    returning
     636      signed int
     637
     638f: function
     639    with parameters
     640      function
     641            accepting unspecified arguments
     642          returning
     643            signed int
     644
     645      function
     646            accepting unspecified arguments
     647          returning
     648            pointer to signed int
     649
     650      function
     651            accepting unspecified arguments
     652          returning
     653            pointer to pointer to signed int
     654
     655      function
     656            accepting unspecified arguments
     657          returning
     658            pointer to const pointer to signed int
     659
     660      function
     661            accepting unspecified arguments
     662          returning
     663            const pointer to const pointer to signed int
     664
    525665      open array of signed int
     666      array of signed int with dimension of constant expression 10 signed int
    526667      open array of pointer to signed int
    527       open array of pointer to signed int
     668      array of pointer to signed int with dimension of constant expression 10 signed int
    528669      open array of pointer to pointer to signed int
    529       open array of pointer to pointer to signed int
     670      array of pointer to pointer to signed int with dimension of constant expression 10 signed int
    530671      open array of pointer to const pointer to signed int
    531       open array of pointer to const pointer to signed int
     672      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
    532673      open array of const pointer to const pointer to signed int
    533       open array of const pointer to const pointer to signed int
    534     returning
    535       signed int
    536 
    537 f: a function
    538     with parameters
    539       function
    540           returning
    541             signed int
    542 
    543       function
    544           returning
    545             pointer to signed int
    546 
    547       function
    548           returning
    549             pointer to pointer to signed int
    550 
    551       function
    552           returning
    553             pointer to const pointer to signed int
    554 
    555       function
    556           returning
    557             const pointer to const pointer to signed int
    558 
    559       open array of signed int
    560       open array of signed int
    561       open array of pointer to signed int
    562       open array of pointer to signed int
    563       open array of pointer to pointer to signed int
    564       open array of pointer to pointer to signed int
    565       open array of pointer to const pointer to signed int
    566       open array of pointer to const pointer to signed int
    567       open array of const pointer to const pointer to signed int
    568       open array of const pointer to const pointer to signed int
    569     returning
    570       signed int
    571     with body
    572 
    573 T: a typedef for signed int
    574 f: a function
     674      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     675    returning
     676      signed int
     677    with body
     678      CompoundStmt
     679
     680T: typedef for signed int
     681f: function
    575682    with parameters
    576683      function
    577684          with parameters
    578             instance of type T
    579           returning
    580             instance of type T
    581 
    582       T: a instance of type T
    583     returning
    584       signed int
    585     with body
    586 
     685            instance of type T (not function type)
     686          returning
     687            instance of type T (not function type)
     688
     689      T: instance of type T (not function type)
     690    returning
     691      signed int
     692    with body
     693      CompoundStmt
     694                  Expression Statement:
     695            Applying untyped:
     696                Name: T
     697            ...to:
     698                Name: T
     699
     700
  • src/Tests/SynTree/Expected/IdentFuncDeclarator.tst

    rcd623a4 r5f2f2d7  
    1 main: a function
     1main: C function
     2      accepting unspecified arguments
    23    returning
    34      signed int
    45    with body
    5       Declaration of f1: a signed int
    6       Declaration of f2: a signed int
    7       Declaration of f3: a pointer to signed int
    8       Declaration of f4: a pointer to pointer to signed int
    9       Declaration of f5: a pointer to const pointer to signed int
    10       Declaration of f6: a const pointer to const pointer to signed int
    11       Declaration of f7: a pointer to signed int
    12       Declaration of f8: a pointer to pointer to signed int
    13       Declaration of f9: a pointer to const pointer to signed int
    14       Declaration of f10: a const pointer to const pointer to signed int
    15       Declaration of f11: a pointer to signed int
    16       Declaration of f12: a pointer to pointer to signed int
    17       Declaration of f13: a pointer to const pointer to signed int
    18       Declaration of f14: a const pointer to const pointer to signed int
    19       Declaration of f15: a open array of signed int
    20       Declaration of f16: a open array of signed int
    21       Declaration of f17: a open array of signed int
    22       Declaration of f18: a open array of signed int
    23       Declaration of f19: a open array of pointer to signed int
    24       Declaration of f20: a open array of pointer to signed int
    25       Declaration of f21: a open array of pointer to pointer to signed int
    26       Declaration of f22: a open array of pointer to pointer to signed int
    27       Declaration of f23: a open array of pointer to const pointer to signed int
    28       Declaration of f24: a open array of pointer to const pointer to signed int
    29       Declaration of f25: a open array of const pointer to const pointer to signed int
    30       Declaration of f26: a open array of const pointer to const pointer to signed int
    31       Declaration of f27: a open array of pointer to signed int
    32       Declaration of f28: a open array of pointer to signed int
    33       Declaration of f29: a open array of pointer to pointer to signed int
    34       Declaration of f30: a open array of pointer to pointer to signed int
    35       Declaration of f31: a open array of pointer to const pointer to signed int
    36       Declaration of f32: a open array of pointer to const pointer to signed int
    37       Declaration of f33: a open array of const pointer to const pointer to signed int
    38       Declaration of f34: a open array of const pointer to const pointer to signed int
    39       Declaration of f35: a open array of pointer to signed int
    40       Declaration of f36: a open array of pointer to signed int
    41       Declaration of f37: a open array of pointer to pointer to signed int
    42       Declaration of f38: a open array of pointer to pointer to signed int
    43       Declaration of f39: a open array of pointer to const pointer to signed int
    44       Declaration of f40: a open array of pointer to const pointer to signed int
    45       Declaration of f41: a open array of const pointer to const pointer to signed int
    46       Declaration of f42: a open array of const pointer to const pointer to signed int
    47       Declaration of f43: a open array of open array of signed int
    48       Declaration of f44: a open array of open array of signed int
    49       Declaration of f45: a open array of open array of signed int
    50       Declaration of f46: a open array of open array of signed int
    51       Declaration of f47: a open array of open array of signed int
    52       Declaration of f48: a open array of open array of signed int
    53       Declaration of f49: a open array of open array of pointer to signed int
    54       Declaration of f50: a open array of open array of pointer to signed int
    55       Declaration of f51: a open array of open array of pointer to pointer to signed int
    56       Declaration of f52: a open array of open array of pointer to pointer to signed int
    57       Declaration of f53: a open array of open array of pointer to const pointer to signed int
    58       Declaration of f54: a open array of open array of pointer to const pointer to signed int
    59       Declaration of f55: a open array of open array of const pointer to const pointer to signed int
    60       Declaration of f56: a open array of open array of const pointer to const pointer to signed int
    61       Declaration of f57: a open array of open array of pointer to signed int
    62       Declaration of f58: a open array of open array of pointer to signed int
    63       Declaration of f59: a open array of open array of pointer to pointer to signed int
    64       Declaration of f60: a open array of open array of pointer to pointer to signed int
    65       Declaration of f61: a open array of open array of pointer to const pointer to signed int
    66       Declaration of f62: a open array of open array of pointer to const pointer to signed int
    67       Declaration of f63: a open array of open array of const pointer to const pointer to signed int
    68       Declaration of f64: a open array of open array of const pointer to const pointer to signed int
    69       Declaration of f65: a function
    70           with parameters
    71             signed int
    72           returning
    73             signed int
     6      CompoundStmt
     7        Declaration of f1: signed int
     8        Declaration of f2: signed int
     9        Declaration of f3: pointer to signed int
     10        Declaration of f4: pointer to pointer to signed int
     11        Declaration of f5: pointer to const pointer to signed int
     12        Declaration of f6: const pointer to const pointer to signed int
     13        Declaration of f7: pointer to signed int
     14        Declaration of f8: pointer to pointer to signed int
     15        Declaration of f9: pointer to const pointer to signed int
     16        Declaration of f10: const pointer to const pointer to signed int
     17        Declaration of f11: pointer to signed int
     18        Declaration of f12: pointer to pointer to signed int
     19        Declaration of f13: pointer to const pointer to signed int
     20        Declaration of f14: const pointer to const pointer to signed int
     21        Declaration of f15: open array of signed int
     22        Declaration of f16: array of signed int with dimension of constant expression 10 signed int
     23        Declaration of f17: open array of signed int
     24        Declaration of f18: array of signed int with dimension of constant expression 10 signed int
     25        Declaration of f19: open array of pointer to signed int
     26        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int
     27        Declaration of f21: open array of pointer to pointer to signed int
     28        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     29        Declaration of f23: open array of pointer to const pointer to signed int
     30        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     31        Declaration of f25: open array of const pointer to const pointer to signed int
     32        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     33        Declaration of f27: open array of pointer to signed int
     34        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int
     35        Declaration of f29: open array of pointer to pointer to signed int
     36        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     37        Declaration of f31: open array of pointer to const pointer to signed int
     38        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     39        Declaration of f33: open array of const pointer to const pointer to signed int
     40        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     41        Declaration of f35: open array of pointer to signed int
     42        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int
     43        Declaration of f37: open array of pointer to pointer to signed int
     44        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     45        Declaration of f39: open array of pointer to const pointer to signed int
     46        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     47        Declaration of f41: open array of const pointer to const pointer to signed int
     48        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     49        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int
     50        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     51        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int
     52        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     53        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int
     54        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     55        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int
     56        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     57        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int
     58        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     59        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int
     60        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     61        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int
     62        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     63        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int
     64        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     65        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int
     66        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     67        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int
     68        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     69        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int
     70        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     71        Declaration of f65: function
     72            with parameters
     73              signed int
     74            returning
     75              signed int
    7476
    75       Declaration of f66: a function
    76           with parameters
    77             signed int
    78           returning
    79             signed int
     77        Declaration of f66: function
     78            with parameters
     79              signed int
     80            returning
     81              signed int
    8082
    81       Declaration of f67: a function
    82           with parameters
    83             signed int
    84           returning
    85             pointer to signed int
     83        Declaration of f67: function
     84            with parameters
     85              signed int
     86            returning
     87              pointer to signed int
    8688
    87       Declaration of f68: a function
    88           with parameters
    89             signed int
    90           returning
    91             pointer to pointer to signed int
     89        Declaration of f68: function
     90            with parameters
     91              signed int
     92            returning
     93              pointer to pointer to signed int
    9294
    93       Declaration of f69: a function
    94           with parameters
    95             signed int
    96           returning
    97             pointer to const pointer to signed int
     95        Declaration of f69: function
     96            with parameters
     97              signed int
     98            returning
     99              pointer to const pointer to signed int
    98100
    99       Declaration of f70: a function
    100           with parameters
    101             signed int
    102           returning
    103             const pointer to const pointer to signed int
     101        Declaration of f70: function
     102            with parameters
     103              signed int
     104            returning
     105              const pointer to const pointer to signed int
    104106
    105       Declaration of f71: a function
    106           with parameters
    107             signed int
    108           returning
    109             pointer to signed int
     107        Declaration of f71: function
     108            with parameters
     109              signed int
     110            returning
     111              pointer to signed int
    110112
    111       Declaration of f72: a function
    112           with parameters
    113             signed int
    114           returning
    115             pointer to pointer to signed int
     113        Declaration of f72: function
     114            with parameters
     115              signed int
     116            returning
     117              pointer to pointer to signed int
    116118
    117       Declaration of f73: a function
    118           with parameters
    119             signed int
    120           returning
    121             pointer to const pointer to signed int
     119        Declaration of f73: function
     120            with parameters
     121              signed int
     122            returning
     123              pointer to const pointer to signed int
    122124
    123       Declaration of f74: a function
    124           with parameters
    125             signed int
    126           returning
    127             const pointer to const pointer to signed int
     125        Declaration of f74: function
     126            with parameters
     127              signed int
     128            returning
     129              const pointer to const pointer to signed int
    128130
    129       Declaration of f75: a pointer to function
    130           with parameters
    131             signed int
    132           returning
    133             signed int
     131        Declaration of f75: pointer to function
     132            with parameters
     133              signed int
     134            returning
     135              signed int
    134136
    135       Declaration of f76: a pointer to pointer to function
    136           with parameters
    137             signed int
    138           returning
    139             signed int
     137        Declaration of f76: pointer to pointer to function
     138            with parameters
     139              signed int
     140            returning
     141              signed int
    140142
    141       Declaration of f77: a pointer to const pointer to function
    142           with parameters
    143             signed int
    144           returning
    145             signed int
     143        Declaration of f77: pointer to const pointer to function
     144            with parameters
     145              signed int
     146            returning
     147              signed int
    146148
    147       Declaration of f78: a const pointer to const pointer to function
    148           with parameters
    149             signed int
    150           returning
    151             signed int
     149        Declaration of f78: const pointer to const pointer to function
     150            with parameters
     151              signed int
     152            returning
     153              signed int
    152154
    153       Declaration of f79: a pointer to function
    154           with parameters
    155             signed int
    156           returning
    157             pointer to function
    158                 returning
    159                   signed int
     155        Declaration of f79: pointer to function
     156            with parameters
     157              signed int
     158            returning
     159              pointer to function
     160                    accepting unspecified arguments
     161                  returning
     162                    signed int
    160163
    161164
    162       Declaration of f80: a const pointer to function
    163           with parameters
    164             signed int
    165           returning
    166             pointer to function
    167                 returning
    168                   signed int
     165        Declaration of f80: const pointer to function
     166            with parameters
     167              signed int
     168            returning
     169              pointer to function
     170                    accepting unspecified arguments
     171                  returning
     172                    signed int
    169173
    170174
    171       Declaration of f81: a const pointer to function
    172           with parameters
    173             signed int
    174           returning
    175             const pointer to function
    176                 returning
    177                   signed int
     175        Declaration of f81: const pointer to function
     176            with parameters
     177              signed int
     178            returning
     179              const pointer to function
     180                    accepting unspecified arguments
     181                  returning
     182                    signed int
    178183
    179184
  • src/Tests/SynTree/Expected/Initialization.tst

    rcd623a4 r5f2f2d7  
    1 x21: a pointer to signed int
    2 x22: a signed int
    3 x21: a pointer to signed int
    4 x22: a signed int
    5 y1: a open array of signed int
    6 y2: a open array of signed int
     1x21: pointer to signed int with initializer
     2  Simple Initializer:     Name: 0
     3
     4x22: signed int with initializer
     5  Simple Initializer:     Name: 0
     6
     7x21: pointer to signed int with initializer
     8  Simple Initializer:     Name: 0
     9
     10x22: signed int with initializer
     11  Simple Initializer:     Name: 0
     12
     13y1: array of signed int with dimension of constant expression 20 signed int
     14y2: array of signed int with dimension of constant expression 20 signed int
    715struct __anonymous0
    816    with members
    9       w: a tuple of types
     17      w: tuple of types
    1018          signed int
    1119
    1220
    13 a: a instance of struct __anonymous0
     21a: instance of struct __anonymous0 with initializer
     22  Compound initializer: 
     23    Simple Initializer:       Tuple:
     24        constant expression 2 signed int
     25
     26      designated by:         Name: w
     27
    1428struct __anonymous1
    1529    with members
    16       a: a open array of signed int
    17       b: a signed int
     30      a: array of signed int with dimension of constant expression 3 signed int
     31      b: signed int
    1832
    19 w: a open array of instance of struct __anonymous1
     33w: open array of instance of struct __anonymous1 with initializer
     34  Compound initializer: 
     35    Compound initializer:        designated by: [        Name: 0
     36        Name: a
     37      ]
     38      Simple Initializer:         Name: 1
     39
     40    Simple Initializer:       Name: 1
     41
     42      designated by:         Name: 0
     43        Name: b
     44
     45    Simple Initializer: constant expression 2 signed int
     46      designated by:         Name: 1
     47        Name: a
     48        Name: 0
     49
    2050struct __anonymous3
    2151    with members
    22       f1: a signed int
    23       f2: a signed int
    24       f3: a signed int
     52      f1: signed int
     53      f2: signed int
     54      f3: signed int
    2555      struct __anonymous2
    2656          with members
    27             g1: a signed int
    28             g2: a signed int
    29             g3: a signed int
     57            g1: signed int
     58            g2: signed int
     59            g3: signed int
    3060
    31       f4: a open array of instance of struct __anonymous2
     61      f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int
    3262
    33 v7: a instance of struct __anonymous3
     63v7: instance of struct __anonymous3 with initializer
     64  Compound initializer: 
     65    Simple Initializer: constant expression 4 signed int
     66      designated by:         Name: f1
     67
     68    Simple Initializer: constant expression 3 signed int
     69      designated by:         Name: f2
     70
     71    Compound initializer:        designated by: [        Name: f4
     72constant expression 2 signed int       ]
     73      Simple Initializer: constant expression 3 signed int
     74        designated by:           Name: g1
     75
     76      Simple Initializer:         Name: 0
     77
     78        designated by:           Name: g3
     79
     80    Simple Initializer: constant expression 7 signed int
     81      designated by:         Name: f4
     82constant expression 3 signed int         Name: g3
     83
  • src/Tests/SynTree/Expected/Scope.tst

    rcd623a4 r5f2f2d7  
    1 in default case, (shouldn't be here)
    2 in default case, (shouldn't be here)
    3 in default case, (shouldn't be here)
    4 x: a signed int
    5 y: a typedef for double
    6 t: a typedef for float
    7 z: a instance of type y
     1x: signed int
     2y: typedef for double
     3t: typedef for float
     4z: instance of type y (not function type)
    85struct __anonymous0
    96    with members
    10       a: a signed int
    11       b: a double
     7      a: signed int
     8      b: double
    129
    13 u: a type for instance of struct __anonymous0
    14 f: a function
     10u: type for instance of struct __anonymous0
     11f: function
    1512    with parameters
    16       y: a signed int
     13      y: signed int
    1714    returning
    1815      signed int
    1916
    20 q: a instance of type y
    21 w: a function
     17q: instance of type y (not function type)
     18w: function
    2219    with parameters
    23       y: a instance of type y
    24       v: a instance of type u
     20      y: instance of type y (not function type)
     21      v: instance of type u (not function type)
    2522    returning
    26       instance of type y
     23      instance of type y (not function type)
    2724    with body
    28       Declaration of x: a type
    29         with assertions
    30           t: a function
    31               with parameters
    32                 instance of type u
    33               returning
    34                 instance of type x
     25      CompoundStmt
     26        Declaration of x: type
     27          with assertions
     28            t: function
     29                with parameters
     30                  instance of type u (not function type)
     31                returning
     32                  instance of type x (not function type)
    3533
    3634
    37       Declaration of u: a instance of type u
    38       Declaration of z: a instance of type x
     35        Declaration of u: instance of type u (not function type) with initializer
     36          Simple Initializer:             Name: y
    3937
    40 p: a instance of type y
     38        Declaration of z: instance of type x (not function type) with initializer
     39          Simple Initializer:             Applying untyped:
     40                Name: t
     41            ...to:
     42                Name: u
     43
     44
     45p: instance of type y (not function type)
    4146context has_u
    4247    with parameters
    43       z: a type
     48      z: type
    4449
    4550    with members
    46       u: a function
     51      u: function
    4752          with parameters
    48             instance of type z
     53            instance of type z (not function type)
    4954          returning
    50             instance of type z
     55            instance of type z (not function type)
    5156
    5257
    53 q: a function
    54     with parameters
    55       the_t: a instance of type t
    56     with forall
    57       t: a type
     58q: forall
     59      t: type
    5860        with assertions
     61          ?=?: function
     62              with parameters
     63                pointer to instance of type t (not function type)
     64                instance of type t (not function type)
     65              returning
     66                instance of type t (not function type)
     67
    5968          instance of context has_u
    6069            with parameters
    61               instance of type t
     70              instance of type t (not function type)
    6271
    6372
     73    function
     74    with parameters
     75      the_t: instance of type t (not function type)
    6476    returning
    65       instance of type y
     77      instance of type y (not function type)
    6678    with body
    67       Declaration of y: a instance of type t
     79      CompoundStmt
     80        Declaration of y: instance of type t (not function type) with initializer
     81          Simple Initializer:             Applying untyped:
     82                Name: u
     83            ...to:
     84                Name: the_t
    6885
    69 f: a function
     86
     87f: function
    7088    with parameters
    71       p: a instance of type y
     89      p: instance of type y (not function type)
    7290    returning
    73       instance of type t
     91      instance of type t (not function type)
    7492    with body
    75       Declaration of y: a signed int
    76       Declaration of x: a typedef for char
    77               Declaration of y: a instance of type x
    78         Declaration of z: a typedef for instance of type x
    79                   Declaration of x: a instance of type z
    80           Declaration of y: a typedef for instance of type z
    81           Declaration of z: a instance of type y
     93      CompoundStmt
     94        Declaration of y: signed int
     95        Declaration of x: typedef for char
     96                  CompoundStmt
     97            Declaration of y: instance of type x (not function type)
     98            Declaration of z: typedef for instance of type x (not function type)
     99                          CompoundStmt
     100                Declaration of x: instance of type z (not function type)
     101                Declaration of y: typedef for instance of type z (not function type)
     102                Declaration of z: instance of type y (not function type) with initializer
     103                  Simple Initializer:                     Name: x
    82104
    83         Declaration of x: a instance of type z
    84105
    85       Declaration of q: a instance of type x
     106            Declaration of x: instance of type z (not function type) with initializer
     107              Simple Initializer:                 Name: y
    86108
    87 g: a function
     109
     110        Declaration of q: instance of type x (not function type) with initializer
     111          Simple Initializer:             Name: y
     112
     113
     114g: function
    88115    with parameters
    89116      void
    90117    returning
    91       instance of type t
     118      instance of type t (not function type)
    92119    with body
    93       Declaration of x: a typedef for char
    94       Declaration of z: a instance of type x
     120      CompoundStmt
     121        Declaration of x: typedef for char
     122                  Try Statement
     123            with block:
     124              CompoundStmt
     125                                  Expression Statement:
     126                    Applying untyped:
     127                        Name: some_func
     128                    ...to:
    95129
    96 q: a function
     130            and handlers:
     131              Catch Statement
     132              ... catching
     133x: instance of type x (not function type)
     134
     135        Declaration of z: instance of type x (not function type)
     136
     137q: function
     138      accepting unspecified arguments
    97139    returning
    98       instance of type y
     140      instance of type y (not function type)
    99141    with parameter names
    100142      i
    101143    with parameter declarations
    102       i: a signed int
     144      i: signed int
    103145    with body
    104      
    105         Switch on condition:
    106             Name: i
     146      CompoundStmt
     147                  Switch on condition: Name: i
    107148
    108             Case:
    109             .... and 1 conditions
    110                 Name: 0
     149              Case Name: 0
    111150
    112             Case:
    113             .... and 0 conditions
     151                  Return Statement, returning: Name: q
     152
     153              Default
     154                  Return Statement, returning: Name: i
    114155
    115156
     157
  • src/Tests/SynTree/Expected/StructMember.tst

    rcd623a4 r5f2f2d7  
    1 T: a typedef for signed int
     1T: typedef for signed int
    22struct S
    33    with members
    4       m1: a signed int
    5       m2: a signed int
    6       signed int
    7       signed int
    8       signed int
    9       m3: a signed int
    10       m4: a signed int
    11       m5: a signed int
    12       m6: a signed int
    13       m7: a pointer to signed int
    14       m8: a pointer to signed int
    15       m9: a pointer to signed int
    16       m10: a pointer to function
     4      m1: signed int with bitfield width constant expression 3 signed int
     5      m2: signed int with bitfield width constant expression 4 signed int
     6      signed int with bitfield width constant expression 2 signed int
     7      signed int with bitfield width constant expression 3 signed int
     8      signed int with bitfield width constant expression 4 signed int
     9      m3: signed int
     10      m4: signed int
     11      m5: signed int
     12      m6: signed int
     13      m7: pointer to signed int
     14      m8: pointer to signed int
     15      m9: pointer to signed int
     16      m10: pointer to function
     17            accepting unspecified arguments
    1718          returning
    1819            signed int
    1920
    20       m11: a pointer to function
     21      m11: pointer to function
    2122          with parameters
    2223            signed int
     
    2425            pointer to signed int
    2526
    26       T: a instance of type T
    27       T: a instance of type T
    28       m12: a pointer to signed int
    29       m13: a pointer to signed int
    30       m14: a pointer to function
     27      T: instance of type T (not function type)
     28      T: instance of type T (not function type)
     29      m12: pointer to signed int
     30      m13: pointer to signed int
     31      m14: pointer to function
    3132          with parameters
    3233            signed int
     
    4849      pointer to signed int
    4950      pointer to function
     51            accepting unspecified arguments
    5052          returning
    5153            signed int
     
    5759            signed int
    5860
    59       instance of type T
     61      instance of type T (not function type)
    6062
    61 s: a instance of struct S
     63s: instance of struct S
    6264union U
    6365    with members
    64       m1: a open array of signed int
    65       m2: a open array of signed int
    66       m3: a pointer to signed int
    67       m4: a pointer to signed int
     66      m1: array of signed int with dimension of constant expression 5 signed int
     67      m2: array of signed int with dimension of constant expression 5 signed int
     68      m3: pointer to signed int
     69      m4: pointer to signed int
    6870
    69 u: a instance of union U
     71u: instance of union U
  • src/Tests/SynTree/Expected/Tuple.tst

    rcd623a4 r5f2f2d7  
    1 f: a function
    2     with parameters
    3       signed int
    4       signed int
    5     returning
    6       signed int
    7 
    8 g: a function
    9     with parameters
    10       signed int
    11       signed int
    12       signed int
    13     returning
    14       signed int
    15 
    16 h: a static function
    17     with parameters
    18       a: a signed int
    19       b: a signed int
    20       c: a pointer to signed int
    21       d: a open array of char
     1f: function
     2    with parameters
     3      signed int
     4      signed int
     5    returning
     6      signed int
     7
     8g: function
     9    with parameters
     10      signed int
     11      signed int
     12      signed int
     13    returning
     14      signed int
     15
     16h: static function
     17    with parameters
     18      a: signed int
     19      b: signed int
     20      c: pointer to signed int
     21      d: open array of char
    2222    returning
    2323      signed int
     
    2828struct inner
    2929    with members
    30       f2: a signed int
    31       f3: a signed int
     30      f2: signed int
     31      f3: signed int
    3232
    3333struct outer
    3434    with members
    35       f1: a signed int
    36       i: a instance of struct inner
    37       f4: a double
    38 
    39 s: a instance of struct outer
    40 sp: a pointer to instance of struct outer
    41 t1: a const volatile tuple of types
     35      f1: signed int
     36      i: instance of struct inner
     37      f4: double
     38
     39s: instance of struct outer
     40sp: pointer to instance of struct outer
     41t1: const volatile tuple of types
    4242    signed int
    4343    signed int
    4444
    45 t2: a static const tuple of types
     45t2: static const tuple of types
    4646    signed int
    4747    const signed int
    4848
    49 t3: a static const tuple of types
     49t3: static const tuple of types
    5050    signed int
    5151    const signed int
    5252
    53 printf: a function
    54     with parameters
    55       fmt: a pointer to char
     53printf: function
     54    with parameters
     55      fmt: pointer to char
    5656      and a variable number of other arguments
    5757    returning
    58       rc: a signed int
    59 
    60 printf: a function
    61     with parameters
    62       fmt: a pointer to char
     58      rc: signed int
     59
     60printf: function
     61    with parameters
     62      fmt: pointer to char
    6363      and a variable number of other arguments
    6464    returning
    6565      signed int
    6666
    67 f1: a function
    68     with parameters
    69       w: a signed int
    70     returning
    71       x: a short signed int
    72       y: a unsigned int
     67f1: function
     68    with parameters
     69      w: signed int
     70    returning
     71      x: short signed int
     72      y: unsigned int
    7373    with body
    74 
    75 g1: a function
    76     returning
    77       r: a tuple of types
     74      CompoundStmt
     75                  Expression Statement:
     76            Applying untyped:
     77                Name: ?=?
     78            ...to:
     79                Address of:
     80                  Tuple:
     81                                          Name: y
     82
     83                                          Name: x
     84
     85                Applying untyped:
     86                    Name: ?=?
     87                ...to:
     88                    Address of:
     89                      Tuple:
     90                                                  Name: x
     91
     92                                                  Name: y
     93
     94                    Tuple:
     95                                              Name: w
     96
     97                      constant expression 23 signed int
     98
     99
     100g1: function
     101    returning
     102      r: tuple of types
    78103          signed int
    79104          char
     
    82107
    83108    with body
    84       Declaration of x: a short signed int
    85       Declaration of p: a short signed int
    86       Declaration of y: a unsigned int
    87       Declaration of z: a tuple of types
    88           signed int
    89           signed int
    90 
    91 
    92 main: a function
    93     with parameters
    94       argc: a signed int
    95       argv: a pointer to pointer to char
    96     returning
    97       rc: a signed int
     109      CompoundStmt
     110        Declaration of x: short signed int
     111        Declaration of p: short signed int
     112        Declaration of y: unsigned int
     113        Declaration of z: tuple of types
     114            signed int
     115            signed int
     116
     117                  Expression Statement:
     118            Applying untyped:
     119                Name: ?=?
     120            ...to:
     121                Address of:
     122                  Tuple:
     123                                          Name: x
     124
     125                                          Name: y
     126
     127                                          Name: z
     128
     129                Tuple:
     130                                      Name: p
     131
     132                                      Applying untyped:
     133                        Name: f
     134                    ...to:
     135constant expression 17 signed int
     136                  constant expression 3 signed int
     137
     138                  Expression Statement:
     139            Applying untyped:
     140                Name: ?=?
     141            ...to:
     142                Address of:
     143                  Name: r
     144                Tuple:
     145                                      Name: x
     146
     147                                      Name: y
     148
     149                                      Name: z
     150
     151
     152
     153main: C function
     154    with parameters
     155      argc: signed int
     156      argv: pointer to pointer to char
     157    returning
     158      rc: signed int
    98159    with body
    99       Declaration of a: a signed int
    100       Declaration of b: a signed int
    101       Declaration of c: a signed int
    102       Declaration of d: a signed int
    103       Declaration of t: a instance of struct outer
    104 
     160      CompoundStmt
     161        Declaration of a: signed int
     162        Declaration of b: signed int
     163        Declaration of c: signed int
     164        Declaration of d: signed int
     165        Declaration of t: instance of struct outer with initializer
     166          Compound initializer: 
     167            Simple Initializer:               Tuple:
     168                                  Name: 1
     169
     170                constant expression 7.0 double
     171
     172              designated by:                 Name: f1
     173                Name: f4
     174
     175                  Expression Statement:
     176            Applying untyped:
     177                Name: f
     178            ...to:
     179                Tuple:
     180                  constant expression 3 signed int
     181                  constant expression 5 signed int
     182
     183                  Expression Statement:
     184            Applying untyped:
     185                Name: g
     186            ...to:
     187                Tuple:
     188                  constant expression 3 signed int
     189                  constant expression 5 signed int
     190constant expression 3 signed int
     191                  Expression Statement:
     192            Applying untyped:
     193                Name: f
     194            ...to:
     195                Name: t1
     196
     197                  Expression Statement:
     198            Applying untyped:
     199                Name: g
     200            ...to:
     201                Name: t1
     202constant expression 3 signed int
     203                  Expression Statement:
     204            Tuple:
     205              constant expression 3 signed int
     206              constant expression 5 signed int
     207
     208                  Expression Statement:
     209            Applying untyped:
     210                Name: ?=?
     211            ...to:
     212                Address of:
     213                  Tuple:
     214                                          Name: a
     215
     216                                          Name: b
     217
     218constant expression 3 signed int
     219                  Expression Statement:
     220            Applying untyped:
     221                Name: ?=?
     222            ...to:
     223                Address of:
     224                  Tuple:
     225                                          Name: a
     226
     227                                          Name: b
     228
     229                Tuple:
     230                  constant expression 4.6 double
     231
     232                  Expression Statement:
     233            Applying untyped:
     234                Name: ?=?
     235            ...to:
     236                Address of:
     237                  Tuple:
     238                                          Name: a
     239
     240                                          Name: b
     241
     242                Applying untyped:
     243                    Name: ?=?
     244                ...to:
     245                    Address of:
     246                      Tuple:
     247                                                  Name: c
     248
     249                                                  Name: d
     250
     251                    Tuple:
     252                      constant expression 3 signed int
     253                      constant expression 5 signed int
     254
     255                  Expression Statement:
     256            Applying untyped:
     257                Name: ?=?
     258            ...to:
     259                Address of:
     260                  Tuple:
     261                                          Name: a
     262
     263                                          Name: b
     264
     265                                          Tuple:
     266                                                  Name: c
     267
     268
     269                Tuple:
     270                  constant expression 2 signed int
     271                                      Tuple:
     272                                              Name: a
     273
     274                                              Name: b
     275
     276
     277
     278                  Expression Statement:
     279            Applying untyped:
     280                Name: ?=?
     281            ...to:
     282                Address of:
     283                  Tuple:
     284                                          Name: a
     285
     286                                          Name: b
     287
     288                Conditional expression on:
     289                  Cast of:
     290                    Applying untyped:
     291                        Name: ?!=?
     292                    ...to:
     293                        Applying untyped:
     294                            Name: ?>?
     295                        ...to:
     296constant expression 3 signed int constant expression 4 signed int                         Name: 0
     297
     298                  to:
     299                    signed int
     300                First alternative:
     301                  Tuple:
     302                                          Name: b
     303
     304                    constant expression 6 signed int
     305                Second alternative:
     306                  Tuple:
     307                    constant expression 7 signed int
     308                    constant expression 8 signed int
     309
     310
     311                  Expression Statement:
     312            Applying untyped:
     313                Name: ?=?
     314            ...to:
     315                Address of:
     316                  Name: t1
     317                Tuple:
     318                                      Name: a
     319
     320                                      Name: b
     321
     322
     323                  Expression Statement:
     324            Applying untyped:
     325                Name: ?=?
     326            ...to:
     327                Address of:
     328                  Name: t1
     329                Applying untyped:
     330                    Name: ?=?
     331                ...to:
     332                    Address of:
     333                      Name: t2
     334                    Tuple:
     335                                              Name: a
     336
     337                                              Name: b
     338
     339
     340                  Expression Statement:
     341            Applying untyped:
     342                Name: ?=?
     343            ...to:
     344                Address of:
     345                  Tuple:
     346                                          Name: a
     347
     348                                          Name: b
     349
     350                Applying untyped:
     351                    Name: ?=?
     352                ...to:
     353                    Address of:
     354                      Tuple:
     355                                                  Name: c
     356
     357                                                  Name: d
     358
     359                    Applying untyped:
     360                        Name: ?+=?
     361                    ...to:
     362                        Address of:
     363                          Name: d
     364                        Applying untyped:
     365                            Name: ?+=?
     366                        ...to:
     367                            Address of:
     368                              Name: c
     369                            Name: 1
     370
     371                  Expression Statement:
     372            Applying untyped:
     373                Name: ?=?
     374            ...to:
     375                Address of:
     376                  Tuple:
     377                                          Name: a
     378
     379                                          Name: b
     380
     381                Applying untyped:
     382                    Name: ?=?
     383                ...to:
     384                    Address of:
     385                      Tuple:
     386                                                  Name: c
     387
     388                                                  Name: d
     389
     390                    Name: t1
     391
     392                  Expression Statement:
     393            Applying untyped:
     394                Name: ?=?
     395            ...to:
     396                Address of:
     397                  Tuple:
     398                                          Name: a
     399
     400                                          Name: b
     401
     402                Applying untyped:
     403                    Name: ?=?
     404                ...to:
     405                    Address of:
     406                      Name: t1
     407                    Tuple:
     408                                              Name: c
     409
     410                                              Name: d
     411
     412
     413                  Expression Statement:
     414            Applying untyped:
     415                Name: ?=?
     416            ...to:
     417                Address of:
     418                  Tuple:
     419                                          Name: a
     420
     421                                          Name: b
     422
     423                Applying untyped:
     424                    Name: ?=?
     425                ...to:
     426                    Address of:
     427                      Name: t1
     428                    Applying untyped:
     429                        Name: ?=?
     430                    ...to:
     431                        Address of:
     432                          Name: t2
     433                        Tuple:
     434                                                      Name: c
     435
     436                                                      Name: d
     437
     438
     439                  Expression Statement:
     440            Applying untyped:
     441                Name: ?=?
     442            ...to:
     443                Address of:
     444                  Name: t1
     445                Applying untyped:
     446                    Name: ?=?
     447                ...to:
     448                    Address of:
     449                      Tuple:
     450                        constant expression 3 signed int
     451                        constant expression 4 signed int
     452                    Applying untyped:
     453                        Name: ?=?
     454                    ...to:
     455                        Address of:
     456                          Tuple:
     457                            constant expression 3 signed int
     458                            constant expression 4 signed int
     459                        Applying untyped:
     460                            Name: ?=?
     461                        ...to:
     462                            Address of:
     463                              Name: t1
     464                            Tuple:
     465                              constant expression 3 signed int
     466                              constant expression 4 signed int
     467
     468                  Expression Statement:
     469            Applying untyped:
     470                Name: ?=?
     471            ...to:
     472                Address of:
     473                  Name: s
     474                Tuple:
     475                  constant expression 11 signed int
     476                  constant expression 12 signed int
     477                  constant expression 13 signed int
     478                  constant expression 3.14159 double
     479
     480                  Expression Statement:
     481            Applying untyped:
     482                Name: ?=?
     483            ...to:
     484                Address of:
     485                  Name: s
     486                Applying untyped:
     487                    Name: h
     488                ...to:
     489constant expression 3 signed int constant expression 3 signed int                     Name: 0
     490constant expression "abc" array of char with dimension of constant expression 6 unsigned int
     491                  Expression Statement:
     492            Applying untyped:
     493                Name: ?=?
     494            ...to:
     495                Address of:
     496                  Name: sp
     497                Name: sp
     498
     499                  Expression Statement:
     500            Applying untyped:
     501                Name: printf
     502            ...to:
     503constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int                 Name: s
     504
     505                  Expression Statement:
     506            Applying untyped:
     507                Name: ?=?
     508            ...to:
     509                Address of:
     510                  Name: rc
     511                Name: 0
     512
     513
  • src/Tests/SynTree/Expected/TypeGenerator.tst

    rcd623a4 r5f2f2d7  
    11context addable
    22    with parameters
    3       T: a type
     3      T: type
    44
    55    with members
    6       ?+?: a function
     6      ?+?: function
    77          with parameters
    8             instance of type T
    9             instance of type T
     8            instance of type T (not function type)
     9            instance of type T (not function type)
    1010          returning
    11             instance of type T
     11            instance of type T (not function type)
    1212
    1313
    1414struct __anonymous0
    1515    with members
    16       data: a instance of type T
    17       next: a pointer to instance of type List
     16      data: instance of type T (not function type)
     17      next: pointer to instance of type List (not function type)
    1818        with parameters
    19           instance of type T
     19          instance of type T (not function type)
    2020
    2121
    22 List: a type for pointer to instance of struct __anonymous0
     22List: type for pointer to instance of struct __anonymous0
    2323  with parameters
    24     T: a type
     24    T: type
    2525      with assertions
    2626        instance of context addable
    2727          with parameters
    28             instance of type T
     28            instance of type T (not function type)
    2929
    3030
     
    3333    instance of context addable
    3434      with parameters
    35         instance of type T
     35        instance of type T (not function type)
    3636
    3737
    38 ListOfIntegers: a typedef for instance of type List
     38ListOfIntegers: typedef for instance of type List (not function type)
    3939  with parameters
    4040    signed int
    4141
    42 li: a instance of type ListOfIntegers
    43 f: a function
     42li: instance of type ListOfIntegers (not function type)
     43f: function
    4444    with parameters
    45       g: a pointer to function
     45      g: pointer to function
    4646          with parameters
    4747            signed int
    4848          returning
    49             instance of type List
     49            instance of type List (not function type)
    5050              with parameters
    5151                signed int
     
    5555      signed int
    5656
    57 h: a function
     57h: function
    5858    with parameters
    59       p: a pointer to instance of type List
     59      p: pointer to instance of type List (not function type)
    6060        with parameters
    6161          signed int
     
    6666struct node
    6767    with parameters
    68       T: a type
     68      T: type
    6969        with assertions
    7070          instance of context addable
    7171            with parameters
    72               instance of type T
     72              instance of type T (not function type)
    7373
    7474
    7575
    7676    with members
    77       data: a instance of type T
    78       next: a pointer to instance of struct node
     77      data: instance of type T (not function type)
     78      next: pointer to instance of struct node
    7979        with parameters
    80           instance of type T
     80          instance of type T (not function type)
    8181
    8282
    83 List: a type for pointer to instance of struct node
     83List: type for pointer to instance of struct node
    8484  with parameters
    85     instance of type T
     85    instance of type T (not function type)
    8686
    8787  with parameters
    88     T: a type
     88    T: type
    8989
    90 my_list: a instance of type List
     90my_list: instance of type List (not function type)
    9191  with parameters
    9292    signed int
    9393
    94 Complex: a type
     94Complex: type
    9595  with assertions
    9696    instance of context addable
    9797      with parameters
    98         instance of type Complex
     98        instance of type Complex (not function type)
    9999
    100100
    101 main: a function
     101main: C function
     102      accepting unspecified arguments
    102103    returning
    103104      signed int
    104105    with body
    105      
    106         Expression Statement:
    107           Cast of:
    108             Name: my_list
     106      CompoundStmt
     107                  Expression Statement:
     108            Cast of:
     109              Name: my_list
    109110
    110           to:
    111             instance of struct node
    112               with parameters
    113                 signed int
     111            to:
     112              instance of struct node
     113                with parameters
     114                  signed int
    114115
    115116
  • src/Tests/SynTree/Expected/Typedef.tst

    rcd623a4 r5f2f2d7  
    1 T: a typedef for signed int
    2 f: a function
     1T: typedef for signed int
     2f: function
    33    with parameters
    44      void
     
    66      void
    77    with body
    8       Declaration of T: a function
    9           with parameters
    10             instance of type T
    11           returning
    12             signed int
     8      CompoundStmt
     9        Declaration of T: function
     10            with parameters
     11              instance of type T (not function type)
     12            returning
     13              signed int
    1314
     15                  Expression Statement:
     16            Applying untyped:
     17                Name: T
     18            ...to:
     19constant expression 3 signed int
    1420
    1521struct __anonymous0
    1622    with members
    17       T: a instance of type T
     23      T: instance of type T (not function type)
    1824
    19 fred: a instance of struct __anonymous0
    20 a: a typedef for pointer to function
     25fred: instance of struct __anonymous0 with initializer
     26  Compound initializer: 
     27    Simple Initializer: constant expression 3 signed int
     28a: typedef for pointer to function
    2129    with parameters
    2230      signed int
     
    2533      signed int
    2634
    27 b: a instance of type a
    28 g: a function
     35b: instance of type a (not function type)
     36g: function
    2937    with parameters
    3038      void
     
    3240      signed int
    3341    with body
    34       Declaration of a: a double
     42      CompoundStmt
     43        Declaration of a: double
    3544
    36 c: a instance of type a
    37 main: a function
     45c: instance of type a (not function type)
     46main: C function
     47      accepting unspecified arguments
    3848    returning
    3949      signed int
    4050    with body
     51      CompoundStmt
    4152
    42 arrayOf10Pointers: a typedef for open array of pointer to signed int
    43 x: a instance of type arrayOf10Pointers
    44 constantPointer: a typedef for const pointer to signed int
    45 funcPtr: a typedef for pointer to function
     53arrayOf10Pointers: typedef for array of pointer to signed int with dimension of constant expression 10 signed int
     54x: instance of type arrayOf10Pointers (not function type)
     55constantPointer: typedef for const pointer to signed int
     56funcPtr: typedef for pointer to function
    4657    with parameters
    4758      open array of signed int
     
    4960      signed int
    5061
    51 funcProto: a typedef for function
     62funcProto: typedef for function
    5263    with parameters
    5364      open array of signed int
     
    5566      signed int
    5667
    57 tupleType: a typedef for tuple of types
     68tupleType: typedef for tuple of types
    5869    signed int
    5970    signed int
    6071
    61 tupleTypePtr: a typedef for pointer to tuple of types
     72tupleTypePtr: typedef for pointer to tuple of types
    6273    signed int
    6374    signed int
    6475
    65 a: a typedef for pointer to signed int
    66 b: a typedef for pointer to signed int
    67 f: a typedef for function
     76a: typedef for pointer to signed int
     77b: typedef for pointer to signed int
     78f: typedef for function
    6879    with parameters
    6980      pointer to signed int
     
    7182      signed int
    7283
    73 g: a typedef for function
     84g: typedef for function
    7485    with parameters
    7586      pointer to signed int
     
    7788      signed int
    7889
    79 t: a typedef for tuple of types
    80     pointer to static open array of signed int
     90t: typedef for tuple of types
     91    pointer to static array of signed int with dimension of constant expression 10 signed int
    8192
    82 f: a typedef for function
     93f: typedef for function
    8394    returning
    84       x: a pointer to static open array of signed int
     95      x: pointer to static array of signed int with dimension of constant expression 10 signed int
    8596
  • src/Tests/SynTree/Expected/TypedefDeclarator.tst

    rcd623a4 r5f2f2d7  
    1 f0: a typedef for signed int
    2 f1: a typedef for signed int
    3 f2: a typedef for signed int
    4 f3: a typedef for signed int
    5 f4: a typedef for signed int
    6 f5: a typedef for signed int
    7 f6: a typedef for signed int
    8 f7: a typedef for signed int
    9 f8: a typedef for signed int
    10 f9: a typedef for signed int
    11 f10: a typedef for signed int
    12 f11: a typedef for signed int
    13 f12: a typedef for signed int
    14 f13: a typedef for signed int
    15 f14: a typedef for signed int
    16 f15: a typedef for signed int
    17 f16: a typedef for signed int
    18 f17: a typedef for signed int
    19 f18: a typedef for signed int
    20 f19: a typedef for signed int
    21 f20: a typedef for signed int
    22 f21: a typedef for signed int
    23 f22: a typedef for signed int
    24 f23: a typedef for signed int
    25 f24: a typedef for signed int
    26 f25: a typedef for signed int
    27 f26: a typedef for signed int
    28 f27: a typedef for signed int
    29 f28: a typedef for signed int
    30 f29: a typedef for signed int
    31 f30: a typedef for signed int
    32 f31: a typedef for signed int
    33 f32: a typedef for signed int
    34 f33: a typedef for signed int
    35 f34: a typedef for signed int
    36 f35: a typedef for signed int
    37 f36: a typedef for signed int
    38 f37: a typedef for signed int
    39 f38: a typedef for signed int
    40 f39: a typedef for signed int
    41 f40: a typedef for signed int
    42 f41: a typedef for signed int
    43 f42: a typedef for signed int
    44 f43: a typedef for signed int
    45 f44: a typedef for signed int
    46 f45: a typedef for signed int
    47 f46: a typedef for signed int
    48 f47: a typedef for signed int
    49 f48: a typedef for signed int
    50 f49: a typedef for signed int
    51 f50: a typedef for signed int
    52 f51: a typedef for signed int
    53 f52: a typedef for signed int
    54 f53: a typedef for signed int
    55 f54: a typedef for signed int
    56 f55: a typedef for signed int
    57 f56: a typedef for signed int
    58 f57: a typedef for signed int
    59 f58: a typedef for signed int
    60 f59: a typedef for signed int
    61 f60: a typedef for signed int
    62 f61: a typedef for signed int
    63 f62: a typedef for signed int
    64 f63: a typedef for signed int
    65 f64: a typedef for signed int
    66 f65: a typedef for signed int
    67 f66: a typedef for signed int
    68 f67: a typedef for signed int
    69 f68: a typedef for signed int
    70 f69: a typedef for signed int
    71 f70: a typedef for signed int
    72 f71: a typedef for signed int
    73 f72: a typedef for signed int
    74 f73: a typedef for signed int
    75 f74: a typedef for signed int
    76 f75: a typedef for signed int
    77 f76: a typedef for signed int
    78 f77: a typedef for signed int
    79 f78: a typedef for signed int
    80 f79: a typedef for signed int
    81 f80: a typedef for signed int
    82 f81: a typedef for signed int
    83 f82: a typedef for signed int
    84 f83: a typedef for signed int
    85 f84: a typedef for signed int
    86 f85: a typedef for signed int
    87 f86: a typedef for signed int
    88 f87: a typedef for signed int
    89 f88: a typedef for signed int
    90 f89: a typedef for signed int
    91 main: a function
     1f0: typedef for signed int
     2f1: typedef for signed int
     3f2: typedef for signed int
     4f3: typedef for signed int
     5f4: typedef for signed int
     6f5: typedef for signed int
     7f6: typedef for signed int
     8f7: typedef for signed int
     9f8: typedef for signed int
     10f9: typedef for signed int
     11f10: typedef for signed int
     12f11: typedef for signed int
     13f12: typedef for signed int
     14f13: typedef for signed int
     15f14: typedef for signed int
     16f15: typedef for signed int
     17f16: typedef for signed int
     18f17: typedef for signed int
     19f18: typedef for signed int
     20f19: typedef for signed int
     21f20: typedef for signed int
     22f21: typedef for signed int
     23f22: typedef for signed int
     24f23: typedef for signed int
     25f24: typedef for signed int
     26f25: typedef for signed int
     27f26: typedef for signed int
     28f27: typedef for signed int
     29f28: typedef for signed int
     30f29: typedef for signed int
     31f30: typedef for signed int
     32f31: typedef for signed int
     33f32: typedef for signed int
     34f33: typedef for signed int
     35f34: typedef for signed int
     36f35: typedef for signed int
     37f36: typedef for signed int
     38f37: typedef for signed int
     39f38: typedef for signed int
     40f39: typedef for signed int
     41f40: typedef for signed int
     42f41: typedef for signed int
     43f42: typedef for signed int
     44f43: typedef for signed int
     45f44: typedef for signed int
     46f45: typedef for signed int
     47f46: typedef for signed int
     48f47: typedef for signed int
     49f48: typedef for signed int
     50f49: typedef for signed int
     51f50: typedef for signed int
     52f51: typedef for signed int
     53f52: typedef for signed int
     54f53: typedef for signed int
     55f54: typedef for signed int
     56f55: typedef for signed int
     57f56: typedef for signed int
     58f57: typedef for signed int
     59f58: typedef for signed int
     60f59: typedef for signed int
     61f60: typedef for signed int
     62f61: typedef for signed int
     63f62: typedef for signed int
     64f63: typedef for signed int
     65f64: typedef for signed int
     66f65: typedef for signed int
     67f66: typedef for signed int
     68f67: typedef for signed int
     69f68: typedef for signed int
     70f69: typedef for signed int
     71f70: typedef for signed int
     72f71: typedef for signed int
     73f72: typedef for signed int
     74f73: typedef for signed int
     75f74: typedef for signed int
     76f75: typedef for signed int
     77f76: typedef for signed int
     78f77: typedef for signed int
     79f78: typedef for signed int
     80f79: typedef for signed int
     81f80: typedef for signed int
     82f81: typedef for signed int
     83f82: typedef for signed int
     84f83: typedef for signed int
     85f84: typedef for signed int
     86f85: typedef for signed int
     87f86: typedef for signed int
     88f87: typedef for signed int
     89f88: typedef for signed int
     90f89: typedef for signed int
     91main: C function
     92      accepting unspecified arguments
    9293    returning
    9394      signed int
    9495    with body
    95       Declaration of f1: a signed int
    96       Declaration of f2: a signed int
    97       Declaration of f3: a pointer to signed int
    98       Declaration of f4: a pointer to pointer to signed int
    99       Declaration of f5: a pointer to const pointer to signed int
    100       Declaration of f6: a const pointer to const pointer to signed int
    101       Declaration of f7: a pointer to signed int
    102       Declaration of f8: a pointer to pointer to signed int
    103       Declaration of f9: a pointer to const pointer to signed int
    104       Declaration of f10: a const pointer to const pointer to signed int
    105       Declaration of f11: a pointer to signed int
    106       Declaration of f12: a pointer to pointer to signed int
    107       Declaration of f13: a pointer to const pointer to signed int
    108       Declaration of f14: a const pointer to const pointer to signed int
    109       Declaration of f15: a open array of signed int
    110       Declaration of f16: a open array of signed int
    111       Declaration of f17: a open array of signed int
    112       Declaration of f18: a open array of signed int
    113       Declaration of f19: a open array of pointer to signed int
    114       Declaration of f20: a open array of pointer to signed int
    115       Declaration of f21: a open array of pointer to pointer to signed int
    116       Declaration of f22: a open array of pointer to pointer to signed int
    117       Declaration of f23: a open array of pointer to const pointer to signed int
    118       Declaration of f24: a open array of pointer to const pointer to signed int
    119       Declaration of f25: a open array of const pointer to const pointer to signed int
    120       Declaration of f26: a open array of const pointer to const pointer to signed int
    121       Declaration of f27: a open array of pointer to signed int
    122       Declaration of f28: a open array of pointer to signed int
    123       Declaration of f29: a open array of pointer to pointer to signed int
    124       Declaration of f30: a open array of pointer to pointer to signed int
    125       Declaration of f31: a open array of pointer to const pointer to signed int
    126       Declaration of f32: a open array of pointer to const pointer to signed int
    127       Declaration of f33: a open array of const pointer to const pointer to signed int
    128       Declaration of f34: a open array of const pointer to const pointer to signed int
    129       Declaration of f35: a open array of pointer to signed int
    130       Declaration of f36: a open array of pointer to signed int
    131       Declaration of f37: a open array of pointer to pointer to signed int
    132       Declaration of f38: a open array of pointer to pointer to signed int
    133       Declaration of f39: a open array of pointer to const pointer to signed int
    134       Declaration of f40: a open array of pointer to const pointer to signed int
    135       Declaration of f41: a open array of const pointer to const pointer to signed int
    136       Declaration of f42: a open array of const pointer to const pointer to signed int
    137       Declaration of f43: a open array of open array of signed int
    138       Declaration of f44: a open array of open array of signed int
    139       Declaration of f45: a open array of open array of signed int
    140       Declaration of f46: a open array of open array of signed int
    141       Declaration of f47: a open array of open array of signed int
    142       Declaration of f48: a open array of open array of signed int
    143       Declaration of f49: a open array of open array of pointer to signed int
    144       Declaration of f50: a open array of open array of pointer to signed int
    145       Declaration of f51: a open array of open array of pointer to pointer to signed int
    146       Declaration of f52: a open array of open array of pointer to pointer to signed int
    147       Declaration of f53: a open array of open array of pointer to const pointer to signed int
    148       Declaration of f54: a open array of open array of pointer to const pointer to signed int
    149       Declaration of f55: a open array of open array of const pointer to const pointer to signed int
    150       Declaration of f56: a open array of open array of const pointer to const pointer to signed int
    151       Declaration of f57: a open array of open array of pointer to signed int
    152       Declaration of f58: a open array of open array of pointer to signed int
    153       Declaration of f59: a open array of open array of pointer to pointer to signed int
    154       Declaration of f60: a open array of open array of pointer to pointer to signed int
    155       Declaration of f61: a open array of open array of pointer to const pointer to signed int
    156       Declaration of f62: a open array of open array of pointer to const pointer to signed int
    157       Declaration of f63: a open array of open array of const pointer to const pointer to signed int
    158       Declaration of f64: a open array of open array of const pointer to const pointer to signed int
    159       Declaration of f65: a function
    160           with parameters
    161             signed int
    162           returning
    163             signed int
    164 
    165       Declaration of f66: a function
    166           with parameters
    167             signed int
    168           returning
    169             signed int
    170 
    171       Declaration of f67: a function
    172           with parameters
    173             signed int
    174           returning
    175             pointer to signed int
    176 
    177       Declaration of f68: a function
    178           with parameters
    179             signed int
    180           returning
    181             pointer to pointer to signed int
    182 
    183       Declaration of f69: a function
    184           with parameters
    185             signed int
    186           returning
    187             pointer to const pointer to signed int
    188 
    189       Declaration of f70: a function
    190           with parameters
    191             signed int
    192           returning
    193             const pointer to const pointer to signed int
    194 
    195       Declaration of f71: a function
    196           with parameters
    197             signed int
    198           returning
    199             pointer to signed int
    200 
    201       Declaration of f72: a function
    202           with parameters
    203             signed int
    204           returning
    205             pointer to pointer to signed int
    206 
    207       Declaration of f73: a function
    208           with parameters
    209             signed int
    210           returning
    211             pointer to const pointer to signed int
    212 
    213       Declaration of f74: a function
    214           with parameters
    215             signed int
    216           returning
    217             const pointer to const pointer to signed int
    218 
    219       Declaration of f75: a pointer to function
    220           with parameters
    221             signed int
    222           returning
    223             signed int
    224 
    225       Declaration of f76: a pointer to pointer to function
    226           with parameters
    227             signed int
    228           returning
    229             signed int
    230 
    231       Declaration of f77: a pointer to const pointer to function
    232           with parameters
    233             signed int
    234           returning
    235             signed int
    236 
    237       Declaration of f78: a const pointer to const pointer to function
    238           with parameters
    239             signed int
    240           returning
    241             signed int
    242 
    243       Declaration of f79: a pointer to function
    244           with parameters
    245             signed int
    246           returning
    247             pointer to function
    248                 returning
    249                   signed int
    250 
    251 
    252       Declaration of f80: a const pointer to function
    253           with parameters
    254             signed int
    255           returning
    256             pointer to function
    257                 returning
    258                   signed int
    259 
    260 
    261       Declaration of f81: a const pointer to function
    262           with parameters
    263             signed int
    264           returning
    265             const pointer to function
    266                 returning
    267                   signed int
    268 
    269 
    270 
     96      CompoundStmt
     97        Declaration of f1: signed int
     98        Declaration of f2: signed int
     99        Declaration of f3: pointer to signed int
     100        Declaration of f4: pointer to pointer to signed int
     101        Declaration of f5: pointer to const pointer to signed int
     102        Declaration of f6: const pointer to const pointer to signed int
     103        Declaration of f7: pointer to signed int
     104        Declaration of f8: pointer to pointer to signed int
     105        Declaration of f9: pointer to const pointer to signed int
     106        Declaration of f10: const pointer to const pointer to signed int
     107        Declaration of f11: pointer to signed int
     108        Declaration of f12: pointer to pointer to signed int
     109        Declaration of f13: pointer to const pointer to signed int
     110        Declaration of f14: const pointer to const pointer to signed int
     111        Declaration of f15: open array of signed int
     112        Declaration of f16: array of signed int with dimension of constant expression 10 signed int
     113        Declaration of f17: open array of signed int
     114        Declaration of f18: array of signed int with dimension of constant expression 10 signed int
     115        Declaration of f19: open array of pointer to signed int
     116        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int
     117        Declaration of f21: open array of pointer to pointer to signed int
     118        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     119        Declaration of f23: open array of pointer to const pointer to signed int
     120        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     121        Declaration of f25: open array of const pointer to const pointer to signed int
     122        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     123        Declaration of f27: open array of pointer to signed int
     124        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int
     125        Declaration of f29: open array of pointer to pointer to signed int
     126        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     127        Declaration of f31: open array of pointer to const pointer to signed int
     128        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     129        Declaration of f33: open array of const pointer to const pointer to signed int
     130        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     131        Declaration of f35: open array of pointer to signed int
     132        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int
     133        Declaration of f37: open array of pointer to pointer to signed int
     134        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     135        Declaration of f39: open array of pointer to const pointer to signed int
     136        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     137        Declaration of f41: open array of const pointer to const pointer to signed int
     138        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     139        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int
     140        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     141        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int
     142        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     143        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int
     144        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     145        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int
     146        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     147        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int
     148        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     149        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int
     150        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     151        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int
     152        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     153        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int
     154        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     155        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int
     156        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     157        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int
     158        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     159        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int
     160        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     161        Declaration of f65: function
     162            with parameters
     163              signed int
     164            returning
     165              signed int
     166
     167        Declaration of f66: function
     168            with parameters
     169              signed int
     170            returning
     171              signed int
     172
     173        Declaration of f67: function
     174            with parameters
     175              signed int
     176            returning
     177              pointer to signed int
     178
     179        Declaration of f68: function
     180            with parameters
     181              signed int
     182            returning
     183              pointer to pointer to signed int
     184
     185        Declaration of f69: function
     186            with parameters
     187              signed int
     188            returning
     189              pointer to const pointer to signed int
     190
     191        Declaration of f70: function
     192            with parameters
     193              signed int
     194            returning
     195              const pointer to const pointer to signed int
     196
     197        Declaration of f71: function
     198            with parameters
     199              signed int
     200            returning
     201              pointer to signed int
     202
     203        Declaration of f72: function
     204            with parameters
     205              signed int
     206            returning
     207              pointer to pointer to signed int
     208
     209        Declaration of f73: function
     210            with parameters
     211              signed int
     212            returning
     213              pointer to const pointer to signed int
     214
     215        Declaration of f74: function
     216            with parameters
     217              signed int
     218            returning
     219              const pointer to const pointer to signed int
     220
     221        Declaration of f75: pointer to function
     222            with parameters
     223              signed int
     224            returning
     225              signed int
     226
     227        Declaration of f76: pointer to pointer to function
     228            with parameters
     229              signed int
     230            returning
     231              signed int
     232
     233        Declaration of f77: pointer to const pointer to function
     234            with parameters
     235              signed int
     236            returning
     237              signed int
     238
     239        Declaration of f78: const pointer to const pointer to function
     240            with parameters
     241              signed int
     242            returning
     243              signed int
     244
     245        Declaration of f79: pointer to function
     246            with parameters
     247              signed int
     248            returning
     249              pointer to function
     250                    accepting unspecified arguments
     251                  returning
     252                    signed int
     253
     254
     255        Declaration of f80: const pointer to function
     256            with parameters
     257              signed int
     258            returning
     259              pointer to function
     260                    accepting unspecified arguments
     261                  returning
     262                    signed int
     263
     264
     265        Declaration of f81: const pointer to function
     266            with parameters
     267              signed int
     268            returning
     269              const pointer to function
     270                    accepting unspecified arguments
     271                  returning
     272                    signed int
     273
     274
     275
  • src/Tests/SynTree/Expected/TypedefParamDeclarator.tst

    rcd623a4 r5f2f2d7  
    1 f0: a typedef for signed int
    2 f1: a typedef for signed int
    3 f2: a typedef for signed int
    4 f3: a typedef for signed int
    5 f4: a typedef for signed int
    6 f5: a typedef for signed int
    7 f6: a typedef for signed int
    8 f7: a typedef for signed int
    9 f8: a typedef for signed int
    10 f9: a typedef for signed int
    11 f10: a typedef for signed int
    12 f11: a typedef for signed int
    13 f12: a typedef for signed int
    14 f13: a typedef for signed int
    15 f14: a typedef for signed int
    16 f15: a typedef for signed int
    17 f16: a typedef for signed int
    18 f17: a typedef for signed int
    19 f18: a typedef for signed int
    20 f19: a typedef for signed int
    21 f20: a typedef for signed int
    22 f21: a typedef for signed int
    23 f22: a typedef for signed int
    24 f23: a typedef for signed int
    25 f24: a typedef for signed int
    26 f25: a typedef for signed int
    27 f26: a typedef for signed int
    28 f27: a typedef for signed int
    29 f28: a typedef for signed int
    30 f29: a typedef for signed int
    31 f30: a typedef for signed int
    32 f31: a typedef for signed int
    33 f32: a typedef for signed int
    34 f33: a typedef for signed int
    35 f34: a typedef for signed int
    36 f35: a typedef for signed int
    37 f36: a typedef for signed int
    38 f37: a typedef for signed int
    39 f38: a typedef for signed int
    40 f39: a typedef for signed int
    41 f40: a typedef for signed int
    42 f41: a typedef for signed int
    43 f42: a typedef for signed int
    44 f43: a typedef for signed int
    45 f44: a typedef for signed int
    46 f45: a typedef for signed int
    47 f46: a typedef for signed int
    48 f47: a typedef for signed int
    49 f48: a typedef for signed int
    50 f49: a typedef for signed int
    51 f50: a typedef for signed int
    52 f51: a typedef for signed int
    53 f52: a typedef for signed int
    54 f53: a typedef for signed int
    55 f54: a typedef for signed int
    56 f55: a typedef for signed int
    57 f56: a typedef for signed int
    58 f57: a typedef for signed int
    59 f58: a typedef for signed int
    60 f59: a typedef for signed int
    61 f60: a typedef for signed int
    62 f61: a typedef for signed int
    63 f62: a typedef for signed int
    64 f63: a typedef for signed int
    65 f64: a typedef for signed int
    66 f65: a typedef for signed int
    67 f66: a typedef for signed int
    68 f67: a typedef for signed int
    69 f68: a typedef for signed int
    70 f69: a typedef for signed int
    71 f70: a typedef for signed int
    72 f71: a typedef for signed int
    73 f72: a typedef for signed int
    74 f73: a typedef for signed int
    75 f74: a typedef for signed int
    76 f75: a typedef for signed int
    77 f76: a typedef for signed int
    78 f77: a typedef for signed int
    79 f78: a typedef for signed int
    80 f79: a typedef for signed int
    81 f80: a typedef for signed int
    82 f81: a typedef for signed int
    83 f82: a typedef for signed int
    84 f83: a typedef for signed int
    85 f84: a typedef for signed int
    86 f85: a typedef for signed int
    87 f86: a typedef for signed int
    88 f87: a typedef for signed int
    89 f88: a typedef for signed int
    90 f89: a typedef for signed int
    91 f90: a typedef for signed int
    92 f91: a typedef for signed int
    93 f92: a typedef for signed int
    94 f93: a typedef for signed int
    95 f94: a typedef for signed int
    96 f95: a typedef for signed int
    97 f96: a typedef for signed int
    98 f97: a typedef for signed int
    99 f98: a typedef for signed int
    100 f99: a typedef for signed int
    101 f100: a typedef for signed int
    102 f101: a typedef for signed int
    103 f102: a typedef for signed int
    104 f103: a typedef for signed int
    105 f104: a typedef for signed int
    106 f105: a typedef for signed int
    107 f106: a typedef for signed int
    108 f107: a typedef for signed int
    109 f108: a typedef for signed int
    110 f109: a typedef for signed int
    111 f110: a typedef for signed int
    112 f111: a typedef for signed int
    113 f112: a typedef for signed int
    114 f113: a typedef for signed int
    115 f114: a typedef for signed int
    116 f115: a typedef for signed int
    117 f116: a typedef for signed int
    118 f117: a typedef for signed int
    119 f118: a typedef for signed int
    120 f119: a typedef for signed int
    121 fred: a function
     1f0: typedef for signed int
     2f1: typedef for signed int
     3f2: typedef for signed int
     4f3: typedef for signed int
     5f4: typedef for signed int
     6f5: typedef for signed int
     7f6: typedef for signed int
     8f7: typedef for signed int
     9f8: typedef for signed int
     10f9: typedef for signed int
     11f10: typedef for signed int
     12f11: typedef for signed int
     13f12: typedef for signed int
     14f13: typedef for signed int
     15f14: typedef for signed int
     16f15: typedef for signed int
     17f16: typedef for signed int
     18f17: typedef for signed int
     19f18: typedef for signed int
     20f19: typedef for signed int
     21f20: typedef for signed int
     22f21: typedef for signed int
     23f22: typedef for signed int
     24f23: typedef for signed int
     25f24: typedef for signed int
     26f25: typedef for signed int
     27f26: typedef for signed int
     28f27: typedef for signed int
     29f28: typedef for signed int
     30f29: typedef for signed int
     31f30: typedef for signed int
     32f31: typedef for signed int
     33f32: typedef for signed int
     34f33: typedef for signed int
     35f34: typedef for signed int
     36f35: typedef for signed int
     37f36: typedef for signed int
     38f37: typedef for signed int
     39f38: typedef for signed int
     40f39: typedef for signed int
     41f40: typedef for signed int
     42f41: typedef for signed int
     43f42: typedef for signed int
     44f43: typedef for signed int
     45f44: typedef for signed int
     46f45: typedef for signed int
     47f46: typedef for signed int
     48f47: typedef for signed int
     49f48: typedef for signed int
     50f49: typedef for signed int
     51f50: typedef for signed int
     52f51: typedef for signed int
     53f52: typedef for signed int
     54f53: typedef for signed int
     55f54: typedef for signed int
     56f55: typedef for signed int
     57f56: typedef for signed int
     58f57: typedef for signed int
     59f58: typedef for signed int
     60f59: typedef for signed int
     61f60: typedef for signed int
     62f61: typedef for signed int
     63f62: typedef for signed int
     64f63: typedef for signed int
     65f64: typedef for signed int
     66f65: typedef for signed int
     67f66: typedef for signed int
     68f67: typedef for signed int
     69f68: typedef for signed int
     70f69: typedef for signed int
     71f70: typedef for signed int
     72f71: typedef for signed int
     73f72: typedef for signed int
     74f73: typedef for signed int
     75f74: typedef for signed int
     76f75: typedef for signed int
     77f76: typedef for signed int
     78f77: typedef for signed int
     79f78: typedef for signed int
     80f79: typedef for signed int
     81f80: typedef for signed int
     82f81: typedef for signed int
     83f82: typedef for signed int
     84f83: typedef for signed int
     85f84: typedef for signed int
     86f85: typedef for signed int
     87f86: typedef for signed int
     88f87: typedef for signed int
     89f88: typedef for signed int
     90f89: typedef for signed int
     91f90: typedef for signed int
     92f91: typedef for signed int
     93f92: typedef for signed int
     94f93: typedef for signed int
     95f94: typedef for signed int
     96f95: typedef for signed int
     97f96: typedef for signed int
     98f97: typedef for signed int
     99f98: typedef for signed int
     100f99: typedef for signed int
     101f100: typedef for signed int
     102f101: typedef for signed int
     103f102: typedef for signed int
     104f103: typedef for signed int
     105f104: typedef for signed int
     106f105: typedef for signed int
     107f106: typedef for signed int
     108f107: typedef for signed int
     109f108: typedef for signed int
     110f109: typedef for signed int
     111f110: typedef for signed int
     112f111: typedef for signed int
     113f112: typedef for signed int
     114f113: typedef for signed int
     115f114: typedef for signed int
     116f115: typedef for signed int
     117f116: typedef for signed int
     118f117: typedef for signed int
     119f118: typedef for signed int
     120f119: typedef for signed int
     121fred: function
    122122    with parameters
    123       f1: a signed int
    124       f3: a pointer to signed int
    125       f4: a pointer to pointer to signed int
    126       f5: a pointer to const pointer to signed int
    127       f6: a const pointer to const pointer to signed int
    128       f11: a pointer to signed int
    129       f12: a pointer to pointer to signed int
    130       f13: a pointer to const pointer to signed int
    131       f14: a const pointer to const pointer to signed int
    132       f15: a open array of signed int
    133       f16: a open array of signed int
    134       f19: a open array of pointer to signed int
    135       f20: a open array of pointer to signed int
    136       f21: a open array of pointer to pointer to signed int
    137       f22: a open array of pointer to pointer to signed int
    138       f23: a open array of pointer to const pointer to signed int
    139       f24: a open array of pointer to const pointer to signed int
    140       f25: a open array of const pointer to const pointer to signed int
    141       f26: a open array of const pointer to const pointer to signed int
    142       f35: a open array of pointer to signed int
    143       f36: a open array of pointer to signed int
    144       f37: a open array of pointer to pointer to signed int
    145       f38: a open array of pointer to pointer to signed int
    146       f39: a open array of pointer to const pointer to signed int
    147       f40: a open array of pointer to const pointer to signed int
    148       f41: a open array of const pointer to const pointer to signed int
    149       f42: a open array of const pointer to const pointer to signed int
    150       f43: a open array of open array of signed int
    151       f44: a open array of open array of signed int
    152       f49: a open array of open array of pointer to signed int
    153       f50: a open array of open array of pointer to signed int
    154       f51: a open array of open array of pointer to pointer to signed int
    155       f52: a open array of open array of pointer to pointer to signed int
    156       f53: a open array of open array of pointer to const pointer to signed int
    157       f54: a open array of open array of pointer to const pointer to signed int
    158       f55: a open array of open array of const pointer to const pointer to signed int
    159       f56: a open array of open array of const pointer to const pointer to signed int
    160       f57: a open array of open array of pointer to signed int
    161       f58: a open array of open array of pointer to signed int
    162       f59: a open array of open array of pointer to pointer to signed int
    163       f60: a open array of open array of pointer to pointer to signed int
    164       f61: a open array of open array of pointer to const pointer to signed int
    165       f62: a open array of open array of pointer to const pointer to signed int
    166       f63: a open array of open array of const pointer to const pointer to signed int
    167       f64: a open array of open array of const pointer to const pointer to signed int
    168       f65: a function
    169           with parameters
    170             signed int
    171           returning
    172             signed int
    173 
    174       f67: a function
    175           with parameters
    176             signed int
    177           returning
    178             pointer to signed int
    179 
    180       f68: a function
     123      f1: signed int
     124      f3: pointer to signed int
     125      f4: pointer to pointer to signed int
     126      f5: pointer to const pointer to signed int
     127      f6: const pointer to const pointer to signed int
     128      f11: pointer to signed int
     129      f12: pointer to pointer to signed int
     130      f13: pointer to const pointer to signed int
     131      f14: const pointer to const pointer to signed int
     132      f15: open array of signed int
     133      f16: array of signed int with dimension of constant expression 10 signed int
     134      f19: open array of pointer to signed int
     135      f20: array of pointer to signed int with dimension of constant expression 10 signed int
     136      f21: open array of pointer to pointer to signed int
     137      f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     138      f23: open array of pointer to const pointer to signed int
     139      f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     140      f25: open array of const pointer to const pointer to signed int
     141      f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     142      f35: open array of pointer to signed int
     143      f36: array of pointer to signed int with dimension of constant expression 10 signed int
     144      f37: open array of pointer to pointer to signed int
     145      f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     146      f39: open array of pointer to const pointer to signed int
     147      f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     148      f41: open array of const pointer to const pointer to signed int
     149      f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     150      f43: open array of array of signed int with dimension of constant expression 3 signed int
     151      f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     152      f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int
     153      f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     154      f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int
     155      f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     156      f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int
     157      f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     158      f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int
     159      f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     160      f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int
     161      f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     162      f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int
     163      f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     164      f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int
     165      f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     166      f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int
     167      f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     168      f65: function
     169          with parameters
     170            signed int
     171          returning
     172            signed int
     173
     174      f67: function
     175          with parameters
     176            signed int
     177          returning
     178            pointer to signed int
     179
     180      f68: function
    181181          with parameters
    182182            signed int
     
    184184            pointer to pointer to signed int
    185185
    186       f69: a function
     186      f69: function
    187187          with parameters
    188188            signed int
     
    190190            pointer to const pointer to signed int
    191191
    192       f70: a function
     192      f70: function
    193193          with parameters
    194194            signed int
     
    196196            const pointer to const pointer to signed int
    197197
    198       f75: a pointer to function
    199           with parameters
    200             signed int
    201           returning
    202             signed int
    203 
    204       f76: a pointer to pointer to function
    205           with parameters
    206             signed int
    207           returning
    208             signed int
    209 
    210       f77: a pointer to const pointer to function
    211           with parameters
    212             signed int
    213           returning
    214             signed int
    215 
    216       f78: a const pointer to const pointer to function
    217           with parameters
    218             signed int
    219           returning
    220             signed int
    221 
    222       f79: a pointer to function
     198      f75: pointer to function
     199          with parameters
     200            signed int
     201          returning
     202            signed int
     203
     204      f76: pointer to pointer to function
     205          with parameters
     206            signed int
     207          returning
     208            signed int
     209
     210      f77: pointer to const pointer to function
     211          with parameters
     212            signed int
     213          returning
     214            signed int
     215
     216      f78: const pointer to const pointer to function
     217          with parameters
     218            signed int
     219          returning
     220            signed int
     221
     222      f79: pointer to function
    223223          with parameters
    224224            signed int
    225225          returning
    226226            pointer to function
     227                  accepting unspecified arguments
    227228                returning
    228229                  signed int
    229230
    230231
    231       f80: a const pointer to function
     232      f80: const pointer to function
    232233          with parameters
    233234            signed int
    234235          returning
    235236            pointer to function
     237                  accepting unspecified arguments
    236238                returning
    237239                  signed int
    238240
    239241
    240       f81: a const pointer to function
     242      f81: const pointer to function
    241243          with parameters
    242244            signed int
    243245          returning
    244246            const pointer to function
     247                  accepting unspecified arguments
    245248                returning
    246249                  signed int
    247250
    248251
    249       f82: a const variable length array of signed int
    250       f83: a const open array of signed int
    251       f84: a static open array of signed int
    252       f85: a const static open array of signed int
    253       function
    254           with parameters
    255             const variable length array of instance of type f86
    256           returning
    257             signed int
    258 
    259       function
    260           with parameters
    261             const open array of instance of type f87
    262           returning
    263             signed int
    264 
    265       function
    266           with parameters
    267             static open array of instance of type f88
    268           returning
    269             signed int
    270 
    271       function
    272           with parameters
    273             const static open array of instance of type f89
    274           returning
    275             signed int
    276 
    277       f90: a const variable length array of pointer to signed int
    278       f91: a const open array of pointer to signed int
    279       f92: a static open array of pointer to pointer to signed int
    280       f93: a const static open array of pointer to const pointer to signed int
    281       f94: a const static open array of const pointer to const pointer to signed int
    282       function
    283           with parameters
    284             const variable length array of instance of type f95
    285           returning
    286             pointer to signed int
    287 
    288       function
    289           with parameters
    290             const open array of instance of type f96
    291           returning
    292             pointer to signed int
    293 
    294       function
    295           with parameters
    296             static open array of instance of type f97
     252      f82: const variable length array of signed int
     253      f83: const array of signed int with dimension of constant expression 3 signed int
     254      f84: static array of signed int with dimension of constant expression 3 signed int
     255      f85: const static array of signed int with dimension of constant expression 3 signed int
     256      function
     257          with parameters
     258            const variable length array of instance of type f86 (not function type)
     259          returning
     260            signed int
     261
     262      function
     263          with parameters
     264            const array of instance of type f87 (not function type) with dimension of constant expression 3 signed int
     265          returning
     266            signed int
     267
     268      function
     269          with parameters
     270            static array of instance of type f88 (not function type) with dimension of constant expression 3 signed int
     271          returning
     272            signed int
     273
     274      function
     275          with parameters
     276            const static array of instance of type f89 (not function type) with dimension of constant expression 3 signed int
     277          returning
     278            signed int
     279
     280      f90: const variable length array of pointer to signed int
     281      f91: const array of pointer to signed int with dimension of constant expression 3 signed int
     282      f92: static array of pointer to pointer to signed int with dimension of constant expression 3 signed int
     283      f93: const static array of pointer to const pointer to signed int with dimension of constant expression 3 signed int
     284      f94: const static array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int
     285      function
     286          with parameters
     287            const variable length array of instance of type f95 (not function type)
     288          returning
     289            pointer to signed int
     290
     291      function
     292          with parameters
     293            const array of instance of type f96 (not function type) with dimension of constant expression 3 signed int
     294          returning
     295            pointer to signed int
     296
     297      function
     298          with parameters
     299            static array of instance of type f97 (not function type) with dimension of constant expression 3 signed int
    297300          returning
    298301            pointer to pointer to signed int
     
    300303      function
    301304          with parameters
    302             const static open array of instance of type f98
     305            const static array of instance of type f98 (not function type) with dimension of constant expression 3 signed int
    303306          returning
    304307            pointer to const pointer to signed int
     
    306309      function
    307310          with parameters
    308             const static open array of instance of type f99
     311            const static array of instance of type f99 (not function type) with dimension of constant expression 3 signed int
    309312          returning
    310313            const pointer to const pointer to signed int
    311314
    312       f100: a const variable length array of open array of signed int
    313       f101: a const open array of open array of signed int
    314       f102: a static open array of open array of signed int
    315       f103: a const static open array of open array of signed int
    316       function
    317           with parameters
    318             const variable length array of open array of instance of type f104
    319           returning
    320             signed int
    321 
    322       function
    323           with parameters
    324             const open array of open array of instance of type f105
    325           returning
    326             signed int
    327 
    328       function
    329           with parameters
    330             static open array of open array of instance of type f106
    331           returning
    332             signed int
    333 
    334       function
    335           with parameters
    336             const static open array of open array of instance of type f107
    337           returning
    338             signed int
    339 
    340       f108: a const variable length array of open array of pointer to signed int
    341       f109: a const open array of open array of pointer to signed int
    342       f110: a static open array of open array of pointer to pointer to signed int
    343       f111: a const static open array of open array of pointer to const pointer to signed int
    344       f112: a const static open array of open array of const pointer to const pointer to signed int
    345       function
    346           with parameters
    347             const variable length array of open array of instance of type f113
    348           returning
    349             pointer to signed int
    350 
    351       function
    352           with parameters
    353             const open array of open array of instance of type f114
    354           returning
    355             pointer to signed int
    356 
    357       function
    358           with parameters
    359             static open array of open array of instance of type f115
     315      f100: const variable length array of array of signed int with dimension of constant expression 3 signed int
     316      f101: const array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     317      f102: static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     318      f103: const static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     319      function
     320          with parameters
     321            const variable length array of array of instance of type f104 (not function type) with dimension of constant expression 3 signed int
     322          returning
     323            signed int
     324
     325      function
     326          with parameters
     327            const array of array of instance of type f105 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     328          returning
     329            signed int
     330
     331      function
     332          with parameters
     333            static array of array of instance of type f106 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     334          returning
     335            signed int
     336
     337      function
     338          with parameters
     339            const static array of array of instance of type f107 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     340          returning
     341            signed int
     342
     343      f108: const variable length array of array of pointer to signed int with dimension of constant expression 3 signed int
     344      f109: const array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     345      f110: static array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     346      f111: const static array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     347      f112: const static array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     348      function
     349          with parameters
     350            const variable length array of array of instance of type f113 (not function type) with dimension of constant expression 3 signed int
     351          returning
     352            pointer to signed int
     353
     354      function
     355          with parameters
     356            const array of array of instance of type f114 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     357          returning
     358            pointer to signed int
     359
     360      function
     361          with parameters
     362            static array of array of instance of type f115 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
    360363          returning
    361364            pointer to pointer to signed int
     
    363366      function
    364367          with parameters
    365             const static open array of open array of instance of type f116
     368            const static array of array of instance of type f116 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
    366369          returning
    367370            pointer to const pointer to signed int
     
    369372      function
    370373          with parameters
    371             const static open array of open array of instance of type f117
     374            const static array of array of instance of type f117 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
    372375          returning
    373376            const pointer to const pointer to signed int
     
    376379      signed int
    377380    with body
    378 
     381      CompoundStmt
     382
  • src/Tests/SynTree/Expected/VariableDeclarator.tst

    rcd623a4 r5f2f2d7  
    1 f1: a signed int
    2 f2: a signed int
    3 f3: a pointer to signed int
    4 f4: a pointer to pointer to signed int
    5 f5: a pointer to const pointer to signed int
    6 f6: a const pointer to const pointer to signed int
    7 f7: a pointer to signed int
    8 f8: a pointer to pointer to signed int
    9 f9: a pointer to const pointer to signed int
    10 f10: a const pointer to const pointer to signed int
    11 f11: a pointer to signed int
    12 f12: a pointer to pointer to signed int
    13 f13: a pointer to const pointer to signed int
    14 f14: a const pointer to const pointer to signed int
    15 f15: a open array of signed int
    16 f16: a open array of signed int
    17 f17: a open array of signed int
    18 f18: a open array of signed int
    19 f19: a open array of pointer to signed int
    20 f20: a open array of pointer to signed int
    21 f21: a open array of pointer to pointer to signed int
    22 f22: a open array of pointer to pointer to signed int
    23 f23: a open array of pointer to const pointer to signed int
    24 f24: a open array of pointer to const pointer to signed int
    25 f25: a open array of const pointer to const pointer to signed int
    26 f26: a open array of const pointer to const pointer to signed int
    27 f27: a open array of pointer to signed int
    28 f28: a open array of pointer to signed int
    29 f29: a open array of pointer to pointer to signed int
    30 f30: a open array of pointer to pointer to signed int
    31 f31: a open array of pointer to const pointer to signed int
    32 f32: a open array of pointer to const pointer to signed int
    33 f33: a open array of const pointer to const pointer to signed int
    34 f34: a open array of const pointer to const pointer to signed int
    35 f35: a open array of pointer to signed int
    36 f36: a open array of pointer to signed int
    37 f37: a open array of pointer to pointer to signed int
    38 f38: a open array of pointer to pointer to signed int
    39 f39: a open array of pointer to const pointer to signed int
    40 f40: a open array of pointer to const pointer to signed int
    41 f41: a open array of const pointer to const pointer to signed int
    42 f42: a open array of const pointer to const pointer to signed int
    43 f43: a open array of open array of signed int
    44 f44: a open array of open array of signed int
    45 f45: a open array of open array of signed int
    46 f46: a open array of open array of signed int
    47 f47: a open array of open array of signed int
    48 f48: a open array of open array of signed int
    49 f49: a open array of open array of pointer to signed int
    50 f50: a open array of open array of pointer to signed int
    51 f51: a open array of open array of pointer to pointer to signed int
    52 f52: a open array of open array of pointer to pointer to signed int
    53 f53: a open array of open array of pointer to const pointer to signed int
    54 f54: a open array of open array of pointer to const pointer to signed int
    55 f55: a open array of open array of const pointer to const pointer to signed int
    56 f56: a open array of open array of const pointer to const pointer to signed int
    57 f57: a open array of open array of pointer to signed int
    58 f58: a open array of open array of pointer to signed int
    59 f59: a open array of open array of pointer to pointer to signed int
    60 f60: a open array of open array of pointer to pointer to signed int
    61 f61: a open array of open array of pointer to const pointer to signed int
    62 f62: a open array of open array of pointer to const pointer to signed int
    63 f63: a open array of open array of const pointer to const pointer to signed int
    64 f64: a open array of open array of const pointer to const pointer to signed int
    65 f65: a function
     1f1: signed int
     2f2: signed int
     3f3: pointer to signed int
     4f4: pointer to pointer to signed int
     5f5: pointer to const pointer to signed int
     6f6: const pointer to const pointer to signed int
     7f7: pointer to signed int
     8f8: pointer to pointer to signed int
     9f9: pointer to const pointer to signed int
     10f10: const pointer to const pointer to signed int
     11f11: pointer to signed int
     12f12: pointer to pointer to signed int
     13f13: pointer to const pointer to signed int
     14f14: const pointer to const pointer to signed int
     15f15: open array of signed int
     16f16: array of signed int with dimension of constant expression 10 signed int
     17f17: open array of signed int
     18f18: array of signed int with dimension of constant expression 10 signed int
     19f19: open array of pointer to signed int
     20f20: array of pointer to signed int with dimension of constant expression 10 signed int
     21f21: open array of pointer to pointer to signed int
     22f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     23f23: open array of pointer to const pointer to signed int
     24f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     25f25: open array of const pointer to const pointer to signed int
     26f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     27f27: open array of pointer to signed int
     28f28: array of pointer to signed int with dimension of constant expression 10 signed int
     29f29: open array of pointer to pointer to signed int
     30f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     31f31: open array of pointer to const pointer to signed int
     32f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     33f33: open array of const pointer to const pointer to signed int
     34f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     35f35: open array of pointer to signed int
     36f36: array of pointer to signed int with dimension of constant expression 10 signed int
     37f37: open array of pointer to pointer to signed int
     38f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     39f39: open array of pointer to const pointer to signed int
     40f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     41f41: open array of const pointer to const pointer to signed int
     42f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     43f43: open array of array of signed int with dimension of constant expression 3 signed int
     44f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     45f45: open array of array of signed int with dimension of constant expression 3 signed int
     46f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     47f47: open array of array of signed int with dimension of constant expression 3 signed int
     48f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     49f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int
     50f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     51f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int
     52f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     53f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int
     54f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     55f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int
     56f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     57f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int
     58f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     59f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int
     60f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     61f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int
     62f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     63f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int
     64f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int
     65f65: function
    6666    with parameters
    6767      signed int
     
    6969      signed int
    7070
    71 f66: a function
     71f66: function
    7272    with parameters
    7373      signed int
     
    7575      signed int
    7676
    77 f67: a function
     77f67: function
    7878    with parameters
    7979      signed int
     
    8181      pointer to signed int
    8282
    83 f68: a function
     83f68: function
    8484    with parameters
    8585      signed int
     
    8787      pointer to pointer to signed int
    8888
    89 f69: a function
     89f69: function
    9090    with parameters
    9191      signed int
     
    9393      pointer to const pointer to signed int
    9494
    95 f70: a function
     95f70: function
    9696    with parameters
    9797      signed int
     
    9999      const pointer to const pointer to signed int
    100100
    101 f71: a function
     101f71: function
    102102    with parameters
    103103      signed int
     
    105105      pointer to signed int
    106106
    107 f72: a function
     107f72: function
    108108    with parameters
    109109      signed int
     
    111111      pointer to pointer to signed int
    112112
    113 f73: a function
     113f73: function
    114114    with parameters
    115115      signed int
     
    117117      pointer to const pointer to signed int
    118118
    119 f74: a function
     119f74: function
    120120    with parameters
    121121      signed int
     
    123123      const pointer to const pointer to signed int
    124124
    125 f75: a pointer to function
     125f75: pointer to function
    126126    with parameters
    127127      signed int
     
    129129      signed int
    130130
    131 f76: a pointer to pointer to function
     131f76: pointer to pointer to function
    132132    with parameters
    133133      signed int
     
    135135      signed int
    136136
    137 f77: a pointer to const pointer to function
     137f77: pointer to const pointer to function
    138138    with parameters
    139139      signed int
     
    141141      signed int
    142142
    143 f78: a const pointer to const pointer to function
     143f78: const pointer to const pointer to function
    144144    with parameters
    145145      signed int
     
    147147      signed int
    148148
    149 f79: a pointer to function
     149f79: pointer to function
    150150    with parameters
    151151      signed int
    152152    returning
    153153      pointer to function
     154            accepting unspecified arguments
    154155          returning
    155156            signed int
    156157
    157158
    158 f80: a const pointer to function
     159f80: const pointer to function
    159160    with parameters
    160161      signed int
    161162    returning
    162163      pointer to function
     164            accepting unspecified arguments
    163165          returning
    164166            signed int
    165167
    166168
    167 f81: a const pointer to function
     169f81: const pointer to function
    168170    with parameters
    169171      signed int
    170172    returning
    171173      const pointer to function
     174            accepting unspecified arguments
    172175          returning
    173176            signed int
    174177
    175178
    176 z: a pointer to open array of double
    177 w: a open array of pointer to char
    178 v3: a pointer to open array of pointer to open array of pointer to function
     179z: pointer to array of double with dimension of constant expression 20 signed int
     180w: array of pointer to char with dimension of constant expression 20 signed int
     181v3: pointer to open array of pointer to open array of pointer to function
    179182    with parameters
    180183      pointer to open array of pointer to open array of signed int
  • src/Tests/SynTree/make-rules

    rcd623a4 r5f2f2d7  
    11CFA = ../../cfa-cpp
    22
    3 DIFF = diff#/software/gnu/bin/diff
     3EXPECTED := ${wildcard ${EXPECTDIR}/*.tst}
     4TESTS := ${EXPECTED:${EXPECTDIR}/%=${OUTPUTDIR}/%}
     5TEST_IN := ${TESTS:.tst=.c}
    46
    5 # Basic SynTree printing
    6 EXPECTED := ${wildcard $(EXPECTDIR)/*.tst}
    7 TESTS := $(EXPECTED:$(EXPECTDIR)/%=$(OUTPUTDIR)/%)
    8 TEST_IN := $(TESTS:.tst=.c)
     7.SILENT :
    98
    10 $(OUTPUTDIR)/%.tst : %.c $(CFA)
    11         $(CFA) $(CFAOPT) < $< > $@ 2>&1
     9${OUTPUTDIR}/%.tst : %.c ${CFA}
     10        -${CFA} ${CFAOPT} < $< > $@ 2>&1
    1211
    13 $(OUTPUTDIR)/report : $(TESTS) $(EXPECTED)
     12${OUTPUTDIR}/report : ${TESTS} ${EXPECTED}
    1413        rm -f $@
    15         @for i in $(TESTS); do \
     14        @for i in ${TESTS}; do \
    1615             echo "---"`basename $$i`"---" | tee -a $@; \
    17              $(DIFF) -B -w $(EXPECTDIR)/`basename $$i` $$i | tee -a $@; \
     16             diff -B -w ${EXPECTDIR}/`basename $$i` $$i | tee -a $@; \
    1817        done
    1918
    2019clean :
    21         rm -rf $(OUTPUTDIR)
     20        rm -rf ${OUTPUTDIR}
  • src/Tests/SynTree/run-tests.sh

    rcd623a4 r5f2f2d7  
    1 #!/bin/sh -v
     1#!/bin/sh -
    22
    33dotest() {
  • src/Tuples/MultRet.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 12:37:57 2015
    13 // Update Count     : 1
     12// Last Modified On : Mon Jun  8 14:54:44 2015
     13// Update Count     : 2
    1414//
    1515
     
    141141        // Auxiliary function to generate new names for the `output' parameters
    142142        DeclStmt *MVRMutator::newVar( DeclarationWithType *reqDecl ) {
    143                 // std::ostrstream os;
     143                // std::ostringstream os;
    144144                // os << "__" << curVal++ << "__";// << std::ends;
    145                 // os.freeze( false );
    146145
    147146                ObjectDecl *decl;
  • src/examples/constants.c

    rcd623a4 r5f2f2d7  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun  6 15:08:43 2015
    13 // Update Count     : 63
     12// Last Modified On : Mon Jun  8 20:44:48 2015
     13// Update Count     : 75
    1414//
    1515
     
    1717        1_234_Ul;
    1818        -0_177;
    19         017777777777;
    20         037777777777;
     19        017_777_777_777;
     20        037_777_777_777;
    2121        0x_7f_FF_ff_FF;
    2222        0x_ff_FF_ff_FF;
    2323        2_147_483_647;
    2424        4_294_967_295;
    25         0777777777777777777777;
    26         01777777777777777777777;
     25        4_294_967_296;
     26        4_294_967_296U;
     27        0_777_777_777_777_777_777_777;
     28        01_777_777_777_777_777_777_777;
     29        0;
     30        0L;
     31        0LL;
     32        1;
     33        1L;
     34        1LL;
     35        10;
     36        10L;
     37        10LL;
     38        2U;
     39        2UL;
     40        2ULL;
     41        2LU;
     42        2LLU;
    2743        0x_7f_FF_ff_FF_ff_FF_ff_FF;
    2844        0x_ff_FF_ff_FF_ff_FF_ff_FF;
    2945        9_223_372_036_854_775_807;
    3046        18_446_744_073_709_551_615;
     47        3.141_59f;
     48        3.14159;
    3149        12.123_333_E_27L;
    3250        0X_1.ff_ff_ff_ff_ff_fff_P_1023;
  • src/examples/includes.c

    rcd623a4 r5f2f2d7  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Jun  3 23:48:26 2015
    13 // Update Count     : 6
     12// Last Modified On : Mon Jun  8 15:54:17 2015
     13// Update Count     : 7
    1414//
    1515
  • src/main.cc

    rcd623a4 r5f2f2d7  
    1010// Created On       : Fri May 15 23:12:02 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu May 21 21:15:54 2015
    13 // Update Count     : 9
     12// Last Modified On : Mon Jun  8 16:50:31 2015
     13// Update Count     : 11
    1414//
    1515
Note: See TracChangeset for help on using the changeset viewer.