~ubuntu-branches/ubuntu/wily/aspectc++/wily

« back to all changes in this revision

Viewing changes to Puma/gen-release/step1/src/PreParser.cc

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2009-06-15 10:17:02 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090615101702-qsr30iptwbxylmo2
Tags: 1.0pre4~svn.20090615-1
* New upstream release.
* don't ignore errors in the postrm script
* avoid spurious creation of empty dir ./usr/sbin/
* improve short descriptions of libpuma-doc and libpuma-dev
* bump Standards-Version to 3.8.1
* bump debhelper compat level to level 7 (latest in stable)

Show diffs side-by-side

added added

removed removed

Lines of Context:
81
81
    // If subtree isn't empty concatenate all tokens to a single string.
82
82
    if (node->sons ()) {
83
83
        PreTokenListPart* list = (PreTokenListPart*) node->son (0);
84
 
        
 
84
 
85
85
        // Fill the buffer.
86
86
        for (unsigned int i = 0; i < (unsigned int) list->sons (); i++) {
87
87
            str += ((PreTreeToken*) list->son (i))->token ()->text ();
88
88
        }
89
89
    } 
90
 
    
 
90
 
91
91
    // Create the return string buffer.
92
92
    ptr = result = new char[str.size() + 5];
93
93
 
95
95
    for (unsigned int i = 0; i < str.size(); i++)
96
96
        if (str[i] != '\n') 
97
97
            *ptr++ = str[i];
98
 
        else
99
 
          cout << "newline " << i << endl;
100
 
            
 
98
 
101
99
    // Finish return buffer.
102
100
    *ptr = '\0';
103
101
 
664
662
          } 
665
663
          // If no macro call return the token unchanged.
666
664
          result = state->currToken;
667
 
            
 
665
 
668
666
      // The current token has to be ignored, so call this function
669
667
      // recursively again to skip the current token.
670
668
      } else
672
670
    }
673
671
 
674
672
    // The current token is NULL. That means all input files were parsed.
675
 
    else {      
676
 
      // Ensure that this is the last call to the parser.
677
 
      done = true;
678
 
      
679
 
      // Handle directive at EOF (missing newline). Same problem as above.
680
 
      directiveAtEOF ();
681
 
 
 
673
    // Except there is a directive at EOF (missing newline).
 
674
    else if ((done = ! directiveAtEOF ())) {
682
675
      // Create an EOF token needed if the EOF is within a directive
683
676
      // and caused a parse error. So the parser can print a error
684
677
      // message that report this error.
692
685
 
693
686
      // Return NULL to signal all other parsers to finish their
694
687
      // parse processes.
695
 
      result = (Token*) 0; // return (Token*) 0;
 
688
      result = (Token*) 0;
696
689
    }
697
690
  }
698
 
  
 
691
 
699
692
  // remove the current token from the black list of self-referential macros
700
693
  // in prescanned macro argument lists
701
694
  if (result && result->is_identifier ())
707
700
 
708
701
} // namespace Puma
709
702
 
710
 
#line 711 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
703
#line 704 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
711
704
/* Next is all token values, in a form suitable for use by makeheaders.
712
705
** This section will be null unless lemon is run with the -m switch.
713
706
*/
1674
1667
     while( yypParser->idx>=0 ) yy_pop_parser_stack(yypParser);
1675
1668
     /* Here code is inserted which will execute if the parser
1676
1669
     ** stack every overflows */
1677
 
#line 715 "cpp/PreParser.lem"
 
1670
#line 708 "cpp/PreParser.lem"
1678
1671
 
1679
1672
  state->syntaxError = true;
1680
1673
  *err << state->lastToken->location () << sev_fatal 
1681
1674
       << "Giving up. Preprocessor stack overflow (>1000)" << endMessage;
1682
1675
 
1683
 
#line 1683 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1676
#line 1676 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1684
1677
     return;
1685
1678
  }
1686
1679
  yypParser->top->stateno = yyNewState;
1795
1788
  */
1796
1789
      case 0:
1797
1790
        YYTRACE("preprocessor_program ::= directive_groups")
1798
 
#line 756 "cpp/PreParser.lem"
 
1791
#line 749 "cpp/PreParser.lem"
1799
1792
{
1800
1793
        state->syntaxTree = new PreProgram (yymsp[0].minor.yy0);
1801
1794
    }
1802
 
#line 1802 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1795
#line 1795 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1803
1796
        break;
1804
1797
      case 1:
1805
1798
        YYTRACE("directive_groups ::=")
1806
 
#line 765 "cpp/PreParser.lem"
 
1799
#line 758 "cpp/PreParser.lem"
1807
1800
{
1808
1801
        yygotominor.yy0 = new PreDirectiveGroups ();
1809
1802
    }
1810
 
#line 1810 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1803
#line 1803 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1811
1804
        break;
1812
1805
      case 2:
1813
1806
        YYTRACE("directive_groups ::= directive_groups directive_group")
1814
 
#line 769 "cpp/PreParser.lem"
 
1807
#line 762 "cpp/PreParser.lem"
1815
1808
{
1816
1809
        yymsp[-1].minor.yy0->add_son (yymsp[0].minor.yy0);
1817
1810
        yygotominor.yy0 = yymsp[-1].minor.yy0;
1818
1811
    }
1819
 
#line 1819 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1812
#line 1812 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1820
1813
        break;
1821
1814
      case 3:
1822
1815
        YYTRACE("directive_groups ::= directive_groups error")
1823
 
#line 774 "cpp/PreParser.lem"
 
1816
#line 767 "cpp/PreParser.lem"
1824
1817
{
1825
1818
        yymsp[-1].minor.yy0->add_son (new PreError ());
1826
1819
        yygotominor.yy0 = yymsp[-1].minor.yy0;
1827
1820
    }
1828
 
#line 1828 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1821
#line 1821 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1829
1822
        /* No destructor defined for error */
1830
1823
        break;
1831
1824
      case 4:
1832
1825
        YYTRACE("directive_group ::= control_line")
1833
 
#line 784 "cpp/PreParser.lem"
 
1826
#line 777 "cpp/PreParser.lem"
1834
1827
{
1835
1828
        yygotominor.yy0 = yymsp[0].minor.yy0;
1836
1829
    }
1837
 
#line 1837 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1830
#line 1830 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1838
1831
        break;
1839
1832
      case 5:
1840
1833
        YYTRACE("directive_group ::= conditional_group")
1841
 
#line 788 "cpp/PreParser.lem"
 
1834
#line 781 "cpp/PreParser.lem"
1842
1835
{
1843
1836
        yygotominor.yy0 = yymsp[0].minor.yy0;
1844
1837
    }
1845
 
#line 1845 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1838
#line 1838 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1846
1839
        break;
1847
1840
      case 6:
1848
1841
        YYTRACE("conditional_group ::= if_part directive_groups endif_part")
1849
 
#line 797 "cpp/PreParser.lem"
 
1842
#line 790 "cpp/PreParser.lem"
1850
1843
{
1851
1844
        yygotominor.yy0 = new PreConditionalGroup (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1852
1845
    }
1853
 
#line 1853 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1846
#line 1846 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1854
1847
        break;
1855
1848
      case 7:
1856
1849
        YYTRACE("conditional_group ::= if_part elif_part directive_groups endif_part")
1857
 
#line 802 "cpp/PreParser.lem"
 
1850
#line 795 "cpp/PreParser.lem"
1858
1851
{
1859
1852
        yygotominor.yy0 = new PreConditionalGroup (yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1860
1853
    }
1861
 
#line 1861 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1854
#line 1854 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1862
1855
        break;
1863
1856
      case 8:
1864
1857
        YYTRACE("conditional_group ::= if_part else_part directive_groups endif_part")
1865
 
#line 807 "cpp/PreParser.lem"
 
1858
#line 800 "cpp/PreParser.lem"
1866
1859
{
1867
1860
        yygotominor.yy0 = new PreConditionalGroup (yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1868
1861
    }
1869
 
#line 1869 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1862
#line 1862 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1870
1863
        break;
1871
1864
      case 9:
1872
1865
        YYTRACE("if_part ::= if_line TOK_PRE_DIRECTIVE_END")
1873
 
#line 816 "cpp/PreParser.lem"
 
1866
#line 809 "cpp/PreParser.lem"
1874
1867
{
1875
1868
        yygotominor.yy0 = yymsp[-1].minor.yy0;
1876
1869
    }
1877
 
#line 1877 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1870
#line 1870 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1878
1871
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
1879
1872
        break;
1880
1873
      case 10:
1881
1874
        YYTRACE("if_part ::= ifdef_line TOK_PRE_DIRECTIVE_END")
1882
 
#line 820 "cpp/PreParser.lem"
 
1875
#line 813 "cpp/PreParser.lem"
1883
1876
{
1884
1877
        yygotominor.yy0 = yymsp[-1].minor.yy0;
1885
1878
    }
1886
 
#line 1886 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1879
#line 1879 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1887
1880
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
1888
1881
        break;
1889
1882
      case 11:
1890
1883
        YYTRACE("if_part ::= ifndef_line TOK_PRE_DIRECTIVE_END")
1891
 
#line 824 "cpp/PreParser.lem"
 
1884
#line 817 "cpp/PreParser.lem"
1892
1885
{
1893
1886
        yygotominor.yy0 = yymsp[-1].minor.yy0;
1894
1887
    }
1895
 
#line 1895 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1888
#line 1888 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1896
1889
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
1897
1890
        break;
1898
1891
      case 12:
1899
1892
        YYTRACE("else_part ::= directive_groups else_line TOK_PRE_DIRECTIVE_END")
1900
 
#line 833 "cpp/PreParser.lem"
 
1893
#line 826 "cpp/PreParser.lem"
1901
1894
{
1902
1895
        yygotominor.yy0 = new PreElsePart (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
1903
1896
    }
1904
 
#line 1904 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1897
#line 1897 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1905
1898
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
1906
1899
        break;
1907
1900
      case 13:
1908
1901
        YYTRACE("else_part ::= elif_part directive_groups else_line TOK_PRE_DIRECTIVE_END")
1909
 
#line 838 "cpp/PreParser.lem"
 
1902
#line 831 "cpp/PreParser.lem"
1910
1903
{
1911
1904
        yygotominor.yy0 = new PreElsePart (yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
1912
1905
    }
1913
 
#line 1913 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1906
#line 1906 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1914
1907
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
1915
1908
        break;
1916
1909
      case 14:
1917
1910
        YYTRACE("elif_part ::= directive_groups elif_line TOK_PRE_DIRECTIVE_END")
1918
 
#line 847 "cpp/PreParser.lem"
 
1911
#line 840 "cpp/PreParser.lem"
1919
1912
{
1920
1913
        yygotominor.yy0 = new PreElifPart ();
1921
1914
        ((PreElifPart*) (yygotominor.yy0))->addSons (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
1922
1915
    }
1923
 
#line 1923 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1916
#line 1916 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1924
1917
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
1925
1918
        break;
1926
1919
      case 15:
1927
1920
        YYTRACE("elif_part ::= elif_part directive_groups elif_line TOK_PRE_DIRECTIVE_END")
1928
 
#line 853 "cpp/PreParser.lem"
 
1921
#line 846 "cpp/PreParser.lem"
1929
1922
{
1930
1923
        ((PreElifPart*) (yymsp[-3].minor.yy0))->addSons (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
1931
1924
        yygotominor.yy0 = yymsp[-3].minor.yy0;
1932
1925
    }
1933
 
#line 1933 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1926
#line 1926 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1934
1927
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
1935
1928
        break;
1936
1929
      case 16:
1937
1930
        YYTRACE("endif_part ::= endif_line TOK_PRE_DIRECTIVE_END")
1938
 
#line 863 "cpp/PreParser.lem"
 
1931
#line 856 "cpp/PreParser.lem"
1939
1932
{
1940
1933
        yygotominor.yy0 = yymsp[-1].minor.yy0;
1941
1934
    }
1942
 
#line 1942 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1935
#line 1935 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
1943
1936
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
1944
1937
        break;
1945
1938
      case 17:
1946
1939
        YYTRACE("if_line ::= TOK_PRE_IF token_list")
1947
 
#line 872 "cpp/PreParser.lem"
 
1940
#line 865 "cpp/PreParser.lem"
1948
1941
{
1949
1942
        yygotominor.yy0 = new PreIfDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1950
1943
        
1951
1944
        // A new conditional group starts, so go one level deeper.
1952
1945
        level->deeper ();
1953
1946
 
1954
 
        if (! state->errorDirective)
 
1947
        if (! state->errorDirective) {
1955
1948
            if (state->passOnToken) 
1956
1949
                {
1957
1950
                // Create a new macro expander to expand the macros that could
1997
1990
                    level->setPassOn (false);
1998
1991
                level->setState (false);
1999
1992
            } 
 
1993
        }
2000
1994
    }
2001
 
#line 2001 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
1995
#line 1995 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2002
1996
        break;
2003
1997
      case 18:
2004
1998
        YYTRACE("ifdef_line ::= TOK_PRE_IFDEF token_list")
2005
 
#line 931 "cpp/PreParser.lem"
 
1999
#line 925 "cpp/PreParser.lem"
2006
2000
{
2007
2001
        yygotominor.yy0 = new PreIfdefDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2008
2002
        
2016
2010
          level->setState (false);
2017
2011
        }
2018
2012
    }
2019
 
#line 2019 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2013
#line 2013 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2020
2014
        break;
2021
2015
      case 19:
2022
2016
        YYTRACE("ifdef_line ::= TOK_PRE_IFDEF TOK_PRE_ID token_list")
2023
 
#line 945 "cpp/PreParser.lem"
 
2017
#line 939 "cpp/PreParser.lem"
2024
2018
{
2025
2019
        yygotominor.yy0 = new PreIfdefDirective (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2026
2020
        
2027
2021
        // A new conditional group starts, so go one level deeper.
2028
2022
        level->deeper ();
2029
2023
        
2030
 
        if (! state->errorDirective)
 
2024
        if (! state->errorDirective) {
2031
2025
            if (state->passOnToken) 
2032
2026
                {
2033
2027
                const char* name  = ((PreTreeToken*) yymsp[-1].minor.yy0)->token ()->text ();
2050
2044
                    level->setPassOn (false);
2051
2045
                level->setState (false);
2052
2046
            } 
 
2047
        }
2053
2048
    }
2054
 
#line 2054 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2049
#line 2049 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2055
2050
        break;
2056
2051
      case 20:
2057
2052
        YYTRACE("ifndef_line ::= TOK_PRE_IFNDEF token_list")
2058
 
#line 981 "cpp/PreParser.lem"
 
2053
#line 976 "cpp/PreParser.lem"
2059
2054
{
2060
2055
        yygotominor.yy0 = new PreIfndefDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2061
2056
        
2069
2064
          level->setState (false);
2070
2065
        }
2071
2066
    }
2072
 
#line 2072 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2067
#line 2067 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2073
2068
        break;
2074
2069
      case 21:
2075
2070
        YYTRACE("ifndef_line ::= TOK_PRE_IFNDEF TOK_PRE_ID token_list")
2076
 
#line 995 "cpp/PreParser.lem"
 
2071
#line 990 "cpp/PreParser.lem"
2077
2072
{
2078
2073
        yygotominor.yy0 = new PreIfndefDirective (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2079
2074
        
2080
2075
        // A new conditional group starts, so go one level deeper.
2081
2076
        level->deeper ();
2082
2077
        
2083
 
        if (! state->errorDirective)
 
2078
        if (! state->errorDirective) {
2084
2079
            if (state->passOnToken) 
2085
2080
                {
2086
2081
                const char* name  = ((PreTreeToken*) yymsp[-1].minor.yy0)->token ()->text ();
2103
2098
                    level->setPassOn (false);
2104
2099
                level->setState (false);
2105
2100
            } 
 
2101
        }
2106
2102
    }
2107
 
#line 2107 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2103
#line 2103 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2108
2104
        break;
2109
2105
      case 22:
2110
2106
        YYTRACE("elif_line ::= TOK_PRE_ELIF token_list")
2111
 
#line 1031 "cpp/PreParser.lem"
 
2107
#line 1027 "cpp/PreParser.lem"
2112
2108
{
2113
2109
        yygotominor.yy0 = new PreElifDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2114
2110
        
2115
 
        if (! state->errorDirective)
 
2111
        if (! state->errorDirective) {
2116
2112
            if (state->passOnToken && ! level->state ())
2117
2113
                state->passOnToken = false;
2118
2114
            else if (! state->passOnToken && level->state ())
2156
2152
                {
2157
2153
                    state->passOnToken = true;
2158
2154
                    level->setState (false);
2159
 
                    } 
 
2155
                } 
2160
2156
            }
 
2157
        }
2161
2158
    }
2162
 
#line 2162 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2159
#line 2159 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2163
2160
        break;
2164
2161
      case 23:
2165
2162
        YYTRACE("else_line ::= TOK_PRE_ELSE token_list")
2166
 
#line 1087 "cpp/PreParser.lem"
 
2163
#line 1084 "cpp/PreParser.lem"
2167
2164
{
2168
2165
        yygotominor.yy0 = new PreElseDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2169
2166
        
2170
2167
        // Decide whether to go on or to ignore following C++ code.
2171
 
        if (! state->errorDirective)
 
2168
        if (! state->errorDirective) {
2172
2169
            if (state->passOnToken && ! level->state ()) 
2173
2170
                state->passOnToken = false;
2174
2171
            else if (! state->passOnToken && level->state ()) {
2175
2172
                state->passOnToken = true;
2176
2173
                level->setState (false);
2177
2174
            } 
 
2175
        }
2178
2176
    }
2179
 
#line 2179 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2177
#line 2177 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2180
2178
        break;
2181
2179
      case 24:
2182
2180
        YYTRACE("endif_line ::= TOK_PRE_ENDIF token_list")
2183
 
#line 1105 "cpp/PreParser.lem"
 
2181
#line 1103 "cpp/PreParser.lem"
2184
2182
{
2185
2183
        yygotominor.yy0 = new PreEndifDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2186
2184
        
2194
2192
            level->higher ();
2195
2193
        }
2196
2194
    }
2197
 
#line 2197 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2195
#line 2195 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2198
2196
        break;
2199
2197
      case 25:
2200
2198
        YYTRACE("control_line ::= include_line TOK_PRE_DIRECTIVE_END")
2201
 
#line 1124 "cpp/PreParser.lem"
 
2199
#line 1122 "cpp/PreParser.lem"
2202
2200
{
2203
2201
        yygotominor.yy0 = yymsp[-1].minor.yy0;
2204
2202
    }
2205
 
#line 2205 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2203
#line 2203 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2206
2204
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
2207
2205
        break;
2208
2206
      case 26:
2209
2207
        YYTRACE("control_line ::= include_next_line TOK_PRE_DIRECTIVE_END")
2210
 
#line 1128 "cpp/PreParser.lem"
 
2208
#line 1126 "cpp/PreParser.lem"
2211
2209
{
2212
2210
        yygotominor.yy0 = yymsp[-1].minor.yy0;
2213
2211
    }
2214
 
#line 2214 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2212
#line 2212 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2215
2213
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
2216
2214
        break;
2217
2215
      case 27:
2218
2216
        YYTRACE("control_line ::= assert_line TOK_PRE_DIRECTIVE_END")
2219
 
#line 1132 "cpp/PreParser.lem"
 
2217
#line 1130 "cpp/PreParser.lem"
2220
2218
{
2221
2219
        yygotominor.yy0 = yymsp[-1].minor.yy0;
2222
2220
    }
2223
 
#line 2223 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2221
#line 2221 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2224
2222
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
2225
2223
        break;
2226
2224
      case 28:
2227
2225
        YYTRACE("control_line ::= unassert_line TOK_PRE_DIRECTIVE_END")
2228
 
#line 1136 "cpp/PreParser.lem"
 
2226
#line 1134 "cpp/PreParser.lem"
2229
2227
{
2230
2228
        yygotominor.yy0 = yymsp[-1].minor.yy0;
2231
2229
    }
2232
 
#line 2232 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2230
#line 2230 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2233
2231
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
2234
2232
        break;
2235
2233
      case 29:
2236
2234
        YYTRACE("control_line ::= define_line TOK_PRE_DIRECTIVE_END")
2237
 
#line 1140 "cpp/PreParser.lem"
 
2235
#line 1138 "cpp/PreParser.lem"
2238
2236
{
2239
2237
        yygotominor.yy0 = yymsp[-1].minor.yy0;
2240
2238
    }
2241
 
#line 2241 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2239
#line 2239 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2242
2240
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
2243
2241
        break;
2244
2242
      case 30:
2245
2243
        YYTRACE("control_line ::= undef_line TOK_PRE_DIRECTIVE_END")
2246
 
#line 1144 "cpp/PreParser.lem"
 
2244
#line 1142 "cpp/PreParser.lem"
2247
2245
{
2248
2246
        yygotominor.yy0 = yymsp[-1].minor.yy0;
2249
2247
    }
2250
 
#line 2250 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2248
#line 2248 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2251
2249
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
2252
2250
        break;
2253
2251
      case 31:
2254
2252
        YYTRACE("control_line ::= warning_line TOK_PRE_DIRECTIVE_END")
2255
 
#line 1148 "cpp/PreParser.lem"
 
2253
#line 1146 "cpp/PreParser.lem"
2256
2254
{
2257
2255
        yygotominor.yy0 = yymsp[-1].minor.yy0;
2258
2256
    }
2259
 
#line 2259 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2257
#line 2257 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2260
2258
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
2261
2259
        break;
2262
2260
      case 32:
2263
2261
        YYTRACE("control_line ::= error_line TOK_PRE_DIRECTIVE_END")
2264
 
#line 1152 "cpp/PreParser.lem"
 
2262
#line 1150 "cpp/PreParser.lem"
2265
2263
{
2266
2264
        yygotominor.yy0 = yymsp[-1].minor.yy0;
2267
2265
    }
2268
 
#line 2268 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2266
#line 2266 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2269
2267
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
2270
2268
        break;
2271
2269
      case 33:
2272
2270
        YYTRACE("include_line ::= TOK_PRE_INCLUDE token_list")
2273
 
#line 1161 "cpp/PreParser.lem"
 
2271
#line 1159 "cpp/PreParser.lem"
2274
2272
{
2275
2273
        yygotominor.yy0 = new PreIncludeDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2276
2274
 
2281
2279
                      (parser->scanner ()))->length () - 1;
2282
2280
 
2283
2281
            if (((PreIncludeDirective*)yygotominor.yy0)->is_forced ())
2284
 
                state->forcedIncludes = true;
 
2282
                state->forcedIncludes = true;
2285
2283
            else if (!((PreIncludeDirective*)yygotominor.yy0)->is_forced () && num == 0)
2286
 
                state->forcedIncludes = false;
2287
 
            
 
2284
                state->forcedIncludes = false;
 
2285
 
2288
2286
            if (state->forcedIncludes)
2289
 
                num--;
2290
 
            
 
2287
                num--;
 
2288
 
2291
2289
            // Save current include depth.
2292
2290
            ((PreIncludeDirective*)yygotominor.yy0)->depth (num);
2293
2291
 
2298
2296
                *err << ((PreTreeToken*) yymsp[-1].minor.yy0)->token ()->location ()
2299
2297
                     << sev_error << "Include recursion too deep ("
2300
2298
                     << num << ")" << endMessage; 
2301
 
            } 
2302
 
            
 
2299
            }
 
2300
 
2303
2301
            // Include the given file.
2304
2302
            else 
2305
2303
            {        // Update the predefined macros.
2306
2304
                updatePredefined ();
2307
 
        
 
2305
 
2308
2306
                // Include the file and add a daughter node with a 
2309
2307
                // reference to that file to the syntax tree.
2310
2308
                char* str = buildString (yymsp[0].minor.yy0);
2311
2309
                Unit* unit = 0;
2312
2310
                bool guarded = false;
2313
 
                
 
2311
 
2314
2312
                const char *txt = ((PreTreeToken*)yymsp[-1].minor.yy0)->token ()->text ();
2315
 
                
 
2313
 
2316
2314
                // compare last character of directive token to decide
2317
2315
                // whether this is an #include or #import directive
2318
2316
                if (txt && txt[strlen (txt)-1] == 't') {
2325
2323
                  unit = parser->fileIncluder ()->includeFile (str);
2326
2324
                  guarded = parser->fileIncluder ()->guarded ();
2327
2325
                }
2328
 
                
 
2326
 
2329
2327
                yygotominor.yy0->add_daughter (new PreInclSemNode (unit, guarded));
2330
2328
                delete[] str;
2331
2329
            }
2332
2330
        }
2333
2331
    }
