main: convert to use new iterator Lexer

This commit is contained in:
Antoine Viallon 2024-01-11 00:55:08 +01:00
parent a69788ca52
commit 9921d9fccd
Signed by: aviallon
GPG key ID: 186FC35EDEB25716

View file

@ -1,12 +1,12 @@
from __future__ import annotations from __future__ import annotations
import argparse import argparse
import collections.abc
import sys import sys
from pprint import pprint
from . import semantic, ir, optimizations from . import semantic, ir, optimizations
from .errors import CompilationError, CompilationWarning from .errors import CompilationError, CompilationWarning
from .lexer import Lexer, Tokens from .lexer import Lexer, Tokens, Token
from .logger import rootLogger, LogLevel from .logger import rootLogger, LogLevel
from .parser import Parser from .parser import Parser
@ -36,11 +36,9 @@ def main():
data = sys.stdin.read().strip() data = sys.stdin.read().strip()
print("Source:\n", data) print("Source:\n", data)
tokens = Lexer(data) tokens: collections.abc.Iterator[Token] = \
Lexer(data,
tokens = [token for token in tokens if token.kind not in [Tokens.Blank, Tokens.Newline, Tokens.Comment]] token_filter=lambda token: token.kind not in [Tokens.Blank, Tokens.Newline, Tokens.Comment])
if rootLogger.level <= LogLevel.Debug:
pprint(tokens)
parser = Parser(tokens) parser = Parser(tokens)
try: try: