lizard 1.17.16__py2.py3-none-any.whl → 1.17.18__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lizard-1.17.16.dist-info → lizard-1.17.18.dist-info}/METADATA +1 -1
- {lizard-1.17.16.dist-info → lizard-1.17.18.dist-info}/RECORD +17 -17
- lizard.py +1 -0
- lizard_ext/version.py +1 -1
- lizard_languages/clike.py +8 -0
- lizard_languages/go.py +23 -0
- lizard_languages/java.py +58 -5
- lizard_languages/javascript.py +2 -6
- lizard_languages/jsx.py +17 -3
- lizard_languages/python.py +2 -1
- lizard_languages/ruby.py +3 -2
- lizard_languages/tsx.py +1 -2
- lizard_languages/typescript.py +9 -5
- {lizard-1.17.16.dist-info → lizard-1.17.18.dist-info}/LICENSE.txt +0 -0
- {lizard-1.17.16.dist-info → lizard-1.17.18.dist-info}/WHEEL +0 -0
- {lizard-1.17.16.dist-info → lizard-1.17.18.dist-info}/entry_points.txt +0 -0
- {lizard-1.17.16.dist-info → lizard-1.17.18.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lizard
|
|
3
|
-
Version: 1.17.
|
|
3
|
+
Version: 1.17.18
|
|
4
4
|
Summary: A code analyzer without caring the C/C++ header files. It works with Java, C/C++, JavaScript, Python, Ruby, Swift, Objective C. Metrics includes cyclomatic complexity number etc.
|
|
5
5
|
Home-page: http://www.lizard.ws
|
|
6
6
|
Download-URL: https://pypi.python.org/lizard/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
lizard.py,sha256=
|
|
1
|
+
lizard.py,sha256=0ntBLDrWbIPa_yGusTXX91P3fjbrg9RcB-pxhCfVWK4,39999
|
|
2
2
|
lizard_ext/__init__.py,sha256=Cz0pvH6QHyadK-rAeeEhQVsm0hW5M-fBQgV4FBaX9zk,500
|
|
3
3
|
lizard_ext/auto_open.py,sha256=byD_RbeVhvSUhR2bJMRitvA3zcKEapFwv0-XaDJ6GFo,1096
|
|
4
4
|
lizard_ext/csvoutput.py,sha256=43fhmo8kB85qcdujCwySGNuTC4FkKUPLqIApPeljPnA,2663
|
|
@@ -25,28 +25,28 @@ lizard_ext/lizardns.py,sha256=8pztUoRS_UWN24MawwxeHEJgYh49id5PWODUBb6O72U,4184
|
|
|
25
25
|
lizard_ext/lizardoutside.py,sha256=FGm2tbBZ17-2OCgmQlD-vobUCfQKb0FAygf86eM3xuM,336
|
|
26
26
|
lizard_ext/lizardstatementcount.py,sha256=xYk6ixSIItSE1BWQXzrWmduFgGhA3VR817SNKLffyVQ,1182
|
|
27
27
|
lizard_ext/lizardwordcount.py,sha256=2QYXD7-AtkkgAbi9VSidunMbSsGQ7MKYb6IT-bS-cok,7575
|
|
28
|
-
lizard_ext/version.py,sha256=
|
|
28
|
+
lizard_ext/version.py,sha256=uWQn4tywlvI23SaJS5RkBAVDfoz8Vw2OgpU5tNOMZXc,182
|
|
29
29
|
lizard_ext/xmloutput.py,sha256=-cbh0he4O_X-wX56gkv9AnSPNN0qvR7FACqlBeezUS4,5609
|
|
30
30
|
lizard_languages/__init__.py,sha256=2mvrPWMJVCq981kMjoAPEi2O07C8vo-vUWOG_wp7vKQ,1473
|
|
31
|
-
lizard_languages/clike.py,sha256=
|
|
31
|
+
lizard_languages/clike.py,sha256=INd5tkvwEVZm7dx2yHG2OIFHZn7JzQGmnT9WQNFZ2XU,11110
|
|
32
32
|
lizard_languages/code_reader.py,sha256=P0PkE4QZBWOEj6cFHA4hj3hcLZLcGnqH31EmtltxlaE,6240
|
|
33
33
|
lizard_languages/csharp.py,sha256=EfFAIOIcJXUUhXTlZApXGSlzG34NZvHM9OSe6m7hpv0,2141
|
|
34
34
|
lizard_languages/erlang.py,sha256=7YJS2cMyXDKEV_kpH8DzBARxFCFcjKuTOPSQ3K52auU,3860
|
|
35
35
|
lizard_languages/fortran.py,sha256=KATDsnfjob5W3579A_VxbwrbTkK7Rx3p0eXdBgjx25I,8973
|
|
36
36
|
lizard_languages/gdscript.py,sha256=KwlGoODilQnFgXvODpq_XlA6fV3hGbN9fd7bsiEUn78,637
|
|
37
|
-
lizard_languages/go.py,sha256=
|
|
37
|
+
lizard_languages/go.py,sha256=iU2wZ0Iuo4OifscZhoHS_jDbdGYxquocqmvYX0l9MnE,1358
|
|
38
38
|
lizard_languages/golike.py,sha256=vRIfjTVvc0VmJf27lTOLht55ZF1AQ9wn0Fvu-9WabWk,2858
|
|
39
|
-
lizard_languages/java.py,sha256=
|
|
40
|
-
lizard_languages/javascript.py,sha256=
|
|
39
|
+
lizard_languages/java.py,sha256=O-RAQIFCFJ2VnlpF2sE5xave8n56bnuZl32AZZ42oDs,4929
|
|
40
|
+
lizard_languages/javascript.py,sha256=qqxocZbZ6ivchhswRBBSjEJKiTClnm9ScOy4nlX4JKA,318
|
|
41
41
|
lizard_languages/js_style_language_states.py,sha256=Ie0eA15rd0gfahdNzUlSkQa-o_j5idTIB82JU32c378,4165
|
|
42
42
|
lizard_languages/js_style_regex_expression.py,sha256=Xgyogch4xElYtCG4EnBKvalHTl3tjRPcIIcIQRRd61I,1970
|
|
43
|
-
lizard_languages/jsx.py,sha256=
|
|
43
|
+
lizard_languages/jsx.py,sha256=KA9tDZ8kRSey8RefeC6DJg36yLBi6AEbm5JmVB-TQMU,3951
|
|
44
44
|
lizard_languages/kotlin.py,sha256=v_o2orEzA5gB9vM_0h-E4QXjrc5Yum-0K6W6_laOThc,2844
|
|
45
45
|
lizard_languages/lua.py,sha256=3nqBcunBzJrhv4Iqaf8xvbyqxZy3aSxJ-IiHimHFlac,1573
|
|
46
46
|
lizard_languages/objc.py,sha256=2a1teLdaXZBtCeFiIZer1j_sVx9LZ1CbF2XfnqlvLmk,2319
|
|
47
47
|
lizard_languages/php.py,sha256=8OufyR2TIWyf3bXuTmp37Vwf_tEPF4YV5M3i5_jnguA,1377
|
|
48
|
-
lizard_languages/python.py,sha256=
|
|
49
|
-
lizard_languages/ruby.py,sha256=
|
|
48
|
+
lizard_languages/python.py,sha256=1e0dKbl82z-i_5dswkKaFIV5WuQDKztPHh9UNmSTLyE,3848
|
|
49
|
+
lizard_languages/ruby.py,sha256=HL1ZckeuUUJU3QSVAOPsG_Zsl0C6X2PX5_VaWqclzkM,2277
|
|
50
50
|
lizard_languages/rubylike.py,sha256=dAGZ2wqW8nqaESMU8HkeR9gwQ-q9fmZqE6AANvVZD1Q,3426
|
|
51
51
|
lizard_languages/rust.py,sha256=DG2RkR9JWwcD6gIw-BPzg-Yo_lxQtSvfgHioFWIQm9o,610
|
|
52
52
|
lizard_languages/scala.py,sha256=6Jr_TG945VYqB3o5weD7jN7S4beHt4aVj3r-fmKeMAM,1316
|
|
@@ -54,14 +54,14 @@ lizard_languages/script_language.py,sha256=UUO3Wjkoa-ZqwwvcwvhOr5tg1rVavcrEYx3dN
|
|
|
54
54
|
lizard_languages/solidity.py,sha256=Z0GD7U5bI5eUikdy7m_iKWeFD5yXRYq4r3zycscOhJQ,553
|
|
55
55
|
lizard_languages/swift.py,sha256=p8S2OAkQOx9YQ02yhoVXFkr7pMqUH1Nb3RVXPHRU_9M,2450
|
|
56
56
|
lizard_languages/tnsdl.py,sha256=pGcalA_lHY362v2wwPS86seYBOOBBjvmU6vd4Yy3A9g,2803
|
|
57
|
-
lizard_languages/tsx.py,sha256=
|
|
57
|
+
lizard_languages/tsx.py,sha256=pzScdziLmFkD1c0LfwUNyC64C0HFmqt16QtsANu0UJ8,639
|
|
58
58
|
lizard_languages/ttcn.py,sha256=ygjw_raBmPF-4mgoM8m6CAdyEMpTI-n1kZJK1RL4Vxo,2131
|
|
59
|
-
lizard_languages/typescript.py,sha256=
|
|
59
|
+
lizard_languages/typescript.py,sha256=jXN3q01g46tWVb9jXjsmwypcAXx0t-vpK3UFQ-SHw9U,3645
|
|
60
60
|
lizard_languages/vue.py,sha256=KXUBUo2R1zNF8Pffrz_KsQEN44m5XFRMoGXylxKUeT0,1038
|
|
61
61
|
lizard_languages/zig.py,sha256=NX1iyBstBuJFeAGBOAIaRfrmeBREne2HX6Pt4fXZZTQ,586
|
|
62
|
-
lizard-1.17.
|
|
63
|
-
lizard-1.17.
|
|
64
|
-
lizard-1.17.
|
|
65
|
-
lizard-1.17.
|
|
66
|
-
lizard-1.17.
|
|
67
|
-
lizard-1.17.
|
|
62
|
+
lizard-1.17.18.dist-info/LICENSE.txt,sha256=05ZjgQ8Cl1dD9p0BhW-Txzkc5rhCogGJVEuf1GT2Y_M,1303
|
|
63
|
+
lizard-1.17.18.dist-info/METADATA,sha256=RQB8p4hjr5Iap0Bbx1upXmyGAiW3MZiuyrQ_QUCuhn0,15745
|
|
64
|
+
lizard-1.17.18.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
|
|
65
|
+
lizard-1.17.18.dist-info/entry_points.txt,sha256=ZBqPhu-J3NoGGW5vn2Gfyoo0vdVlgBgM-wlNm0SGYUQ,39
|
|
66
|
+
lizard-1.17.18.dist-info/top_level.txt,sha256=5NTrTaOLhHuTzXaGcZPKfuaOgUv7WafNGe0Zl5aycpg,35
|
|
67
|
+
lizard-1.17.18.dist-info/RECORD,,
|
lizard.py
CHANGED
lizard_ext/version.py
CHANGED
lizard_languages/clike.py
CHANGED
|
@@ -30,6 +30,14 @@ class CLikeReader(CodeReader, CCppCommentsMixin):
|
|
|
30
30
|
CLikeNestingStackStates(context),
|
|
31
31
|
CppRValueRefStates(context))
|
|
32
32
|
|
|
33
|
+
@staticmethod
|
|
34
|
+
def generate_tokens(source_code, addition='', token_class=None):
|
|
35
|
+
# Add pattern for floating point literals to the token generation
|
|
36
|
+
addition = r"|(?:\d*\.\d+(?:[eE][-+]?\d+)?)" + \
|
|
37
|
+
r"|(?:\d+\.(?:\d+)?(?:[eE][-+]?\d+)?)" + \
|
|
38
|
+
addition
|
|
39
|
+
return CodeReader.generate_tokens(source_code, addition, token_class)
|
|
40
|
+
|
|
33
41
|
def preprocess(self, tokens):
|
|
34
42
|
tilde = False
|
|
35
43
|
for token in tokens:
|
lizard_languages/go.py
CHANGED
|
@@ -17,6 +17,29 @@ class GoReader(CodeReader, CCppCommentsMixin):
|
|
|
17
17
|
super(GoReader, self).__init__(context)
|
|
18
18
|
self.parallel_states = [GoStates(context)]
|
|
19
19
|
|
|
20
|
+
@staticmethod
|
|
21
|
+
def generate_tokens(source_code, addition='', token_class=None):
|
|
22
|
+
addition = addition + r"|`[^`]*`" # Add support for backtick-quoted strings
|
|
23
|
+
return CodeReader.generate_tokens(source_code, addition, token_class)
|
|
24
|
+
|
|
25
|
+
def __call__(self, tokens, reader):
|
|
26
|
+
self.context = reader.context
|
|
27
|
+
for token in tokens:
|
|
28
|
+
# Skip counting ? in backtick-quoted strings
|
|
29
|
+
if token.startswith('`') and token.endswith('`'):
|
|
30
|
+
for state in self.parallel_states:
|
|
31
|
+
state(token)
|
|
32
|
+
yield token
|
|
33
|
+
continue
|
|
34
|
+
|
|
35
|
+
# For non-backtick tokens, process normally
|
|
36
|
+
for state in self.parallel_states:
|
|
37
|
+
state(token)
|
|
38
|
+
yield token
|
|
39
|
+
for state in self.parallel_states:
|
|
40
|
+
state.statemachine_before_return()
|
|
41
|
+
self.eof()
|
|
42
|
+
|
|
20
43
|
|
|
21
44
|
class GoStates(GoLikeStates): # pylint: disable=R0903
|
|
22
45
|
pass
|
lizard_languages/java.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Language parser for Java
|
|
3
3
|
'''
|
|
4
4
|
|
|
5
|
+
from lizard_languages.code_reader import CodeStateMachine
|
|
5
6
|
from .clike import CLikeReader, CLikeStates, CLikeNestingStackStates
|
|
6
7
|
|
|
7
8
|
|
|
@@ -29,6 +30,11 @@ class JavaStates(CLikeStates): # pylint: disable=R0903
|
|
|
29
30
|
if token == '{':
|
|
30
31
|
self._state_dec_to_imp(token)
|
|
31
32
|
|
|
33
|
+
def _state_imp(self, token):
|
|
34
|
+
def callback():
|
|
35
|
+
self.next(self._state_global)
|
|
36
|
+
self.sub_state(JavaFunctionBodyStates(self.context), callback, token)
|
|
37
|
+
|
|
32
38
|
def try_new_function(self, name):
|
|
33
39
|
# Don't create a function for record compact constructor
|
|
34
40
|
if self.is_record and name == self.class_name:
|
|
@@ -40,15 +46,19 @@ class JavaStates(CLikeStates): # pylint: disable=R0903
|
|
|
40
46
|
if self.class_name and self.context.current_function:
|
|
41
47
|
self.context.current_function.name = f"{self.class_name}::{name}"
|
|
42
48
|
|
|
43
|
-
def
|
|
44
|
-
if token == '@':
|
|
45
|
-
self._state = self._state_decorator
|
|
46
|
-
return
|
|
49
|
+
def _try_start_a_class(self, token):
|
|
47
50
|
if token in ("class", "record", "enum"):
|
|
48
51
|
self.class_name = None
|
|
49
52
|
self.is_record = token == "record"
|
|
50
53
|
self.in_record_constructor = False
|
|
51
54
|
self._state = self._state_class_declaration
|
|
55
|
+
return True
|
|
56
|
+
|
|
57
|
+
def _state_global(self, token):
|
|
58
|
+
if token == '@':
|
|
59
|
+
self._state = self._state_decorator
|
|
60
|
+
return
|
|
61
|
+
if self._try_start_a_class(token):
|
|
52
62
|
return
|
|
53
63
|
if not self.in_record_constructor: # Only process as potential function if not in record constructor
|
|
54
64
|
super(JavaStates, self)._state_global(token)
|
|
@@ -65,7 +75,9 @@ class JavaStates(CLikeStates): # pylint: disable=R0903
|
|
|
65
75
|
|
|
66
76
|
def _state_class_declaration(self, token):
|
|
67
77
|
if token == '{':
|
|
68
|
-
|
|
78
|
+
def callback():
|
|
79
|
+
self._state = self._state_global
|
|
80
|
+
self.sub_state(JavaClassBodyStates(self.class_name, self.is_record, self.context), callback, token)
|
|
69
81
|
elif token == '(': # Record parameters
|
|
70
82
|
self._state = self._state_record_parameters
|
|
71
83
|
elif token[0].isalpha():
|
|
@@ -87,3 +99,44 @@ class JavaStates(CLikeStates): # pylint: disable=R0903
|
|
|
87
99
|
if token == '}':
|
|
88
100
|
self.in_record_constructor = False
|
|
89
101
|
self._state = self._state_global
|
|
102
|
+
|
|
103
|
+
class JavaFunctionBodyStates(JavaStates):
|
|
104
|
+
def __init__(self, context):
|
|
105
|
+
super(JavaFunctionBodyStates, self).__init__(context)
|
|
106
|
+
|
|
107
|
+
@CodeStateMachine.read_inside_brackets_then("{}", "_state_dummy")
|
|
108
|
+
@CodeStateMachine.read_inside_brackets_then("()", "_state_dummy")
|
|
109
|
+
def _state_global(self, token):
|
|
110
|
+
if token == "new":
|
|
111
|
+
self.next(self._state_new)
|
|
112
|
+
self._try_start_a_class(token)
|
|
113
|
+
if self.br_count == 0:
|
|
114
|
+
self.statemachine_return()
|
|
115
|
+
|
|
116
|
+
def _state_dummy(self, _):
|
|
117
|
+
pass
|
|
118
|
+
|
|
119
|
+
def _state_new(self, token):
|
|
120
|
+
self.next(self._state_new_parameters)
|
|
121
|
+
|
|
122
|
+
def _state_new_parameters(self, token):
|
|
123
|
+
if token == "(":
|
|
124
|
+
self.sub_state(JavaFunctionBodyStates(self.context), None, token)
|
|
125
|
+
return
|
|
126
|
+
if token == "{":
|
|
127
|
+
def callback():
|
|
128
|
+
self.next(self._state_global)
|
|
129
|
+
self.sub_state(JavaClassBodyStates("(anonymous)", False, self.context), callback, token)
|
|
130
|
+
return
|
|
131
|
+
self.next(self._state_global)
|
|
132
|
+
|
|
133
|
+
class JavaClassBodyStates(JavaStates):
|
|
134
|
+
def __init__(self, class_name, is_record, context):
|
|
135
|
+
super(JavaClassBodyStates, self).__init__(context)
|
|
136
|
+
self.class_name = class_name
|
|
137
|
+
self.is_record = is_record
|
|
138
|
+
|
|
139
|
+
def _state_global(self, token):
|
|
140
|
+
super()._state_global(token)
|
|
141
|
+
if token == '}':
|
|
142
|
+
self.statemachine_return()
|
lizard_languages/javascript.py
CHANGED
|
@@ -2,17 +2,13 @@
|
|
|
2
2
|
Language parser for JavaScript
|
|
3
3
|
'''
|
|
4
4
|
|
|
5
|
-
from .
|
|
6
|
-
from .clike import CCppCommentsMixin
|
|
7
|
-
from .js_style_regex_expression import js_style_regex_expression
|
|
8
|
-
from .js_style_language_states import JavaScriptStyleLanguageStates
|
|
9
|
-
from .typescript import TypeScriptReader, JSTokenizer
|
|
5
|
+
from .typescript import TypeScriptReader
|
|
10
6
|
|
|
11
7
|
|
|
12
8
|
class JavaScriptReader(TypeScriptReader):
|
|
13
9
|
# pylint: disable=R0903
|
|
14
10
|
|
|
15
|
-
ext = ['js']
|
|
11
|
+
ext = ['js', 'cjs', 'mjs']
|
|
16
12
|
language_names = ['javascript', 'js']
|
|
17
13
|
|
|
18
14
|
def __init__(self, context):
|
lizard_languages/jsx.py
CHANGED
|
@@ -8,6 +8,20 @@ from .code_reader import CodeReader
|
|
|
8
8
|
from .js_style_regex_expression import js_style_regex_expression
|
|
9
9
|
|
|
10
10
|
|
|
11
|
+
class TSXTokenizer(JSTokenizer):
|
|
12
|
+
def __init__(self):
|
|
13
|
+
super().__init__()
|
|
14
|
+
|
|
15
|
+
def process_token(self, token):
|
|
16
|
+
if token == "<":
|
|
17
|
+
from .jsx import XMLTagWithAttrTokenizer # Import only when needed
|
|
18
|
+
self.sub_tokenizer = XMLTagWithAttrTokenizer()
|
|
19
|
+
return
|
|
20
|
+
|
|
21
|
+
for tok in super().process_token(token):
|
|
22
|
+
yield tok
|
|
23
|
+
|
|
24
|
+
|
|
11
25
|
class JSXMixin:
|
|
12
26
|
'''Base mixin class for JSX/TSX shared functionality'''
|
|
13
27
|
@staticmethod
|
|
@@ -17,7 +31,7 @@ class JSXMixin:
|
|
|
17
31
|
r"|(?:\$\w+)" + \
|
|
18
32
|
r"|(?:\<\/\w+\>)" + \
|
|
19
33
|
r"|`.*?`"
|
|
20
|
-
js_tokenizer =
|
|
34
|
+
js_tokenizer = TSXTokenizer()
|
|
21
35
|
for token in CodeReader.generate_tokens(
|
|
22
36
|
source_code, addition, token_class):
|
|
23
37
|
for tok in js_tokenizer(token):
|
|
@@ -102,7 +116,7 @@ class XMLTagWithAttrTokenizer(Tokenizer):
|
|
|
102
116
|
self.state = self._after_tag
|
|
103
117
|
elif token == "{":
|
|
104
118
|
self.cache.append("}")
|
|
105
|
-
self.sub_tokenizer =
|
|
119
|
+
self.sub_tokenizer = TSXTokenizer()
|
|
106
120
|
self.state = self._after_tag
|
|
107
121
|
|
|
108
122
|
def _body(self, token):
|
|
@@ -116,7 +130,7 @@ class XMLTagWithAttrTokenizer(Tokenizer):
|
|
|
116
130
|
return self.flush()
|
|
117
131
|
|
|
118
132
|
if token == '{':
|
|
119
|
-
self.sub_tokenizer =
|
|
133
|
+
self.sub_tokenizer = TSXTokenizer()
|
|
120
134
|
return self.flush()
|
|
121
135
|
|
|
122
136
|
|
lizard_languages/python.py
CHANGED
|
@@ -42,7 +42,8 @@ class PythonReader(CodeReader, ScriptLanguageMixIn):
|
|
|
42
42
|
def generate_tokens(source_code, addition='', token_class=None):
|
|
43
43
|
return ScriptLanguageMixIn.generate_common_tokens(
|
|
44
44
|
source_code,
|
|
45
|
-
r"
|
|
45
|
+
r"|(?:\"\"\"(?:\\.|[^\"]|\"(?!\"\")|\"\"(?!\"))*\"\"\")" +
|
|
46
|
+
r"|(?:\'\'\'(?:\\.|[^\']|\'(?!\'\')|\'\'(?!\'))*\'\'\')",
|
|
46
47
|
token_class)
|
|
47
48
|
|
|
48
49
|
def preprocess(self, tokens):
|
lizard_languages/ruby.py
CHANGED
|
@@ -9,11 +9,12 @@ from .script_language import ScriptLanguageMixIn
|
|
|
9
9
|
|
|
10
10
|
class MyToken(str):
|
|
11
11
|
def __new__(cls, value, *_):
|
|
12
|
-
|
|
12
|
+
val = value.group(0) if hasattr(value, 'group') else value
|
|
13
|
+
return super(MyToken, cls).__new__(cls, val)
|
|
13
14
|
|
|
14
15
|
def __init__(self, value):
|
|
15
16
|
super(MyToken, self).__init__()
|
|
16
|
-
self.begin = value.start()
|
|
17
|
+
self.begin = value.start() if hasattr(value, 'start') else 0
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
class RubyReader(RubylikeReader):
|
lizard_languages/tsx.py
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
Language parser for TSX
|
|
3
3
|
'''
|
|
4
4
|
|
|
5
|
-
from .typescript import TypeScriptReader
|
|
5
|
+
from .typescript import TypeScriptReader
|
|
6
6
|
from .jsx import JSXMixin
|
|
7
|
-
from .code_reader import CodeReader
|
|
8
7
|
from .js_style_regex_expression import js_style_regex_expression
|
|
9
8
|
|
|
10
9
|
|
lizard_languages/typescript.py
CHANGED
|
@@ -37,10 +37,6 @@ class JSTokenizer(Tokenizer):
|
|
|
37
37
|
self.depth = 1
|
|
38
38
|
|
|
39
39
|
def process_token(self, token):
|
|
40
|
-
if token == "<":
|
|
41
|
-
from .jsx import XMLTagWithAttrTokenizer # Import only when needed
|
|
42
|
-
self.sub_tokenizer = XMLTagWithAttrTokenizer()
|
|
43
|
-
return
|
|
44
40
|
if token == "{":
|
|
45
41
|
self.depth += 1
|
|
46
42
|
elif token == "}":
|
|
@@ -115,10 +111,18 @@ class TypeScriptTypeAnnotationStates(CodeStateMachine):
|
|
|
115
111
|
self.next(self._state_simple_type, token)
|
|
116
112
|
|
|
117
113
|
def _state_simple_type(self, token):
|
|
118
|
-
|
|
114
|
+
print(token)
|
|
115
|
+
if token == '<':
|
|
116
|
+
print(token)
|
|
117
|
+
self.next(self._state_generic_type, token)
|
|
118
|
+
elif token in '{=;':
|
|
119
119
|
self.saved_token = token
|
|
120
120
|
self.statemachine_return()
|
|
121
121
|
|
|
122
122
|
@CodeStateMachine.read_inside_brackets_then("{}")
|
|
123
123
|
def _inline_type_annotation(self, _):
|
|
124
124
|
self.statemachine_return()
|
|
125
|
+
|
|
126
|
+
@CodeStateMachine.read_inside_brackets_then("<>")
|
|
127
|
+
def _state_generic_type(self, token):
|
|
128
|
+
self.statemachine_return()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|