2334
 
#line 2334 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2332
#line 2332 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2335
2333
        break;
2336
2334
      case 34:
2337
2335
        YYTRACE("include_next_line ::= TOK_PRE_INCLUDE_NEXT token_list")
2338
 
#line 1227 "cpp/PreParser.lem"
 
2336
#line 1225 "cpp/PreParser.lem"
2339
2337
{
2340
2338
        yygotominor.yy0 = new PreIncludeDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2341
2339
 
2344
2342
            // Calculate the number of files included.
2345
2343
            int num = state->number ? state->number - 2 : ((TokenStream*)
2346
2344
                      (parser->scanner ()))->length () - 1;
2347
 
            
 
2345
 
2348
2346
            // If the number of files included is higher than a maximal
2349
2347
            // count of maxIncludeDepth we should report an error and 
2350
2348
            // ignore the file to include.
2353
2351
                     << sev_error << "Include recursion too deep ("
2354
2352
                     << num << ")" << endMessage; 
2355
2353
            } 
2356
 
            
 
2354
 
2357
2355
            // Include the next file with the given filename.
2358
2356
            else 
2359
2357
            {        // Update the predefined macros.
2360
2358
                updatePredefined ();
2361
 
        
 
2359
 
2362
2360
                // Include the next file and add a daughter node with
2363
2361
                // a reference to that file to the syntax tree.
2364
2362
                char* str = buildString (yymsp[0].minor.yy0);
2369
2367
            }
