2. Kural Tanımı
2.1. Kural Adlandırma
Bir kural ismi basitçe ismin kendisidir; yani, bir alfabetik karakterle başlayan harfler, rakamlar ve tire imlerinden oluşan bir karakter dizisidir.
Bilginize
Kural isimleri harf büyüklüğüne duyarlı değildir.
<kuraladı>, <Kuraladı>, <KURALADI>, <kURaLaDı>, hepsi aynı kuralı ifade eder.
Özgün BNF'nin aksine, açılı ayraçlar ("<", ">") gerekli değildir. Bununla birlikte, açılı ayraçlar, varlıkları bir kural ismi kullanımının ayırdedilmesini kolaylaştıracağı her yerde bir kural ismini sarmalamakta kullanılabilir. Bu kullanım, genellikle, serbest düzyazıda kural isimlerine atıf yapmakla veya kural isimleri boşluklarla ayrılmamış bir dizge olarak verildiğinde içinde yeralan kuralların farkedilmesini sağlamakla sınırlıdır; bir örneği aşağıda, yinelemenin açıklamasında görülebilir.
2.2. Kural Biçimi
Bir kural aşağıdaki sırayla tanımlanır:
isim = elemanlar crlf
Burada <isim>
kuralın ismi, <elemanlar>
başka kural veya kuralların isimleri ya da uç belirtimleri, <crlf>
ise satırbaşı karakterini izleyen satırsonu karakterinden oluşan satırsonu belirtecidir. Eşit işareti kural ismini tanımından ayırır. Elemanlar, bu belgede tanımlanmış çeşitli işleçlerle birleştirilmiş bir veya daha fazla kural ismi ve/veya değer tanımından oluşur.
Görsel rahatlık amacıyla kural tanımları sola yanaşıktır. Bir kural birden fazla satır gerektiriyorsa, devam satırları girintilenir. Sola hizalama ve girintileme ABNF kuralının ilk satırına görelidir ve belgenin sol kenar payıyla uyumlu olması gerekmez.
2.3. Uç Değerler
Kurallar bir uç değerler dizgesi olarak çözümlenir ve bunlara bazan karakterler adı verilir. ABNF'de bir karakter basitçe sıfır veya pozitif bir tamsayıdır. Belirli bağlamlarda, değerlerin özgün bir eşlemi (kodlaması) bir karakter kümesi olarak (ASCII gibi) belirtilir.
Uç değerler, bu karakterlerin taban yorumlarını açıkça belirten bir veya daha fazla sayısal karakterle belirtilir. Şimdilik şu tabanlar tanımlanmıştır:
b = ikilik d = onluk x = onaltılık
Dolayısıyla:
CR = %d13 ve CR = %x0D
sırasıyla satırbaşı karakterinin onluk ve onaltılık değerlerini [US-ASCII] belirtir.
Böyle değerlerin birleşiminden oluşan değerler bir bütün olarak, değeri oluşturan karakterlerin arasına bir nokta (".") konarak belirtilir. Örnek:
CRLF = %d13.10
ABNF, dizgesel sabitlerin tırnaklar içine alınarak doğrudan belirtilebilmesine imkan tanır. Örnek:
komut = "komut dizgesi"
Dizgesel sabitler basılabilen karakterlerin bir birleşimi olarak yorumlanır.
Bilginize
ABNF dizgesel sabitleri harf büyüklüğüne duyarlı değildir ve bu dizgelerin karakter kümesi us-ascii'dir.
Örneğin,
kuralismi = "abc"
ve
kuralismi = "aBc"
"abc", "Abc", "aBc", "abC", "ABc", "aBC", "AbC" ve "ABC" ile eşleşir.
Harf büyüklüklerine duyarlı bir kuralın her karakteri tek tek belirtilir.
Örneğin,
kuralismi = %d97 %d98 %d99
veya
kuralismi = %d97.98.99
sadece küçük harfli dizgeyle ("abc") eşleşecektir.
2.4. Harici Kodlamalar
Uç değer karakterlerinin harici gösterimleri saklama ya da aktarım ortamının kısıtlamalarına tabidir. Bu nedenle, aynı ABNF tabanlı dilbilgisinin çok sayıda harici kodlaması olabilir, örneğin, biri 16 bitlik Unicode kullanılırken biri 7 bitlik US-ASCII ortamı için, diğeri ikil sekizli ortam için olabilir. ABNF'nin Çekirdek ABNF'si bölümündeki tanımlar Genel Ağ'ın çoğunluğu için ortak olarak 7 bitlik US-ASCII ortamı için sağlanmışsa da kodlama ile ilgili ayrıntılar ABNF kapsamının dışındadır.
Harici kodlamayı sözdiziminden ayırmak suretiyle diğer kodlama ortamları aynı sözdizimi için kullanılabilecek şekilde tasarlanmıştır.