1212# ----------------------------------------------------------------------
1313
1414import sys
15+ from typing import Tuple
1516
1617from src .ply import lex
1718from src .api .config import OPTIONS
1819from src .api .errmsg import error
1920
20- _tokens = ('STRING' , 'NEWLINE' , 'CO' ,
21- 'ID' , 'COMMA' , 'PLUS' , 'MINUS' , 'LB' , 'RB' , 'LP' , 'RP' , 'LPP' , 'RPP' , 'MUL' , 'DIV' , 'POW' , 'MOD' ,
22- 'UMINUS' , 'APO' , 'INTEGER' , 'ADDR' ,
23- 'LSHIFT' , 'RSHIFT' , 'BAND' , 'BOR' , 'BXOR'
24- )
21+
22+ _tokens : Tuple [str , ...] = (
23+ 'STRING' , 'NEWLINE' , 'CO' ,
24+ 'ID' , 'COMMA' , 'PLUS' , 'MINUS' , 'LB' , 'RB' ,
25+ 'LP' , 'RP' , 'LPP' , 'RPP' , 'MUL' , 'DIV' , 'POW' ,
26+ 'MOD' , 'UMINUS' , 'APO' , 'INTEGER' , 'ADDR' ,
27+ 'LSHIFT' , 'RSHIFT' , 'BAND' , 'BOR' , 'BXOR'
28+ )
2529
2630reserved_instructions = {
2731 'adc' : 'ADC' ,
173177}
174178
175179# List of token names.
176- _tokens = sorted (
180+ _tokens = tuple ( sorted (
177181 _tokens +
178182 tuple (reserved_instructions .values ()) +
179183 tuple (pseudo .values ()) +
182186 tuple (flags .values ()) +
183187 tuple (zx_next_mnemonics .values ()) +
184188 tuple (preprocessor .values ())
185- )
189+ ))
186190
187191keywords = set (
188192 flags .keys ()).union (
@@ -218,20 +222,17 @@ class Lexer(object):
218222
219223 # -------------- TOKEN ACTIONS --------------
220224
221- def __set_lineno (self , value ):
222- """ Setter for lexer.lineno
223- """
224- self .lex .lineno = value
225-
226- def __get_lineno (self ):
225+ @property
226+ def lineno (self ) -> int :
227227 """ Getter for lexer.lineno
228228 """
229- if self .lex is None :
230- return 0
231-
232- return self .lex .lineno
229+ return 0 if self .lex is None else self .lex .lineno
233230
234- lineno = property (__get_lineno , __set_lineno )
231+ @lineno .setter
232+ def lineno (self , value : int ):
233+ """ Setter for lexer.lineno
234+ """
235+ self .lex .lineno = value
235236
236237 def t_INITIAL_preproc_skip (self , t ):
237238 r'[ \t]+'
@@ -442,10 +443,10 @@ def __init__(self):
442443 self .tokens = tokens
443444 self .next_token = None # if set to something, this will be returned once
444445
445- def input (self , str ):
446+ def input (self , s : str ):
446447 """ Defines input string, removing current lexer.
447448 """
448- self .input_data = str
449+ self .input_data = s
449450 self .lex = lex .lex (object = self )
450451 self .lex .input (self .input_data )
451452
@@ -454,17 +455,15 @@ def token(self):
454455
455456 def find_column (self , token ):
456457 """ Compute column:
457- - token is a token instance
458+ :param token: token instance
458459 """
459460 i = token .lexpos
460461 while i > 0 :
461462 if self .input_data [i - 1 ] == '\n ' :
462463 break
463464 i -= 1
464465
465- column = token .lexpos - i + 1
466-
467- return column
466+ return token .lexpos - i + 1
468467
469468
470469# --------------------- PREPROCESSOR FUNCTIONS -------------------
0 commit comments