Added DefaultParser
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
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
|
||||
Reference in New Issue
Block a user