浏览代码

allow typename keyword in lieu of class, in template declarations

David Rose 14 年之前
父节点
当前提交
633e697d54
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      dtool/src/cppparser/cppBison.yxx

+ 8 - 4
dtool/src/cppparser/cppBison.yxx

@@ -1135,6 +1135,14 @@ template_formal_parameter:
         | KW_CLASS name '=' full_type
 {
   $$ = CPPType::new_type(new CPPClassTemplateParameter($2, $4));
+}
+        | KW_TYPENAME name
+{
+  $$ = CPPType::new_type(new CPPClassTemplateParameter($2));
+}
+        | KW_TYPENAME name '=' full_type
+{
+  $$ = CPPType::new_type(new CPPClassTemplateParameter($2, $4));
 }
         | template_formal_parameter_type formal_parameter_identifier template_parameter_maybe_initialize
 {
@@ -1165,10 +1173,6 @@ template_formal_parameter_type:
 {
   $$ = $1->find_type(current_scope, global_scope, false, current_lexer);
   assert($$ != NULL);
-}
-        | KW_TYPENAME name
-{
-  $$ = CPPType::new_type(new CPPTBDType($2));
 }
         ;