Lexikális elemző: lex (flex)

Slides:



Advertisements
Hasonló előadás
FOL függvényjelekkel Zsebibaba anyja A 2 harmadik hatványa a oszlopában az első blokk Ezek is nevek, de nem in- konstansok Azért, mert összetettek Predikátum:
Advertisements

„Zaj vagy zene?”. Rezgés vagy lengés Definíció: A rezgés vagy lengés olyan mozgást jelent amely ismétlődik egy egyensúlyi pont körül. A rezgés és lengés.
A családsegítő és gyermekjóléti szolgálatokat érintő változások A család és gyermekjóléti szolgáltatás.
Követelményelemzés – követelményspecifikáció A szoftverfejlesztés kapcsán az elemzés speciálisan egy kezdeti szakaszt jelöl, amelynek alapvető feladata.
AZ INFORMATIKA LOGIKAI ALAPJAI INCK401 Előadó: Dr. Mihálydeák Tamás Sándor Gyakorlatvezető: Kovács Zita 2016/2017. I. félév Tudnivalók.
Programozás alapjai 1. gyakorlat Hirling Dominik.
KÉPZŐ- ÉS IPARMŰVÉSZET ISMERETEK ÁGAZATI SZAKMAI ÉRETTSÉGI VIZSGA (középszintű) május-június.
Fájlkezelés.
EN 1993 Eurocode 3: Acélszerkezetek tervezése
A kérdőívek, a kérdőívszerkesztés szabályai
Hogyan lehet sikeresen publikálni?
Pályaválasztási tanácsadás
Programstruktúrák.
Becslés gyakorlat november 3.
AWK ismétlés AWK: adatvezérelt nyelv:
Integráció a felsőoktatási könyvtárak szolgáltatásfejlesztésében
Java kódolási konvenciók
Scilab programozás alapjai
Én így oktatnám a programozást
Adatok importálása, rendezése és szűrése
Lineáris függvények.
LabVIEW bevezetéstől a feszültség-áram karakterisztikáig Vida Andrea
Downstream Power Back Off (DPBO)
Kockázat és megbízhatóság
Vörös-Gubicza Zsanett képzési referens MKIK
Kereskedelmi szerződések joga
Az Országos Egészségfejlesztési Intézet fejlesztési projektjei az iskolai egészségfejlesztés területén DR. TÖRÖK KRISZTINA.
Rendszerező összefoglalás
Tájékoztató a évi OSAP teljesüléséről
Általános kémia
Logikai programozás 2..
Adatbázis-kezelés (PL/SQL)
INFOÉRA 2006 Véletlenszámok
2. Bevezetés A programozásba
VB ADATTÍPUSOK.
Szerkezetek Dinamikája
Downstream Power Back Off (DPBO)
Hogyan lehet sikeresen publikálni?
Grosz imre f. doc. Kombinációs hálózatok /43 kép
Körmendi Dániel MAS Meeting Scheduler.
Rendszerfejlesztés gyakorlat
Számítógépes Hálózatok
Teljes visszalépéses elemzés
IDŐZÍTÉS PROGRAMOZÁSA
Tevékenységünk Célunk P92rdi Kft - p92rdi.hu Kutatás (Research)
B M Java Programozás 4. Gy: Java GUI IT A N Tipper, MVC kalkulátor
Kifejezések kiértékelése * Lengyel-forma
Általános iskola eredménye, értékelése
3. előadás.
Önkormányzati adattárház
A Lineáris Keresés Buktatói
Vasbeton falvasalás megadása és ellenőrzése EC2 szerint
További rendező és kereső algoritmusok
A szállítási probléma.
Dr. Varga Beatrix egyetemi docens
Matematika 11.évf. 1-2.alkalom
Játékosított keretrendszerben történő tanulás log-adatainak elemzése
Matematika II. 5. előadás Geodézia szakmérnöki szak 2015/2016. tanév
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
Családi vállalkozások
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Bináris fájlok kezelése
Tájékoztató az EPER pályázati folyamatáról
3. előadás.
Szöveges adatok tárolása
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatika Oktató: Katona Péter.
Algoritmusok.
Hagyományos megjelenítés
Digitális kárrendezés
Előadás másolata:

Lexikális elemző: lex (flex) bemenet: X.lex (ezt írjuk meg mi) Fordítás flex -oX.c X.lex ennek hatására elkészíti a lexikális elemző programját, amit majd fel tudunk használni később a szintaktikus elemzőnél gcc X.c -lfl a .lex file általános szerkezete %{ bevezető rész, deklarációk (C nyelven) %} %% lexikai szabályok %% maradék rész, pl. függvények törzse

Lexikális elemző: lex (flex) a lexikai szabályok általános alakja szabály { működés } a szabályok reguláris kifejezések x? 0 vagy 1 x x* és x+ valahány x (plusz: legalább egy) x | y x vagy y \x speciális, pl. \n (sor vége), \t (tab), \|, \/, \\ . pont: egy tetszőleges karakter [] zárójel, csoportosításra [a-z] intervallum, a és z közötti 1 karakter példa: a?b*[c|d]+[\n|\t| ].[0-9] ; “c 7” illeszkedik

Lexikális elemző: lex (flex) a lex. elemző a blokkjai végén return-nel adja vissza a megtalált szimbólumot a szimbólum ált. előre definiált konstans 256-től felfelé (0-255-ig az ASCII karakterek vannak) #define IF 256 /* ezt a szintaktikus elemzőből fogjuk majd kinyerni */ if { return IF; } amíg csak a lexikai elemzőről van szó, visszatérés helyett printf-fel írjuk ki a felismert szimbólumot

Lexikális elemző: lex (flex) az elemzőben használható néhány fontosabb változó és függvény yyleng: a felismert lexikai elem hossza yytext: a lexikai elem szövege input(): egy karakter beolvasása, pl. kommentek felismeréséhez jöhet jól unput(): az input()-olás végén lehet, hogy vissza kell tenni egy-két beolvasott karaktert

Lexikális elemző: lex (flex) a lexikális elemző feladatai a lexikai elemek felismerése és továbbadása a szintaktikus elemzőnek a listafile elkészítése, aminek a tartalma sorszám a sorok eredeti alakjukban ennek is része lesz a “jól formázott kimeneti file” létrehozásában; erről bővebben később a lexikális hibák felismerése; ezt a szintaktikus elemzővel együtt kérem majd