2370
2368
        }
2371
2369
    }
2372
 
#line 2372 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2370
#line 2370 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2373
2371
        break;
2374
2372
      case 35:
2375
2373
        YYTRACE("assert_line ::= TOK_PRE_ASSERT token_list")
2376
 
#line 1266 "cpp/PreParser.lem"
 
2374
#line 1264 "cpp/PreParser.lem"
2377
2375
{
2378
2376
        yygotominor.yy0 = new PreAssertDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2379
2377
    }
2380
 
#line 2380 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2378
#line 2378 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2381
2379
        break;
2382
2380
      case 36:
2383
2381
        YYTRACE("assert_line ::= TOK_PRE_ASSERT TOK_PRE_ID token_list")
2384
 
#line 1270 "cpp/PreParser.lem"
 
2382
#line 1268 "cpp/PreParser.lem"
2385
2383
{
2386
2384
        yygotominor.yy0 = new PreAssertDirective (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2387
2385
        
2407
2405
            }
2408
2406
        }
2409
2407
    }
2410
 
#line 2410 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2408
#line 2408 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2411
2409
        break;
2412
2410
      case 37:
2413
2411
        YYTRACE("unassert_line ::= TOK_PRE_UNASSERT token_list")
2414
 
#line 1301 "cpp/PreParser.lem"
 
