Mercurial > projects > dil
comparison trunk/src/Parser.d @ 270:764eccdf619d
- Fix in parseAttributeStatement(): added checks for T.LParen after const/invariant.
author | aziz |
---|---|
date | Sat, 04 Aug 2007 19:27:00 +0000 |
parents | a416e09c08ea |
children | 68987c1c59b6 |
comparison
equal
deleted
inserted
replaced
269:a416e09c08ea | 270:764eccdf619d |
---|---|
1820 } | 1820 } |
1821 require(T.RParen); | 1821 require(T.RParen); |
1822 } | 1822 } |
1823 s = new ExternStatement(linkage, parse()); | 1823 s = new ExternStatement(linkage, parse()); |
1824 break; | 1824 break; |
1825 //case T.Invariant: // D 2.0 | |
1826 case T.Static: | 1825 case T.Static: |
1827 tmp = StorageClass.Static; | 1826 tmp = StorageClass.Static; |
1828 goto Lcommon; | 1827 goto Lcommon; |
1829 case T.Final: | 1828 case T.Final: |
1830 tmp = StorageClass.Final; | 1829 tmp = StorageClass.Final; |
1831 goto Lcommon; | 1830 goto Lcommon; |
1832 case T.Const: | 1831 case T.Const: |
1832 version(D2) | |
1833 { | |
1834 if (peekNext() == T.LParen) | |
1835 goto case_Declaration; | |
1836 } | |
1833 tmp = StorageClass.Const; | 1837 tmp = StorageClass.Const; |
1834 goto Lcommon; | 1838 goto Lcommon; |
1839 version(D2) | |
1840 { | |
1841 case T.Invariant: // D 2.0 | |
1842 if (peekNext() == T.LParen) | |
1843 goto case_Declaration; | |
1844 tmp = StorageClass.Invariant; | |
1845 goto Lcommon; | |
1846 } | |
1835 case T.Auto: | 1847 case T.Auto: |
1836 tmp = StorageClass.Auto; | 1848 tmp = StorageClass.Auto; |
1837 goto Lcommon; | 1849 goto Lcommon; |
1838 case T.Scope: | 1850 case T.Scope: |
1839 tmp = StorageClass.Scope; | 1851 tmp = StorageClass.Scope; |
1845 s = new AttributeStatement(tok, parse()); | 1857 s = new AttributeStatement(tok, parse()); |
1846 break; | 1858 break; |
1847 // TODO: allow "scope class", "abstract scope class" in function bodies? | 1859 // TODO: allow "scope class", "abstract scope class" in function bodies? |
1848 //case T.Class: | 1860 //case T.Class: |
1849 default: | 1861 default: |
1862 case_Declaration: | |
1850 s = new DeclarationStatement(parseDeclaration(stc)); | 1863 s = new DeclarationStatement(parseDeclaration(stc)); |
1851 } | 1864 } |
1852 set(s, begin); | 1865 set(s, begin); |
1853 return s; | 1866 return s; |
1854 } | 1867 } |