from dataclasses import dataclass, field from parsers.tokenizer import TokenKind, Keywords @dataclass() class Node: pass @dataclass() class NopNode(Node): pass def __repr__(self): return "nop" @dataclass() class ErrorNode(Node): pass class BaseParser: def __init__(self, name, text): self.name = name self.text = text self.has_error = False self.error_sink = [] def parse(self): pass @staticmethod def get_text_from_tokens(tokens): if tokens is None: return "" res = "" for token in tokens: value = Keywords(token.value).value if token.type == TokenKind.KEYWORD else token.value res += value return res