|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
394
 | 
 0  | 
 4  | 
 unless (ref $self)  | 
 
| 
399
 | 
 4  | 
 0  | 
 if ($Geo::METAR::AUTOLOAD =~ /.*::(.*)/) { }  | 
 
| 
413
 | 
 0  | 
 4  | 
 if ($compat{$key})  | 
 
| 
420
 | 
 4  | 
 0  | 
 if (exists $$self{$key}) { }  | 
 
| 
443
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
455
 | 
 1  | 
 0  | 
 if (@_)  | 
 
| 
538
 | 
 0  | 
 9  | 
 if $$self{'debug'}  | 
 
| 
544
 | 
 0  | 
 9  | 
 if ($parsestate == $expect_type and $tok =~ /(METAR|SPECI)/i) { }  | 
 
| 
 | 
 1  | 
 8  | 
 elsif ($parsestate <= $expect_site and $tok =~ /([A-Z]{4}|K[A-Z0-9]{3})/) { }  | 
 
| 
 | 
 1  | 
 7  | 
 elsif ($parsestate == $expect_datetime and $tok =~ /\d{6,6}Z/i) { }  | 
 
| 
 | 
 0  | 
 7  | 
 elsif ($parsestate == $expect_modifier and $tok =~ /AUTO|COR|CC[A-Z]/i) { }  | 
 
| 
 | 
 1  | 
 6  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_visibility and $tok =~ /(\d{3}|VRB)\d{2}(G\d{1,3})?(KT)?$/i) { }  | 
 
| 
 | 
 0  | 
 6  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_visibility and $tok =~ /^(\d{3}|VRB)\d{2}(G\d{2,3})?MPS$/) { }  | 
 
| 
 | 
 0  | 
 6  | 
 elsif ($parsestate >= $expect_wind and $parsestate < $expect_visibility and $tok =~ /^\d{3}V\d{3}$/) { }  | 
 
| 
 | 
 0  | 
 6  | 
 elsif ($parsestate >= $expect_wind and $parsestate < $expect_visibility and $tok =~ m[^/////(KT|MPS)$]) { }  | 
 
| 
 | 
 0  | 
 6  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_runwayvisual and $tok =~ /^\d{4}$/) { }  | 
 
| 
 | 
 0  | 
 6  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_runwayvisual and $tok =~ /^\d{4}NDV$/) { }  | 
 
| 
 | 
 1  | 
 5  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_runwayvisual and $tok =~ /.*?SM$/i) { }  | 
 
| 
 | 
 0  | 
 5  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_runwayvisual and $tok =~ /^\d$/) { }  | 
 
| 
 | 
 0  | 
 5  | 
 elsif ($parsestate == $expect_visibility and $tok =~ /^\d{4}(N|S|E|W|NE|NW|SE|SW)$/) { }  | 
 
| 
 | 
 0  | 
 5  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_presentweather and $tok =~ m[R\d+(L|R|C)?/P?\d+(VP?\d+)?(FT|D|U|N|/)?$]i) { }  | 
 
| 
 | 
 0  | 
 5  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_clouds and $tok =~ /^(-|\+)?(VC)?($_weather_types_pat)+/i) { }  | 
 
| 
 | 
 0  | 
 5  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_temperature and $tok eq 'CAVOK') { }  | 
 
| 
 | 
 0  | 
 5  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_temperature and $tok =~ /SKC|CLR/) { }  | 
 
