// bycopy/byref/in/inout/oneway/out?
ANNOTATION(cxxscope) // annotation for a C++ scope spec, e.g. "::foo::bar::"
-ANNOTATION(qualtypename) // annotation for a C typedef name, a C++ (possibly
+ANNOTATION(typename) // annotation for a C typedef name, a C++ (possibly
// qualified) typename, e.g. "foo::MyClass", or
// template-id that names a type ("std::vector<int>")
ANNOTATION(template_id) // annotation for a C++ template-id that names a
bool isNot(tok::TokenKind K) const { return Kind != (unsigned) K; }
bool isAnnotationToken() const {
- return is(tok::annot_qualtypename) ||
+ return is(tok::annot_typename) ||
is(tok::annot_cxxscope) ||
is(tok::annot_template_id);
}
return false;
// simple-type-specifier:
- case tok::annot_qualtypename: {
+ case tok::annot_typename: {
isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typedef, Loc, PrevSpec,
Tok.getAnnotationValue());
DS.SetRangeEnd(Tok.getAnnotationEndLoc());
case tok::kw_restrict:
// typedef-name
- case tok::annot_qualtypename:
+ case tok::annot_typename:
return true;
// GNU ObjC bizarre protocol extension: <proto1,proto2> with implicit 'id'.
case tok::kw_explicit:
// typedef-name
- case tok::annot_qualtypename:
+ case tok::annot_typename:
// GNU typeof support.
case tok::kw_typeof:
case tok::identifier: { // primary-expression: identifier
// unqualified-id: identifier
// constant: enumeration-constant
- // Turn a potentially qualified name into a annot_qualtypename or
+ // Turn a potentially qualified name into a annot_typename or
// annot_cxxscope if it would be valid. This handles things like x::y, etc.
if (getLang().CPlusPlus) {
// If TryAnnotateTypeOrScopeToken annotates the token, tail recurse.
case tok::kw_double:
case tok::kw_void:
case tok::kw_typeof:
- case tok::annot_qualtypename: {
+ case tok::annot_typename: {
if (!getLang().CPlusPlus) {
Diag(Tok, diag::err_expected_expression);
return ExprError();
abort();
// type-name
- case tok::annot_qualtypename: {
+ case tok::annot_typename: {
DS.SetTypeSpecType(DeclSpec::TST_typedef, Loc, PrevSpec,
Tok.getAnnotationValue());
break;
DS.Finish(Diags, PP.getSourceManager(), getLang());
return;
}
- if (Tok.is(tok::annot_qualtypename))
+ if (Tok.is(tok::annot_typename))
DS.SetRangeEnd(Tok.getAnnotationEndLoc());
else
DS.SetRangeEnd(Tok.getLocation());
if(Tok.is(tok::kw_class) ||
(Tok.is(tok::kw_typename) &&
// FIXME: Next token has not been annotated!
- NextToken().isNot(tok::annot_qualtypename))) {
+ NextToken().isNot(tok::annot_typename))) {
return ParseTypeParameter(Depth, Position);
}
case tok::kw_float:
case tok::kw_double:
case tok::kw_void:
- case tok::annot_qualtypename:
+ case tok::annot_typename:
if (NextToken().is(tok::l_paren))
return TPResult::Ambiguous();
CurScope, &SS)) {
// This is a typename. Replace the current token in-place with an
// annotation type token.
- Tok.setKind(tok::annot_qualtypename);
+ Tok.setKind(tok::annot_typename);
Tok.setAnnotationValue(Ty);
Tok.setAnnotationEndLoc(Tok.getLocation());
if (SS.isNotEmpty()) // it was a C++ qualified type name.