olski.skład.opowieść¶
Tekst, a nie zdanie: co wie kompilator, który widzi zdania obok siebie.
Zdanie skompilowane osobno nie wie o niczym poza sobą, więc wypisuje każdą rzecz pełną nazwą i stawia ją w czasie, w którym stoi samo. Tekst wie dwie rzeczy więcej i obie zmieniają to, co wychodzi.
Wie, kiedy to było. Opowieść mówi o tym, co się stało,
więc czas przeszły jest własnością opowiadania, a nie któregokolwiek ze zdarzeń.
To samo drzewo opowiedziane jako to, co się dzieje, dałoby czas teraźniejszy,
i dlatego czasu nie ma w drzewie, tylko w Kontekst.
Wie, o kim mowa. Podmiot powtórzony zdanie po zdaniu czyta się źle,
a polszczyzna ma na to zwykły sposób: opuszcza go,
bo osobę, liczbę i rodzaj niesie sam czasownik.
Opuszczenie wymaga tożsamości, czyli wiedzy, że dwa wystąpienia lematu
są tą samą rzeczą, a nie dwiema takimi samymi,
i tego jedno drzewo nie ma czym powiedzieć.
Niesie to Postać, a rozstrzyga o tym zmienna, którą autor tej postaci nadał:
dwa razy napisany R.bazyliszek jest dwoma bazyliszkami,
a dwa razy użyta jedna Postać jest jednym.
Opuszczenie jest wąskie z rozmysłu:
opuszczenie, po którym zdanie czyta się dwojako, nie jest oszczędnością,
i jest to ta sama ostrożność, którą po drugiej stronie ma kryterium jednego czytania.
Warunki trzyma pomijalny w olski/skład/składnia.py, a nie ten moduł,
bo stawia je także ciąg zdarzeń wewnątrz jednego zdania.
Akapit dokłada do nich jeden własny i jest to jego cała rola w tej regule:
zdanie o kimś, o kim mowa była wcześniej, ale nie w zdaniu obok,
dostaje pełną nazwę, a akapit jest tym, w czym „obok” się kończy.
Postać
¶
Bases: Rola
Rzecz, do której tekst wraca, wraz z tożsamością, której lemat nie daje.
Postacią jest to, co opowieść wymienia więcej niż raz. Rzecz wspomniana raz postaci nie potrzebuje i zostaje zwykłym bytem, więc ten konstruktor jest deklaracją autora, a nie kosztem płaconym wszędzie.
Tożsamość jest tożsamością obiektu, bo taką daje zmienna w Pythonie, i to jest cały mechanizm: postać przypisana do nazwy i użyta pod tą nazwą dwa razy jest w obu miejscach tą samą. Dwie postaci o tym samym lemacie są dwiema różnymi rzeczami, i to też jest zamierzone: opowieść bywa o dwóch braciach.
Czego to nie obejmuje, jest widać na drugim określeniu:
bazyliszek i potwór są dla tego kompilatora dwiema rzeczami,
bo tożsamość deklaruje autor, a nie słownik synonimów.
Source code in olski/skład/opowieść.py
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | |
kto = byt(kto)
instance-attribute
¶
number
property
¶
rodzaj
property
¶
tożsamość
property
¶
__init__(kto)
¶
Source code in olski/skład/opowieść.py
55 56 | |
linearyzuj(case, kontekst=TERAZ)
¶
Source code in olski/skład/opowieść.py
70 71 | |
Akapit
¶
Ciąg zdarzeń opowiedzianych jedno po drugim.
Akapit jest jednostką, w której podmiot da się opuścić,
bo jest jednostką, w której czytelnik trzyma jeden wątek.
Pierwsze zdanie akapitu wypisuje podmiot zawsze,
także wtedy, gdy akapit poprzedni skończył się na tej samej postaci,
i tyle akapit o opuszczeniu rozstrzyga:
resztę warunków stawia pomijalny w olski/skład/składnia.py.
Source code in olski/skład/opowieść.py
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | |
zdania = tuple(_rozwiń(zdania))
instance-attribute
¶
__init__(*zdania)
¶
Source code in olski/skład/opowieść.py
99 100 | |
konteksty(czas)
¶
Zdania akapitu, każde wraz z kontekstem, w którym akapit je wypisuje.
Wydawane osobno od napisu, bo o ten sam kontekst pyta każdy,
kto chce zdanie tego akapitu obejrzeć, a nie tylko wypisać:
olski/skład/przegląd.py jest pierwszym takim pytającym,
a kopia tej pętli u niego mierzyłaby akapit, którego ten plik już nie składa.
Wydaje same zdania akapitu, a nie te, które stoją pod nimi;
po tamte schodzi Zdanie.konteksty, biorąc kontekst wydany tutaj.
Source code in olski/skład/opowieść.py
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | |
kompiluj(czas)
¶
Source code in olski/skład/opowieść.py
119 120 | |
Opowieść
¶
Akapity o tym, co się stało.
Czasu ten konstruktor nie przyjmuje i nie ma przyjmować. Opowieść jest z definicji mówieniem o tym, co już było, więc czas przeszły jest tu znaczeniem słowa, a nie ustawieniem; tekst o tym, co się dzieje, jest inną rzeczą i doczeka się innego konstruktora.
Source code in olski/skład/opowieść.py
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | |
CZAS = 'kiedyś'
class-attribute
instance-attribute
¶
akapity = akapity
instance-attribute
¶
__init__(*akapity)
¶
Source code in olski/skład/opowieść.py
135 136 | |
kompiluj()
¶
Source code in olski/skład/opowieść.py
138 139 | |