Home | History | Annotate | Download | only in Parse

Lines Matching full:specifier

55 ///         'namespace' identifier '=' qualified-namespace-specifier ';'
263 // Parse (optional) nested-name-specifier.
416 /// 'using' 'namespace' ::[opt] nested-name-specifier[opt]
419 /// 'using' 'namespace' ::[opt] nested-name-specifier[opt]
438 // Parse (optional) nested-name-specifier.
479 /// 'using' 'typename'[opt] ::[opt] nested-name-specifier
484 /// 'using' identifier attribute-specifier-seq[opt] = type-id ;
502 // FIXME: This is wrong; we should parse this as a typename-specifier.
512 // Parse nested-name-specifier.
519 // Check nested-name specifier.
534 // specified after the nested-name-specifier is the same as the identifier
536 // nested-name-specifier, the name is [...] considered to name the
649 // ignoring the parameters, just in case the nested name specifier
750 /// ParseDecltypeSpecifier - Parse a C++11 decltype specifier.
757 && "Not a decltype specifier");
788 // because the typename-specifier in a function-style cast operation can't
799 // The operand of the decltype specifier is an unevaluated operand.
881 "Not an underlying type specifier");
910 /// ParseBaseTypeSpecifier - Parse a C++ base-type-specifier which is either a
911 /// class name or decltype-specifier. Note that we only check that the result
916 /// base-type-specifier: [C++11 class.derived]
919 /// nested-name-specifier[opt] class-name
920 /// decltype-specifier
925 /// In C++98, instead of base-type-specifier, we have:
927 /// ::[opt] nested-name-specifier[opt] class-name
937 // Parse optional nested-name-specifier
943 // Parse decltype-specifier
1071 /// Determine whether the following tokens are valid after a type-specifier
1124 // type/storage class specifier we're seeing is part of the *next*
1133 // token to see if it's a type specifier. If so, we know the code is
1150 /// ParseClassSpecifier - Parse a C++ class-specifier [C++ class] or
1151 /// elaborated-type-specifier [C++ dcl.type.elab]; we can't tell which
1155 /// class-specifier: [C++ class]
1160 /// class-key nested-name-specifier identifier base-clause[opt]
1161 /// class-key nested-name-specifier[opt] simple-template-id
1164 /// [GNU] class-key attributes[opt] nested-name-specifier
1166 /// [GNU] class-key attributes[opt] nested-name-specifier[opt]
1173 /// elaborated-type-specifier: [C++ dcl.type.elab]
1174 /// class-key ::[opt] nested-name-specifier[opt] identifier
1175 /// class-key ::[opt] nested-name-specifier[opt] 'template'[opt]
1178 /// Note that the C++ class-specifier and elaborated-type-specifier,
1179 /// together, subsume the C99 struct-or-union-specifier:
1181 /// struct-or-union-specifier: [C99 6.7.2.1]
1204 assert(TagTokKind == tok::kw_union && "Not a class specifier");
1223 // type specifier.
1312 // Parse the (optional) nested-name-specifier.
1316 // is a base-specifier-list.
1425 // However, in type-specifier-seq's, things look like declarations but are
1525 // If this is an elaborated type specifier, and we delayed
1749 // At this point, we've successfully parsed a class-specifier in 'definition'
1759 // After a type-specifier, we don't expect a semicolon. This only happens in
1780 /// ':' base-specifier-list
1781 /// base-specifier-list:
1782 /// base-specifier '...'[opt]
1783 /// base-specifier-list ',' base-specifier '...'[opt]
1792 // Parse a base-specifier.
1795 // Skip the rest of this base specifier, up until the comma or
1813 /// ParseBaseSpecifier - Parse a C++ base-specifier. A base-specifier is
1814 /// one entry in the base class list of a class specifier, for example:
1818 /// base-specifier: [C++ class.derived]
1819 /// attribute-specifier-seq[opt] base-type-specifier
1820 /// attribute-specifier-seq[opt] 'virtual' access-specifier[opt]
1821 /// base-type-specifier
1822 /// attribute-specifier-seq[opt] access-specifier 'virtual'[opt]
1823 /// base-type-specifier
1837 // Parse an (optional) access specifier.
1845 // access specifier.
1867 // actually part of the base-specifier-list grammar productions, but we
1872 // Find the complete source range for the base-specifier.
1876 // base-specifier.
1883 /// a C++ access-specifier.
1885 /// access-specifier: [C++ class.derived]
1942 /// virt-specifier.
1944 /// virt-specifier:
1947 VirtSpecifiers::Specifier Parser::isCXX11VirtSpecifier(const Token &Tok) const {
1973 /// ParseOptionalCXX11VirtSpecifierSeq - Parse a virt-specifier-seq.
1975 /// virt-specifier-seq:
1976 /// virt-specifier
1977 /// virt-specifier-seq virt-specifier
1982 VirtSpecifiers::Specifier Specifier = isCXX11VirtSpecifier();
1983 if (Specifier == VirtSpecifiers::VS_None)
1988 << VirtSpecifiers::getSpecifierName(Specifier)
1996 // A virt-specifier-seq shall contain at most one of each virt-specifier.
1998 if (VS.SetSpecifier(Specifier, Tok.getLocation(), PrevSpec))
2003 if (IsInterface && (Specifier == VirtSpecifiers::VS_Final ||
2004 Specifier == VirtSpecifiers::VS_Sealed)) {
2006 << VirtSpecifiers::getSpecifierName(Specifier);
2007 } else if (Specifier == VirtSpecifiers::VS_Sealed) {
2014 << VirtSpecifiers::getSpecifierName(Specifier);
2023 VirtSpecifiers::Specifier Specifier = isCXX11VirtSpecifier();
2024 return Specifier == VirtSpecifiers::VS_Final ||
2025 Specifier == VirtSpecifiers::VS_Sealed;
2029 /// brace-or-equal-initializer or pure-specifier.
2034 // declarator pure-specifier[opt]
2071 // virt-specifier *after* the GNU attributes.
2078 // virt-specifier, issue a GCC-compat warning.
2100 /// virt-specifier-seq and diagnose them.
2164 /// decl-specifier-seq[opt] member-declarator-list[opt] ';'
2166 /// ::[opt] nested-name-specifier template[opt] unqualified-id ';'[TODO]
2177 /// declarator virt-specifier-seq[opt] pure-specifier[opt]
2182 /// virt-specifier-seq:
2183 /// virt-specifier
2184 /// virt-specifier-seq virt-specifier
2186 /// virt-specifier:
2191 /// pure-specifier:
2237 // Collect the scope specifier token we annotated earlier.
2303 // Optional C++11 attribute-specifier
2306 // before they are taken over by declaration specifier.
2333 // decl-specifier-seq:
2392 // MSVC permits pure specifier on inline functions defined at class scope.
2426 // C++11 [dcl.attr.grammar] p4: If an attribute-specifier-seq appertains
2430 // Diagnose attributes that appear before decl specifier:
2502 // C++11 [dcl.attr.grammar] p4: If an attribute-specifier-seq appertains
2637 /// pure-specifier. Also detect and reject any attempted defaulted/deleted
2641 /// pure-specifier:
2752 /// access-specifier ':' member-specification[opt]
2814 VirtSpecifiers::Specifier Specifier = isCXX11VirtSpecifier(Tok);
2815 assert((Specifier == VirtSpecifiers::VS_Final ||
2816 Specifier == VirtSpecifiers::VS_Sealed) &&
2819 IsFinalSpelledSealed = Specifier == VirtSpecifiers::VS_Sealed;
2823 << VirtSpecifiers::getSpecifierName(Specifier);
2824 else if (Specifier == VirtSpecifiers::VS_Final)
2828 << VirtSpecifiers::getSpecifierName(Specifier);
2829 else if (Specifier == VirtSpecifiers::VS_Sealed)
2968 // Current token is a C++ access specifier.
3157 /// '::'[opt] nested-name-specifier[opt] class-name
3160 // parse '::'[opt] nested-name-specifier[opt]
3626 /// ParseCXX11AttributeSpecifier - Parse a C++11 attribute-specifier.
3628 /// [C++11] attribute-specifier:
3630 /// alignment-specifier
3726 /// ParseCXX11Attributes - Parse a C++11 attribute-specifier-seq.
3728 /// attribute-specifier-seq:
3729 /// attribute-specifier-seq[opt] attribute-specifier
3770 assert(Tok.is(tok::kw_alignas) && "not an attribute specifier");
3845 // Current token is a C++ access specifier.