2
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
1 Wewnętrzna truktura drzewa parsowania
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
2 =====================================
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
3
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
4
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
5 Węzły
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
6 -----
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
7
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
8 Możliwych jest kilka podejść. Najbardziej bezpośrednim byłoby
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
9 zdefiniowanie oddzielnej struktury danych dla każdej z produkcji gramatyki
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
10 i przypisywanie symbolom powstałym z takiej produkcji takiej właśnie
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
11 struktury danych jako wartość. Nie trzeba chyba wyjaśniać, że takie
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
12 podejście jest bardzo uciążliwe dla człowieka.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
13
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
14 Dlatego też wybrałem początkowo inne podejście -- struktury danych
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
15 tworzone są tylko dla niektórych symboli nieterminalnych, a mianowicie
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
16 tych, które reprezentują pewne obiekty w sensie struktury programu, jak
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
17 typy, zmienne, procedury, funkcje, polecenia, wyrażenia i tym podobne.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
18 Nadal jednak każde z nich miało swoją oddzielną strukturę danych.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
19
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
20 Ostatecznie zrezygnowałem z takiego rozdziału. Podzieliłem zbiór
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
21 wszystkich rodzajów węzłów na podzbiory o podobnych własnościach i dla
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
22 każdego z tych podzbiorów zdefiniowałem strukturę danych. Dodatkowe pole
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
23 informuje o dokładnym rodzaju danego węzła.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
24
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
25 I tak otrzymałem 3 kategorie węzłow:
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
26
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
27 1) Symbole -- czyli wszelkie obiekty posiadające nazwę, takie jak: typy,
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
28 zmienne, stałe nazwane, pola rekordów, procedury, funkcje, unity, oraz sam
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
29 program. Nie wszystkie jednak symbole koniecznie muszą mieć jakąś nazwę --
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
30 dotyczy to głównie typów oraz niektórych zmiennych.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
31
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
32 2) Polecenia -- czyli pojedyńcze rozkazy programu, takie jak: blok,
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
33 instrukcja skoku, instrukcja warunkowa, pętle, przypisanie, instrukcja
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
34 wiążąca, instrukcja wyboru.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
35
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
36 3) Wyrażenia -- czyli wszystko to, co można do czegoś przypisać, co ma
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
37 jakąś wartość, na przykład: stałe, odwołania do zmiennych i stałych
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
38 nazwanych, wywołanie funkcji, operatory binarne, operatory unarne, etc.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
39
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
40 Pole mówiące o rodzaju węzła występuje zawsze jako pierwsze i jest zawsze
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
41 tego samego typu -- tak aby używając rzutowania na którąkolwiek z
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
42 kategorii węzłów wskaźnika void* można było poznać właściwą kategorię.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
43
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
44 Krawędzie
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
45 ---------
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
46
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
47 Połączenia pomiędzy węzłami to po prostu wskaźniki umieszczone jako pola w
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
48 odpowiednich strukturach danych. Ich znaczenie zależy częściowo od
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
49 kategorii i rodzaju węzła, choć są także `uniwersalne', takie jak pola na
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
50 komentarze.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
51
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
52 Informacja o połączeniach w drugą stronę -- to znaczy informacja o przodku
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
53 danego węzła -- jest znacznie prostrza do przechowania i zależy tylko od
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
54 kaztegorii węzła.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
55
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
56 1) Symbole -- mogą być potomkami wyłącznie innych symboli. Wobec tego ich
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
57 pole `parent' jest wskaźnikiem na symbol.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
58
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
59 2) Polecenia -- mogą być potomkami inncyh poleceń (jak w instrukcji
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
60 warunkowej lub blokowej). Jedyny przypadek gdy tak nie jest dotyczy
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
61 instrukcji blokowej (BEGIN...END) i jest traktowany jako przypadek
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
62 szczególny. Jeśli pole parent takiej instrukcji jest równe NULL, to
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
63 rodzicem takiego węzła jest jakiś symbol, zapisany np. w polu symbol.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
64
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
65 3) Wyrażenia -- tutaj jest duży problem. Wyrażenia mogą wystąpić jako
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
66 części składowe większych wyrażeń, jako parametry poleceń, a także w
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
67 definicjach stałych nazwanych i typów.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
68 Ze względu na dość duży stopień komplikacji, jak i raczej niewielkie
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
69 możliwości zastosowania, wyrażenia nie będą prawdopodobnie znały swoich
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
70 przodków.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
71
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
72
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
73 Symbole
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
74 -------
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
75
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
76 SymbolNode
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
77 kind Zmienna wyliczeniowa, opisuje dokładny rodzaj
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
78 węzła.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
79
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
80 name Nazwa danego symbolu (z zachowaniem pierwszy raz
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
81 napotkanej wielkości liter).
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
82
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
83 namespace Tablica symboli-dzieci (zarówno w postaci tablicy
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
84 hashującej jak i listy dla zachowania kolejności).
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
85 Ma wartość NULL dla symboli nie mogących mieć
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
86 dzieci (bezpłodne?). Symbole na liście mogą się
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
87 powtarzać. Wówczas pierwsze wystąpienie oznacza
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
88 tylko deklarację, a następne oznacza definicję.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
89
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
90 parent Wskaźnik na bezpośredniego przodka w drzewie. Ma
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
91 wartość NULL dla korzenia. Wskazuje w którym
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
92 miejscu symbol został zadeklarowany.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
93
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
94 body Wskaźnik na węzeł instrukcji blokowej stanowiącej
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
95 ciało danego programu, procedury lub funkcji.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
96 Także rozkaz przy którym znajduje się dana
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
97 etykieta. Ma wartość NULL dla pozostałych rodzajów
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
98 symboli.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
99
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
100 type Wskaźnik na symbol, w domyśle opisujący typ danego
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
101 węzła lub jego typ bazowy (dla innych typów). Dla
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
102 symboli nie mających typu ma wartość NULL.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
103
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
104 used Lista wskaźników do węzłów w których używany jest
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
105 ten symbol. Dla programu jest to lista nazw
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
106 podanych po nazwie.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
107
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
108 Polecenia
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
109 ---------
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
110
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
111 StmtNode
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
112 kind Zmienna wyliczeniowa, opisuje dokładny rodzaj
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
113 węzła.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
114
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
115 parent Wskaźnik do instrukcji blokowej w której jest to
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
116 polecenie zawarte. Dla instrukcji blokowej będącej
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
117 ciałem programu, funkcji lub procedury -- ma
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
118 wartość NULL.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
119
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
120 label Jeśli polecenie jest zaetykietowane jest to
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
121 wskaźnik do etykiety. W przeciwnym wypadku NULL.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
122
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
123 list Dla instrukcji blokowej i pętli REPEAT -- lista
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
124 poleceń zawartych wewnątrz. Dla wywołania
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
125 procedury lista parametrów aktualnych. Dla
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
126 instrukcji wyboru -- lista wariantów CASE. Dla
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
127 instrukcji WITH -- lista zmiennych rekordowych.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
128 Dla pozostałych węzłów NULL.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
129
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
130 stmt1 Dla pętli WHILE, instrukcji WITH i FOR oraz
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
131 wariantów CASE jest to wskaźnik do zawartego w
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
132 nich polecenia. Dla instrukcji warunkowej --
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
133 polecenia zaraz po THEN. Dla pozostałych węzłow
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
134 NULL.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
135
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
136 stmt2 Dla instrukcji warunkowej -- polecenie po ELSE.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
137 Dla pozostałych węzłów NULL.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
138
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
139 symbol Dla instrukcji blokowej -- symbol której jest ona
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
140 ciałem. Dla instrukcji przypisania -- zmienna do
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
141 której następuje przypisanie. Dla instrukcji skoku
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
142 -- etykieta do której nalezy wykonać skok. Dla
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
143 instrukcji FOR -- licznik pętli. Dla pozostałych
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
144 węzłów NULL.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
145
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
146 expr1 Dla instrukcji przypisania -- wyrażenie które
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
147 należy przypisać. Dla pętli REPEAT i WHILE --
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
148 warunek końca (kontynuacji) pętli. Dla pętli FOR
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
149 -- wartość początkowa licznika. Dla instrukcji
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
150 wyboru i instrukcji warunkowej -- wyrażenie
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
151 przełączające. Dla wariantów CASE -- wyrażenie
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
152 przy którym dany wariant ma zastosowanie. Dla
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
153 pozostałych NULL.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
154
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
155 expr2 Dla pętli FOR -- wartość końcowa licznika. Dla
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
156 pozostałych wartości NULL.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
157
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
158 Wyrażenia
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
159 ---------
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
160
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
161 ExprNode
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
162 kind Zmienna wyliczeniowa, opisuje dokładny rodzaj
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
163 węzła.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
164
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
165 list Dla wywołania funkcji -- lista parametrów
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
166 formalnych.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
167
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
168 expr1 Dla operatorów binarnych i unarnych -- wartość na
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
169 jakiej działają.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
170
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
171 expr2 Dla operatorów binarnych -- druga wartość na
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
172 jakiej działa.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
173
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
174 symbol Dla wywołań zmiennych i funkcji -- dana zmienna
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
175 lub funkcja. Dla operatora @ -- symbol którego
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
176 adres zwraca.
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
177
|
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff
changeset
|
178 value Dla stałych -- właściwa wartość danej stałej.
|