Skip to content

Commit f763118

Browse files
committed
refactor(parser): move Use AST node
1 parent 9c223f0 commit f763118

File tree

2 files changed

+43
-41
lines changed

2 files changed

+43
-41
lines changed

fortls/objects.py

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
)
3939
from fortls.json_templates import diagnostic_json, location_json, range_json
4040
from fortls.jsonrpc import path_to_uri
41+
from fortls.parsers.internal.use import Use
4142

4243

4344
def get_use_tree(
@@ -320,47 +321,6 @@ def climb_type_tree(var_stack, curr_scope: Scope, obj_tree: dict):
320321
return type_obj
321322

322323

323-
# Helper classes
324-
class Use:
325-
"""AST node for USE statement"""
326-
327-
def __init__(
328-
self,
329-
mod_name: str,
330-
only_list: set[str] = None,
331-
rename_map: dict[str, str] = None,
332-
line_number: int = 0,
333-
):
334-
if only_list is None:
335-
only_list = set()
336-
if rename_map is None:
337-
rename_map = {}
338-
self.mod_name: str = mod_name.lower()
339-
self._line_no: int = line_number
340-
self.only_list: set[str] = only_list
341-
self.rename_map: dict[str, str] = rename_map
342-
if only_list:
343-
self.only_list: set[str] = {only.lower() for only in only_list}
344-
if rename_map:
345-
self.rename_map = {k.lower(): v.lower() for k, v in rename_map.items()}
346-
347-
@property
348-
def line_number(self):
349-
return self._line_no
350-
351-
@line_number.setter
352-
def line_number(self, line_number: int):
353-
self._line_no = line_number
354-
355-
def rename(self, only_list: list[str] = None):
356-
"""Rename ONLY:, statements"""
357-
if only_list is None:
358-
only_list = []
359-
if not only_list:
360-
only_list = self.only_list
361-
return [self.rename_map.get(only_name, only_name) for only_name in only_list]
362-
363-
364324
class ImportTypes:
365325
DEFAULT = -1
366326
NONE = 0

fortls/parsers/internal/use.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
from __future__ import annotations
2+
3+
4+
# Helper classes
5+
class Use:
6+
"""AST node for USE statement"""
7+
8+
def __init__(
9+
self,
10+
mod_name: str,
11+
only_list: set[str] = None,
12+
rename_map: dict[str, str] = None,
13+
line_number: int = 0,
14+
):
15+
if only_list is None:
16+
only_list = set()
17+
if rename_map is None:
18+
rename_map = {}
19+
self.mod_name: str = mod_name.lower()
20+
self._line_no: int = line_number
21+
self.only_list: set[str] = only_list
22+
self.rename_map: dict[str, str] = rename_map
23+
if only_list:
24+
self.only_list: set[str] = {only.lower() for only in only_list}
25+
if rename_map:
26+
self.rename_map = {k.lower(): v.lower() for k, v in rename_map.items()}
27+
28+
@property
29+
def line_number(self):
30+
return self._line_no
31+
32+
@line_number.setter
33+
def line_number(self, line_number: int):
34+
self._line_no = line_number
35+
36+
def rename(self, only_list: list[str] = None):
37+
"""Rename ONLY:, statements"""
38+
if only_list is None:
39+
only_list = []
40+
if not only_list:
41+
only_list = self.only_list
42+
return [self.rename_map.get(only_name, only_name) for only_name in only_list]

0 commit comments

Comments
 (0)