| 
 | 
 1  | 
 4  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_temperature and $tok =~ m[^(FEW|SCT|BKN|OVC)(\d\d\d)?(CB|TCU)?/*$]i) { }  | 
 
| 
 | 
 0  | 
 4  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_temperature and $tok =~ /^(NSC|NCD)$/) { }  | 
 
| 
 | 
 0  | 
 4  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_temperature and $tok =~ /^VV\d+$/) { }  | 
 
| 
 | 
 1  | 
 3  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_pressure and $tok =~ m[^(M?\d\d)/(M?\d{0,2})]i) { }  | 
 
| 
 | 
 1  | 
 2  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_remarks and $tok =~ /^A(\d\d)(\d\d)$/i) { }  | 
 
| 
 | 
 0  | 
 2  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_remarks and $tok =~ /^Q(\d\d\d\d)$/i) { }  | 
 
| 
 | 
 0  | 
 2  | 
 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_remarks and $tok =~ /^RE($_weather_types_pat)$/) { }  | 
 
| 
 | 
 0  | 
 2  | 
 elsif ($parsestate >= $expect_modifier and $tok =~ /^$_trend_types_pat/) { }  | 
 
| 
 | 
 1  | 
 1  | 
 elsif ($parsestate >= $expect_modifier and $tok =~ /^RMK$/i) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($parsestate == $expect_usremarks and $tok =~ /^A(O\d)$/i) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($parsestate == $expect_usremarks and $tok =~ /^SLP(\d+)/i) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($parsestate == $expect_usremarks and $tok eq 'SLPNO') { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($parsestate == $expect_usremarks and $tok =~ /^P(\d\d\d\d)$/i) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($parsestate == $expect_usremarks and $tok =~ /^($_weather_types_pat)([BE\d]+)$/i) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($parsestate >= $expect_recentweather and $tok eq 'CB' || $tok eq 'TCU') { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($parsestate == $expect_usremarks and $tok =~ /^T(\d)(\d\d)(\d)(\d)(\d\d)(\d)$/i) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($parsestate < $expect_remarks) { }  | 
 
| 
548
 | 
 0  | 
 0  | 
 if ($$self{'type'} eq 'METAR') { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($$self{'type'} eq 'SPECI') { }  | 
 
| 
556
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
568
 | 
 0  | 
 1  | 
 if $$self{'debug'}  | 
 
| 
580
 | 
 0  | 
 1  | 
 if $$self{'debug'}  | 
 
| 
594
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
611
 | 
 0  | 
 1  | 
 if $$self{'debug'}  | 
 
| 
624
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
637
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
647
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
659
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
669
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
681
 | 
 0  | 
 1  | 
 if $$self{'debug'}  | 
 
| 
698
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
707
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
722
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
740
 | 
 0  | 
 0  | 
 if (defined $qual) { }  | 
 
| 
742
 | 
 0  | 
 0  | 
 if ($qual eq '-') { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($qual eq '+') { }  | 
 
| 
762
 | 
 0  | 
 0  | 
 if (defined $addlqual)  | 
 
| 
764
 | 
 0  | 
 0  | 
 if ($addlqual eq 'VC')  | 
 
| 
775
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
804
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
821
 | 
 0  | 
 1  | 
 if (defined $3)  | 
 
| 
823
 | 
 0  | 
 0  | 
 if ($3 eq 'TCU') { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($3 eq 'CB') { }  | 
 
| 
833
 | 
 1  | 
 0  | 
 if ($2 ne '')  | 
 
| 
840
 | 
 0  | 
 1  | 
 if $$self{'debug'}  | 
 
| 
855
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
865
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
876
 | 
 0  | 
 1  | 
 if $$self{'temp_dew'}  | 
 
| 
884
 | 
 0  | 
 1  | 
 if $$self{'debug'}  | 
 
| 
903
 | 
 0  | 
 1  | 
 if $$self{'debug'}  | 
 
| 
917
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
927
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
937
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
949
 | 
 0  | 
 1  | 
 if $$self{'debug'}  | 
 
| 
962
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
974
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
986
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
998
 | 
 0  | 
 0  | 
 if ($1 eq '0000') { }  | 
 
| 
1020
 | 
 0  | 
 0  | 
 if ($1 eq 'B') { }  | 
 
| 
1028
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
1040
 | 
 0  | 
 0  | 
 if ($tok eq 'CB') { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($tok eq 'TCU') { }  | 
 
| 
1055
 | 
 0  | 
 0  | 
 if ($1 == 1)  | 
 
| 
1061
 | 
 0  | 
 0  | 
 if ($4 == 1)  | 
 
| 
1066
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
1078
 | 
 0  | 
 0  | 
 if $$self{'debug'}  | 
 
| 
1090
 | 
 0  | 
 1  | 
 if $$self{'debug'}  | 
 
| 
1111
 | 
 1  | 
 0  | 
 if (defined $$self{'wind'})  | 
 
| 
1119
 | 
 0  | 
 1  | 
 if ($dir_deg =~ /VRB/i) { }  | 
 
| 
1122
 | 
 0  | 
 1  | 
 if ($dir_deg < 15) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($dir_deg < 30) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($dir_deg < 60) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($dir_deg < 75) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($dir_deg < 105) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($dir_deg < 120) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($dir_deg < 150) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($dir_deg < 165) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($dir_deg < 195) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($dir_deg < 210) { }  | 
 
| 
 | 
 1  | 
 0  | 
 elsif ($dir_deg < 240) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($dir_deg < 265) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($dir_deg < 285) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($dir_deg < 300) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($dir_deg < 330) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($dir_deg < 345) { }  | 
 
| 
1184
 | 
 1  | 
 0  | 
 if ($$self{'windtype'} == $wt_knots) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($$self{'windtype'} == $wt_mps) { }  | 
 
| 
1190
 | 
 1  | 
 0  | 
 if ($wind =~ /.{5,6}G(\d\d\d?)/o)  | 
 
| 
1200
 | 
 0  | 
 0  | 
 if ($wind =~ /\d{5,6}G(\d\d\d?)/o)  | 
 
| 
1225
 | 
 0  | 
 1  | 
 if (defined $$self{'windvar'})  | 
 
| 
1227
 | 
 0  | 
 0  | 
 if ($$self{'windvar'} =~ /^(\d\d\d)V(\d\d\d)$/)  | 
 
| 
1241
 | 
 1  | 
 0  | 
 if ($vis =~ /SM$/) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($$self{'MOD'} eq 'AUTO' and $vis =~ /(\d+)NDV$/) { }  | 
 
| 
1243
 | 
 0  | 
 1  | 
 if ($vis =~ m[M(\d/\d)]o) { }  | 
 
| 
1262
 | 
 4  | 
 48  | 
 if (uc $key eq $key and $key =~ /^(.*)_C$/)  | 
 
| 
1266
 | 
 2  | 
 2  | 
 unless defined $$self{$key} and $$self{$key}  | 
 
| 
1299
 | 
 0  | 
 0  | 
 unless defined $flag  | 
 
| 
1301
 | 
 0  | 
 0  | 
 if ($flag eq 'Y' or $flag eq 'y' or $flag == 1) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($flag eq 'N' or $flag eq 'n' or $flag == 0) { }  | 
 
| 
1337
 | 
 0  | 
 0  | 
 if uc $var ne $var  | 
 
| 
1339
 | 
 0  | 
 0  | 
 if (ref $$self{$var} eq 'ARRAY') { }  |