@@ -706,9 +706,7 @@ def read_vis_stmnt(line: str) -> tuple[Literal["vis"], VisInfo] | None:
706706]
707707
708708
709- def find_external_type (
710- file_ast : FortranAST , desc_string : str , name_stripped : str
711- ) -> bool :
709+ def find_external_type (file_ast : FortranAST , desc_string : str , name : str ) -> bool :
712710 """Encountered a variable with EXTERNAL as its type
713711 Try and find an already defined variable with a
714712 NORMAL Fortran Type"""
@@ -717,7 +715,7 @@ def find_external_type(
717715 counter = 0
718716 # Definition without EXTERNAL has already been parsed
719717 for v in file_ast .variable_list :
720- if name_stripped == v .name :
718+ if name == v .name :
721719 # If variable is already in external objs it has
722720 # been parsed correctly so exit
723721 if v in file_ast .external_objs :
@@ -733,17 +731,15 @@ def find_external_type(
733731 return False
734732
735733
736- def find_external_attr (
737- file_ast : FortranAST , name_stripped : str , new_var : Variable
738- ) -> bool :
734+ def find_external_attr (file_ast : FortranAST , name : str , new_var : Variable ) -> bool :
739735 """Check if this NORMAL Fortran variable is in the external_objs with only
740736 ``EXTERNAL`` as its type. Used to detect seperated ``EXTERNAL`` declarations.
741737
742738 Parameters
743739 ----------
744740 file_ast : fortran_ast
745741 AST file
746- name_stripped : str
742+ name : str
747743 Variable name, stripped
748744 new_var : fortran_var
749745 Fortran variable to check against
@@ -756,7 +752,7 @@ def find_external_attr(
756752 """
757753 counter = 0
758754 for v in file_ast .external_objs :
759- if v .name != name_stripped :
755+ if v .name != name :
760756 continue
761757 if v .desc .upper () != "EXTERNAL" :
762758 continue
@@ -779,7 +775,7 @@ def find_external_attr(
779775def find_external (
780776 file_ast : FortranAST ,
781777 desc_string : str ,
782- name_stripped : str ,
778+ name : str ,
783779 new_var : Variable ,
784780) -> bool :
785781 """Find a procedure, function, subroutine, etc. that has been defined as
@@ -808,7 +804,7 @@ def find_external(
808804 AST
809805 desc_string : str
810806 Variable type e.g. ``REAL``, ``INTEGER``, ``EXTERNAL``
811- name_stripped : str
807+ name : str
812808 Variable name
813809 new_var : fortran_var
814810 The line variable that we are attempting to match with an ``EXTERNAL``
@@ -820,10 +816,10 @@ def find_external(
820816 True if the variable is ``EXTERNAL`` and we manage to link it to the
821817 rest of its components, else False
822818 """
823- if find_external_type (file_ast , desc_string , name_stripped ):
819+ if find_external_type (file_ast , desc_string , name ):
824820 return True
825821 elif desc_string .upper () != "EXTERNAL" :
826- if find_external_attr (file_ast , name_stripped , new_var ):
822+ if find_external_attr (file_ast , name , new_var ):
827823 return True
828824 return False
829825
@@ -1355,53 +1351,49 @@ def parse(
13551351 if obj_type == "var" :
13561352 if obj_info .var_names is None :
13571353 continue
1358- desc_string = obj_info .var_type
13591354 link_name : str = None
13601355 procedure_def = False
1361- if desc_string [:3 ] == "PRO" :
1356+ if obj_info . var_type [:3 ] == "PRO" :
13621357 if file_ast .current_scope .get_type () == INTERFACE_TYPE_ID :
13631358 for var_name in obj_info .var_names :
13641359 file_ast .add_int_member (var_name )
13651360 log .debug ("%s !!! INTERFACE-PRO - Ln:%d" , line .strip (), line_no )
13661361 continue
13671362 procedure_def = True
1368- link_name = get_paren_substring (desc_string )
1363+ link_name = get_paren_substring (obj_info . var_type )
13691364 for var_name in obj_info .var_names :
1370- desc = desc_string
1365+ desc = obj_info . var_type
13711366 link_name : str = None
13721367 if var_name .find ("=>" ) > - 1 :
13731368 name_split = var_name .split ("=>" )
1374- # TODO: rename name_raw to name
1375- # TODO: rename name_stripped to name
1376- # TODO: rename desc_string to desc
1377- name_raw = name_split [0 ]
1369+ name = name_split [0 ]
13781370 link_name = name_split [1 ].split ("(" )[0 ].strip ()
13791371 if link_name .lower () == "null" :
13801372 link_name = None
13811373 else :
1382- name_raw = var_name .split ("=" )[0 ]
1374+ name = var_name .split ("=" )[0 ]
13831375 # Add dimension if specified
13841376 # TODO: turn into function and add support for co-arrays i.e. [*]
13851377 # Copy global keywords to the individual variable
13861378 var_keywords : list [str ] = obj_info .keywords [:]
13871379 # The name starts with (
1388- if name_raw .find ("(" ) == 0 :
1380+ if name .find ("(" ) == 0 :
13891381 continue
1390- name_raw , dims = self .parse_imp_dim (name_raw )
1391- name_raw , char_len = self .parse_imp_char (name_raw )
1382+ name , dims = self .parse_imp_dim (name )
1383+ name , char_len = self .parse_imp_char (name )
13921384 if dims :
13931385 var_keywords .append (dims )
13941386 if char_len :
13951387 desc += char_len
13961388
1397- name_stripped = name_raw .strip ()
1389+ name = name .strip ()
13981390 keywords , keyword_info = map_keywords (var_keywords )
13991391
14001392 if procedure_def :
14011393 new_var = Method (
14021394 file_ast ,
14031395 line_no ,
1404- name_stripped ,
1396+ name ,
14051397 desc ,
14061398 keywords ,
14071399 keyword_info = keyword_info ,
@@ -1411,7 +1403,7 @@ def parse(
14111403 new_var = Variable (
14121404 file_ast ,
14131405 line_no ,
1414- name_stripped ,
1406+ name ,
14151407 desc ,
14161408 keywords ,
14171409 keyword_info = keyword_info ,
@@ -1421,14 +1413,14 @@ def parse(
14211413 # If the object is fortran_var and a parameter include
14221414 # the value in hover
14231415 if new_var .is_parameter ():
1424- _ , col = find_word_in_line (line , name_stripped )
1416+ _ , col = find_word_in_line (line , name )
14251417 match = FRegex .PARAMETER_VAL .match (line [col :])
14261418 if match :
14271419 var = match .group (1 ).strip ()
14281420 new_var .set_parameter_val (var )
14291421
14301422 # Check if the "variable" is external and if so cycle
1431- if find_external (file_ast , desc , name_stripped , new_var ):
1423+ if find_external (file_ast , desc , name , new_var ):
14321424 continue
14331425
14341426 # if not merge_external:
0 commit comments