Kitaplar / Yöntem Dil Başvurusu / Ek A — Dilbilgisinin tamamı
Ek A — Dilbilgisinin tamamı
Aşağıdaki kurallar depodaki yontem.gram dosyasının açıklamaları çıkarılmış özetidir. Sözcük tanımları ve ayrıntılı açıklamalar için o dosyaya bakabilirsiniz.
Çıktı
dosya: birim | program
program: ['program' AD ayirici] kullan* bildirim* blok ('.' | SON)
birim: 'birim' AD ayirici kullan*
['arayüz' kullan* arayuz_bildirimi* 'uygulama' kullan*]
bildirim* ['başla' deyimler] 'bitir' ['.']
kullan: 'kullan' ','.AD+ ayirici
ayirici: ';' | satır sonu | SON
bildirim: sabit_bolumu | degisken_bolumu | tip_bolumu | altprogram
arayuz_bildirimi:
sabit_bolumu | degisken_bolumu | tip_bolumu | altprogram_basligi
sabit_bolumu: 'sabit' (AD [':' tip] ('=' | ':=') ifade ayirici)*
degisken_bolumu: 'değişken' (degisken_grubu ayirici)*
degisken_grubu: ','.AD+ ':' tip [('=' | ':=') ifade]
| ','.AD+ ('=' | ':=') ifade
tip_bolumu: 'tip' (AD '=' tip_tanimi ayirici)*
tip_tanimi: sinif | kayit | tip
tip: tip_tabani tip_eki*
tip_tabani: 'dizi' | [AD '.'] AD
tip_eki: 'dizisi' | 'listesi' | 'sözlüğü'
sinif: 'sınıf' ['(' AD ')'] sinif_uyesi* 'bitir'
kayit: 'kayıt' kayit_uyesi* 'bitir'
sinif_uyesi: gorunurluk | 'değişken' | metod | degisken_grubu ayirici
kayit_uyesi: gorunurluk | 'değişken' | degisken_grubu ayirici
gorunurluk: 'özel' | 'genel' | 'korumalı' | 'yayınlanmış'
metod: altprogram_basligi [bildirim* blok ayirici]
altprogram: altprogram_basligi [bildirim* blok ayirici]
altprogram_basligi:
('prosedür' | 'fonksiyon' | 'kurucu') [AD '.'] AD
[parametreler] [':' tip] ayirici (direktif ayirici)*
direktif: 'sanal' | 'ezer' | 'soyut' | 'ileri' | 'aşırı' | 'statik'
parametreler:
'(' [parametre_grubu ((';' | ',') parametre_grubu)*] ')'
parametre_grubu:
['değişken' | 'sabit'] ','.AD+ [':' tip] [('=' | ':=') ifade]
blok: 'başla' deyimler 'bitir'
deyimler: (deyim ayirici)*
govde: deyim | boş
deyim: blok
| 'eğer' ifade 'ise' govde [[';'] 'değilse' govde]
| 'tekrarla' deyimler ifade 'olana' 'dek'
| 'dene' deyimler ['yakala' ['(' AD ')'] deyimler]
['sonunda' deyimler] 'bitir'
| 'fırlat' ifade
| 'dön' [ifade]
| 'çık' | 'kır' | 'devam'
| 'değişken' degisken_grubu
| ifade AYRILMA ifade YONELME 'kadar' 'her' AD 'için' govde
| ifade AYRILMA ifade YONELME 'adımda' ifade
('artan' | 'azalan') 'her' AD 'için' govde
| ifade 'içindeki' 'her' AD [',' AD] 'için' govde
| ifade ('listesindeki' | 'dizisindeki') sonek
'.' ('elemanı' | 'elemanını') 'Sil'
| ifade 'iken' govde
| ifade 'kez' 'tekrarla' govde
| ifade 'değerine' 'göre' kol*
['değilse' [':'] deyimler] 'bitir'
| sonek (':=' | '+=' | '-=' | '*=' | '/=') ifade
| ifade
kol: ','.etiket+ ':' govde ayirici
etiket: ifade ['..' ifade]
ifade: veya ('|>' veya)*
veya: ve (('veya' | 'yada') ve)*
ve: degil ('ve' degil)*
degil: 'değil' degil | iliski
iliski: toplama [('=' | '<>' | '<' | '>' | '<=' | '>=' | 'içinde')
toplama]
toplama: carpma (('+' | '-') carpma)*
carpma: tekli (('*' | '/' | '@' | 'böl' | 'mod') tekli)*
tekli: ('-' | '+') tekli | '@' sonek | sonek ['**' tekli]
sonek: birincil sonek_eki*
sonek_eki:
'(' [','.arguman+] ')' | '[' ','.ifade+ ']' | '.' (AD | AS)
arguman: ifade [':' ifade [':' ifade]]
birincil: SAYI | METIN | AD | 'doğru' | 'yanlış' | 'boş' | 'kendi'
| 'eğer' ifade 'ise' ifade 'değilse' ifade
| 'miras' [AD]
| ('fonksiyon' | 'prosedür') [parametreler] [':' tip]
('=>' ifade | bildirim* blok)
| '(' ifade ')'
| '[' ']' | '[' ':' ']'
| '[' ifade '..' ifade ']'
| '[' ifade ':' ifade (',' ifade ':' ifade)* [','] ']'
| '[' ','.ifade+ [','] ']'