Match entire class declaration at once

The previous commit fixed the original issue, but matched templated
classes incorrectly. This should handle all cases. #332
This commit is contained in:
Derek Bankieris 2016-10-25 12:51:51 -05:00
parent 73816bbd9a
commit 055a7337e4

View File

@ -517,8 +517,7 @@ sub handle_sim_class ($$$$) {
$s =~ s/ZZZYYYXXX(\d+)ZZZYYYXXX//esg ;
# grab the class name and the name of the class we are inheriting from
($full_template_args) = $s =~ /template\s+<([^>]+)>/ ;
($class_name, $inherit_class) = $s =~ /class\s+(\S+)\s*(?::\s*public\s*(.*\S))?/ ;
($full_template_args, $class_name, $inherit_class) = $s =~ /(?:template\s+<([^>]+)>)?\s*class\s+(\S+)\s*(?::\s*public\s*(.*\S))?/ ;
$template_args = $full_template_args ;
$template_args =~ s/class|typename//g ;