Skip to content

Commit 7129189

Browse files
committed
Upgrade 'lark' dependency
1 parent 1dd4cd5 commit 7129189

24 files changed

+175
-119
lines changed

gdtoolkit/common/ast.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def _load_sub_statements(self):
5858

5959
def __repr__(self):
6060
return "Statement({}:{}:{})".format(
61-
self.lark_node.data, self.lark_node.line, self.lark_node.column
61+
self.lark_node.data, self.lark_node.meta.line, self.lark_node.meta.column
6262
)
6363

6464

gdtoolkit/common/types.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from typing import Union
2+
3+
from lark import Tree, Token
4+
5+
Node = Union[Tree, Token]

gdtoolkit/common/utils.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
from lark import Tree, Token
55

6+
from .types import Node
7+
68
Path = str
79

810

@@ -35,3 +37,24 @@ def find_tree_among_children(tree_name_to_find: str, tree: Tree) -> Optional[Tre
3537
if isinstance(child, Tree) and child.data == tree_name_to_find:
3638
return child
3739
return None
40+
41+
42+
# TODO: remove
43+
def get_line(node: Node) -> int:
44+
if isinstance(node, Tree):
45+
return node.meta.line
46+
return node.line
47+
48+
49+
# TODO: remove
50+
def get_end_line(node: Node) -> int:
51+
if isinstance(node, Tree):
52+
return node.meta.end_line
53+
return node.end_line
54+
55+
56+
# TODO: remove
57+
def get_column(node: Node) -> int:
58+
if isinstance(node, Tree):
59+
return node.meta.column
60+
return node.column

gdtoolkit/formatter/annotation.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from lark import Tree
44

5+
from ..common.utils import get_line, get_end_line
56
from .types import FormattedLine, FormattedLines, Outcome
67
from .context import Context, ExpressionContext
78
from .expression import format_concrete_expression
@@ -56,7 +57,7 @@ def prepend_annotations_to_formatted_line(
5657

5758
def format_standalone_annotation(annotation: Tree, context: Context) -> Outcome:
5859
return format_concrete_expression(
59-
annotation, ExpressionContext("", annotation.line, "", -1), context
60+
annotation, ExpressionContext("", get_line(annotation), "", -1), context
6061
)
6162

6263

@@ -72,8 +73,8 @@ def _annotations_have_standalone_comments(
7273
return any(
7374
comment is not None
7475
for comment in standalone_comments[
75-
annotations[0].line : last_line
76+
get_line(annotations[0]) : last_line
7677
if last_line is not None
77-
else annotations[-1].end_line
78+
else get_end_line(annotations[-1])
7879
]
7980
)

gdtoolkit/formatter/block.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from lark import Tree
66

7+
from ..common.utils import get_line
78
from .types import Outcome, FormattedLines
89
from .context import Context
910
from .constants import (
@@ -32,7 +33,7 @@ def format_block(
3233
if not is_first_annotation:
3334
continue
3435
blank_lines = reconstruct_blank_lines_in_range(
35-
previously_processed_line_number, statement.line, context
36+
previously_processed_line_number, get_line(statement), context
3637
)
3738
if previous_statement_name is None:
3839
blank_lines = _remove_empty_strings_from_begin(blank_lines)

gdtoolkit/formatter/class_statement.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from lark import Tree
55

6+
from ..common.utils import get_line, get_end_line
67
from .types import FormattedLines, Outcome
78
from .context import Context, ExpressionContext
89
from .block import format_block
@@ -61,27 +62,27 @@ def _format_signal_statement(statement: Tree, context: Context) -> Outcome:
6162
)
6263
expression_context = ExpressionContext(
6364
f"signal {statement.children[0].value}",
64-
statement.line,
65+
get_line(statement),
6566
"",
66-
statement.end_line,
67+
get_end_line(statement),
6768
)
6869
signal_args = statement.children[-1]
6970
return format_concrete_expression(signal_args, expression_context, context)
7071

7172

7273
def _format_classname_statement(statement: Tree, context: Context) -> Outcome:
73-
last_processed_line_no = statement.line
74+
last_processed_line_no = get_line(statement)
7475
formatted_lines: FormattedLines = [
7576
(
76-
statement.line,
77+
get_line(statement),
7778
f"{context.indent_string}class_name {statement.children[0].value}",
7879
)
7980
]
8081
return (formatted_lines, last_processed_line_no)
8182

8283

8384
def _format_extends_statement(statement: Tree, context: Context) -> Outcome:
84-
last_processed_line_no = statement.line
85+
last_processed_line_no = get_line(statement)
8586
optional_attributes = (
8687
""
8788
if len(statement.children) == 1
@@ -91,7 +92,7 @@ def _format_extends_statement(statement: Tree, context: Context) -> Outcome:
9192
)
9293
formatted_lines: FormattedLines = [
9394
(
94-
statement.line,
95+
get_line(statement),
9596
"{}extends {}{}".format(
9697
context.indent_string,
9798
expression_to_str(statement.children[0]),
@@ -103,7 +104,7 @@ def _format_extends_statement(statement: Tree, context: Context) -> Outcome:
103104

104105

105106
def _format_classname_extends_statement(statement: Tree, context: Context) -> Outcome:
106-
last_processed_line_no = statement.line
107+
last_processed_line_no = get_line(statement)
107108
extendee_pos = 2 + 1
108109
optional_attributes = (
109110
""
@@ -119,7 +120,7 @@ def _format_classname_extends_statement(statement: Tree, context: Context) -> Ou
119120
)
120121
formatted_lines: FormattedLines = [
121122
(
122-
statement.line,
123+
get_line(statement),
123124
"{}class_name {} extends {}{}".format(
124125
context.indent_string,
125126
statement.children[1].value,
@@ -143,17 +144,19 @@ def _format_var_statement(statement: Tree, context: Context) -> Outcome:
143144

144145

145146
def _format_docstring_statement(statement: Tree, context: Context) -> Outcome:
146-
expression_context = ExpressionContext("", statement.line, "", statement.end_line)
147+
expression_context = ExpressionContext(
148+
"", get_line(statement), "", get_end_line(statement)
149+
)
147150
return format_concrete_expression(
148151
statement.children[0], expression_context, context
149152
)
150153

151154

152155
def _format_class_statement(statement: Tree, context: Context) -> Outcome:
153-
last_processed_line_no = statement.line
156+
last_processed_line_no = get_line(statement)
154157
name = statement.children[0].value
155158
formatted_lines: FormattedLines = [
156-
(statement.line, f"{context.indent_string}class {name}:")
159+
(get_line(statement), f"{context.indent_string}class {name}:")
157160
]
158161
class_lines, last_processed_line_no = format_block(
159162
statement.children[1:],
@@ -181,9 +184,9 @@ def _format_func_header(statement: Tree, context: Context) -> Outcome:
181184
has_return_type = len(statement.children) > 2
182185
expression_context = ExpressionContext(
183186
f"func {name}",
184-
statement.line,
187+
get_line(statement),
185188
f" -> {statement.children[2].value}:" if has_return_type else ":",
186-
statement.end_line,
189+
get_end_line(statement),
187190
)
188191
func_args = statement.children[1]
189192
return format_concrete_expression(func_args, expression_context, context)
@@ -197,7 +200,7 @@ def _format_enum_statement(statement: Tree, context: Context) -> Outcome:
197200
else "enum "
198201
)
199202
expression_context = ExpressionContext(
200-
prefix, statement.line, "", statement.end_line
203+
prefix, get_line(statement), "", get_end_line(statement)
201204
)
202205
enum_body = actual_enum.children[-1]
203206
return format_concrete_expression(enum_body, expression_context, context)

gdtoolkit/formatter/comments.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from lark import Tree
55

6+
from ..common.utils import get_line
67
from ..parser import parser
78

89

@@ -40,7 +41,7 @@ def _gather_comments_by_prefix_regex(
4041
) -> List[Optional[str]]:
4142
"""prefix means all line characters before comment"""
4243
line_to_comment_mapping = {
43-
comment.line: comment for comment in comment_parse_tree.children
44+
get_line(comment): comment for comment in comment_parse_tree.children
4445
} # type: Dict[int, Tree]
4546
lines = gdscript_code.splitlines()
4647
comments = [None] # type: List[Optional[str]]

gdtoolkit/formatter/const_statement.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from lark import Tree
22

3+
from ..common.utils import get_line, get_end_line
34
from .types import Outcome
45
from .context import Context, ExpressionContext
56
from .expression import format_expression
@@ -15,6 +16,6 @@ def format_const_statement(statement: Tree, context: Context) -> Outcome:
1516
f"const {statement.children[1].value}: {statement.children[3].value} = "
1617
)
1718
expression_context = ExpressionContext(
18-
prefix, statement.line, "", statement.end_line
19+
prefix, get_line(statement), "", get_end_line(statement)
1920
)
2021
return format_expression(statement.children[-1], expression_context, context)

0 commit comments

Comments
 (0)