Dilbilgisi (Language Grammar)
- parser grammar SolidityParser
Solidity, Ethereum platformunda akıllı sözleşmelerin uygulanması için statik olarak yazılan, sözleşme odaklı, yüksek seviyeli bir programlama dilidir.
- rule source-unit
Solidity en üst seviyede pragmalara, import direktiflerine ve sözleşmelerin, arayüzlerin, kütüphanelerin, structların, enumların ve constantların tanımlanmasına izin verir.
- rule import-directive
İçe aktarma direktifleri farklı dosyalardan tanımlayıcıları içe aktarır.
- rule path
İçeri aktarılacak dosyanın yolu.
- rule symbol-aliases
İçe aktarılacak semboller için takma adların listesi.
- rule contract-definition
Bir sözleşmenin en üst düzey tanımı.
- rule interface-definition
Bir arayüzün en üst düzey tanımı.
- rule library-definition
Bir kütüphanenin en üst düzey tanımı.
- rule inheritance-specifier
Sözleşmeler ve arayüzler için kalıtım belirleyicisi. İsteğe bağlı olarak temel constructor argümanları sağlayabilir.
- rule contract-body-element
Sözleşmelerde, arayüzlerde ve kütüphanelerde kullanılabilen tanımlamalar.
Arayüzlerin ve kütüphanelerin constructor, arayüzlerin durum değişkenleri ve kütüphanelerin fallback, receive fonksiyonları veya sabit olmayan durum değişkenleri içermeyebileceğini unutmayın.
- rule call-argument-list
Bir fonksiyonu veya benzer bir çağrılabilir nesneyi çağırırken mevcut olan argümanlar. Bağımsız değişkenler ya virgülle ayrılmış liste olarak ya da adlandırılmış bağımsız değişkenlerin haritası olarak verilir.
- rule identifier-path
Nitelikli isim.
- rule modifier-invocation
Bir modifier’a çağrı yapın. Modifier hiçbir argüman almazsa, argüman listesi tamamen atlanabilir (açılış ve kapanış parantezleri dahil).
- rule visibility
Fonksiyonlar ve fonksiyon türleri için görünürlük.
- rule parameter-list
Fonksiyon argümanları veya dönüş değerleri gibi parametrelerin bir listesi.
- rule constructor-definition
Constructor’ın tanımı: Her zaman bir uygulama sağlamalıdır. Internal veya Public görünürlük belirtmenin kullanımdan kaldırıldığını unutmayın.
- rule state-mutability
Fonksiyon tipleri için durum değiştirilebilirliği. Herhangi bir değişebilirlik belirtilmezse varsayılan değişebilirlik ‘non-payable’ olarak kabul edilir.
- rule override-specifier
Fonksiyonlar, modifier’lar veya durum değişkenleri için kullanılan bir geçersiz kılma belirteci. Geçersiz kılınan birden fazla temel sözleşmede belirsiz tanımlamalar olduğu durumlarda, temel sözleşmelerin tam bir listesi verilmelidir.
- rule function-definition
Sözleşme, kütüphane ve arayüz fonksiyonlarının tanımı. Fonksiyonun tanımlandığı bağlama bağlı olarak, başka kısıtlamalar da uygulanabilir; örneğin, arayüzlerdeki fonksiyonlar uygulanmamış olmalıdır, yani bir gövde bloğu içermemelidir.
- rule modifier-definition
Bir modifier’ın tanımı. Bir modifier’ın gövde bloğu içinde, alt çizginin tanımlayıcı olarak kullanılamayacağını, ancak modifier’ın uygulandığı bir fonksiyonun gövdesi için yer tutucu ifade olarak kullanıldığını unutmayın.
- rule fallback-function-definition
Özel fallback fonksiyonunun tanımı.
- rule receive-function-definition
Özel receive fonksiyonunun tanımı.
- rule struct-definition
Bir struct’ın tanımı. Bir kaynak birimin içinde üst seviyede veya bir sözleşme, kütüphane veya arayüz içinde oluşabilir.
- rule struct-member
Adlandırılmış bir struct üyesinin tanımı.
- rule enum-definition
Bir enum tanımı. Bir kaynak birim içinde üst seviyede veya bir sözleşme, kütüphane veya arayüz içinde oluşabilir.
- rule user-defined-value-type-definition
Kullanıcı tanımlı bir değer türünün tanımı. Bir kaynak birim içinde üst seviyede veya bir sözleşme, kütüphane veya arayüz içinde oluşabilir.
- rule state-variable-declaration
Bir durum değişkeninin tanımı.
- rule constant-variable-declaration
Sabit bir değişkenin tanımı.
- rule event-parameter
Bir eventin parametresi.
- rule event-definition
Bir event tanımı. Sözleşmelerde, kütüphanelerde veya arayüzlerde meydana gelebilir.
- rule error-parameter
Error parametresi.
- rule error-definition
Bir error tanımı.
- rule using-directive
Kütüphane işlevlerini ve serbest işlevleri türlere bağlamak için yönerge kullanma. Sözleşmeler ve kütüphaneler içinde ve dosya düzeyinde meydana gelebilir.
- rule type-name
Bir türün adı, temel tür, fonksiyon türü, mapping türü, kullanıcı tanımlı tür olabilir. (örneğin bir sözleşme veya struct) veya bir dizi türü.
- rule elementary-type-name
- rule function-type-name
- rule variable-declaration
Tek bir değişkenin tanımı.
- rule data-location
- rule expression
Karmaşık bir ifade. Bir dizin erişimi, bir dizin aralığı erişimi, bir üye erişimi, bir fonksiyon çağrısı (isteğe bağlı fonksiyon çağrısı seçenekleriyle), bir tür dönüştürme, bir tekli veya ikili ifade, bir karşılaştırma veya atama, bir üçlü ifade, bir yeni ifade (yani bir sözleşme oluşturma veya bir dinamik bellek dizisinin tahsisi), bir tuple, bir inline dizi veya bir birincil ifade (yani bir tanımlayıcı, literal veya tür adı) olabilir.
- rule tuple-expression
- rule inline-array-expression
Inline dizi ifadesi, içerdiği ifadelerin ortak türünde statik olarak boyutlandırılmış bir diziyi belirtir.
- rule identifier
Normal anahtar kelime olmayan Tanımlayıcıların yanı sıra, ‘from’ ve ‘error’ gibi bazı anahtar kelimeler de tanımlayıcı olarak kullanılabilir.
- rule literal
- rule boolean-literal
- rule string-literal
Tam bir dize literali, bir veya birkaç ardışık alıntılanmış dizeden oluşur.
- rule hex-string-literal
Bir veya birkaç ardışık onaltılık dizeden oluşan tam onaltılık dize literali.
- rule unicode-string-literal
Bir veya birkaç ardışık unicode string’den oluşan tam bir unicode string literal.
- rule number-literal
Sayı literalleri isteğe bağlı bir birimle birlikte ondalık veya onaltılık sayılar olabilir.
- rule block
Kıvrımlı parantezli ifadeler bloğu. Kendi kapsamını açar.
- rule unchecked-block
- rule statement
- rule if-statement
İsteğe bağlı olarak “else” kısmı olan if ifadesi.
- rule for-statement
İsteğe bağlı init, condition ve post-loop kısmı olan for ifadesi.
- rule while-statement
- rule do-while-statement
- rule continue-statement
Bir devam ifadesi. Yalnızca for, while veya do-while döngüleri içinde izin verilir.
- rule break-statement
Bir break ifadesi. Yalnızca for, while veya do-while döngüleri içinde izin verilir.
- rule try-statement
Bir try ifadesi. İçerilen ifadenin harici bir işlev çağrısı veya bir sözleşme oluşturma olması gerekir.
- rule catch-clause
Bir try ifadesinin catch cümlesi.
- rule return-statement
- rule emit-statement
Bir emit ifadesi. İçerilen ifadenin bir event’e referans vermesi gerekir.
- rule revert-statement
Bir revert ifadesi. İçerilen ifadenin bir error’e referans vermesi gerekir.
- rule assembly-statement
Bir inline assembly bloğu. Inline assembly bloğunun içeriği ayrı bir tarayıcı/lexer kullanır, yani bir inline assembly bloğunun içinde anahtar sözcükler ve izin verilen tanımlayıcılar kümesi farklıdır.
- rule assembly-flags
Assembly bayrakları. Bayrak olarak çift tırnaklı stringlerin virgülle ayrılmış listesi.
- rule variable-declaration-tuple
Değişken tanımlamalarında kullanılacak bir dizi değişken adı. Boş alanlar içerebilir.
- rule variable-declaration-statement
Bir değişken tanımlama ifadesi. Tek bir değişken başlangıç değeri olmadan tanımlanabilirken, değişken çiftleri yalnızca başlangıç değeriyle tanımlanabilir.
- rule expression-statement
- rule mapping-type
- rule mapping-key-type
Eşleme anahtarları olarak yalnızca temel tipler veya kullanıcı tanımlı tipler kullanılabilir.
- rule yul-statement
Inline assembly bloğu içinde bir Yul ifadesi. continue ve break ifadeleri yalnızca for döngüleri içinde geçerlidir. leave ifadeleri yalnızca fonksiyon gövdeleri içinde geçerlidir.
- rule yul-block
- rule yul-variable-declaration
İsteğe bağlı başlangıç değerine sahip bir veya daha fazla Yul değişkeninin tanımlanması. Birden fazla değişken tanımlanmışsa, yalnızca bir fonksiyon çağrısı geçerli bir başlangıç değeridir.
- rule yul-assignment
Herhangi bir ifade tek bir Yul değişkenine atanabilirken, çoklu atamalar için bir yandan bir fonksiyon çağrısı yapılması gerekir.
- rule yul-if-statement
- rule yul-for-statement
- rule yul-switch-statement
Bir Yul switch ifadesi yalnızca bir varsayılan durumdan (kullanımdan kaldırılmıştır) veya isteğe bağlı olarak bir varsayılan durum tarafından takip edilen bir veya daha fazla varsayılan olmayan durumdan oluşabilir.
- rule yul-function-definition
- rule yul-path
Inline assembly içinde yalnızca noktasız tanımlayıcılar bildirilebilirken, nokta içeren yollar inline assembly bloğunun dışındaki bildirimlere başvurabilir.
- rule yul-function-call
Dönüş değerlerine sahip bir fonksiyon çağrısı yalnızca bir atama veya değişken bildiriminin sağ tarafı olarak gerçekleşebilir.
- rule yul-boolean
- rule yul-literal
- rule yul-expression
- lexer grammar SolidityLexer
- rule fixed-bytes
Sabit uzunluktaki bayt tipleri.
- rule number-unit
Sayılar için birim gösterimi.
- rule signed-integer-type
Boyutlandırılmış işaretli tamsayı(int) türleri. int, int256’nın takma adıdır.
- rule unsigned-integer-type
Boyutlandırılmış işaretsiz tamsayı(uint) türleri. uint, uint256’nın takma adıdır.
- rule non-empty-string-literal
Yazdırılabilir karakterlerle sınırlandırılmış, boş olmayan alıntılanmış bir string literali.
- rule empty-string-literal
Boş bir string literali
- rule single-quoted-printable
Tek tırnak veya ters eğik çizgi dışında yazdırılabilir herhangi bir karakter.
- rule double-quoted-printable
Çift tırnak veya ters eğik çizgi dışında yazdırılabilir herhangi bir karakter.
- rule escape-sequence
Kaçış sırası. Yaygın tek karakterli kaçış sıralarının yanı sıra, satır sonları da kaçabilir ve dört onaltılık basamaklı unicode kaçışlarına \uXXXX ve iki basamaklı onaltılık kaçış sıralarına \xXX izin verilir.
- rule unicode-string-literal
Rastgele unicode karakterlere izin veren tek tırnaklı bir string literal.
- rule hex-string
Onaltılı dizelerin, alt çizgi kullanılarak gruplandırılabilen çift sayıda onaltılı rakamlardan oluşması gerekir.
- rule hex-number
Onaltılı sayılar bir önek ve alt çizgilerle sınırlandırılabilen rastgele sayıda onaltılı rakamlardan oluşur.
- rule decimal-number
Bir ondalık sayı literali, alt çizgilerle sınırlandırılabilen ondalık basamaklardan ve isteğe bağlı bir pozitif veya negatif üstel sayıdan oluşur. Rakamlar bir ondalık nokta içeriyorsa, literal sabit nokta tipine sahiptir.
- rule identifier
Solidity’de bir tanımlayıcı bir harf, bir dolar işareti veya bir alt çizgi ile başlamalıdır ve ilk sembolden sonra ek olarak sayılar içerebilir.
- rule yul-evm-builtin
EVM Yul diyalektinde bulunan dahili fonksiyonlar.
- rule yul-identifier
Yul tanımlayıcıları harflerden, dolar işaretlerinden, alt çizgilerden ve sayılardan oluşur, ancak bir sayı ile başlamayabilir. Satır içi assembly’de kullanıcı tanımlı tanımlayıcılarda nokta olamaz. Bunun yerine noktalı tanımlayıcılardan oluşan ifadeler için yulPath bölümüne bakın.
- rule yul-hex-number
Yul’daki onaltılık değişmezler bir önek ve bir veya daha fazla onaltılık basamaktan oluşur.
- rule yul-decimal-number
Yul’daki ondalık literaller sıfır veya başlarında sıfır olmayan herhangi bir ondalık basamak sırası olabilir.
- rule yul-string-literal
Yul’da bulunan string literalleri, kaçış sıralarını ve yazılmamış satır sonları veya kaçış sırasız çift tırnaklar veya tek tırnaklar dışındaki yazdırılabilir karakterleri içerebilen bir veya daha fazla çift tırnaklı veya tek tırnaklı stringlerden oluşur.
- rule pragma-token
Pragma belirteci. Noktalı virgül hariç her türlü sembolü içerebilir. Şu andaki solidity çözümleyicisinin bunun yalnızca bir alt kümesine izin verdiğini unutmayın.