Leksik grammatika - Lexical grammar

Yilda Kompyuter fanlari, a leksik grammatika a rasmiy grammatika belgilaydigan sintaksis ning nishonlar. Dastur ishlatiladigan tilning leksik tuzilishi bilan belgilanadigan belgilar yordamida yoziladi. Belgilar to'plami har qanday yozma til ishlatadigan alifboga teng. Leksik grammatika belgilar ketma-ketligini belgilarning ketma-ketligiga bo'linishini belgilaydigan qoidalarni belgilaydi, ularning har bir qismi alohida belgini ifodalaydi. Bu so'zlar bilan tez-tez aniqlanadi doimiy iboralar.[1]

Masalan, ko'pchilik uchun leksik grammatika dasturlash tillari a ekanligini aniqlaydi string literal bilan boshlanadi " belgi va mos kelguniga qadar davom etadi " topildi (qochish buni yanada murakkablashtiradi), deb an identifikator bu alfanumerik ketma-ketlik (harflar va raqamlar, odatda pastki chiziqlarga ruxsat berish va boshlang'ich raqamlarga ruxsat bermaslik) va bu an tamsayı raqamlarning ketma-ketligi. Shunday qilib quyidagi belgilar ketma-ketligida "abc" xyz1 23 nishonlar mag'lubiyat, identifikator va raqam (ortiqcha bo'shliq belgilar), chunki bo'shliq belgisi identifikatorni tashkil etuvchi belgilar ketma-ketligini tugatadi. Bundan tashqari, ma'lum ketma-ketliklar quyidagicha tasniflanadi kalit so'zlar - bu odatda identifikatorlar bilan bir xil shaklga ega (odatda alfavit so'zlari), lekin alohida-alohida tasniflanadi; rasmiy ravishda ular boshqa token turiga ega.[2]

Misollar

Umumiy leksik qoidalar uchun doimiy iboralar amal qiladi (masalan, C).

Yuborilmaydigan mag'lubiyat so'zma-so'z (iqtibos, so'ngra tirnoq bilan yakunlanmagan, tirnoq bilan tugagan):

"[^"]*"

Qochilgan mag'lubiyat so'zma-so'z (tirnoq, keyin qochib ketgan belgilar yoki tirnoq bilan yakunlangan, tirnoq bilan yakunlangan):

"(.|[^"])*"

To'liq harf:

[0-9]+

O'nli tamsayı (to'g'ridan-to'g'ri nol yo'q):

[1-9][0-9]*|0

Hexadecimal integer literal:

0 [Xx] [0-9A-Fa-f] +

Sakkizinchi tamsayı:

0[0-7]+

Identifikator:

[A-Za-z _ $] [A-Za-z0-9 _ $] *

Shuningdek qarang

Adabiyotlar

  1. ^ Buyya (2009). Java bilan ob'ektga yo'naltirilgan dasturlash: Essentials and Applications. Tata McGraw-Hill ta'limi. 57– betlar. ISBN  978-0-07-066908-6.
  2. ^ Jeyms Gosling (2000). Java tilining spetsifikatsiyasi. Addison-Uesli Professional. 9–11 betlar. ISBN  978-0-201-31008-5.

Tashqi havolalar