diff --git a/gen/gen.py b/gen/gen.py index 106dcc7..34781b3 100644 --- a/gen/gen.py +++ b/gen/gen.py @@ -14,7 +14,8 @@ from abc import ABC, abstractmethod from dataclasses import dataclass from typing import Any, Generic, Optional, TypeVar -from lexer.token import Token +from midas.ast.location import Location +from midas.lexer.token import Token T = TypeVar("T") @@ -23,8 +24,10 @@ T = TypeVar("T") ############## -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class Stmt(ABC): + location: Optional[Location] = None + @abstractmethod def accept(self, visitor: Visitor[T]) -> T: ... @@ -40,8 +43,10 @@ class Stmt(ABC): ############### -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class Expr(ABC): + location: Optional[Location] = None + @abstractmethod def accept(self, visitor: Visitor[T]) -> T: ...