Files
pebble/src/core/format_spec/spec.py

43 lines
822 B
Python

from dataclasses import dataclass
from typing import Optional
from src.core.format_spec.token import Token
@dataclass(frozen=True)
class FormatSpecAlignment:
fill: Optional[Token]
align: Optional[Token]
@dataclass(frozen=True)
class FormatSpecOptions:
alignment: Optional[FormatSpecAlignment]
sign: Optional[Token]
@dataclass(frozen=True)
class FormatSpecIntegral:
width: Optional[int]
grouping: Optional[Token]
@dataclass(frozen=True)
class FormatSpecDecimal:
dot: Token
precision: Optional[int]
grouping: Optional[Token]
@dataclass(frozen=True)
class FormatSpecNumber:
integral: FormatSpecIntegral
decimal: Optional[FormatSpecDecimal]
@dataclass(frozen=True)
class FormatSpec:
options: FormatSpecOptions
number: FormatSpecNumber
type: Optional[Token]