2412
#line 1299 "cpp/PreParser.lem"
2415
2413
{
2416
2414
        yygotominor.yy0 = new PreUnassertDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2417
2415
    }
2418
 
#line 2418 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2416
#line 2416 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2419
2417
        break;
2420
2418
      case 38:
2421
2419
        YYTRACE("unassert_line ::= TOK_PRE_UNASSERT TOK_PRE_ID token_list")
2422
 
#line 1305 "cpp/PreParser.lem"
 
2420
#line 1303 "cpp/PreParser.lem"
2423
2421
{
2424
2422
        yygotominor.yy0 = new PreUnassertDirective (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2425
2423
 
2446
2444
            }
2447
2445
        }
2448
2446
    }
2449
 
#line 2449 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2447
#line 2447 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2450
2448
        break;
2451
2449
      case 39:
2452
2450
        YYTRACE("define_line ::= TOK_PRE_DEFINE token_list")
2453
 
#line 1337 "cpp/PreParser.lem"
 
2451
#line 1335 "cpp/PreParser.lem"
2454
2452
{
2455
2453
        yygotominor.yy0 = new PreDefineConstantDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2456
2454
    }
2457
 
#line 2457 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2455
#line 2455 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2458
2456
        break;
2459
2457
      case 40:
2460
2458
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN TOK_PRE_RPAREN token_list")
2461
 
#line 1342 "cpp/PreParser.lem"
 
2459
#line 1340 "cpp/PreParser.lem"
2462
2460
{
2463
2461
        yygotominor.yy0 = new PreDefineFunctionDirective (yymsp[-4].minor.yy0, yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2464
2462
        
2479
2477
                delete macro;
2480
2478
        }
2481
2479
    }
