refactor: add token submodule

This commit is contained in:
2026-02-07 02:17:06 +01:00
parent 25ad390d8f
commit 3578b6e49d
15 changed files with 19 additions and 19 deletions

View File

@@ -4,7 +4,7 @@ from abc import ABC, abstractmethod
from dataclasses import dataclass from dataclasses import dataclass
from typing import Any, TypeVar, Generic from typing import Any, TypeVar, Generic
from src.token import Token from src.token.token import Token
T = TypeVar("T") T = TypeVar("T")

View File

@@ -5,7 +5,7 @@ from dataclasses import dataclass
from typing import TypeVar, Generic, Optional from typing import TypeVar, Generic, Optional
from src.ast.expr import Expr, VariableExpr from src.ast.expr import Expr, VariableExpr
from src.token import Token from src.token.token import Token
T = TypeVar("T") T = TypeVar("T")

View File

@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING, Any, Optional
from src.core.function import PebbleFunction from src.core.function import PebbleFunction
from src.interpreter.error import PebbleRuntimeError from src.interpreter.error import PebbleRuntimeError
from src.token import Token from src.token.token import Token
if TYPE_CHECKING: if TYPE_CHECKING:
from src.core.klass import PebbleClass from src.core.klass import PebbleClass

View File

@@ -3,7 +3,7 @@ from __future__ import annotations
from typing import Any, Optional from typing import Any, Optional
from src.interpreter.error import PebbleRuntimeError from src.interpreter.error import PebbleRuntimeError
from src.token import Token from src.token.token import Token
class Environment: class Environment:

View File

@@ -1,4 +1,4 @@
from src.token import Token from src.token.token import Token
class PebbleRuntimeError(RuntimeError): class PebbleRuntimeError(RuntimeError):

View File

@@ -1,7 +1,7 @@
from typing import Any, Optional from typing import Any, Optional
from src.ast.expr import LiteralExpr, GroupingExpr, UnaryExpr, BinaryExpr, Expr, VariableExpr, AssignExpr, LogicalExpr, \ from src.ast.expr import LiteralExpr, GroupingExpr, UnaryExpr, BinaryExpr, Expr, VariableExpr, AssignExpr, LogicalExpr, \
CallExpr, GetExpr, T, SetExpr, ThisExpr, SuperExpr CallExpr, GetExpr, SetExpr, ThisExpr, SuperExpr
from src.ast.stmt import Stmt, ExpressionStmt, LetStmt, BlockStmt, IfStmt, WhileStmt, ForStmt, FunctionStmt, \ from src.ast.stmt import Stmt, ExpressionStmt, LetStmt, BlockStmt, IfStmt, WhileStmt, ForStmt, FunctionStmt, \
ReturnStmt, BreakStmt, ContinueStmt, ClassStmt ReturnStmt, BreakStmt, ContinueStmt, ClassStmt
from src.consts import CONSTRUCTOR_NAME from src.consts import CONSTRUCTOR_NAME
@@ -14,7 +14,7 @@ from src.interpreter.error import PebbleRuntimeError
from src.interpreter.exceptions import ReturnException, BreakException, ContinueException from src.interpreter.exceptions import ReturnException, BreakException, ContinueException
from src.interpreter.globals import GlobalEnvironment from src.interpreter.globals import GlobalEnvironment
from src.pebble import Pebble from src.pebble import Pebble
from src.token import TokenType, Token from src.token.token import TokenType, Token
class Interpreter(Expr.Visitor[Any], Stmt.Visitor[None]): class Interpreter(Expr.Visitor[Any], Stmt.Visitor[None]):

View File

@@ -4,12 +4,12 @@ from enum import Enum, auto
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from src.ast.expr import Expr, LogicalExpr, VariableExpr, LiteralExpr, GroupingExpr, CallExpr, UnaryExpr, BinaryExpr, \ from src.ast.expr import Expr, LogicalExpr, VariableExpr, LiteralExpr, GroupingExpr, CallExpr, UnaryExpr, BinaryExpr, \
AssignExpr, GetExpr, SetExpr, ThisExpr, SuperExpr, T AssignExpr, GetExpr, SetExpr, ThisExpr, SuperExpr
from src.ast.stmt import Stmt, ForStmt, WhileStmt, LetStmt, ReturnStmt, IfStmt, FunctionStmt, \ from src.ast.stmt import Stmt, ForStmt, WhileStmt, LetStmt, ReturnStmt, IfStmt, FunctionStmt, \
ExpressionStmt, BlockStmt, BreakStmt, ContinueStmt, ClassStmt ExpressionStmt, BlockStmt, BreakStmt, ContinueStmt, ClassStmt
from src.consts import CONSTRUCTOR_NAME from src.consts import CONSTRUCTOR_NAME
from src.pebble import Pebble from src.pebble import Pebble
from src.token import Token from src.token.token import Token
if TYPE_CHECKING: if TYPE_CHECKING:
from src.interpreter.interpreter import Interpreter from src.interpreter.interpreter import Interpreter

View File

@@ -7,7 +7,7 @@ from src.ast.stmt import Stmt, ExpressionStmt, LetStmt, BlockStmt, IfStmt, While
from src.consts import MAX_FUNCTION_ARGS from src.consts import MAX_FUNCTION_ARGS
from src.parser.error import ParsingError from src.parser.error import ParsingError
from src.pebble import Pebble from src.pebble import Pebble
from src.token import Token, TokenType from src.token.token import Token, TokenType
class Parser: class Parser:

View File

@@ -4,8 +4,8 @@ from typing import Optional
from src.consts import VERSION from src.consts import VERSION
from src.interpreter.error import PebbleRuntimeError from src.interpreter.error import PebbleRuntimeError
from src.position import Position from src.token.position import Position
from src.token import Token, TokenType from src.token.token import Token, TokenType
class Pebble: class Pebble:

View File

@@ -5,10 +5,10 @@ from src.ast.stmt import Stmt
from src.formatter import Formatter from src.formatter import Formatter
from src.interpreter.interpreter import Interpreter from src.interpreter.interpreter import Interpreter
from src.interpreter.resolver import Resolver from src.interpreter.resolver import Resolver
from src.lexer import Lexer from src.token.lexer import Lexer
from src.parser.parser import Parser from src.parser.parser import Parser
from src.pebble import Pebble from src.pebble import Pebble
from src.token import Token, TokenType from src.token.token import Token, TokenType
class Runner: class Runner:

0
src/token/__init__.py Normal file
View File

View File

@@ -1,4 +1,4 @@
from src.token import TokenType from src.token.token import TokenType
KEYWORDS: dict[str, TokenType] = { KEYWORDS: dict[str, TokenType] = {
"let": TokenType.LET, "let": TokenType.LET,

View File

@@ -1,8 +1,8 @@
from typing import Optional, Any from typing import Optional, Any
from src.keyword import KEYWORDS from src.token.keyword import KEYWORDS
from src.position import Position from src.token.position import Position
from src.token import Token, TokenType from src.token.token import Token, TokenType
class Lexer: class Lexer:

View File

@@ -2,7 +2,7 @@ from dataclasses import dataclass
from enum import Enum, auto from enum import Enum, auto
from typing import Any from typing import Any
from src.position import Position from src.token.position import Position
class TokenType(Enum): class TokenType(Enum):