use base ("Understand::Codecheck"); use strict; use Codecheck::Libraries::NamingConventions; my $kind = "Entry"; my $kindPlural ="Entries"; my $languageText = "Ada"; my $languageTest = "Ada"; my $canChangePrecedence = 0; my $defaultAll =1; my @kindStrings= qw(Body); my %kindNameLookup= (); sub check { my ($check,$file) =@_; return unless $file->kind->check("file"); setlib(); foreach my $varRef ($file->filerefs("declare,body define","Ada Entry ~unknown ~unresolved",1)){ my $var = $varRef->ent; #Build the list of Kinds for this variable my $kindString = $var->kind->longname(); my $varkindNameArray = getPrimaryKind($check,$kindString); my $errors = checkNamingRules($var->name,$varkindNameArray,$check); $check->violation($var,$file,$varRef->line(),$varRef->column,NAMEERROR,$Codecheck::Libraries::NamingConventions::kindNameLookup{$varkindNameArray},$var->name,$errors) if $errors; } } #Template code, do not modify below this line sub setlib{ @Codecheck::Libraries::NamingConventions::kindStrings = @kindStrings; %Codecheck::Libraries::NamingConventions::kindNameLookup = %kindNameLookup; setOptions($kind,$kindPlural,$languageText,$languageTest,$canChangePrecedence,$defaultAll); } sub register_tr_text {registerNamingErrors(shift);} sub name {setlib; return "Naming Convention: $kindPlural";} sub description {setlib;return "Define naming convention for $languageText $kindPlural";} sub detailed_description { setlib;return getNamingDescription();} sub test_language { setlib;return shift eq $languageTest;} sub define_options{ setlib;setNamingOptions(shift);} sub test_entity { return 1;} sub test_global { return 0;}