2482
 
#line 2482 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2480
#line 2480 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2483
2481
        break;
2484
2482
      case 41:
2485
2483
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN TOK_PRE_REST TOK_PRE_RPAREN token_list")
2486
 
#line 1364 "cpp/PreParser.lem"
 
2484
#line 1362 "cpp/PreParser.lem"
2487
2485
{
2488
2486
        yygotominor.yy0 = new PreDefineFunctionDirective (yymsp[-5].minor.yy0, yymsp[-4].minor.yy0, yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2489
2487
        
2496
2494
                              token ()->dtext (), (PreTree*) 0, str, 
2497
2495
                              PreMacro::VAR_ARG_MACRO);
2498
2496
            delete[] str;
 
2497
            macro->addArg ("__VA_ARGS__");
2499
2498
            macro->location (((PreTreeToken*) yymsp[-5].minor.yy0)->token ()->location ());
2500
2499
            
2501
2500
            // Add the macro to the macro manager if its name is a valid
2506
2505
                delete macro;
2507
2506
        }
2508
2507
    }
2509
 
#line 2509 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2508
#line 2508 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2510
2509
        break;
2511
2510
      case 42:
2512
2511
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN identifier_list TOK_PRE_RPAREN token_list")
2513
 
#line 1389 "cpp/PreParser.lem"
 
2512
#line 1388 "cpp/PreParser.lem"
2514
2513
{
2515
2514
        yygotominor.yy0 = new PreDefineFunctionDirective (yymsp[-5].minor.yy0, yymsp[-4].minor.yy0, yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2516
2515
        
2531
2530
                delete macro;
2532
2531
        }
2533
2532
    }
2534
 
#line 2534 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2533
#line 2533 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2535
2534
        break;
2536
2535
      case 43:
2537
2536
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN identifier_list TOK_PRE_REST TOK_PRE_RPAREN token_list")
2538
 
#line 1412 "cpp/PreParser.lem"
 
2537
#line 1411 "cpp/PreParser.lem"
2539
2538
{
2540
2539
        yygotominor.yy0 = new PreDefineFunctionDirective (yymsp[-6].minor.yy0, yymsp[-5].minor.yy0, yymsp[-4].minor.yy0, yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2541
2540
        
2557
2556
                delete macro;
2558
2557
        }
2559
2558
    }
2560
 
#line 2560 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2559
#line 2559 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2561
2560
        break;
2562
2561
      case 44:
2563
2562
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN identifier_list TOK_PRE_COMMA TOK_PRE_REST TOK_PRE_RPAREN token_list")
2564
 
#line 1436 "cpp/PreParser.lem"
 
2563
#line 1435 "cpp/PreParser.lem"
2565
2564
{
2566
2565
        yygotominor.yy0 = new PreDefineFunctionDirective (yymsp[-7].minor.yy0, yymsp[-6].minor.yy0, yymsp[-5].minor.yy0, yymsp[-4].minor.yy0, yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2567
2566
        
2584
2583
                delete macro;
2585
2584
        }
2586
2585
    }
2587
 
#line 2587 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2586
#line 2586 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2588
2587
        break;
2589
2588
      case 45:
2590
2589
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID token_list")
2591
 
#line 1459 "cpp/PreParser.lem"
 
2590
#line 1458 "cpp/PreParser.lem"
2592
2591
{
2593
2592
        yygotominor.yy0 = new PreDefineConstantDirective (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2594
2593
 
2609
2608
                delete macro;
2610
2609
        }
2611
2610
    }
2612
 
#line 2612 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2611
#line 2611 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2613
2612
        break;
2614
2613
      case 46:
2615
2614
        YYTRACE("undef_line ::= TOK_PRE_UNDEF token_list")
2616
 
#line 1485 "cpp/PreParser.lem"
 
2615
#line 1484 "cpp/PreParser.lem"
2617
2616
{
2618
2617
        yygotominor.yy0 = new PreUndefDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2619
2618
    }
2620
 
#line 2620 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2619
#line 2619 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2621
2620
        break;
2622
2621
      case 47:
2623
2622
        YYTRACE("undef_line ::= TOK_PRE_UNDEF TOK_PRE_ID token_list")
2624
 
#line 1489 "cpp/PreParser.lem"
 
2623
#line 1488 "cpp/PreParser.lem"
2625
2624
{
2626
2625
        yygotominor.yy0 = new PreUndefDirective (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2627
2626
        
2630
2629
            parser->macroManager ()->removeMacro (((PreTreeToken*) yymsp[-1].minor.yy0)->
2631
2630
                                                  token ()->dtext ());
2632
2631
    }
2633
 
#line 2633 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2632
#line 2632 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2634
2633
        break;
2635
2634
      case 48:
2636
2635
        YYTRACE("warning_line ::= TOK_PRE_WARNING token_list")
2637
 
#line 1503 "cpp/PreParser.lem"
 
2636
#line 1502 "cpp/PreParser.lem"
2638
2637
{
2639
2638
        yygotominor.yy0 = new PreWarningDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2640
2639
        
2648
2647
            delete[] message;
2649
2648
        }
2650
2649
    }
