Home | History | Annotate | Download | only in Parse

Lines Matching defs:Specifier

52 ///         'namespace' identifier '=' qualified-namespace-specifier ';'
246 // Parse (optional) nested-name-specifier.
377 /// 'using' 'namespace' ::[opt] nested-name-specifier[opt]
380 /// 'using' 'namespace' ::[opt] nested-name-specifier[opt]
399 // Parse (optional) nested-name-specifier.
440 /// 'using' 'typename'[opt] ::[opt] nested-name-specifier
445 /// 'using' identifier attribute-specifier-seq[opt] = type-id ;
465 // FIXME: This is wrong; we should parse this as a typename-specifier.
471 // Parse nested-name-specifier.
477 // Check nested-name specifier.
492 // specified after the nested-name-specifier is the same as the identifier
494 // nested-name-specifier, the name is [...] considered to name the
590 // ignoring the parameters, just in case the nested name specifier
679 /// ParseDecltypeSpecifier - Parse a C++11 decltype specifier.
686 && "Not a decltype specifier");
717 // because the typename-specifier in a function-style cast operation can't
728 // The operand of the decltype specifier is an unevaluated operand.
807 "Not an underlying type specifier");
835 /// ParseBaseTypeSpecifier - Parse a C++ base-type-specifier which is either a
836 /// class name or decltype-specifier. Note that we only check that the result
841 /// base-type-specifier: [C++11 class.derived]
844 /// nested-name-specifier[opt] class-name
845 /// decltype-specifier
850 /// In C++98, instead of base-type-specifier, we have:
852 /// ::[opt] nested-name-specifier[opt] class-name
862 // Parse optional nested-name-specifier
868 // Parse decltype-specifier
990 /// Determine whether the following tokens are valid after a type-specifier
1035 // type/storage class specifier we're seeing is part of the *next*
1044 // token to see if it's a type specifier. If so, we know the code is
1065 /// ParseClassSpecifier - Parse a C++ class-specifier [C++ class] or
1066 /// elaborated-type-specifier [C++ dcl.type.elab]; we can't tell which
1070 /// class-specifier: [C++ class]
1075 /// class-key nested-name-specifier identifier base-clause[opt]
1076 /// class-key nested-name-specifier[opt] simple-template-id
1079 /// [GNU] class-key attributes[opt] nested-name-specifier
1081 /// [GNU] class-key attributes[opt] nested-name-specifier[opt]
1088 /// elaborated-type-specifier: [C++ dcl.type.elab]
1089 /// class-key ::[opt] nested-name-specifier[opt] identifier
1090 /// class-key ::[opt] nested-name-specifier[opt] 'template'[opt]
1093 /// Note that the C++ class-specifier and elaborated-type-specifier,
1094 /// together, subsume the C99 struct-or-union-specifier:
1096 /// struct-or-union-specifier: [C99 6.7.2.1]
1119 assert(TagTokKind == tok::kw_union && "Not a class specifier");
1138 // type specifier.
1196 // Parse the (optional) nested-name-specifier.
1304 // However, in type-specifier-seq's, things look like declarations but are
1402 // If this is an elaborated type specifier, and we delayed
1622 // At this point, we've successfully parsed a class-specifier in 'definition'
1648 /// ':' base-specifier-list
1649 /// base-specifier-list:
1650 /// base-specifier '...'[opt]
1651 /// base-specifier-list ',' base-specifier '...'[opt]
1660 // Parse a base-specifier.
1663 // Skip the rest of this base specifier, up until the comma or
1683 /// ParseBaseSpecifier - Parse a C++ base-specifier. A base-specifier is
1684 /// one entry in the base class list of a class specifier, for example:
1688 /// base-specifier: [C++ class.derived]
1689 /// attribute-specifier-seq[opt] base-type-specifier
1690 /// attribute-specifier-seq[opt] 'virtual' access-specifier[opt]
1691 /// base-type-specifier
1692 /// attribute-specifier-seq[opt] access-specifier 'virtual'[opt]
1693 specifier
1709 // Parse an (optional) access specifier.
1717 // access specifier.
1739 // actually part of the base-specifier-list grammar productions, but we
1745 // Find the complete source range for the base-specifier.
1749 // base-specifier.
1756 /// a C++ access-specifier.
1758 /// access-specifier: [C++ class.derived]
1809 /// virt-specifier.
1811 /// virt-specifier:
1814 VirtSpecifiers::Specifier Parser::isCXX11VirtSpecifier(const Token &Tok) const {
1837 /// ParseOptionalCXX11VirtSpecifierSeq - Parse a virt-specifier-seq.
1839 /// virt-specifier-seq:
1840 /// virt-specifier
1841 /// virt-specifier-seq virt-specifier
1845 VirtSpecifiers::Specifier Specifier = isCXX11VirtSpecifier();
1846 if (Specifier == VirtSpecifiers::VS_None)
1850 // A virt-specifier-seq shall contain at most one of each virt-specifier.
1852 if (VS.SetSpecifier(Specifier, Tok.getLocation(), PrevSpec))
1857 if (IsInterface && Specifier == VirtSpecifiers::VS_Final) {
1859 << VirtSpecifiers::getSpecifierName(Specifier);
1864 << VirtSpecifiers::getSpecifierName(Specifier);
1891 /// decl-specifier-seq[opt] member-declarator-list[opt] ';'
1893 /// ::[opt] nested-name-specifier template[opt] unqualified-id ';'[TODO]
1904 /// declarator virt-specifier-seq[opt] pure-specifier[opt]
1909 /// virt-specifier-seq:
1910 /// virt-specifier
1911 /// virt-specifier-seq virt-specifier
1913 /// virt-specifier:
1917 /// pure-specifier:
1954 // Collect the scope specifier token we annotated earlier.
2018 // Optional C++11 attribute-specifier
2021 // before they are taken over by declaration specifier.
2048 // decl-specifier-seq:
2102 // MSVC permits pure specifier on inline functions declared at class scope.
2135 // C++11 [dcl.attr.grammar] p4: If an attribute-specifier-seq appertains
2139 // Diagnose attributes that appear before decl specifier:
2196 // declarator pure-specifier[opt]
2244 // C++11 [dcl.attr.grammar] p4: If an attribute-specifier-seq appertains
2386 /// pure-specifier. Also detect and reject any attempted defaulted/deleted
2390 /// pure-specifier:
2450 /// access-specifier ':' member-specification[opt]
2599 // Current token is a C++ access specifier.
2766 /// '::'[opt] nested-name-specifier[opt] class-name
2769 // parse '::'[opt] nested-name-specifier[opt]
3129 /// ParseCXX11AttributeSpecifier - Parse a C++11 attribute-specifier. Currently
3132 /// [C++11] attribute-specifier:
3134 /// alignment-specifier
3263 /// ParseCXX11Attributes - Parse a C++11 attribute-specifier-seq.
3265 /// attribute-specifier-seq:
3266 /// attribute-specifier-seq[opt] attribute-specifier
3345 // Current token is a C++ access specifier.