Przejdź do treści

olski.werdykt.odrzucone

Co olski mówi o napisie, którego gramatyka nie wyprowadza.

Odpowiedzi są dwie i obie kosztują rozbiór drugi: poprawka jednego znaku (Naprawa) mówi, co dzieli ten napis od odczytania, a zatrzymania (zatrzymania) — na których formach analiza po drodze staje. Pyta się tu gramatyki wprost, napisem albo segmentami, więc moduł ten o werdykcie nie wie.

DOMKNIĘCIA = {'.': 'kropka na końcu', '?': 'pytajnik na końcu'} module-attribute

Naprawa dataclass

Poprawka jednego znaku, po której olski to zdanie czyta.

Klasa jest jedna na wszystkie takie poprawki, bo autorowi mówią one to samo: olski tego zdania nie czyta, a od czytania dzieli je jeden znak. Świadkiem jest w każdej z nich gramatyka, bo poprawka wchodzi tutaj dopiero wtedy, gdy rozbiór poprawionego napisu daje odczytanie. Reguła stojąca na takim świadku nie żąda kalibracji, której brak zamknął pakiet reguł (docs/linter.md#co-zamknęło-pakiet-reguł).

Liczba odczytań idzie razem z poprawką, bo policzona drugi raz żądałaby trzeciego rozbioru nad zdaniem, które werdykt rozebrał już dwa razy.

Source code in olski/werdykt/odrzucone.py
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
@dataclass(frozen=True)
class Naprawa:
    """Poprawka jednego znaku, po której olski to zdanie czyta.

    Klasa jest jedna na wszystkie takie poprawki, bo autorowi mówią one to samo:
    olski tego zdania nie czyta, a od czytania dzieli je jeden znak. Świadkiem
    jest w każdej z nich gramatyka, bo poprawka wchodzi tutaj dopiero wtedy, gdy
    rozbiór poprawionego napisu daje odczytanie. Reguła stojąca na takim świadku
    nie żąda kalibracji, której brak zamknął pakiet reguł
    (docs/linter.md#co-zamknęło-pakiet-reguł).

    Liczba odczytań idzie razem z poprawką, bo policzona drugi raz żądałaby
    trzeciego rozbioru nad zdaniem, które werdykt rozebrał już dwa razy.
    """

    #: Co autor ma poprawić, tak jak to stoi w wierszu werdyktu.
    poprawka: str
    #: Liczba odczytań, które olski nad poprawionym napisem czyta.
    czytań: int

poprawka instance-attribute

czytań instance-attribute

__init__(poprawka, czytań)

zatrzymania(segmenty, grammar=None)

Każde zatrzymanie odrzuconego zdania, a nie samo pierwsze.

Werdykt nazywa jedno miejsce (na_czym_stanęło), a zdanie długie ma ich kilka i pierwsze zasłania resztę, więc kto pisze pod tę gramatykę, nie widzi z werdyktu, ile jeszcze poprawek to zdanie zabierze.

Cięcie nie wskazuje usterki ani granicy konstrukcji, tak samo jak jedno zatrzymanie jej nie wskazuje.

Source code in olski/werdykt/odrzucone.py
150
151
152
153
154
155
156
157
158
159
160
161
def zatrzymania(segmenty: list[Segment], grammar: Grammar | None = None) -> tuple[str, ...]:
    """Każde zatrzymanie odrzuconego zdania, a nie samo pierwsze.

    Werdykt nazywa jedno miejsce (:func:`na_czym_stanęło`), a zdanie długie ma ich
    kilka i pierwsze zasłania resztę, więc kto pisze pod tę gramatykę, nie widzi z
    werdyktu, ile jeszcze poprawek to zdanie zabierze.

    Cięcie nie wskazuje usterki ani granicy konstrukcji, tak samo jak jedno
    zatrzymanie jej nie wskazuje.
    """
    grammar = grammar or GRAMMAR
    return _od_zatrzymania(segmenty, grammar, _pierwsze_zatrzymanie(segmenty, grammar))