2651
 
#line 2651 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2650
#line 2650 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2652
2651
        break;
2653
2652
      case 49:
2654
2653
        YYTRACE("error_line ::= TOK_PRE_ERROR token_list")
2655
 
#line 1522 "cpp/PreParser.lem"
 
2654
#line 1521 "cpp/PreParser.lem"
2656
2655
{
2657
2656
        yygotominor.yy0 = new PreErrorDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2658
2657
        
2670
2669
            delete[] message;
2671
2670
        }
2672
2671
    }
2673
 
#line 2673 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2672
#line 2672 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2674
2673
        break;
2675
2674
      case 50:
2676
2675
        YYTRACE("identifier_list ::= TOK_PRE_ID")
2677
 
#line 1545 "cpp/PreParser.lem"
 
2676
#line 1544 "cpp/PreParser.lem"
2678
2677
2679
2678
        yygotominor.yy0 = new PreIdentifierList (yymsp[0].minor.yy0);
2680
2679
    }
2681
 
#line 2681 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2680
#line 2680 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2682
2681
        break;
2683
2682
      case 51:
2684
2683
        YYTRACE("identifier_list ::= identifier_list TOK_PRE_COMMA TOK_PRE_ID")
2685
 
#line 1549 "cpp/PreParser.lem"
 
2684
#line 1548 "cpp/PreParser.lem"
2686
2685
{
2687
2686
        ((PreIdentifierList*) (yymsp[-2].minor.yy0))->addSons (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2688
2687
        yygotominor.yy0 = yymsp[-2].minor.yy0;
2689
2688
    }
2690
 
#line 2690 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2689
#line 2689 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2691
2690
        break;
2692
2691
      case 52:
2693
2692
        YYTRACE("token_list ::= TOK_PRE_NEWLINE")
2694
 
#line 1559 "cpp/PreParser.lem"
 
2693
#line 1558 "cpp/PreParser.lem"
2695
2694
2696
2695
        if (yymsp[0].minor.yy0->startToken () == state->newline) 
2697
2696
        {
2701
2700
        else
2702
2701
            yygotominor.yy0 = yymsp[0].minor.yy0;  
2703
2702
    }
2704
 
#line 2704 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2703
#line 2703 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2705
2704
        break;
2706
2705
      case 53:
2707
2706
        YYTRACE("token_list ::= token_list_part TOK_PRE_NEWLINE")
2708
 
#line 1569 "cpp/PreParser.lem"
 
2707
#line 1568 "cpp/PreParser.lem"
2709
2708
2710
2709
        if (yymsp[0].minor.yy0->startToken () == state->newline) 
2711
2710
        {
2715
2714
        else
2716
2715
            yygotominor.yy0 = new PreTokenList (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
2717
2716
    }
2718
 
#line 2718 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2717
#line 2717 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2719
2718
        break;
2720
2719
      case 54:
2721
2720
        YYTRACE("token_list_part ::= TOK_PRE_TOKEN_LIST")
2722
 
#line 1584 "cpp/PreParser.lem"
 
2721
#line 1583 "cpp/PreParser.lem"
2723
2722
2724
2723
        yygotominor.yy0 = new PreTokenListPart (yymsp[0].minor.yy0); 
2725
2724
    }
2726
 
#line 2726 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2725
#line 2725 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2727
2726
        break;
2728
2727
      case 55:
2729
2728
        YYTRACE("token_list_part ::= token_list_part TOK_PRE_TOKEN_LIST")
2730
 
#line 1588 "cpp/PreParser.lem"
 
2729
#line 1587 "cpp/PreParser.lem"
2731
2730
2732
2731
        yymsp[-1].minor.yy0->add_son (yymsp[0].minor.yy0);
2733
2732
        yygotominor.yy0 = yymsp[-1].minor.yy0; 
2734
2733
    }
2735
 
#line 2735 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2734
#line 2734 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2736
2735
        break;
2737
2736
  };
2738
2737
  yygoto = yyRuleInfo[yyruleno].lhs;
2774
2773
  PreParserANSIARGDECL               /* Extra arguments (if any) */
2775
2774
){
2776
2775
#define TOKEN (yyminor.yy0)
2777
 
#line 721 "cpp/PreParser.lem"
 
2776
#line 714 "cpp/PreParser.lem"
2778
2777
 
2779
2778
    // Prevent the parser to report an error twice.
2780
2779
    if (state->syntaxError) {
2803
2802
                 << state->lastToken->text () << "'" << endMessage; 
2804
2803
    }
2805
2804
 
2806
 
#line 2806 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
2805
#line 2805 "/tmp/tmp.LKCULpBdih/aspectc++.svn20090615/Puma/gen-release/step1/src/PreParser.cc"
2807
2806
}
2808
2807
 
2809
2808
/*