Swd1316 sintaktik tahlil. Ifodalarning sintaktik tahlili. Parser sinfi. Sintaktik analizatorni yaratish



Download 4,81 Mb.
bet6/7
Sana30.06.2022
Hajmi4,81 Mb.
#720089
1   2   3   4   5   6   7
Bog'liq
DlpeIbHtXYYkEOZob3RzyoNUudZDKQ1ecYsneZ2f

Parser sinfi

  • Bu tahlillovchini bu usul qiymat qaytarmaydigan rekursiv kamayish usuli ko‘ra potensiali sekin ekanligini ochiq-oydin ko‘riy mumkin, lekin evaziga uning asl shaklida grammatikada qolishi va dasturchi uchun harakat saqlab qolish uchun boshqarish osondir.Xuddi shu sintaktik tahlil S – bemoll kompilyatorida sintaktik tahlil uchun joriy qilingan. Masalan, quyidagi fragmentda tahlil paytida konstruksiya ifoda operatori yoki izoh ekanligini aniqlovchi usul amalga oshiradi. Ikkala konstruksiya nuqta bilan ajratilgan va ehtimol kvadrat qavslarni o‘z ichiga olgan identifikatorlar ketma-ketligi bilan boshlanishi mumkin.

Parser sinfi

  • AST.Stmt stmt_or_decl () {
  • Lexer saved = new Lexer (lexer);
  • try {
  • AST.Type t = type_opt ();
  • if (lexer.Is (Token.Tag.Ident))
  • return decl_tail (saved.Curr.coor, t); }
  • catch (ParseFailed) {
  • lexer = saved;
  • AST.Expr expr = this.expr ();
  • return new AST.Stmt.Expr (compiler,
  • saved.Curr.coor|lexer.req (Token.Tag.Semicolon).coor, expr); } }
  • .

Sintaktik analizatorni yaratish

  • Odatda, mashina tilidagi matn gaplar, gap-gaplar ostidan, gap osti esa, o‘z navbatida, gaplar ostidan va shu kabi belgilardan hosil bo‘ladi. Masalan, XML hujjatda boshlanish tegi, qiymat, yopish teglari mavjud. Boshlanish tegi [<] belgisi, teg nomi va qanday atribut va qiymatlari, [>] belgisidan iborat. YOpish tegi esa, []belgisi bilan tugaydi. Atribut esa nomi, [=], [“], belgilar to‘plami va yana [“] belgisidan iborat va takrorlanishi mumkin. Qiymat esa qandaydir belgilar to‘plami yoki qandaydir elementlardan (gap, gap osti, ifoda) iborat. Tahlil natijasida tahlil daraxtini hosil qilish mumkin.

Sintaktik analizatorni yaratish

  • Bunday tillarni har bir terminal bo‘lmagan tilning ma’lum bir jumlasiga mos keladigan Backus-Naur shakli (BNSH) yordamida tasvirlash qulay. Dasturlarni yozganda, odatda ularni funksiyalarga va funksiya ostilarga ajratamiz va sietatik tahlillovchi yozmoqchi bo‘lganimiz uchun, har bir BNSH terminal bo‘lmagan sintatik tahlillovchimizning bitta funksiyasiga mos kelsin va har bir bunday funksiya: ushbu jumlani berilgan pozitsiyadan ajratishga harakat qilish;
  • bu ishni bajardimi yo‘qmi natijasini qaytarish;
  • tahlil tugagani yoki xato sodir bo‘lgan pozitsiyani qaytarish;
  • tahlil natijasida olish kerak bo‘lgan ba’zi qo‘shimcha ma’lumotlarni qaytarish;

Download 4,81 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish